+
diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js
index 78177c84de..9e65db85c6 100644
--- a/app/javascript/mastodon/components/status.js
+++ b/app/javascript/mastodon/components/status.js
@@ -37,7 +37,7 @@ export default class Status extends ImmutablePureComponent {
onBlock: PropTypes.func,
onEmbed: PropTypes.func,
onHeightChange: PropTypes.func,
- me: PropTypes.number,
+ me: PropTypes.string,
boostModal: PropTypes.bool,
autoPlayGif: PropTypes.bool,
muted: PropTypes.bool,
@@ -73,7 +73,7 @@ export default class Status extends ImmutablePureComponent {
handleAccountClick = (e) => {
if (this.context.router && e.button === 0) {
- const id = Number(e.currentTarget.getAttribute('data-id'));
+ const id = e.currentTarget.getAttribute('data-id');
e.preventDefault();
this.context.router.history.push(`/accounts/${id}`);
}
diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js
index b8f5dbce76..cf9c8fb539 100644
--- a/app/javascript/mastodon/components/status_action_bar.js
+++ b/app/javascript/mastodon/components/status_action_bar.js
@@ -49,7 +49,7 @@ export default class StatusActionBar extends ImmutablePureComponent {
onEmbed: PropTypes.func,
onMuteConversation: PropTypes.func,
onPin: PropTypes.func,
- me: PropTypes.number,
+ me: PropTypes.string,
withDismiss: PropTypes.bool,
intl: PropTypes.object.isRequired,
};
diff --git a/app/javascript/mastodon/emoji.js b/app/javascript/mastodon/emoji.js
index 865b85b611..d75f6f5982 100644
--- a/app/javascript/mastodon/emoji.js
+++ b/app/javascript/mastodon/emoji.js
@@ -3,48 +3,70 @@ import Trie from 'substring-trie';
const trie = new Trie(Object.keys(unicodeMapping));
+const assetHost = process.env.CDN_HOST || '';
+
const emojify = (str, customEmojis = {}) => {
- // This walks through the string from start to end, ignoring any tags (
,
, etc.)
- // and replacing valid unicode strings
- // that _aren't_ within tags with an version.
- // The goal is to be the same as an emojione.regUnicode replacement, but faster.
- let i = -1;
- let insideTag = false;
- let insideShortname = false;
- let shortnameStartIndex = -1;
- let match;
- while (++i < str.length) {
- const char = str.charAt(i);
- if (insideShortname && char === ':') {
- const shortname = str.substring(shortnameStartIndex, i + 1);
- if (shortname in customEmojis) {
- const replacement = ``;
- str = str.substring(0, shortnameStartIndex) + replacement + str.substring(i + 1);
- i += (replacement.length - shortname.length - 1); // jump ahead the length we've added to the string
- } else {
- i--;
- }
- insideShortname = false;
- } else if (insideTag && char === '>') {
- insideTag = false;
- } else if (char === '<') {
- insideTag = true;
- insideShortname = false;
- } else if (!insideTag && char === ':') {
- insideShortname = true;
- shortnameStartIndex = i;
- } else if (!insideTag && (match = trie.search(str.substring(i)))) {
- const unicodeStr = match;
- if (unicodeStr in unicodeMapping) {
- const [filename, shortCode] = unicodeMapping[unicodeStr];
- const alt = unicodeStr;
- const replacement = ``;
- str = str.substring(0, i) + replacement + str.substring(i + unicodeStr.length);
- i += (replacement.length - unicodeStr.length); // jump ahead the length we've added to the string
- }
+ let rtn = '';
+ for (;;) {
+ let match, i = 0, tag;
+ while (i < str.length && (tag = '<&'.indexOf(str[i])) === -1 && str[i] !== ':' && !(match = trie.search(str.slice(i)))) {
+ i += str.codePointAt(i) < 65536 ? 1 : 2;
+ }
+ if (i === str.length)
+ break;
+ else if (tag >= 0) {
+ const tagend = str.indexOf('>;'[tag], i + 1) + 1;
+ if (!tagend)
+ break;
+ rtn += str.slice(0, tagend);
+ str = str.slice(tagend);
+ } else if (str[i] === ':') {
+ try {
+ // if replacing :shortname: succeed, exit this block with "continue"
+ const closeColon = str.indexOf(':', i + 1) + 1;
+ if (!closeColon) throw null; // no pair of ':'
+ const lt = str.indexOf('<', i + 1);
+ if (!(lt === -1 || lt >= closeColon)) throw null; // tag appeared before closing ':'
+ const shortname = str.slice(i, closeColon);
+ if (shortname in customEmojis) {
+ rtn += str.slice(0, i) + ``;
+ str = str.slice(closeColon);
+ continue;
+ }
+ } catch (e) {}
+ // replacing :shortname: failed
+ rtn += str.slice(0, i + 1);
+ str = str.slice(i + 1);
+ } else {
+ const [filename, shortCode] = unicodeMapping[match];
+ rtn += str.slice(0, i) + ``;
+ str = str.slice(i + match.length);
}
}
- return str;
+ return rtn + str;
};
export default emojify;
+
+export const buildCustomEmojis = customEmojis => {
+ const emojis = [];
+
+ customEmojis.forEach(emoji => {
+ const shortcode = emoji.get('shortcode');
+ const url = emoji.get('url');
+ const name = shortcode.replace(':', '');
+
+ emojis.push({
+ id: name,
+ name,
+ short_names: [name],
+ text: '',
+ emoticons: [],
+ keywords: [name],
+ imageUrl: url,
+ custom: true,
+ });
+ });
+
+ return emojis;
+};
diff --git a/app/javascript/mastodon/emoji_map.json b/app/javascript/mastodon/emoji_map.json
new file mode 100644
index 0000000000..13753ba84c
--- /dev/null
+++ b/app/javascript/mastodon/emoji_map.json
@@ -0,0 +1 @@
+{"😀":"1f600","😁":"1f601","😂":"1f602","🤣":"1f923","😃":"1f603","😄":"1f604","😅":"1f605","😆":"1f606","😉":"1f609","😊":"1f60a","😋":"1f60b","😎":"1f60e","😍":"1f60d","😘":"1f618","😗":"1f617","😙":"1f619","😚":"1f61a","☺":"263a","🙂":"1f642","🤗":"1f917","🤩":"1f929","🤔":"1f914","🤨":"1f928","😐":"1f610","😑":"1f611","😶":"1f636","🙄":"1f644","😏":"1f60f","😣":"1f623","😥":"1f625","😮":"1f62e","🤐":"1f910","😯":"1f62f","😪":"1f62a","😫":"1f62b","😴":"1f634","😌":"1f60c","😛":"1f61b","😜":"1f61c","😝":"1f61d","🤤":"1f924","😒":"1f612","😓":"1f613","😔":"1f614","😕":"1f615","🙃":"1f643","🤑":"1f911","😲":"1f632","☹":"2639","🙁":"1f641","😖":"1f616","😞":"1f61e","😟":"1f61f","😤":"1f624","😢":"1f622","😭":"1f62d","😦":"1f626","😧":"1f627","😨":"1f628","😩":"1f629","🤯":"1f92f","😬":"1f62c","😰":"1f630","😱":"1f631","😳":"1f633","🤪":"1f92a","😵":"1f635","😡":"1f621","😠":"1f620","🤬":"1f92c","😷":"1f637","🤒":"1f912","🤕":"1f915","🤢":"1f922","🤮":"1f92e","🤧":"1f927","😇":"1f607","🤠":"1f920","🤡":"1f921","🤥":"1f925","🤫":"1f92b","🤭":"1f92d","🧐":"1f9d0","🤓":"1f913","😈":"1f608","👿":"1f47f","👹":"1f479","👺":"1f47a","💀":"1f480","☠":"2620","👻":"1f47b","👽":"1f47d","👾":"1f47e","🤖":"1f916","💩":"1f4a9","😺":"1f63a","😸":"1f638","😹":"1f639","😻":"1f63b","😼":"1f63c","😽":"1f63d","🙀":"1f640","😿":"1f63f","😾":"1f63e","🙈":"1f648","🙉":"1f649","🙊":"1f64a","👶":"1f476","🧒":"1f9d2","👦":"1f466","👧":"1f467","🧑":"1f9d1","👨":"1f468","👩":"1f469","🧓":"1f9d3","👴":"1f474","👵":"1f475","👮":"1f46e","🕵":"1f575","💂":"1f482","👷":"1f477","🤴":"1f934","👸":"1f478","👳":"1f473","👲":"1f472","🧕":"1f9d5","🧔":"1f9d4","👱":"1f471","🤵":"1f935","👰":"1f470","🤰":"1f930","🤱":"1f931","👼":"1f47c","🎅":"1f385","🤶":"1f936","🧙":"1f9d9","🧚":"1f9da","🧛":"1f9db","🧜":"1f9dc","🧝":"1f9dd","🧞":"1f9de","🧟":"1f9df","🙍":"1f64d","🙎":"1f64e","🙅":"1f645","🙆":"1f646","💁":"1f481","🙋":"1f64b","🙇":"1f647","🤦":"1f926","🤷":"1f937","💆":"1f486","💇":"1f487","🚶":"1f6b6","🏃":"1f3c3","💃":"1f483","🕺":"1f57a","👯":"1f46f","🧖":"1f9d6","🧗":"1f9d7","🧘":"1f9d8","🛀":"1f6c0","🛌":"1f6cc","🕴":"1f574","🗣":"1f5e3","👤":"1f464","👥":"1f465","🤺":"1f93a","🏇":"1f3c7","⛷":"26f7","🏂":"1f3c2","🏌":"1f3cc","🏄":"1f3c4","🚣":"1f6a3","🏊":"1f3ca","⛹":"26f9","🏋":"1f3cb","🚴":"1f6b4","🚵":"1f6b5","🏎":"1f3ce","🏍":"1f3cd","🤸":"1f938","🤼":"1f93c","🤽":"1f93d","🤾":"1f93e","🤹":"1f939","👫":"1f46b","👬":"1f46c","👭":"1f46d","💏":"1f48f","💑":"1f491","👪":"1f46a","🤳":"1f933","💪":"1f4aa","👈":"1f448","👉":"1f449","☝":"261d","👆":"1f446","🖕":"1f595","👇":"1f447","✌":"270c","🤞":"1f91e","🖖":"1f596","🤘":"1f918","🤙":"1f919","🖐":"1f590","✋":"270b","👌":"1f44c","👍":"1f44d","👎":"1f44e","✊":"270a","👊":"1f44a","🤛":"1f91b","🤜":"1f91c","🤚":"1f91a","👋":"1f44b","🤟":"1f91f","✍":"270d","👏":"1f44f","👐":"1f450","🙌":"1f64c","🤲":"1f932","🙏":"1f64f","🤝":"1f91d","💅":"1f485","👂":"1f442","👃":"1f443","👣":"1f463","👀":"1f440","👁":"1f441","🧠":"1f9e0","👅":"1f445","👄":"1f444","💋":"1f48b","💘":"1f498","❤":"2764","💓":"1f493","💔":"1f494","💕":"1f495","💖":"1f496","💗":"1f497","💙":"1f499","💚":"1f49a","💛":"1f49b","🧡":"1f9e1","💜":"1f49c","🖤":"1f5a4","💝":"1f49d","💞":"1f49e","💟":"1f49f","❣":"2763","💌":"1f48c","💤":"1f4a4","💢":"1f4a2","💣":"1f4a3","💥":"1f4a5","💦":"1f4a6","💨":"1f4a8","💫":"1f4ab","💬":"1f4ac","🗨":"1f5e8","🗯":"1f5ef","💭":"1f4ad","🕳":"1f573","👓":"1f453","🕶":"1f576","👔":"1f454","👕":"1f455","👖":"1f456","🧣":"1f9e3","🧤":"1f9e4","🧥":"1f9e5","🧦":"1f9e6","👗":"1f457","👘":"1f458","👙":"1f459","👚":"1f45a","👛":"1f45b","👜":"1f45c","👝":"1f45d","🛍":"1f6cd","🎒":"1f392","👞":"1f45e","👟":"1f45f","👠":"1f460","👡":"1f461","👢":"1f462","👑":"1f451","👒":"1f452","🎩":"1f3a9","🎓":"1f393","🧢":"1f9e2","⛑":"26d1","📿":"1f4ff","💄":"1f484","💍":"1f48d","💎":"1f48e","🐵":"1f435","🐒":"1f412","🦍":"1f98d","🐶":"1f436","🐕":"1f415","🐩":"1f429","🐺":"1f43a","🦊":"1f98a","🐱":"1f431","🐈":"1f408","🦁":"1f981","🐯":"1f42f","🐅":"1f405","🐆":"1f406","🐴":"1f434","🐎":"1f40e","🦄":"1f984","🦓":"1f993","🦌":"1f98c","🐮":"1f42e","🐂":"1f402","🐃":"1f403","🐄":"1f404","🐷":"1f437","🐖":"1f416","🐗":"1f417","🐽":"1f43d","🐏":"1f40f","🐑":"1f411","🐐":"1f410","🐪":"1f42a","🐫":"1f42b","🦒":"1f992","🐘":"1f418","🦏":"1f98f","🐭":"1f42d","🐁":"1f401","🐀":"1f400","🐹":"1f439","🐰":"1f430","🐇":"1f407","🐿":"1f43f","🦔":"1f994","🦇":"1f987","🐻":"1f43b","🐨":"1f428","🐼":"1f43c","🐾":"1f43e","🦃":"1f983","🐔":"1f414","🐓":"1f413","🐣":"1f423","🐤":"1f424","🐥":"1f425","🐦":"1f426","🐧":"1f427","🕊":"1f54a","🦅":"1f985","🦆":"1f986","🦉":"1f989","🐸":"1f438","🐊":"1f40a","🐢":"1f422","🦎":"1f98e","🐍":"1f40d","🐲":"1f432","🐉":"1f409","🦕":"1f995","🦖":"1f996","🐳":"1f433","🐋":"1f40b","🐬":"1f42c","🐟":"1f41f","🐠":"1f420","🐡":"1f421","🦈":"1f988","🐙":"1f419","🐚":"1f41a","🦀":"1f980","🦐":"1f990","🦑":"1f991","🐌":"1f40c","🦋":"1f98b","🐛":"1f41b","🐜":"1f41c","🐝":"1f41d","🐞":"1f41e","🦗":"1f997","🕷":"1f577","🕸":"1f578","🦂":"1f982","💐":"1f490","🌸":"1f338","💮":"1f4ae","🏵":"1f3f5","🌹":"1f339","🥀":"1f940","🌺":"1f33a","🌻":"1f33b","🌼":"1f33c","🌷":"1f337","🌱":"1f331","🌲":"1f332","🌳":"1f333","🌴":"1f334","🌵":"1f335","🌾":"1f33e","🌿":"1f33f","☘":"2618","🍀":"1f340","🍁":"1f341","🍂":"1f342","🍃":"1f343","🍇":"1f347","🍈":"1f348","🍉":"1f349","🍊":"1f34a","🍋":"1f34b","🍌":"1f34c","🍍":"1f34d","🍎":"1f34e","🍏":"1f34f","🍐":"1f350","🍑":"1f351","🍒":"1f352","🍓":"1f353","🥝":"1f95d","🍅":"1f345","🥥":"1f965","🥑":"1f951","🍆":"1f346","🥔":"1f954","🥕":"1f955","🌽":"1f33d","🌶":"1f336","🥒":"1f952","🥦":"1f966","🍄":"1f344","🥜":"1f95c","🌰":"1f330","🍞":"1f35e","🥐":"1f950","🥖":"1f956","🥨":"1f968","🥞":"1f95e","🧀":"1f9c0","🍖":"1f356","🍗":"1f357","🥩":"1f969","🥓":"1f953","🍔":"1f354","🍟":"1f35f","🍕":"1f355","🌭":"1f32d","🥪":"1f96a","🌮":"1f32e","🌯":"1f32f","🥙":"1f959","🥚":"1f95a","🍳":"1f373","🥘":"1f958","🍲":"1f372","🥣":"1f963","🥗":"1f957","🍿":"1f37f","🥫":"1f96b","🍱":"1f371","🍘":"1f358","🍙":"1f359","🍚":"1f35a","🍛":"1f35b","🍜":"1f35c","🍝":"1f35d","🍠":"1f360","🍢":"1f362","🍣":"1f363","🍤":"1f364","🍥":"1f365","🍡":"1f361","🥟":"1f95f","🥠":"1f960","🥡":"1f961","🍦":"1f366","🍧":"1f367","🍨":"1f368","🍩":"1f369","🍪":"1f36a","🎂":"1f382","🍰":"1f370","🥧":"1f967","🍫":"1f36b","🍬":"1f36c","🍭":"1f36d","🍮":"1f36e","🍯":"1f36f","🍼":"1f37c","🥛":"1f95b","☕":"2615","🍵":"1f375","🍶":"1f376","🍾":"1f37e","🍷":"1f377","🍸":"1f378","🍹":"1f379","🍺":"1f37a","🍻":"1f37b","🥂":"1f942","🥃":"1f943","🥤":"1f964","🥢":"1f962","🍽":"1f37d","🍴":"1f374","🥄":"1f944","🔪":"1f52a","🏺":"1f3fa","🌍":"1f30d","🌎":"1f30e","🌏":"1f30f","🌐":"1f310","🗺":"1f5fa","🗾":"1f5fe","🏔":"1f3d4","⛰":"26f0","🌋":"1f30b","🗻":"1f5fb","🏕":"1f3d5","🏖":"1f3d6","🏜":"1f3dc","🏝":"1f3dd","🏞":"1f3de","🏟":"1f3df","🏛":"1f3db","🏗":"1f3d7","🏘":"1f3d8","🏙":"1f3d9","🏚":"1f3da","🏠":"1f3e0","🏡":"1f3e1","🏢":"1f3e2","🏣":"1f3e3","🏤":"1f3e4","🏥":"1f3e5","🏦":"1f3e6","🏨":"1f3e8","🏩":"1f3e9","🏪":"1f3ea","🏫":"1f3eb","🏬":"1f3ec","🏭":"1f3ed","🏯":"1f3ef","🏰":"1f3f0","💒":"1f492","🗼":"1f5fc","🗽":"1f5fd","⛪":"26ea","🕌":"1f54c","🕍":"1f54d","⛩":"26e9","🕋":"1f54b","⛲":"26f2","⛺":"26fa","🌁":"1f301","🌃":"1f303","🌄":"1f304","🌅":"1f305","🌆":"1f306","🌇":"1f307","🌉":"1f309","♨":"2668","🌌":"1f30c","🎠":"1f3a0","🎡":"1f3a1","🎢":"1f3a2","💈":"1f488","🎪":"1f3aa","🎭":"1f3ad","🖼":"1f5bc","🎨":"1f3a8","🎰":"1f3b0","🚂":"1f682","🚃":"1f683","🚄":"1f684","🚅":"1f685","🚆":"1f686","🚇":"1f687","🚈":"1f688","🚉":"1f689","🚊":"1f68a","🚝":"1f69d","🚞":"1f69e","🚋":"1f68b","🚌":"1f68c","🚍":"1f68d","🚎":"1f68e","🚐":"1f690","🚑":"1f691","🚒":"1f692","🚓":"1f693","🚔":"1f694","🚕":"1f695","🚖":"1f696","🚗":"1f697","🚘":"1f698","🚙":"1f699","🚚":"1f69a","🚛":"1f69b","🚜":"1f69c","🚲":"1f6b2","🛴":"1f6f4","🛵":"1f6f5","🚏":"1f68f","🛣":"1f6e3","🛤":"1f6e4","⛽":"26fd","🚨":"1f6a8","🚥":"1f6a5","🚦":"1f6a6","🚧":"1f6a7","🛑":"1f6d1","⚓":"2693","⛵":"26f5","🛶":"1f6f6","🚤":"1f6a4","🛳":"1f6f3","⛴":"26f4","🛥":"1f6e5","🚢":"1f6a2","✈":"2708","🛩":"1f6e9","🛫":"1f6eb","🛬":"1f6ec","💺":"1f4ba","🚁":"1f681","🚟":"1f69f","🚠":"1f6a0","🚡":"1f6a1","🛰":"1f6f0","🚀":"1f680","🛸":"1f6f8","🛎":"1f6ce","🚪":"1f6aa","🛏":"1f6cf","🛋":"1f6cb","🚽":"1f6bd","🚿":"1f6bf","🛁":"1f6c1","⌛":"231b","⏳":"23f3","⌚":"231a","⏰":"23f0","⏱":"23f1","⏲":"23f2","🕰":"1f570","🕛":"1f55b","🕧":"1f567","🕐":"1f550","🕜":"1f55c","🕑":"1f551","🕝":"1f55d","🕒":"1f552","🕞":"1f55e","🕓":"1f553","🕟":"1f55f","🕔":"1f554","🕠":"1f560","🕕":"1f555","🕡":"1f561","🕖":"1f556","🕢":"1f562","🕗":"1f557","🕣":"1f563","🕘":"1f558","🕤":"1f564","🕙":"1f559","🕥":"1f565","🕚":"1f55a","🕦":"1f566","🌑":"1f311","🌒":"1f312","🌓":"1f313","🌔":"1f314","🌕":"1f315","🌖":"1f316","🌗":"1f317","🌘":"1f318","🌙":"1f319","🌚":"1f31a","🌛":"1f31b","🌜":"1f31c","🌡":"1f321","☀":"2600","🌝":"1f31d","🌞":"1f31e","⭐":"2b50","🌟":"1f31f","🌠":"1f320","☁":"2601","⛅":"26c5","⛈":"26c8","🌤":"1f324","🌥":"1f325","🌦":"1f326","🌧":"1f327","🌨":"1f328","🌩":"1f329","🌪":"1f32a","🌫":"1f32b","🌬":"1f32c","🌀":"1f300","🌈":"1f308","🌂":"1f302","☂":"2602","☔":"2614","⛱":"26f1","⚡":"26a1","❄":"2744","☃":"2603","⛄":"26c4","☄":"2604","🔥":"1f525","💧":"1f4a7","🌊":"1f30a","🎃":"1f383","🎄":"1f384","🎆":"1f386","🎇":"1f387","✨":"2728","🎈":"1f388","🎉":"1f389","🎊":"1f38a","🎋":"1f38b","🎍":"1f38d","🎎":"1f38e","🎏":"1f38f","🎐":"1f390","🎑":"1f391","🎀":"1f380","🎁":"1f381","🎗":"1f397","🎟":"1f39f","🎫":"1f3ab","🎖":"1f396","🏆":"1f3c6","🏅":"1f3c5","🥇":"1f947","🥈":"1f948","🥉":"1f949","⚽":"26bd","⚾":"26be","🏀":"1f3c0","🏐":"1f3d0","🏈":"1f3c8","🏉":"1f3c9","🎾":"1f3be","🎱":"1f3b1","🎳":"1f3b3","🏏":"1f3cf","🏑":"1f3d1","🏒":"1f3d2","🏓":"1f3d3","🏸":"1f3f8","🥊":"1f94a","🥋":"1f94b","🥅":"1f945","🎯":"1f3af","⛳":"26f3","⛸":"26f8","🎣":"1f3a3","🎽":"1f3bd","🎿":"1f3bf","🛷":"1f6f7","🥌":"1f94c","🎮":"1f3ae","🕹":"1f579","🎲":"1f3b2","♠":"2660","♥":"2665","♦":"2666","♣":"2663","🃏":"1f0cf","🀄":"1f004","🎴":"1f3b4","🔇":"1f507","🔈":"1f508","🔉":"1f509","🔊":"1f50a","📢":"1f4e2","📣":"1f4e3","📯":"1f4ef","🔔":"1f514","🔕":"1f515","🎼":"1f3bc","🎵":"1f3b5","🎶":"1f3b6","🎙":"1f399","🎚":"1f39a","🎛":"1f39b","🎤":"1f3a4","🎧":"1f3a7","📻":"1f4fb","🎷":"1f3b7","🎸":"1f3b8","🎹":"1f3b9","🎺":"1f3ba","🎻":"1f3bb","🥁":"1f941","📱":"1f4f1","📲":"1f4f2","☎":"260e","📞":"1f4de","📟":"1f4df","📠":"1f4e0","🔋":"1f50b","🔌":"1f50c","💻":"1f4bb","🖥":"1f5a5","🖨":"1f5a8","⌨":"2328","🖱":"1f5b1","🖲":"1f5b2","💽":"1f4bd","💾":"1f4be","💿":"1f4bf","📀":"1f4c0","🎥":"1f3a5","🎞":"1f39e","📽":"1f4fd","🎬":"1f3ac","📺":"1f4fa","📷":"1f4f7","📸":"1f4f8","📹":"1f4f9","📼":"1f4fc","🔍":"1f50d","🔎":"1f50e","🔬":"1f52c","🔭":"1f52d","📡":"1f4e1","🕯":"1f56f","💡":"1f4a1","🔦":"1f526","🏮":"1f3ee","📔":"1f4d4","📕":"1f4d5","📖":"1f4d6","📗":"1f4d7","📘":"1f4d8","📙":"1f4d9","📚":"1f4da","📓":"1f4d3","📒":"1f4d2","📃":"1f4c3","📜":"1f4dc","📄":"1f4c4","📰":"1f4f0","🗞":"1f5de","📑":"1f4d1","🔖":"1f516","🏷":"1f3f7","💰":"1f4b0","💴":"1f4b4","💵":"1f4b5","💶":"1f4b6","💷":"1f4b7","💸":"1f4b8","💳":"1f4b3","💹":"1f4b9","💱":"1f4b1","💲":"1f4b2","✉":"2709","📧":"1f4e7","📨":"1f4e8","📩":"1f4e9","📤":"1f4e4","📥":"1f4e5","📦":"1f4e6","📫":"1f4eb","📪":"1f4ea","📬":"1f4ec","📭":"1f4ed","📮":"1f4ee","🗳":"1f5f3","✏":"270f","✒":"2712","🖋":"1f58b","🖊":"1f58a","🖌":"1f58c","🖍":"1f58d","📝":"1f4dd","💼":"1f4bc","📁":"1f4c1","📂":"1f4c2","🗂":"1f5c2","📅":"1f4c5","📆":"1f4c6","🗒":"1f5d2","🗓":"1f5d3","📇":"1f4c7","📈":"1f4c8","📉":"1f4c9","📊":"1f4ca","📋":"1f4cb","📌":"1f4cc","📍":"1f4cd","📎":"1f4ce","🖇":"1f587","📏":"1f4cf","📐":"1f4d0","✂":"2702","🗃":"1f5c3","🗄":"1f5c4","🗑":"1f5d1","🔒":"1f512","🔓":"1f513","🔏":"1f50f","🔐":"1f510","🔑":"1f511","🗝":"1f5dd","🔨":"1f528","⛏":"26cf","⚒":"2692","🛠":"1f6e0","🗡":"1f5e1","⚔":"2694","🔫":"1f52b","🏹":"1f3f9","🛡":"1f6e1","🔧":"1f527","🔩":"1f529","⚙":"2699","🗜":"1f5dc","⚗":"2697","⚖":"2696","🔗":"1f517","⛓":"26d3","💉":"1f489","💊":"1f48a","🚬":"1f6ac","⚰":"26b0","⚱":"26b1","🗿":"1f5ff","🛢":"1f6e2","🔮":"1f52e","🛒":"1f6d2","🏧":"1f3e7","🚮":"1f6ae","🚰":"1f6b0","♿":"267f","🚹":"1f6b9","🚺":"1f6ba","🚻":"1f6bb","🚼":"1f6bc","🚾":"1f6be","🛂":"1f6c2","🛃":"1f6c3","🛄":"1f6c4","🛅":"1f6c5","⚠":"26a0","🚸":"1f6b8","⛔":"26d4","🚫":"1f6ab","🚳":"1f6b3","🚭":"1f6ad","🚯":"1f6af","🚱":"1f6b1","🚷":"1f6b7","📵":"1f4f5","🔞":"1f51e","☢":"2622","☣":"2623","⬆":"2b06","↗":"2197","➡":"27a1","↘":"2198","⬇":"2b07","↙":"2199","⬅":"2b05","↖":"2196","↕":"2195","↔":"2194","↩":"21a9","↪":"21aa","⤴":"2934","⤵":"2935","🔃":"1f503","🔄":"1f504","🔙":"1f519","🔚":"1f51a","🔛":"1f51b","🔜":"1f51c","🔝":"1f51d","🛐":"1f6d0","⚛":"269b","🕉":"1f549","✡":"2721","☸":"2638","☯":"262f","✝":"271d","☦":"2626","☪":"262a","☮":"262e","🕎":"1f54e","🔯":"1f52f","♈":"2648","♉":"2649","♊":"264a","♋":"264b","♌":"264c","♍":"264d","♎":"264e","♏":"264f","♐":"2650","♑":"2651","♒":"2652","♓":"2653","⛎":"26ce","🔀":"1f500","🔁":"1f501","🔂":"1f502","▶":"25b6","⏩":"23e9","⏭":"23ed","⏯":"23ef","◀":"25c0","⏪":"23ea","⏮":"23ee","🔼":"1f53c","⏫":"23eb","🔽":"1f53d","⏬":"23ec","⏸":"23f8","⏹":"23f9","⏺":"23fa","⏏":"23cf","🎦":"1f3a6","🔅":"1f505","🔆":"1f506","📶":"1f4f6","📳":"1f4f3","📴":"1f4f4","♀":"2640","♂":"2642","⚕":"2695","♻":"267b","⚜":"269c","🔱":"1f531","📛":"1f4db","🔰":"1f530","⭕":"2b55","✅":"2705","☑":"2611","✔":"2714","✖":"2716","❌":"274c","❎":"274e","➕":"2795","➖":"2796","➗":"2797","➰":"27b0","➿":"27bf","〽":"303d","✳":"2733","✴":"2734","❇":"2747","‼":"203c","⁉":"2049","❓":"2753","❔":"2754","❕":"2755","❗":"2757","〰":"3030","©":"a9","®":"ae","™":"2122","🔟":"1f51f","💯":"1f4af","🔠":"1f520","🔡":"1f521","🔢":"1f522","🔣":"1f523","🔤":"1f524","🅰":"1f170","🆎":"1f18e","🅱":"1f171","🆑":"1f191","🆒":"1f192","🆓":"1f193","ℹ":"2139","🆔":"1f194","Ⓜ":"24c2","🆕":"1f195","🆖":"1f196","🅾":"1f17e","🆗":"1f197","🅿":"1f17f","🆘":"1f198","🆙":"1f199","🆚":"1f19a","🈁":"1f201","🈂":"1f202","🈷":"1f237","🈶":"1f236","🈯":"1f22f","🉐":"1f250","🈹":"1f239","🈚":"1f21a","🈲":"1f232","🉑":"1f251","🈸":"1f238","🈴":"1f234","🈳":"1f233","㊗":"3297","㊙":"3299","🈺":"1f23a","🈵":"1f235","▪":"25aa","▫":"25ab","◻":"25fb","◼":"25fc","◽":"25fd","◾":"25fe","⬛":"2b1b","⬜":"2b1c","🔶":"1f536","🔷":"1f537","🔸":"1f538","🔹":"1f539","🔺":"1f53a","🔻":"1f53b","💠":"1f4a0","🔘":"1f518","🔲":"1f532","🔳":"1f533","⚪":"26aa","⚫":"26ab","🔴":"1f534","🔵":"1f535","🏁":"1f3c1","🚩":"1f6a9","🎌":"1f38c","🏴":"1f3f4","🏳":"1f3f3","☺️":"263a","☹️":"2639","☠️":"2620","👶🏻":"1f476-1f3fb","👶🏼":"1f476-1f3fc","👶🏽":"1f476-1f3fd","👶🏾":"1f476-1f3fe","👶🏿":"1f476-1f3ff","🧒🏻":"1f9d2-1f3fb","🧒🏼":"1f9d2-1f3fc","🧒🏽":"1f9d2-1f3fd","🧒🏾":"1f9d2-1f3fe","🧒🏿":"1f9d2-1f3ff","👦🏻":"1f466-1f3fb","👦🏼":"1f466-1f3fc","👦🏽":"1f466-1f3fd","👦🏾":"1f466-1f3fe","👦🏿":"1f466-1f3ff","👧🏻":"1f467-1f3fb","👧🏼":"1f467-1f3fc","👧🏽":"1f467-1f3fd","👧🏾":"1f467-1f3fe","👧🏿":"1f467-1f3ff","🧑🏻":"1f9d1-1f3fb","🧑🏼":"1f9d1-1f3fc","🧑🏽":"1f9d1-1f3fd","🧑🏾":"1f9d1-1f3fe","🧑🏿":"1f9d1-1f3ff","👨🏻":"1f468-1f3fb","👨🏼":"1f468-1f3fc","👨🏽":"1f468-1f3fd","👨🏾":"1f468-1f3fe","👨🏿":"1f468-1f3ff","👩🏻":"1f469-1f3fb","👩🏼":"1f469-1f3fc","👩🏽":"1f469-1f3fd","👩🏾":"1f469-1f3fe","👩🏿":"1f469-1f3ff","🧓🏻":"1f9d3-1f3fb","🧓🏼":"1f9d3-1f3fc","🧓🏽":"1f9d3-1f3fd","🧓🏾":"1f9d3-1f3fe","🧓🏿":"1f9d3-1f3ff","👴🏻":"1f474-1f3fb","👴🏼":"1f474-1f3fc","👴🏽":"1f474-1f3fd","👴🏾":"1f474-1f3fe","👴🏿":"1f474-1f3ff","👵🏻":"1f475-1f3fb","👵🏼":"1f475-1f3fc","👵🏽":"1f475-1f3fd","👵🏾":"1f475-1f3fe","👵🏿":"1f475-1f3ff","👮🏻":"1f46e-1f3fb","👮🏼":"1f46e-1f3fc","👮🏽":"1f46e-1f3fd","👮🏾":"1f46e-1f3fe","👮🏿":"1f46e-1f3ff","🕵️":"1f575","🕵🏻":"1f575-1f3fb","🕵🏼":"1f575-1f3fc","🕵🏽":"1f575-1f3fd","🕵🏾":"1f575-1f3fe","🕵🏿":"1f575-1f3ff","💂🏻":"1f482-1f3fb","💂🏼":"1f482-1f3fc","💂🏽":"1f482-1f3fd","💂🏾":"1f482-1f3fe","💂🏿":"1f482-1f3ff","👷🏻":"1f477-1f3fb","👷🏼":"1f477-1f3fc","👷🏽":"1f477-1f3fd","👷🏾":"1f477-1f3fe","👷🏿":"1f477-1f3ff","🤴🏻":"1f934-1f3fb","🤴🏼":"1f934-1f3fc","🤴🏽":"1f934-1f3fd","🤴🏾":"1f934-1f3fe","🤴🏿":"1f934-1f3ff","👸🏻":"1f478-1f3fb","👸🏼":"1f478-1f3fc","👸🏽":"1f478-1f3fd","👸🏾":"1f478-1f3fe","👸🏿":"1f478-1f3ff","👳🏻":"1f473-1f3fb","👳🏼":"1f473-1f3fc","👳🏽":"1f473-1f3fd","👳🏾":"1f473-1f3fe","👳🏿":"1f473-1f3ff","👲🏻":"1f472-1f3fb","👲🏼":"1f472-1f3fc","👲🏽":"1f472-1f3fd","👲🏾":"1f472-1f3fe","👲🏿":"1f472-1f3ff","🧕🏻":"1f9d5-1f3fb","🧕🏼":"1f9d5-1f3fc","🧕🏽":"1f9d5-1f3fd","🧕🏾":"1f9d5-1f3fe","🧕🏿":"1f9d5-1f3ff","🧔🏻":"1f9d4-1f3fb","🧔🏼":"1f9d4-1f3fc","🧔🏽":"1f9d4-1f3fd","🧔🏾":"1f9d4-1f3fe","🧔🏿":"1f9d4-1f3ff","👱🏻":"1f471-1f3fb","👱🏼":"1f471-1f3fc","👱🏽":"1f471-1f3fd","👱🏾":"1f471-1f3fe","👱🏿":"1f471-1f3ff","🤵🏻":"1f935-1f3fb","🤵🏼":"1f935-1f3fc","🤵🏽":"1f935-1f3fd","🤵🏾":"1f935-1f3fe","🤵🏿":"1f935-1f3ff","👰🏻":"1f470-1f3fb","👰🏼":"1f470-1f3fc","👰🏽":"1f470-1f3fd","👰🏾":"1f470-1f3fe","👰🏿":"1f470-1f3ff","🤰🏻":"1f930-1f3fb","🤰🏼":"1f930-1f3fc","🤰🏽":"1f930-1f3fd","🤰🏾":"1f930-1f3fe","🤰🏿":"1f930-1f3ff","🤱🏻":"1f931-1f3fb","🤱🏼":"1f931-1f3fc","🤱🏽":"1f931-1f3fd","🤱🏾":"1f931-1f3fe","🤱🏿":"1f931-1f3ff","👼🏻":"1f47c-1f3fb","👼🏼":"1f47c-1f3fc","👼🏽":"1f47c-1f3fd","👼🏾":"1f47c-1f3fe","👼🏿":"1f47c-1f3ff","🎅🏻":"1f385-1f3fb","🎅🏼":"1f385-1f3fc","🎅🏽":"1f385-1f3fd","🎅🏾":"1f385-1f3fe","🎅🏿":"1f385-1f3ff","🤶🏻":"1f936-1f3fb","🤶🏼":"1f936-1f3fc","🤶🏽":"1f936-1f3fd","🤶🏾":"1f936-1f3fe","🤶🏿":"1f936-1f3ff","🧙🏻":"1f9d9-1f3fb","🧙🏼":"1f9d9-1f3fc","🧙🏽":"1f9d9-1f3fd","🧙🏾":"1f9d9-1f3fe","🧙🏿":"1f9d9-1f3ff","🧚🏻":"1f9da-1f3fb","🧚🏼":"1f9da-1f3fc","🧚🏽":"1f9da-1f3fd","🧚🏾":"1f9da-1f3fe","🧚🏿":"1f9da-1f3ff","🧛🏻":"1f9db-1f3fb","🧛🏼":"1f9db-1f3fc","🧛🏽":"1f9db-1f3fd","🧛🏾":"1f9db-1f3fe","🧛🏿":"1f9db-1f3ff","🧜🏻":"1f9dc-1f3fb","🧜🏼":"1f9dc-1f3fc","🧜🏽":"1f9dc-1f3fd","🧜🏾":"1f9dc-1f3fe","🧜🏿":"1f9dc-1f3ff","🧝🏻":"1f9dd-1f3fb","🧝🏼":"1f9dd-1f3fc","🧝🏽":"1f9dd-1f3fd","🧝🏾":"1f9dd-1f3fe","🧝🏿":"1f9dd-1f3ff","🙍🏻":"1f64d-1f3fb","🙍🏼":"1f64d-1f3fc","🙍🏽":"1f64d-1f3fd","🙍🏾":"1f64d-1f3fe","🙍🏿":"1f64d-1f3ff","🙎🏻":"1f64e-1f3fb","🙎🏼":"1f64e-1f3fc","🙎🏽":"1f64e-1f3fd","🙎🏾":"1f64e-1f3fe","🙎🏿":"1f64e-1f3ff","🙅🏻":"1f645-1f3fb","🙅🏼":"1f645-1f3fc","🙅🏽":"1f645-1f3fd","🙅🏾":"1f645-1f3fe","🙅🏿":"1f645-1f3ff","🙆🏻":"1f646-1f3fb","🙆🏼":"1f646-1f3fc","🙆🏽":"1f646-1f3fd","🙆🏾":"1f646-1f3fe","🙆🏿":"1f646-1f3ff","💁🏻":"1f481-1f3fb","💁🏼":"1f481-1f3fc","💁🏽":"1f481-1f3fd","💁🏾":"1f481-1f3fe","💁🏿":"1f481-1f3ff","🙋🏻":"1f64b-1f3fb","🙋🏼":"1f64b-1f3fc","🙋🏽":"1f64b-1f3fd","🙋🏾":"1f64b-1f3fe","🙋🏿":"1f64b-1f3ff","🙇🏻":"1f647-1f3fb","🙇🏼":"1f647-1f3fc","🙇🏽":"1f647-1f3fd","🙇🏾":"1f647-1f3fe","🙇🏿":"1f647-1f3ff","🤦🏻":"1f926-1f3fb","🤦🏼":"1f926-1f3fc","🤦🏽":"1f926-1f3fd","🤦🏾":"1f926-1f3fe","🤦🏿":"1f926-1f3ff","🤷🏻":"1f937-1f3fb","🤷🏼":"1f937-1f3fc","🤷🏽":"1f937-1f3fd","🤷🏾":"1f937-1f3fe","🤷🏿":"1f937-1f3ff","💆🏻":"1f486-1f3fb","💆🏼":"1f486-1f3fc","💆🏽":"1f486-1f3fd","💆🏾":"1f486-1f3fe","💆🏿":"1f486-1f3ff","💇🏻":"1f487-1f3fb","💇🏼":"1f487-1f3fc","💇🏽":"1f487-1f3fd","💇🏾":"1f487-1f3fe","💇🏿":"1f487-1f3ff","🚶🏻":"1f6b6-1f3fb","🚶🏼":"1f6b6-1f3fc","🚶🏽":"1f6b6-1f3fd","🚶🏾":"1f6b6-1f3fe","🚶🏿":"1f6b6-1f3ff","🏃🏻":"1f3c3-1f3fb","🏃🏼":"1f3c3-1f3fc","🏃🏽":"1f3c3-1f3fd","🏃🏾":"1f3c3-1f3fe","🏃🏿":"1f3c3-1f3ff","💃🏻":"1f483-1f3fb","💃🏼":"1f483-1f3fc","💃🏽":"1f483-1f3fd","💃🏾":"1f483-1f3fe","💃🏿":"1f483-1f3ff","🕺🏻":"1f57a-1f3fb","🕺🏼":"1f57a-1f3fc","🕺🏽":"1f57a-1f3fd","🕺🏾":"1f57a-1f3fe","🕺🏿":"1f57a-1f3ff","🧖🏻":"1f9d6-1f3fb","🧖🏼":"1f9d6-1f3fc","🧖🏽":"1f9d6-1f3fd","🧖🏾":"1f9d6-1f3fe","🧖🏿":"1f9d6-1f3ff","🧗🏻":"1f9d7-1f3fb","🧗🏼":"1f9d7-1f3fc","🧗🏽":"1f9d7-1f3fd","🧗🏾":"1f9d7-1f3fe","🧗🏿":"1f9d7-1f3ff","🧘🏻":"1f9d8-1f3fb","🧘🏼":"1f9d8-1f3fc","🧘🏽":"1f9d8-1f3fd","🧘🏾":"1f9d8-1f3fe","🧘🏿":"1f9d8-1f3ff","🛀🏻":"1f6c0-1f3fb","🛀🏼":"1f6c0-1f3fc","🛀🏽":"1f6c0-1f3fd","🛀🏾":"1f6c0-1f3fe","🛀🏿":"1f6c0-1f3ff","🛌🏻":"1f6cc-1f3fb","🛌🏼":"1f6cc-1f3fc","🛌🏽":"1f6cc-1f3fd","🛌🏾":"1f6cc-1f3fe","🛌🏿":"1f6cc-1f3ff","🕴️":"1f574","🕴🏻":"1f574-1f3fb","🕴🏼":"1f574-1f3fc","🕴🏽":"1f574-1f3fd","🕴🏾":"1f574-1f3fe","🕴🏿":"1f574-1f3ff","🗣️":"1f5e3","🏇🏻":"1f3c7-1f3fb","🏇🏼":"1f3c7-1f3fc","🏇🏽":"1f3c7-1f3fd","🏇🏾":"1f3c7-1f3fe","🏇🏿":"1f3c7-1f3ff","⛷️":"26f7","🏂🏻":"1f3c2-1f3fb","🏂🏼":"1f3c2-1f3fc","🏂🏽":"1f3c2-1f3fd","🏂🏾":"1f3c2-1f3fe","🏂🏿":"1f3c2-1f3ff","🏌️":"1f3cc","🏌🏻":"1f3cc-1f3fb","🏌🏼":"1f3cc-1f3fc","🏌🏽":"1f3cc-1f3fd","🏌🏾":"1f3cc-1f3fe","🏌🏿":"1f3cc-1f3ff","🏄🏻":"1f3c4-1f3fb","🏄🏼":"1f3c4-1f3fc","🏄🏽":"1f3c4-1f3fd","🏄🏾":"1f3c4-1f3fe","🏄🏿":"1f3c4-1f3ff","🚣🏻":"1f6a3-1f3fb","🚣🏼":"1f6a3-1f3fc","🚣🏽":"1f6a3-1f3fd","🚣🏾":"1f6a3-1f3fe","🚣🏿":"1f6a3-1f3ff","🏊🏻":"1f3ca-1f3fb","🏊🏼":"1f3ca-1f3fc","🏊🏽":"1f3ca-1f3fd","🏊🏾":"1f3ca-1f3fe","🏊🏿":"1f3ca-1f3ff","⛹️":"26f9","⛹🏻":"26f9-1f3fb","⛹🏼":"26f9-1f3fc","⛹🏽":"26f9-1f3fd","⛹🏾":"26f9-1f3fe","⛹🏿":"26f9-1f3ff","🏋️":"1f3cb","🏋🏻":"1f3cb-1f3fb","🏋🏼":"1f3cb-1f3fc","🏋🏽":"1f3cb-1f3fd","🏋🏾":"1f3cb-1f3fe","🏋🏿":"1f3cb-1f3ff","🚴🏻":"1f6b4-1f3fb","🚴🏼":"1f6b4-1f3fc","🚴🏽":"1f6b4-1f3fd","🚴🏾":"1f6b4-1f3fe","🚴🏿":"1f6b4-1f3ff","🚵🏻":"1f6b5-1f3fb","🚵🏼":"1f6b5-1f3fc","🚵🏽":"1f6b5-1f3fd","🚵🏾":"1f6b5-1f3fe","🚵🏿":"1f6b5-1f3ff","🏎️":"1f3ce","🏍️":"1f3cd","🤸🏻":"1f938-1f3fb","🤸🏼":"1f938-1f3fc","🤸🏽":"1f938-1f3fd","🤸🏾":"1f938-1f3fe","🤸🏿":"1f938-1f3ff","🤽🏻":"1f93d-1f3fb","🤽🏼":"1f93d-1f3fc","🤽🏽":"1f93d-1f3fd","🤽🏾":"1f93d-1f3fe","🤽🏿":"1f93d-1f3ff","🤾🏻":"1f93e-1f3fb","🤾🏼":"1f93e-1f3fc","🤾🏽":"1f93e-1f3fd","🤾🏾":"1f93e-1f3fe","🤾🏿":"1f93e-1f3ff","🤹🏻":"1f939-1f3fb","🤹🏼":"1f939-1f3fc","🤹🏽":"1f939-1f3fd","🤹🏾":"1f939-1f3fe","🤹🏿":"1f939-1f3ff","🤳🏻":"1f933-1f3fb","🤳🏼":"1f933-1f3fc","🤳🏽":"1f933-1f3fd","🤳🏾":"1f933-1f3fe","🤳🏿":"1f933-1f3ff","💪🏻":"1f4aa-1f3fb","💪🏼":"1f4aa-1f3fc","💪🏽":"1f4aa-1f3fd","💪🏾":"1f4aa-1f3fe","💪🏿":"1f4aa-1f3ff","👈🏻":"1f448-1f3fb","👈🏼":"1f448-1f3fc","👈🏽":"1f448-1f3fd","👈🏾":"1f448-1f3fe","👈🏿":"1f448-1f3ff","👉🏻":"1f449-1f3fb","👉🏼":"1f449-1f3fc","👉🏽":"1f449-1f3fd","👉🏾":"1f449-1f3fe","👉🏿":"1f449-1f3ff","☝️":"261d","☝🏻":"261d-1f3fb","☝🏼":"261d-1f3fc","☝🏽":"261d-1f3fd","☝🏾":"261d-1f3fe","☝🏿":"261d-1f3ff","👆🏻":"1f446-1f3fb","👆🏼":"1f446-1f3fc","👆🏽":"1f446-1f3fd","👆🏾":"1f446-1f3fe","👆🏿":"1f446-1f3ff","🖕🏻":"1f595-1f3fb","🖕🏼":"1f595-1f3fc","🖕🏽":"1f595-1f3fd","🖕🏾":"1f595-1f3fe","🖕🏿":"1f595-1f3ff","👇🏻":"1f447-1f3fb","👇🏼":"1f447-1f3fc","👇🏽":"1f447-1f3fd","👇🏾":"1f447-1f3fe","👇🏿":"1f447-1f3ff","✌️":"270c","✌🏻":"270c-1f3fb","✌🏼":"270c-1f3fc","✌🏽":"270c-1f3fd","✌🏾":"270c-1f3fe","✌🏿":"270c-1f3ff","🤞🏻":"1f91e-1f3fb","🤞🏼":"1f91e-1f3fc","🤞🏽":"1f91e-1f3fd","🤞🏾":"1f91e-1f3fe","🤞🏿":"1f91e-1f3ff","🖖🏻":"1f596-1f3fb","🖖🏼":"1f596-1f3fc","🖖🏽":"1f596-1f3fd","🖖🏾":"1f596-1f3fe","🖖🏿":"1f596-1f3ff","🤘🏻":"1f918-1f3fb","🤘🏼":"1f918-1f3fc","🤘🏽":"1f918-1f3fd","🤘🏾":"1f918-1f3fe","🤘🏿":"1f918-1f3ff","🤙🏻":"1f919-1f3fb","🤙🏼":"1f919-1f3fc","🤙🏽":"1f919-1f3fd","🤙🏾":"1f919-1f3fe","🤙🏿":"1f919-1f3ff","🖐️":"1f590","🖐🏻":"1f590-1f3fb","🖐🏼":"1f590-1f3fc","🖐🏽":"1f590-1f3fd","🖐🏾":"1f590-1f3fe","🖐🏿":"1f590-1f3ff","✋🏻":"270b-1f3fb","✋🏼":"270b-1f3fc","✋🏽":"270b-1f3fd","✋🏾":"270b-1f3fe","✋🏿":"270b-1f3ff","👌🏻":"1f44c-1f3fb","👌🏼":"1f44c-1f3fc","👌🏽":"1f44c-1f3fd","👌🏾":"1f44c-1f3fe","👌🏿":"1f44c-1f3ff","👍🏻":"1f44d-1f3fb","👍🏼":"1f44d-1f3fc","👍🏽":"1f44d-1f3fd","👍🏾":"1f44d-1f3fe","👍🏿":"1f44d-1f3ff","👎🏻":"1f44e-1f3fb","👎🏼":"1f44e-1f3fc","👎🏽":"1f44e-1f3fd","👎🏾":"1f44e-1f3fe","👎🏿":"1f44e-1f3ff","✊🏻":"270a-1f3fb","✊🏼":"270a-1f3fc","✊🏽":"270a-1f3fd","✊🏾":"270a-1f3fe","✊🏿":"270a-1f3ff","👊🏻":"1f44a-1f3fb","👊🏼":"1f44a-1f3fc","👊🏽":"1f44a-1f3fd","👊🏾":"1f44a-1f3fe","👊🏿":"1f44a-1f3ff","🤛🏻":"1f91b-1f3fb","🤛🏼":"1f91b-1f3fc","🤛🏽":"1f91b-1f3fd","🤛🏾":"1f91b-1f3fe","🤛🏿":"1f91b-1f3ff","🤜🏻":"1f91c-1f3fb","🤜🏼":"1f91c-1f3fc","🤜🏽":"1f91c-1f3fd","🤜🏾":"1f91c-1f3fe","🤜🏿":"1f91c-1f3ff","🤚🏻":"1f91a-1f3fb","🤚🏼":"1f91a-1f3fc","🤚🏽":"1f91a-1f3fd","🤚🏾":"1f91a-1f3fe","🤚🏿":"1f91a-1f3ff","👋🏻":"1f44b-1f3fb","👋🏼":"1f44b-1f3fc","👋🏽":"1f44b-1f3fd","👋🏾":"1f44b-1f3fe","👋🏿":"1f44b-1f3ff","🤟🏻":"1f91f-1f3fb","🤟🏼":"1f91f-1f3fc","🤟🏽":"1f91f-1f3fd","🤟🏾":"1f91f-1f3fe","🤟🏿":"1f91f-1f3ff","✍️":"270d","✍🏻":"270d-1f3fb","✍🏼":"270d-1f3fc","✍🏽":"270d-1f3fd","✍🏾":"270d-1f3fe","✍🏿":"270d-1f3ff","👏🏻":"1f44f-1f3fb","👏🏼":"1f44f-1f3fc","👏🏽":"1f44f-1f3fd","👏🏾":"1f44f-1f3fe","👏🏿":"1f44f-1f3ff","👐🏻":"1f450-1f3fb","👐🏼":"1f450-1f3fc","👐🏽":"1f450-1f3fd","👐🏾":"1f450-1f3fe","👐🏿":"1f450-1f3ff","🙌🏻":"1f64c-1f3fb","🙌🏼":"1f64c-1f3fc","🙌🏽":"1f64c-1f3fd","🙌🏾":"1f64c-1f3fe","🙌🏿":"1f64c-1f3ff","🤲🏻":"1f932-1f3fb","🤲🏼":"1f932-1f3fc","🤲🏽":"1f932-1f3fd","🤲🏾":"1f932-1f3fe","🤲🏿":"1f932-1f3ff","🙏🏻":"1f64f-1f3fb","🙏🏼":"1f64f-1f3fc","🙏🏽":"1f64f-1f3fd","🙏🏾":"1f64f-1f3fe","🙏🏿":"1f64f-1f3ff","💅🏻":"1f485-1f3fb","💅🏼":"1f485-1f3fc","💅🏽":"1f485-1f3fd","💅🏾":"1f485-1f3fe","💅🏿":"1f485-1f3ff","👂🏻":"1f442-1f3fb","👂🏼":"1f442-1f3fc","👂🏽":"1f442-1f3fd","👂🏾":"1f442-1f3fe","👂🏿":"1f442-1f3ff","👃🏻":"1f443-1f3fb","👃🏼":"1f443-1f3fc","👃🏽":"1f443-1f3fd","👃🏾":"1f443-1f3fe","👃🏿":"1f443-1f3ff","👁️":"1f441","❤️":"2764","❣️":"2763","🗨️":"1f5e8","🗯️":"1f5ef","🕳️":"1f573","🕶️":"1f576","🛍️":"1f6cd","⛑️":"26d1","🐿️":"1f43f","🕊️":"1f54a","🕷️":"1f577","🕸️":"1f578","🏵️":"1f3f5","☘️":"2618","🌶️":"1f336","🍽️":"1f37d","🗺️":"1f5fa","🏔️":"1f3d4","⛰️":"26f0","🏕️":"1f3d5","🏖️":"1f3d6","🏜️":"1f3dc","🏝️":"1f3dd","🏞️":"1f3de","🏟️":"1f3df","🏛️":"1f3db","🏗️":"1f3d7","🏘️":"1f3d8","🏙️":"1f3d9","🏚️":"1f3da","⛩️":"26e9","♨️":"2668","🖼️":"1f5bc","🛣️":"1f6e3","🛤️":"1f6e4","🛳️":"1f6f3","⛴️":"26f4","🛥️":"1f6e5","✈️":"2708","🛩️":"1f6e9","🛰️":"1f6f0","🛎️":"1f6ce","🛏️":"1f6cf","🛋️":"1f6cb","⏱️":"23f1","⏲️":"23f2","🕰️":"1f570","🌡️":"1f321","☀️":"2600","☁️":"2601","⛈️":"26c8","🌤️":"1f324","🌥️":"1f325","🌦️":"1f326","🌧️":"1f327","🌨️":"1f328","🌩️":"1f329","🌪️":"1f32a","🌫️":"1f32b","🌬️":"1f32c","☂️":"2602","⛱️":"26f1","❄️":"2744","☃️":"2603","☄️":"2604","🎗️":"1f397","🎟️":"1f39f","🎖️":"1f396","⛸️":"26f8","🕹️":"1f579","♠️":"2660","♥️":"2665","♦️":"2666","♣️":"2663","🎙️":"1f399","🎚️":"1f39a","🎛️":"1f39b","☎️":"260e","🖥️":"1f5a5","🖨️":"1f5a8","⌨️":"2328","🖱️":"1f5b1","🖲️":"1f5b2","🎞️":"1f39e","📽️":"1f4fd","🕯️":"1f56f","🗞️":"1f5de","🏷️":"1f3f7","✉️":"2709","🗳️":"1f5f3","✏️":"270f","✒️":"2712","🖋️":"1f58b","🖊️":"1f58a","🖌️":"1f58c","🖍️":"1f58d","🗂️":"1f5c2","🗒️":"1f5d2","🗓️":"1f5d3","🖇️":"1f587","✂️":"2702","🗃️":"1f5c3","🗄️":"1f5c4","🗑️":"1f5d1","🗝️":"1f5dd","⛏️":"26cf","⚒️":"2692","🛠️":"1f6e0","🗡️":"1f5e1","⚔️":"2694","🛡️":"1f6e1","⚙️":"2699","🗜️":"1f5dc","⚗️":"2697","⚖️":"2696","⛓️":"26d3","⚰️":"26b0","⚱️":"26b1","🛢️":"1f6e2","⚠️":"26a0","☢️":"2622","☣️":"2623","⬆️":"2b06","↗️":"2197","➡️":"27a1","↘️":"2198","⬇️":"2b07","↙️":"2199","⬅️":"2b05","↖️":"2196","↕️":"2195","↔️":"2194","↩️":"21a9","↪️":"21aa","⤴️":"2934","⤵️":"2935","⚛️":"269b","🕉️":"1f549","✡️":"2721","☸️":"2638","☯️":"262f","✝️":"271d","☦️":"2626","☪️":"262a","☮️":"262e","▶️":"25b6","⏭️":"23ed","⏯️":"23ef","◀️":"25c0","⏮️":"23ee","⏸️":"23f8","⏹️":"23f9","⏺️":"23fa","⏏️":"23cf","♀️":"2640","♂️":"2642","⚕️":"2695","♻️":"267b","⚜️":"269c","☑️":"2611","✔️":"2714","✖️":"2716","〽️":"303d","✳️":"2733","✴️":"2734","❇️":"2747","‼️":"203c","⁉️":"2049","〰️":"3030","©️":"a9","®️":"ae","™️":"2122","#⃣":"23-20e3","*⃣":"2a-20e3","0⃣":"30-20e3","1⃣":"31-20e3","2⃣":"32-20e3","3⃣":"33-20e3","4⃣":"34-20e3","5⃣":"35-20e3","6⃣":"36-20e3","7⃣":"37-20e3","8⃣":"38-20e3","9⃣":"39-20e3","🅰️":"1f170","🅱️":"1f171","ℹ️":"2139","Ⓜ️":"24c2","🅾️":"1f17e","🅿️":"1f17f","🈂️":"1f202","🈷️":"1f237","㊗️":"3297","㊙️":"3299","▪️":"25aa","▫️":"25ab","◻️":"25fb","◼️":"25fc","🏳️":"1f3f3","🇦🇨":"1f1e6-1f1e8","🇦🇩":"1f1e6-1f1e9","🇦🇪":"1f1e6-1f1ea","🇦🇫":"1f1e6-1f1eb","🇦🇬":"1f1e6-1f1ec","🇦🇮":"1f1e6-1f1ee","🇦🇱":"1f1e6-1f1f1","🇦🇲":"1f1e6-1f1f2","🇦🇴":"1f1e6-1f1f4","🇦🇶":"1f1e6-1f1f6","🇦🇷":"1f1e6-1f1f7","🇦🇸":"1f1e6-1f1f8","🇦🇹":"1f1e6-1f1f9","🇦🇺":"1f1e6-1f1fa","🇦🇼":"1f1e6-1f1fc","🇦🇽":"1f1e6-1f1fd","🇦🇿":"1f1e6-1f1ff","🇧🇦":"1f1e7-1f1e6","🇧🇧":"1f1e7-1f1e7","🇧🇩":"1f1e7-1f1e9","🇧🇪":"1f1e7-1f1ea","🇧🇫":"1f1e7-1f1eb","🇧🇬":"1f1e7-1f1ec","🇧🇭":"1f1e7-1f1ed","🇧🇮":"1f1e7-1f1ee","🇧🇯":"1f1e7-1f1ef","🇧🇱":"1f1e7-1f1f1","🇧🇲":"1f1e7-1f1f2","🇧🇳":"1f1e7-1f1f3","🇧🇴":"1f1e7-1f1f4","🇧🇶":"1f1e7-1f1f6","🇧🇷":"1f1e7-1f1f7","🇧🇸":"1f1e7-1f1f8","🇧🇹":"1f1e7-1f1f9","🇧🇻":"1f1e7-1f1fb","🇧🇼":"1f1e7-1f1fc","🇧🇾":"1f1e7-1f1fe","🇧🇿":"1f1e7-1f1ff","🇨🇦":"1f1e8-1f1e6","🇨🇨":"1f1e8-1f1e8","🇨🇩":"1f1e8-1f1e9","🇨🇫":"1f1e8-1f1eb","🇨🇬":"1f1e8-1f1ec","🇨🇭":"1f1e8-1f1ed","🇨🇮":"1f1e8-1f1ee","🇨🇰":"1f1e8-1f1f0","🇨🇱":"1f1e8-1f1f1","🇨🇲":"1f1e8-1f1f2","🇨🇳":"1f1e8-1f1f3","🇨🇴":"1f1e8-1f1f4","🇨🇵":"1f1e8-1f1f5","🇨🇷":"1f1e8-1f1f7","🇨🇺":"1f1e8-1f1fa","🇨🇻":"1f1e8-1f1fb","🇨🇼":"1f1e8-1f1fc","🇨🇽":"1f1e8-1f1fd","🇨🇾":"1f1e8-1f1fe","🇨🇿":"1f1e8-1f1ff","🇩🇪":"1f1e9-1f1ea","🇩🇬":"1f1e9-1f1ec","🇩🇯":"1f1e9-1f1ef","🇩🇰":"1f1e9-1f1f0","🇩🇲":"1f1e9-1f1f2","🇩🇴":"1f1e9-1f1f4","🇩🇿":"1f1e9-1f1ff","🇪🇦":"1f1ea-1f1e6","🇪🇨":"1f1ea-1f1e8","🇪🇪":"1f1ea-1f1ea","🇪🇬":"1f1ea-1f1ec","🇪🇭":"1f1ea-1f1ed","🇪🇷":"1f1ea-1f1f7","🇪🇸":"1f1ea-1f1f8","🇪🇹":"1f1ea-1f1f9","🇪🇺":"1f1ea-1f1fa","🇫🇮":"1f1eb-1f1ee","🇫🇯":"1f1eb-1f1ef","🇫🇰":"1f1eb-1f1f0","🇫🇲":"1f1eb-1f1f2","🇫🇴":"1f1eb-1f1f4","🇫🇷":"1f1eb-1f1f7","🇬🇦":"1f1ec-1f1e6","🇬🇧":"1f1ec-1f1e7","🇬🇩":"1f1ec-1f1e9","🇬🇪":"1f1ec-1f1ea","🇬🇫":"1f1ec-1f1eb","🇬🇬":"1f1ec-1f1ec","🇬🇭":"1f1ec-1f1ed","🇬🇮":"1f1ec-1f1ee","🇬🇱":"1f1ec-1f1f1","🇬🇲":"1f1ec-1f1f2","🇬🇳":"1f1ec-1f1f3","🇬🇵":"1f1ec-1f1f5","🇬🇶":"1f1ec-1f1f6","🇬🇷":"1f1ec-1f1f7","🇬🇸":"1f1ec-1f1f8","🇬🇹":"1f1ec-1f1f9","🇬🇺":"1f1ec-1f1fa","🇬🇼":"1f1ec-1f1fc","🇬🇾":"1f1ec-1f1fe","🇭🇰":"1f1ed-1f1f0","🇭🇲":"1f1ed-1f1f2","🇭🇳":"1f1ed-1f1f3","🇭🇷":"1f1ed-1f1f7","🇭🇹":"1f1ed-1f1f9","🇭🇺":"1f1ed-1f1fa","🇮🇨":"1f1ee-1f1e8","🇮🇩":"1f1ee-1f1e9","🇮🇪":"1f1ee-1f1ea","🇮🇱":"1f1ee-1f1f1","🇮🇲":"1f1ee-1f1f2","🇮🇳":"1f1ee-1f1f3","🇮🇴":"1f1ee-1f1f4","🇮🇶":"1f1ee-1f1f6","🇮🇷":"1f1ee-1f1f7","🇮🇸":"1f1ee-1f1f8","🇮🇹":"1f1ee-1f1f9","🇯🇪":"1f1ef-1f1ea","🇯🇲":"1f1ef-1f1f2","🇯🇴":"1f1ef-1f1f4","🇯🇵":"1f1ef-1f1f5","🇰🇪":"1f1f0-1f1ea","🇰🇬":"1f1f0-1f1ec","🇰🇭":"1f1f0-1f1ed","🇰🇮":"1f1f0-1f1ee","🇰🇲":"1f1f0-1f1f2","🇰🇳":"1f1f0-1f1f3","🇰🇵":"1f1f0-1f1f5","🇰🇷":"1f1f0-1f1f7","🇰🇼":"1f1f0-1f1fc","🇰🇾":"1f1f0-1f1fe","🇰🇿":"1f1f0-1f1ff","🇱🇦":"1f1f1-1f1e6","🇱🇧":"1f1f1-1f1e7","🇱🇨":"1f1f1-1f1e8","🇱🇮":"1f1f1-1f1ee","🇱🇰":"1f1f1-1f1f0","🇱🇷":"1f1f1-1f1f7","🇱🇸":"1f1f1-1f1f8","🇱🇹":"1f1f1-1f1f9","🇱🇺":"1f1f1-1f1fa","🇱🇻":"1f1f1-1f1fb","🇱🇾":"1f1f1-1f1fe","🇲🇦":"1f1f2-1f1e6","🇲🇨":"1f1f2-1f1e8","🇲🇩":"1f1f2-1f1e9","🇲🇪":"1f1f2-1f1ea","🇲🇫":"1f1f2-1f1eb","🇲🇬":"1f1f2-1f1ec","🇲🇭":"1f1f2-1f1ed","🇲🇰":"1f1f2-1f1f0","🇲🇱":"1f1f2-1f1f1","🇲🇲":"1f1f2-1f1f2","🇲🇳":"1f1f2-1f1f3","🇲🇴":"1f1f2-1f1f4","🇲🇵":"1f1f2-1f1f5","🇲🇶":"1f1f2-1f1f6","🇲🇷":"1f1f2-1f1f7","🇲🇸":"1f1f2-1f1f8","🇲🇹":"1f1f2-1f1f9","🇲🇺":"1f1f2-1f1fa","🇲🇻":"1f1f2-1f1fb","🇲🇼":"1f1f2-1f1fc","🇲🇽":"1f1f2-1f1fd","🇲🇾":"1f1f2-1f1fe","🇲🇿":"1f1f2-1f1ff","🇳🇦":"1f1f3-1f1e6","🇳🇨":"1f1f3-1f1e8","🇳🇪":"1f1f3-1f1ea","🇳🇫":"1f1f3-1f1eb","🇳🇬":"1f1f3-1f1ec","🇳🇮":"1f1f3-1f1ee","🇳🇱":"1f1f3-1f1f1","🇳🇴":"1f1f3-1f1f4","🇳🇵":"1f1f3-1f1f5","🇳🇷":"1f1f3-1f1f7","🇳🇺":"1f1f3-1f1fa","🇳🇿":"1f1f3-1f1ff","🇴🇲":"1f1f4-1f1f2","🇵🇦":"1f1f5-1f1e6","🇵🇪":"1f1f5-1f1ea","🇵🇫":"1f1f5-1f1eb","🇵🇬":"1f1f5-1f1ec","🇵🇭":"1f1f5-1f1ed","🇵🇰":"1f1f5-1f1f0","🇵🇱":"1f1f5-1f1f1","🇵🇲":"1f1f5-1f1f2","🇵🇳":"1f1f5-1f1f3","🇵🇷":"1f1f5-1f1f7","🇵🇸":"1f1f5-1f1f8","🇵🇹":"1f1f5-1f1f9","🇵🇼":"1f1f5-1f1fc","🇵🇾":"1f1f5-1f1fe","🇶🇦":"1f1f6-1f1e6","🇷🇪":"1f1f7-1f1ea","🇷🇴":"1f1f7-1f1f4","🇷🇸":"1f1f7-1f1f8","🇷🇺":"1f1f7-1f1fa","🇷🇼":"1f1f7-1f1fc","🇸🇦":"1f1f8-1f1e6","🇸🇧":"1f1f8-1f1e7","🇸🇨":"1f1f8-1f1e8","🇸🇩":"1f1f8-1f1e9","🇸🇪":"1f1f8-1f1ea","🇸🇬":"1f1f8-1f1ec","🇸🇭":"1f1f8-1f1ed","🇸🇮":"1f1f8-1f1ee","🇸🇯":"1f1f8-1f1ef","🇸🇰":"1f1f8-1f1f0","🇸🇱":"1f1f8-1f1f1","🇸🇲":"1f1f8-1f1f2","🇸🇳":"1f1f8-1f1f3","🇸🇴":"1f1f8-1f1f4","🇸🇷":"1f1f8-1f1f7","🇸🇸":"1f1f8-1f1f8","🇸🇹":"1f1f8-1f1f9","🇸🇻":"1f1f8-1f1fb","🇸🇽":"1f1f8-1f1fd","🇸🇾":"1f1f8-1f1fe","🇸🇿":"1f1f8-1f1ff","🇹🇦":"1f1f9-1f1e6","🇹🇨":"1f1f9-1f1e8","🇹🇩":"1f1f9-1f1e9","🇹🇫":"1f1f9-1f1eb","🇹🇬":"1f1f9-1f1ec","🇹🇭":"1f1f9-1f1ed","🇹🇯":"1f1f9-1f1ef","🇹🇰":"1f1f9-1f1f0","🇹🇱":"1f1f9-1f1f1","🇹🇲":"1f1f9-1f1f2","🇹🇳":"1f1f9-1f1f3","🇹🇴":"1f1f9-1f1f4","🇹🇷":"1f1f9-1f1f7","🇹🇹":"1f1f9-1f1f9","🇹🇻":"1f1f9-1f1fb","🇹🇼":"1f1f9-1f1fc","🇹🇿":"1f1f9-1f1ff","🇺🇦":"1f1fa-1f1e6","🇺🇬":"1f1fa-1f1ec","🇺🇲":"1f1fa-1f1f2","🇺🇳":"1f1fa-1f1f3","🇺🇸":"1f1fa-1f1f8","🇺🇾":"1f1fa-1f1fe","🇺🇿":"1f1fa-1f1ff","🇻🇦":"1f1fb-1f1e6","🇻🇨":"1f1fb-1f1e8","🇻🇪":"1f1fb-1f1ea","🇻🇬":"1f1fb-1f1ec","🇻🇮":"1f1fb-1f1ee","🇻🇳":"1f1fb-1f1f3","🇻🇺":"1f1fb-1f1fa","🇼🇫":"1f1fc-1f1eb","🇼🇸":"1f1fc-1f1f8","🇽🇰":"1f1fd-1f1f0","🇾🇪":"1f1fe-1f1ea","🇾🇹":"1f1fe-1f1f9","🇿🇦":"1f1ff-1f1e6","🇿🇲":"1f1ff-1f1f2","🇿🇼":"1f1ff-1f1fc","👨⚕":"1f468-200d-2695-fe0f","👩⚕":"1f469-200d-2695-fe0f","👨🎓":"1f468-200d-1f393","👩🎓":"1f469-200d-1f393","👨🏫":"1f468-200d-1f3eb","👩🏫":"1f469-200d-1f3eb","👨⚖":"1f468-200d-2696-fe0f","👩⚖":"1f469-200d-2696-fe0f","👨🌾":"1f468-200d-1f33e","👩🌾":"1f469-200d-1f33e","👨🍳":"1f468-200d-1f373","👩🍳":"1f469-200d-1f373","👨🔧":"1f468-200d-1f527","👩🔧":"1f469-200d-1f527","👨🏭":"1f468-200d-1f3ed","👩🏭":"1f469-200d-1f3ed","👨💼":"1f468-200d-1f4bc","👩💼":"1f469-200d-1f4bc","👨🔬":"1f468-200d-1f52c","👩🔬":"1f469-200d-1f52c","👨💻":"1f468-200d-1f4bb","👩💻":"1f469-200d-1f4bb","👨🎤":"1f468-200d-1f3a4","👩🎤":"1f469-200d-1f3a4","👨🎨":"1f468-200d-1f3a8","👩🎨":"1f469-200d-1f3a8","👨✈":"1f468-200d-2708-fe0f","👩✈":"1f469-200d-2708-fe0f","👨🚀":"1f468-200d-1f680","👩🚀":"1f469-200d-1f680","👨🚒":"1f468-200d-1f692","👩🚒":"1f469-200d-1f692","👮♂":"1f46e-200d-2642-fe0f","👮♀":"1f46e-200d-2640-fe0f","🕵♂":"1f575-fe0f-200d-2642-fe0f","🕵♀":"1f575-fe0f-200d-2640-fe0f","💂♂":"1f482-200d-2642-fe0f","💂♀":"1f482-200d-2640-fe0f","👷♂":"1f477-200d-2642-fe0f","👷♀":"1f477-200d-2640-fe0f","👳♂":"1f473-200d-2642-fe0f","👳♀":"1f473-200d-2640-fe0f","👱♂":"1f471-200d-2642-fe0f","👱♀":"1f471-200d-2640-fe0f","🧙♀":"1f9d9-200d-2640-fe0f","🧙♂":"1f9d9-200d-2642-fe0f","🧚♀":"1f9da-200d-2640-fe0f","🧚♂":"1f9da-200d-2642-fe0f","🧛♀":"1f9db-200d-2640-fe0f","🧛♂":"1f9db-200d-2642-fe0f","🧜♀":"1f9dc-200d-2640-fe0f","🧜♂":"1f9dc-200d-2642-fe0f","🧝♀":"1f9dd-200d-2640-fe0f","🧝♂":"1f9dd-200d-2642-fe0f","🧞♀":"1f9de-200d-2640-fe0f","🧞♂":"1f9de-200d-2642-fe0f","🧟♀":"1f9df-200d-2640-fe0f","🧟♂":"1f9df-200d-2642-fe0f","🙍♂":"1f64d-200d-2642-fe0f","🙍♀":"1f64d-200d-2640-fe0f","🙎♂":"1f64e-200d-2642-fe0f","🙎♀":"1f64e-200d-2640-fe0f","🙅♂":"1f645-200d-2642-fe0f","🙅♀":"1f645-200d-2640-fe0f","🙆♂":"1f646-200d-2642-fe0f","🙆♀":"1f646-200d-2640-fe0f","💁♂":"1f481-200d-2642-fe0f","💁♀":"1f481-200d-2640-fe0f","🙋♂":"1f64b-200d-2642-fe0f","🙋♀":"1f64b-200d-2640-fe0f","🙇♂":"1f647-200d-2642-fe0f","🙇♀":"1f647-200d-2640-fe0f","🤦♂":"1f926-200d-2642-fe0f","🤦♀":"1f926-200d-2640-fe0f","🤷♂":"1f937-200d-2642-fe0f","🤷♀":"1f937-200d-2640-fe0f","💆♂":"1f486-200d-2642-fe0f","💆♀":"1f486-200d-2640-fe0f","💇♂":"1f487-200d-2642-fe0f","💇♀":"1f487-200d-2640-fe0f","🚶♂":"1f6b6-200d-2642-fe0f","🚶♀":"1f6b6-200d-2640-fe0f","🏃♂":"1f3c3-200d-2642-fe0f","🏃♀":"1f3c3-200d-2640-fe0f","👯♂":"1f46f-200d-2642-fe0f","👯♀":"1f46f-200d-2640-fe0f","🧖♀":"1f9d6-200d-2640-fe0f","🧖♂":"1f9d6-200d-2642-fe0f","🧗♀":"1f9d7-200d-2640-fe0f","🧗♂":"1f9d7-200d-2642-fe0f","🧘♀":"1f9d8-200d-2640-fe0f","🧘♂":"1f9d8-200d-2642-fe0f","🏌♂":"1f3cc-fe0f-200d-2642-fe0f","🏌♀":"1f3cc-fe0f-200d-2640-fe0f","🏄♂":"1f3c4-200d-2642-fe0f","🏄♀":"1f3c4-200d-2640-fe0f","🚣♂":"1f6a3-200d-2642-fe0f","🚣♀":"1f6a3-200d-2640-fe0f","🏊♂":"1f3ca-200d-2642-fe0f","🏊♀":"1f3ca-200d-2640-fe0f","⛹♂":"26f9-fe0f-200d-2642-fe0f","⛹♀":"26f9-fe0f-200d-2640-fe0f","🏋♂":"1f3cb-fe0f-200d-2642-fe0f","🏋♀":"1f3cb-fe0f-200d-2640-fe0f","🚴♂":"1f6b4-200d-2642-fe0f","🚴♀":"1f6b4-200d-2640-fe0f","🚵♂":"1f6b5-200d-2642-fe0f","🚵♀":"1f6b5-200d-2640-fe0f","🤸♂":"1f938-200d-2642-fe0f","🤸♀":"1f938-200d-2640-fe0f","🤼♂":"1f93c-200d-2642-fe0f","🤼♀":"1f93c-200d-2640-fe0f","🤽♂":"1f93d-200d-2642-fe0f","🤽♀":"1f93d-200d-2640-fe0f","🤾♂":"1f93e-200d-2642-fe0f","🤾♀":"1f93e-200d-2640-fe0f","🤹♂":"1f939-200d-2642-fe0f","🤹♀":"1f939-200d-2640-fe0f","👨👦":"1f468-200d-1f466","👨👧":"1f468-200d-1f467","👩👦":"1f469-200d-1f466","👩👧":"1f469-200d-1f467","👁🗨":"1f441-200d-1f5e8","#️⃣":"23-20e3","*️⃣":"2a-20e3","0️⃣":"30-20e3","1️⃣":"31-20e3","2️⃣":"32-20e3","3️⃣":"33-20e3","4️⃣":"34-20e3","5️⃣":"35-20e3","6️⃣":"36-20e3","7️⃣":"37-20e3","8️⃣":"38-20e3","9️⃣":"39-20e3","🏳🌈":"1f3f3-fe0f-200d-1f308","👨⚕️":"1f468-200d-2695-fe0f","👨🏻⚕":"1f468-1f3fb-200d-2695-fe0f","👨🏼⚕":"1f468-1f3fc-200d-2695-fe0f","👨🏽⚕":"1f468-1f3fd-200d-2695-fe0f","👨🏾⚕":"1f468-1f3fe-200d-2695-fe0f","👨🏿⚕":"1f468-1f3ff-200d-2695-fe0f","👩⚕️":"1f469-200d-2695-fe0f","👩🏻⚕":"1f469-1f3fb-200d-2695-fe0f","👩🏼⚕":"1f469-1f3fc-200d-2695-fe0f","👩🏽⚕":"1f469-1f3fd-200d-2695-fe0f","👩🏾⚕":"1f469-1f3fe-200d-2695-fe0f","👩🏿⚕":"1f469-1f3ff-200d-2695-fe0f","👨🏻🎓":"1f468-1f3fb-200d-1f393","👨🏼🎓":"1f468-1f3fc-200d-1f393","👨🏽🎓":"1f468-1f3fd-200d-1f393","👨🏾🎓":"1f468-1f3fe-200d-1f393","👨🏿🎓":"1f468-1f3ff-200d-1f393","👩🏻🎓":"1f469-1f3fb-200d-1f393","👩🏼🎓":"1f469-1f3fc-200d-1f393","👩🏽🎓":"1f469-1f3fd-200d-1f393","👩🏾🎓":"1f469-1f3fe-200d-1f393","👩🏿🎓":"1f469-1f3ff-200d-1f393","👨🏻🏫":"1f468-1f3fb-200d-1f3eb","👨🏼🏫":"1f468-1f3fc-200d-1f3eb","👨🏽🏫":"1f468-1f3fd-200d-1f3eb","👨🏾🏫":"1f468-1f3fe-200d-1f3eb","👨🏿🏫":"1f468-1f3ff-200d-1f3eb","👩🏻🏫":"1f469-1f3fb-200d-1f3eb","👩🏼🏫":"1f469-1f3fc-200d-1f3eb","👩🏽🏫":"1f469-1f3fd-200d-1f3eb","👩🏾🏫":"1f469-1f3fe-200d-1f3eb","👩🏿🏫":"1f469-1f3ff-200d-1f3eb","👨⚖️":"1f468-200d-2696-fe0f","👨🏻⚖":"1f468-1f3fb-200d-2696-fe0f","👨🏼⚖":"1f468-1f3fc-200d-2696-fe0f","👨🏽⚖":"1f468-1f3fd-200d-2696-fe0f","👨🏾⚖":"1f468-1f3fe-200d-2696-fe0f","👨🏿⚖":"1f468-1f3ff-200d-2696-fe0f","👩⚖️":"1f469-200d-2696-fe0f","👩🏻⚖":"1f469-1f3fb-200d-2696-fe0f","👩🏼⚖":"1f469-1f3fc-200d-2696-fe0f","👩🏽⚖":"1f469-1f3fd-200d-2696-fe0f","👩🏾⚖":"1f469-1f3fe-200d-2696-fe0f","👩🏿⚖":"1f469-1f3ff-200d-2696-fe0f","👨🏻🌾":"1f468-1f3fb-200d-1f33e","👨🏼🌾":"1f468-1f3fc-200d-1f33e","👨🏽🌾":"1f468-1f3fd-200d-1f33e","👨🏾🌾":"1f468-1f3fe-200d-1f33e","👨🏿🌾":"1f468-1f3ff-200d-1f33e","👩🏻🌾":"1f469-1f3fb-200d-1f33e","👩🏼🌾":"1f469-1f3fc-200d-1f33e","👩🏽🌾":"1f469-1f3fd-200d-1f33e","👩🏾🌾":"1f469-1f3fe-200d-1f33e","👩🏿🌾":"1f469-1f3ff-200d-1f33e","👨🏻🍳":"1f468-1f3fb-200d-1f373","👨🏼🍳":"1f468-1f3fc-200d-1f373","👨🏽🍳":"1f468-1f3fd-200d-1f373","👨🏾🍳":"1f468-1f3fe-200d-1f373","👨🏿🍳":"1f468-1f3ff-200d-1f373","👩🏻🍳":"1f469-1f3fb-200d-1f373","👩🏼🍳":"1f469-1f3fc-200d-1f373","👩🏽🍳":"1f469-1f3fd-200d-1f373","👩🏾🍳":"1f469-1f3fe-200d-1f373","👩🏿🍳":"1f469-1f3ff-200d-1f373","👨🏻🔧":"1f468-1f3fb-200d-1f527","👨🏼🔧":"1f468-1f3fc-200d-1f527","👨🏽🔧":"1f468-1f3fd-200d-1f527","👨🏾🔧":"1f468-1f3fe-200d-1f527","👨🏿🔧":"1f468-1f3ff-200d-1f527","👩🏻🔧":"1f469-1f3fb-200d-1f527","👩🏼🔧":"1f469-1f3fc-200d-1f527","👩🏽🔧":"1f469-1f3fd-200d-1f527","👩🏾🔧":"1f469-1f3fe-200d-1f527","👩🏿🔧":"1f469-1f3ff-200d-1f527","👨🏻🏭":"1f468-1f3fb-200d-1f3ed","👨🏼🏭":"1f468-1f3fc-200d-1f3ed","👨🏽🏭":"1f468-1f3fd-200d-1f3ed","👨🏾🏭":"1f468-1f3fe-200d-1f3ed","👨🏿🏭":"1f468-1f3ff-200d-1f3ed","👩🏻🏭":"1f469-1f3fb-200d-1f3ed","👩🏼🏭":"1f469-1f3fc-200d-1f3ed","👩🏽🏭":"1f469-1f3fd-200d-1f3ed","👩🏾🏭":"1f469-1f3fe-200d-1f3ed","👩🏿🏭":"1f469-1f3ff-200d-1f3ed","👨🏻💼":"1f468-1f3fb-200d-1f4bc","👨🏼💼":"1f468-1f3fc-200d-1f4bc","👨🏽💼":"1f468-1f3fd-200d-1f4bc","👨🏾💼":"1f468-1f3fe-200d-1f4bc","👨🏿💼":"1f468-1f3ff-200d-1f4bc","👩🏻💼":"1f469-1f3fb-200d-1f4bc","👩🏼💼":"1f469-1f3fc-200d-1f4bc","👩🏽💼":"1f469-1f3fd-200d-1f4bc","👩🏾💼":"1f469-1f3fe-200d-1f4bc","👩🏿💼":"1f469-1f3ff-200d-1f4bc","👨🏻🔬":"1f468-1f3fb-200d-1f52c","👨🏼🔬":"1f468-1f3fc-200d-1f52c","👨🏽🔬":"1f468-1f3fd-200d-1f52c","👨🏾🔬":"1f468-1f3fe-200d-1f52c","👨🏿🔬":"1f468-1f3ff-200d-1f52c","👩🏻🔬":"1f469-1f3fb-200d-1f52c","👩🏼🔬":"1f469-1f3fc-200d-1f52c","👩🏽🔬":"1f469-1f3fd-200d-1f52c","👩🏾🔬":"1f469-1f3fe-200d-1f52c","👩🏿🔬":"1f469-1f3ff-200d-1f52c","👨🏻💻":"1f468-1f3fb-200d-1f4bb","👨🏼💻":"1f468-1f3fc-200d-1f4bb","👨🏽💻":"1f468-1f3fd-200d-1f4bb","👨🏾💻":"1f468-1f3fe-200d-1f4bb","👨🏿💻":"1f468-1f3ff-200d-1f4bb","👩🏻💻":"1f469-1f3fb-200d-1f4bb","👩🏼💻":"1f469-1f3fc-200d-1f4bb","👩🏽💻":"1f469-1f3fd-200d-1f4bb","👩🏾💻":"1f469-1f3fe-200d-1f4bb","👩🏿💻":"1f469-1f3ff-200d-1f4bb","👨🏻🎤":"1f468-1f3fb-200d-1f3a4","👨🏼🎤":"1f468-1f3fc-200d-1f3a4","👨🏽🎤":"1f468-1f3fd-200d-1f3a4","👨🏾🎤":"1f468-1f3fe-200d-1f3a4","👨🏿🎤":"1f468-1f3ff-200d-1f3a4","👩🏻🎤":"1f469-1f3fb-200d-1f3a4","👩🏼🎤":"1f469-1f3fc-200d-1f3a4","👩🏽🎤":"1f469-1f3fd-200d-1f3a4","👩🏾🎤":"1f469-1f3fe-200d-1f3a4","👩🏿🎤":"1f469-1f3ff-200d-1f3a4","👨🏻🎨":"1f468-1f3fb-200d-1f3a8","👨🏼🎨":"1f468-1f3fc-200d-1f3a8","👨🏽🎨":"1f468-1f3fd-200d-1f3a8","👨🏾🎨":"1f468-1f3fe-200d-1f3a8","👨🏿🎨":"1f468-1f3ff-200d-1f3a8","👩🏻🎨":"1f469-1f3fb-200d-1f3a8","👩🏼🎨":"1f469-1f3fc-200d-1f3a8","👩🏽🎨":"1f469-1f3fd-200d-1f3a8","👩🏾🎨":"1f469-1f3fe-200d-1f3a8","👩🏿🎨":"1f469-1f3ff-200d-1f3a8","👨✈️":"1f468-200d-2708-fe0f","👨🏻✈":"1f468-1f3fb-200d-2708-fe0f","👨🏼✈":"1f468-1f3fc-200d-2708-fe0f","👨🏽✈":"1f468-1f3fd-200d-2708-fe0f","👨🏾✈":"1f468-1f3fe-200d-2708-fe0f","👨🏿✈":"1f468-1f3ff-200d-2708-fe0f","👩✈️":"1f469-200d-2708-fe0f","👩🏻✈":"1f469-1f3fb-200d-2708-fe0f","👩🏼✈":"1f469-1f3fc-200d-2708-fe0f","👩🏽✈":"1f469-1f3fd-200d-2708-fe0f","👩🏾✈":"1f469-1f3fe-200d-2708-fe0f","👩🏿✈":"1f469-1f3ff-200d-2708-fe0f","👨🏻🚀":"1f468-1f3fb-200d-1f680","👨🏼🚀":"1f468-1f3fc-200d-1f680","👨🏽🚀":"1f468-1f3fd-200d-1f680","👨🏾🚀":"1f468-1f3fe-200d-1f680","👨🏿🚀":"1f468-1f3ff-200d-1f680","👩🏻🚀":"1f469-1f3fb-200d-1f680","👩🏼🚀":"1f469-1f3fc-200d-1f680","👩🏽🚀":"1f469-1f3fd-200d-1f680","👩🏾🚀":"1f469-1f3fe-200d-1f680","👩🏿🚀":"1f469-1f3ff-200d-1f680","👨🏻🚒":"1f468-1f3fb-200d-1f692","👨🏼🚒":"1f468-1f3fc-200d-1f692","👨🏽🚒":"1f468-1f3fd-200d-1f692","👨🏾🚒":"1f468-1f3fe-200d-1f692","👨🏿🚒":"1f468-1f3ff-200d-1f692","👩🏻🚒":"1f469-1f3fb-200d-1f692","👩🏼🚒":"1f469-1f3fc-200d-1f692","👩🏽🚒":"1f469-1f3fd-200d-1f692","👩🏾🚒":"1f469-1f3fe-200d-1f692","👩🏿🚒":"1f469-1f3ff-200d-1f692","👮♂️":"1f46e-200d-2642-fe0f","👮🏻♂":"1f46e-1f3fb-200d-2642-fe0f","👮🏼♂":"1f46e-1f3fc-200d-2642-fe0f","👮🏽♂":"1f46e-1f3fd-200d-2642-fe0f","👮🏾♂":"1f46e-1f3fe-200d-2642-fe0f","👮🏿♂":"1f46e-1f3ff-200d-2642-fe0f","👮♀️":"1f46e-200d-2640-fe0f","👮🏻♀":"1f46e-1f3fb-200d-2640-fe0f","👮🏼♀":"1f46e-1f3fc-200d-2640-fe0f","👮🏽♀":"1f46e-1f3fd-200d-2640-fe0f","👮🏾♀":"1f46e-1f3fe-200d-2640-fe0f","👮🏿♀":"1f46e-1f3ff-200d-2640-fe0f","🕵♂️":"1f575-fe0f-200d-2642-fe0f","🕵️♂":"1f575-fe0f-200d-2642-fe0f","🕵🏻♂":"1f575-1f3fb-200d-2642-fe0f","🕵🏼♂":"1f575-1f3fc-200d-2642-fe0f","🕵🏽♂":"1f575-1f3fd-200d-2642-fe0f","🕵🏾♂":"1f575-1f3fe-200d-2642-fe0f","🕵🏿♂":"1f575-1f3ff-200d-2642-fe0f","🕵♀️":"1f575-fe0f-200d-2640-fe0f","🕵️♀":"1f575-fe0f-200d-2640-fe0f","🕵🏻♀":"1f575-1f3fb-200d-2640-fe0f","🕵🏼♀":"1f575-1f3fc-200d-2640-fe0f","🕵🏽♀":"1f575-1f3fd-200d-2640-fe0f","🕵🏾♀":"1f575-1f3fe-200d-2640-fe0f","🕵🏿♀":"1f575-1f3ff-200d-2640-fe0f","💂♂️":"1f482-200d-2642-fe0f","💂🏻♂":"1f482-1f3fb-200d-2642-fe0f","💂🏼♂":"1f482-1f3fc-200d-2642-fe0f","💂🏽♂":"1f482-1f3fd-200d-2642-fe0f","💂🏾♂":"1f482-1f3fe-200d-2642-fe0f","💂🏿♂":"1f482-1f3ff-200d-2642-fe0f","💂♀️":"1f482-200d-2640-fe0f","💂🏻♀":"1f482-1f3fb-200d-2640-fe0f","💂🏼♀":"1f482-1f3fc-200d-2640-fe0f","💂🏽♀":"1f482-1f3fd-200d-2640-fe0f","💂🏾♀":"1f482-1f3fe-200d-2640-fe0f","💂🏿♀":"1f482-1f3ff-200d-2640-fe0f","👷♂️":"1f477-200d-2642-fe0f","👷🏻♂":"1f477-1f3fb-200d-2642-fe0f","👷🏼♂":"1f477-1f3fc-200d-2642-fe0f","👷🏽♂":"1f477-1f3fd-200d-2642-fe0f","👷🏾♂":"1f477-1f3fe-200d-2642-fe0f","👷🏿♂":"1f477-1f3ff-200d-2642-fe0f","👷♀️":"1f477-200d-2640-fe0f","👷🏻♀":"1f477-1f3fb-200d-2640-fe0f","👷🏼♀":"1f477-1f3fc-200d-2640-fe0f","👷🏽♀":"1f477-1f3fd-200d-2640-fe0f","👷🏾♀":"1f477-1f3fe-200d-2640-fe0f","👷🏿♀":"1f477-1f3ff-200d-2640-fe0f","👳♂️":"1f473-200d-2642-fe0f","👳🏻♂":"1f473-1f3fb-200d-2642-fe0f","👳🏼♂":"1f473-1f3fc-200d-2642-fe0f","👳🏽♂":"1f473-1f3fd-200d-2642-fe0f","👳🏾♂":"1f473-1f3fe-200d-2642-fe0f","👳🏿♂":"1f473-1f3ff-200d-2642-fe0f","👳♀️":"1f473-200d-2640-fe0f","👳🏻♀":"1f473-1f3fb-200d-2640-fe0f","👳🏼♀":"1f473-1f3fc-200d-2640-fe0f","👳🏽♀":"1f473-1f3fd-200d-2640-fe0f","👳🏾♀":"1f473-1f3fe-200d-2640-fe0f","👳🏿♀":"1f473-1f3ff-200d-2640-fe0f","👱♂️":"1f471-200d-2642-fe0f","👱🏻♂":"1f471-1f3fb-200d-2642-fe0f","👱🏼♂":"1f471-1f3fc-200d-2642-fe0f","👱🏽♂":"1f471-1f3fd-200d-2642-fe0f","👱🏾♂":"1f471-1f3fe-200d-2642-fe0f","👱🏿♂":"1f471-1f3ff-200d-2642-fe0f","👱♀️":"1f471-200d-2640-fe0f","👱🏻♀":"1f471-1f3fb-200d-2640-fe0f","👱🏼♀":"1f471-1f3fc-200d-2640-fe0f","👱🏽♀":"1f471-1f3fd-200d-2640-fe0f","👱🏾♀":"1f471-1f3fe-200d-2640-fe0f","👱🏿♀":"1f471-1f3ff-200d-2640-fe0f","🧙♀️":"1f9d9-200d-2640-fe0f","🧙🏻♀":"1f9d9-1f3fb-200d-2640-fe0f","🧙🏼♀":"1f9d9-1f3fc-200d-2640-fe0f","🧙🏽♀":"1f9d9-1f3fd-200d-2640-fe0f","🧙🏾♀":"1f9d9-1f3fe-200d-2640-fe0f","🧙🏿♀":"1f9d9-1f3ff-200d-2640-fe0f","🧙♂️":"1f9d9-200d-2642-fe0f","🧙🏻♂":"1f9d9-1f3fb-200d-2642-fe0f","🧙🏼♂":"1f9d9-1f3fc-200d-2642-fe0f","🧙🏽♂":"1f9d9-1f3fd-200d-2642-fe0f","🧙🏾♂":"1f9d9-1f3fe-200d-2642-fe0f","🧙🏿♂":"1f9d9-1f3ff-200d-2642-fe0f","🧚♀️":"1f9da-200d-2640-fe0f","🧚🏻♀":"1f9da-1f3fb-200d-2640-fe0f","🧚🏼♀":"1f9da-1f3fc-200d-2640-fe0f","🧚🏽♀":"1f9da-1f3fd-200d-2640-fe0f","🧚🏾♀":"1f9da-1f3fe-200d-2640-fe0f","🧚🏿♀":"1f9da-1f3ff-200d-2640-fe0f","🧚♂️":"1f9da-200d-2642-fe0f","🧚🏻♂":"1f9da-1f3fb-200d-2642-fe0f","🧚🏼♂":"1f9da-1f3fc-200d-2642-fe0f","🧚🏽♂":"1f9da-1f3fd-200d-2642-fe0f","🧚🏾♂":"1f9da-1f3fe-200d-2642-fe0f","🧚🏿♂":"1f9da-1f3ff-200d-2642-fe0f","🧛♀️":"1f9db-200d-2640-fe0f","🧛🏻♀":"1f9db-1f3fb-200d-2640-fe0f","🧛🏼♀":"1f9db-1f3fc-200d-2640-fe0f","🧛🏽♀":"1f9db-1f3fd-200d-2640-fe0f","🧛🏾♀":"1f9db-1f3fe-200d-2640-fe0f","🧛🏿♀":"1f9db-1f3ff-200d-2640-fe0f","🧛♂️":"1f9db-200d-2642-fe0f","🧛🏻♂":"1f9db-1f3fb-200d-2642-fe0f","🧛🏼♂":"1f9db-1f3fc-200d-2642-fe0f","🧛🏽♂":"1f9db-1f3fd-200d-2642-fe0f","🧛🏾♂":"1f9db-1f3fe-200d-2642-fe0f","🧛🏿♂":"1f9db-1f3ff-200d-2642-fe0f","🧜♀️":"1f9dc-200d-2640-fe0f","🧜🏻♀":"1f9dc-1f3fb-200d-2640-fe0f","🧜🏼♀":"1f9dc-1f3fc-200d-2640-fe0f","🧜🏽♀":"1f9dc-1f3fd-200d-2640-fe0f","🧜🏾♀":"1f9dc-1f3fe-200d-2640-fe0f","🧜🏿♀":"1f9dc-1f3ff-200d-2640-fe0f","🧜♂️":"1f9dc-200d-2642-fe0f","🧜🏻♂":"1f9dc-1f3fb-200d-2642-fe0f","🧜🏼♂":"1f9dc-1f3fc-200d-2642-fe0f","🧜🏽♂":"1f9dc-1f3fd-200d-2642-fe0f","🧜🏾♂":"1f9dc-1f3fe-200d-2642-fe0f","🧜🏿♂":"1f9dc-1f3ff-200d-2642-fe0f","🧝♀️":"1f9dd-200d-2640-fe0f","🧝🏻♀":"1f9dd-1f3fb-200d-2640-fe0f","🧝🏼♀":"1f9dd-1f3fc-200d-2640-fe0f","🧝🏽♀":"1f9dd-1f3fd-200d-2640-fe0f","🧝🏾♀":"1f9dd-1f3fe-200d-2640-fe0f","🧝🏿♀":"1f9dd-1f3ff-200d-2640-fe0f","🧝♂️":"1f9dd-200d-2642-fe0f","🧝🏻♂":"1f9dd-1f3fb-200d-2642-fe0f","🧝🏼♂":"1f9dd-1f3fc-200d-2642-fe0f","🧝🏽♂":"1f9dd-1f3fd-200d-2642-fe0f","🧝🏾♂":"1f9dd-1f3fe-200d-2642-fe0f","🧝🏿♂":"1f9dd-1f3ff-200d-2642-fe0f","🧞♀️":"1f9de-200d-2640-fe0f","🧞♂️":"1f9de-200d-2642-fe0f","🧟♀️":"1f9df-200d-2640-fe0f","🧟♂️":"1f9df-200d-2642-fe0f","🙍♂️":"1f64d-200d-2642-fe0f","🙍🏻♂":"1f64d-1f3fb-200d-2642-fe0f","🙍🏼♂":"1f64d-1f3fc-200d-2642-fe0f","🙍🏽♂":"1f64d-1f3fd-200d-2642-fe0f","🙍🏾♂":"1f64d-1f3fe-200d-2642-fe0f","🙍🏿♂":"1f64d-1f3ff-200d-2642-fe0f","🙍♀️":"1f64d-200d-2640-fe0f","🙍🏻♀":"1f64d-1f3fb-200d-2640-fe0f","🙍🏼♀":"1f64d-1f3fc-200d-2640-fe0f","🙍🏽♀":"1f64d-1f3fd-200d-2640-fe0f","🙍🏾♀":"1f64d-1f3fe-200d-2640-fe0f","🙍🏿♀":"1f64d-1f3ff-200d-2640-fe0f","🙎♂️":"1f64e-200d-2642-fe0f","🙎🏻♂":"1f64e-1f3fb-200d-2642-fe0f","🙎🏼♂":"1f64e-1f3fc-200d-2642-fe0f","🙎🏽♂":"1f64e-1f3fd-200d-2642-fe0f","🙎🏾♂":"1f64e-1f3fe-200d-2642-fe0f","🙎🏿♂":"1f64e-1f3ff-200d-2642-fe0f","🙎♀️":"1f64e-200d-2640-fe0f","🙎🏻♀":"1f64e-1f3fb-200d-2640-fe0f","🙎🏼♀":"1f64e-1f3fc-200d-2640-fe0f","🙎🏽♀":"1f64e-1f3fd-200d-2640-fe0f","🙎🏾♀":"1f64e-1f3fe-200d-2640-fe0f","🙎🏿♀":"1f64e-1f3ff-200d-2640-fe0f","🙅♂️":"1f645-200d-2642-fe0f","🙅🏻♂":"1f645-1f3fb-200d-2642-fe0f","🙅🏼♂":"1f645-1f3fc-200d-2642-fe0f","🙅🏽♂":"1f645-1f3fd-200d-2642-fe0f","🙅🏾♂":"1f645-1f3fe-200d-2642-fe0f","🙅🏿♂":"1f645-1f3ff-200d-2642-fe0f","🙅♀️":"1f645-200d-2640-fe0f","🙅🏻♀":"1f645-1f3fb-200d-2640-fe0f","🙅🏼♀":"1f645-1f3fc-200d-2640-fe0f","🙅🏽♀":"1f645-1f3fd-200d-2640-fe0f","🙅🏾♀":"1f645-1f3fe-200d-2640-fe0f","🙅🏿♀":"1f645-1f3ff-200d-2640-fe0f","🙆♂️":"1f646-200d-2642-fe0f","🙆🏻♂":"1f646-1f3fb-200d-2642-fe0f","🙆🏼♂":"1f646-1f3fc-200d-2642-fe0f","🙆🏽♂":"1f646-1f3fd-200d-2642-fe0f","🙆🏾♂":"1f646-1f3fe-200d-2642-fe0f","🙆🏿♂":"1f646-1f3ff-200d-2642-fe0f","🙆♀️":"1f646-200d-2640-fe0f","🙆🏻♀":"1f646-1f3fb-200d-2640-fe0f","🙆🏼♀":"1f646-1f3fc-200d-2640-fe0f","🙆🏽♀":"1f646-1f3fd-200d-2640-fe0f","🙆🏾♀":"1f646-1f3fe-200d-2640-fe0f","🙆🏿♀":"1f646-1f3ff-200d-2640-fe0f","💁♂️":"1f481-200d-2642-fe0f","💁🏻♂":"1f481-1f3fb-200d-2642-fe0f","💁🏼♂":"1f481-1f3fc-200d-2642-fe0f","💁🏽♂":"1f481-1f3fd-200d-2642-fe0f","💁🏾♂":"1f481-1f3fe-200d-2642-fe0f","💁🏿♂":"1f481-1f3ff-200d-2642-fe0f","💁♀️":"1f481-200d-2640-fe0f","💁🏻♀":"1f481-1f3fb-200d-2640-fe0f","💁🏼♀":"1f481-1f3fc-200d-2640-fe0f","💁🏽♀":"1f481-1f3fd-200d-2640-fe0f","💁🏾♀":"1f481-1f3fe-200d-2640-fe0f","💁🏿♀":"1f481-1f3ff-200d-2640-fe0f","🙋♂️":"1f64b-200d-2642-fe0f","🙋🏻♂":"1f64b-1f3fb-200d-2642-fe0f","🙋🏼♂":"1f64b-1f3fc-200d-2642-fe0f","🙋🏽♂":"1f64b-1f3fd-200d-2642-fe0f","🙋🏾♂":"1f64b-1f3fe-200d-2642-fe0f","🙋🏿♂":"1f64b-1f3ff-200d-2642-fe0f","🙋♀️":"1f64b-200d-2640-fe0f","🙋🏻♀":"1f64b-1f3fb-200d-2640-fe0f","🙋🏼♀":"1f64b-1f3fc-200d-2640-fe0f","🙋🏽♀":"1f64b-1f3fd-200d-2640-fe0f","🙋🏾♀":"1f64b-1f3fe-200d-2640-fe0f","🙋🏿♀":"1f64b-1f3ff-200d-2640-fe0f","🙇♂️":"1f647-200d-2642-fe0f","🙇🏻♂":"1f647-1f3fb-200d-2642-fe0f","🙇🏼♂":"1f647-1f3fc-200d-2642-fe0f","🙇🏽♂":"1f647-1f3fd-200d-2642-fe0f","🙇🏾♂":"1f647-1f3fe-200d-2642-fe0f","🙇🏿♂":"1f647-1f3ff-200d-2642-fe0f","🙇♀️":"1f647-200d-2640-fe0f","🙇🏻♀":"1f647-1f3fb-200d-2640-fe0f","🙇🏼♀":"1f647-1f3fc-200d-2640-fe0f","🙇🏽♀":"1f647-1f3fd-200d-2640-fe0f","🙇🏾♀":"1f647-1f3fe-200d-2640-fe0f","🙇🏿♀":"1f647-1f3ff-200d-2640-fe0f","🤦♂️":"1f926-200d-2642-fe0f","🤦🏻♂":"1f926-1f3fb-200d-2642-fe0f","🤦🏼♂":"1f926-1f3fc-200d-2642-fe0f","🤦🏽♂":"1f926-1f3fd-200d-2642-fe0f","🤦🏾♂":"1f926-1f3fe-200d-2642-fe0f","🤦🏿♂":"1f926-1f3ff-200d-2642-fe0f","🤦♀️":"1f926-200d-2640-fe0f","🤦🏻♀":"1f926-1f3fb-200d-2640-fe0f","🤦🏼♀":"1f926-1f3fc-200d-2640-fe0f","🤦🏽♀":"1f926-1f3fd-200d-2640-fe0f","🤦🏾♀":"1f926-1f3fe-200d-2640-fe0f","🤦🏿♀":"1f926-1f3ff-200d-2640-fe0f","🤷♂️":"1f937-200d-2642-fe0f","🤷🏻♂":"1f937-1f3fb-200d-2642-fe0f","🤷🏼♂":"1f937-1f3fc-200d-2642-fe0f","🤷🏽♂":"1f937-1f3fd-200d-2642-fe0f","🤷🏾♂":"1f937-1f3fe-200d-2642-fe0f","🤷🏿♂":"1f937-1f3ff-200d-2642-fe0f","🤷♀️":"1f937-200d-2640-fe0f","🤷🏻♀":"1f937-1f3fb-200d-2640-fe0f","🤷🏼♀":"1f937-1f3fc-200d-2640-fe0f","🤷🏽♀":"1f937-1f3fd-200d-2640-fe0f","🤷🏾♀":"1f937-1f3fe-200d-2640-fe0f","🤷🏿♀":"1f937-1f3ff-200d-2640-fe0f","💆♂️":"1f486-200d-2642-fe0f","💆🏻♂":"1f486-1f3fb-200d-2642-fe0f","💆🏼♂":"1f486-1f3fc-200d-2642-fe0f","💆🏽♂":"1f486-1f3fd-200d-2642-fe0f","💆🏾♂":"1f486-1f3fe-200d-2642-fe0f","💆🏿♂":"1f486-1f3ff-200d-2642-fe0f","💆♀️":"1f486-200d-2640-fe0f","💆🏻♀":"1f486-1f3fb-200d-2640-fe0f","💆🏼♀":"1f486-1f3fc-200d-2640-fe0f","💆🏽♀":"1f486-1f3fd-200d-2640-fe0f","💆🏾♀":"1f486-1f3fe-200d-2640-fe0f","💆🏿♀":"1f486-1f3ff-200d-2640-fe0f","💇♂️":"1f487-200d-2642-fe0f","💇🏻♂":"1f487-1f3fb-200d-2642-fe0f","💇🏼♂":"1f487-1f3fc-200d-2642-fe0f","💇🏽♂":"1f487-1f3fd-200d-2642-fe0f","💇🏾♂":"1f487-1f3fe-200d-2642-fe0f","💇🏿♂":"1f487-1f3ff-200d-2642-fe0f","💇♀️":"1f487-200d-2640-fe0f","💇🏻♀":"1f487-1f3fb-200d-2640-fe0f","💇🏼♀":"1f487-1f3fc-200d-2640-fe0f","💇🏽♀":"1f487-1f3fd-200d-2640-fe0f","💇🏾♀":"1f487-1f3fe-200d-2640-fe0f","💇🏿♀":"1f487-1f3ff-200d-2640-fe0f","🚶♂️":"1f6b6-200d-2642-fe0f","🚶🏻♂":"1f6b6-1f3fb-200d-2642-fe0f","🚶🏼♂":"1f6b6-1f3fc-200d-2642-fe0f","🚶🏽♂":"1f6b6-1f3fd-200d-2642-fe0f","🚶🏾♂":"1f6b6-1f3fe-200d-2642-fe0f","🚶🏿♂":"1f6b6-1f3ff-200d-2642-fe0f","🚶♀️":"1f6b6-200d-2640-fe0f","🚶🏻♀":"1f6b6-1f3fb-200d-2640-fe0f","🚶🏼♀":"1f6b6-1f3fc-200d-2640-fe0f","🚶🏽♀":"1f6b6-1f3fd-200d-2640-fe0f","🚶🏾♀":"1f6b6-1f3fe-200d-2640-fe0f","🚶🏿♀":"1f6b6-1f3ff-200d-2640-fe0f","🏃♂️":"1f3c3-200d-2642-fe0f","🏃🏻♂":"1f3c3-1f3fb-200d-2642-fe0f","🏃🏼♂":"1f3c3-1f3fc-200d-2642-fe0f","🏃🏽♂":"1f3c3-1f3fd-200d-2642-fe0f","🏃🏾♂":"1f3c3-1f3fe-200d-2642-fe0f","🏃🏿♂":"1f3c3-1f3ff-200d-2642-fe0f","🏃♀️":"1f3c3-200d-2640-fe0f","🏃🏻♀":"1f3c3-1f3fb-200d-2640-fe0f","🏃🏼♀":"1f3c3-1f3fc-200d-2640-fe0f","🏃🏽♀":"1f3c3-1f3fd-200d-2640-fe0f","🏃🏾♀":"1f3c3-1f3fe-200d-2640-fe0f","🏃🏿♀":"1f3c3-1f3ff-200d-2640-fe0f","👯♂️":"1f46f-200d-2642-fe0f","👯♀️":"1f46f-200d-2640-fe0f","🧖♀️":"1f9d6-200d-2640-fe0f","🧖🏻♀":"1f9d6-1f3fb-200d-2640-fe0f","🧖🏼♀":"1f9d6-1f3fc-200d-2640-fe0f","🧖🏽♀":"1f9d6-1f3fd-200d-2640-fe0f","🧖🏾♀":"1f9d6-1f3fe-200d-2640-fe0f","🧖🏿♀":"1f9d6-1f3ff-200d-2640-fe0f","🧖♂️":"1f9d6-200d-2642-fe0f","🧖🏻♂":"1f9d6-1f3fb-200d-2642-fe0f","🧖🏼♂":"1f9d6-1f3fc-200d-2642-fe0f","🧖🏽♂":"1f9d6-1f3fd-200d-2642-fe0f","🧖🏾♂":"1f9d6-1f3fe-200d-2642-fe0f","🧖🏿♂":"1f9d6-1f3ff-200d-2642-fe0f","🧗♀️":"1f9d7-200d-2640-fe0f","🧗🏻♀":"1f9d7-1f3fb-200d-2640-fe0f","🧗🏼♀":"1f9d7-1f3fc-200d-2640-fe0f","🧗🏽♀":"1f9d7-1f3fd-200d-2640-fe0f","🧗🏾♀":"1f9d7-1f3fe-200d-2640-fe0f","🧗🏿♀":"1f9d7-1f3ff-200d-2640-fe0f","🧗♂️":"1f9d7-200d-2642-fe0f","🧗🏻♂":"1f9d7-1f3fb-200d-2642-fe0f","🧗🏼♂":"1f9d7-1f3fc-200d-2642-fe0f","🧗🏽♂":"1f9d7-1f3fd-200d-2642-fe0f","🧗🏾♂":"1f9d7-1f3fe-200d-2642-fe0f","🧗🏿♂":"1f9d7-1f3ff-200d-2642-fe0f","🧘♀️":"1f9d8-200d-2640-fe0f","🧘🏻♀":"1f9d8-1f3fb-200d-2640-fe0f","🧘🏼♀":"1f9d8-1f3fc-200d-2640-fe0f","🧘🏽♀":"1f9d8-1f3fd-200d-2640-fe0f","🧘🏾♀":"1f9d8-1f3fe-200d-2640-fe0f","🧘🏿♀":"1f9d8-1f3ff-200d-2640-fe0f","🧘♂️":"1f9d8-200d-2642-fe0f","🧘🏻♂":"1f9d8-1f3fb-200d-2642-fe0f","🧘🏼♂":"1f9d8-1f3fc-200d-2642-fe0f","🧘🏽♂":"1f9d8-1f3fd-200d-2642-fe0f","🧘🏾♂":"1f9d8-1f3fe-200d-2642-fe0f","🧘🏿♂":"1f9d8-1f3ff-200d-2642-fe0f","🏌♂️":"1f3cc-fe0f-200d-2642-fe0f","🏌️♂":"1f3cc-fe0f-200d-2642-fe0f","🏌🏻♂":"1f3cc-1f3fb-200d-2642-fe0f","🏌🏼♂":"1f3cc-1f3fc-200d-2642-fe0f","🏌🏽♂":"1f3cc-1f3fd-200d-2642-fe0f","🏌🏾♂":"1f3cc-1f3fe-200d-2642-fe0f","🏌🏿♂":"1f3cc-1f3ff-200d-2642-fe0f","🏌♀️":"1f3cc-fe0f-200d-2640-fe0f","🏌️♀":"1f3cc-fe0f-200d-2640-fe0f","🏌🏻♀":"1f3cc-1f3fb-200d-2640-fe0f","🏌🏼♀":"1f3cc-1f3fc-200d-2640-fe0f","🏌🏽♀":"1f3cc-1f3fd-200d-2640-fe0f","🏌🏾♀":"1f3cc-1f3fe-200d-2640-fe0f","🏌🏿♀":"1f3cc-1f3ff-200d-2640-fe0f","🏄♂️":"1f3c4-200d-2642-fe0f","🏄🏻♂":"1f3c4-1f3fb-200d-2642-fe0f","🏄🏼♂":"1f3c4-1f3fc-200d-2642-fe0f","🏄🏽♂":"1f3c4-1f3fd-200d-2642-fe0f","🏄🏾♂":"1f3c4-1f3fe-200d-2642-fe0f","🏄🏿♂":"1f3c4-1f3ff-200d-2642-fe0f","🏄♀️":"1f3c4-200d-2640-fe0f","🏄🏻♀":"1f3c4-1f3fb-200d-2640-fe0f","🏄🏼♀":"1f3c4-1f3fc-200d-2640-fe0f","🏄🏽♀":"1f3c4-1f3fd-200d-2640-fe0f","🏄🏾♀":"1f3c4-1f3fe-200d-2640-fe0f","🏄🏿♀":"1f3c4-1f3ff-200d-2640-fe0f","🚣♂️":"1f6a3-200d-2642-fe0f","🚣🏻♂":"1f6a3-1f3fb-200d-2642-fe0f","🚣🏼♂":"1f6a3-1f3fc-200d-2642-fe0f","🚣🏽♂":"1f6a3-1f3fd-200d-2642-fe0f","🚣🏾♂":"1f6a3-1f3fe-200d-2642-fe0f","🚣🏿♂":"1f6a3-1f3ff-200d-2642-fe0f","🚣♀️":"1f6a3-200d-2640-fe0f","🚣🏻♀":"1f6a3-1f3fb-200d-2640-fe0f","🚣🏼♀":"1f6a3-1f3fc-200d-2640-fe0f","🚣🏽♀":"1f6a3-1f3fd-200d-2640-fe0f","🚣🏾♀":"1f6a3-1f3fe-200d-2640-fe0f","🚣🏿♀":"1f6a3-1f3ff-200d-2640-fe0f","🏊♂️":"1f3ca-200d-2642-fe0f","🏊🏻♂":"1f3ca-1f3fb-200d-2642-fe0f","🏊🏼♂":"1f3ca-1f3fc-200d-2642-fe0f","🏊🏽♂":"1f3ca-1f3fd-200d-2642-fe0f","🏊🏾♂":"1f3ca-1f3fe-200d-2642-fe0f","🏊🏿♂":"1f3ca-1f3ff-200d-2642-fe0f","🏊♀️":"1f3ca-200d-2640-fe0f","🏊🏻♀":"1f3ca-1f3fb-200d-2640-fe0f","🏊🏼♀":"1f3ca-1f3fc-200d-2640-fe0f","🏊🏽♀":"1f3ca-1f3fd-200d-2640-fe0f","🏊🏾♀":"1f3ca-1f3fe-200d-2640-fe0f","🏊🏿♀":"1f3ca-1f3ff-200d-2640-fe0f","⛹♂️":"26f9-fe0f-200d-2642-fe0f","⛹️♂":"26f9-fe0f-200d-2642-fe0f","⛹🏻♂":"26f9-1f3fb-200d-2642-fe0f","⛹🏼♂":"26f9-1f3fc-200d-2642-fe0f","⛹🏽♂":"26f9-1f3fd-200d-2642-fe0f","⛹🏾♂":"26f9-1f3fe-200d-2642-fe0f","⛹🏿♂":"26f9-1f3ff-200d-2642-fe0f","⛹♀️":"26f9-fe0f-200d-2640-fe0f","⛹️♀":"26f9-fe0f-200d-2640-fe0f","⛹🏻♀":"26f9-1f3fb-200d-2640-fe0f","⛹🏼♀":"26f9-1f3fc-200d-2640-fe0f","⛹🏽♀":"26f9-1f3fd-200d-2640-fe0f","⛹🏾♀":"26f9-1f3fe-200d-2640-fe0f","⛹🏿♀":"26f9-1f3ff-200d-2640-fe0f","🏋♂️":"1f3cb-fe0f-200d-2642-fe0f","🏋️♂":"1f3cb-fe0f-200d-2642-fe0f","🏋🏻♂":"1f3cb-1f3fb-200d-2642-fe0f","🏋🏼♂":"1f3cb-1f3fc-200d-2642-fe0f","🏋🏽♂":"1f3cb-1f3fd-200d-2642-fe0f","🏋🏾♂":"1f3cb-1f3fe-200d-2642-fe0f","🏋🏿♂":"1f3cb-1f3ff-200d-2642-fe0f","🏋♀️":"1f3cb-fe0f-200d-2640-fe0f","🏋️♀":"1f3cb-fe0f-200d-2640-fe0f","🏋🏻♀":"1f3cb-1f3fb-200d-2640-fe0f","🏋🏼♀":"1f3cb-1f3fc-200d-2640-fe0f","🏋🏽♀":"1f3cb-1f3fd-200d-2640-fe0f","🏋🏾♀":"1f3cb-1f3fe-200d-2640-fe0f","🏋🏿♀":"1f3cb-1f3ff-200d-2640-fe0f","🚴♂️":"1f6b4-200d-2642-fe0f","🚴🏻♂":"1f6b4-1f3fb-200d-2642-fe0f","🚴🏼♂":"1f6b4-1f3fc-200d-2642-fe0f","🚴🏽♂":"1f6b4-1f3fd-200d-2642-fe0f","🚴🏾♂":"1f6b4-1f3fe-200d-2642-fe0f","🚴🏿♂":"1f6b4-1f3ff-200d-2642-fe0f","🚴♀️":"1f6b4-200d-2640-fe0f","🚴🏻♀":"1f6b4-1f3fb-200d-2640-fe0f","🚴🏼♀":"1f6b4-1f3fc-200d-2640-fe0f","🚴🏽♀":"1f6b4-1f3fd-200d-2640-fe0f","🚴🏾♀":"1f6b4-1f3fe-200d-2640-fe0f","🚴🏿♀":"1f6b4-1f3ff-200d-2640-fe0f","🚵♂️":"1f6b5-200d-2642-fe0f","🚵🏻♂":"1f6b5-1f3fb-200d-2642-fe0f","🚵🏼♂":"1f6b5-1f3fc-200d-2642-fe0f","🚵🏽♂":"1f6b5-1f3fd-200d-2642-fe0f","🚵🏾♂":"1f6b5-1f3fe-200d-2642-fe0f","🚵🏿♂":"1f6b5-1f3ff-200d-2642-fe0f","🚵♀️":"1f6b5-200d-2640-fe0f","🚵🏻♀":"1f6b5-1f3fb-200d-2640-fe0f","🚵🏼♀":"1f6b5-1f3fc-200d-2640-fe0f","🚵🏽♀":"1f6b5-1f3fd-200d-2640-fe0f","🚵🏾♀":"1f6b5-1f3fe-200d-2640-fe0f","🚵🏿♀":"1f6b5-1f3ff-200d-2640-fe0f","🤸♂️":"1f938-200d-2642-fe0f","🤸🏻♂":"1f938-1f3fb-200d-2642-fe0f","🤸🏼♂":"1f938-1f3fc-200d-2642-fe0f","🤸🏽♂":"1f938-1f3fd-200d-2642-fe0f","🤸🏾♂":"1f938-1f3fe-200d-2642-fe0f","🤸🏿♂":"1f938-1f3ff-200d-2642-fe0f","🤸♀️":"1f938-200d-2640-fe0f","🤸🏻♀":"1f938-1f3fb-200d-2640-fe0f","🤸🏼♀":"1f938-1f3fc-200d-2640-fe0f","🤸🏽♀":"1f938-1f3fd-200d-2640-fe0f","🤸🏾♀":"1f938-1f3fe-200d-2640-fe0f","🤸🏿♀":"1f938-1f3ff-200d-2640-fe0f","🤼♂️":"1f93c-200d-2642-fe0f","🤼♀️":"1f93c-200d-2640-fe0f","🤽♂️":"1f93d-200d-2642-fe0f","🤽🏻♂":"1f93d-1f3fb-200d-2642-fe0f","🤽🏼♂":"1f93d-1f3fc-200d-2642-fe0f","🤽🏽♂":"1f93d-1f3fd-200d-2642-fe0f","🤽🏾♂":"1f93d-1f3fe-200d-2642-fe0f","🤽🏿♂":"1f93d-1f3ff-200d-2642-fe0f","🤽♀️":"1f93d-200d-2640-fe0f","🤽🏻♀":"1f93d-1f3fb-200d-2640-fe0f","🤽🏼♀":"1f93d-1f3fc-200d-2640-fe0f","🤽🏽♀":"1f93d-1f3fd-200d-2640-fe0f","🤽🏾♀":"1f93d-1f3fe-200d-2640-fe0f","🤽🏿♀":"1f93d-1f3ff-200d-2640-fe0f","🤾♂️":"1f93e-200d-2642-fe0f","🤾🏻♂":"1f93e-1f3fb-200d-2642-fe0f","🤾🏼♂":"1f93e-1f3fc-200d-2642-fe0f","🤾🏽♂":"1f93e-1f3fd-200d-2642-fe0f","🤾🏾♂":"1f93e-1f3fe-200d-2642-fe0f","🤾🏿♂":"1f93e-1f3ff-200d-2642-fe0f","🤾♀️":"1f93e-200d-2640-fe0f","🤾🏻♀":"1f93e-1f3fb-200d-2640-fe0f","🤾🏼♀":"1f93e-1f3fc-200d-2640-fe0f","🤾🏽♀":"1f93e-1f3fd-200d-2640-fe0f","🤾🏾♀":"1f93e-1f3fe-200d-2640-fe0f","🤾🏿♀":"1f93e-1f3ff-200d-2640-fe0f","🤹♂️":"1f939-200d-2642-fe0f","🤹🏻♂":"1f939-1f3fb-200d-2642-fe0f","🤹🏼♂":"1f939-1f3fc-200d-2642-fe0f","🤹🏽♂":"1f939-1f3fd-200d-2642-fe0f","🤹🏾♂":"1f939-1f3fe-200d-2642-fe0f","🤹🏿♂":"1f939-1f3ff-200d-2642-fe0f","🤹♀️":"1f939-200d-2640-fe0f","🤹🏻♀":"1f939-1f3fb-200d-2640-fe0f","🤹🏼♀":"1f939-1f3fc-200d-2640-fe0f","🤹🏽♀":"1f939-1f3fd-200d-2640-fe0f","🤹🏾♀":"1f939-1f3fe-200d-2640-fe0f","🤹🏿♀":"1f939-1f3ff-200d-2640-fe0f","👁🗨️":"1f441-200d-1f5e8","👁️🗨":"1f441-200d-1f5e8","🏳️🌈":"1f3f3-fe0f-200d-1f308","👨🏻⚕️":"1f468-1f3fb-200d-2695-fe0f","👨🏼⚕️":"1f468-1f3fc-200d-2695-fe0f","👨🏽⚕️":"1f468-1f3fd-200d-2695-fe0f","👨🏾⚕️":"1f468-1f3fe-200d-2695-fe0f","👨🏿⚕️":"1f468-1f3ff-200d-2695-fe0f","👩🏻⚕️":"1f469-1f3fb-200d-2695-fe0f","👩🏼⚕️":"1f469-1f3fc-200d-2695-fe0f","👩🏽⚕️":"1f469-1f3fd-200d-2695-fe0f","👩🏾⚕️":"1f469-1f3fe-200d-2695-fe0f","👩🏿⚕️":"1f469-1f3ff-200d-2695-fe0f","👨🏻⚖️":"1f468-1f3fb-200d-2696-fe0f","👨🏼⚖️":"1f468-1f3fc-200d-2696-fe0f","👨🏽⚖️":"1f468-1f3fd-200d-2696-fe0f","👨🏾⚖️":"1f468-1f3fe-200d-2696-fe0f","👨🏿⚖️":"1f468-1f3ff-200d-2696-fe0f","👩🏻⚖️":"1f469-1f3fb-200d-2696-fe0f","👩🏼⚖️":"1f469-1f3fc-200d-2696-fe0f","👩🏽⚖️":"1f469-1f3fd-200d-2696-fe0f","👩🏾⚖️":"1f469-1f3fe-200d-2696-fe0f","👩🏿⚖️":"1f469-1f3ff-200d-2696-fe0f","👨🏻✈️":"1f468-1f3fb-200d-2708-fe0f","👨🏼✈️":"1f468-1f3fc-200d-2708-fe0f","👨🏽✈️":"1f468-1f3fd-200d-2708-fe0f","👨🏾✈️":"1f468-1f3fe-200d-2708-fe0f","👨🏿✈️":"1f468-1f3ff-200d-2708-fe0f","👩🏻✈️":"1f469-1f3fb-200d-2708-fe0f","👩🏼✈️":"1f469-1f3fc-200d-2708-fe0f","👩🏽✈️":"1f469-1f3fd-200d-2708-fe0f","👩🏾✈️":"1f469-1f3fe-200d-2708-fe0f","👩🏿✈️":"1f469-1f3ff-200d-2708-fe0f","👮🏻♂️":"1f46e-1f3fb-200d-2642-fe0f","👮🏼♂️":"1f46e-1f3fc-200d-2642-fe0f","👮🏽♂️":"1f46e-1f3fd-200d-2642-fe0f","👮🏾♂️":"1f46e-1f3fe-200d-2642-fe0f","👮🏿♂️":"1f46e-1f3ff-200d-2642-fe0f","👮🏻♀️":"1f46e-1f3fb-200d-2640-fe0f","👮🏼♀️":"1f46e-1f3fc-200d-2640-fe0f","👮🏽♀️":"1f46e-1f3fd-200d-2640-fe0f","👮🏾♀️":"1f46e-1f3fe-200d-2640-fe0f","👮🏿♀️":"1f46e-1f3ff-200d-2640-fe0f","🕵️♂️":"1f575-fe0f-200d-2642-fe0f","🕵🏻♂️":"1f575-1f3fb-200d-2642-fe0f","🕵🏼♂️":"1f575-1f3fc-200d-2642-fe0f","🕵🏽♂️":"1f575-1f3fd-200d-2642-fe0f","🕵🏾♂️":"1f575-1f3fe-200d-2642-fe0f","🕵🏿♂️":"1f575-1f3ff-200d-2642-fe0f","🕵️♀️":"1f575-fe0f-200d-2640-fe0f","🕵🏻♀️":"1f575-1f3fb-200d-2640-fe0f","🕵🏼♀️":"1f575-1f3fc-200d-2640-fe0f","🕵🏽♀️":"1f575-1f3fd-200d-2640-fe0f","🕵🏾♀️":"1f575-1f3fe-200d-2640-fe0f","🕵🏿♀️":"1f575-1f3ff-200d-2640-fe0f","💂🏻♂️":"1f482-1f3fb-200d-2642-fe0f","💂🏼♂️":"1f482-1f3fc-200d-2642-fe0f","💂🏽♂️":"1f482-1f3fd-200d-2642-fe0f","💂🏾♂️":"1f482-1f3fe-200d-2642-fe0f","💂🏿♂️":"1f482-1f3ff-200d-2642-fe0f","💂🏻♀️":"1f482-1f3fb-200d-2640-fe0f","💂🏼♀️":"1f482-1f3fc-200d-2640-fe0f","💂🏽♀️":"1f482-1f3fd-200d-2640-fe0f","💂🏾♀️":"1f482-1f3fe-200d-2640-fe0f","💂🏿♀️":"1f482-1f3ff-200d-2640-fe0f","👷🏻♂️":"1f477-1f3fb-200d-2642-fe0f","👷🏼♂️":"1f477-1f3fc-200d-2642-fe0f","👷🏽♂️":"1f477-1f3fd-200d-2642-fe0f","👷🏾♂️":"1f477-1f3fe-200d-2642-fe0f","👷🏿♂️":"1f477-1f3ff-200d-2642-fe0f","👷🏻♀️":"1f477-1f3fb-200d-2640-fe0f","👷🏼♀️":"1f477-1f3fc-200d-2640-fe0f","👷🏽♀️":"1f477-1f3fd-200d-2640-fe0f","👷🏾♀️":"1f477-1f3fe-200d-2640-fe0f","👷🏿♀️":"1f477-1f3ff-200d-2640-fe0f","👳🏻♂️":"1f473-1f3fb-200d-2642-fe0f","👳🏼♂️":"1f473-1f3fc-200d-2642-fe0f","👳🏽♂️":"1f473-1f3fd-200d-2642-fe0f","👳🏾♂️":"1f473-1f3fe-200d-2642-fe0f","👳🏿♂️":"1f473-1f3ff-200d-2642-fe0f","👳🏻♀️":"1f473-1f3fb-200d-2640-fe0f","👳🏼♀️":"1f473-1f3fc-200d-2640-fe0f","👳🏽♀️":"1f473-1f3fd-200d-2640-fe0f","👳🏾♀️":"1f473-1f3fe-200d-2640-fe0f","👳🏿♀️":"1f473-1f3ff-200d-2640-fe0f","👱🏻♂️":"1f471-1f3fb-200d-2642-fe0f","👱🏼♂️":"1f471-1f3fc-200d-2642-fe0f","👱🏽♂️":"1f471-1f3fd-200d-2642-fe0f","👱🏾♂️":"1f471-1f3fe-200d-2642-fe0f","👱🏿♂️":"1f471-1f3ff-200d-2642-fe0f","👱🏻♀️":"1f471-1f3fb-200d-2640-fe0f","👱🏼♀️":"1f471-1f3fc-200d-2640-fe0f","👱🏽♀️":"1f471-1f3fd-200d-2640-fe0f","👱🏾♀️":"1f471-1f3fe-200d-2640-fe0f","👱🏿♀️":"1f471-1f3ff-200d-2640-fe0f","🧙🏻♀️":"1f9d9-1f3fb-200d-2640-fe0f","🧙🏼♀️":"1f9d9-1f3fc-200d-2640-fe0f","🧙🏽♀️":"1f9d9-1f3fd-200d-2640-fe0f","🧙🏾♀️":"1f9d9-1f3fe-200d-2640-fe0f","🧙🏿♀️":"1f9d9-1f3ff-200d-2640-fe0f","🧙🏻♂️":"1f9d9-1f3fb-200d-2642-fe0f","🧙🏼♂️":"1f9d9-1f3fc-200d-2642-fe0f","🧙🏽♂️":"1f9d9-1f3fd-200d-2642-fe0f","🧙🏾♂️":"1f9d9-1f3fe-200d-2642-fe0f","🧙🏿♂️":"1f9d9-1f3ff-200d-2642-fe0f","🧚🏻♀️":"1f9da-1f3fb-200d-2640-fe0f","🧚🏼♀️":"1f9da-1f3fc-200d-2640-fe0f","🧚🏽♀️":"1f9da-1f3fd-200d-2640-fe0f","🧚🏾♀️":"1f9da-1f3fe-200d-2640-fe0f","🧚🏿♀️":"1f9da-1f3ff-200d-2640-fe0f","🧚🏻♂️":"1f9da-1f3fb-200d-2642-fe0f","🧚🏼♂️":"1f9da-1f3fc-200d-2642-fe0f","🧚🏽♂️":"1f9da-1f3fd-200d-2642-fe0f","🧚🏾♂️":"1f9da-1f3fe-200d-2642-fe0f","🧚🏿♂️":"1f9da-1f3ff-200d-2642-fe0f","🧛🏻♀️":"1f9db-1f3fb-200d-2640-fe0f","🧛🏼♀️":"1f9db-1f3fc-200d-2640-fe0f","🧛🏽♀️":"1f9db-1f3fd-200d-2640-fe0f","🧛🏾♀️":"1f9db-1f3fe-200d-2640-fe0f","🧛🏿♀️":"1f9db-1f3ff-200d-2640-fe0f","🧛🏻♂️":"1f9db-1f3fb-200d-2642-fe0f","🧛🏼♂️":"1f9db-1f3fc-200d-2642-fe0f","🧛🏽♂️":"1f9db-1f3fd-200d-2642-fe0f","🧛🏾♂️":"1f9db-1f3fe-200d-2642-fe0f","🧛🏿♂️":"1f9db-1f3ff-200d-2642-fe0f","🧜🏻♀️":"1f9dc-1f3fb-200d-2640-fe0f","🧜🏼♀️":"1f9dc-1f3fc-200d-2640-fe0f","🧜🏽♀️":"1f9dc-1f3fd-200d-2640-fe0f","🧜🏾♀️":"1f9dc-1f3fe-200d-2640-fe0f","🧜🏿♀️":"1f9dc-1f3ff-200d-2640-fe0f","🧜🏻♂️":"1f9dc-1f3fb-200d-2642-fe0f","🧜🏼♂️":"1f9dc-1f3fc-200d-2642-fe0f","🧜🏽♂️":"1f9dc-1f3fd-200d-2642-fe0f","🧜🏾♂️":"1f9dc-1f3fe-200d-2642-fe0f","🧜🏿♂️":"1f9dc-1f3ff-200d-2642-fe0f","🧝🏻♀️":"1f9dd-1f3fb-200d-2640-fe0f","🧝🏼♀️":"1f9dd-1f3fc-200d-2640-fe0f","🧝🏽♀️":"1f9dd-1f3fd-200d-2640-fe0f","🧝🏾♀️":"1f9dd-1f3fe-200d-2640-fe0f","🧝🏿♀️":"1f9dd-1f3ff-200d-2640-fe0f","🧝🏻♂️":"1f9dd-1f3fb-200d-2642-fe0f","🧝🏼♂️":"1f9dd-1f3fc-200d-2642-fe0f","🧝🏽♂️":"1f9dd-1f3fd-200d-2642-fe0f","🧝🏾♂️":"1f9dd-1f3fe-200d-2642-fe0f","🧝🏿♂️":"1f9dd-1f3ff-200d-2642-fe0f","🙍🏻♂️":"1f64d-1f3fb-200d-2642-fe0f","🙍🏼♂️":"1f64d-1f3fc-200d-2642-fe0f","🙍🏽♂️":"1f64d-1f3fd-200d-2642-fe0f","🙍🏾♂️":"1f64d-1f3fe-200d-2642-fe0f","🙍🏿♂️":"1f64d-1f3ff-200d-2642-fe0f","🙍🏻♀️":"1f64d-1f3fb-200d-2640-fe0f","🙍🏼♀️":"1f64d-1f3fc-200d-2640-fe0f","🙍🏽♀️":"1f64d-1f3fd-200d-2640-fe0f","🙍🏾♀️":"1f64d-1f3fe-200d-2640-fe0f","🙍🏿♀️":"1f64d-1f3ff-200d-2640-fe0f","🙎🏻♂️":"1f64e-1f3fb-200d-2642-fe0f","🙎🏼♂️":"1f64e-1f3fc-200d-2642-fe0f","🙎🏽♂️":"1f64e-1f3fd-200d-2642-fe0f","🙎🏾♂️":"1f64e-1f3fe-200d-2642-fe0f","🙎🏿♂️":"1f64e-1f3ff-200d-2642-fe0f","🙎🏻♀️":"1f64e-1f3fb-200d-2640-fe0f","🙎🏼♀️":"1f64e-1f3fc-200d-2640-fe0f","🙎🏽♀️":"1f64e-1f3fd-200d-2640-fe0f","🙎🏾♀️":"1f64e-1f3fe-200d-2640-fe0f","🙎🏿♀️":"1f64e-1f3ff-200d-2640-fe0f","🙅🏻♂️":"1f645-1f3fb-200d-2642-fe0f","🙅🏼♂️":"1f645-1f3fc-200d-2642-fe0f","🙅🏽♂️":"1f645-1f3fd-200d-2642-fe0f","🙅🏾♂️":"1f645-1f3fe-200d-2642-fe0f","🙅🏿♂️":"1f645-1f3ff-200d-2642-fe0f","🙅🏻♀️":"1f645-1f3fb-200d-2640-fe0f","🙅🏼♀️":"1f645-1f3fc-200d-2640-fe0f","🙅🏽♀️":"1f645-1f3fd-200d-2640-fe0f","🙅🏾♀️":"1f645-1f3fe-200d-2640-fe0f","🙅🏿♀️":"1f645-1f3ff-200d-2640-fe0f","🙆🏻♂️":"1f646-1f3fb-200d-2642-fe0f","🙆🏼♂️":"1f646-1f3fc-200d-2642-fe0f","🙆🏽♂️":"1f646-1f3fd-200d-2642-fe0f","🙆🏾♂️":"1f646-1f3fe-200d-2642-fe0f","🙆🏿♂️":"1f646-1f3ff-200d-2642-fe0f","🙆🏻♀️":"1f646-1f3fb-200d-2640-fe0f","🙆🏼♀️":"1f646-1f3fc-200d-2640-fe0f","🙆🏽♀️":"1f646-1f3fd-200d-2640-fe0f","🙆🏾♀️":"1f646-1f3fe-200d-2640-fe0f","🙆🏿♀️":"1f646-1f3ff-200d-2640-fe0f","💁🏻♂️":"1f481-1f3fb-200d-2642-fe0f","💁🏼♂️":"1f481-1f3fc-200d-2642-fe0f","💁🏽♂️":"1f481-1f3fd-200d-2642-fe0f","💁🏾♂️":"1f481-1f3fe-200d-2642-fe0f","💁🏿♂️":"1f481-1f3ff-200d-2642-fe0f","💁🏻♀️":"1f481-1f3fb-200d-2640-fe0f","💁🏼♀️":"1f481-1f3fc-200d-2640-fe0f","💁🏽♀️":"1f481-1f3fd-200d-2640-fe0f","💁🏾♀️":"1f481-1f3fe-200d-2640-fe0f","💁🏿♀️":"1f481-1f3ff-200d-2640-fe0f","🙋🏻♂️":"1f64b-1f3fb-200d-2642-fe0f","🙋🏼♂️":"1f64b-1f3fc-200d-2642-fe0f","🙋🏽♂️":"1f64b-1f3fd-200d-2642-fe0f","🙋🏾♂️":"1f64b-1f3fe-200d-2642-fe0f","🙋🏿♂️":"1f64b-1f3ff-200d-2642-fe0f","🙋🏻♀️":"1f64b-1f3fb-200d-2640-fe0f","🙋🏼♀️":"1f64b-1f3fc-200d-2640-fe0f","🙋🏽♀️":"1f64b-1f3fd-200d-2640-fe0f","🙋🏾♀️":"1f64b-1f3fe-200d-2640-fe0f","🙋🏿♀️":"1f64b-1f3ff-200d-2640-fe0f","🙇🏻♂️":"1f647-1f3fb-200d-2642-fe0f","🙇🏼♂️":"1f647-1f3fc-200d-2642-fe0f","🙇🏽♂️":"1f647-1f3fd-200d-2642-fe0f","🙇🏾♂️":"1f647-1f3fe-200d-2642-fe0f","🙇🏿♂️":"1f647-1f3ff-200d-2642-fe0f","🙇🏻♀️":"1f647-1f3fb-200d-2640-fe0f","🙇🏼♀️":"1f647-1f3fc-200d-2640-fe0f","🙇🏽♀️":"1f647-1f3fd-200d-2640-fe0f","🙇🏾♀️":"1f647-1f3fe-200d-2640-fe0f","🙇🏿♀️":"1f647-1f3ff-200d-2640-fe0f","🤦🏻♂️":"1f926-1f3fb-200d-2642-fe0f","🤦🏼♂️":"1f926-1f3fc-200d-2642-fe0f","🤦🏽♂️":"1f926-1f3fd-200d-2642-fe0f","🤦🏾♂️":"1f926-1f3fe-200d-2642-fe0f","🤦🏿♂️":"1f926-1f3ff-200d-2642-fe0f","🤦🏻♀️":"1f926-1f3fb-200d-2640-fe0f","🤦🏼♀️":"1f926-1f3fc-200d-2640-fe0f","🤦🏽♀️":"1f926-1f3fd-200d-2640-fe0f","🤦🏾♀️":"1f926-1f3fe-200d-2640-fe0f","🤦🏿♀️":"1f926-1f3ff-200d-2640-fe0f","🤷🏻♂️":"1f937-1f3fb-200d-2642-fe0f","🤷🏼♂️":"1f937-1f3fc-200d-2642-fe0f","🤷🏽♂️":"1f937-1f3fd-200d-2642-fe0f","🤷🏾♂️":"1f937-1f3fe-200d-2642-fe0f","🤷🏿♂️":"1f937-1f3ff-200d-2642-fe0f","🤷🏻♀️":"1f937-1f3fb-200d-2640-fe0f","🤷🏼♀️":"1f937-1f3fc-200d-2640-fe0f","🤷🏽♀️":"1f937-1f3fd-200d-2640-fe0f","🤷🏾♀️":"1f937-1f3fe-200d-2640-fe0f","🤷🏿♀️":"1f937-1f3ff-200d-2640-fe0f","💆🏻♂️":"1f486-1f3fb-200d-2642-fe0f","💆🏼♂️":"1f486-1f3fc-200d-2642-fe0f","💆🏽♂️":"1f486-1f3fd-200d-2642-fe0f","💆🏾♂️":"1f486-1f3fe-200d-2642-fe0f","💆🏿♂️":"1f486-1f3ff-200d-2642-fe0f","💆🏻♀️":"1f486-1f3fb-200d-2640-fe0f","💆🏼♀️":"1f486-1f3fc-200d-2640-fe0f","💆🏽♀️":"1f486-1f3fd-200d-2640-fe0f","💆🏾♀️":"1f486-1f3fe-200d-2640-fe0f","💆🏿♀️":"1f486-1f3ff-200d-2640-fe0f","💇🏻♂️":"1f487-1f3fb-200d-2642-fe0f","💇🏼♂️":"1f487-1f3fc-200d-2642-fe0f","💇🏽♂️":"1f487-1f3fd-200d-2642-fe0f","💇🏾♂️":"1f487-1f3fe-200d-2642-fe0f","💇🏿♂️":"1f487-1f3ff-200d-2642-fe0f","💇🏻♀️":"1f487-1f3fb-200d-2640-fe0f","💇🏼♀️":"1f487-1f3fc-200d-2640-fe0f","💇🏽♀️":"1f487-1f3fd-200d-2640-fe0f","💇🏾♀️":"1f487-1f3fe-200d-2640-fe0f","💇🏿♀️":"1f487-1f3ff-200d-2640-fe0f","🚶🏻♂️":"1f6b6-1f3fb-200d-2642-fe0f","🚶🏼♂️":"1f6b6-1f3fc-200d-2642-fe0f","🚶🏽♂️":"1f6b6-1f3fd-200d-2642-fe0f","🚶🏾♂️":"1f6b6-1f3fe-200d-2642-fe0f","🚶🏿♂️":"1f6b6-1f3ff-200d-2642-fe0f","🚶🏻♀️":"1f6b6-1f3fb-200d-2640-fe0f","🚶🏼♀️":"1f6b6-1f3fc-200d-2640-fe0f","🚶🏽♀️":"1f6b6-1f3fd-200d-2640-fe0f","🚶🏾♀️":"1f6b6-1f3fe-200d-2640-fe0f","🚶🏿♀️":"1f6b6-1f3ff-200d-2640-fe0f","🏃🏻♂️":"1f3c3-1f3fb-200d-2642-fe0f","🏃🏼♂️":"1f3c3-1f3fc-200d-2642-fe0f","🏃🏽♂️":"1f3c3-1f3fd-200d-2642-fe0f","🏃🏾♂️":"1f3c3-1f3fe-200d-2642-fe0f","🏃🏿♂️":"1f3c3-1f3ff-200d-2642-fe0f","🏃🏻♀️":"1f3c3-1f3fb-200d-2640-fe0f","🏃🏼♀️":"1f3c3-1f3fc-200d-2640-fe0f","🏃🏽♀️":"1f3c3-1f3fd-200d-2640-fe0f","🏃🏾♀️":"1f3c3-1f3fe-200d-2640-fe0f","🏃🏿♀️":"1f3c3-1f3ff-200d-2640-fe0f","🧖🏻♀️":"1f9d6-1f3fb-200d-2640-fe0f","🧖🏼♀️":"1f9d6-1f3fc-200d-2640-fe0f","🧖🏽♀️":"1f9d6-1f3fd-200d-2640-fe0f","🧖🏾♀️":"1f9d6-1f3fe-200d-2640-fe0f","🧖🏿♀️":"1f9d6-1f3ff-200d-2640-fe0f","🧖🏻♂️":"1f9d6-1f3fb-200d-2642-fe0f","🧖🏼♂️":"1f9d6-1f3fc-200d-2642-fe0f","🧖🏽♂️":"1f9d6-1f3fd-200d-2642-fe0f","🧖🏾♂️":"1f9d6-1f3fe-200d-2642-fe0f","🧖🏿♂️":"1f9d6-1f3ff-200d-2642-fe0f","🧗🏻♀️":"1f9d7-1f3fb-200d-2640-fe0f","🧗🏼♀️":"1f9d7-1f3fc-200d-2640-fe0f","🧗🏽♀️":"1f9d7-1f3fd-200d-2640-fe0f","🧗🏾♀️":"1f9d7-1f3fe-200d-2640-fe0f","🧗🏿♀️":"1f9d7-1f3ff-200d-2640-fe0f","🧗🏻♂️":"1f9d7-1f3fb-200d-2642-fe0f","🧗🏼♂️":"1f9d7-1f3fc-200d-2642-fe0f","🧗🏽♂️":"1f9d7-1f3fd-200d-2642-fe0f","🧗🏾♂️":"1f9d7-1f3fe-200d-2642-fe0f","🧗🏿♂️":"1f9d7-1f3ff-200d-2642-fe0f","🧘🏻♀️":"1f9d8-1f3fb-200d-2640-fe0f","🧘🏼♀️":"1f9d8-1f3fc-200d-2640-fe0f","🧘🏽♀️":"1f9d8-1f3fd-200d-2640-fe0f","🧘🏾♀️":"1f9d8-1f3fe-200d-2640-fe0f","🧘🏿♀️":"1f9d8-1f3ff-200d-2640-fe0f","🧘🏻♂️":"1f9d8-1f3fb-200d-2642-fe0f","🧘🏼♂️":"1f9d8-1f3fc-200d-2642-fe0f","🧘🏽♂️":"1f9d8-1f3fd-200d-2642-fe0f","🧘🏾♂️":"1f9d8-1f3fe-200d-2642-fe0f","🧘🏿♂️":"1f9d8-1f3ff-200d-2642-fe0f","🏌️♂️":"1f3cc-fe0f-200d-2642-fe0f","🏌🏻♂️":"1f3cc-1f3fb-200d-2642-fe0f","🏌🏼♂️":"1f3cc-1f3fc-200d-2642-fe0f","🏌🏽♂️":"1f3cc-1f3fd-200d-2642-fe0f","🏌🏾♂️":"1f3cc-1f3fe-200d-2642-fe0f","🏌🏿♂️":"1f3cc-1f3ff-200d-2642-fe0f","🏌️♀️":"1f3cc-fe0f-200d-2640-fe0f","🏌🏻♀️":"1f3cc-1f3fb-200d-2640-fe0f","🏌🏼♀️":"1f3cc-1f3fc-200d-2640-fe0f","🏌🏽♀️":"1f3cc-1f3fd-200d-2640-fe0f","🏌🏾♀️":"1f3cc-1f3fe-200d-2640-fe0f","🏌🏿♀️":"1f3cc-1f3ff-200d-2640-fe0f","🏄🏻♂️":"1f3c4-1f3fb-200d-2642-fe0f","🏄🏼♂️":"1f3c4-1f3fc-200d-2642-fe0f","🏄🏽♂️":"1f3c4-1f3fd-200d-2642-fe0f","🏄🏾♂️":"1f3c4-1f3fe-200d-2642-fe0f","🏄🏿♂️":"1f3c4-1f3ff-200d-2642-fe0f","🏄🏻♀️":"1f3c4-1f3fb-200d-2640-fe0f","🏄🏼♀️":"1f3c4-1f3fc-200d-2640-fe0f","🏄🏽♀️":"1f3c4-1f3fd-200d-2640-fe0f","🏄🏾♀️":"1f3c4-1f3fe-200d-2640-fe0f","🏄🏿♀️":"1f3c4-1f3ff-200d-2640-fe0f","🚣🏻♂️":"1f6a3-1f3fb-200d-2642-fe0f","🚣🏼♂️":"1f6a3-1f3fc-200d-2642-fe0f","🚣🏽♂️":"1f6a3-1f3fd-200d-2642-fe0f","🚣🏾♂️":"1f6a3-1f3fe-200d-2642-fe0f","🚣🏿♂️":"1f6a3-1f3ff-200d-2642-fe0f","🚣🏻♀️":"1f6a3-1f3fb-200d-2640-fe0f","🚣🏼♀️":"1f6a3-1f3fc-200d-2640-fe0f","🚣🏽♀️":"1f6a3-1f3fd-200d-2640-fe0f","🚣🏾♀️":"1f6a3-1f3fe-200d-2640-fe0f","🚣🏿♀️":"1f6a3-1f3ff-200d-2640-fe0f","🏊🏻♂️":"1f3ca-1f3fb-200d-2642-fe0f","🏊🏼♂️":"1f3ca-1f3fc-200d-2642-fe0f","🏊🏽♂️":"1f3ca-1f3fd-200d-2642-fe0f","🏊🏾♂️":"1f3ca-1f3fe-200d-2642-fe0f","🏊🏿♂️":"1f3ca-1f3ff-200d-2642-fe0f","🏊🏻♀️":"1f3ca-1f3fb-200d-2640-fe0f","🏊🏼♀️":"1f3ca-1f3fc-200d-2640-fe0f","🏊🏽♀️":"1f3ca-1f3fd-200d-2640-fe0f","🏊🏾♀️":"1f3ca-1f3fe-200d-2640-fe0f","🏊🏿♀️":"1f3ca-1f3ff-200d-2640-fe0f","⛹️♂️":"26f9-fe0f-200d-2642-fe0f","⛹🏻♂️":"26f9-1f3fb-200d-2642-fe0f","⛹🏼♂️":"26f9-1f3fc-200d-2642-fe0f","⛹🏽♂️":"26f9-1f3fd-200d-2642-fe0f","⛹🏾♂️":"26f9-1f3fe-200d-2642-fe0f","⛹🏿♂️":"26f9-1f3ff-200d-2642-fe0f","⛹️♀️":"26f9-fe0f-200d-2640-fe0f","⛹🏻♀️":"26f9-1f3fb-200d-2640-fe0f","⛹🏼♀️":"26f9-1f3fc-200d-2640-fe0f","⛹🏽♀️":"26f9-1f3fd-200d-2640-fe0f","⛹🏾♀️":"26f9-1f3fe-200d-2640-fe0f","⛹🏿♀️":"26f9-1f3ff-200d-2640-fe0f","🏋️♂️":"1f3cb-fe0f-200d-2642-fe0f","🏋🏻♂️":"1f3cb-1f3fb-200d-2642-fe0f","🏋🏼♂️":"1f3cb-1f3fc-200d-2642-fe0f","🏋🏽♂️":"1f3cb-1f3fd-200d-2642-fe0f","🏋🏾♂️":"1f3cb-1f3fe-200d-2642-fe0f","🏋🏿♂️":"1f3cb-1f3ff-200d-2642-fe0f","🏋️♀️":"1f3cb-fe0f-200d-2640-fe0f","🏋🏻♀️":"1f3cb-1f3fb-200d-2640-fe0f","🏋🏼♀️":"1f3cb-1f3fc-200d-2640-fe0f","🏋🏽♀️":"1f3cb-1f3fd-200d-2640-fe0f","🏋🏾♀️":"1f3cb-1f3fe-200d-2640-fe0f","🏋🏿♀️":"1f3cb-1f3ff-200d-2640-fe0f","🚴🏻♂️":"1f6b4-1f3fb-200d-2642-fe0f","🚴🏼♂️":"1f6b4-1f3fc-200d-2642-fe0f","🚴🏽♂️":"1f6b4-1f3fd-200d-2642-fe0f","🚴🏾♂️":"1f6b4-1f3fe-200d-2642-fe0f","🚴🏿♂️":"1f6b4-1f3ff-200d-2642-fe0f","🚴🏻♀️":"1f6b4-1f3fb-200d-2640-fe0f","🚴🏼♀️":"1f6b4-1f3fc-200d-2640-fe0f","🚴🏽♀️":"1f6b4-1f3fd-200d-2640-fe0f","🚴🏾♀️":"1f6b4-1f3fe-200d-2640-fe0f","🚴🏿♀️":"1f6b4-1f3ff-200d-2640-fe0f","🚵🏻♂️":"1f6b5-1f3fb-200d-2642-fe0f","🚵🏼♂️":"1f6b5-1f3fc-200d-2642-fe0f","🚵🏽♂️":"1f6b5-1f3fd-200d-2642-fe0f","🚵🏾♂️":"1f6b5-1f3fe-200d-2642-fe0f","🚵🏿♂️":"1f6b5-1f3ff-200d-2642-fe0f","🚵🏻♀️":"1f6b5-1f3fb-200d-2640-fe0f","🚵🏼♀️":"1f6b5-1f3fc-200d-2640-fe0f","🚵🏽♀️":"1f6b5-1f3fd-200d-2640-fe0f","🚵🏾♀️":"1f6b5-1f3fe-200d-2640-fe0f","🚵🏿♀️":"1f6b5-1f3ff-200d-2640-fe0f","🤸🏻♂️":"1f938-1f3fb-200d-2642-fe0f","🤸🏼♂️":"1f938-1f3fc-200d-2642-fe0f","🤸🏽♂️":"1f938-1f3fd-200d-2642-fe0f","🤸🏾♂️":"1f938-1f3fe-200d-2642-fe0f","🤸🏿♂️":"1f938-1f3ff-200d-2642-fe0f","🤸🏻♀️":"1f938-1f3fb-200d-2640-fe0f","🤸🏼♀️":"1f938-1f3fc-200d-2640-fe0f","🤸🏽♀️":"1f938-1f3fd-200d-2640-fe0f","🤸🏾♀️":"1f938-1f3fe-200d-2640-fe0f","🤸🏿♀️":"1f938-1f3ff-200d-2640-fe0f","🤽🏻♂️":"1f93d-1f3fb-200d-2642-fe0f","🤽🏼♂️":"1f93d-1f3fc-200d-2642-fe0f","🤽🏽♂️":"1f93d-1f3fd-200d-2642-fe0f","🤽🏾♂️":"1f93d-1f3fe-200d-2642-fe0f","🤽🏿♂️":"1f93d-1f3ff-200d-2642-fe0f","🤽🏻♀️":"1f93d-1f3fb-200d-2640-fe0f","🤽🏼♀️":"1f93d-1f3fc-200d-2640-fe0f","🤽🏽♀️":"1f93d-1f3fd-200d-2640-fe0f","🤽🏾♀️":"1f93d-1f3fe-200d-2640-fe0f","🤽🏿♀️":"1f93d-1f3ff-200d-2640-fe0f","🤾🏻♂️":"1f93e-1f3fb-200d-2642-fe0f","🤾🏼♂️":"1f93e-1f3fc-200d-2642-fe0f","🤾🏽♂️":"1f93e-1f3fd-200d-2642-fe0f","🤾🏾♂️":"1f93e-1f3fe-200d-2642-fe0f","🤾🏿♂️":"1f93e-1f3ff-200d-2642-fe0f","🤾🏻♀️":"1f93e-1f3fb-200d-2640-fe0f","🤾🏼♀️":"1f93e-1f3fc-200d-2640-fe0f","🤾🏽♀️":"1f93e-1f3fd-200d-2640-fe0f","🤾🏾♀️":"1f93e-1f3fe-200d-2640-fe0f","🤾🏿♀️":"1f93e-1f3ff-200d-2640-fe0f","🤹🏻♂️":"1f939-1f3fb-200d-2642-fe0f","🤹🏼♂️":"1f939-1f3fc-200d-2642-fe0f","🤹🏽♂️":"1f939-1f3fd-200d-2642-fe0f","🤹🏾♂️":"1f939-1f3fe-200d-2642-fe0f","🤹🏿♂️":"1f939-1f3ff-200d-2642-fe0f","🤹🏻♀️":"1f939-1f3fb-200d-2640-fe0f","🤹🏼♀️":"1f939-1f3fc-200d-2640-fe0f","🤹🏽♀️":"1f939-1f3fd-200d-2640-fe0f","🤹🏾♀️":"1f939-1f3fe-200d-2640-fe0f","🤹🏿♀️":"1f939-1f3ff-200d-2640-fe0f","👩❤👨":"1f469-200d-2764-fe0f-200d-1f468","👨❤👨":"1f468-200d-2764-fe0f-200d-1f468","👩❤👩":"1f469-200d-2764-fe0f-200d-1f469","👨👩👦":"1f468-200d-1f469-200d-1f466","👨👩👧":"1f468-200d-1f469-200d-1f467","👨👨👦":"1f468-200d-1f468-200d-1f466","👨👨👧":"1f468-200d-1f468-200d-1f467","👩👩👦":"1f469-200d-1f469-200d-1f466","👩👩👧":"1f469-200d-1f469-200d-1f467","👨👦👦":"1f468-200d-1f466-200d-1f466","👨👧👦":"1f468-200d-1f467-200d-1f466","👨👧👧":"1f468-200d-1f467-200d-1f467","👩👦👦":"1f469-200d-1f466-200d-1f466","👩👧👦":"1f469-200d-1f467-200d-1f466","👩👧👧":"1f469-200d-1f467-200d-1f467","👁️🗨️":"1f441-200d-1f5e8","👩❤️👨":"1f469-200d-2764-fe0f-200d-1f468","👨❤️👨":"1f468-200d-2764-fe0f-200d-1f468","👩❤️👩":"1f469-200d-2764-fe0f-200d-1f469","👩❤💋👨":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f468","👨❤💋👨":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","👩❤💋👩":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","👨👩👧👦":"1f468-200d-1f469-200d-1f467-200d-1f466","👨👩👦👦":"1f468-200d-1f469-200d-1f466-200d-1f466","👨👩👧👧":"1f468-200d-1f469-200d-1f467-200d-1f467","👨👨👧👦":"1f468-200d-1f468-200d-1f467-200d-1f466","👨👨👦👦":"1f468-200d-1f468-200d-1f466-200d-1f466","👨👨👧👧":"1f468-200d-1f468-200d-1f467-200d-1f467","👩👩👧👦":"1f469-200d-1f469-200d-1f467-200d-1f466","👩👩👦👦":"1f469-200d-1f469-200d-1f466-200d-1f466","👩👩👧👧":"1f469-200d-1f469-200d-1f467-200d-1f467","🏴":"1f3f4-e0067-e0062-e0065-e006e-e0067-e007f","🏴":"1f3f4-e0067-e0062-e0073-e0063-e0074-e007f","🏴":"1f3f4-e0067-e0062-e0077-e006c-e0073-e007f","👩❤️💋👨":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f468","👨❤️💋👨":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","👩❤️💋👩":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469"}
\ No newline at end of file
diff --git a/app/javascript/mastodon/emojione_light.js b/app/javascript/mastodon/emojione_light.js
index 0d07d012f0..2296497b08 100644
--- a/app/javascript/mastodon/emojione_light.js
+++ b/app/javascript/mastodon/emojione_light.js
@@ -1,13 +1,38 @@
// @preval
-// Force tree shaking on emojione by exposing just a subset of its functionality
+// http://www.unicode.org/Public/emoji/5.0/emoji-test.txt
-const emojione = require('emojione');
+const emojis = require('./emoji_map.json');
+const { emojiIndex } = require('emoji-mart');
+const excluded = ['®', '©', '™'];
+const skins = ['🏻', '🏼', '🏽', '🏾', '🏿'];
+const shortcodeMap = {};
-const mappedUnicode = emojione.mapUnicodeToShort();
-const excluded = ['®', '©', '™'];
+Object.keys(emojiIndex.emojis).forEach(key => {
+ shortcodeMap[emojiIndex.emojis[key].native] = emojiIndex.emojis[key].id;
+});
-module.exports.unicodeMapping = Object.keys(emojione.jsEscapeMap)
- .filter(c => !excluded.includes(c))
- .map(unicodeStr => [unicodeStr, mappedUnicode[emojione.jsEscapeMap[unicodeStr]]])
- .map(([unicodeStr, shortCode]) => ({ [unicodeStr]: [emojione.emojioneList[shortCode].fname, shortCode.slice(1, shortCode.length - 1)] }))
- .reduce((x, y) => Object.assign(x, y), { });
+const stripModifiers = unicode => {
+ skins.forEach(tone => {
+ unicode = unicode.replace(tone, '');
+ });
+
+ return unicode;
+};
+
+Object.keys(emojis).forEach(key => {
+ if (excluded.includes(key)) {
+ delete emojis[key];
+ return;
+ }
+
+ const normalizedKey = stripModifiers(key);
+ let shortcode = shortcodeMap[normalizedKey];
+
+ if (!shortcode) {
+ shortcode = shortcodeMap[normalizedKey + '\uFE0F'];
+ }
+
+ emojis[key] = [emojis[key], shortcode];
+});
+
+module.exports.unicodeMapping = emojis;
diff --git a/app/javascript/mastodon/features/account/components/action_bar.js b/app/javascript/mastodon/features/account/components/action_bar.js
index c12c0889e4..9e8fea69d1 100644
--- a/app/javascript/mastodon/features/account/components/action_bar.js
+++ b/app/javascript/mastodon/features/account/components/action_bar.js
@@ -26,7 +26,7 @@ export default class ActionBar extends React.PureComponent {
static propTypes = {
account: ImmutablePropTypes.map.isRequired,
- me: PropTypes.number.isRequired,
+ me: PropTypes.string.isRequired,
onFollow: PropTypes.func,
onBlock: PropTypes.func.isRequired,
onMention: PropTypes.func.isRequired,
diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js
index 7ab4922250..5402d67535 100644
--- a/app/javascript/mastodon/features/account/components/header.js
+++ b/app/javascript/mastodon/features/account/components/header.js
@@ -80,7 +80,7 @@ export default class Header extends ImmutablePureComponent {
static propTypes = {
account: ImmutablePropTypes.map,
- me: PropTypes.number.isRequired,
+ me: PropTypes.string.isRequired,
onFollow: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
autoPlayGif: PropTypes.bool.isRequired,
diff --git a/app/javascript/mastodon/features/account_gallery/index.js b/app/javascript/mastodon/features/account_gallery/index.js
index 0cfd98f231..2a88addc42 100644
--- a/app/javascript/mastodon/features/account_gallery/index.js
+++ b/app/javascript/mastodon/features/account_gallery/index.js
@@ -16,9 +16,9 @@ import { ScrollContainer } from 'react-router-scroll';
import LoadMore from '../../components/load_more';
const mapStateToProps = (state, props) => ({
- medias: getAccountGallery(state, Number(props.params.accountId)),
- isLoading: state.getIn(['timelines', `account:${Number(props.params.accountId)}:media`, 'isLoading']),
- hasMore: !!state.getIn(['timelines', `account:${Number(props.params.accountId)}:media`, 'next']),
+ medias: getAccountGallery(state, props.params.accountId),
+ isLoading: state.getIn(['timelines', `account:${props.params.accountId}:media`, 'isLoading']),
+ hasMore: !!state.getIn(['timelines', `account:${props.params.accountId}:media`, 'next']),
autoPlayGif: state.getIn(['meta', 'auto_play_gif']),
});
@@ -35,20 +35,20 @@ export default class AccountGallery extends ImmutablePureComponent {
};
componentDidMount () {
- this.props.dispatch(fetchAccount(Number(this.props.params.accountId)));
- this.props.dispatch(refreshAccountMediaTimeline(Number(this.props.params.accountId)));
+ this.props.dispatch(fetchAccount(this.props.params.accountId));
+ this.props.dispatch(refreshAccountMediaTimeline(this.props.params.accountId));
}
componentWillReceiveProps (nextProps) {
if (nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) {
- this.props.dispatch(fetchAccount(Number(nextProps.params.accountId)));
- this.props.dispatch(refreshAccountMediaTimeline(Number(this.props.params.accountId)));
+ this.props.dispatch(fetchAccount(nextProps.params.accountId));
+ this.props.dispatch(refreshAccountMediaTimeline(this.props.params.accountId));
}
}
handleScrollToBottom = () => {
if (this.props.hasMore) {
- this.props.dispatch(expandAccountMediaTimeline(Number(this.props.params.accountId)));
+ this.props.dispatch(expandAccountMediaTimeline(this.props.params.accountId));
}
}
diff --git a/app/javascript/mastodon/features/account_timeline/components/header.js b/app/javascript/mastodon/features/account_timeline/components/header.js
index 09883d7d65..c3cd4e55dd 100644
--- a/app/javascript/mastodon/features/account_timeline/components/header.js
+++ b/app/javascript/mastodon/features/account_timeline/components/header.js
@@ -10,7 +10,7 @@ export default class Header extends ImmutablePureComponent {
static propTypes = {
account: ImmutablePropTypes.map,
- me: PropTypes.number.isRequired,
+ me: PropTypes.string.isRequired,
onFollow: PropTypes.func.isRequired,
onBlock: PropTypes.func.isRequired,
onMention: PropTypes.func.isRequired,
diff --git a/app/javascript/mastodon/features/account_timeline/containers/header_container.js b/app/javascript/mastodon/features/account_timeline/containers/header_container.js
index ac1364441c..9ad13a2310 100644
--- a/app/javascript/mastodon/features/account_timeline/containers/header_container.js
+++ b/app/javascript/mastodon/features/account_timeline/containers/header_container.js
@@ -26,7 +26,7 @@ const makeMapStateToProps = () => {
const getAccount = makeGetAccount();
const mapStateToProps = (state, { accountId }) => ({
- account: getAccount(state, Number(accountId)),
+ account: getAccount(state, accountId),
me: state.getIn(['meta', 'me']),
unfollowModal: state.getIn(['meta', 'unfollow_modal']),
});
diff --git a/app/javascript/mastodon/features/account_timeline/index.js b/app/javascript/mastodon/features/account_timeline/index.js
index 3c8b63114f..fe92216d53 100644
--- a/app/javascript/mastodon/features/account_timeline/index.js
+++ b/app/javascript/mastodon/features/account_timeline/index.js
@@ -13,9 +13,9 @@ import { List as ImmutableList } from 'immutable';
import ImmutablePureComponent from 'react-immutable-pure-component';
const mapStateToProps = (state, props) => ({
- statusIds: state.getIn(['timelines', `account:${Number(props.params.accountId)}`, 'items'], ImmutableList()),
- isLoading: state.getIn(['timelines', `account:${Number(props.params.accountId)}`, 'isLoading']),
- hasMore: !!state.getIn(['timelines', `account:${Number(props.params.accountId)}`, 'next']),
+ statusIds: state.getIn(['timelines', `account:${props.params.accountId}`, 'items'], ImmutableList()),
+ isLoading: state.getIn(['timelines', `account:${props.params.accountId}`, 'isLoading']),
+ hasMore: !!state.getIn(['timelines', `account:${props.params.accountId}`, 'next']),
me: state.getIn(['meta', 'me']),
});
@@ -28,24 +28,24 @@ export default class AccountTimeline extends ImmutablePureComponent {
statusIds: ImmutablePropTypes.list,
isLoading: PropTypes.bool,
hasMore: PropTypes.bool,
- me: PropTypes.number.isRequired,
+ me: PropTypes.string.isRequired,
};
componentWillMount () {
- this.props.dispatch(fetchAccount(Number(this.props.params.accountId)));
- this.props.dispatch(refreshAccountTimeline(Number(this.props.params.accountId)));
+ this.props.dispatch(fetchAccount(this.props.params.accountId));
+ this.props.dispatch(refreshAccountTimeline(this.props.params.accountId));
}
componentWillReceiveProps (nextProps) {
if (nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) {
- this.props.dispatch(fetchAccount(Number(nextProps.params.accountId)));
- this.props.dispatch(refreshAccountTimeline(Number(nextProps.params.accountId)));
+ this.props.dispatch(fetchAccount(nextProps.params.accountId));
+ this.props.dispatch(refreshAccountTimeline(nextProps.params.accountId));
}
}
handleScrollToBottom = () => {
if (!this.props.isLoading && this.props.hasMore) {
- this.props.dispatch(expandAccountTimeline(Number(this.props.params.accountId)));
+ this.props.dispatch(expandAccountTimeline(this.props.params.accountId));
}
}
diff --git a/app/javascript/mastodon/features/compose/components/compose_form.js b/app/javascript/mastodon/features/compose/components/compose_form.js
index 8fbcf6a3d8..b85105c53e 100644
--- a/app/javascript/mastodon/features/compose/components/compose_form.js
+++ b/app/javascript/mastodon/features/compose/components/compose_form.js
@@ -13,7 +13,7 @@ import SpoilerButtonContainer from '../containers/spoiler_button_container';
import PrivacyDropdownContainer from '../containers/privacy_dropdown_container';
import ComposeAdvancedOptionsContainer from '../../../../glitch/components/compose/advanced_options/container';
import SensitiveButtonContainer from '../containers/sensitive_button_container';
-import EmojiPickerDropdown from './emoji_picker_dropdown';
+import EmojiPickerDropdown from '../containers/emoji_picker_dropdown_container';
import UploadFormContainer from '../containers/upload_form_container';
import WarningContainer from '../containers/warning_container';
import { isMobile } from '../../../is_mobile';
@@ -46,7 +46,7 @@ export default class ComposeForm extends ImmutablePureComponent {
preselectDate: PropTypes.instanceOf(Date),
is_submitting: PropTypes.bool,
is_uploading: PropTypes.bool,
- me: PropTypes.number,
+ me: PropTypes.string,
onChange: PropTypes.func.isRequired,
onSubmit: PropTypes.func.isRequired,
onClearSuggestions: PropTypes.func.isRequired,
@@ -150,7 +150,7 @@ export default class ComposeForm extends ImmutablePureComponent {
handleEmojiPick = (data) => {
const position = this.autosuggestTextarea.textarea.selectionStart;
- const emojiChar = data.unicode.split('-').map(code => String.fromCodePoint(parseInt(code, 16))).join('');
+ const emojiChar = data.native;
this._restoreCaret = position + emojiChar.length + 1;
this.props.onPickEmoji(position, data);
}
diff --git a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js
index 9d05b7a343..621cc21ceb 100644
--- a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js
+++ b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js
@@ -1,12 +1,19 @@
import React from 'react';
-import Dropdown, { DropdownTrigger, DropdownContent } from 'react-simple-dropdown';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
-import { EmojiPicker as EmojiPickerAsync } from '../../ui/util/async-components';
+import { Picker, Emoji } from 'emoji-mart';
+import { Overlay } from 'react-overlays';
+import classNames from 'classnames';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import detectPassiveEvents from 'detect-passive-events';
const messages = defineMessages({
emoji: { id: 'emoji_button.label', defaultMessage: 'Insert emoji' },
emoji_search: { id: 'emoji_button.search', defaultMessage: 'Search...' },
+ emoji_not_found: { id: 'emoji_button.not_found', defaultMessage: 'No emojos!! (╯°□°)╯︵ ┻━┻' },
+ custom: { id: 'emoji_button.custom', defaultMessage: 'Custom' },
+ recent: { id: 'emoji_button.recent', defaultMessage: 'Frequently used' },
+ search_results: { id: 'emoji_button.search_results', defaultMessage: 'Search results' },
people: { id: 'emoji_button.people', defaultMessage: 'People' },
nature: { id: 'emoji_button.nature', defaultMessage: 'Nature' },
food: { id: 'emoji_button.food', defaultMessage: 'Food & Drink' },
@@ -17,48 +24,250 @@ const messages = defineMessages({
flags: { id: 'emoji_button.flags', defaultMessage: 'Flags' },
});
-const settings = {
- imageType: 'png',
- sprites: false,
- imagePathPNG: '/emoji/',
-};
+const assetHost = process.env.CDN_HOST || '';
+const backgroundImageFn = () => `${assetHost}/emoji/sheet.png`;
+const listenerOptions = detectPassiveEvents.hasSupport ? { passive: true } : false;
-let EmojiPicker; // load asynchronously
+class ModifierPickerMenu extends React.PureComponent {
+
+ static propTypes = {
+ active: PropTypes.bool,
+ onSelect: PropTypes.func.isRequired,
+ onClose: PropTypes.func.isRequired,
+ };
+
+ handleClick = (e) => {
+ const modifier = [].slice.call(e.currentTarget.parentNode.children).indexOf(e.target) + 1;
+ this.props.onSelect(modifier);
+ }
+
+ componentWillReceiveProps (nextProps) {
+ if (nextProps.active) {
+ this.attachListeners();
+ } else {
+ this.removeListeners();
+ }
+ }
+
+ componentWillUnmount () {
+ this.removeListeners();
+ }
+
+ handleDocumentClick = e => {
+ if (this.node && !this.node.contains(e.target)) {
+ this.props.onClose();
+ }
+ }
+
+ attachListeners () {
+ document.addEventListener('click', this.handleDocumentClick, false);
+ document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);
+ }
+
+ removeListeners () {
+ document.removeEventListener('click', this.handleDocumentClick, false);
+ document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);
+ }
+
+ setRef = c => {
+ this.node = c;
+ }
+
+ render () {
+ const { active } = this.props;
+
+ return (
+
+
+
+
+
+
+
+
+ );
+ }
+
+}
+
+class ModifierPicker extends React.PureComponent {
+
+ static propTypes = {
+ active: PropTypes.bool,
+ modifier: PropTypes.number,
+ onChange: PropTypes.func,
+ onClose: PropTypes.func,
+ onOpen: PropTypes.func,
+ };
+
+ handleClick = () => {
+ if (this.props.active) {
+ this.props.onClose();
+ } else {
+ this.props.onOpen();
+ }
+ }
+
+ handleSelect = modifier => {
+ this.props.onChange(modifier);
+ this.props.onClose();
+ }
+
+ render () {
+ const { active, modifier } = this.props;
+
+ return (
+
+
+
+
+ );
+ }
+
+}
+
+@injectIntl
+class EmojiPickerMenu extends React.PureComponent {
+
+ static propTypes = {
+ custom_emojis: ImmutablePropTypes.list,
+ onClose: PropTypes.func.isRequired,
+ onPick: PropTypes.func.isRequired,
+ style: PropTypes.object,
+ placement: PropTypes.string,
+ arrowOffsetLeft: PropTypes.string,
+ arrowOffsetTop: PropTypes.string,
+ intl: PropTypes.object.isRequired,
+ };
+
+ static defaultProps = {
+ style: {},
+ placement: 'bottom',
+ };
+
+ state = {
+ modifierOpen: false,
+ modifier: 1,
+ };
+
+ handleDocumentClick = e => {
+ if (this.node && !this.node.contains(e.target)) {
+ this.props.onClose();
+ }
+ }
+
+ componentDidMount () {
+ document.addEventListener('click', this.handleDocumentClick, false);
+ document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);
+ }
+
+ componentWillUnmount () {
+ document.removeEventListener('click', this.handleDocumentClick, false);
+ document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);
+ }
+
+ setRef = c => {
+ this.node = c;
+ }
+
+ getI18n = () => {
+ const { intl } = this.props;
+
+ return {
+ search: intl.formatMessage(messages.emoji_search),
+ notfound: intl.formatMessage(messages.emoji_not_found),
+ categories: {
+ search: intl.formatMessage(messages.search_results),
+ recent: intl.formatMessage(messages.recent),
+ people: intl.formatMessage(messages.people),
+ nature: intl.formatMessage(messages.nature),
+ foods: intl.formatMessage(messages.food),
+ activity: intl.formatMessage(messages.activity),
+ places: intl.formatMessage(messages.travel),
+ objects: intl.formatMessage(messages.objects),
+ symbols: intl.formatMessage(messages.symbols),
+ flags: intl.formatMessage(messages.flags),
+ custom: intl.formatMessage(messages.custom),
+ },
+ };
+ }
+
+ handleClick = emoji => {
+ if (!emoji.native) {
+ emoji.native = emoji.colons;
+ }
+
+ this.props.onClose();
+ this.props.onPick(emoji);
+ }
+
+ handleModifierOpen = () => {
+ this.setState({ modifierOpen: true });
+ }
+
+ handleModifierClose = () => {
+ this.setState({ modifierOpen: false });
+ }
+
+ handleModifierChange = modifier => {
+ if (modifier !== this.state.modifier) {
+ this.setState({ modifier });
+ }
+ }
+
+ render () {
+ const { style, intl } = this.props;
+ const title = intl.formatMessage(messages.emoji);
+ const { modifierOpen, modifier } = this.state;
+
+ return (
+
+ );
+ }
+
+}
@injectIntl
export default class EmojiPickerDropdown extends React.PureComponent {
static propTypes = {
+ custom_emojis: ImmutablePropTypes.list,
intl: PropTypes.object.isRequired,
onPickEmoji: PropTypes.func.isRequired,
};
state = {
active: false,
- loading: false,
};
setRef = (c) => {
this.dropdown = c;
}
- handleChange = (data) => {
- this.dropdown.hide();
- this.props.onPickEmoji(data);
- }
-
onShowDropdown = () => {
this.setState({ active: true });
- if (!EmojiPicker) {
- this.setState({ loading: true });
- EmojiPickerAsync().then(TheEmojiPicker => {
- EmojiPicker = TheEmojiPicker.default;
- this.setState({ loading: false });
- }).catch(() => {
- // TODO: show the user an error?
- this.setState({ loading: false });
- });
- }
}
onHideDropdown = () => {
@@ -66,7 +275,7 @@ export default class EmojiPickerDropdown extends React.PureComponent {
}
onToggle = (e) => {
- if (!this.state.loading && (!e.key || e.key === 'Enter')) {
+ if (!e.key || e.key === 'Enter') {
if (this.state.active) {
this.onHideDropdown();
} else {
@@ -75,70 +284,43 @@ export default class EmojiPickerDropdown extends React.PureComponent {
}
}
- onEmojiPickerKeyDown = (e) => {
+ handleKeyDown = e => {
if (e.key === 'Escape') {
this.onHideDropdown();
}
}
- render () {
- const { intl } = this.props;
+ setTargetRef = c => {
+ this.target = c;
+ }
- const categories = {
- people: {
- title: intl.formatMessage(messages.people),
- emoji: 'smile',
- },
- nature: {
- title: intl.formatMessage(messages.nature),
- emoji: 'hamster',
- },
- food: {
- title: intl.formatMessage(messages.food),
- emoji: 'pizza',
- },
- activity: {
- title: intl.formatMessage(messages.activity),
- emoji: 'soccer',
- },
- travel: {
- title: intl.formatMessage(messages.travel),
- emoji: 'earth_americas',
- },
- objects: {
- title: intl.formatMessage(messages.objects),
- emoji: 'bulb',
- },
- symbols: {
- title: intl.formatMessage(messages.symbols),
- emoji: 'clock9',
- },
- flags: {
- title: intl.formatMessage(messages.flags),
- emoji: 'flag_gb',
- },
- };
+ findTarget = () => {
+ return this.target;
+ }
- const { active, loading } = this.state;
+ render () {
+ const { intl, onPickEmoji } = this.props;
const title = intl.formatMessage(messages.emoji);
+ const { active } = this.state;
return (
-
-
+
+
+
+
+
+
-
-
-
- {
- this.state.active && !this.state.loading &&
- ()
- }
-
-
+
+
);
}
diff --git a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js b/app/javascript/mastodon/features/compose/components/privacy_dropdown.js
index da3c0a0ab2..0474dfb4e3 100644
--- a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js
+++ b/app/javascript/mastodon/features/compose/components/privacy_dropdown.js
@@ -2,6 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types';
import { injectIntl, defineMessages } from 'react-intl';
import IconButton from '../../../components/icon_button';
+import detectPassiveEvents from 'detect-passive-events';
const messages = defineMessages({
public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
@@ -89,12 +90,12 @@ export default class PrivacyDropdown extends React.PureComponent {
componentDidMount () {
window.addEventListener('click', this.onGlobalClick);
- window.addEventListener('touchstart', this.onGlobalClick);
+ window.addEventListener('touchstart', this.onGlobalClick, detectPassiveEvents.hasSupport ? { passive: true } : false);
}
componentWillUnmount () {
window.removeEventListener('click', this.onGlobalClick);
- window.removeEventListener('touchstart', this.onGlobalClick);
+ window.removeEventListener('touchstart', this.onGlobalClick, detectPassiveEvents.hasSupport ? { passive: true } : false);
}
setRef = (c) => {
diff --git a/app/javascript/mastodon/features/compose/components/upload_form.js b/app/javascript/mastodon/features/compose/components/upload_form.js
index 78473dab40..cf2d2658ae 100644
--- a/app/javascript/mastodon/features/compose/components/upload_form.js
+++ b/app/javascript/mastodon/features/compose/components/upload_form.js
@@ -21,7 +21,7 @@ export default class UploadForm extends React.PureComponent {
};
onRemoveFile = (e) => {
- const id = Number(e.currentTarget.parentElement.getAttribute('data-id'));
+ const id = e.currentTarget.parentElement.getAttribute('data-id');
this.props.onRemoveFile(id);
}
diff --git a/app/javascript/mastodon/features/compose/containers/emoji_picker_dropdown_container.js b/app/javascript/mastodon/features/compose/containers/emoji_picker_dropdown_container.js
new file mode 100644
index 0000000000..7a8026bbc6
--- /dev/null
+++ b/app/javascript/mastodon/features/compose/containers/emoji_picker_dropdown_container.js
@@ -0,0 +1,8 @@
+import { connect } from 'react-redux';
+import EmojiPickerDropdown from '../components/emoji_picker_dropdown';
+
+const mapStateToProps = state => ({
+ custom_emojis: state.get('custom_emojis'),
+});
+
+export default connect(mapStateToProps)(EmojiPickerDropdown);
diff --git a/app/javascript/mastodon/features/compose/containers/warning_container.js b/app/javascript/mastodon/features/compose/containers/warning_container.js
index 6e7d11c634..35eab5976d 100644
--- a/app/javascript/mastodon/features/compose/containers/warning_container.js
+++ b/app/javascript/mastodon/features/compose/containers/warning_container.js
@@ -1,51 +1,23 @@
import React from 'react';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import { connect } from 'react-redux';
import Warning from '../components/warning';
-import { createSelector } from 'reselect';
import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
-import { OrderedSet } from 'immutable';
-const getMentionedUsernames = createSelector(state => state.getIn(['compose', 'text']), text => text.match(/(?:^|[^\/\w])@([a-z0-9_]+@[a-z0-9\.\-]+)/ig));
-
-const getMentionedDomains = createSelector(getMentionedUsernames, mentionedUsernamesWithDomains => {
- return OrderedSet(mentionedUsernamesWithDomains !== null ? mentionedUsernamesWithDomains.map(item => item.split('@')[2]) : []);
+const mapStateToProps = state => ({
+ needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', state.getIn(['meta', 'me']), 'locked']),
});
-const mapStateToProps = state => {
- const mentionedUsernames = getMentionedUsernames(state);
- const mentionedUsernamesWithDomains = getMentionedDomains(state);
-
- return {
- needsLeakWarning: (state.getIn(['compose', 'privacy']) === 'private' || state.getIn(['compose', 'privacy']) === 'direct') && mentionedUsernames !== null,
- mentionedDomains: mentionedUsernamesWithDomains,
- needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', state.getIn(['meta', 'me']), 'locked']),
- };
-};
-
-const WarningWrapper = ({ needsLeakWarning, needsLockWarning, mentionedDomains }) => {
+const WarningWrapper = ({ needsLockWarning }) => {
if (needsLockWarning) {
return }} />} />;
- } else if (needsLeakWarning) {
- return (
- {mentionedDomains.join(', ')}, domainsCount: mentionedDomains.size }}
- />}
- />
- );
}
return null;
};
WarningWrapper.propTypes = {
- needsLeakWarning: PropTypes.bool,
needsLockWarning: PropTypes.bool,
- mentionedDomains: ImmutablePropTypes.orderedSet.isRequired,
};
export default connect(mapStateToProps)(WarningWrapper);
diff --git a/app/javascript/mastodon/features/favourites/index.js b/app/javascript/mastodon/features/favourites/index.js
index dc8109d16e..4dbfefd876 100644
--- a/app/javascript/mastodon/features/favourites/index.js
+++ b/app/javascript/mastodon/features/favourites/index.js
@@ -11,7 +11,7 @@ import ColumnBackButton from '../../components/column_back_button';
import ImmutablePureComponent from 'react-immutable-pure-component';
const mapStateToProps = (state, props) => ({
- accountIds: state.getIn(['user_lists', 'favourited_by', Number(props.params.statusId)]),
+ accountIds: state.getIn(['user_lists', 'favourited_by', props.params.statusId]),
});
@connect(mapStateToProps)
@@ -24,12 +24,12 @@ export default class Favourites extends ImmutablePureComponent {
};
componentWillMount () {
- this.props.dispatch(fetchFavourites(Number(this.props.params.statusId)));
+ this.props.dispatch(fetchFavourites(this.props.params.statusId));
}
componentWillReceiveProps (nextProps) {
if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
- this.props.dispatch(fetchFavourites(Number(nextProps.params.statusId)));
+ this.props.dispatch(fetchFavourites(nextProps.params.statusId));
}
}
diff --git a/app/javascript/mastodon/features/followers/index.js b/app/javascript/mastodon/features/followers/index.js
index 2d85b9cc0b..89445559fe 100644
--- a/app/javascript/mastodon/features/followers/index.js
+++ b/app/javascript/mastodon/features/followers/index.js
@@ -17,8 +17,8 @@ import ColumnBackButton from '../../components/column_back_button';
import ImmutablePureComponent from 'react-immutable-pure-component';
const mapStateToProps = (state, props) => ({
- accountIds: state.getIn(['user_lists', 'followers', Number(props.params.accountId), 'items']),
- hasMore: !!state.getIn(['user_lists', 'followers', Number(props.params.accountId), 'next']),
+ accountIds: state.getIn(['user_lists', 'followers', props.params.accountId, 'items']),
+ hasMore: !!state.getIn(['user_lists', 'followers', props.params.accountId, 'next']),
});
@connect(mapStateToProps)
@@ -32,14 +32,14 @@ export default class Followers extends ImmutablePureComponent {
};
componentWillMount () {
- this.props.dispatch(fetchAccount(Number(this.props.params.accountId)));
- this.props.dispatch(fetchFollowers(Number(this.props.params.accountId)));
+ this.props.dispatch(fetchAccount(this.props.params.accountId));
+ this.props.dispatch(fetchFollowers(this.props.params.accountId));
}
componentWillReceiveProps (nextProps) {
if (nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) {
- this.props.dispatch(fetchAccount(Number(nextProps.params.accountId)));
- this.props.dispatch(fetchFollowers(Number(nextProps.params.accountId)));
+ this.props.dispatch(fetchAccount(nextProps.params.accountId));
+ this.props.dispatch(fetchFollowers(nextProps.params.accountId));
}
}
@@ -47,13 +47,13 @@ export default class Followers extends ImmutablePureComponent {
const { scrollTop, scrollHeight, clientHeight } = e.target;
if (scrollTop === scrollHeight - clientHeight && this.props.hasMore) {
- this.props.dispatch(expandFollowers(Number(this.props.params.accountId)));
+ this.props.dispatch(expandFollowers(this.props.params.accountId));
}
}
handleLoadMore = (e) => {
e.preventDefault();
- this.props.dispatch(expandFollowers(Number(this.props.params.accountId)));
+ this.props.dispatch(expandFollowers(this.props.params.accountId));
}
render () {
diff --git a/app/javascript/mastodon/features/following/index.js b/app/javascript/mastodon/features/following/index.js
index e4e2a4811e..c348302768 100644
--- a/app/javascript/mastodon/features/following/index.js
+++ b/app/javascript/mastodon/features/following/index.js
@@ -17,8 +17,8 @@ import ColumnBackButton from '../../components/column_back_button';
import ImmutablePureComponent from 'react-immutable-pure-component';
const mapStateToProps = (state, props) => ({
- accountIds: state.getIn(['user_lists', 'following', Number(props.params.accountId), 'items']),
- hasMore: !!state.getIn(['user_lists', 'following', Number(props.params.accountId), 'next']),
+ accountIds: state.getIn(['user_lists', 'following', props.params.accountId, 'items']),
+ hasMore: !!state.getIn(['user_lists', 'following', props.params.accountId, 'next']),
});
@connect(mapStateToProps)
@@ -32,14 +32,14 @@ export default class Following extends ImmutablePureComponent {
};
componentWillMount () {
- this.props.dispatch(fetchAccount(Number(this.props.params.accountId)));
- this.props.dispatch(fetchFollowing(Number(this.props.params.accountId)));
+ this.props.dispatch(fetchAccount(this.props.params.accountId));
+ this.props.dispatch(fetchFollowing(this.props.params.accountId));
}
componentWillReceiveProps (nextProps) {
if (nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) {
- this.props.dispatch(fetchAccount(Number(nextProps.params.accountId)));
- this.props.dispatch(fetchFollowing(Number(nextProps.params.accountId)));
+ this.props.dispatch(fetchAccount(nextProps.params.accountId));
+ this.props.dispatch(fetchFollowing(nextProps.params.accountId));
}
}
@@ -47,13 +47,13 @@ export default class Following extends ImmutablePureComponent {
const { scrollTop, scrollHeight, clientHeight } = e.target;
if (scrollTop === scrollHeight - clientHeight && this.props.hasMore) {
- this.props.dispatch(expandFollowing(Number(this.props.params.accountId)));
+ this.props.dispatch(expandFollowing(this.props.params.accountId));
}
}
handleLoadMore = (e) => {
e.preventDefault();
- this.props.dispatch(expandFollowing(Number(this.props.params.accountId)));
+ this.props.dispatch(expandFollowing(this.props.params.accountId));
}
render () {
diff --git a/app/javascript/mastodon/features/reblogs/index.js b/app/javascript/mastodon/features/reblogs/index.js
index dc940ae01a..f1904786a6 100644
--- a/app/javascript/mastodon/features/reblogs/index.js
+++ b/app/javascript/mastodon/features/reblogs/index.js
@@ -11,7 +11,7 @@ import ColumnBackButton from '../../components/column_back_button';
import ImmutablePureComponent from 'react-immutable-pure-component';
const mapStateToProps = (state, props) => ({
- accountIds: state.getIn(['user_lists', 'reblogged_by', Number(props.params.statusId)]),
+ accountIds: state.getIn(['user_lists', 'reblogged_by', props.params.statusId]),
});
@connect(mapStateToProps)
@@ -24,12 +24,12 @@ export default class Reblogs extends ImmutablePureComponent {
};
componentWillMount () {
- this.props.dispatch(fetchReblogs(Number(this.props.params.statusId)));
+ this.props.dispatch(fetchReblogs(this.props.params.statusId));
}
componentWillReceiveProps(nextProps) {
if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
- this.props.dispatch(fetchReblogs(Number(nextProps.params.statusId)));
+ this.props.dispatch(fetchReblogs(nextProps.params.statusId));
}
}
diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.js
index 4be013be73..3e94f7446d 100644
--- a/app/javascript/mastodon/features/status/components/action_bar.js
+++ b/app/javascript/mastodon/features/status/components/action_bar.js
@@ -36,7 +36,7 @@ export default class ActionBar extends React.PureComponent {
onReport: PropTypes.func,
onPin: PropTypes.func,
onEmbed: PropTypes.func,
- me: PropTypes.number.isRequired,
+ me: PropTypes.string.isRequired,
intl: PropTypes.object.isRequired,
};
diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js
index 03010cf0a3..fc45d5f211 100644
--- a/app/javascript/mastodon/features/status/index.js
+++ b/app/javascript/mastodon/features/status/index.js
@@ -38,10 +38,10 @@ const makeMapStateToProps = () => {
const getStatus = makeGetStatus();
const mapStateToProps = (state, props) => ({
- status: getStatus(state, Number(props.params.statusId)),
+ status: getStatus(state, props.params.statusId),
settings: state.get('local_settings'),
- ancestorsIds: state.getIn(['contexts', 'ancestors', Number(props.params.statusId)]),
- descendantsIds: state.getIn(['contexts', 'descendants', Number(props.params.statusId)]),
+ ancestorsIds: state.getIn(['contexts', 'ancestors', props.params.statusId]),
+ descendantsIds: state.getIn(['contexts', 'descendants', props.params.statusId]),
me: state.getIn(['meta', 'me']),
boostModal: state.getIn(['meta', 'boost_modal']),
deleteModal: state.getIn(['meta', 'delete_modal']),
@@ -66,7 +66,7 @@ export default class Status extends ImmutablePureComponent {
settings: ImmutablePropTypes.map.isRequired,
ancestorsIds: ImmutablePropTypes.list,
descendantsIds: ImmutablePropTypes.list,
- me: PropTypes.number,
+ me: PropTypes.string,
boostModal: PropTypes.bool,
deleteModal: PropTypes.bool,
autoPlayGif: PropTypes.bool,
@@ -74,12 +74,12 @@ export default class Status extends ImmutablePureComponent {
};
componentWillMount () {
- this.props.dispatch(fetchStatus(Number(this.props.params.statusId)));
+ this.props.dispatch(fetchStatus(this.props.params.statusId));
}
componentWillReceiveProps (nextProps) {
if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
- this.props.dispatch(fetchStatus(Number(nextProps.params.statusId)));
+ this.props.dispatch(fetchStatus(nextProps.params.statusId));
}
}
diff --git a/app/javascript/mastodon/features/ui/components/actions_modal.js b/app/javascript/mastodon/features/ui/components/actions_modal.js
index 3d40033be1..79a5a20ef6 100644
--- a/app/javascript/mastodon/features/ui/components/actions_modal.js
+++ b/app/javascript/mastodon/features/ui/components/actions_modal.js
@@ -1,32 +1,35 @@
import React from 'react';
import PropTypes from 'prop-types';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import StatusContent from '../../../components/status_content';
import Avatar from '../../../components/avatar';
import RelativeTimestamp from '../../../components/relative_timestamp';
import DisplayName from '../../../components/display_name';
import IconButton from '../../../components/icon_button';
+import classNames from 'classnames';
export default class ActionsModal extends ImmutablePureComponent {
static propTypes = {
+ status: ImmutablePropTypes.map,
actions: PropTypes.array,
onClick: PropTypes.func,
};
renderAction = (action, i) => {
if (action === null) {
- return ;
+ return ;
}
const { icon = null, text, meta = null, active = false, href = '#' } = action;
return (
-
+
{icon && }
diff --git a/app/javascript/mastodon/features/ui/components/column_loading.js b/app/javascript/mastodon/features/ui/components/column_loading.js
index 1c4058926c..9503a7a1ac 100644
--- a/app/javascript/mastodon/features/ui/components/column_loading.js
+++ b/app/javascript/mastodon/features/ui/components/column_loading.js
@@ -3,17 +3,28 @@ import PropTypes from 'prop-types';
import Column from '../../../components/column';
import ColumnHeader from '../../../components/column_header';
+import ImmutablePureComponent from 'react-immutable-pure-component';
-const ColumnLoading = ({ title = '', icon = ' ' }) => (
-
-
-
-
-);
+export default class ColumnLoading extends ImmutablePureComponent {
-ColumnLoading.propTypes = {
- title: PropTypes.node,
- icon: PropTypes.string,
-};
+ static propTypes = {
+ title: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),
+ icon: PropTypes.string,
+ };
-export default ColumnLoading;
+ static defaultProps = {
+ title: '',
+ icon: '',
+ };
+
+ render() {
+ let { title, icon } = this.props;
+ return (
+
+
+
+
+ );
+ }
+
+}
diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.js
index 3732d301fe..73bd23432d 100644
--- a/app/javascript/mastodon/features/ui/index.js
+++ b/app/javascript/mastodon/features/ui/index.js
@@ -57,7 +57,7 @@ export default class UI extends React.PureComponent {
static contextTypes = {
router: PropTypes.object.isRequired,
- }
+ };
static propTypes = {
dispatch: PropTypes.func.isRequired,
@@ -193,14 +193,18 @@ export default class UI extends React.PureComponent {
document.removeEventListener('dragend', this.handleDragEnd);
}
- setRef = (c) => {
+ setRef = c => {
this.node = c;
}
- setColumnsAreaRef = (c) => {
+ setColumnsAreaRef = c => {
this.columnsAreaNode = c.getWrappedInstance().getWrappedInstance();
}
+ setOverlayRef = c => {
+ this.overlay = c;
+ }
+
render () {
const { width, draggingOver } = this.state;
const { children, layout, isWide, navbarUnder } = this.props;
diff --git a/app/javascript/mastodon/features/ui/util/async-components.js b/app/javascript/mastodon/features/ui/util/async-components.js
index ddb7e32c91..5d640810f4 100644
--- a/app/javascript/mastodon/features/ui/util/async-components.js
+++ b/app/javascript/mastodon/features/ui/util/async-components.js
@@ -1,7 +1,3 @@
-export function EmojiPicker () {
- return import(/* webpackChunkName: "emojione_picker" */'emojione-picker');
-}
-
export function Compose () {
return import(/* webpackChunkName: "features/compose" */'../../compose');
}
diff --git a/app/javascript/mastodon/is_mobile.js b/app/javascript/mastodon/is_mobile.js
index 129d666821..80e8e0a8a8 100644
--- a/app/javascript/mastodon/is_mobile.js
+++ b/app/javascript/mastodon/is_mobile.js
@@ -1,4 +1,6 @@
-const LAYOUT_BREAKPOINT = 1024;
+import detectPassiveEvents from 'detect-passive-events';
+
+const LAYOUT_BREAKPOINT = 630;
export function isMobile(width, columns) {
switch (columns) {
@@ -12,11 +14,16 @@ export function isMobile(width, columns) {
};
const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
+
let userTouching = false;
+let listenerOptions = detectPassiveEvents.hasSupport ? { passive: true } : false;
-window.addEventListener('touchstart', () => {
+function touchListener() {
userTouching = true;
-}, { once: true });
+ window.removeEventListener('touchstart', touchListener, listenerOptions);
+}
+
+window.addEventListener('touchstart', touchListener, listenerOptions);
export function isUserTouching() {
return userTouching;
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 3a6fa2874c..bd09f19705 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "حسابك ليس {locked}. يمكن لأي شخص متابعتك و عرض المنشورات.",
"compose_form.lock_disclaimer.lock": "مقفل",
"compose_form.placeholder": "فيمَ تفكّر؟",
- "compose_form.privacy_disclaimer": "Your private status will be delivered to mentioned users on {domains}. Do you trust {domainsCount, plural, one {that server} other {those servers}}? Post privacy only works on Mastodon instances. If {domains} {domainsCount, plural, one {is not a Mastodon instance} other {are not Mastodon instances}}, there will be no indication that your post is private, and it may be boosted or otherwise made visible to unintended recipients.",
"compose_form.publish": "بوّق",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "ضع علامة على الوسيط باعتباره حسّاس",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "الأنشطة",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "الأعلام",
"emoji_button.food": "الطعام والشراب",
"emoji_button.label": "أدرج إيموجي",
"emoji_button.nature": "الطبيعة",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "أشياء",
"emoji_button.people": "الناس",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "ابحث...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "رموز",
"emoji_button.travel": "أماكن و أسفار",
"empty_column.community": "الخط الزمني المحلي فارغ. اكتب شيئا ما للعامة كبداية.",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 9afe2d038b..d391a57ba0 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "Какво си мислиш?",
- "compose_form.privacy_disclaimer": "Поверителни публикации ще бъдат изпратени до споменатите потребители на {domains}. Доверяваш ли се на {domainsCount, plural, one {that server} other {those servers}}, че няма да издаде твоята публикация?",
"compose_form.publish": "Раздумай",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Отбележи съдържанието като деликатно",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 7d45b4d6b0..286da3ac67 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "El teu compte no està bloquejat {locked}. Tothom pot seguir-te i veure els teus missatges a seguidors.",
"compose_form.lock_disclaimer.lock": "bloquejat",
"compose_form.placeholder": "En què estàs pensant?",
- "compose_form.privacy_disclaimer": "El teu missatge serà lliurat als usuaris esmentats en els dominis {domains}. Confies en {domainsCount, plural, one {that server} other {those servers}}? Els missatges privats només funcionen en instàncies Mastodon. Si {domains} {domainsCount, plural, one {is not a Mastodon instance} other {are not Mastodon instances}}, res indicarà que el teu missatge no es públic i pot ser impulsat (boosted) o ser visible per destinataris no desitjats.",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Marcar multimèdia com a sensible",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activitat",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Menjar i Beure",
"emoji_button.label": "Inserir emoji",
"emoji_button.nature": "Natura",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objectes",
"emoji_button.people": "Gent",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Cercar...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Símbols",
"emoji_button.travel": "Viatges i Llocs",
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per fer rodar la pilota!",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 712c635c8a..461e7e3043 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Jeder kann dir jederzeit folgen, um deine privaten Beiträge einzusehen.",
"compose_form.lock_disclaimer.lock": "gesperrt",
"compose_form.placeholder": "Worüber möchtest du schreiben?",
- "compose_form.privacy_disclaimer": "Dein privater Status wird an die genannten Profile auf den Domains {domains} zugestellt. Vertraust du {domainsCount, plural, one {diesem Server} other {diesen Servern}}? Private Beiträge funktionieren nur auf Mastodon-Instanzen. Wenn {domains} {domainsCount, plural, one {keine Mastodon-Instanz ist} other {keine Mastodon-Instanzen sind}}, wird es dort kein Anzeichen geben, dass dein Beitrag privat ist und er könnte geteilt oder anderweitig für unerwünschte Empfänger sichtbar gemacht werden.",
"compose_form.publish": "Tröt",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Medien als heikel markieren",
@@ -67,13 +66,17 @@
"embed.instructions": "Du kannst diesen Beitrag auf deiner Webseite einbetten, in dem du den folgenden Code einfügst.",
"embed.preview": "So wird es aussehen:",
"emoji_button.activity": "Aktivitäten",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flaggen",
"emoji_button.food": "Essen und Trinken",
"emoji_button.label": "Emoji einfügen",
"emoji_button.nature": "Natur",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Dinge",
"emoji_button.people": "Leute",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Suche…",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbole",
"emoji_button.travel": "Reise und Orte",
"empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe etwas öffentlich, um den Ball ins Rollen zu bringen!",
diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json
index 3c19ad7dc2..5b711fd261 100644
--- a/app/javascript/mastodon/locales/defaultMessages.json
+++ b/app/javascript/mastodon/locales/defaultMessages.json
@@ -516,6 +516,22 @@
"defaultMessage": "Search...",
"id": "emoji_button.search"
},
+ {
+ "defaultMessage": "No emojos!! (╯°□°)╯︵ ┻━┻",
+ "id": "emoji_button.not_found"
+ },
+ {
+ "defaultMessage": "Custom",
+ "id": "emoji_button.custom"
+ },
+ {
+ "defaultMessage": "Frequently used",
+ "id": "emoji_button.recent"
+ },
+ {
+ "defaultMessage": "Search results",
+ "id": "emoji_button.search_results"
+ },
{
"defaultMessage": "People",
"id": "emoji_button.people"
@@ -682,10 +698,6 @@
{
"defaultMessage": "locked",
"id": "compose_form.lock_disclaimer.lock"
- },
- {
- "defaultMessage": "Your private status will be delivered to mentioned users on {domains}. Do you trust {domainsCount, plural, one {that server} other {those servers}}? Post privacy only works on Mastodon instances. If {domains} {domainsCount, plural, one {is not a Mastodon instance} other {are not Mastodon instances}}, there will be no indication that your post is private, and it may be boosted or otherwise made visible to unintended recipients.",
- "id": "compose_form.privacy_disclaimer"
}
],
"path": "app/javascript/mastodon/features/compose/containers/warning_container.json"
@@ -1331,15 +1343,6 @@
],
"path": "app/javascript/mastodon/features/ui/components/upload_area.json"
},
- {
- "descriptors": [
- {
- "defaultMessage": "Close",
- "id": "lightbox.close"
- }
- ],
- "path": "app/javascript/mastodon/features/ui/components/video_modal.json"
- },
{
"descriptors": [
{
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 436079aeb8..fc6aa4280f 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "What is on your mind?",
- "compose_form.privacy_disclaimer": "Your post will be delivered to mentioned users on {domains}. Do you trust {domainsCount, plural, one {that server} other {those servers}}? Post privacy only works on Mastodon instances. If {domains} {domainsCount, plural, one {is not a Mastodon instance} other {are not Mastodon instances}}, there will be no indication that your post is not a public post, and it may be boosted or otherwise made visible to unintended recipients.",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Mark media as sensitive",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index 945fcd8e08..21b92ed3a1 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "Pri kio vi pensas?",
- "compose_form.privacy_disclaimer": "Via privata mesaĝo estos sendita nur al menciitaj uzantoj en {domains}. Ĉu vi fidas {domainsCount, plural, one {tiun servilon} other {tiujn servilojn}}? Mesaĝa privateco funkcias nur en aperaĵoj de Mastodon. Se {domains} {domainsCount, plural, one {ne estas aperaĵo de Mastodon} other {ne estas aperaĵoj de Mastodon}}, estos neniu indiko ke via mesaĝo estas privata, kaj ĝi povus esti diskonigita aŭ videbligita al necelitaj ricevantoj.",
"compose_form.publish": "Hup",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Marki ke la enhavo estas tikla",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 5182b50946..59c7dc5a72 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
"compose_form.lock_disclaimer.lock": "bloqueado",
"compose_form.placeholder": "¿En qué estás pensando?",
- "compose_form.privacy_disclaimer": "Tu toot privado será enviado a usuario/s mencionados de {domains}. ¿Confías en {domainsCount, plural, one {ese servidor} other {esos servidores}}? La privacidad del toot funcionará solamente en instancias de Mastodon. Si {domains} {domainsCount, plural, one {no es una instancia de Mastodon} other {no son instancias de Mastodon}}, no habrá indicación de que tu toot es privado, y puede hacerse visible a remitentes inesperados.",
"compose_form.publish": "Tootear",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Marcar contenido como sensible",
@@ -67,13 +66,17 @@
"embed.instructions": "Añade este toot a tu sitio web con el siguiente código.",
"embed.preview": "Así es como se verá:",
"emoji_button.activity": "Actividad",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Marcas",
"emoji_button.food": "Comida y bebida",
"emoji_button.label": "Insertar emoji",
"emoji_button.nature": "Naturaleza",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objetos",
"emoji_button.people": "Gente",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Buscar…",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viajes y lugares",
"empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index 23f4a41d61..6e4771392e 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "حساب شما {locked} نیست. هر کسی میتواند پیگیر شما شود و نوشتههای ویژهٔ پیگیران شما را ببیند.",
"compose_form.lock_disclaimer.lock": "قفل",
"compose_form.placeholder": "تازه چه خبر؟",
- "compose_form.privacy_disclaimer": "نوشتهٔ خصوصی شما به کاربران نامبردهشده در {domains} فرستاده میشود. آیا به {domainsCount, plural, one {آن سرور} other {آن سرورها}} اعتماد دارید؟ تنظیمات حریم خصوصی نوشتهها تنها در سرورهای ماستدون کار میکند. اگر {domains} {domainsCount, plural, one {یک سرور ماستدون نباشد} other {سرورهای ماستدون نباشند}}، اشارهای به خصوصیبودن نوشتهٔ شما نخواهد شد و شاید نوشتهٔ شما همرسان شود یا برای کاربرانی که نمیخواهید نمایش یابد.",
"compose_form.publish": "بوق",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "تصاویر حساس هستند",
@@ -67,13 +66,17 @@
"embed.instructions": "برای جاگذاری این نوشته در سایت خودتان، کد زیر را کپی کنید.",
"embed.preview": "نوشتهٔ جاگذاریشده این گونه به نظر خواهد رسید:",
"emoji_button.activity": "فعالیت",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "پرچمها",
"emoji_button.food": "غذا و نوشیدنی",
"emoji_button.label": "افزودن شکلک",
"emoji_button.nature": "طبیعت",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "اشیا",
"emoji_button.people": "مردم",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "جستجو...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "نمادها",
"emoji_button.travel": "سفر و مکان",
"empty_column.community": "فهرست نوشتههای محلی خالی است. چیزی بنویسید تا چرخش بچرخد!",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index fc409a9326..ccdf19dd65 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "Mitä sinulla on mielessä?",
- "compose_form.privacy_disclaimer": "Sinun yksityinen status toimitetaan mainitsemallesi käyttäjille domaineissa {domains}. Luotatko {domainsCount, plural, one {tähän palvelimeen} other {näihin palvelimiin}}? Postauksen yksityisyys toimii van Mastodon palvelimilla. Jos {domains} {domainsCount, plural, one {ei ole Mastodon palvelin} other {eivät ole Mastodon palvelin}}, viestiin ei tule Yksityinen-merkintää, ja sitä voidaan boostata tai muuten tehdä näkyväksi muille vastaanottajille.",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Merkitse media herkäksi",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 5a436891b3..417c1062a1 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos pouets privés.",
"compose_form.lock_disclaimer.lock": "verrouillé",
"compose_form.placeholder": "Qu’avez-vous en tête ?",
- "compose_form.privacy_disclaimer": "Votre statut privé va être transmis aux personnes mentionnées sur {domains}. Avez-vous confiance en {domainsCount, plural, one {ce serveur} other {ces serveurs}} pour ne pas divulguer votre statut ? Les statuts privés ne fonctionnent que sur les instances de Mastodon. Si {domains} {domainsCount, plural, one {n’est pas une instance de Mastodon} other {ne sont pas des instances de Mastodon}}, il n’y aura aucune indication que votre statut est privé, et il pourrait être partagé ou rendu visible d’une autre manière à d’autres personnes imprévues.",
"compose_form.publish": "Pouet ",
"compose_form.publish_loud": "{publish} !",
"compose_form.sensitive": "Marquer le média comme sensible",
@@ -67,13 +66,17 @@
"embed.instructions": "Intégrez ce statut à votre site en copiant ce code ci-dessous.",
"embed.preview": "Il apparaîtra comme cela : ",
"emoji_button.activity": "Activités",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Drapeaux",
"emoji_button.food": "Boire et manger",
"emoji_button.label": "Insérer un emoji",
"emoji_button.nature": "Nature",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objets",
"emoji_button.people": "Personnages",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Recherche…",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symboles",
"emoji_button.travel": "Lieux et voyages",
"empty_column.community": "Le fil public local est vide. Écrivez-donc quelque chose pour le remplir !",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 06b401d391..f78c31a464 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "חשבונך אינו {locked}. כל אחד יוכל לעקוב אחריך כדי לקרוא את הודעותיך המיועדות לעוקבים בלבד.",
"compose_form.lock_disclaimer.lock": "נעול",
"compose_form.placeholder": "מה עובר לך בראש?",
- "compose_form.privacy_disclaimer": "הודעתך הפרטית תשלח למשתמשים על {domains}. האם ניתן לסמוך על {domainsCount, plural, one {שרת זה} other {שרתים אלו}}? פרטיות ההודעה קיימת רק על שרתי מסטודון. אם {domains} {domainsCount, plural, one {הוא לא שרת מסטודון} other {הם לא שרתי מסטודון}}, לא יהיה שום סימן שההודעה פרטית, והוא עשוי להיות מקודם או להחשף למשתמשים שלא ברשימת היעד.",
"compose_form.publish": "ללחוש",
"compose_form.publish_loud": "לחצרץ!",
"compose_form.sensitive": "סימון תוכן כרגיש",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "פעילות",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "דגלים",
"emoji_button.food": "אוכל ושתיה",
"emoji_button.label": "הוספת אמוג'י",
"emoji_button.nature": "טבע",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "חפצים",
"emoji_button.people": "אנשים",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "חיפוש...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "סמלים",
"emoji_button.travel": "טיולים ואתרים",
"empty_column.community": "טור הסביבה ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index cb28ce9c13..43fe95eb8e 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Tvoj račun nije {locked}. Svatko te može slijediti kako bi vidio postove namijenjene samo tvojim sljedbenicima.",
"compose_form.lock_disclaimer.lock": "zaključan",
"compose_form.placeholder": "Što ti je na umu?",
- "compose_form.privacy_disclaimer": "Tvoj privatni status će biti dostavljen spomenutim korisnicima na {domains}. Vjeruješ li {domainsCount, plural, one {that server} drugim {those servers}}? Privatnost postova radi samo na Mastodon instancama. Ako {domains} {domainsCount, plural, one {is not a Mastodon instance} other {are not Mastodon instances}}, neće biti indikacije da je tvoj post privatan, i mogao bi biti podignut ili biti učinjen vidljivim na drugi način neželjenim primateljima.",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Označi media sadržaj kao osjetljiv",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Aktivnost",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Zastave",
"emoji_button.food": "Hrana & Piće",
"emoji_button.label": "Umetni smajlije",
"emoji_button.nature": "Priroda",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objekti",
"emoji_button.people": "Ljudi",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Traži...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Simboli",
"emoji_button.travel": "Putovanja & Mjesta",
"empty_column.community": "Lokalni timeline je prazan. Napiši nešto javno kako bi pokrenuo stvari!",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index a13e4fee28..f73295dca2 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "Mire gondolsz?",
- "compose_form.privacy_disclaimer": "Your private status will be delivered to mentioned users on {domains}. Do you trust {domainsCount, plural, one {that server} other {those servers}}? Post privacy only works on Mastodon instances. If {domains} {domainsCount, plural, one {is not a Mastodon instance} other {are not Mastodon instances}}, there will be no indication that your post is private, and it may be boosted or otherwise made visible to unintended recipients.",
"compose_form.publish": "Tülk!",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Tartalom érzékenynek jelölése",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index 349423cce3..4d5f0a5d8d 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Akun anda tidak {locked}. Semua orang dapat mengikuti anda untuk melihat postingan khusus untuk pengikut anda.",
"compose_form.lock_disclaimer.lock": "dikunci",
"compose_form.placeholder": "Apa yang ada di pikiran anda?",
- "compose_form.privacy_disclaimer": "Status pribadi anda akan dikirim ke pengguna yang disebut dalam {domains}. Apa anda mempercayai {domainsCount, plural, one {server tersebut} other {server tersebut}}? Privasi postingan hanya bekerja dalam server Mastodon. Jika {domains} {domainsCount, plural, one {bukan server Mastodon} other {bukan server Mastodon}}, akan ada indikasi bahwa postingan anda adalah postingan pribadi, dan dapat di-boost atau dapat dilihat oleh orang lain.",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Tandai media sensitif",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Aktivitas",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Bendera",
"emoji_button.food": "Makanan & Minuman",
"emoji_button.label": "Tambahkan emoji",
"emoji_button.nature": "Alam",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Benda-benda",
"emoji_button.people": "Orang",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Cari...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Simbol",
"emoji_button.travel": "Tempat Wisata",
"empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 5f19509e27..d2c1ee73d6 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "Quo esas en tua spirito?",
- "compose_form.privacy_disclaimer": "Tua privata mesajo livresos a mencionata uzeri en {domains}. Ka tu fidas {domainsCount, plural, one {ta servero} other {ta serveri}}? Privateso di mesaji funcionas nur en instaluri di Mastodon. Se {domains} {domainsCount, plural, one {ne esas instaluro di Mastodon} other {ne esas instaluri di Mastodon}}, esos nula indiko, ke tua mesajo esas privata, ed ol povos repetesar od altre divenar videbla da nedezirinda recevanti.",
"compose_form.publish": "Siflar",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Markizar kontenajo kom trubliva",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Insertar emoji",
"emoji_button.nature": "Nature",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.community": "La lokala tempolineo esas vakua. Skribez ulo publike por iniciar la agiveso!",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index cedbb947c1..33f0e7fdce 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "A cosa stai pensando?",
- "compose_form.privacy_disclaimer": "Il tuo status privato verrà condiviso con gli utenti menzionati su {domains}. Ti fidi di {domainsCount, plural, one {quel server} other {quei server}}? Le impostazioni sulla privacy valgono solo su server Mastodon. Se {domains} {domainsCount, plural, one {non è un server Mastodon} other {non sono server Mastodon}}, non ci saranno indicazioni sulla privacy del tuo status, e potrebbe essere condiviso o reso visibile a destinatari indesiderati.",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Segnala file come sensibile",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Inserisci emoji",
"emoji_button.nature": "Nature",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.community": "La timeline locale è vuota. Condividi qualcosa pubblicamente per dare inizio alla festa!",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index e78ac4c26b..c3d96baf37 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "あなたのアカウントは{locked}になっていません。誰でもあなたをフォローすることができ、フォロワー限定の投稿を見ることができます。",
"compose_form.lock_disclaimer.lock": "非公開",
"compose_form.placeholder": "今なにしてる?",
- "compose_form.privacy_disclaimer": "あなたの非公開トゥートは返信先ユーザーが所属する{domains}に送信されます。{domainsCount, plural, one {このサーバー} other {これらのサーバー}}は信頼できますか? 投稿のプライバシー保護はMastodonサーバー内でのみ有効です。{domains}がMastodonインスタンスでない場合、あなたの投稿がプライベートなものとして扱われず、ブーストされたり予期しないユーザーに見られる可能性があります。",
"compose_form.publish": "トゥート",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "メディアを閲覧注意としてマークする",
@@ -67,13 +66,17 @@
"embed.instructions": "下記のコードをコピーしてウェブサイトに埋め込みます。",
"embed.preview": "表示例:",
"emoji_button.activity": "活動",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "国旗",
"emoji_button.food": "食べ物",
"emoji_button.label": "絵文字を追加",
"emoji_button.nature": "自然",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "物",
"emoji_button.people": "人々",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "検索...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "記号",
"emoji_button.travel": "旅行と場所",
"empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 46ed772cfb..c50bb2f340 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "이 계정은 {locked}로 설정 되어 있지 않습니다. 누구나 이 계정을 팔로우 할 수 있으며, 팔로워 공개의 포스팅을 볼 수 있습니다.",
"compose_form.lock_disclaimer.lock": "비공개",
"compose_form.placeholder": "지금 무엇을 하고 있나요?",
- "compose_form.privacy_disclaimer": "이 계정의 비공개 포스트는 멘션된 사용자가 소속된 {domains}으로 전송됩니다. {domainsCount, plural, one {이 서버를} other {이 서버들을}} 신뢰할 수 있습니까? 포스팅의 프라이버시 보호는 Mastodon 서버에서만 유효합니다. {domains}가 Mastodon 인스턴스가 아닐 경우, 이 투고가 사적인 것으로 취급되지 않은 채 부스트 되거나 원하지 않는 사용자에게 보여질 가능성이 있습니다.",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "이 미디어를 민감한 미디어로 취급",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "활동",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "국기",
"emoji_button.food": "음식",
"emoji_button.label": "emoji를 추가",
"emoji_button.nature": "자연",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "물건",
"emoji_button.people": "사람들",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "검색...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "기호",
"emoji_button.travel": "여행과 장소",
"empty_column.community": "로컬 타임라인에 아무 것도 없습니다. 아무거나 적어 보세요!",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index b696bccfdd..c333bec706 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -33,9 +33,8 @@
"column.home": "Start",
"column.mutes": "Genegeerde gebruikers",
"column.notifications": "Meldingen",
- "column.pins": "Pinned toot",
- "column.public": "Globale tijdlijn",
"column.pins": "Vastgezette toots",
+ "column.public": "Globale tijdlijn",
"column_back_button.label": "terug",
"column_header.hide_settings": "Instellingen verbergen",
"column_header.moveLeft_settings": "Kolom naar links verplaatsen",
@@ -48,7 +47,6 @@
"compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en toots zien die je alleen aan volgers hebt gericht.",
"compose_form.lock_disclaimer.lock": "besloten",
"compose_form.placeholder": "Wat wil je kwijt?",
- "compose_form.privacy_disclaimer": "Jouw privétoot wordt afgeleverd aan de vermelde gebruikers op {domains}. Vertrouw jij {domainsCount, plural, one {die server} other {die servers}}? Het privé plaatsen van toots werkt alleen op Mastodon-servers. Wanneer {domains} {domainsCount, plural, one {geen Mastodon-server is} other {geen Mastodon-servers zijn}}, dan wordt er niet aangegeven dat de toot privé is, waardoor het kan worden geboost of op een andere manier zichtbaar wordt gemaakt voor mensen waarvoor het niet was bedoeld.",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Media als gevoelig markeren (nsfw)",
@@ -68,13 +66,17 @@
"embed.instructions": "Embed deze toot op jouw website, door de onderstaande code te kopiëren.",
"embed.preview": "Zo komt het eruit te zien:",
"emoji_button.activity": "Activiteiten",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Vlaggen",
"emoji_button.food": "Eten en drinken",
"emoji_button.label": "Emoji toevoegen",
"emoji_button.nature": "Natuur",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Voorwerpen",
"emoji_button.people": "Mensen",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Zoeken...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbolen",
"emoji_button.travel": "Reizen en plekken",
"empty_column.community": "De lokale tijdlijn is nog leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!",
@@ -87,7 +89,6 @@
"follow_request.authorize": "Goedkeuren",
"follow_request.reject": "Afkeuren",
"getting_started.appsshort": "Apps",
- "getting_started.donate": "Doneren",
"getting_started.faq": "FAQ",
"getting_started.heading": "Beginnen",
"getting_started.open_source_notice": "Mastodon is open-sourcesoftware. Je kunt bijdragen of problemen melden op GitHub via {github}.",
@@ -112,10 +113,9 @@
"navigation_bar.info": "Uitgebreide informatie",
"navigation_bar.logout": "Afmelden",
"navigation_bar.mutes": "Genegeerde gebruikers",
- "navigation_bar.pins": "Pinned toots",
+ "navigation_bar.pins": "Vastgezette toots",
"navigation_bar.preferences": "Instellingen",
"navigation_bar.public_timeline": "Globale tijdlijn",
- "navigation_bar.pins": "Vastgezette toots",
"notification.favourite": "{name} markeerde jouw toot als favoriet",
"notification.follow": "{name} volgt jou nu",
"notification.mention": "{name} vermeldde jou",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 742017c662..d28190faf7 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Din konto er ikke {locked}. Hvem som helst kan følge deg og se dine private poster.",
"compose_form.lock_disclaimer.lock": "låst",
"compose_form.placeholder": "Hva har du på hjertet?",
- "compose_form.privacy_disclaimer": "Din private status vil leveres til nevnte brukere på {domains}. Stoler du på {domainsCount, plural, one {den serveren} other {de serverne}}? Synlighet fungerer kun på Mastodon-instanser. Hvis {domains} {domainsCount, plural, one {ikke er en Mastodon-instans} other {ikke er Mastodon-instanser}}, vil det ikke indikeres at posten din er privat, og den kan kanskje bli fremhevd eller på annen måte bli synlig for uventede mottakere.",
"compose_form.publish": "Tut",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Merk media som følsomt",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Aktivitet",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flagg",
"emoji_button.food": "Mat og drikke",
"emoji_button.label": "Sett inn emoji",
"emoji_button.nature": "Natur",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objekter",
"emoji_button.people": "Mennesker",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Søk...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symboler",
"emoji_button.travel": "Reise & steder",
"empty_column.community": "Den lokale tidslinjen er tom. Skriv noe offentlig for å få snøballen til å rulle!",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index 512e4120d8..8e9d06642a 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo mond pòt vos sègre e veire los estatuts reservats als seguidors.",
"compose_form.lock_disclaimer.lock": "clavat",
"compose_form.placeholder": "A de qué pensatz ?",
- "compose_form.privacy_disclaimer": "Vòstre estatut privat serà enviat a las personas mencionadas sus {domains}. Vos fisatz d’aqueste {domainsCount, plural, one { servidor} other {s servidors}} per divulgar pas vòstre estatut ? Los estatuts privats foncionan pas que sus las instàncias de Mastodon. Se {domains} {domainsCount, plural, one {es pas una instància a Mastodon} other {son pas d'instàncias a Mastodon}}, i aurà pas d’indicacion disent que vòstre estatut es privat e poirà èsser partejat o èsser visible a de mond pas prevists",
"compose_form.publish": "Tut",
"compose_form.publish_loud": "{publish} !",
"compose_form.sensitive": "Marcar lo mèdia coma sensible",
@@ -67,13 +66,17 @@
"embed.instructions": "Embarcar aqueste estatut per lo far veire sus un site Internet en copiar lo còdi çai-jos.",
"embed.preview": "Semblarà aquò : ",
"emoji_button.activity": "Activitats",
+ "emoji_button.custom": "Personalizats",
"emoji_button.flags": "Drapèus",
"emoji_button.food": "Beure e manjar",
"emoji_button.label": "Inserir un emoji",
"emoji_button.nature": "Natura",
+ "emoji_button.not_found": "Cap emoji ! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objèctes",
"emoji_button.people": "Gents",
+ "emoji_button.recent": "Sovent utilizats",
"emoji_button.search": "Cercar…",
+ "emoji_button.search_results": "Resultat de recèrca",
"emoji_button.symbols": "Simbòls",
"emoji_button.travel": "Viatges & lòcs",
"empty_column.community": "Lo flux public local es void. Escrivètz quicòm per lo garnir !",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index 1d24436907..35b1a31010 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Twoje konto nie jest {locked}. Każdy, kto Cię śledzi, może wyświetlać Twoje wpisy przeznaczone tylko dla śledzących.",
"compose_form.lock_disclaimer.lock": "zablokowane",
"compose_form.placeholder": "Co Ci chodzi po głowie?",
- "compose_form.privacy_disclaimer": "Twój wpis zostanie dostarczony do użytkowników z {domains}. Czy ufasz {domainsCount, plural, one {temu serwerowi} other {tym serwerom}}? Prywatność wpisów obowiązuje tylko na instancjach Mastodona. Jeżeli {domains} {domainsCount, plural, one {nie jest instancją Mastodona} other {nie są instancjami Mastodona}}, wpis może być widoczny dla niewłaściwych osób.",
"compose_form.publish": "Wyślij",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Oznacz treści jako wrażliwe",
@@ -67,13 +66,17 @@
"embed.instructions": "Osadź ten status na swojej stronie wklejając poniższy kod.",
"embed.preview": "Tak będzie to wyglądać:",
"emoji_button.activity": "Aktywność",
+ "emoji_button.custom": "Niestandardowe",
"emoji_button.flags": "Flagi",
"emoji_button.food": "Żywność i napoje",
"emoji_button.label": "Wstaw emoji",
"emoji_button.nature": "Natura",
+ "emoji_button.not_found": "Brak emoji!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objekty",
"emoji_button.people": "Ludzie",
+ "emoji_button.recent": "Najczęściej używane",
"emoji_button.search": "Szukaj…",
+ "emoji_button.search_results": "Wyniki wyszukiwania",
"emoji_button.symbols": "Symbole",
"emoji_button.travel": "Podróże i miejsca",
"empty_column.community": "Lokalna oś czasu jest pusta. Napisz coś publicznie, aby zagaić!",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index a5def0ad0b..187343e83f 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -35,7 +35,6 @@
"column.notifications": "Notificações",
"column.pins": "Postagens fixadas",
"column.public": "Global",
- "column.pins": "Postagens fixadas",
"column_back_button.label": "Voltar",
"column_header.hide_settings": "Esconder configurações",
"column_header.moveLeft_settings": "Mover coluna para a esquerda",
@@ -48,7 +47,6 @@
"compose_form.lock_disclaimer": "A sua conta não está {locked}. Qualquer pessoa pode te seguir e visualizar postagens direcionadas a apenas seguidores.",
"compose_form.lock_disclaimer.lock": "trancado",
"compose_form.placeholder": "No que você está pensando?",
- "compose_form.privacy_disclaimer": "O seu conteúdo privado será compartilhado com os usuários de {domains}. Você confia {domainsCount, plural, one {neste servidor} other {nestes servidores}}? As configurações de privacidade só funcionam em instâncias do Mastodon. Se {domains} {domainsCount, plural, one {não é uma instância} other {não são instâncias}}, não há como garantir a privacidade de suas postagens, e elas podem ser compartilhadas com destinatários indesejados.",
"compose_form.publish": "Publicar",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Marcar mídia como conteúdo sensível",
@@ -68,13 +66,17 @@
"embed.instructions": "Incorpore esta postagem em seu site copiando o código abaixo:",
"embed.preview": "Aqui está uma previsão de como ficará:",
"emoji_button.activity": "Atividades",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Bandeiras",
"emoji_button.food": "Comidas & Bebidas",
"emoji_button.label": "Inserir Emoji",
"emoji_button.nature": "Natureza",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objetos",
"emoji_button.people": "Pessoas",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Buscar...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viagens & Lugares",
"empty_column.community": "A timeline local está vazia. Escreva algo publicamente para começar!",
@@ -114,9 +116,6 @@
"navigation_bar.pins": "Postagens fixadas",
"navigation_bar.preferences": "Preferências",
"navigation_bar.public_timeline": "Global",
- "navigation_bar.preferences": "Preferências",
- "navigation_bar.public_timeline": "Global",
- "navigation_bar.pins": "Postagens fixadas",
"notification.favourite": "{name} adicionou a sua postagem aos favoritos",
"notification.follow": "{name} te seguiu",
"notification.mention": "{name} te mencionou",
diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json
index cff528f831..782aaf1143 100644
--- a/app/javascript/mastodon/locales/pt.json
+++ b/app/javascript/mastodon/locales/pt.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "Em que estás a pensar?",
- "compose_form.privacy_disclaimer": "O teu conteúdo privado vai ser partilhado com os utilizadores do {domains}. Confias {domainsCount, plural, one {neste servidor} other {nestes servidores}}? A privacidade só funciona em instâncias do Mastodon. Se {domains} {domainsCount, plural, one {não é uma instância} other {não são instâncias}}, não existem indicadores da privacidade da tua partilha, e podem ser partilhados com outros.",
"compose_form.publish": "Publicar",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Marcar media como conteúdo sensível",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Inserir Emoji",
"emoji_button.nature": "Nature",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.community": "Ainda não existem conteúdo local para mostrar!",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index fcc147c87c..6f39d098c2 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Ваш аккаунт не {locked}. Любой человек может подписаться на Вас и просматривать посты для подписчиков.",
"compose_form.lock_disclaimer.lock": "закрыт",
"compose_form.placeholder": "О чем Вы думаете?",
- "compose_form.privacy_disclaimer": "Ваш приватный статус будет доставлен упомянутым пользователям на доменах {domains}. Доверяете ли вы {domainsCount, plural, one {этому серверу} other {этим серверам}}? Приватность постов работает только на узлах Mastodon. Если {domains} {domainsCount, plural, one {не является узлом Mastodon} other {не являются узлами Mastodon}}, приватность поста не будет указана, и он может оказаться продвинут или иным образом показан не обозначенным Вами пользователям.",
"compose_form.publish": "Трубить",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Отметить как чувствительный контент",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Занятия",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Флаги",
"emoji_button.food": "Еда и напитки",
"emoji_button.label": "Вставить эмодзи",
"emoji_button.nature": "Природа",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Предметы",
"emoji_button.people": "Люди",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Найти...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Символы",
"emoji_button.travel": "Путешествия",
"empty_column.community": "Локальная лента пуста. Напишите что-нибудь, чтобы разогреть народ!",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index f2752f5e0e..ecc7a00db7 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "What is on your mind?",
- "compose_form.privacy_disclaimer": "Your post will be delivered to mentioned users on {domains}. Do you trust {domainsCount, plural, one {that server} other {those servers}}? Post privacy only works on Mastodon instances. If {domains} {domainsCount, plural, one {is not a Mastodon instance} other {are not Mastodon instances}}, there will be no indication that your post is not a public post, and it may be boosted or otherwise made visible to unintended recipients.",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Mark media as sensitive",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 2676b851cd..b7ecd2cdb4 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Hesabınız {locked} değil. Sadece takipçilerle paylaştığınız gönderileri görebilmek için sizi herhangi bir kullanıcı takip edebilir.",
"compose_form.lock_disclaimer.lock": "kilitli",
"compose_form.placeholder": "Ne düşünüyorsun?",
- "compose_form.privacy_disclaimer": "Gönderiniz {domains}’teki bahsettiğiniz kullanıcılara iletilecektir.{domainsCount, plural, one {bu sunucuya} other {bu sunuculara}} güveniyor musunuz? Gönderi gizliliği sadece Mastodon sunucularında çalışır. Eğer {domains} {domainsCount, plural, one {bir Mastodon sunucusu değilse} other {Mastodon sunucuları değilse}}, gönderinizin herkese açık bir gönderi olmadığına ilişkin bir gösterge bulunmayacaktır. Bu yüzden gönderiniz boost edilebilir veya istenmeyen alıcılara görünebilir.",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Görseli hassas olarak işaretle",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Aktivite",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Bayraklar",
"emoji_button.food": "Yiyecek ve İçecek",
"emoji_button.label": "Emoji ekle",
"emoji_button.nature": "Doğa",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Nesneler",
"emoji_button.people": "İnsanlar",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Emoji ara...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Semboller",
"emoji_button.travel": "Seyahat ve Yerler",
"empty_column.community": "Yerel zaman tüneliniz boş. Daha fazla eğlence için herkese açık bir gönderi paylaşın.",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 6b5ab64efc..45b2c2ee01 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -47,7 +47,6 @@
"compose_form.lock_disclaimer": "Ваш акаунт не {locked}. Кожен може підписатися на Вас та бачити Ваші приватні пости.",
"compose_form.lock_disclaimer.lock": "приватний",
"compose_form.placeholder": "Що у Вас на думці?",
- "compose_form.privacy_disclaimer": "Ваш приватний допис буде доставлено до згаданих користувачів на доменах {domains}. Ви довіряєте {domainsCount, plural, one {цьому серверу} other {цим серверам}}? Приватність постів працює тільки на інстанціях Mastodon. Якщо {domains} {domainsCount, plural, one {не є інстанцією Mastodon} other {не є інстанціями Mastodon}}, приватність поста не буде активована, та він може бути передмухнутий або іншим чином показаний не позначеним Вами користувачам.",
"compose_form.publish": "Дмухнути",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Відмітити як непристойний зміст",
@@ -67,13 +66,17 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Заняття",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "Прапори",
"emoji_button.food": "Їжа та напої",
"emoji_button.label": "Вставити емодзі",
"emoji_button.nature": "Природа",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Предмети",
"emoji_button.people": "Люди",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "Знайти...",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "Символи",
"emoji_button.travel": "Подорожі",
"empty_column.community": "Локальна стрічка пуста. Напишіть щось, щоб розігріти народ!",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 6037e7581a..58e3d67803 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -33,21 +33,20 @@
"column.home": "主页",
"column.mutes": "被静音的用户",
"column.notifications": "通知",
- "column.pins": "Pinned toot",
+ "column.pins": "置顶嘟文",
"column.public": "跨站公共时间轴",
"column_back_button.label": "返回",
"column_header.hide_settings": "隐藏设置",
"column_header.moveLeft_settings": "将栏左移",
"column_header.moveRight_settings": "将栏右移",
- "column_header.pin": "置顶",
+ "column_header.pin": "固定",
"column_header.show_settings": "显示设置",
- "column_header.unpin": "撤顶",
+ "column_header.unpin": "取下",
"column_subheading.navigation": "导航",
"column_subheading.settings": "设置",
"compose_form.lock_disclaimer": "你的帐户没 {locked}. 任何人可以通过关注你来查看只有关注者可见的嘟文.",
"compose_form.lock_disclaimer.lock": "被保护",
"compose_form.placeholder": "在想啥?",
- "compose_form.privacy_disclaimer": "你的私人嘟文,将被发送至你所提及的 {domains} 用户。你是否信任{domainsCount, plural, one {这个网站} other {这些网站}}?请留意,嘟文隐私设置只适用于各 Mastodon 服务器实例,如果 {domains} {domainsCount, plural, one {不是 Mastodon 服务器实例} other {之中有些不是 Mastodon 服务器实例}},对方将无法收到这篇嘟文的隐私设置,然后可能被转嘟给不能预知的用户阅读。",
"compose_form.publish": "嘟嘟",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "将媒体文件标示为“敏感内容”",
@@ -67,13 +66,17 @@
"embed.instructions": "要内嵌此嘟文,请将以下代码贴进你的网站。",
"embed.preview": "到时大概长这样:",
"emoji_button.activity": "活动",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "旗帜",
"emoji_button.food": "食物和饮料",
"emoji_button.label": "加入表情符号",
"emoji_button.nature": "自然",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "物体",
"emoji_button.people": "人物",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "搜索…",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "符号",
"emoji_button.travel": "旅途和地点",
"empty_column.community": "本站时间轴暂时未有内容,快嘟几个来抢头香啊!",
@@ -196,9 +199,9 @@
"upload_form.undo": "还原",
"upload_progress.label": "上传中……",
"video.close": "关闭影片",
- "video.exit_fullscreen": "退出全荧幕",
+ "video.exit_fullscreen": "退出全屏",
"video.expand": "展开影片",
- "video.fullscreen": "全荧幕",
+ "video.fullscreen": "全屏",
"video.hide": "隐藏影片",
"video.mute": "静音",
"video.pause": "暂停",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 66d32fb7e9..610aa6dafa 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -33,21 +33,20 @@
"column.home": "主頁",
"column.mutes": "靜音名單",
"column.notifications": "通知",
- "column.pins": "Pinned toot",
+ "column.pins": "置頂文章",
"column.public": "跨站時間軸",
"column_back_button.label": "返回",
"column_header.hide_settings": "隱藏設定",
"column_header.moveLeft_settings": "將欄左移",
"column_header.moveRight_settings": "將欄右移",
- "column_header.pin": "置頂",
+ "column_header.pin": "固定",
"column_header.show_settings": "顯示設定",
- "column_header.unpin": "撤頂",
+ "column_header.unpin": "取下",
"column_subheading.navigation": "瀏覽",
"column_subheading.settings": "設定",
"compose_form.lock_disclaimer": "你的用戶狀態為「{locked}」,任何人都能立即關注你,然後看到「只有關注者能看」的文章。",
"compose_form.lock_disclaimer.lock": "公共",
"compose_form.placeholder": "你在想甚麼?",
- "compose_form.privacy_disclaimer": "你的私人文章,將被遞送至 {domains}。你是否信任{domainsCount, plural, one {這個網站} other {這些網站}}?請留意,文章私隱設定只適用於 Mastodon 服務站,如果 {domains} {domainsCount, plural, one {不是 Mastodon 服務站} other {之中有些不是 Mastodon 服務站}},對方將可無視文章的私隱設定,轉推文章給其他用戶閱讀。",
"compose_form.publish": "發文",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "將媒體檔案標示為「敏感內容」",
@@ -67,13 +66,17 @@
"embed.instructions": "要內嵌此文章,請將以下代碼貼進你的網站。",
"embed.preview": "看上去會是這樣:",
"emoji_button.activity": "活動",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "旗幟",
"emoji_button.food": "飲飲食食",
"emoji_button.label": "加入表情符號",
"emoji_button.nature": "自然",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "物品",
"emoji_button.people": "人物",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "搜尋…",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "符號",
"emoji_button.travel": "旅遊景物",
"empty_column.community": "本站時間軸暫時未有內容,快文章來搶頭香啊!",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index b3cc6add75..ad2f1a05ab 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -39,15 +39,14 @@
"column_header.hide_settings": "隱藏設定",
"column_header.moveLeft_settings": "將欄左移",
"column_header.moveRight_settings": "將欄右移",
- "column_header.pin": "置頂",
+ "column_header.pin": "固定",
"column_header.show_settings": "顯示設定",
- "column_header.unpin": "撤頂",
+ "column_header.unpin": "取下",
"column_subheading.navigation": "瀏覽",
"column_subheading.settings": "設定",
"compose_form.lock_disclaimer": "你的帳號沒有{locked}。任何人都可以關注你,看到發給關注者的貼文。",
"compose_form.lock_disclaimer.lock": "上鎖",
"compose_form.placeholder": "在想些什麼?",
- "compose_form.privacy_disclaimer": "你的貼文會被傳到 {domains} 上被提到的使用者。你信任 {domainsCount, plural, one {這個伺服器} other {這些伺服器}}嗎?貼文的隱私設定只會在 Mastodon 副本上生效。如果 {domains} {domainsCount, plural, one {不是一個 Mastodon 副本} other {都不是 Mastodon 副本}},就不會被標記為非公開貼文,而且可能會被轉推或是讓不預期的人看見。",
"compose_form.publish": "貼掉",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "將此媒體標為敏感",
@@ -67,13 +66,17 @@
"embed.instructions": "要內嵌此貼文,請將以下代碼貼進你的網站。",
"embed.preview": "看上去會變成這樣:",
"emoji_button.activity": "活動",
+ "emoji_button.custom": "Custom",
"emoji_button.flags": "旗幟",
"emoji_button.food": "食物與飲料",
"emoji_button.label": "插入表情符號",
"emoji_button.nature": "自然",
+ "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "物件",
"emoji_button.people": "人",
+ "emoji_button.recent": "Frequently used",
"emoji_button.search": "搜尋…",
+ "emoji_button.search_results": "Search results",
"emoji_button.symbols": "符號",
"emoji_button.travel": "旅遊與地點",
"empty_column.community": "本地時間軸是空的。公開寫點什麼吧!",
diff --git a/app/javascript/mastodon/reducers/accounts.js b/app/javascript/mastodon/reducers/accounts.js
index 6442d13bef..5391a93ae0 100644
--- a/app/javascript/mastodon/reducers/accounts.js
+++ b/app/javascript/mastodon/reducers/accounts.js
@@ -110,7 +110,7 @@ export default function accounts(state = initialState, action) {
case BLOCKS_EXPAND_SUCCESS:
case MUTES_FETCH_SUCCESS:
case MUTES_EXPAND_SUCCESS:
- return normalizeAccounts(state, action.accounts);
+ return action.accounts ? normalizeAccounts(state, action.accounts) : state;
case NOTIFICATIONS_REFRESH_SUCCESS:
case NOTIFICATIONS_EXPAND_SUCCESS:
case SEARCH_FETCH_SUCCESS:
diff --git a/app/javascript/mastodon/reducers/accounts_counters.js b/app/javascript/mastodon/reducers/accounts_counters.js
index 4423e1b50e..1ed0fe3e39 100644
--- a/app/javascript/mastodon/reducers/accounts_counters.js
+++ b/app/javascript/mastodon/reducers/accounts_counters.js
@@ -106,7 +106,7 @@ export default function accountsCounters(state = initialState, action) {
case BLOCKS_EXPAND_SUCCESS:
case MUTES_FETCH_SUCCESS:
case MUTES_EXPAND_SUCCESS:
- return normalizeAccounts(state, action.accounts);
+ return action.accounts ? normalizeAccounts(state, action.accounts) : state;
case NOTIFICATIONS_REFRESH_SUCCESS:
case NOTIFICATIONS_EXPAND_SUCCESS:
case SEARCH_FETCH_SUCCESS:
diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js
index e7a3567b49..5756a393f4 100644
--- a/app/javascript/mastodon/reducers/compose.js
+++ b/app/javascript/mastodon/reducers/compose.js
@@ -128,7 +128,7 @@ const insertSuggestion = (state, position, token, completion) => {
};
const insertEmoji = (state, position, emojiData) => {
- const emoji = emojiData.unicode.split('-').map(code => String.fromCodePoint(parseInt(code, 16))).join('');
+ const emoji = emojiData.native;
return state.withMutations(map => {
map.update('text', oldText => `${oldText.slice(0, position)}${emoji} ${oldText.slice(position)}`);
@@ -262,7 +262,7 @@ export default function compose(state = initialState, action) {
case COMPOSE_SUGGESTIONS_CLEAR:
return state.update('suggestions', ImmutableList(), list => list.clear()).set('suggestion_token', null);
case COMPOSE_SUGGESTIONS_READY:
- return state.set('suggestions', ImmutableList(action.accounts.map(item => item.id))).set('suggestion_token', action.token);
+ return state.set('suggestions', ImmutableList(action.accounts ? action.accounts.map(item => item.id) : action.emojis)).set('suggestion_token', action.token);
case COMPOSE_SUGGESTION_SELECT:
return insertSuggestion(state, action.position, action.token, action.completion);
case TIMELINE_DELETE:
diff --git a/app/javascript/mastodon/reducers/custom_emojis.js b/app/javascript/mastodon/reducers/custom_emojis.js
new file mode 100644
index 0000000000..d80c0d156a
--- /dev/null
+++ b/app/javascript/mastodon/reducers/custom_emojis.js
@@ -0,0 +1,16 @@
+import { List as ImmutableList } from 'immutable';
+import { STORE_HYDRATE } from '../actions/store';
+import { emojiIndex } from 'emoji-mart';
+import { buildCustomEmojis } from '../emoji';
+
+const initialState = ImmutableList();
+
+export default function custom_emojis(state = initialState, action) {
+ switch(action.type) {
+ case STORE_HYDRATE:
+ emojiIndex.search('', { custom: buildCustomEmojis(action.state.get('custom_emojis', [])) });
+ return action.state.get('custom_emojis');
+ default:
+ return state;
+ }
+};
diff --git a/app/javascript/mastodon/reducers/index.js b/app/javascript/mastodon/reducers/index.js
index 444a208458..593d0efa4a 100644
--- a/app/javascript/mastodon/reducers/index.js
+++ b/app/javascript/mastodon/reducers/index.js
@@ -22,6 +22,7 @@ import search from './search';
import media_attachments from './media_attachments';
import notifications from './notifications';
import height_cache from './height_cache';
+import custom_emojis from './custom_emojis';
const reducers = {
timelines,
@@ -47,6 +48,7 @@ const reducers = {
media_attachments,
notifications,
height_cache,
+ custom_emojis,
};
export default combineReducers(reducers);
diff --git a/app/javascript/styles/about.scss b/app/javascript/styles/about.scss
index 343de15900..2adcb5ba2d 100644
--- a/app/javascript/styles/about.scss
+++ b/app/javascript/styles/about.scss
@@ -124,6 +124,7 @@
box-sizing: border-box;
max-width: 800px;
margin: 0 auto;
+ word-wrap: break-word;
}
.header-wrapper {
diff --git a/app/javascript/styles/application.scss b/app/javascript/styles/application.scss
index 33c7783f3e..e35937be13 100644
--- a/app/javascript/styles/application.scss
+++ b/app/javascript/styles/application.scss
@@ -13,6 +13,7 @@
@import 'accounts';
@import 'stream_entries';
@import 'components';
+@import 'emoji_picker';
@import 'about';
@import 'tables';
@import 'admin';
diff --git a/app/javascript/styles/basics.scss b/app/javascript/styles/basics.scss
index c5f98750cd..96f0023c3d 100644
--- a/app/javascript/styles/basics.scss
+++ b/app/javascript/styles/basics.scss
@@ -62,6 +62,26 @@ body {
height: 100%;
padding: 0;
}
+
+ &.error {
+ text-align: center;
+ color: $ui-primary-color;
+ padding: 20px;
+
+ .dialog img {
+ display: block;
+ margin: 0 auto;
+ max-width: 470px;
+ width: 100%;
+ height: auto;
+ }
+
+ .dialog h1 {
+ font-size: 20px;
+ line-height: 28px;
+ font-weight: 400;
+ }
+ }
}
button {
diff --git a/app/javascript/styles/compact_header.scss b/app/javascript/styles/compact_header.scss
index cf12fcfec3..90d98cc8c5 100644
--- a/app/javascript/styles/compact_header.scss
+++ b/app/javascript/styles/compact_header.scss
@@ -6,7 +6,7 @@
font-weight: 500;
margin-bottom: 20px;
padding: 0 10px;
- overflow-wrap: break-word;
+ word-wrap: break-word;
@media screen and (max-width: 740px) {
text-align: center;
diff --git a/app/javascript/styles/components.scss b/app/javascript/styles/components.scss
index a6e5946a75..2f02af0981 100644
--- a/app/javascript/styles/components.scss
+++ b/app/javascript/styles/components.scss
@@ -222,12 +222,16 @@
}
}
+.dropdown-menu {
+ position: absolute;
+}
+
.dropdown--active .icon-button {
color: $ui-highlight-color;
}
.dropdown--active::after {
- @media screen and (min-width: 1025px) {
+ @media screen and (min-width: 631px) {
content: "";
display: block;
position: absolute;
@@ -395,17 +399,11 @@
.compose-form__autosuggest-wrapper {
position: relative;
- .emoji-picker__dropdown {
+ .emoji-picker-dropdown {
position: absolute;
right: 5px;
top: 5px;
- &.dropdown--active::after {
- border-color: transparent transparent $base-border-color;
- bottom: -1px;
- right: 8px;
- }
-
::-webkit-scrollbar-track:hover,
::-webkit-scrollbar-track:active {
background-color: rgba($base-overlay-background, 0.3);
@@ -444,6 +442,7 @@
display: inline-block;
font-size: inherit;
vertical-align: middle;
+ object-fit: contain;
margin: -.2ex .15em .2ex;
width: 16px;
height: 16px;
@@ -809,8 +808,8 @@
.status__action-bar-dropdown {
float: left;
- height: 18px;
- width: 18px;
+ height: 23.15px;
+ width: 23.15px;
// Dropdown style override for centering on the icon
.dropdown--active {
@@ -836,26 +835,6 @@
align-items: center;
justify-content: center;
position: relative;
-
- .dropdown {
- display: block;
- width: 18px;
- height: 18px;
- }
-
- .dropdown--active {
- .dropdown__content.dropdown__left {
- left: 20px;
- right: initial;
- }
-
- &::after {
- bottom: initial;
- margin-left: 7px;
- margin-top: -7px;
- right: initial;
- }
- }
}
.detailed-status {
@@ -1131,7 +1110,7 @@
}
.account__action-bar-dropdown {
- flex: 1 1 auto;
+ flex: 0 1 calc(50% - 140px);
padding: 10px;
.dropdown--active {
@@ -1158,7 +1137,7 @@
.account__action-bar__tab {
text-decoration: none;
overflow: hidden;
- width: 80px;
+ flex: 0 1 80px;
border-left: 1px solid lighten($ui-base-color, 8%);
padding: 10px 5px;
@@ -1445,10 +1424,80 @@
position: absolute;
}
-.dropdown__sep {
+.dropdown-menu__separator {
border-bottom: 1px solid darken($ui-secondary-color, 8%);
margin: 5px 7px 6px;
- padding-top: 1px;
+ height: 0;
+}
+
+.dropdown-menu {
+ background: $ui-secondary-color;
+ padding: 4px 0;
+ border-radius: 4px;
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
+
+ ul {
+ list-style: none;
+ }
+}
+
+.dropdown-menu__arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border: 0 solid transparent;
+
+ &.left {
+ right: -5px;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: $ui-secondary-color;
+ }
+
+ &.top {
+ bottom: -5px;
+ margin-left: -13px;
+ border-width: 5px 7px 0;
+ border-top-color: $ui-secondary-color;
+ }
+
+ &.bottom {
+ top: -5px;
+ margin-left: -13px;
+ border-width: 0 7px 5px;
+ border-bottom-color: $ui-secondary-color;
+ }
+
+ &.right {
+ left: -5px;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: $ui-secondary-color;
+ }
+}
+
+.dropdown-menu__item {
+ a {
+ font-size: 13px;
+ line-height: 18px;
+ display: block;
+ padding: 4px 14px;
+ box-sizing: border-box;
+ text-decoration: none;
+ background: $ui-secondary-color;
+ color: $ui-base-color;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+
+ &:focus,
+ &:hover,
+ &:active {
+ background: $ui-highlight-color;
+ color: $ui-secondary-color;
+ outline: 0;
+ }
+ }
}
.dropdown--active .dropdown__content {
@@ -1633,7 +1682,7 @@
}
:root { // Overrides .wide stylings for mobile view
- @include single-column('screen and (max-width: 1024px)', $parent: null) {
+ @include single-column('screen and (max-width: 630px)', $parent: null) {
.column,
.drawer {
flex: auto;
@@ -1654,7 +1703,7 @@
}
}
-@include multi-columns('screen and (min-width: 1025px)', $parent: null) {
+@include multi-columns('screen and (min-width: 631px)', $parent: null) {
.columns-area {
padding: 0;
}
@@ -1766,7 +1815,7 @@
&:hover,
&:focus,
&:active {
- @include multi-columns('screen and (min-width: 1025px)') {
+ @include multi-columns('screen and (min-width: 631px)') {
background: lighten($ui-base-color, 14%);
transition: all 100ms linear;
}
@@ -1786,7 +1835,7 @@
}
}
-@include multi-columns('screen and (min-width: 1025px)', $parent: null) {
+@include multi-columns('screen and (min-width: 631px)', $parent: null) {
.tabs-bar {
display: none;
}
@@ -2043,15 +2092,18 @@
}
.autosuggest-textarea__suggestions {
+ box-sizing: border-box;
display: none;
position: absolute;
top: 100%;
width: 100%;
z-index: 99;
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
+ box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
background: $ui-secondary-color;
+ border-radius: 0 0 4px 4px;
color: $ui-base-color;
font-size: 14px;
+ padding: 6px;
&.autosuggest-textarea__suggestions--visible {
display: block;
@@ -2061,34 +2113,36 @@
.autosuggest-textarea__suggestions__item {
padding: 10px;
cursor: pointer;
+ border-radius: 4px;
- &:hover {
- background: darken($ui-secondary-color, 10%);
- }
-
+ &:hover,
+ &:focus,
+ &:active,
&.selected {
- background: $ui-highlight-color;
- color: $base-border-color;
+ background: darken($ui-secondary-color, 10%);
}
}
-.autosuggest-account {
- overflow: hidden;
+.autosuggest-account,
+.autosuggest-emoji {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: flex-start;
+ line-height: 18px;
+ font-size: 14px;
}
-.autosuggest-account-icon {
- float: left;
- margin-right: 5px;
+.autosuggest-account-icon,
+.autosuggest-emoji img {
+ display: block;
+ margin-right: 8px;
+ width: 16px;
+ height: 16px;
}
-.autosuggest-status {
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-
- strong {
- font-weight: 500;
- }
+.autosuggest-account .display-name__account {
+ color: lighten($ui-base-color, 36%);
}
.character-counter__wrapper {
@@ -2837,197 +2891,61 @@ button.icon-button.active i.fa-retweet {
animation-direction: alternate;
}
-.emoji-dialog {
- width: 245px;
- height: 270px;
+.emoji-picker-dropdown__menu {
background: $simple-background-color;
- box-sizing: border-box;
+ position: absolute;
+ box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
border-radius: 4px;
- overflow: hidden;
- position: relative;
- box-shadow: 0 0 8px rgba($base-shadow-color, 0.2);
-
- .emojione {
- margin: 0;
- width: 100%;
- height: auto;
- }
-
- .emoji-dialog-header {
- padding: 0 10px;
-
- ul {
- padding: 0;
- margin: 0;
- list-style: none;
- }
-
- li {
- display: inline-block;
- box-sizing: border-box;
- padding: 10px 5px;
- cursor: pointer;
- border-bottom: 2px solid transparent;
-
- .emoji {
- width: 18px;
- height: 18px;
- }
-
- img,
- svg {
- width: 18px;
- height: 18px;
- filter: grayscale(100%);
- }
-
- &:hover {
- img,
- svg {
- filter: grayscale(0);
- }
- }
-
- &.active {
- border-bottom-color: $ui-highlight-color;
-
- img,
- svg {
- filter: grayscale(0);
- }
- }
- }
- }
-
- .emoji-row {
- box-sizing: border-box;
- overflow-y: hidden;
- padding-left: 10px;
-
- .emoji {
- display: inline-block;
- padding: 2.5px;
- border-radius: 4px;
- }
- }
-
- .emoji-category-header {
- box-sizing: border-box;
- overflow-y: hidden;
- padding: 10px 8px 10px 16px;
- display: table;
-
- > * {
- display: table-cell;
- vertical-align: middle;
- }
- }
+ margin-top: 5px;
- .emoji-category-title {
- font-size: 12px;
- text-transform: uppercase;
- font-weight: 500;
- color: darken($ui-secondary-color, 18%);
- cursor: default;
+ .emoji-mart-scroll {
+ transition: opacity 200ms ease;
}
- .emoji-category-heading-decoration {
- text-align: right;
+ &.selecting .emoji-mart-scroll {
+ opacity: 0.5;
}
+}
- .modifiers {
- list-style: none;
- padding: 0;
- margin: 0;
- vertical-align: middle;
- white-space: nowrap;
- margin-top: 4px;
-
- li {
- display: inline-block;
- padding: 0 2px;
-
- &:last-of-type {
- padding-right: 0;
- }
- }
-
- .modifier {
- display: inline-block;
- border-radius: 10px;
- width: 15px;
- height: 15px;
- position: relative;
- cursor: pointer;
-
- &.active::after {
- content: "";
- display: block;
- position: absolute;
- width: 7px;
- height: 7px;
- border-radius: 10px;
- border: 2px solid $base-border-color;
- top: 2px;
- left: 2px;
- }
- }
- }
+.emoji-picker-dropdown__modifiers {
+ position: absolute;
+ top: 60px;
+ right: 11px;
+ cursor: pointer;
+}
- .emoji-search-wrapper {
- padding: 10px;
- border-bottom: 1px solid lighten($ui-secondary-color, 4%);
- }
+.emoji-picker-dropdown__modifiers__menu {
+ position: absolute;
+ z-index: 4;
+ top: -4px;
+ left: -8px;
+ background: $simple-background-color;
+ border-radius: 4px;
+ box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
+ overflow: hidden;
- .emoji-search {
- font-size: 14px;
- font-weight: 400;
- padding: 7px 9px;
- font-family: inherit;
+ button {
display: block;
- width: 100%;
- background: rgba($ui-secondary-color, 0.3);
- color: darken($ui-secondary-color, 18%);
- border: 1px solid $ui-secondary-color;
- border-radius: 4px;
- }
-
- .emoji-categories-wrapper {
- position: absolute;
- top: 42px;
- bottom: 0;
- left: 0;
- right: 0;
- }
-
- .emoji-search-wrapper + .emoji-categories-wrapper {
- top: 93px;
- }
-
- .emoji-row .emoji {
- img,
- svg {
- transition: transform 60ms ease-in-out;
- }
-
- &:hover {
- background: lighten($ui-secondary-color, 3%);
+ cursor: pointer;
+ border: 0;
+ padding: 4px 8px;
+ background: transparent;
- img,
- svg {
- transform: translateZ(0) scale(1.2);
- }
+ &:hover,
+ &:focus,
+ &:active {
+ background: rgba($ui-secondary-color, 0.4);
}
}
- .emoji {
- width: 22px;
+ .emoji-mart-emoji {
height: 22px;
- cursor: pointer;
+ }
+}
- &:focus {
- outline: 0;
- }
+.emoji-mart-emoji {
+ span {
+ background-repeat: no-repeat;
}
}
@@ -3314,8 +3232,6 @@ button.icon-button.active i.fa-retweet {
}
.search__input {
- padding-right: 30px;
- color: $ui-secondary-color;
outline: 0;
box-sizing: border-box;
display: block;
@@ -3851,6 +3767,10 @@ button.icon-button.active i.fa-retweet {
padding-top: 10px;
padding-bottom: 10px;
}
+
+ .dropdown-menu__separator {
+ border-bottom-color: $ui-secondary-color;
+ }
}
.boost-modal__container {
@@ -3929,6 +3849,10 @@ button.icon-button.active i.fa-retweet {
max-height: 80vh;
max-width: 80vw;
+ .actions-modal__item-label {
+ font-weight: 500;
+ }
+
ul {
overflow-y: auto;
flex-shrink: 0;
@@ -3941,11 +3865,20 @@ button.icon-button.active i.fa-retweet {
a {
color: $ui-base-color;
display: flex;
- padding: 10px;
+ padding: 12px 16px;
+ font-size: 15px;
align-items: center;
text-decoration: none;
- &.active {
+ &,
+ button {
+ transition: none;
+ }
+
+ &.active,
+ &:hover,
+ &:active,
+ &:focus {
&,
button {
background: $ui-highlight-color;
@@ -4102,6 +4035,12 @@ button.icon-button.active i.fa-retweet {
display: block;
float: left;
position: relative;
+
+ &.standalone {
+ .media-gallery__item-gifv-thumbnail {
+ transform: none;
+ }
+ }
}
.media-gallery__item-thumbnail {
@@ -4109,6 +4048,7 @@ button.icon-button.active i.fa-retweet {
text-decoration: none;
width: 100%;
height: 100%;
+ line-height: 0;
display: flex;
img {
@@ -4417,12 +4357,14 @@ button.icon-button.active i.fa-retweet {
.account-gallery__container {
margin: -2px;
padding: 4px;
+ display: flex;
+ flex-wrap: wrap;
}
.account-gallery__item {
- float: left;
- width: 96px;
- height: 96px;
+ flex: 1 1 auto;
+ width: calc(100% / 3 - 4px);
+ height: 95px;
margin: 2px;
a {
@@ -4433,6 +4375,14 @@ button.icon-button.active i.fa-retweet {
background-size: cover;
background-position: center;
position: relative;
+ color: inherit;
+ text-decoration: none;
+
+ &:hover,
+ &:active,
+ &:focus {
+ outline: 0;
+ }
}
}
@@ -4502,7 +4452,7 @@ noscript {
100% { opacity: 1; }
}
-@media screen and (max-width: 1024px) and (max-height: 400px) {
+@media screen and (max-width: 630px) and (max-height: 400px) {
$duration: 400ms;
$delay: 100ms;
diff --git a/app/javascript/styles/emoji_picker.scss b/app/javascript/styles/emoji_picker.scss
new file mode 100644
index 0000000000..2b46d30fce
--- /dev/null
+++ b/app/javascript/styles/emoji_picker.scss
@@ -0,0 +1,199 @@
+.emoji-mart {
+ &,
+ * {
+ box-sizing: border-box;
+ line-height: 1.15;
+ }
+
+ font-size: 13px;
+ display: inline-block;
+ color: $ui-base-color;
+
+ .emoji-mart-emoji {
+ padding: 6px;
+ }
+}
+
+.emoji-mart-bar {
+ border: 0 solid darken($ui-secondary-color, 8%);
+
+ &:first-child {
+ border-bottom-width: 1px;
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ background: $ui-secondary-color;
+ }
+
+ &:last-child {
+ border-top-width: 1px;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+ display: none;
+ }
+}
+
+.emoji-mart-anchors {
+ display: flex;
+ justify-content: space-between;
+ padding: 0 6px;
+ color: $ui-primary-color;
+ line-height: 0;
+}
+
+.emoji-mart-anchor {
+ position: relative;
+ flex: 1;
+ text-align: center;
+ padding: 12px 4px;
+ overflow: hidden;
+ transition: color .1s ease-out;
+ cursor: pointer;
+
+ &:hover {
+ color: darken($ui-primary-color, 4%);
+ }
+}
+
+.emoji-mart-anchor-selected {
+ color: darken($ui-highlight-color, 3%);
+
+ &:hover {
+ color: darken($ui-highlight-color, 3%);
+ }
+
+ .emoji-mart-anchor-bar {
+ bottom: 0;
+ }
+}
+
+.emoji-mart-anchor-bar {
+ position: absolute;
+ bottom: -3px;
+ left: 0;
+ width: 100%;
+ height: 3px;
+ background-color: darken($ui-highlight-color, 3%);
+}
+
+.emoji-mart-anchors {
+ i {
+ display: inline-block;
+ width: 100%;
+ max-width: 22px;
+ }
+
+ svg {
+ fill: currentColor;
+ max-height: 18px;
+ }
+}
+
+.emoji-mart-scroll {
+ overflow-y: scroll;
+ height: 270px;
+ max-height: 35vh;
+ padding: 0 6px 6px;
+ background: $simple-background-color;
+ will-change: transform;
+}
+
+.emoji-mart-search {
+ padding: 10px;
+ padding-right: 45px;
+ background: $simple-background-color;
+
+ input {
+ font-size: 14px;
+ font-weight: 400;
+ padding: 7px 9px;
+ font-family: inherit;
+ display: block;
+ width: 100%;
+ background: rgba($ui-secondary-color, 0.3);
+ color: $ui-primary-color;
+ border: 1px solid $ui-secondary-color;
+ border-radius: 4px;
+
+ &::-moz-focus-inner {
+ border: 0;
+ }
+
+ &::-moz-focus-inner,
+ &:focus,
+ &:active {
+ outline: 0 !important;
+ }
+ }
+}
+
+.emoji-mart-category .emoji-mart-emoji {
+ cursor: pointer;
+
+ span {
+ z-index: 1;
+ position: relative;
+ text-align: center;
+ }
+
+ &:hover::before {
+ z-index: 0;
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgba($ui-secondary-color, 0.7);
+ border-radius: 100%;
+ }
+}
+
+.emoji-mart-category-label {
+ z-index: 2;
+ position: relative;
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+
+ span {
+ display: block;
+ width: 100%;
+ font-weight: 500;
+ padding: 5px 6px;
+ background: $simple-background-color;
+ }
+}
+
+.emoji-mart-emoji {
+ position: relative;
+ display: inline-block;
+ font-size: 0;
+
+ span {
+ width: 22px;
+ height: 22px;
+ }
+}
+
+.emoji-mart-no-results {
+ font-size: 14px;
+ text-align: center;
+ padding-top: 70px;
+ color: $ui-primary-color;
+
+ .emoji-mart-category-label {
+ display: none;
+ }
+
+ .emoji-mart-no-results-label {
+ margin-top: .2em;
+ }
+
+ .emoji-mart-emoji:hover::before {
+ content: none;
+ }
+}
+
+.emoji-mart-preview {
+ display: none;
+}
diff --git a/app/javascript/styles/rtl.scss b/app/javascript/styles/rtl.scss
index 6c003d69ad..0fdeccd9c3 100644
--- a/app/javascript/styles/rtl.scss
+++ b/app/javascript/styles/rtl.scss
@@ -245,7 +245,7 @@ body.rtl {
margin-left: 30px;
}
- @media screen and (min-width: 1025px) {
+ @media screen and (min-width: 631px) {
.column,
.drawer {
padding-left: 5px;
diff --git a/app/lib/activitypub/activity/announce.rb b/app/lib/activitypub/activity/announce.rb
index 556f912356..4516454e18 100644
--- a/app/lib/activitypub/activity/announce.rb
+++ b/app/lib/activitypub/activity/announce.rb
@@ -25,6 +25,8 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity
def fetch_remote_original_status
if object_uri.start_with?('http')
+ return if ActivityPub::TagManager.instance.local_uri?(object_uri)
+
ActivityPub::FetchRemoteStatusService.new.call(object_uri)
elsif @object['url'].present?
::FetchRemoteStatusService.new.call(@object['url'])
diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb
index 41f2b0bad7..4e19b30964 100644
--- a/app/lib/activitypub/activity/create.rb
+++ b/app/lib/activitypub/activity/create.rb
@@ -68,6 +68,8 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
def process_hashtag(tag, status)
+ return if tag['name'].blank?
+
hashtag = tag['name'].gsub(/\A#/, '').mb_chars.downcase
hashtag = Tag.where(name: hashtag).first_or_initialize(name: hashtag)
@@ -75,6 +77,8 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
def process_mention(tag, status)
+ return if tag['href'].blank?
+
account = account_from_uri(tag['href'])
account = FetchRemoteAccountService.new.call(tag['href']) if account.nil?
return if account.nil?
@@ -82,6 +86,8 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
def process_emoji(tag, _status)
+ return if tag['name'].blank? || tag['href'].blank?
+
shortcode = tag['name'].delete(':')
emoji = CustomEmoji.find_by(shortcode: shortcode, domain: @account.domain)
@@ -96,7 +102,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
return unless @object['attachment'].is_a?(Array)
@object['attachment'].each do |attachment|
- next if unsupported_media_type?(attachment['mediaType'])
+ next if unsupported_media_type?(attachment['mediaType']) || attachment['url'].blank?
href = Addressable::URI.parse(attachment['url']).normalize.to_s
media_attachment = MediaAttachment.create(status: status, account: status.account, remote_url: href)
@@ -106,6 +112,8 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
media_attachment.file_remote_url = href
media_attachment.save
end
+ rescue Addressable::URI::InvalidURIError => e
+ Rails.logger.debug e
end
def resolve_thread(status)
@@ -115,8 +123,8 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
def conversation_from_uri(uri)
return nil if uri.nil?
- return Conversation.find_by(id: TagManager.instance.unique_tag_to_local_id(uri, 'Conversation')) if TagManager.instance.local_id?(uri)
- Conversation.find_by(uri: uri) || Conversation.create!(uri: uri)
+ return Conversation.find_by(id: OStatus::TagManager.instance.unique_tag_to_local_id(uri, 'Conversation')) if OStatus::TagManager.instance.local_id?(uri)
+ Conversation.find_by(uri: uri) || Conversation.create(uri: uri)
end
def visibility_from_audience
diff --git a/app/lib/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb
index 1b4e271db5..4ec3b8c56e 100644
--- a/app/lib/activitypub/tag_manager.rb
+++ b/app/lib/activitypub/tag_manager.rb
@@ -98,8 +98,8 @@ class ActivityPub::TagManager
else
StatusFinder.new(uri).status
end
- elsif ::TagManager.instance.local_id?(uri)
- klass.find_by(id: ::TagManager.instance.unique_tag_to_local_id(uri, klass.to_s))
+ elsif OStatus::TagManager.instance.local_id?(uri)
+ klass.find_by(id: OStatus::TagManager.instance.unique_tag_to_local_id(uri, klass.to_s))
else
klass.find_by(uri: uri.split('#').first)
end
diff --git a/app/lib/emoji.rb b/app/lib/emoji.rb
deleted file mode 100644
index 45b7f53dec..0000000000
--- a/app/lib/emoji.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-# frozen_string_literal: true
-
-require 'singleton'
-
-class Emoji
- include Singleton
-
- def initialize
- data = Oj.load(File.open(Rails.root.join('lib', 'assets', 'emoji.json')))
-
- @map = {}
-
- data.each do |_, emoji|
- keys = [emoji['shortname']] + emoji['aliases']
- unicode = codepoint_to_unicode(emoji['unicode'])
-
- keys.each do |key|
- @map[key] = unicode
- end
- end
- end
-
- def unicode(shortcode)
- @map[shortcode]
- end
-
- def names
- @map.keys
- end
-
- private
-
- def codepoint_to_unicode(codepoint)
- if codepoint.include?('-')
- codepoint.split('-').map(&:hex).pack('U*')
- else
- [codepoint.hex].pack('U')
- end
- end
-end
diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb
index 29fea27de7..42cd729903 100644
--- a/app/lib/formatter.rb
+++ b/app/lib/formatter.rb
@@ -22,7 +22,7 @@ class Formatter
unless status.local?
html = reformat(raw_content)
html = encode_custom_emojis(html, status.emojis) if options[:custom_emojify]
- return html
+ return html.html_safe # rubocop:disable Rails/OutputSafety
end
linkable_accounts = status.mentions.map(&:account)
@@ -39,7 +39,7 @@ class Formatter
end
def reformat(html)
- sanitize(html, Sanitize::Config::MASTODON_STRICT).html_safe # rubocop:disable Rails/OutputSafety
+ sanitize(html, Sanitize::Config::MASTODON_STRICT)
end
def plaintext(status)
@@ -63,6 +63,12 @@ class Formatter
Sanitize.fragment(html, config)
end
+ def format_spoiler(status)
+ html = encode(status.spoiler_text)
+ html = encode_custom_emojis(html, status.emojis)
+ html.html_safe # rubocop:disable Rails/OutputSafety
+ end
+
private
def encode(html)
diff --git a/app/lib/ostatus/activity/base.rb b/app/lib/ostatus/activity/base.rb
index 1dc7abee3f..0393813979 100644
--- a/app/lib/ostatus/activity/base.rb
+++ b/app/lib/ostatus/activity/base.rb
@@ -11,30 +11,30 @@ class OStatus::Activity::Base
end
def verb
- raw = @xml.at_xpath('./activity:verb', activity: TagManager::AS_XMLNS).content
- TagManager::VERBS.key(raw)
+ raw = @xml.at_xpath('./activity:verb', activity: OStatus::TagManager::AS_XMLNS).content
+ OStatus::TagManager::VERBS.key(raw)
rescue
:post
end
def type
- raw = @xml.at_xpath('./activity:object-type', activity: TagManager::AS_XMLNS).content
- TagManager::TYPES.key(raw)
+ raw = @xml.at_xpath('./activity:object-type', activity: OStatus::TagManager::AS_XMLNS).content
+ OStatus::TagManager::TYPES.key(raw)
rescue
:activity
end
def id
- @xml.at_xpath('./xmlns:id', xmlns: TagManager::XMLNS).content
+ @xml.at_xpath('./xmlns:id', xmlns: OStatus::TagManager::XMLNS).content
end
def url
- link = @xml.xpath('./xmlns:link[@rel="alternate"]', xmlns: TagManager::XMLNS).find { |link_candidate| link_candidate['type'] == 'text/html' }
+ link = @xml.xpath('./xmlns:link[@rel="alternate"]', xmlns: OStatus::TagManager::XMLNS).find { |link_candidate| link_candidate['type'] == 'text/html' }
link.nil? ? nil : link['href']
end
def activitypub_uri
- link = @xml.xpath('./xmlns:link[@rel="alternate"]', xmlns: TagManager::XMLNS).find { |link_candidate| ['application/activity+json', 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'].include?(link_candidate['type']) }
+ link = @xml.xpath('./xmlns:link[@rel="alternate"]', xmlns: OStatus::TagManager::XMLNS).find { |link_candidate| ['application/activity+json', 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'].include?(link_candidate['type']) }
link.nil? ? nil : link['href']
end
@@ -45,8 +45,8 @@ class OStatus::Activity::Base
private
def find_status(uri)
- if TagManager.instance.local_id?(uri)
- local_id = TagManager.instance.unique_tag_to_local_id(uri, 'Status')
+ if OStatus::TagManager.instance.local_id?(uri)
+ local_id = OStatus::TagManager.instance.unique_tag_to_local_id(uri, 'Status')
return Status.find_by(id: local_id)
elsif ActivityPub::TagManager.instance.local_uri?(uri)
local_id = ActivityPub::TagManager.instance.uri_to_local_id(uri)
diff --git a/app/lib/ostatus/activity/creation.rb b/app/lib/ostatus/activity/creation.rb
index d3f1629c45..2687776f94 100644
--- a/app/lib/ostatus/activity/creation.rb
+++ b/app/lib/ostatus/activity/creation.rb
@@ -14,14 +14,22 @@ class OStatus::Activity::Creation < OStatus::Activity::Base
return result if result.first.present?
end
- Rails.logger.debug "Creating remote status #{id}"
-
- # Return early if status already exists in db
- status = find_status(id)
+ RedisLock.acquire(lock_options) do |lock|
+ if lock.acquired?
+ # Return early if status already exists in db
+ @status = find_status(id)
+ return [@status, false] unless @status.nil?
+ @status = process_status
+ end
+ end
- return [status, false] unless status.nil?
+ [@status, true]
+ end
+ def process_status
+ Rails.logger.debug "Creating remote status #{id}"
cached_reblog = reblog
+ status = nil
ApplicationRecord.transaction do
status = Status.create!(
@@ -55,7 +63,7 @@ class OStatus::Activity::Creation < OStatus::Activity::Base
LinkCrawlWorker.perform_async(status.id) unless status.spoiler_text?
DistributionWorker.perform_async(status.id)
- [status, true]
+ status
end
def perform_via_activitypub
@@ -63,42 +71,42 @@ class OStatus::Activity::Creation < OStatus::Activity::Base
end
def content
- @xml.at_xpath('./xmlns:content', xmlns: TagManager::XMLNS).content
+ @xml.at_xpath('./xmlns:content', xmlns: OStatus::TagManager::XMLNS).content
end
def content_language
- @xml.at_xpath('./xmlns:content', xmlns: TagManager::XMLNS)['xml:lang']&.presence || 'en'
+ @xml.at_xpath('./xmlns:content', xmlns: OStatus::TagManager::XMLNS)['xml:lang']&.presence || 'en'
end
def content_warning
- @xml.at_xpath('./xmlns:summary', xmlns: TagManager::XMLNS)&.content || ''
+ @xml.at_xpath('./xmlns:summary', xmlns: OStatus::TagManager::XMLNS)&.content || ''
end
def visibility_scope
- @xml.at_xpath('./mastodon:scope', mastodon: TagManager::MTDN_XMLNS)&.content&.to_sym || :public
+ @xml.at_xpath('./mastodon:scope', mastodon: OStatus::TagManager::MTDN_XMLNS)&.content&.to_sym || :public
end
def published
- @xml.at_xpath('./xmlns:published', xmlns: TagManager::XMLNS).content
+ @xml.at_xpath('./xmlns:published', xmlns: OStatus::TagManager::XMLNS).content
end
def thread?
- !@xml.at_xpath('./thr:in-reply-to', thr: TagManager::THR_XMLNS).nil?
+ !@xml.at_xpath('./thr:in-reply-to', thr: OStatus::TagManager::THR_XMLNS).nil?
end
def thread
- thr = @xml.at_xpath('./thr:in-reply-to', thr: TagManager::THR_XMLNS)
+ thr = @xml.at_xpath('./thr:in-reply-to', thr: OStatus::TagManager::THR_XMLNS)
[thr['ref'], thr['href']]
end
private
def find_or_create_conversation
- uri = @xml.at_xpath('./ostatus:conversation', ostatus: TagManager::OS_XMLNS)&.attribute('ref')&.content
+ uri = @xml.at_xpath('./ostatus:conversation', ostatus: OStatus::TagManager::OS_XMLNS)&.attribute('ref')&.content
return if uri.nil?
- if TagManager.instance.local_id?(uri)
- local_id = TagManager.instance.unique_tag_to_local_id(uri, 'Conversation')
+ if OStatus::TagManager.instance.local_id?(uri)
+ local_id = OStatus::TagManager.instance.unique_tag_to_local_id(uri, 'Conversation')
return Conversation.find_by(id: local_id)
end
@@ -108,8 +116,8 @@ class OStatus::Activity::Creation < OStatus::Activity::Base
def save_mentions(parent)
processed_account_ids = []
- @xml.xpath('./xmlns:link[@rel="mentioned"]', xmlns: TagManager::XMLNS).each do |link|
- next if [TagManager::TYPES[:group], TagManager::TYPES[:collection]].include? link['ostatus:object-type']
+ @xml.xpath('./xmlns:link[@rel="mentioned"]', xmlns: OStatus::TagManager::XMLNS).each do |link|
+ next if [OStatus::TagManager::TYPES[:group], OStatus::TagManager::TYPES[:collection]].include? link['ostatus:object-type']
mentioned_account = account_from_href(link['href'])
@@ -123,14 +131,14 @@ class OStatus::Activity::Creation < OStatus::Activity::Base
end
def save_hashtags(parent)
- tags = @xml.xpath('./xmlns:category', xmlns: TagManager::XMLNS).map { |category| category['term'] }.select(&:present?)
+ tags = @xml.xpath('./xmlns:category', xmlns: OStatus::TagManager::XMLNS).map { |category| category['term'] }.select(&:present?)
ProcessHashtagsService.new.call(parent, tags)
end
def save_media(parent)
do_not_download = DomainBlock.find_by(domain: parent.account.domain)&.reject_media?
- @xml.xpath('./xmlns:link[@rel="enclosure"]', xmlns: TagManager::XMLNS).each do |link|
+ @xml.xpath('./xmlns:link[@rel="enclosure"]', xmlns: OStatus::TagManager::XMLNS).each do |link|
next unless link['href']
media = MediaAttachment.where(status: parent, remote_url: link['href']).first_or_initialize(account: parent.account, status: parent, remote_url: link['href'])
@@ -156,7 +164,7 @@ class OStatus::Activity::Creation < OStatus::Activity::Base
return if do_not_download
- @xml.xpath('./xmlns:link[@rel="emoji"]', xmlns: TagManager::XMLNS).each do |link|
+ @xml.xpath('./xmlns:link[@rel="emoji"]', xmlns: OStatus::TagManager::XMLNS).each do |link|
next unless link['href'] && link['name']
shortcode = link['name'].delete(':')
@@ -179,4 +187,8 @@ class OStatus::Activity::Creation < OStatus::Activity::Base
Account.where(uri: href).or(Account.where(url: href)).first || FetchRemoteAccountService.new.call(href)
end
end
+
+ def lock_options
+ { redis: Redis.current, key: "create:#{id}" }
+ end
end
diff --git a/app/lib/ostatus/activity/share.rb b/app/lib/ostatus/activity/share.rb
index 2900080216..5ca6014154 100644
--- a/app/lib/ostatus/activity/share.rb
+++ b/app/lib/ostatus/activity/share.rb
@@ -10,7 +10,7 @@ class OStatus::Activity::Share < OStatus::Activity::Creation
end
def object
- @xml.at_xpath('.//activity:object', activity: TagManager::AS_XMLNS)
+ @xml.at_xpath('.//activity:object', activity: OStatus::TagManager::AS_XMLNS)
end
private
diff --git a/app/lib/ostatus/atom_serializer.rb b/app/lib/ostatus/atom_serializer.rb
index a6a5cb0c45..a1ac11a519 100644
--- a/app/lib/ostatus/atom_serializer.rb
+++ b/app/lib/ostatus/atom_serializer.rb
@@ -15,10 +15,10 @@ class OStatus::AtomSerializer
def author(account)
author = Ox::Element.new('author')
- uri = TagManager.instance.uri_for(account)
+ uri = OStatus::TagManager.instance.uri_for(account)
append_element(author, 'id', uri)
- append_element(author, 'activity:object-type', TagManager::TYPES[:person])
+ append_element(author, 'activity:object-type', OStatus::TagManager::TYPES[:person])
append_element(author, 'uri', uri)
append_element(author, 'name', account.username)
append_element(author, 'email', account.local? ? account.local_username_and_domain : account.acct)
@@ -65,15 +65,15 @@ class OStatus::AtomSerializer
add_namespaces(entry) if root
- append_element(entry, 'id', TagManager.instance.uri_for(stream_entry.status))
+ append_element(entry, 'id', OStatus::TagManager.instance.uri_for(stream_entry.status))
append_element(entry, 'published', stream_entry.created_at.iso8601)
append_element(entry, 'updated', stream_entry.updated_at.iso8601)
append_element(entry, 'title', stream_entry&.status&.title || "#{stream_entry.account.acct} deleted status")
entry << author(stream_entry.account) if root
- append_element(entry, 'activity:object-type', TagManager::TYPES[stream_entry.object_type])
- append_element(entry, 'activity:verb', TagManager::VERBS[stream_entry.verb])
+ append_element(entry, 'activity:object-type', OStatus::TagManager::TYPES[stream_entry.object_type])
+ append_element(entry, 'activity:verb', OStatus::TagManager::VERBS[stream_entry.verb])
entry << object(stream_entry.target) if stream_entry.targeted?
@@ -88,7 +88,7 @@ class OStatus::AtomSerializer
append_element(entry, 'link', nil, rel: :alternate, type: 'text/html', href: TagManager.instance.url_for(stream_entry.status))
append_element(entry, 'link', nil, rel: :self, type: 'application/atom+xml', href: account_stream_entry_url(stream_entry.account, stream_entry, format: 'atom'))
- append_element(entry, 'thr:in-reply-to', nil, ref: TagManager.instance.uri_for(stream_entry.thread), href: TagManager.instance.url_for(stream_entry.thread)) if stream_entry.threaded?
+ append_element(entry, 'thr:in-reply-to', nil, ref: OStatus::TagManager.instance.uri_for(stream_entry.thread), href: TagManager.instance.url_for(stream_entry.thread)) if stream_entry.threaded?
append_element(entry, 'ostatus:conversation', nil, ref: conversation_uri(stream_entry.status.conversation)) unless stream_entry&.status&.conversation_id.nil?
entry
@@ -97,20 +97,20 @@ class OStatus::AtomSerializer
def object(status)
object = Ox::Element.new('activity:object')
- append_element(object, 'id', TagManager.instance.uri_for(status))
+ append_element(object, 'id', OStatus::TagManager.instance.uri_for(status))
append_element(object, 'published', status.created_at.iso8601)
append_element(object, 'updated', status.updated_at.iso8601)
append_element(object, 'title', status.title)
object << author(status.account)
- append_element(object, 'activity:object-type', TagManager::TYPES[status.object_type])
- append_element(object, 'activity:verb', TagManager::VERBS[status.verb])
+ append_element(object, 'activity:object-type', OStatus::TagManager::TYPES[status.object_type])
+ append_element(object, 'activity:verb', OStatus::TagManager::VERBS[status.verb])
serialize_status_attributes(object, status)
append_element(object, 'link', nil, rel: :alternate, type: 'text/html', href: TagManager.instance.url_for(status))
- append_element(object, 'thr:in-reply-to', nil, ref: TagManager.instance.uri_for(status.thread), href: TagManager.instance.url_for(status.thread)) unless status.thread.nil?
+ append_element(object, 'thr:in-reply-to', nil, ref: OStatus::TagManager.instance.uri_for(status.thread), href: TagManager.instance.url_for(status.thread)) unless status.thread.nil?
append_element(object, 'ostatus:conversation', nil, ref: conversation_uri(status.conversation)) unless status.conversation_id.nil?
object
@@ -122,14 +122,14 @@ class OStatus::AtomSerializer
description = "#{follow.account.acct} started following #{follow.target_account.acct}"
- append_element(entry, 'id', TagManager.instance.unique_tag(follow.created_at, follow.id, 'Follow'))
+ append_element(entry, 'id', OStatus::TagManager.instance.unique_tag(follow.created_at, follow.id, 'Follow'))
append_element(entry, 'title', description)
append_element(entry, 'content', description, type: :html)
entry << author(follow.account)
- append_element(entry, 'activity:object-type', TagManager::TYPES[:activity])
- append_element(entry, 'activity:verb', TagManager::VERBS[:follow])
+ append_element(entry, 'activity:object-type', OStatus::TagManager::TYPES[:activity])
+ append_element(entry, 'activity:verb', OStatus::TagManager::VERBS[:follow])
object = author(follow.target_account)
object.value = 'activity:object'
@@ -142,13 +142,13 @@ class OStatus::AtomSerializer
entry = Ox::Element.new('entry')
add_namespaces(entry)
- append_element(entry, 'id', TagManager.instance.unique_tag(follow_request.created_at, follow_request.id, 'FollowRequest'))
+ append_element(entry, 'id', OStatus::TagManager.instance.unique_tag(follow_request.created_at, follow_request.id, 'FollowRequest'))
append_element(entry, 'title', "#{follow_request.account.acct} requested to follow #{follow_request.target_account.acct}")
entry << author(follow_request.account)
- append_element(entry, 'activity:object-type', TagManager::TYPES[:activity])
- append_element(entry, 'activity:verb', TagManager::VERBS[:request_friend])
+ append_element(entry, 'activity:object-type', OStatus::TagManager::TYPES[:activity])
+ append_element(entry, 'activity:verb', OStatus::TagManager::VERBS[:request_friend])
object = author(follow_request.target_account)
object.value = 'activity:object'
@@ -161,19 +161,19 @@ class OStatus::AtomSerializer
entry = Ox::Element.new('entry')
add_namespaces(entry)
- append_element(entry, 'id', TagManager.instance.unique_tag(Time.now.utc, follow_request.id, 'FollowRequest'))
+ append_element(entry, 'id', OStatus::TagManager.instance.unique_tag(Time.now.utc, follow_request.id, 'FollowRequest'))
append_element(entry, 'title', "#{follow_request.target_account.acct} authorizes follow request by #{follow_request.account.acct}")
entry << author(follow_request.target_account)
- append_element(entry, 'activity:object-type', TagManager::TYPES[:activity])
- append_element(entry, 'activity:verb', TagManager::VERBS[:authorize])
+ append_element(entry, 'activity:object-type', OStatus::TagManager::TYPES[:activity])
+ append_element(entry, 'activity:verb', OStatus::TagManager::VERBS[:authorize])
object = Ox::Element.new('activity:object')
object << author(follow_request.account)
- append_element(object, 'activity:object-type', TagManager::TYPES[:activity])
- append_element(object, 'activity:verb', TagManager::VERBS[:request_friend])
+ append_element(object, 'activity:object-type', OStatus::TagManager::TYPES[:activity])
+ append_element(object, 'activity:verb', OStatus::TagManager::VERBS[:request_friend])
inner_object = author(follow_request.target_account)
inner_object.value = 'activity:object'
@@ -187,19 +187,19 @@ class OStatus::AtomSerializer
entry = Ox::Element.new('entry')
add_namespaces(entry)
- append_element(entry, 'id', TagManager.instance.unique_tag(Time.now.utc, follow_request.id, 'FollowRequest'))
+ append_element(entry, 'id', OStatus::TagManager.instance.unique_tag(Time.now.utc, follow_request.id, 'FollowRequest'))
append_element(entry, 'title', "#{follow_request.target_account.acct} rejects follow request by #{follow_request.account.acct}")
entry << author(follow_request.target_account)
- append_element(entry, 'activity:object-type', TagManager::TYPES[:activity])
- append_element(entry, 'activity:verb', TagManager::VERBS[:reject])
+ append_element(entry, 'activity:object-type', OStatus::TagManager::TYPES[:activity])
+ append_element(entry, 'activity:verb', OStatus::TagManager::VERBS[:reject])
object = Ox::Element.new('activity:object')
object << author(follow_request.account)
- append_element(object, 'activity:object-type', TagManager::TYPES[:activity])
- append_element(object, 'activity:verb', TagManager::VERBS[:request_friend])
+ append_element(object, 'activity:object-type', OStatus::TagManager::TYPES[:activity])
+ append_element(object, 'activity:verb', OStatus::TagManager::VERBS[:request_friend])
inner_object = author(follow_request.target_account)
inner_object.value = 'activity:object'
@@ -215,14 +215,14 @@ class OStatus::AtomSerializer
description = "#{follow.account.acct} is no longer following #{follow.target_account.acct}"
- append_element(entry, 'id', TagManager.instance.unique_tag(Time.now.utc, follow.id, 'Follow'))
+ append_element(entry, 'id', OStatus::TagManager.instance.unique_tag(Time.now.utc, follow.id, 'Follow'))
append_element(entry, 'title', description)
append_element(entry, 'content', description, type: :html)
entry << author(follow.account)
- append_element(entry, 'activity:object-type', TagManager::TYPES[:activity])
- append_element(entry, 'activity:verb', TagManager::VERBS[:unfollow])
+ append_element(entry, 'activity:object-type', OStatus::TagManager::TYPES[:activity])
+ append_element(entry, 'activity:verb', OStatus::TagManager::VERBS[:unfollow])
object = author(follow.target_account)
object.value = 'activity:object'
@@ -237,13 +237,13 @@ class OStatus::AtomSerializer
description = "#{block.account.acct} no longer wishes to interact with #{block.target_account.acct}"
- append_element(entry, 'id', TagManager.instance.unique_tag(Time.now.utc, block.id, 'Block'))
+ append_element(entry, 'id', OStatus::TagManager.instance.unique_tag(Time.now.utc, block.id, 'Block'))
append_element(entry, 'title', description)
entry << author(block.account)
- append_element(entry, 'activity:object-type', TagManager::TYPES[:activity])
- append_element(entry, 'activity:verb', TagManager::VERBS[:block])
+ append_element(entry, 'activity:object-type', OStatus::TagManager::TYPES[:activity])
+ append_element(entry, 'activity:verb', OStatus::TagManager::VERBS[:block])
object = author(block.target_account)
object.value = 'activity:object'
@@ -258,13 +258,13 @@ class OStatus::AtomSerializer
description = "#{block.account.acct} no longer blocks #{block.target_account.acct}"
- append_element(entry, 'id', TagManager.instance.unique_tag(Time.now.utc, block.id, 'Block'))
+ append_element(entry, 'id', OStatus::TagManager.instance.unique_tag(Time.now.utc, block.id, 'Block'))
append_element(entry, 'title', description)
entry << author(block.account)
- append_element(entry, 'activity:object-type', TagManager::TYPES[:activity])
- append_element(entry, 'activity:verb', TagManager::VERBS[:unblock])
+ append_element(entry, 'activity:object-type', OStatus::TagManager::TYPES[:activity])
+ append_element(entry, 'activity:verb', OStatus::TagManager::VERBS[:unblock])
object = author(block.target_account)
object.value = 'activity:object'
@@ -279,18 +279,18 @@ class OStatus::AtomSerializer
description = "#{favourite.account.acct} favourited a status by #{favourite.status.account.acct}"
- append_element(entry, 'id', TagManager.instance.unique_tag(favourite.created_at, favourite.id, 'Favourite'))
+ append_element(entry, 'id', OStatus::TagManager.instance.unique_tag(favourite.created_at, favourite.id, 'Favourite'))
append_element(entry, 'title', description)
append_element(entry, 'content', description, type: :html)
entry << author(favourite.account)
- append_element(entry, 'activity:object-type', TagManager::TYPES[:activity])
- append_element(entry, 'activity:verb', TagManager::VERBS[:favorite])
+ append_element(entry, 'activity:object-type', OStatus::TagManager::TYPES[:activity])
+ append_element(entry, 'activity:verb', OStatus::TagManager::VERBS[:favorite])
entry << object(favourite.status)
- append_element(entry, 'thr:in-reply-to', nil, ref: TagManager.instance.uri_for(favourite.status), href: TagManager.instance.url_for(favourite.status))
+ append_element(entry, 'thr:in-reply-to', nil, ref: OStatus::TagManager.instance.uri_for(favourite.status), href: TagManager.instance.url_for(favourite.status))
entry
end
@@ -301,18 +301,18 @@ class OStatus::AtomSerializer
description = "#{favourite.account.acct} no longer favourites a status by #{favourite.status.account.acct}"
- append_element(entry, 'id', TagManager.instance.unique_tag(Time.now.utc, favourite.id, 'Favourite'))
+ append_element(entry, 'id', OStatus::TagManager.instance.unique_tag(Time.now.utc, favourite.id, 'Favourite'))
append_element(entry, 'title', description)
append_element(entry, 'content', description, type: :html)
entry << author(favourite.account)
- append_element(entry, 'activity:object-type', TagManager::TYPES[:activity])
- append_element(entry, 'activity:verb', TagManager::VERBS[:unfavorite])
+ append_element(entry, 'activity:object-type', OStatus::TagManager::TYPES[:activity])
+ append_element(entry, 'activity:verb', OStatus::TagManager::VERBS[:unfavorite])
entry << object(favourite.status)
- append_element(entry, 'thr:in-reply-to', nil, ref: TagManager.instance.uri_for(favourite.status), href: TagManager.instance.url_for(favourite.status))
+ append_element(entry, 'thr:in-reply-to', nil, ref: OStatus::TagManager.instance.uri_for(favourite.status), href: TagManager.instance.url_for(favourite.status))
entry
end
@@ -332,17 +332,17 @@ class OStatus::AtomSerializer
def conversation_uri(conversation)
return conversation.uri if conversation.uri?
- TagManager.instance.unique_tag(conversation.created_at, conversation.id, 'Conversation')
+ OStatus::TagManager.instance.unique_tag(conversation.created_at, conversation.id, 'Conversation')
end
def add_namespaces(parent)
- parent['xmlns'] = TagManager::XMLNS
- parent['xmlns:thr'] = TagManager::THR_XMLNS
- parent['xmlns:activity'] = TagManager::AS_XMLNS
- parent['xmlns:poco'] = TagManager::POCO_XMLNS
- parent['xmlns:media'] = TagManager::MEDIA_XMLNS
- parent['xmlns:ostatus'] = TagManager::OS_XMLNS
- parent['xmlns:mastodon'] = TagManager::MTDN_XMLNS
+ parent['xmlns'] = OStatus::TagManager::XMLNS
+ parent['xmlns:thr'] = OStatus::TagManager::THR_XMLNS
+ parent['xmlns:activity'] = OStatus::TagManager::AS_XMLNS
+ parent['xmlns:poco'] = OStatus::TagManager::POCO_XMLNS
+ parent['xmlns:media'] = OStatus::TagManager::MEDIA_XMLNS
+ parent['xmlns:ostatus'] = OStatus::TagManager::OS_XMLNS
+ parent['xmlns:mastodon'] = OStatus::TagManager::MTDN_XMLNS
end
def serialize_status_attributes(entry, status)
@@ -352,10 +352,10 @@ class OStatus::AtomSerializer
append_element(entry, 'content', Formatter.instance.format(status).to_str, type: 'html', 'xml:lang': status.language)
status.mentions.each do |mentioned|
- append_element(entry, 'link', nil, rel: :mentioned, 'ostatus:object-type': TagManager::TYPES[:person], href: TagManager.instance.uri_for(mentioned.account))
+ append_element(entry, 'link', nil, rel: :mentioned, 'ostatus:object-type': OStatus::TagManager::TYPES[:person], href: OStatus::TagManager.instance.uri_for(mentioned.account))
end
- append_element(entry, 'link', nil, rel: :mentioned, 'ostatus:object-type': TagManager::TYPES[:collection], href: TagManager::COLLECTIONS[:public]) if status.public_visibility?
+ append_element(entry, 'link', nil, rel: :mentioned, 'ostatus:object-type': OStatus::TagManager::TYPES[:collection], href: OStatus::TagManager::COLLECTIONS[:public]) if status.public_visibility?
status.tags.each do |tag|
append_element(entry, 'category', nil, term: tag.name)
diff --git a/app/lib/ostatus/tag_manager.rb b/app/lib/ostatus/tag_manager.rb
new file mode 100644
index 0000000000..4f45013126
--- /dev/null
+++ b/app/lib/ostatus/tag_manager.rb
@@ -0,0 +1,73 @@
+# frozen_string_literal: true
+
+class OStatus::TagManager
+ include Singleton
+ include RoutingHelper
+
+ VERBS = {
+ post: 'http://activitystrea.ms/schema/1.0/post',
+ share: 'http://activitystrea.ms/schema/1.0/share',
+ favorite: 'http://activitystrea.ms/schema/1.0/favorite',
+ unfavorite: 'http://activitystrea.ms/schema/1.0/unfavorite',
+ delete: 'http://activitystrea.ms/schema/1.0/delete',
+ follow: 'http://activitystrea.ms/schema/1.0/follow',
+ request_friend: 'http://activitystrea.ms/schema/1.0/request-friend',
+ authorize: 'http://activitystrea.ms/schema/1.0/authorize',
+ reject: 'http://activitystrea.ms/schema/1.0/reject',
+ unfollow: 'http://ostatus.org/schema/1.0/unfollow',
+ block: 'http://mastodon.social/schema/1.0/block',
+ unblock: 'http://mastodon.social/schema/1.0/unblock',
+ }.freeze
+
+ TYPES = {
+ activity: 'http://activitystrea.ms/schema/1.0/activity',
+ note: 'http://activitystrea.ms/schema/1.0/note',
+ comment: 'http://activitystrea.ms/schema/1.0/comment',
+ person: 'http://activitystrea.ms/schema/1.0/person',
+ collection: 'http://activitystrea.ms/schema/1.0/collection',
+ group: 'http://activitystrea.ms/schema/1.0/group',
+ }.freeze
+
+ COLLECTIONS = {
+ public: 'http://activityschema.org/collection/public',
+ }.freeze
+
+ XMLNS = 'http://www.w3.org/2005/Atom'
+ MEDIA_XMLNS = 'http://purl.org/syndication/atommedia'
+ AS_XMLNS = 'http://activitystrea.ms/spec/1.0/'
+ THR_XMLNS = 'http://purl.org/syndication/thread/1.0'
+ POCO_XMLNS = 'http://portablecontacts.net/spec/1.0'
+ DFRN_XMLNS = 'http://purl.org/macgirvin/dfrn/1.0'
+ OS_XMLNS = 'http://ostatus.org/schema/1.0'
+ MTDN_XMLNS = 'http://mastodon.social/schema/1.0'
+
+ def unique_tag(date, id, type)
+ "tag:#{Rails.configuration.x.local_domain},#{date.strftime('%Y-%m-%d')}:objectId=#{id}:objectType=#{type}"
+ end
+
+ def unique_tag_to_local_id(tag, expected_type)
+ return nil unless local_id?(tag)
+
+ if ActivityPub::TagManager.instance.local_uri?(tag)
+ ActivityPub::TagManager.instance.uri_to_local_id(tag)
+ else
+ matches = Regexp.new("objectId=([\\d]+):objectType=#{expected_type}").match(tag)
+ return matches[1] unless matches.nil?
+ end
+ end
+
+ def local_id?(id)
+ id.start_with?("tag:#{Rails.configuration.x.local_domain}") || ActivityPub::TagManager.instance.local_uri?(id)
+ end
+
+ def uri_for(target)
+ return target.uri if target.respond_to?(:local?) && !target.local?
+
+ case target.object_type
+ when :person
+ account_url(target)
+ when :note, :comment, :activity
+ target.uri || unique_tag(target.created_at, target.id, 'Status')
+ end
+ end
+end
diff --git a/app/lib/tag_manager.rb b/app/lib/tag_manager.rb
index 1d0a24e42e..fb364cb98a 100644
--- a/app/lib/tag_manager.rb
+++ b/app/lib/tag_manager.rb
@@ -6,62 +6,6 @@ class TagManager
include Singleton
include RoutingHelper
- VERBS = {
- post: 'http://activitystrea.ms/schema/1.0/post',
- share: 'http://activitystrea.ms/schema/1.0/share',
- favorite: 'http://activitystrea.ms/schema/1.0/favorite',
- unfavorite: 'http://activitystrea.ms/schema/1.0/unfavorite',
- delete: 'http://activitystrea.ms/schema/1.0/delete',
- follow: 'http://activitystrea.ms/schema/1.0/follow',
- request_friend: 'http://activitystrea.ms/schema/1.0/request-friend',
- authorize: 'http://activitystrea.ms/schema/1.0/authorize',
- reject: 'http://activitystrea.ms/schema/1.0/reject',
- unfollow: 'http://ostatus.org/schema/1.0/unfollow',
- block: 'http://mastodon.social/schema/1.0/block',
- unblock: 'http://mastodon.social/schema/1.0/unblock',
- }.freeze
-
- TYPES = {
- activity: 'http://activitystrea.ms/schema/1.0/activity',
- note: 'http://activitystrea.ms/schema/1.0/note',
- comment: 'http://activitystrea.ms/schema/1.0/comment',
- person: 'http://activitystrea.ms/schema/1.0/person',
- collection: 'http://activitystrea.ms/schema/1.0/collection',
- group: 'http://activitystrea.ms/schema/1.0/group',
- }.freeze
-
- COLLECTIONS = {
- public: 'http://activityschema.org/collection/public',
- }.freeze
-
- XMLNS = 'http://www.w3.org/2005/Atom'
- MEDIA_XMLNS = 'http://purl.org/syndication/atommedia'
- AS_XMLNS = 'http://activitystrea.ms/spec/1.0/'
- THR_XMLNS = 'http://purl.org/syndication/thread/1.0'
- POCO_XMLNS = 'http://portablecontacts.net/spec/1.0'
- DFRN_XMLNS = 'http://purl.org/macgirvin/dfrn/1.0'
- OS_XMLNS = 'http://ostatus.org/schema/1.0'
- MTDN_XMLNS = 'http://mastodon.social/schema/1.0'
-
- def unique_tag(date, id, type)
- "tag:#{Rails.configuration.x.local_domain},#{date.strftime('%Y-%m-%d')}:objectId=#{id}:objectType=#{type}"
- end
-
- def unique_tag_to_local_id(tag, expected_type)
- return nil unless local_id?(tag)
-
- if ActivityPub::TagManager.instance.local_uri?(tag)
- ActivityPub::TagManager.instance.uri_to_local_id(tag)
- else
- matches = Regexp.new("objectId=([\\d]+):objectType=#{expected_type}").match(tag)
- return matches[1] unless matches.nil?
- end
- end
-
- def local_id?(id)
- id.start_with?("tag:#{Rails.configuration.x.local_domain}") || ActivityPub::TagManager.instance.local_uri?(id)
- end
-
def web_domain?(domain)
domain.nil? || domain.gsub(/[\/]/, '').casecmp(Rails.configuration.x.web_domain).zero?
end
@@ -90,17 +34,6 @@ class TagManager
TagManager.instance.web_domain?(domain)
end
- def uri_for(target)
- return target.uri if target.respond_to?(:local?) && !target.local?
-
- case target.object_type
- when :person
- account_url(target)
- when :note, :comment, :activity
- target.uri || unique_tag(target.created_at, target.id, 'Status')
- end
- end
-
def url_for(target)
return target.url if target.respond_to?(:local?) && !target.local?
diff --git a/app/mailers/notification_mailer.rb b/app/mailers/notification_mailer.rb
index 12b92bf451..80c9d8ccfa 100644
--- a/app/mailers/notification_mailer.rb
+++ b/app/mailers/notification_mailer.rb
@@ -8,6 +8,7 @@ class NotificationMailer < ApplicationMailer
@status = notification.target_status
locale_for_account(@me) do
+ thread_by_conversation(@status.conversation)
mail to: @me.user.email, subject: I18n.t('notification_mailer.mention.subject', name: @status.account.acct)
end
end
@@ -27,6 +28,7 @@ class NotificationMailer < ApplicationMailer
@status = notification.target_status
locale_for_account(@me) do
+ thread_by_conversation(@status.conversation)
mail to: @me.user.email, subject: I18n.t('notification_mailer.favourite.subject', name: @account.acct)
end
end
@@ -37,6 +39,7 @@ class NotificationMailer < ApplicationMailer
@status = notification.target_status
locale_for_account(@me) do
+ thread_by_conversation(@status.conversation)
mail to: @me.user.email, subject: I18n.t('notification_mailer.reblog.subject', name: @account.acct)
end
end
@@ -67,4 +70,13 @@ class NotificationMailer < ApplicationMailer
)
end
end
+
+ private
+
+ def thread_by_conversation(conversation)
+ return if conversation.nil?
+ msg_id = ""
+ headers['In-Reply-To'] = msg_id
+ headers['References'] = msg_id
+ end
end
diff --git a/app/models/account.rb b/app/models/account.rb
index 1b996e3cc8..de7998db43 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -52,7 +52,6 @@ class Account < ApplicationRecord
include AccountInteractions
include Attachmentable
include Remotable
- include EmojiHelper
MAX_NOTE_LENGTH = 500
@@ -271,9 +270,6 @@ class Account < ApplicationRecord
def prepare_contents
display_name&.strip!
note&.strip!
-
- self.display_name = emojify(display_name)
- self.note = emojify(note)
end
def generate_keys
diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb
index f4d3b16a03..e80c581553 100644
--- a/app/models/custom_emoji.rb
+++ b/app/models/custom_emoji.rb
@@ -26,12 +26,18 @@ class CustomEmoji < ApplicationRecord
validates_attachment :image, content_type: { content_type: 'image/png' }, presence: true, size: { in: 0..50.kilobytes }
validates :shortcode, uniqueness: { scope: :domain }, format: { with: /\A#{SHORTCODE_RE_FRAGMENT}\z/ }, length: { minimum: 2 }
+ scope :local, -> { where(domain: nil) }
+
include Remotable
class << self
def from_text(text, domain)
return [] if text.blank?
- shortcodes = text.scan(SCAN_RE).map(&:first)
+
+ shortcodes = text.scan(SCAN_RE).map(&:first).uniq
+
+ return [] if shortcodes.empty?
+
where(shortcode: shortcodes, domain: domain)
end
end
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index d913e7372a..e4a974f968 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -25,6 +25,9 @@ class MediaAttachment < ApplicationRecord
enum type: [:image, :gifv, :video, :unknown]
+ IMAGE_FILE_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.gif'].freeze
+ VIDEO_FILE_EXTENSIONS = ['.webm', '.mp4', '.m4v'].freeze
+
IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif'].freeze
VIDEO_MIME_TYPES = ['video/webm', 'video/mp4'].freeze
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index b7efac354a..e2bf65d947 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -32,7 +32,7 @@ class PreviewCard < ApplicationRecord
has_and_belongs_to_many :statuses
- has_attached_file :image, styles: { original: '280x120>' }, convert_options: { all: '-quality 80 -strip' }
+ has_attached_file :image, styles: { original: '280x280>' }, convert_options: { all: '-quality 80 -strip' }
include Attachmentable
include Remotable
diff --git a/app/models/remote_profile.rb b/app/models/remote_profile.rb
index 93c7599309..613911c572 100644
--- a/app/models/remote_profile.rb
+++ b/app/models/remote_profile.rb
@@ -10,11 +10,11 @@ class RemoteProfile
end
def root
- @root ||= document.at_xpath('/atom:feed|/atom:entry', atom: TagManager::XMLNS)
+ @root ||= document.at_xpath('/atom:feed|/atom:entry', atom: OStatus::TagManager::XMLNS)
end
def author
- @author ||= root.at_xpath('./atom:author|./dfrn:owner', atom: TagManager::XMLNS, dfrn: TagManager::DFRN_XMLNS)
+ @author ||= root.at_xpath('./atom:author|./dfrn:owner', atom: OStatus::TagManager::XMLNS, dfrn: OStatus::TagManager::DFRN_XMLNS)
end
def hub_link
@@ -22,15 +22,15 @@ class RemoteProfile
end
def display_name
- @display_name ||= author.at_xpath('./poco:displayName', poco: TagManager::POCO_XMLNS)&.content
+ @display_name ||= author.at_xpath('./poco:displayName', poco: OStatus::TagManager::POCO_XMLNS)&.content
end
def note
- @note ||= author.at_xpath('./atom:summary|./poco:note', atom: TagManager::XMLNS, poco: TagManager::POCO_XMLNS)&.content
+ @note ||= author.at_xpath('./atom:summary|./poco:note', atom: OStatus::TagManager::XMLNS, poco: OStatus::TagManager::POCO_XMLNS)&.content
end
def scope
- @scope ||= author.at_xpath('./mastodon:scope', mastodon: TagManager::MTDN_XMLNS)&.content
+ @scope ||= author.at_xpath('./mastodon:scope', mastodon: OStatus::TagManager::MTDN_XMLNS)&.content
end
def avatar
@@ -48,6 +48,6 @@ class RemoteProfile
private
def link_href_from_xml(xml, type)
- xml.at_xpath(%(./atom:link[@rel="#{type}"]/@href), atom: TagManager::XMLNS)&.content
+ xml.at_xpath(%(./atom:link[@rel="#{type}"]/@href), atom: OStatus::TagManager::XMLNS)&.content
end
end
diff --git a/app/models/status.rb b/app/models/status.rb
index 326d128d6d..ea4c097bfc 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -30,7 +30,6 @@ class Status < ApplicationRecord
include Streamable
include Cacheable
include StatusThreadingConcern
- include EmojiHelper
enum visibility: [:public, :unlisted, :private, :direct], _suffix: :visibility
@@ -132,7 +131,7 @@ class Status < ApplicationRecord
end
def emojis
- CustomEmoji.from_text(text, account.domain)
+ CustomEmoji.from_text([spoiler_text, text].join(' '), account.domain)
end
after_create :store_uri, if: :local?
@@ -146,7 +145,7 @@ class Status < ApplicationRecord
class << self
def not_in_filtered_languages(account)
- where.not(language: account.filtered_languages)
+ where(language: nil).or where.not(language: account.filtered_languages)
end
def as_home_timeline(account)
@@ -267,9 +266,6 @@ class Status < ApplicationRecord
def prepare_contents
text&.strip!
spoiler_text&.strip!
-
- self.text = emojify(text)
- self.spoiler_text = emojify(spoiler_text)
end
def set_reblog
diff --git a/app/presenters/activitypub/collection_presenter.rb b/app/presenters/activitypub/collection_presenter.rb
index 631d87cd03..39657276f7 100644
--- a/app/presenters/activitypub/collection_presenter.rb
+++ b/app/presenters/activitypub/collection_presenter.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
class ActivityPub::CollectionPresenter < ActiveModelSerializers::Model
- attributes :id, :type, :size, :items
+ attributes :id, :type, :size, :items, :part_of, :first, :next, :prev
end
diff --git a/app/presenters/status_relationships_presenter.rb b/app/presenters/status_relationships_presenter.rb
index 10b4495048..bc3887a446 100644
--- a/app/presenters/status_relationships_presenter.rb
+++ b/app/presenters/status_relationships_presenter.rb
@@ -11,7 +11,7 @@ class StatusRelationshipsPresenter
@pins_map = {}
else
statuses = statuses.compact
- status_ids = statuses.flat_map { |s| [s.id, s.reblog_of_id] }.uniq
+ status_ids = statuses.flat_map { |s| [s.id, s.reblog_of_id] }.uniq.compact
conversation_ids = statuses.map(&:conversation_id).compact.uniq
pinnable_status_ids = statuses.map(&:proper).select { |s| s.account_id == current_account_id && %w(public unlisted).include?(s.visibility) }.map(&:id)
diff --git a/app/serializers/activitypub/collection_serializer.rb b/app/serializers/activitypub/collection_serializer.rb
index d01dead289..9832133fc0 100644
--- a/app/serializers/activitypub/collection_serializer.rb
+++ b/app/serializers/activitypub/collection_serializer.rb
@@ -3,23 +3,38 @@
class ActivityPub::CollectionSerializer < ActiveModel::Serializer
def self.serializer_for(model, options)
return ActivityPub::ActivitySerializer if model.class.name == 'Status'
+ return ActivityPub::CollectionSerializer if model.class.name == 'ActivityPub::CollectionPresenter'
super
end
attributes :id, :type, :total_items
+ attribute :next, if: -> { object.next.present? }
+ attribute :prev, if: -> { object.prev.present? }
+ attribute :part_of, if: -> { object.part_of.present? }
- has_many :items, key: :ordered_items
+ has_one :first, if: -> { object.first.present? }
+ has_many :items, key: :items, if: -> { (object.items.present? || page?) && !ordered? }
+ has_many :items, key: :ordered_items, if: -> { (object.items.present? || page?) && ordered? }
def type
- case object.type
- when :ordered
- 'OrderedCollection'
+ if page?
+ ordered? ? 'OrderedCollectionPage' : 'CollectionPage'
else
- 'Collection'
+ ordered? ? 'OrderedCollection' : 'Collection'
end
end
def total_items
object.size
end
+
+ private
+
+ def ordered?
+ object.type == :ordered
+ end
+
+ def page?
+ object.part_of.present?
+ end
end
diff --git a/app/serializers/activitypub/delete_serializer.rb b/app/serializers/activitypub/delete_serializer.rb
index 87a43b95dc..2bb65135f7 100644
--- a/app/serializers/activitypub/delete_serializer.rb
+++ b/app/serializers/activitypub/delete_serializer.rb
@@ -13,7 +13,7 @@ class ActivityPub::DeleteSerializer < ActiveModel::Serializer
end
def atom_uri
- ::TagManager.instance.uri_for(object)
+ OStatus::TagManager.instance.uri_for(object)
end
end
diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb
index e5d8e3f030..f94c3b9dc0 100644
--- a/app/serializers/activitypub/note_serializer.rb
+++ b/app/serializers/activitypub/note_serializer.rb
@@ -63,13 +63,13 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
def atom_uri
return unless object.local?
- ::TagManager.instance.uri_for(object)
+ OStatus::TagManager.instance.uri_for(object)
end
def in_reply_to_atom_uri
return unless object.reply? && !object.thread.nil?
- ::TagManager.instance.uri_for(object.thread)
+ OStatus::TagManager.instance.uri_for(object.thread)
end
def conversation
@@ -78,7 +78,7 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
if object.conversation.uri?
object.conversation.uri
else
- TagManager.instance.unique_tag(object.conversation.created_at, object.conversation.id, 'Conversation')
+ OStatus::TagManager.instance.unique_tag(object.conversation.created_at, object.conversation.id, 'Conversation')
end
end
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index 32ffcc6880..e2f15a6010 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -4,17 +4,23 @@ class InitialStateSerializer < ActiveModel::Serializer
attributes :meta, :compose, :accounts,
:media_attachments, :settings, :push_subscription
+ has_many :custom_emojis, serializer: REST::CustomEmojiSerializer
+
+ def custom_emojis
+ CustomEmoji.local
+ end
+
def meta
store = {
streaming_api_base_url: Rails.configuration.x.streaming_api_base_url,
access_token: object.token,
locale: I18n.locale,
domain: Rails.configuration.x.local_domain,
- admin: object.admin&.id,
+ admin: object.admin&.id&.to_s,
}
if object.current_account
- store[:me] = object.current_account.id
+ store[:me] = object.current_account.id.to_s
store[:unfollow_modal] = object.current_account.user.setting_unfollow_modal
store[:boost_modal] = object.current_account.user.setting_boost_modal
store[:delete_modal] = object.current_account.user.setting_delete_modal
@@ -28,7 +34,7 @@ class InitialStateSerializer < ActiveModel::Serializer
store = {}
if object.current_account
- store[:me] = object.current_account.id
+ store[:me] = object.current_account.id.to_s
store[:default_privacy] = object.current_account.user.setting_default_privacy
store[:default_sensitive] = object.current_account.user.setting_default_sensitive
end
@@ -40,12 +46,12 @@ class InitialStateSerializer < ActiveModel::Serializer
def accounts
store = {}
- store[object.current_account.id] = ActiveModelSerializers::SerializableResource.new(object.current_account, serializer: REST::AccountSerializer) if object.current_account
- store[object.admin.id] = ActiveModelSerializers::SerializableResource.new(object.admin, serializer: REST::AccountSerializer) if object.admin
+ store[object.current_account.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.current_account, serializer: REST::AccountSerializer) if object.current_account
+ store[object.admin.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.admin, serializer: REST::AccountSerializer) if object.admin
store
end
def media_attachments
- { accept_content_types: MediaAttachment::IMAGE_MIME_TYPES + MediaAttachment::VIDEO_MIME_TYPES }
+ { accept_content_types: MediaAttachment::IMAGE_FILE_EXTENSIONS + MediaAttachment::VIDEO_FILE_EXTENSIONS + MediaAttachment::IMAGE_MIME_TYPES + MediaAttachment::VIDEO_MIME_TYPES }
end
end
diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb
index 012a4fd18a..65fdb03081 100644
--- a/app/serializers/rest/account_serializer.rb
+++ b/app/serializers/rest/account_serializer.rb
@@ -7,6 +7,10 @@ class REST::AccountSerializer < ActiveModel::Serializer
:note, :url, :avatar, :avatar_static, :header, :header_static,
:followers_count, :following_count, :statuses_count
+ def id
+ object.id.to_s
+ end
+
def note
Formatter.instance.simplified_format(object)
end
diff --git a/app/serializers/rest/application_serializer.rb b/app/serializers/rest/application_serializer.rb
index 868a62f1e7..a8945f66ea 100644
--- a/app/serializers/rest/application_serializer.rb
+++ b/app/serializers/rest/application_serializer.rb
@@ -4,6 +4,10 @@ class REST::ApplicationSerializer < ActiveModel::Serializer
attributes :id, :name, :website, :redirect_uri,
:client_id, :client_secret
+ def id
+ object.id.to_s
+ end
+
def client_id
object.uid
end
diff --git a/app/serializers/rest/custom_emoji_serializer.rb b/app/serializers/rest/custom_emoji_serializer.rb
new file mode 100644
index 0000000000..b744dd4ec5
--- /dev/null
+++ b/app/serializers/rest/custom_emoji_serializer.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class REST::CustomEmojiSerializer < ActiveModel::Serializer
+ include RoutingHelper
+
+ attributes :shortcode, :url
+
+ def url
+ full_asset_url(object.image.url)
+ end
+end
diff --git a/app/serializers/rest/media_attachment_serializer.rb b/app/serializers/rest/media_attachment_serializer.rb
index 31189406a1..f6e7c79d1f 100644
--- a/app/serializers/rest/media_attachment_serializer.rb
+++ b/app/serializers/rest/media_attachment_serializer.rb
@@ -6,6 +6,10 @@ class REST::MediaAttachmentSerializer < ActiveModel::Serializer
attributes :id, :type, :url, :preview_url,
:remote_url, :text_url, :meta
+ def id
+ object.id.to_s
+ end
+
def url
if object.needs_redownload?
media_proxy_url(object.id, :original)
diff --git a/app/serializers/rest/notification_serializer.rb b/app/serializers/rest/notification_serializer.rb
index f95d099a31..541a6b8b5c 100644
--- a/app/serializers/rest/notification_serializer.rb
+++ b/app/serializers/rest/notification_serializer.rb
@@ -6,6 +6,10 @@ class REST::NotificationSerializer < ActiveModel::Serializer
belongs_to :from_account, key: :account, serializer: REST::AccountSerializer
belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer
+ def id
+ object.id.to_s
+ end
+
def status_type?
[:favourite, :reblog, :mention].include?(object.type)
end
diff --git a/app/serializers/rest/relationship_serializer.rb b/app/serializers/rest/relationship_serializer.rb
index 1d431aa1b6..998727e37a 100644
--- a/app/serializers/rest/relationship_serializer.rb
+++ b/app/serializers/rest/relationship_serializer.rb
@@ -4,6 +4,10 @@ class REST::RelationshipSerializer < ActiveModel::Serializer
attributes :id, :following, :followed_by, :blocking,
:muting, :requested, :domain_blocking
+ def id
+ object.id.to_s
+ end
+
def following
instance_options[:relationships].following[object.id] || false
end
diff --git a/app/serializers/rest/report_serializer.rb b/app/serializers/rest/report_serializer.rb
index 0c6bd65567..ecb88d653f 100644
--- a/app/serializers/rest/report_serializer.rb
+++ b/app/serializers/rest/report_serializer.rb
@@ -2,4 +2,8 @@
class REST::ReportSerializer < ActiveModel::Serializer
attributes :id, :action_taken
+
+ def id
+ object.id.to_s
+ end
end
diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb
index d8efa8e60b..e6270f9024 100644
--- a/app/serializers/rest/status_serializer.rb
+++ b/app/serializers/rest/status_serializer.rb
@@ -17,14 +17,26 @@ class REST::StatusSerializer < ActiveModel::Serializer
has_many :media_attachments, serializer: REST::MediaAttachmentSerializer
has_many :mentions
has_many :tags
- has_many :emojis
+ has_many :emojis, serializer: REST::CustomEmojiSerializer
+
+ def id
+ object.id.to_s
+ end
+
+ def in_reply_to_id
+ object.in_reply_to_id&.to_s
+ end
+
+ def in_reply_to_account_id
+ object.in_reply_to_account_id&.to_s
+ end
def current_user?
!current_user.nil?
end
def uri
- TagManager.instance.uri_for(object)
+ OStatus::TagManager.instance.uri_for(object)
end
def content
@@ -82,7 +94,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
attributes :id, :username, :url, :acct
def id
- object.account_id
+ object.account_id.to_s
end
def username
@@ -107,14 +119,4 @@ class REST::StatusSerializer < ActiveModel::Serializer
tag_url(object)
end
end
-
- class CustomEmojiSerializer < ActiveModel::Serializer
- include RoutingHelper
-
- attributes :shortcode, :url
-
- def url
- full_asset_url(object.image.url)
- end
- end
end
diff --git a/app/services/activitypub/process_collection_service.rb b/app/services/activitypub/process_collection_service.rb
index 0c6736a3fd..59cb65c65e 100644
--- a/app/services/activitypub/process_collection_service.rb
+++ b/app/services/activitypub/process_collection_service.rb
@@ -9,7 +9,7 @@ class ActivityPub::ProcessCollectionService < BaseService
return unless supported_context?
return if different_actor? && verify_account!.nil?
- return if @account.suspended?
+ return if @account.suspended? || @account.local?
case @json['type']
when 'Collection', 'CollectionPage'
diff --git a/app/services/batched_remove_status_service.rb b/app/services/batched_remove_status_service.rb
index 86eaa5735f..2fd623922f 100644
--- a/app/services/batched_remove_status_service.rb
+++ b/app/services/batched_remove_status_service.rb
@@ -18,7 +18,7 @@ class BatchedRemoveStatusService < BaseService
@stream_entry_batches = []
@salmon_batches = []
@activity_json_batches = []
- @json_payloads = statuses.map { |s| [s.id, Oj.dump(event: :delete, payload: s.id)] }.to_h
+ @json_payloads = statuses.map { |s| [s.id, Oj.dump(event: :delete, payload: s.id.to_s)] }.to_h
@activity_json = {}
@activity_xml = {}
@@ -84,6 +84,8 @@ class BatchedRemoveStatusService < BaseService
end
def unpush_from_public_timelines(status)
+ return unless status.public_visibility?
+
payload = @json_payloads[status.id]
redis.pipelined do
diff --git a/app/services/concerns/author_extractor.rb b/app/services/concerns/author_extractor.rb
index 867d6dc259..c2366188ab 100644
--- a/app/services/concerns/author_extractor.rb
+++ b/app/services/concerns/author_extractor.rb
@@ -5,12 +5,12 @@ module AuthorExtractor
return nil if xml.nil?
# Try for acct
- acct = xml.at_xpath('./xmlns:author/xmlns:email', xmlns: TagManager::XMLNS)&.content
+ acct = xml.at_xpath('./xmlns:author/xmlns:email', xmlns: OStatus::TagManager::XMLNS)&.content
# Try +
if acct.blank?
- username = xml.at_xpath('./xmlns:author/xmlns:name', xmlns: TagManager::XMLNS)&.content
- uri = xml.at_xpath('./xmlns:author/xmlns:uri', xmlns: TagManager::XMLNS)&.content
+ username = xml.at_xpath('./xmlns:author/xmlns:name', xmlns: OStatus::TagManager::XMLNS)&.content
+ uri = xml.at_xpath('./xmlns:author/xmlns:uri', xmlns: OStatus::TagManager::XMLNS)&.content
return nil if username.blank? || uri.blank?
diff --git a/app/services/fetch_remote_account_service.rb b/app/services/fetch_remote_account_service.rb
index 7c618a0b0c..bd98e70d1b 100644
--- a/app/services/fetch_remote_account_service.rb
+++ b/app/services/fetch_remote_account_service.rb
@@ -25,7 +25,7 @@ class FetchRemoteAccountService < BaseService
xml = Nokogiri::XML(body)
xml.encoding = 'utf-8'
- account = author_from_xml(xml.at_xpath('/xmlns:feed', xmlns: TagManager::XMLNS), false)
+ account = author_from_xml(xml.at_xpath('/xmlns:feed', xmlns: OStatus::TagManager::XMLNS), false)
UpdateRemoteProfileService.new.call(xml, account) unless account.nil?
diff --git a/app/services/fetch_remote_status_service.rb b/app/services/fetch_remote_status_service.rb
index 18af18059b..1b90854c4a 100644
--- a/app/services/fetch_remote_status_service.rb
+++ b/app/services/fetch_remote_status_service.rb
@@ -27,7 +27,7 @@ class FetchRemoteStatusService < BaseService
xml = Nokogiri::XML(body)
xml.encoding = 'utf-8'
- account = author_from_xml(xml.at_xpath('/xmlns:entry', xmlns: TagManager::XMLNS))
+ account = author_from_xml(xml.at_xpath('/xmlns:entry', xmlns: OStatus::TagManager::XMLNS))
domain = Addressable::URI.parse(url).normalized_host
return nil unless !account.nil? && confirmed_domain?(domain, account)
diff --git a/app/services/process_feed_service.rb b/app/services/process_feed_service.rb
index 31191a818f..2a5f1e2bc4 100644
--- a/app/services/process_feed_service.rb
+++ b/app/services/process_feed_service.rb
@@ -16,7 +16,7 @@ class ProcessFeedService < BaseService
end
def process_entries(xml, account)
- xml.xpath('//xmlns:entry', xmlns: TagManager::XMLNS).reverse_each.map { |entry| process_entry(entry, account) }.compact
+ xml.xpath('//xmlns:entry', xmlns: OStatus::TagManager::XMLNS).reverse_each.map { |entry| process_entry(entry, account) }.compact
end
def process_entry(xml, account)
diff --git a/app/services/process_interaction_service.rb b/app/services/process_interaction_service.rb
index d04e926e7d..1fca3832b7 100644
--- a/app/services/process_interaction_service.rb
+++ b/app/services/process_interaction_service.rb
@@ -13,7 +13,7 @@ class ProcessInteractionService < BaseService
xml = Nokogiri::XML(body)
xml.encoding = 'utf-8'
- account = author_from_xml(xml.at_xpath('/xmlns:entry', xmlns: TagManager::XMLNS))
+ account = author_from_xml(xml.at_xpath('/xmlns:entry', xmlns: OStatus::TagManager::XMLNS))
return if account.nil? || account.suspended?
@@ -54,13 +54,13 @@ class ProcessInteractionService < BaseService
private
def mentions_account?(xml, account)
- xml.xpath('/xmlns:entry/xmlns:link[@rel="mentioned"]', xmlns: TagManager::XMLNS).each { |mention_link| return true if [TagManager.instance.uri_for(account), TagManager.instance.url_for(account)].include?(mention_link.attribute('href').value) }
+ xml.xpath('/xmlns:entry/xmlns:link[@rel="mentioned"]', xmlns: OStatus::TagManager::XMLNS).each { |mention_link| return true if [OStatus::TagManager.instance.uri_for(account), OStatus::TagManager.instance.url_for(account)].include?(mention_link.attribute('href').value) }
false
end
def verb(xml)
- raw = xml.at_xpath('//activity:verb', activity: TagManager::AS_XMLNS).content
- TagManager::VERBS.key(raw)
+ raw = xml.at_xpath('//activity:verb', activity: OStatus::TagManager::AS_XMLNS).content
+ OStatus::TagManager::VERBS.key(raw)
rescue
:post
end
@@ -104,7 +104,7 @@ class ProcessInteractionService < BaseService
end
def delete_post!(xml, account)
- status = Status.find(xml.at_xpath('//xmlns:id', xmlns: TagManager::XMLNS).content)
+ status = Status.find(xml.at_xpath('//xmlns:id', xmlns: OStatus::TagManager::XMLNS).content)
return if status.nil?
@@ -137,12 +137,12 @@ class ProcessInteractionService < BaseService
def status(xml)
uri = activity_id(xml)
- return nil unless TagManager.instance.local_id?(uri)
- Status.find(TagManager.instance.unique_tag_to_local_id(uri, 'Status'))
+ return nil unless OStatus::TagManager.instance.local_id?(uri)
+ Status.find(OStatus::TagManager.instance.unique_tag_to_local_id(uri, 'Status'))
end
def activity_id(xml)
- xml.at_xpath('//activity:object', activity: TagManager::AS_XMLNS).at_xpath('./xmlns:id', xmlns: TagManager::XMLNS).content
+ xml.at_xpath('//activity:object', activity: OStatus::TagManager::AS_XMLNS).at_xpath('./xmlns:id', xmlns: OStatus::TagManager::XMLNS).content
end
def salmon
diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb
index f123bf8697..1c3eea3697 100644
--- a/app/services/process_mentions_service.rb
+++ b/app/services/process_mentions_service.rb
@@ -39,7 +39,7 @@ class ProcessMentionsService < BaseService
if mentioned_account.local?
NotifyService.new.call(mentioned_account, mention)
- elsif mentioned_account.ostatus? && (Rails.configuration.x.use_ostatus_privacy || !status.stream_entry.hidden?)
+ elsif mentioned_account.ostatus? && !status.stream_entry.hidden?
NotificationWorker.perform_async(stream_entry_to_xml(status.stream_entry), status.account_id, mentioned_account.id)
elsif mentioned_account.activitypub?
ActivityPub::DeliveryWorker.perform_async(build_json(mention.status), mention.status.account_id, mentioned_account.inbox_url)
diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb
index 83fc77043b..14f24908c8 100644
--- a/app/services/remove_status_service.rb
+++ b/app/services/remove_status_service.rb
@@ -4,7 +4,7 @@ class RemoveStatusService < BaseService
include StreamEntryRenderer
def call(status)
- @payload = Oj.dump(event: :delete, payload: status.id)
+ @payload = Oj.dump(event: :delete, payload: status.id.to_s)
@status = status
@account = status.account
@tags = status.tags.pluck(:name).to_a
@@ -14,6 +14,7 @@ class RemoveStatusService < BaseService
remove_from_self if status.account.local?
remove_from_followers
+ remove_from_affected
remove_reblogs
remove_from_hashtags
remove_from_public
@@ -38,6 +39,12 @@ class RemoveStatusService < BaseService
end
end
+ def remove_from_affected
+ @mentions.map(&:account).select(&:local?).each do |account|
+ Redis.current.publish("timeline:#{account.id}", @payload)
+ end
+ end
+
def remove_from_remote_affected
# People who got mentioned in the status, or who
# reblogged it from someone else might not follow
@@ -105,6 +112,8 @@ class RemoveStatusService < BaseService
end
def remove_from_hashtags
+ return unless @status.public_visibility?
+
@tags.each do |hashtag|
Redis.current.publish("timeline:hashtag:#{hashtag}", @payload)
Redis.current.publish("timeline:hashtag:#{hashtag}:local", @payload) if @status.local?
@@ -112,6 +121,8 @@ class RemoveStatusService < BaseService
end
def remove_from_public
+ return unless @status.public_visibility?
+
Redis.current.publish('timeline:public', @payload)
Redis.current.publish('timeline:public:local', @payload) if @status.local?
end
diff --git a/app/services/verify_salmon_service.rb b/app/services/verify_salmon_service.rb
index cd674837dc..205b35d8b1 100644
--- a/app/services/verify_salmon_service.rb
+++ b/app/services/verify_salmon_service.rb
@@ -9,7 +9,7 @@ class VerifySalmonService < BaseService
xml = Nokogiri::XML(body)
xml.encoding = 'utf-8'
- account = author_from_xml(xml.at_xpath('/xmlns:entry', xmlns: TagManager::XMLNS))
+ account = author_from_xml(xml.at_xpath('/xmlns:entry', xmlns: OStatus::TagManager::XMLNS))
if account.nil?
false
diff --git a/app/views/errors/500.html.haml b/app/views/errors/500.html.haml
new file mode 100644
index 0000000000..6244ff209f
--- /dev/null
+++ b/app/views/errors/500.html.haml
@@ -0,0 +1,5 @@
+- content_for :page_title do
+ = t('errors.500.title')
+
+- content_for :content do
+ = t('errors.500.content')
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index 6fd39c88ea..e6190f7e2a 100755
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -27,7 +27,6 @@
%link{ href: asset_pack_path('features/notifications.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
%link{ href: asset_pack_path('features/community_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
%link{ href: asset_pack_path('features/public_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
- %link{ href: asset_pack_path('emojione_picker.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
= csrf_meta_tags
diff --git a/app/views/layouts/error.html.haml b/app/views/layouts/error.html.haml
index 08b94af54a..31f3220964 100644
--- a/app/views/layouts/error.html.haml
+++ b/app/views/layouts/error.html.haml
@@ -3,34 +3,12 @@
%head
%meta{ content: 'text/html; charset=UTF-8', 'http-equiv' => 'Content-Type' }/
%meta{ charset: 'utf-8' }/
- %title= yield :page_title
+ %title= safe_join([yield(:page_title), title], ' - ')
%meta{ content: 'width=device-width,initial-scale=1', name: 'viewport' }/
- %link{ href: 'https://fonts.googleapis.com/css?family=Roboto:400', rel: 'stylesheet' }/
- :css
- body {
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
- background: #282c37;
- color: #9baec8;
- text-align: center;
- margin: 0;
- padding: 20px;
- }
-
- .dialog img {
- display: block;
- margin: 20px auto;
- margin-top: 50px;
- max-width: 600px;
- width: 100%;
- height: auto;
- }
-
- .dialog h1 {
- font: 20px/28px -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
- font-weight: 400;
- }
- %body
+ = stylesheet_pack_tag 'common', media: 'all'
+ = stylesheet_pack_tag Setting.default_settings['theme'], media: 'all'
+ %body.error
.dialog
- %img{ alt: 'Mastodon', src: '/oops.png' }/
+ %img{ alt: title, src: '/oops.gif' }/
%div
%h1= yield :content
diff --git a/app/views/stream_entries/_detailed_status.html.haml b/app/views/stream_entries/_detailed_status.html.haml
index 1d943a2ca9..4c85fef8b5 100644
--- a/app/views/stream_entries/_detailed_status.html.haml
+++ b/app/views/stream_entries/_detailed_status.html.haml
@@ -15,7 +15,7 @@
.status__content.p-name.emojify<
- if status.spoiler_text?
%p{ style: 'margin-bottom: 0' }<
- %span.p-summary> #{status.spoiler_text}
+ %span.p-summary> #{Formatter.instance.format_spoiler(status)}
%a.status__content__spoiler-link{ href: '#' }= t('statuses.show_more')
.e-content{ lang: status.language, style: "display: #{status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }<
= Formatter.instance.format(status)
diff --git a/app/views/stream_entries/_simple_status.html.haml b/app/views/stream_entries/_simple_status.html.haml
index b44f9820fb..88700543dd 100644
--- a/app/views/stream_entries/_simple_status.html.haml
+++ b/app/views/stream_entries/_simple_status.html.haml
@@ -16,7 +16,7 @@
.status__content.p-name.emojify<
- if status.spoiler_text?
%p{ style: 'margin-bottom: 0' }<
- %span.p-summary> #{status.spoiler_text}
+ %span.p-summary> #{Formatter.instance.format_spoiler(status)}
%a.status__content__spoiler-link{ href: '#' }= t('statuses.show_more')
.e-content{ lang: status.language, style: "display: #{status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }<
= Formatter.instance.format(status)
diff --git a/app/workers/activitypub/delivery_worker.rb b/app/workers/activitypub/delivery_worker.rb
index cd67b67108..a4e8293434 100644
--- a/app/workers/activitypub/delivery_worker.rb
+++ b/app/workers/activitypub/delivery_worker.rb
@@ -16,7 +16,7 @@ class ActivityPub::DeliveryWorker
raise Mastodon::UnexpectedResponseError, @response unless response_successful?
rescue => e
- raise e.class, "Delivery failed for #{inbox_url}: #{e.message}"
+ raise e.class, "Delivery failed for #{inbox_url}: #{e.message}", e.backtrace[0]
end
private
diff --git a/app/workers/pubsubhubbub/delivery_worker.rb b/app/workers/pubsubhubbub/delivery_worker.rb
index 88645cf338..110b8bf162 100644
--- a/app/workers/pubsubhubbub/delivery_worker.rb
+++ b/app/workers/pubsubhubbub/delivery_worker.rb
@@ -17,7 +17,7 @@ class Pubsubhubbub::DeliveryWorker
@payload = payload
process_delivery unless blocked_domain?
rescue => e
- raise e.class, "Delivery failed for #{subscription&.callback_url}: #{e.message}"
+ raise e.class, "Delivery failed for #{subscription&.callback_url}: #{e.message}", e.backtrace[0]
end
private
diff --git a/app/workers/pubsubhubbub/distribution_worker.rb b/app/workers/pubsubhubbub/distribution_worker.rb
index 524f6849fc..fed5e917d3 100644
--- a/app/workers/pubsubhubbub/distribution_worker.rb
+++ b/app/workers/pubsubhubbub/distribution_worker.rb
@@ -6,45 +6,27 @@ class Pubsubhubbub::DistributionWorker
sidekiq_options queue: 'push'
def perform(stream_entry_ids)
- stream_entries = StreamEntry.where(id: stream_entry_ids).includes(:status).reject { |e| e.status.nil? || e.status.direct_visibility? }
+ stream_entries = StreamEntry.where(id: stream_entry_ids).includes(:status).reject { |e| e.status.nil? || e.status.hidden? }
return if stream_entries.empty?
@account = stream_entries.first.account
@subscriptions = active_subscriptions.to_a
- distribute_public!(stream_entries.reject(&:hidden?))
- distribute_hidden!(stream_entries.select(&:hidden?)) if Rails.configuration.x.use_ostatus_privacy
+ distribute_public!(stream_entries)
end
private
def distribute_public!(stream_entries)
- return if stream_entries.empty?
-
@payload = OStatus::AtomSerializer.render(OStatus::AtomSerializer.new.feed(@account, stream_entries))
- Pubsubhubbub::DeliveryWorker.push_bulk(@subscriptions) do |subscription|
- [subscription.id, @payload]
- end
- end
-
- def distribute_hidden!(stream_entries)
- return if stream_entries.empty?
-
- @payload = OStatus::AtomSerializer.render(OStatus::AtomSerializer.new.feed(@account, stream_entries))
- @domains = @account.followers.domains
-
- Pubsubhubbub::DeliveryWorker.push_bulk(@subscriptions.select { |s| allowed_to_receive?(s.callback_url, s.domain) }) do |subscription|
- [subscription.id, @payload]
+ Pubsubhubbub::DeliveryWorker.push_bulk(@subscriptions) do |subscription_id|
+ [subscription_id, @payload]
end
end
def active_subscriptions
- Subscription.where(account: @account).active.select('id, callback_url, domain')
- end
-
- def allowed_to_receive?(callback_url, domain)
- (!domain.nil? && @domains.include?(domain)) || @domains.include?(Addressable::URI.parse(callback_url).host)
+ Subscription.where(account: @account).active.pluck(:id)
end
end
diff --git a/app/workers/pubsubhubbub/subscribe_worker.rb b/app/workers/pubsubhubbub/subscribe_worker.rb
index 7560c2671f..e350973e1e 100644
--- a/app/workers/pubsubhubbub/subscribe_worker.rb
+++ b/app/workers/pubsubhubbub/subscribe_worker.rb
@@ -29,6 +29,6 @@ class Pubsubhubbub::SubscribeWorker
logger.debug "PuSH re-subscribing to #{account.acct}"
::SubscribeService.new.call(account)
rescue => e
- raise e.class, "Subscribe failed for #{account&.acct}: #{e.message}"
+ raise e.class, "Subscribe failed for #{account&.acct}: #{e.message}", e.backtrace[0]
end
end
diff --git a/bin/webpack b/bin/webpack
index 867550eb8f..528233a784 100755
--- a/bin/webpack
+++ b/bin/webpack
@@ -2,7 +2,6 @@
$stdout.sync = true
require "shellwords"
-require "yaml"
ENV["RAILS_ENV"] ||= "development"
RAILS_ENV = ENV["RAILS_ENV"]
@@ -20,9 +19,9 @@ unless File.exist?(WEBPACK_CONFIG)
exit!
end
-newenv = { "NODE_PATH" => NODE_MODULES_PATH.shellescape }
-cmdline = ["yarn", "run", "webpack", "--", "--config", WEBPACK_CONFIG] + ARGV
+env = { "NODE_PATH" => NODE_MODULES_PATH.shellescape }
+cmd = [ "#{NODE_MODULES_PATH}/.bin/webpack", "--config", WEBPACK_CONFIG ] + ARGV
Dir.chdir(APP_PATH) do
- exec newenv, *cmdline
+ exec env, *cmd
end
diff --git a/bin/webpack-dev-server b/bin/webpack-dev-server
index 0beec31753..c9672f6633 100755
--- a/bin/webpack-dev-server
+++ b/bin/webpack-dev-server
@@ -3,6 +3,7 @@ $stdout.sync = true
require "shellwords"
require "yaml"
+require "socket"
ENV["RAILS_ENV"] ||= "development"
RAILS_ENV = ENV["RAILS_ENV"]
@@ -13,7 +14,9 @@ NODE_ENV = ENV["NODE_ENV"]
APP_PATH = File.expand_path("../", __dir__)
CONFIG_FILE = File.join(APP_PATH, "config/webpacker.yml")
NODE_MODULES_PATH = File.join(APP_PATH, "node_modules")
-WEBPACK_CONFIG = File.join(APP_PATH, "config/webpack/development.js")
+WEBPACK_CONFIG = File.join(APP_PATH, "config/webpack/#{NODE_ENV}.js")
+
+DEFAULT_LISTEN_HOST_ADDR = NODE_ENV == 'development' ? 'localhost' : '0.0.0.0'
def args(key)
index = ARGV.index(key)
@@ -21,23 +24,45 @@ def args(key)
end
begin
- dev_server = YAML.load_file(CONFIG_FILE)["development"]["dev_server"]
+ dev_server = YAML.load_file(CONFIG_FILE)[RAILS_ENV]["dev_server"]
- DEV_SERVER_HOST = "http#{"s" if args('--https') || dev_server["https"]}://#{dev_server["host"]}:#{args('--port') || dev_server["port"]}"
+ HOSTNAME = args('--host') || dev_server["host"]
+ PORT = args('--port') || dev_server["port"]
+ HTTPS = ARGV.include?('--https') || dev_server["https"]
+ DEV_SERVER_ADDR = "http#{"s" if HTTPS}://#{HOSTNAME}:#{PORT}"
+ LISTEN_HOST_ADDR = args('--listen-host') || DEFAULT_LISTEN_HOST_ADDR
rescue Errno::ENOENT, NoMethodError
- puts "Webpack dev_server configuration not found in #{CONFIG_FILE}."
- puts "Please run bundle exec rails webpacker:install to install webpacker"
+ $stdout.puts "Webpack dev_server configuration not found in #{CONFIG_FILE}."
+ $stdout.puts "Please run bundle exec rails webpacker:install to install webpacker"
+ exit!
+end
+
+begin
+ server = TCPServer.new(LISTEN_HOST_ADDR, PORT)
+ server.close
+
+rescue Errno::EADDRINUSE
+ $stdout.puts "Another program is running on port #{PORT}. Set a new port in #{CONFIG_FILE} for dev_server"
exit!
end
-newenv = {
- "NODE_PATH" => NODE_MODULES_PATH.shellescape,
- "ASSET_HOST" => DEV_SERVER_HOST.shellescape
-}.freeze
+# Delete supplied host, port and listen-host CLI arguments
+["--host", "--port", "--listen-host"].each do |arg|
+ ARGV.delete(args(arg))
+ ARGV.delete(arg)
+end
+
+env = { "NODE_PATH" => NODE_MODULES_PATH.shellescape }
-cmdline = ["yarn", "run", "webpack-dev-server", "--", "--progress", "--color", "--config", WEBPACK_CONFIG] + ARGV
+cmd = [
+ "#{NODE_MODULES_PATH}/.bin/webpack-dev-server", "--progress", "--color",
+ "--config", WEBPACK_CONFIG,
+ "--host", LISTEN_HOST_ADDR,
+ "--public", "#{HOSTNAME}:#{PORT}",
+ "--port", PORT.to_s
+] + ARGV
Dir.chdir(APP_PATH) do
- exec newenv, *cmdline
+ exec env, *cmd
end
diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml
index b51cf46df9..b35e5c09ae 100644
--- a/config/i18n-tasks.yml
+++ b/config/i18n-tasks.yml
@@ -45,6 +45,7 @@ ignore_missing:
- 'sessions.{browsers,platforms}.*'
- 'terms.body_html'
- 'application_mailer.salutation'
+ - 'errors.500'
ignore_unused:
- 'activemodel.errors.*'
- 'activerecord.attributes.*'
diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb
index 689e2ac4a5..074f8c410b 100644
--- a/config/initializers/doorkeeper.rb
+++ b/config/initializers/doorkeeper.rb
@@ -7,15 +7,14 @@ Doorkeeper.configure do
current_user || redirect_to(new_user_session_url)
end
- resource_owner_from_credentials do |routes|
- request.params[:user] = { email: request.params[:username], password: request.params[:password] }
- request.env["devise.allow_params_authentication"] = true
- request.env["warden"].authenticate!(scope: :user)
+ resource_owner_from_credentials do |_routes|
+ user = User.find_by(email: request.params[:username])
+ user if !user&.otp_required_for_login? && user&.valid_password?(request.params[:password])
end
# If you want to restrict access to the web interface for adding oauth authorized applications, you need to declare the block below.
admin_authenticator do
- (current_user && current_user.admin?) || redirect_to(new_user_session_url)
+ current_user&.admin? || redirect_to(new_user_session_url)
end
# Authorization Code expiration time (default 10 minutes).
diff --git a/config/initializers/ostatus.rb b/config/initializers/ostatus.rb
index c00aba0ded..ba96fda22c 100644
--- a/config/initializers/ostatus.rb
+++ b/config/initializers/ostatus.rb
@@ -18,7 +18,6 @@ Rails.application.configure do
config.action_mailer.default_url_options = { host: web_host, protocol: https ? 'https://' : 'http://', trailing_slash: false }
config.x.streaming_api_base_url = 'ws://localhost:4000'
- config.x.use_ostatus_privacy = true
if Rails.env.production?
config.x.streaming_api_base_url = ENV.fetch('STREAMING_API_BASE_URL') { "ws#{https ? 's' : ''}://#{web_host}" }
diff --git a/config/initializers/strong_migrations.rb b/config/initializers/strong_migrations.rb
new file mode 100644
index 0000000000..3d7beac9ff
--- /dev/null
+++ b/config/initializers/strong_migrations.rb
@@ -0,0 +1,3 @@
+# frozen_string_literal: true
+
+StrongMigrations.start_after = 20170924022025 if Rails.env.development?
diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml
index 2001abe965..aa333920e9 100644
--- a/config/locales/devise.ja.yml
+++ b/config/locales/devise.ja.yml
@@ -11,7 +11,7 @@ ja:
invalid: "%{authentication_keys}かパスワードが誤っています。"
last_attempt: あと1回失敗するとアカウントがロックされます。
locked: アカウントはロックされました。
- not_found_in_database: "%{authentication_keys}かパスワードが誤っています"
+ not_found_in_database: "%{authentication_keys}かパスワードが誤っています。"
timeout: セッションの有効期限が切れました。続行するには再度ログインしてください。
unauthenticated: 続行するにはログインするか、アカウントを作成してください。
unconfirmed: 続行するにはメールアドレスを確認する必要があります。
diff --git a/config/locales/doorkeeper.ja.yml b/config/locales/doorkeeper.ja.yml
index 0b670fda43..1f145eaa3e 100644
--- a/config/locales/doorkeeper.ja.yml
+++ b/config/locales/doorkeeper.ja.yml
@@ -25,14 +25,14 @@ ja:
edit: 編集
submit: 送信
confirmations:
- destroy: 本当に削除しますか?
+ destroy: 本当に削除しますか?
edit:
title: アプリの編集
form:
error: フォームにエラーが無いか確認してください。
help:
native_redirect_uri: ローカルテストに %{native_redirect_uri} を使用
- redirect_uri: 一行に一つのURLを入力してください
+ redirect_uri: 一行に一つのURLを入力してください。
scopes: アクセス権は半角スペースで区切ることができます。 空白のままにするとデフォルトを使用します。
index:
application: アプリ
diff --git a/config/locales/doorkeeper.oc.yml b/config/locales/doorkeeper.oc.yml
index 6069b77adb..1ec1b69e82 100644
--- a/config/locales/doorkeeper.oc.yml
+++ b/config/locales/doorkeeper.oc.yml
@@ -6,7 +6,7 @@ oc:
name: Nom
redirect_uri: URL de redireccion
scopes: Encastres
- website: Aplicacion web
+ website: Site de l’aplicacion
errors:
models:
doorkeeper/application:
@@ -63,7 +63,7 @@ oc:
prompt: L’aplicacion %{client_name} demanda l’accès al vòstre compte.
title: Cal l’autorizacion
show:
- title: Copy this authorization code and paste it to the application.
+ title: Copiatz lo còdi d’autorizacion e pegatz-lo dins l’aplicacion.
authorized_applications:
buttons:
revoke: Revocar
diff --git a/config/locales/doorkeeper.pl.yml b/config/locales/doorkeeper.pl.yml
index 824a6be90e..fa4324e4de 100644
--- a/config/locales/doorkeeper.pl.yml
+++ b/config/locales/doorkeeper.pl.yml
@@ -63,7 +63,7 @@ pl:
prompt: Aplikacja %{client_name} prosi o dostęp do Twojego konta
title: Wymagana jest autoryzacja
show:
- title: Copy this authorization code and paste it to the application.
+ title: Skopiuj kod uwierzytelniający i wklej go w aplikacji.
authorized_applications:
buttons:
revoke: Unieważnij
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 9013f0ac9f..f87d8532c5 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -310,6 +310,9 @@ en:
content: Security verification failed. Are you blocking cookies?
title: Security verification failed
'429': Throttled
+ '500':
+ content: We're sorry, but something went wrong on our end.
+ title: This page is not correct
noscript_html: To use the Mastodon web application, please enable JavaScript. Alternatively, try one of the native apps for Mastodon for your platform.
exports:
blocks: You block
@@ -552,6 +555,8 @@ en:
Originally adapted from the Discourse privacy policy.
title: "%{instance} Terms of Service and Privacy Policy"
+ themes:
+ default: Mastodon
time:
formats:
default: "%b %d, %Y, %H:%M"
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index f7170f6a39..5ffc09ab98 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -50,7 +50,7 @@ ja:
unfollow: フォロー解除
admin:
accounts:
- are_you_sure: 本当に実行しますか?
+ are_you_sure: 本当に実行しますか?
confirm: 確認
confirmed: 確認済み
disable_two_factor_authentication: 二段階認証を無効にする
@@ -108,6 +108,18 @@ ja:
unsubscribe: 購読の解除
username: ユーザー名
web: Web
+ custom_emojis:
+ created_msg: 絵文字の追加に成功しました
+ delete: 削除
+ destroyed_msg: 絵文字の削除に成功しました
+ emoji: 絵文字
+ image_hint: 50KBまでのPNG画像を利用できます。
+ new:
+ title: 新規カスタム絵文字の追加
+ shortcode: ショートコード
+ shortcode_hint: 2文字以上の半角英数字とアンダーバーのみ利用できます。
+ title: カスタム絵文字
+ upload: アップロード
domain_blocks:
add_new: 新規追加
created_msg: ドメインブロック処理を完了しました
@@ -179,7 +191,7 @@ ja:
username: 連絡先のユーザー名
registrations:
closed_message:
- desc_html: 新規登録を停止しているときにフロントページに表示されます。HTMLタグが使えます
+ desc_html: 新規登録を停止しているときにフロントページに表示されます。HTMLタグが使えます。
title: 新規登録停止時のメッセージ
deletion:
desc_html: 誰でも自分のアカウントを削除できるようにします
@@ -191,10 +203,10 @@ ja:
desc_html: フロントページへの表示と meta タグに使用される紹介文です。HTMLタグ、特に<a>
と <em>
が使えます。
title: インスタンスの説明
site_description_extended:
- desc_html: あなたのインスタンスにおける行動規範やルール、ガイドライン、そのほかの記述をする際に最適な場所です。HTMLタグが使えます
+ desc_html: あなたのインスタンスにおける行動規範やルール、ガイドライン、そのほかの記述をする際に最適な場所です。HTMLタグが使えます。
title: カスタム詳細説明
site_terms:
- desc_html: あなたは独自のプライバシーポリシーや利用規約、そのほかの法的根拠を書くことができます。HTMLタグが使えます
+ desc_html: あなたは独自のプライバシーポリシーや利用規約、そのほかの法的根拠を書くことができます。HTMLタグが使えます。
title: カスタム利用規約
site_title: インスタンスの名前
thumbnail:
@@ -261,7 +273,7 @@ ja:
error: 残念ながら、リモートアカウント情報の取得中にエラーが発生しました。
follow: フォロー
follow_request: 'あなたは以下のアカウントにフォローリクエストを送信しました:'
- following: '成功! あなたは現在以下のアカウントをフォローしています:'
+ following: '成功! あなたは現在以下のアカウントをフォローしています:'
post_follow:
close: またはこのウィンドウを閉じます
return: ユーザーのプロフィールに戻る
@@ -290,7 +302,7 @@ ja:
warning_html: 削除が保証されるのはこのインスタンス上のコンテンツのみです。他のインスタンス等、外部に広く共有されたコンテンツについては痕跡が残ることがあります。また、現在接続できないサーバーや、あなたの更新を受け取らなくなったサーバーに対しては、削除は反映されません。
warning_title: 共有されたコンテンツについて
errors:
- '403': このページを表示する権限がありません
+ '403': このページを表示する権限がありません。
'404': お探しのページは見つかりませんでした。
'410': お探しのページはもう存在しません。
'422':
@@ -321,11 +333,11 @@ ja:
powered_by: powered by %{link}
save_changes: 変更を保存
validation_errors:
- one: エラーが発生しました。以下のエラーを確認してください
- other: エラーが発生しました。以下の%{count}個のエラーを確認してください
+ one: エラーが発生しました。以下のエラーを確認してください。
+ other: エラーが発生しました。以下の%{count}個のエラーを確認してください。
imports:
preface: 他のインスタンスでエクスポートされたファイルから、フォロー/ブロックした情報をこのインスタンス上のアカウントにインポートできます。
- success: ファイルは正常にアップロードされ、現在処理中です。しばらくしてから確認してください
+ success: ファイルは正常にアップロードされ、現在処理中です。しばらくしてから確認してください。
types:
blocking: ブロックしたアカウントリスト
following: フォロー中のアカウントリスト
@@ -354,7 +366,7 @@ ja:
body: "%{name} さんにフォローされています"
subject: "%{name} さんにフォローされています"
follow_request:
- body: "%{name} さんがあなたにフォローをリクエストしました。"
+ body: "%{name} さんがあなたにフォローをリクエストしました"
subject: "%{name} さんからのフォローリクエスト"
mention:
body: "%{name} さんから返信がありました:"
@@ -539,11 +551,13 @@ ja:
オリジナルの出典 Discourse privacy policy.
title: "%{instance} 利用規約・プライバシーポリシー"
+ themes:
+ default: Mastodon
time:
formats:
default: "%Y年%m月%d日 %H:%M"
two_factor_authentication:
- code_hint: 確認するには認証アプリで表示されたコードを入力してください
+ code_hint: 確認するには認証アプリで表示されたコードを入力してください。
description_html: "二段階認証を有効にするとログイン時、電話でコードを受け取る必要があります。"
disable: 無効
enable: 有効
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 5d9506132d..584f4c6094 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -60,6 +60,7 @@ oc:
email: Corrièl
feed_url: Flux URL
followers: Seguidors
+ followers_url: URL dels seguidors
follows: Abonaments
inbox_url: URL de recepcion
ip: IP
@@ -92,6 +93,7 @@ oc:
reset_password: Reïnicializar lo senhal
resubscribe: Se tornar abonar
salmon_url: URL Salmon
+ shared_inbox_url: URL de recepcion partejada
search: Cercar
show:
created_reports: Rapòrts creat per aqueste compte
@@ -106,6 +108,18 @@ oc:
unsubscribe: Se desabonar
username: Nom d’utilizaire
web: Web
+ custom_emojis:
+ created_msg: Emoji ben creat !
+ delete: Suprimir
+ destroyed_msg: Emojo ben suprimit !
+ emoji: Emoji
+ image_hint: PNG cap a 50Ko
+ new:
+ title: Ajustar un nòu emoji personal
+ shortcode: Acorchi
+ shortcode_hint: Almens 2 caractèrs, solament alfanumerics e jonhent bas
+ title: Emojis personals
+ upload: Enviar
domain_blocks:
add_new: N’ajustar un nòu
created_msg: Domeni blocat es a èsser tractat
@@ -141,6 +155,8 @@ oc:
instances:
account_count: Comptes coneguts
domain_name: Domeni
+ reset: Reïnicializar
+ search: Cercar
title: Instàncias conegudas
reports:
action_taken_by: Mesura menada per
@@ -167,6 +183,9 @@ oc:
unresolved: Pas resolguts
view: Veire
settings:
+ bootstrap_timeline_accounts:
+ desc_html: Separatz los noms d’utilizaire amb de virgula. Pas que los comptes locals e pas clavats foncionaràn. Se lo camp es void los admins seràn selecionats.
+ title: Per defaut los nouvenguts sègon
contact_information:
email: Picatz una adreça de corrièl
username: Picatz un nom d’utilizaire
@@ -190,6 +209,9 @@ oc:
desc_html: Afichada sus la pagina de las condicions d’utilizacion
Podètz utilizar de balisas HTML
title: Politica de confidencialitat del site
site_title: Títol del site
+ thumbnail:
+ desc_html: Servís pels apercebuts via OpenGraph e las API. Talha de 1200x630px recomandada.
+ title: Miniatura de l’instància
timeline_preview:
desc_html: Mostrar lo flux public sus la pagina d’acuèlh
title: Apercebut flux public
@@ -521,6 +543,7 @@ oc:
open_in_web: Dobrir sul web
over_character_limit: limit de %{max} caractèrs passat
pin_errors:
+ limit: Tròp de tuts penjats
ownership: Se pòt pas penjar lo tut de qualqu’un mai
private: Se pòt pas penjar los tuts pas publics
reblog: Se pòt pas penjar un tut partejat
@@ -607,6 +630,8 @@ oc:
Prima adaptacion de la politica de confidencialitat de Discourse.
title: Condicions d’utilizacion e politica de confidencialitat de %{instance}
+ themes:
+ default: Mastodon
time:
formats:
default: Lo %d %b de %Y a %Ho%M
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 4dbbd7cb17..9bf57e38b0 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -62,6 +62,7 @@ pl:
followers: Śledzący
followers_url: Adres śledzących
follows: Śledzeni
+ inbox: Adres skrzynki
ip: Adres IP
location:
all: Wszystkie
@@ -105,6 +106,18 @@ pl:
unsubscribe: Przestań subskrybować
username: Nazwa użytkownika
web: Sieć
+ custom_emojis:
+ created_msg: Pomyślnie utworzono emoji!
+ delete: Usuń
+ destroyed_msg: Pomyślnie usunięto emoji!
+ emoji: Emoji
+ image_hint: Plik PNG ważący do 50KB
+ new:
+ title: Dodaj nowe niestandardowe emoji
+ shortcode: Shortcode
+ shortcode_hint: Co najmniej 2 znaki, tylko znaki alfanumeryczne i podkreślniki
+ title: Niestandardowe emoji
+ upload: Wyślij
domain_blocks:
add_new: Dodaj nową
created_msg: Blokada domen jest przetwarzana
@@ -294,6 +307,9 @@ pl:
content: Sprawdzanie bezpieczeństwa nie powiodło się. Czy blokujesz pliki cookie?
title: Sprawdzanie bezpieczeństwa nie powiodło się
'429': Uduszono
+ '500':
+ content: Przepraszamy, coś poszło nie tak…
+ title: Ta strona jest nieprawidłowa
noscript_html: Aby korzystać z aplikacji Mastodon, włącz JavaScript. Możesz też skorzystać z jednej z natywnych aplikacji obsługującej Twoje urządzenie.
exports:
blocks: Zablokowani
@@ -540,6 +556,8 @@ pl:
Tekst bazuje na polityce prywatności Discourse.
title: Zasady korzystania i polityka prywatności %{instance}
+ themes:
+ default: Mastodon
time:
formats:
default: "%b %d, %Y, %H:%M"
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index 70389e9482..17b35ba8f2 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -6,11 +6,12 @@ ja:
avatar: 2MBまでのPNGやGIF、JPGが利用可能です。120x120pxまで縮小されます。
display_name: あと%{count}文字入力できます。
header: 2MBまでのPNGやGIF、JPGが利用可能です。 700x335pxまで縮小されます。
- locked: フォロワーを手動で承認する必要があります。
+ locked: フォロワーを手動で承認する必要があります
note: あと%{count}文字入力できます。
setting_noindex: 公開プロフィールおよび各投稿ページに影響します
+ setting_theme: ログインしている全てのデバイスで適用されるデザインです。
imports:
- data: 他の Mastodon インスタンスからエクスポートしたCSVファイルを選択して下さい
+ data: 他の Mastodon インスタンスからエクスポートしたCSVファイルを選択して下さい。
sessions:
otp: 携帯電話に表示された2段階認証コードを入力するか、生成したリカバリーコードを使用してください。
user:
@@ -39,6 +40,7 @@ ja:
setting_delete_modal: トゥートを削除する前に確認ダイアログを表示する
setting_noindex: 検索エンジンによるインデックスを拒否する
setting_system_font_ui: システムのデフォルトフォントを使う
+ setting_theme: サイトテーマ
setting_unfollow_modal: フォロー解除する前に確認ダイアログを表示する
severity: 重大性
type: インポートする項目
diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml
index 442a7d4b66..d45f98e66b 100644
--- a/config/locales/simple_form.oc.yml
+++ b/config/locales/simple_form.oc.yml
@@ -13,6 +13,7 @@ oc:
one: Demòra encara 1 caractèr
other: Demòran encara %{count} caractèrs
setting_noindex: Aquò es destinat a vòstre perfil public e vòstra pagina d’estatuts
+ setting_theme: Aquò càmbia lo tèma grafic de Mastodon quand sètz connectat qualque siaque lo periferic.
imports:
data: Fichièr CSV exportat d’una autra instància Mastodon
sessions:
@@ -43,6 +44,7 @@ oc:
setting_delete_modal: Afichar una fenèstra de confirmacion abans de suprimir un estatut
setting_noindex: Èsser pas indexat pels motors de recèrca
setting_system_font_ui: Utilizar la policia Font del sisèma
+ setting_theme: Tèma del site
setting_unfollow_modal: Afichar una confirmacion abans de quitar de sègre qualqu’un
severity: Severitat
type: Tip d’impòrt
diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml
index e2eba3dd8a..d5de2dcd36 100644
--- a/config/locales/simple_form.pl.yml
+++ b/config/locales/simple_form.pl.yml
@@ -17,6 +17,7 @@ pl:
one: Pozostał 1 znak.
other: Pozostało %{count} znaków
setting_noindex: Wpływa na widoczność strony profilu i Twoich wpisów
+ setting_theme: Zmienia wygląd Mastodona po zalogowaniu z dowolnego urządzenia.
imports:
data: Plik CSV wyeksportowany z innej instancji Mastodona
sessions:
@@ -47,6 +48,7 @@ pl:
setting_delete_modal: Pytaj o potwierdzenie przed usunięciem wpisu
setting_noindex: Nie indeksuj mojego profilu w wyszukiwarkach internetowych
setting_system_font_ui: Używaj domyślnej czcionki systemu
+ setting_theme: Motyw strony
setting_unfollow_modal: Pytaj o potwierdzenie przed cofnięciem śledzenia
severity: Priorytet
type: Typ importu
diff --git a/config/routes.rb b/config/routes.rb
index ce7a884f9a..2c41c24e94 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -188,6 +188,7 @@ Rails.application.routes.draw do
end
resources :streaming, only: [:index]
+ resources :custom_emojis, only: [:index]
get '/search', to: 'search#index', as: :search
diff --git a/config/webpacker.yml b/config/webpacker.yml
index aa429a1dda..8d8470651a 100644
--- a/config/webpacker.yml
+++ b/config/webpacker.yml
@@ -4,6 +4,15 @@ default: &default
source_path: app/javascript
source_entry_path: packs
public_output_path: packs
+ cache_path: tmp/cache/webpacker
+
+ # Additional paths webpack should lookup modules
+ # ['app/assets', 'engine/foo/app/assets']
+ resolved_paths: []
+
+ # Reload manifest.json on all requests so we reload latest compiled packs
+ cache_manifest: false
+
extensions:
- .js
- .sass
@@ -17,16 +26,25 @@ default: &default
development:
<<: *default
+ compile: true
dev_server:
- host: 127.0.0.1
- port: 8080
+ host: localhost
+ port: 3035
+ hmr: false
https: false
test:
<<: *default
+ # Compile test packs to a separate directory
public_output_path: packs-test
production:
<<: *default
+
+ # Production depends on precompilation of packs prior to booting for performance.
+ compile: false
+
+ # Cache manifest.json for performance
+ cache_manifest: true
diff --git a/db/migrate/20170918125918_ids_to_bigints.rb b/db/migrate/20170918125918_ids_to_bigints.rb
new file mode 100644
index 0000000000..7483dd77a4
--- /dev/null
+++ b/db/migrate/20170918125918_ids_to_bigints.rb
@@ -0,0 +1,127 @@
+class IdsToBigints < ActiveRecord::Migration[5.1]
+ def up
+ change_column :account_domain_blocks, :account_id, :bigint
+ change_column :account_domain_blocks, :id, :bigint
+ change_column :accounts, :id, :bigint
+ change_column :blocks, :account_id, :bigint
+ change_column :blocks, :id, :bigint
+ change_column :blocks, :target_account_id, :bigint
+ change_column :conversation_mutes, :account_id, :bigint
+ change_column :conversation_mutes, :id, :bigint
+ change_column :deprecated_preview_cards, :id, :bigint if table_exists?(:deprecated_preview_cards)
+ change_column :domain_blocks, :id, :bigint
+ change_column :favourites, :account_id, :bigint
+ change_column :favourites, :id, :bigint
+ change_column :favourites, :status_id, :bigint
+ change_column :follow_requests, :account_id, :bigint
+ change_column :follow_requests, :id, :bigint
+ change_column :follow_requests, :target_account_id, :bigint
+ change_column :follows, :account_id, :bigint
+ change_column :follows, :id, :bigint
+ change_column :follows, :target_account_id, :bigint
+ change_column :imports, :account_id, :bigint
+ change_column :imports, :id, :bigint
+ change_column :media_attachments, :account_id, :bigint
+ change_column :media_attachments, :id, :bigint
+ change_column :mentions, :account_id, :bigint
+ change_column :mentions, :id, :bigint
+ change_column :mutes, :account_id, :bigint
+ change_column :mutes, :id, :bigint
+ change_column :mutes, :target_account_id, :bigint
+ change_column :notifications, :account_id, :bigint
+ change_column :notifications, :from_account_id, :bigint
+ change_column :notifications, :id, :bigint
+ change_column :oauth_access_grants, :application_id, :bigint
+ change_column :oauth_access_grants, :id, :bigint
+ change_column :oauth_access_grants, :resource_owner_id, :bigint
+ change_column :oauth_access_tokens, :application_id, :bigint
+ change_column :oauth_access_tokens, :id, :bigint
+ change_column :oauth_access_tokens, :resource_owner_id, :bigint
+ change_column :oauth_applications, :id, :bigint
+ change_column :oauth_applications, :owner_id, :bigint
+ change_column :reports, :account_id, :bigint
+ change_column :reports, :action_taken_by_account_id, :bigint
+ change_column :reports, :id, :bigint
+ change_column :reports, :target_account_id, :bigint
+ change_column :session_activations, :access_token_id, :bigint
+ change_column :session_activations, :user_id, :bigint
+ change_column :session_activations, :web_push_subscription_id, :bigint
+ change_column :settings, :id, :bigint
+ change_column :settings, :thing_id, :bigint
+ change_column :statuses, :account_id, :bigint
+ change_column :statuses, :application_id, :bigint
+ change_column :statuses, :in_reply_to_account_id, :bigint
+ change_column :stream_entries, :account_id, :bigint
+ change_column :stream_entries, :id, :bigint
+ change_column :subscriptions, :account_id, :bigint
+ change_column :subscriptions, :id, :bigint
+ change_column :tags, :id, :bigint
+ change_column :users, :account_id, :bigint
+ change_column :users, :id, :bigint
+ change_column :web_settings, :id, :bigint
+ change_column :web_settings, :user_id, :bigint
+ end
+
+ def down
+ change_column :account_domain_blocks, :account_id, :integer
+ change_column :account_domain_blocks, :id, :integer
+ change_column :accounts, :id, :integer
+ change_column :blocks, :account_id, :integer
+ change_column :blocks, :id, :integer
+ change_column :blocks, :target_account_id, :integer
+ change_column :conversation_mutes, :account_id, :integer
+ change_column :conversation_mutes, :id, :integer
+ change_column :deprecated_preview_cards, :id, :integer if table_exists?(:deprecated_preview_cards)
+ change_column :domain_blocks, :id, :integer
+ change_column :favourites, :account_id, :integer
+ change_column :favourites, :id, :integer
+ change_column :favourites, :status_id, :integer
+ change_column :follow_requests, :account_id, :integer
+ change_column :follow_requests, :id, :integer
+ change_column :follow_requests, :target_account_id, :integer
+ change_column :follows, :account_id, :integer
+ change_column :follows, :id, :integer
+ change_column :follows, :target_account_id, :integer
+ change_column :imports, :account_id, :integer
+ change_column :imports, :id, :integer
+ change_column :media_attachments, :account_id, :integer
+ change_column :media_attachments, :id, :integer
+ change_column :mentions, :account_id, :integer
+ change_column :mentions, :id, :integer
+ change_column :mutes, :account_id, :integer
+ change_column :mutes, :id, :integer
+ change_column :mutes, :target_account_id, :integer
+ change_column :notifications, :account_id, :integer
+ change_column :notifications, :from_account_id, :integer
+ change_column :notifications, :id, :integer
+ change_column :oauth_access_grants, :application_id, :integer
+ change_column :oauth_access_grants, :id, :integer
+ change_column :oauth_access_grants, :resource_owner_id, :integer
+ change_column :oauth_access_tokens, :application_id, :integer
+ change_column :oauth_access_tokens, :id, :integer
+ change_column :oauth_access_tokens, :resource_owner_id, :integer
+ change_column :oauth_applications, :id, :integer
+ change_column :oauth_applications, :owner_id, :integer
+ change_column :reports, :account_id, :integer
+ change_column :reports, :action_taken_by_account_id, :integer
+ change_column :reports, :id, :integer
+ change_column :reports, :target_account_id, :integer
+ change_column :session_activations, :access_token_id, :integer
+ change_column :session_activations, :user_id, :integer
+ change_column :session_activations, :web_push_subscription_id, :integer
+ change_column :settings, :id, :integer
+ change_column :settings, :thing_id, :integer
+ change_column :statuses, :account_id, :integer
+ change_column :statuses, :application_id, :integer
+ change_column :statuses, :in_reply_to_account_id, :integer
+ change_column :stream_entries, :account_id, :integer
+ change_column :stream_entries, :id, :integer
+ change_column :subscriptions, :account_id, :integer
+ change_column :subscriptions, :id, :integer
+ change_column :tags, :id, :integer
+ change_column :users, :account_id, :integer
+ change_column :users, :id, :integer
+ change_column :web_settings, :id, :integer
+ change_column :web_settings, :user_id, :integer
+ end
+end
diff --git a/db/migrate/20170924022025_ids_to_bigints2.rb b/db/migrate/20170924022025_ids_to_bigints2.rb
new file mode 100644
index 0000000000..db8ccd919a
--- /dev/null
+++ b/db/migrate/20170924022025_ids_to_bigints2.rb
@@ -0,0 +1,9 @@
+class IdsToBigints2 < ActiveRecord::Migration[5.1]
+ def up
+ change_column :statuses_tags, :tag_id, :bigint
+ end
+
+ def down
+ change_column :statuses_tags, :tag_id, :integer
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index b72f8f1a10..6b73ebb943 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,20 +10,20 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20170917153509) do
+ActiveRecord::Schema.define(version: 20170924022025) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
- create_table "account_domain_blocks", id: :serial, force: :cascade do |t|
- t.integer "account_id"
+ create_table "account_domain_blocks", force: :cascade do |t|
+ t.bigint "account_id"
t.string "domain"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["account_id", "domain"], name: "index_account_domain_blocks_on_account_id_and_domain", unique: true
end
- create_table "accounts", id: :serial, force: :cascade do |t|
+ create_table "accounts", force: :cascade do |t|
t.string "username", default: "", null: false
t.string "domain"
t.string "secret", default: "", null: false
@@ -68,16 +68,16 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["username", "domain"], name: "index_accounts_on_username_and_domain", unique: true
end
- create_table "blocks", id: :serial, force: :cascade do |t|
- t.integer "account_id", null: false
- t.integer "target_account_id", null: false
+ create_table "blocks", force: :cascade do |t|
+ t.bigint "account_id", null: false
+ t.bigint "target_account_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["account_id", "target_account_id"], name: "index_blocks_on_account_id_and_target_account_id", unique: true
end
- create_table "conversation_mutes", id: :serial, force: :cascade do |t|
- t.integer "account_id", null: false
+ create_table "conversation_mutes", force: :cascade do |t|
+ t.bigint "account_id", null: false
t.bigint "conversation_id", null: false
t.index ["account_id", "conversation_id"], name: "index_conversation_mutes_on_account_id_and_conversation_id", unique: true
end
@@ -101,7 +101,7 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["shortcode", "domain"], name: "index_custom_emojis_on_shortcode_and_domain", unique: true
end
- create_table "domain_blocks", id: :serial, force: :cascade do |t|
+ create_table "domain_blocks", force: :cascade do |t|
t.string "domain", default: "", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
@@ -110,9 +110,9 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["domain"], name: "index_domain_blocks_on_domain", unique: true
end
- create_table "favourites", id: :serial, force: :cascade do |t|
- t.integer "account_id", null: false
- t.integer "status_id", null: false
+ create_table "favourites", force: :cascade do |t|
+ t.bigint "account_id", null: false
+ t.bigint "status_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["account_id", "id"], name: "index_favourites_on_account_id_and_id"
@@ -120,24 +120,24 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["status_id"], name: "index_favourites_on_status_id"
end
- create_table "follow_requests", id: :serial, force: :cascade do |t|
- t.integer "account_id", null: false
- t.integer "target_account_id", null: false
+ create_table "follow_requests", force: :cascade do |t|
+ t.bigint "account_id", null: false
+ t.bigint "target_account_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["account_id", "target_account_id"], name: "index_follow_requests_on_account_id_and_target_account_id", unique: true
end
- create_table "follows", id: :serial, force: :cascade do |t|
- t.integer "account_id", null: false
- t.integer "target_account_id", null: false
+ create_table "follows", force: :cascade do |t|
+ t.bigint "account_id", null: false
+ t.bigint "target_account_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["account_id", "target_account_id"], name: "index_follows_on_account_id_and_target_account_id", unique: true
end
- create_table "imports", id: :serial, force: :cascade do |t|
- t.integer "account_id", null: false
+ create_table "imports", force: :cascade do |t|
+ t.bigint "account_id", null: false
t.integer "type", null: false
t.boolean "approved", default: false, null: false
t.datetime "created_at", null: false
@@ -148,14 +148,14 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.datetime "data_updated_at"
end
- create_table "media_attachments", id: :serial, force: :cascade do |t|
+ create_table "media_attachments", force: :cascade do |t|
t.bigint "status_id"
t.string "file_file_name"
t.string "file_content_type"
t.integer "file_file_size"
t.datetime "file_updated_at"
t.string "remote_url", default: "", null: false
- t.integer "account_id"
+ t.bigint "account_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "shortcode"
@@ -166,8 +166,8 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["status_id"], name: "index_media_attachments_on_status_id"
end
- create_table "mentions", id: :serial, force: :cascade do |t|
- t.integer "account_id"
+ create_table "mentions", force: :cascade do |t|
+ t.bigint "account_id"
t.bigint "status_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
@@ -175,30 +175,30 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["status_id"], name: "index_mentions_on_status_id"
end
- create_table "mutes", id: :serial, force: :cascade do |t|
- t.integer "account_id", null: false
- t.integer "target_account_id", null: false
+ create_table "mutes", force: :cascade do |t|
+ t.bigint "account_id", null: false
+ t.bigint "target_account_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "hide_notifications", default: true, null: false
t.index ["account_id", "target_account_id"], name: "index_mutes_on_account_id_and_target_account_id", unique: true
end
- create_table "notifications", id: :serial, force: :cascade do |t|
- t.integer "account_id"
+ create_table "notifications", force: :cascade do |t|
+ t.bigint "account_id"
t.bigint "activity_id"
t.string "activity_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
- t.integer "from_account_id"
+ t.bigint "from_account_id"
t.index ["account_id", "activity_id", "activity_type"], name: "account_activity", unique: true
t.index ["activity_id", "activity_type"], name: "index_notifications_on_activity_id_and_activity_type"
t.index ["id", "account_id", "activity_type"], name: "index_notifications_on_id_and_account_id_and_activity_type", order: { id: :desc }
end
- create_table "oauth_access_grants", id: :serial, force: :cascade do |t|
- t.integer "resource_owner_id", null: false
- t.integer "application_id", null: false
+ create_table "oauth_access_grants", force: :cascade do |t|
+ t.bigint "resource_owner_id", null: false
+ t.bigint "application_id", null: false
t.string "token", null: false
t.integer "expires_in", null: false
t.text "redirect_uri", null: false
@@ -208,9 +208,9 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["token"], name: "index_oauth_access_grants_on_token", unique: true
end
- create_table "oauth_access_tokens", id: :serial, force: :cascade do |t|
- t.integer "resource_owner_id"
- t.integer "application_id"
+ create_table "oauth_access_tokens", force: :cascade do |t|
+ t.bigint "resource_owner_id"
+ t.bigint "application_id"
t.string "token", null: false
t.string "refresh_token"
t.integer "expires_in"
@@ -222,7 +222,7 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["token"], name: "index_oauth_access_tokens_on_token", unique: true
end
- create_table "oauth_applications", id: :serial, force: :cascade do |t|
+ create_table "oauth_applications", force: :cascade do |t|
t.string "name", null: false
t.string "uid", null: false
t.string "secret", null: false
@@ -232,7 +232,7 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.datetime "updated_at"
t.boolean "superapp", default: false, null: false
t.string "website"
- t.integer "owner_id"
+ t.bigint "owner_id"
t.string "owner_type"
t.index ["owner_id", "owner_type"], name: "index_oauth_applications_on_owner_id_and_owner_type"
t.index ["uid"], name: "index_oauth_applications_on_uid", unique: true
@@ -265,37 +265,37 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["status_id", "preview_card_id"], name: "index_preview_cards_statuses_on_status_id_and_preview_card_id"
end
- create_table "reports", id: :serial, force: :cascade do |t|
- t.integer "account_id", null: false
- t.integer "target_account_id", null: false
+ create_table "reports", force: :cascade do |t|
+ t.bigint "account_id", null: false
+ t.bigint "target_account_id", null: false
t.bigint "status_ids", default: [], null: false, array: true
t.text "comment", default: "", null: false
t.boolean "action_taken", default: false, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
- t.integer "action_taken_by_account_id"
+ t.bigint "action_taken_by_account_id"
t.index ["account_id"], name: "index_reports_on_account_id"
t.index ["target_account_id"], name: "index_reports_on_target_account_id"
end
create_table "session_activations", force: :cascade do |t|
- t.integer "user_id", null: false
+ t.bigint "user_id", null: false
t.string "session_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "user_agent", default: "", null: false
t.inet "ip"
- t.integer "access_token_id"
- t.integer "web_push_subscription_id"
+ t.bigint "access_token_id"
+ t.bigint "web_push_subscription_id"
t.index ["session_id"], name: "index_session_activations_on_session_id", unique: true
t.index ["user_id"], name: "index_session_activations_on_user_id"
end
- create_table "settings", id: :serial, force: :cascade do |t|
+ create_table "settings", force: :cascade do |t|
t.string "var", null: false
t.text "value"
t.string "thing_type"
- t.integer "thing_id"
+ t.bigint "thing_id"
t.datetime "created_at"
t.datetime "updated_at"
t.index ["thing_type", "thing_id", "var"], name: "index_settings_on_thing_type_and_thing_id_and_var", unique: true
@@ -323,7 +323,7 @@ ActiveRecord::Schema.define(version: 20170917153509) do
create_table "statuses", force: :cascade do |t|
t.string "uri"
- t.integer "account_id", null: false
+ t.bigint "account_id", null: false
t.text "text", default: "", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
@@ -332,8 +332,8 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.string "url"
t.boolean "sensitive", default: false, null: false
t.integer "visibility", default: 0, null: false
- t.integer "in_reply_to_account_id"
- t.integer "application_id"
+ t.bigint "in_reply_to_account_id"
+ t.bigint "application_id"
t.text "spoiler_text", default: "", null: false
t.boolean "reply", default: false, null: false
t.integer "favourites_count", default: 0, null: false
@@ -350,13 +350,13 @@ ActiveRecord::Schema.define(version: 20170917153509) do
create_table "statuses_tags", id: false, force: :cascade do |t|
t.bigint "status_id", null: false
- t.integer "tag_id", null: false
+ t.bigint "tag_id", null: false
t.index ["status_id"], name: "index_statuses_tags_on_status_id"
t.index ["tag_id", "status_id"], name: "index_statuses_tags_on_tag_id_and_status_id", unique: true
end
- create_table "stream_entries", id: :serial, force: :cascade do |t|
- t.integer "account_id"
+ create_table "stream_entries", force: :cascade do |t|
+ t.bigint "account_id"
t.bigint "activity_id"
t.string "activity_type"
t.datetime "created_at", null: false
@@ -366,12 +366,12 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["activity_id", "activity_type"], name: "index_stream_entries_on_activity_id_and_activity_type"
end
- create_table "subscriptions", id: :serial, force: :cascade do |t|
+ create_table "subscriptions", force: :cascade do |t|
t.string "callback_url", default: "", null: false
t.string "secret"
t.datetime "expires_at"
t.boolean "confirmed", default: false, null: false
- t.integer "account_id", null: false
+ t.bigint "account_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "last_successful_delivery_at"
@@ -379,7 +379,7 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["account_id", "callback_url"], name: "index_subscriptions_on_account_id_and_callback_url", unique: true
end
- create_table "tags", id: :serial, force: :cascade do |t|
+ create_table "tags", force: :cascade do |t|
t.string "name", default: "", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
@@ -387,9 +387,9 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.index ["name"], name: "index_tags_on_name", unique: true
end
- create_table "users", id: :serial, force: :cascade do |t|
+ create_table "users", force: :cascade do |t|
t.string "email", default: "", null: false
- t.integer "account_id", null: false
+ t.bigint "account_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "encrypted_password", default: "", null: false
@@ -431,8 +431,8 @@ ActiveRecord::Schema.define(version: 20170917153509) do
t.datetime "updated_at", null: false
end
- create_table "web_settings", id: :serial, force: :cascade do |t|
- t.integer "user_id"
+ create_table "web_settings", force: :cascade do |t|
+ t.bigint "user_id"
t.json "data"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
diff --git a/lib/assets/emoji.json b/lib/assets/emoji.json
deleted file mode 100644
index b12b760240..0000000000
--- a/lib/assets/emoji.json
+++ /dev/null
@@ -1 +0,0 @@
-{"grinning":{"unicode":"1f600","unicode_alt":"","code_decimal":"😀","name":"grinning face","shortname":":grinning:","category":"people","emoji_order":"1","aliases":[],"aliases_ascii":[],"keywords":["happy","smiley","emotion"]},"grin":{"unicode":"1f601","unicode_alt":"","code_decimal":"😁","name":"grinning face with smiling eyes","shortname":":grin:","category":"people","emoji_order":"2","aliases":[],"aliases_ascii":[],"keywords":["happy","silly","smiley","emotion","good","selfie"]},"joy":{"unicode":"1f602","unicode_alt":"","code_decimal":"😂","name":"face with tears of joy","shortname":":joy:","category":"people","emoji_order":"3","aliases":[],"aliases_ascii":[":')",":'-)"],"keywords":["happy","silly","smiley","cry","laugh","emotion","sarcastic"]},"rofl":{"unicode":"1f923","unicode_alt":"","code_decimal":"🤣","name":"rolling on the floor laughing","shortname":":rofl:","category":"people","emoji_order":"4","aliases":[":rolling_on_the_floor_laughing:"],"aliases_ascii":[],"keywords":[]},"smiley":{"unicode":"1f603","unicode_alt":"","code_decimal":"😃","name":"smiling face with open mouth","shortname":":smiley:","category":"people","emoji_order":"5","aliases":[],"aliases_ascii":[":D",":-D","=D"],"keywords":["happy","smiley","emotion","good"]},"smile":{"unicode":"1f604","unicode_alt":"","code_decimal":"😄","name":"smiling face with open mouth and smiling eyes","shortname":":smile:","category":"people","emoji_order":"6","aliases":[],"aliases_ascii":[],"keywords":["happy","smiley","emotion"]},"sweat_smile":{"unicode":"1f605","unicode_alt":"","code_decimal":"😅","name":"smiling face with open mouth and cold sweat","shortname":":sweat_smile:","category":"people","emoji_order":"7","aliases":[],"aliases_ascii":["':)","':-)","'=)","':D","':-D","'=D"],"keywords":["smiley","workout","sweat","emotion"]},"laughing":{"unicode":"1f606","unicode_alt":"","code_decimal":"😆","name":"smiling face with open mouth and tightly-closed eyes","shortname":":laughing:","category":"people","emoji_order":"8","aliases":[":satisfied:"],"aliases_ascii":[">:)",">;)",">:-)",">=)"],"keywords":["happy","smiley","laugh","emotion"]},"wink":{"unicode":"1f609","unicode_alt":"","code_decimal":"😉","name":"winking face","shortname":":wink:","category":"people","emoji_order":"9","aliases":[],"aliases_ascii":[";)",";-)","*-)","*)",";-]",";]",";D",";^)"],"keywords":["silly","smiley","emotion"]},"blush":{"unicode":"1f60a","unicode_alt":"","code_decimal":"😊","name":"smiling face with smiling eyes","shortname":":blush:","category":"people","emoji_order":"10","aliases":[],"aliases_ascii":[],"keywords":["happy","smiley","emotion","good","beautiful"]},"yum":{"unicode":"1f60b","unicode_alt":"","code_decimal":"😋","name":"face savouring delicious food","shortname":":yum:","category":"people","emoji_order":"11","aliases":[],"aliases_ascii":[],"keywords":["happy","silly","smiley","emotion","sarcastic","good"]},"sunglasses":{"unicode":"1f60e","unicode_alt":"","code_decimal":"😎","name":"smiling face with sunglasses","shortname":":sunglasses:","category":"people","emoji_order":"12","aliases":[],"aliases_ascii":["B-)","B)","8)","8-)","B-D","8-D"],"keywords":["silly","smiley","emojione","glasses","boys night"]},"heart_eyes":{"unicode":"1f60d","unicode_alt":"","code_decimal":"😍","name":"smiling face with heart-shaped eyes","shortname":":heart_eyes:","category":"people","emoji_order":"13","aliases":[],"aliases_ascii":[],"keywords":["happy","smiley","love","sex","heart eyes","emotion","beautiful"]},"kissing_heart":{"unicode":"1f618","unicode_alt":"","code_decimal":"😘","name":"face throwing a kiss","shortname":":kissing_heart:","category":"people","emoji_order":"14","aliases":[],"aliases_ascii":[":*",":-*","=*",":^*"],"keywords":["smiley","love","sexy"]},"kissing":{"unicode":"1f617","unicode_alt":"","code_decimal":"😗","name":"kissing face","shortname":":kissing:","category":"people","emoji_order":"15","aliases":[],"aliases_ascii":[],"keywords":["smiley","sexy"]},"kissing_smiling_eyes":{"unicode":"1f619","unicode_alt":"","code_decimal":"😙","name":"kissing face with smiling eyes","shortname":":kissing_smiling_eyes:","category":"people","emoji_order":"16","aliases":[],"aliases_ascii":[],"keywords":["smiley","sexy"]},"kissing_closed_eyes":{"unicode":"1f61a","unicode_alt":"","code_decimal":"😚","name":"kissing face with closed eyes","shortname":":kissing_closed_eyes:","category":"people","emoji_order":"17","aliases":[],"aliases_ascii":[],"keywords":["smiley","sexy"]},"relaxed":{"unicode":"263a","unicode_alt":"263a-fe0f","code_decimal":"☺","name":"white smiling face","shortname":":relaxed:","category":"people","emoji_order":"18","aliases":[],"aliases_ascii":[],"keywords":["happy","smiley"]},"slight_smile":{"unicode":"1f642","unicode_alt":"","code_decimal":"🙂","name":"slightly smiling face","shortname":":slight_smile:","category":"people","emoji_order":"19","aliases":[":slightly_smiling_face:"],"aliases_ascii":[":)",":-)","=]","=)",":]"],"keywords":["happy","smiley"]},"hugging":{"unicode":"1f917","unicode_alt":"","code_decimal":"🤗","name":"hugging face","shortname":":hugging:","category":"people","emoji_order":"20","aliases":[":hugging_face:"],"aliases_ascii":[],"keywords":["smiley","hug","thank you"]},"thinking":{"unicode":"1f914","unicode_alt":"","code_decimal":"🤔","name":"thinking face","shortname":":thinking:","category":"people","emoji_order":"21","aliases":[":thinking_face:"],"aliases_ascii":[],"keywords":["smiley","thinking","boys night"]},"neutral_face":{"unicode":"1f610","unicode_alt":"","code_decimal":"😐","name":"neutral face","shortname":":neutral_face:","category":"people","emoji_order":"22","aliases":[],"aliases_ascii":[],"keywords":["mad","smiley","shrug","neutral","emotion"]},"expressionless":{"unicode":"1f611","unicode_alt":"","code_decimal":"😑","name":"expressionless face","shortname":":expressionless:","category":"people","emoji_order":"23","aliases":[],"aliases_ascii":["-_-","-__-","-___-"],"keywords":["mad","smiley","neutral","emotion"]},"no_mouth":{"unicode":"1f636","unicode_alt":"","code_decimal":"😶","name":"face without mouth","shortname":":no_mouth:","category":"people","emoji_order":"24","aliases":[],"aliases_ascii":[":-X",":X",":-#",":#","=X","=x",":x",":-x","=#"],"keywords":["mad","smiley","neutral","emotion"]},"rolling_eyes":{"unicode":"1f644","unicode_alt":"","code_decimal":"🙄","name":"face with rolling eyes","shortname":":rolling_eyes:","category":"people","emoji_order":"25","aliases":[":face_with_rolling_eyes:"],"aliases_ascii":[],"keywords":["mad","smiley","rolling eyes","emotion","sarcastic"]},"smirk":{"unicode":"1f60f","unicode_alt":"","code_decimal":"😏","name":"smirking face","shortname":":smirk:","category":"people","emoji_order":"26","aliases":[],"aliases_ascii":[],"keywords":["silly","smiley","sexy","sarcastic"]},"persevere":{"unicode":"1f623","unicode_alt":"","code_decimal":"😣","name":"persevering face","shortname":":persevere:","category":"people","emoji_order":"27","aliases":[],"aliases_ascii":[">.<"],"keywords":["sad","smiley","angry","emotion"]},"disappointed_relieved":{"unicode":"1f625","unicode_alt":"","code_decimal":"😥","name":"disappointed but relieved face","shortname":":disappointed_relieved:","category":"people","emoji_order":"28","aliases":[],"aliases_ascii":[],"keywords":["sad","smiley","stressed","sweat","cry","emotion"]},"open_mouth":{"unicode":"1f62e","unicode_alt":"","code_decimal":"😮","name":"face with open mouth","shortname":":open_mouth:","category":"people","emoji_order":"29","aliases":[],"aliases_ascii":[":-O",":O",":-o",":o","O_O",">:O"],"keywords":["smiley","surprised","wow","emotion"]},"zipper_mouth":{"unicode":"1f910","unicode_alt":"","code_decimal":"🤐","name":"zipper-mouth face","shortname":":zipper_mouth:","category":"people","emoji_order":"30","aliases":[":zipper_mouth_face:"],"aliases_ascii":[],"keywords":["mad","smiley"]},"hushed":{"unicode":"1f62f","unicode_alt":"","code_decimal":"😯","name":"hushed face","shortname":":hushed:","category":"people","emoji_order":"31","aliases":[],"aliases_ascii":[],"keywords":["smiley","surprised","wow"]},"sleepy":{"unicode":"1f62a","unicode_alt":"","code_decimal":"😪","name":"sleepy face","shortname":":sleepy:","category":"people","emoji_order":"32","aliases":[],"aliases_ascii":[],"keywords":["smiley","sick","emotion"]},"tired_face":{"unicode":"1f62b","unicode_alt":"","code_decimal":"😫","name":"tired face","shortname":":tired_face:","category":"people","emoji_order":"33","aliases":[],"aliases_ascii":[],"keywords":["sad","smiley","tired","emotion"]},"sleeping":{"unicode":"1f634","unicode_alt":"","code_decimal":"😴","name":"sleeping face","shortname":":sleeping:","category":"people","emoji_order":"34","aliases":[],"aliases_ascii":[],"keywords":["smiley","tired","emotion","goodnight"]},"relieved":{"unicode":"1f60c","unicode_alt":"","code_decimal":"😌","name":"relieved face","shortname":":relieved:","category":"people","emoji_order":"35","aliases":[],"aliases_ascii":[],"keywords":["smiley","emotion"]},"nerd":{"unicode":"1f913","unicode_alt":"","code_decimal":"🤓","name":"nerd face","shortname":":nerd:","category":"people","emoji_order":"36","aliases":[":nerd_face:"],"aliases_ascii":[],"keywords":["smiley","glasses"]},"stuck_out_tongue":{"unicode":"1f61b","unicode_alt":"","code_decimal":"😛","name":"face with stuck-out tongue","shortname":":stuck_out_tongue:","category":"people","emoji_order":"37","aliases":[],"aliases_ascii":[":P",":-P","=P",":-p",":p","=p",":-\u00de",":\u00de",":\u00fe",":-\u00fe",":-b",":b","d:"],"keywords":["smiley","sex","emotion"]},"stuck_out_tongue_winking_eye":{"unicode":"1f61c","unicode_alt":"","code_decimal":"😜","name":"face with stuck-out tongue and winking eye","shortname":":stuck_out_tongue_winking_eye:","category":"people","emoji_order":"38","aliases":[],"aliases_ascii":[">:P","X-P","x-p"],"keywords":["happy","smiley","emotion","parties"]},"stuck_out_tongue_closed_eyes":{"unicode":"1f61d","unicode_alt":"","code_decimal":"😝","name":"face with stuck-out tongue and tightly-closed eyes","shortname":":stuck_out_tongue_closed_eyes:","category":"people","emoji_order":"39","aliases":[],"aliases_ascii":[],"keywords":["happy","smiley","emotion"]},"drooling_face":{"unicode":"1f924","unicode_alt":"","code_decimal":"🤤","name":"drooling face","shortname":":drooling_face:","category":"people","emoji_order":"40","aliases":[":drool:"],"aliases_ascii":[],"keywords":[]},"unamused":{"unicode":"1f612","unicode_alt":"","code_decimal":"😒","name":"unamused face","shortname":":unamused:","category":"people","emoji_order":"41","aliases":[],"aliases_ascii":[],"keywords":["sad","mad","smiley","tired","emotion"]},"sweat":{"unicode":"1f613","unicode_alt":"","code_decimal":"😓","name":"face with cold sweat","shortname":":sweat:","category":"people","emoji_order":"42","aliases":[],"aliases_ascii":["':(","':-(","'=("],"keywords":["sad","smiley","stressed","sweat","emotion"]},"pensive":{"unicode":"1f614","unicode_alt":"","code_decimal":"😔","name":"pensive face","shortname":":pensive:","category":"people","emoji_order":"43","aliases":[],"aliases_ascii":[],"keywords":["sad","smiley","emotion","rip"]},"confused":{"unicode":"1f615","unicode_alt":"","code_decimal":"😕","name":"confused face","shortname":":confused:","category":"people","emoji_order":"44","aliases":[],"aliases_ascii":[">:\\",">:\/",":-\/",":-.",":\/",":\\","=\/","=\\",":L","=L"],"keywords":["smiley","surprised","emotion"]},"upside_down":{"unicode":"1f643","unicode_alt":"","code_decimal":"🙃","name":"upside-down face","shortname":":upside_down:","category":"people","emoji_order":"45","aliases":[":upside_down_face:"],"aliases_ascii":[],"keywords":["silly","smiley","sarcastic"]},"money_mouth":{"unicode":"1f911","unicode_alt":"","code_decimal":"🤑","name":"money-mouth face","shortname":":money_mouth:","category":"people","emoji_order":"46","aliases":[":money_mouth_face:"],"aliases_ascii":[],"keywords":["smiley","win","money","emotion","boys night"]},"astonished":{"unicode":"1f632","unicode_alt":"","code_decimal":"😲","name":"astonished face","shortname":":astonished:","category":"people","emoji_order":"47","aliases":[],"aliases_ascii":[],"keywords":["smiley","surprised","wow","emotion","omg"]},"frowning2":{"unicode":"2639","unicode_alt":"2639-fe0f","code_decimal":"☹","name":"white frowning face","shortname":":frowning2:","category":"people","emoji_order":"48","aliases":[":white_frowning_face:"],"aliases_ascii":[],"keywords":["sad","smiley","emotion"]},"slight_frown":{"unicode":"1f641","unicode_alt":"","code_decimal":"🙁","name":"slightly frowning face","shortname":":slight_frown:","category":"people","emoji_order":"49","aliases":[":slightly_frowning_face:"],"aliases_ascii":[],"keywords":["sad","smiley","emotion"]},"confounded":{"unicode":"1f616","unicode_alt":"","code_decimal":"😖","name":"confounded face","shortname":":confounded:","category":"people","emoji_order":"50","aliases":[],"aliases_ascii":[],"keywords":["sad","smiley","angry","emotion"]},"disappointed":{"unicode":"1f61e","unicode_alt":"","code_decimal":"😞","name":"disappointed face","shortname":":disappointed:","category":"people","emoji_order":"51","aliases":[],"aliases_ascii":[">:[",":-(",":(",":-[",":[","=("],"keywords":["sad","smiley","tired","emotion"]},"worried":{"unicode":"1f61f","unicode_alt":"","code_decimal":"😟","name":"worried face","shortname":":worried:","category":"people","emoji_order":"52","aliases":[],"aliases_ascii":[],"keywords":["sad","smiley","emotion"]},"triumph":{"unicode":"1f624","unicode_alt":"","code_decimal":"😤","name":"face with look of triumph","shortname":":triumph:","category":"people","emoji_order":"53","aliases":[],"aliases_ascii":[],"keywords":["mad","smiley","angry","emotion","steam"]},"cry":{"unicode":"1f622","unicode_alt":"","code_decimal":"😢","name":"crying face","shortname":":cry:","category":"people","emoji_order":"54","aliases":[],"aliases_ascii":[":'(",":'-(",";(",";-("],"keywords":["sad","smiley","cry","emotion","rip","heartbreak"]},"sob":{"unicode":"1f62d","unicode_alt":"","code_decimal":"😭","name":"loudly crying face","shortname":":sob:","category":"people","emoji_order":"55","aliases":[],"aliases_ascii":[],"keywords":["sad","smiley","cry","emotion","heartbreak"]},"frowning":{"unicode":"1f626","unicode_alt":"","code_decimal":"😦","name":"frowning face with open mouth","shortname":":frowning:","category":"people","emoji_order":"56","aliases":[],"aliases_ascii":[],"keywords":["sad","smiley","surprised","emotion"]},"anguished":{"unicode":"1f627","unicode_alt":"","code_decimal":"😧","name":"anguished face","shortname":":anguished:","category":"people","emoji_order":"57","aliases":[],"aliases_ascii":[],"keywords":["sad","smiley","surprised","emotion"]},"fearful":{"unicode":"1f628","unicode_alt":"","code_decimal":"😨","name":"fearful face","shortname":":fearful:","category":"people","emoji_order":"58","aliases":[],"aliases_ascii":["D:"],"keywords":["smiley","surprised","emotion"]},"weary":{"unicode":"1f629","unicode_alt":"","code_decimal":"😩","name":"weary face","shortname":":weary:","category":"people","emoji_order":"59","aliases":[],"aliases_ascii":[],"keywords":["sad","smiley","tired","stressed","emotion"]},"grimacing":{"unicode":"1f62c","unicode_alt":"","code_decimal":"😬","name":"grimacing face","shortname":":grimacing:","category":"people","emoji_order":"60","aliases":[],"aliases_ascii":[],"keywords":["silly","smiley","emotion","selfie"]},"cold_sweat":{"unicode":"1f630","unicode_alt":"","code_decimal":"😰","name":"face with open mouth and cold sweat","shortname":":cold_sweat:","category":"people","emoji_order":"61","aliases":[],"aliases_ascii":[],"keywords":["smiley","sweat","emotion"]},"scream":{"unicode":"1f631","unicode_alt":"","code_decimal":"😱","name":"face screaming in fear","shortname":":scream:","category":"people","emoji_order":"62","aliases":[],"aliases_ascii":[],"keywords":["smiley","surprised","wow","emotion","omg"]},"flushed":{"unicode":"1f633","unicode_alt":"","code_decimal":"😳","name":"flushed face","shortname":":flushed:","category":"people","emoji_order":"63","aliases":[],"aliases_ascii":[":$","=$"],"keywords":["smiley","emotion","omg"]},"dizzy_face":{"unicode":"1f635","unicode_alt":"","code_decimal":"😵","name":"dizzy face","shortname":":dizzy_face:","category":"people","emoji_order":"64","aliases":[],"aliases_ascii":["#-)","#)","%-)","%)","X)","X-)"],"keywords":["smiley","surprised","dead","wow","emotion","omg"]},"rage":{"unicode":"1f621","unicode_alt":"","code_decimal":"😡","name":"pouting face","shortname":":rage:","category":"people","emoji_order":"65","aliases":[],"aliases_ascii":[],"keywords":["mad","smiley","angry","emotion"]},"angry":{"unicode":"1f620","unicode_alt":"","code_decimal":"😠","name":"angry face","shortname":":angry:","category":"people","emoji_order":"66","aliases":[],"aliases_ascii":[">:(",">:-(",":@"],"keywords":["mad","smiley","emotion"]},"innocent":{"unicode":"1f607","unicode_alt":"","code_decimal":"😇","name":"smiling face with halo","shortname":":innocent:","category":"people","emoji_order":"67","aliases":[],"aliases_ascii":["O:-)","0:-3","0:3","0:-)","0:)","0;^)","O:)","O;-)","O=)","0;-)","O:-3","O:3"],"keywords":["smiley","emotion"]},"cowboy":{"unicode":"1f920","unicode_alt":"","code_decimal":"🤠","name":"face with cowboy hat","shortname":":cowboy:","category":"people","emoji_order":"68","aliases":[":face_with_cowboy_hat:"],"aliases_ascii":[],"keywords":[]},"clown":{"unicode":"1f921","unicode_alt":"","code_decimal":"🤡","name":"clown face","shortname":":clown:","category":"people","emoji_order":"69","aliases":[":clown_face:"],"aliases_ascii":[],"keywords":[]},"lying_face":{"unicode":"1f925","unicode_alt":"","code_decimal":"🤥","name":"lying face","shortname":":lying_face:","category":"people","emoji_order":"70","aliases":[":liar:"],"aliases_ascii":[],"keywords":[]},"mask":{"unicode":"1f637","unicode_alt":"","code_decimal":"😷","name":"face with medical mask","shortname":":mask:","category":"people","emoji_order":"71","aliases":[],"aliases_ascii":[],"keywords":["smiley","dead","health","sick"]},"thermometer_face":{"unicode":"1f912","unicode_alt":"","code_decimal":"🤒","name":"face with thermometer","shortname":":thermometer_face:","category":"people","emoji_order":"72","aliases":[":face_with_thermometer:"],"aliases_ascii":[],"keywords":["smiley","health","sick","emotion"]},"head_bandage":{"unicode":"1f915","unicode_alt":"","code_decimal":"🤕","name":"face with head-bandage","shortname":":head_bandage:","category":"people","emoji_order":"73","aliases":[":face_with_head_bandage:"],"aliases_ascii":[],"keywords":["smiley","health","sick","emotion"]},"nauseated_face":{"unicode":"1f922","unicode_alt":"","code_decimal":"🤢","name":"nauseated face","shortname":":nauseated_face:","category":"people","emoji_order":"74","aliases":[":sick:"],"aliases_ascii":[],"keywords":[]},"sneezing_face":{"unicode":"1f927","unicode_alt":"","code_decimal":"🤧","name":"sneezing face","shortname":":sneezing_face:","category":"people","emoji_order":"75","aliases":[":sneeze:"],"aliases_ascii":[],"keywords":[]},"smiling_imp":{"unicode":"1f608","unicode_alt":"","code_decimal":"😈","name":"smiling face with horns","shortname":":smiling_imp:","category":"people","emoji_order":"76","aliases":[],"aliases_ascii":[],"keywords":["silly","smiley","angry","monster","devil","boys night"]},"imp":{"unicode":"1f47f","unicode_alt":"","code_decimal":"👿","name":"imp","shortname":":imp:","category":"people","emoji_order":"77","aliases":[],"aliases_ascii":[],"keywords":["smiley","monster","devil","wth"]},"japanese_ogre":{"unicode":"1f479","unicode_alt":"","code_decimal":"👹","name":"japanese ogre","shortname":":japanese_ogre:","category":"people","emoji_order":"78","aliases":[],"aliases_ascii":[],"keywords":["monster"]},"japanese_goblin":{"unicode":"1f47a","unicode_alt":"","code_decimal":"👺","name":"japanese goblin","shortname":":japanese_goblin:","category":"people","emoji_order":"79","aliases":[],"aliases_ascii":[],"keywords":["angry","monster"]},"skull":{"unicode":"1f480","unicode_alt":"","code_decimal":"💀","name":"skull","shortname":":skull:","category":"people","emoji_order":"80","aliases":[":skeleton:"],"aliases_ascii":[],"keywords":["dead","halloween","skull"]},"skull_crossbones":{"unicode":"2620","unicode_alt":"2620-fe0f","code_decimal":"☠","name":"skull and crossbones","shortname":":skull_crossbones:","category":"objects","emoji_order":"81","aliases":[":skull_and_crossbones:"],"aliases_ascii":[],"keywords":["symbol","dead","skull"]},"ghost":{"unicode":"1f47b","unicode_alt":"","code_decimal":"👻","name":"ghost","shortname":":ghost:","category":"people","emoji_order":"82","aliases":[],"aliases_ascii":[],"keywords":["holidays","halloween","monster"]},"alien":{"unicode":"1f47d","unicode_alt":"","code_decimal":"👽","name":"extraterrestrial alien","shortname":":alien:","category":"people","emoji_order":"83","aliases":[],"aliases_ascii":[],"keywords":["space","monster","alien","scientology"]},"space_invader":{"unicode":"1f47e","unicode_alt":"","code_decimal":"👾","name":"alien monster","shortname":":space_invader:","category":"activity","emoji_order":"84","aliases":[],"aliases_ascii":[],"keywords":["monster","alien"]},"robot":{"unicode":"1f916","unicode_alt":"","code_decimal":"🤖","name":"robot face","shortname":":robot:","category":"people","emoji_order":"85","aliases":[":robot_face:"],"aliases_ascii":[],"keywords":["monster","robot"]},"poop":{"unicode":"1f4a9","unicode_alt":"","code_decimal":"💩","name":"pile of poo","shortname":":poop:","category":"people","emoji_order":"86","aliases":[":shit:",":hankey:",":poo:"],"aliases_ascii":[],"keywords":["bathroom","shit","sol","diarrhea"]},"smiley_cat":{"unicode":"1f63a","unicode_alt":"","code_decimal":"😺","name":"smiling cat face with open mouth","shortname":":smiley_cat:","category":"people","emoji_order":"87","aliases":[],"aliases_ascii":[],"keywords":["happy","cat","animal"]},"smile_cat":{"unicode":"1f638","unicode_alt":"","code_decimal":"😸","name":"grinning cat face with smiling eyes","shortname":":smile_cat:","category":"people","emoji_order":"88","aliases":[],"aliases_ascii":[],"keywords":["happy","cat","animal"]},"joy_cat":{"unicode":"1f639","unicode_alt":"","code_decimal":"😹","name":"cat face with tears of joy","shortname":":joy_cat:","category":"people","emoji_order":"89","aliases":[],"aliases_ascii":[],"keywords":["happy","silly","cry","laugh","cat","animal","sarcastic"]},"heart_eyes_cat":{"unicode":"1f63b","unicode_alt":"","code_decimal":"😻","name":"smiling cat face with heart-shaped eyes","shortname":":heart_eyes_cat:","category":"people","emoji_order":"90","aliases":[],"aliases_ascii":[],"keywords":["heart eyes","cat","animal","beautiful"]},"smirk_cat":{"unicode":"1f63c","unicode_alt":"","code_decimal":"😼","name":"cat face with wry smile","shortname":":smirk_cat:","category":"people","emoji_order":"91","aliases":[],"aliases_ascii":[],"keywords":["cat","animal"]},"kissing_cat":{"unicode":"1f63d","unicode_alt":"","code_decimal":"😽","name":"kissing cat face with closed eyes","shortname":":kissing_cat:","category":"people","emoji_order":"92","aliases":[],"aliases_ascii":[],"keywords":["cat","animal"]},"scream_cat":{"unicode":"1f640","unicode_alt":"","code_decimal":"🙀","name":"weary cat face","shortname":":scream_cat:","category":"people","emoji_order":"93","aliases":[],"aliases_ascii":[],"keywords":["cat","animal"]},"crying_cat_face":{"unicode":"1f63f","unicode_alt":"","code_decimal":"😿","name":"crying cat face","shortname":":crying_cat_face:","category":"people","emoji_order":"94","aliases":[],"aliases_ascii":[],"keywords":["cry","cat","animal"]},"pouting_cat":{"unicode":"1f63e","unicode_alt":"","code_decimal":"😾","name":"pouting cat face","shortname":":pouting_cat:","category":"people","emoji_order":"95","aliases":[],"aliases_ascii":[],"keywords":["cat","animal"]},"see_no_evil":{"unicode":"1f648","unicode_alt":"","code_decimal":"🙈","name":"see-no-evil monkey","shortname":":see_no_evil:","category":"nature","emoji_order":"96","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"hear_no_evil":{"unicode":"1f649","unicode_alt":"","code_decimal":"🙉","name":"hear-no-evil monkey","shortname":":hear_no_evil:","category":"nature","emoji_order":"97","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"speak_no_evil":{"unicode":"1f64a","unicode_alt":"","code_decimal":"🙊","name":"speak-no-evil monkey","shortname":":speak_no_evil:","category":"nature","emoji_order":"98","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"boy":{"unicode":"1f466","unicode_alt":"","code_decimal":"👦","name":"boy","shortname":":boy:","category":"people","emoji_order":"99","aliases":[],"aliases_ascii":[],"keywords":["people","baby","diversity"]},"boy_tone1":{"unicode":"1f466-1f3fb","unicode_alt":"","code_decimal":"👦🏻","name":"boy tone 1","shortname":":boy_tone1:","category":"people","emoji_order":"100","aliases":[],"aliases_ascii":[],"keywords":[]},"boy_tone2":{"unicode":"1f466-1f3fc","unicode_alt":"","code_decimal":"👦🏼","name":"boy tone 2","shortname":":boy_tone2:","category":"people","emoji_order":"101","aliases":[],"aliases_ascii":[],"keywords":[]},"boy_tone3":{"unicode":"1f466-1f3fd","unicode_alt":"","code_decimal":"👦🏽","name":"boy tone 3","shortname":":boy_tone3:","category":"people","emoji_order":"102","aliases":[],"aliases_ascii":[],"keywords":[]},"boy_tone4":{"unicode":"1f466-1f3fe","unicode_alt":"","code_decimal":"👦🏾","name":"boy tone 4","shortname":":boy_tone4:","category":"people","emoji_order":"103","aliases":[],"aliases_ascii":[],"keywords":[]},"boy_tone5":{"unicode":"1f466-1f3ff","unicode_alt":"","code_decimal":"👦🏿","name":"boy tone 5","shortname":":boy_tone5:","category":"people","emoji_order":"104","aliases":[],"aliases_ascii":[],"keywords":[]},"girl":{"unicode":"1f467","unicode_alt":"","code_decimal":"👧","name":"girl","shortname":":girl:","category":"people","emoji_order":"105","aliases":[],"aliases_ascii":[],"keywords":["people","women","baby","diversity"]},"girl_tone1":{"unicode":"1f467-1f3fb","unicode_alt":"","code_decimal":"👧🏻","name":"girl tone 1","shortname":":girl_tone1:","category":"people","emoji_order":"106","aliases":[],"aliases_ascii":[],"keywords":[]},"girl_tone2":{"unicode":"1f467-1f3fc","unicode_alt":"","code_decimal":"👧🏼","name":"girl tone 2","shortname":":girl_tone2:","category":"people","emoji_order":"107","aliases":[],"aliases_ascii":[],"keywords":[]},"girl_tone3":{"unicode":"1f467-1f3fd","unicode_alt":"","code_decimal":"👧🏽","name":"girl tone 3","shortname":":girl_tone3:","category":"people","emoji_order":"108","aliases":[],"aliases_ascii":[],"keywords":[]},"girl_tone4":{"unicode":"1f467-1f3fe","unicode_alt":"","code_decimal":"👧🏾","name":"girl tone 4","shortname":":girl_tone4:","category":"people","emoji_order":"109","aliases":[],"aliases_ascii":[],"keywords":[]},"girl_tone5":{"unicode":"1f467-1f3ff","unicode_alt":"","code_decimal":"👧🏿","name":"girl tone 5","shortname":":girl_tone5:","category":"people","emoji_order":"110","aliases":[],"aliases_ascii":[],"keywords":[]},"man":{"unicode":"1f468","unicode_alt":"","code_decimal":"👨","name":"man","shortname":":man:","category":"people","emoji_order":"111","aliases":[],"aliases_ascii":[],"keywords":["people","men","sex","diversity","selfie","boys night"]},"man_tone1":{"unicode":"1f468-1f3fb","unicode_alt":"","code_decimal":"👨🏻","name":"man tone 1","shortname":":man_tone1:","category":"people","emoji_order":"112","aliases":[],"aliases_ascii":[],"keywords":[]},"man_tone2":{"unicode":"1f468-1f3fc","unicode_alt":"","code_decimal":"👨🏼","name":"man tone 2","shortname":":man_tone2:","category":"people","emoji_order":"113","aliases":[],"aliases_ascii":[],"keywords":[]},"man_tone3":{"unicode":"1f468-1f3fd","unicode_alt":"","code_decimal":"👨🏽","name":"man tone 3","shortname":":man_tone3:","category":"people","emoji_order":"114","aliases":[],"aliases_ascii":[],"keywords":[]},"man_tone4":{"unicode":"1f468-1f3fe","unicode_alt":"","code_decimal":"👨🏾","name":"man tone 4","shortname":":man_tone4:","category":"people","emoji_order":"115","aliases":[],"aliases_ascii":[],"keywords":[]},"man_tone5":{"unicode":"1f468-1f3ff","unicode_alt":"","code_decimal":"👨🏿","name":"man tone 5","shortname":":man_tone5:","category":"people","emoji_order":"116","aliases":[],"aliases_ascii":[],"keywords":[]},"woman":{"unicode":"1f469","unicode_alt":"","code_decimal":"👩","name":"woman","shortname":":woman:","category":"people","emoji_order":"117","aliases":[],"aliases_ascii":[],"keywords":["people","women","sex","diversity","feminist","selfie","girls night"]},"woman_tone1":{"unicode":"1f469-1f3fb","unicode_alt":"","code_decimal":"👩🏻","name":"woman tone 1","shortname":":woman_tone1:","category":"people","emoji_order":"118","aliases":[],"aliases_ascii":[],"keywords":[]},"woman_tone2":{"unicode":"1f469-1f3fc","unicode_alt":"","code_decimal":"👩🏼","name":"woman tone 2","shortname":":woman_tone2:","category":"people","emoji_order":"119","aliases":[],"aliases_ascii":[],"keywords":[]},"woman_tone3":{"unicode":"1f469-1f3fd","unicode_alt":"","code_decimal":"👩🏽","name":"woman tone 3","shortname":":woman_tone3:","category":"people","emoji_order":"120","aliases":[],"aliases_ascii":[],"keywords":[]},"woman_tone4":{"unicode":"1f469-1f3fe","unicode_alt":"","code_decimal":"👩🏾","name":"woman tone 4","shortname":":woman_tone4:","category":"people","emoji_order":"121","aliases":[],"aliases_ascii":[],"keywords":[]},"woman_tone5":{"unicode":"1f469-1f3ff","unicode_alt":"","code_decimal":"👩🏿","name":"woman tone 5","shortname":":woman_tone5:","category":"people","emoji_order":"122","aliases":[],"aliases_ascii":[],"keywords":[]},"older_man":{"unicode":"1f474","unicode_alt":"","code_decimal":"👴","name":"older man","shortname":":older_man:","category":"people","emoji_order":"123","aliases":[],"aliases_ascii":[],"keywords":["people","men","old people","diversity"]},"older_man_tone1":{"unicode":"1f474-1f3fb","unicode_alt":"","code_decimal":"👴🏻","name":"older man tone 1","shortname":":older_man_tone1:","category":"people","emoji_order":"124","aliases":[],"aliases_ascii":[],"keywords":[]},"older_man_tone2":{"unicode":"1f474-1f3fc","unicode_alt":"","code_decimal":"👴🏼","name":"older man tone 2","shortname":":older_man_tone2:","category":"people","emoji_order":"125","aliases":[],"aliases_ascii":[],"keywords":[]},"older_man_tone3":{"unicode":"1f474-1f3fd","unicode_alt":"","code_decimal":"👴🏽","name":"older man tone 3","shortname":":older_man_tone3:","category":"people","emoji_order":"126","aliases":[],"aliases_ascii":[],"keywords":[]},"older_man_tone4":{"unicode":"1f474-1f3fe","unicode_alt":"","code_decimal":"👴🏾","name":"older man tone 4","shortname":":older_man_tone4:","category":"people","emoji_order":"127","aliases":[],"aliases_ascii":[],"keywords":[]},"older_man_tone5":{"unicode":"1f474-1f3ff","unicode_alt":"","code_decimal":"👴🏿","name":"older man tone 5","shortname":":older_man_tone5:","category":"people","emoji_order":"128","aliases":[],"aliases_ascii":[],"keywords":[]},"older_woman":{"unicode":"1f475","unicode_alt":"","code_decimal":"👵","name":"older woman","shortname":":older_woman:","category":"people","emoji_order":"129","aliases":[":grandma:"],"aliases_ascii":[],"keywords":["people","old people","diversity"]},"older_woman_tone1":{"unicode":"1f475-1f3fb","unicode_alt":"","code_decimal":"👵🏻","name":"older woman tone 1","shortname":":older_woman_tone1:","category":"people","emoji_order":"130","aliases":[":grandma_tone1:"],"aliases_ascii":[],"keywords":[]},"older_woman_tone2":{"unicode":"1f475-1f3fc","unicode_alt":"","code_decimal":"👵🏼","name":"older woman tone 2","shortname":":older_woman_tone2:","category":"people","emoji_order":"131","aliases":[":grandma_tone2:"],"aliases_ascii":[],"keywords":[]},"older_woman_tone3":{"unicode":"1f475-1f3fd","unicode_alt":"","code_decimal":"👵🏽","name":"older woman tone 3","shortname":":older_woman_tone3:","category":"people","emoji_order":"132","aliases":[":grandma_tone3:"],"aliases_ascii":[],"keywords":[]},"older_woman_tone4":{"unicode":"1f475-1f3fe","unicode_alt":"","code_decimal":"👵🏾","name":"older woman tone 4","shortname":":older_woman_tone4:","category":"people","emoji_order":"133","aliases":[":grandma_tone4:"],"aliases_ascii":[],"keywords":[]},"older_woman_tone5":{"unicode":"1f475-1f3ff","unicode_alt":"","code_decimal":"👵🏿","name":"older woman tone 5","shortname":":older_woman_tone5:","category":"people","emoji_order":"134","aliases":[":grandma_tone5:"],"aliases_ascii":[],"keywords":[]},"baby":{"unicode":"1f476","unicode_alt":"","code_decimal":"👶","name":"baby","shortname":":baby:","category":"people","emoji_order":"135","aliases":[],"aliases_ascii":[],"keywords":["people","baby","diversity"]},"baby_tone1":{"unicode":"1f476-1f3fb","unicode_alt":"","code_decimal":"👶🏻","name":"baby tone 1","shortname":":baby_tone1:","category":"people","emoji_order":"136","aliases":[],"aliases_ascii":[],"keywords":[]},"baby_tone2":{"unicode":"1f476-1f3fc","unicode_alt":"","code_decimal":"👶🏼","name":"baby tone 2","shortname":":baby_tone2:","category":"people","emoji_order":"137","aliases":[],"aliases_ascii":[],"keywords":[]},"baby_tone3":{"unicode":"1f476-1f3fd","unicode_alt":"","code_decimal":"👶🏽","name":"baby tone 3","shortname":":baby_tone3:","category":"people","emoji_order":"138","aliases":[],"aliases_ascii":[],"keywords":[]},"baby_tone4":{"unicode":"1f476-1f3fe","unicode_alt":"","code_decimal":"👶🏾","name":"baby tone 4","shortname":":baby_tone4:","category":"people","emoji_order":"139","aliases":[],"aliases_ascii":[],"keywords":[]},"baby_tone5":{"unicode":"1f476-1f3ff","unicode_alt":"","code_decimal":"👶🏿","name":"baby tone 5","shortname":":baby_tone5:","category":"people","emoji_order":"140","aliases":[],"aliases_ascii":[],"keywords":[]},"angel":{"unicode":"1f47c","unicode_alt":"","code_decimal":"👼","name":"baby angel","shortname":":angel:","category":"people","emoji_order":"141","aliases":[],"aliases_ascii":[],"keywords":["people","diversity","omg"]},"angel_tone1":{"unicode":"1f47c-1f3fb","unicode_alt":"","code_decimal":"👼🏻","name":"baby angel tone 1","shortname":":angel_tone1:","category":"people","emoji_order":"142","aliases":[],"aliases_ascii":[],"keywords":[]},"angel_tone2":{"unicode":"1f47c-1f3fc","unicode_alt":"","code_decimal":"👼🏼","name":"baby angel tone 2","shortname":":angel_tone2:","category":"people","emoji_order":"143","aliases":[],"aliases_ascii":[],"keywords":[]},"angel_tone3":{"unicode":"1f47c-1f3fd","unicode_alt":"","code_decimal":"👼🏽","name":"baby angel tone 3","shortname":":angel_tone3:","category":"people","emoji_order":"144","aliases":[],"aliases_ascii":[],"keywords":[]},"angel_tone4":{"unicode":"1f47c-1f3fe","unicode_alt":"","code_decimal":"👼🏾","name":"baby angel tone 4","shortname":":angel_tone4:","category":"people","emoji_order":"145","aliases":[],"aliases_ascii":[],"keywords":[]},"angel_tone5":{"unicode":"1f47c-1f3ff","unicode_alt":"","code_decimal":"👼🏿","name":"baby angel tone 5","shortname":":angel_tone5:","category":"people","emoji_order":"146","aliases":[],"aliases_ascii":[],"keywords":[]},"cop":{"unicode":"1f46e","unicode_alt":"","code_decimal":"👮","name":"police officer","shortname":":cop:","category":"people","emoji_order":"339","aliases":[],"aliases_ascii":[],"keywords":["people","hat","men","diversity","job","police","911"]},"cop_tone1":{"unicode":"1f46e-1f3fb","unicode_alt":"","code_decimal":"👮🏻","name":"police officer tone 1","shortname":":cop_tone1:","category":"people","emoji_order":"340","aliases":[],"aliases_ascii":[],"keywords":[]},"cop_tone2":{"unicode":"1f46e-1f3fc","unicode_alt":"","code_decimal":"👮🏼","name":"police officer tone 2","shortname":":cop_tone2:","category":"people","emoji_order":"341","aliases":[],"aliases_ascii":[],"keywords":[]},"cop_tone3":{"unicode":"1f46e-1f3fd","unicode_alt":"","code_decimal":"👮🏽","name":"police officer tone 3","shortname":":cop_tone3:","category":"people","emoji_order":"342","aliases":[],"aliases_ascii":[],"keywords":[]},"cop_tone4":{"unicode":"1f46e-1f3fe","unicode_alt":"","code_decimal":"👮🏾","name":"police officer tone 4","shortname":":cop_tone4:","category":"people","emoji_order":"343","aliases":[],"aliases_ascii":[],"keywords":[]},"cop_tone5":{"unicode":"1f46e-1f3ff","unicode_alt":"","code_decimal":"👮🏿","name":"police officer tone 5","shortname":":cop_tone5:","category":"people","emoji_order":"344","aliases":[],"aliases_ascii":[],"keywords":[]},"spy":{"unicode":"1f575","unicode_alt":"1f575-fe0f","code_decimal":"🕵","name":"sleuth or spy","shortname":":spy:","category":"people","emoji_order":"357","aliases":[":sleuth_or_spy:"],"aliases_ascii":[],"keywords":["people","hat","men","glasses","diversity","job"]},"spy_tone1":{"unicode":"1f575-1f3fb","unicode_alt":"","code_decimal":"🕵🏻","name":"sleuth or spy tone 1","shortname":":spy_tone1:","category":"people","emoji_order":"358","aliases":[":sleuth_or_spy_tone1:"],"aliases_ascii":[],"keywords":[]},"spy_tone2":{"unicode":"1f575-1f3fc","unicode_alt":"","code_decimal":"🕵🏼","name":"sleuth or spy tone 2","shortname":":spy_tone2:","category":"people","emoji_order":"359","aliases":[":sleuth_or_spy_tone2:"],"aliases_ascii":[],"keywords":[]},"spy_tone3":{"unicode":"1f575-1f3fd","unicode_alt":"","code_decimal":"🕵🏽","name":"sleuth or spy tone 3","shortname":":spy_tone3:","category":"people","emoji_order":"360","aliases":[":sleuth_or_spy_tone3:"],"aliases_ascii":[],"keywords":[]},"spy_tone4":{"unicode":"1f575-1f3fe","unicode_alt":"","code_decimal":"🕵🏾","name":"sleuth or spy tone 4","shortname":":spy_tone4:","category":"people","emoji_order":"361","aliases":[":sleuth_or_spy_tone4:"],"aliases_ascii":[],"keywords":[]},"spy_tone5":{"unicode":"1f575-1f3ff","unicode_alt":"","code_decimal":"🕵🏿","name":"sleuth or spy tone 5","shortname":":spy_tone5:","category":"people","emoji_order":"362","aliases":[":sleuth_or_spy_tone5:"],"aliases_ascii":[],"keywords":[]},"guardsman":{"unicode":"1f482","unicode_alt":"","code_decimal":"💂","name":"guardsman","shortname":":guardsman:","category":"people","emoji_order":"375","aliases":[],"aliases_ascii":[],"keywords":["people","hat","men","diversity","job"]},"guardsman_tone1":{"unicode":"1f482-1f3fb","unicode_alt":"","code_decimal":"💂🏻","name":"guardsman tone 1","shortname":":guardsman_tone1:","category":"people","emoji_order":"376","aliases":[],"aliases_ascii":[],"keywords":[]},"guardsman_tone2":{"unicode":"1f482-1f3fc","unicode_alt":"","code_decimal":"💂🏼","name":"guardsman tone 2","shortname":":guardsman_tone2:","category":"people","emoji_order":"377","aliases":[],"aliases_ascii":[],"keywords":[]},"guardsman_tone3":{"unicode":"1f482-1f3fd","unicode_alt":"","code_decimal":"💂🏽","name":"guardsman tone 3","shortname":":guardsman_tone3:","category":"people","emoji_order":"378","aliases":[],"aliases_ascii":[],"keywords":[]},"guardsman_tone4":{"unicode":"1f482-1f3fe","unicode_alt":"","code_decimal":"💂🏾","name":"guardsman tone 4","shortname":":guardsman_tone4:","category":"people","emoji_order":"379","aliases":[],"aliases_ascii":[],"keywords":[]},"guardsman_tone5":{"unicode":"1f482-1f3ff","unicode_alt":"","code_decimal":"💂🏿","name":"guardsman tone 5","shortname":":guardsman_tone5:","category":"people","emoji_order":"380","aliases":[],"aliases_ascii":[],"keywords":[]},"construction_worker":{"unicode":"1f477","unicode_alt":"","code_decimal":"👷","name":"construction worker","shortname":":construction_worker:","category":"people","emoji_order":"393","aliases":[],"aliases_ascii":[],"keywords":["people","hat","men","diversity","job"]},"construction_worker_tone1":{"unicode":"1f477-1f3fb","unicode_alt":"","code_decimal":"👷🏻","name":"construction worker tone 1","shortname":":construction_worker_tone1:","category":"people","emoji_order":"394","aliases":[],"aliases_ascii":[],"keywords":[]},"construction_worker_tone2":{"unicode":"1f477-1f3fc","unicode_alt":"","code_decimal":"👷🏼","name":"construction worker tone 2","shortname":":construction_worker_tone2:","category":"people","emoji_order":"395","aliases":[],"aliases_ascii":[],"keywords":[]},"construction_worker_tone3":{"unicode":"1f477-1f3fd","unicode_alt":"","code_decimal":"👷🏽","name":"construction worker tone 3","shortname":":construction_worker_tone3:","category":"people","emoji_order":"396","aliases":[],"aliases_ascii":[],"keywords":[]},"construction_worker_tone4":{"unicode":"1f477-1f3fe","unicode_alt":"","code_decimal":"👷🏾","name":"construction worker tone 4","shortname":":construction_worker_tone4:","category":"people","emoji_order":"397","aliases":[],"aliases_ascii":[],"keywords":[]},"construction_worker_tone5":{"unicode":"1f477-1f3ff","unicode_alt":"","code_decimal":"👷🏿","name":"construction worker tone 5","shortname":":construction_worker_tone5:","category":"people","emoji_order":"398","aliases":[],"aliases_ascii":[],"keywords":[]},"man_with_turban":{"unicode":"1f473","unicode_alt":"","code_decimal":"👳","name":"man with turban","shortname":":man_with_turban:","category":"people","emoji_order":"411","aliases":[],"aliases_ascii":[],"keywords":["people","hat","diversity"]},"man_with_turban_tone1":{"unicode":"1f473-1f3fb","unicode_alt":"","code_decimal":"👳🏻","name":"man with turban tone 1","shortname":":man_with_turban_tone1:","category":"people","emoji_order":"412","aliases":[],"aliases_ascii":[],"keywords":[]},"man_with_turban_tone2":{"unicode":"1f473-1f3fc","unicode_alt":"","code_decimal":"👳🏼","name":"man with turban tone 2","shortname":":man_with_turban_tone2:","category":"people","emoji_order":"413","aliases":[],"aliases_ascii":[],"keywords":[]},"man_with_turban_tone3":{"unicode":"1f473-1f3fd","unicode_alt":"","code_decimal":"👳🏽","name":"man with turban tone 3","shortname":":man_with_turban_tone3:","category":"people","emoji_order":"414","aliases":[],"aliases_ascii":[],"keywords":[]},"man_with_turban_tone4":{"unicode":"1f473-1f3fe","unicode_alt":"","code_decimal":"👳🏾","name":"man with turban tone 4","shortname":":man_with_turban_tone4:","category":"people","emoji_order":"415","aliases":[],"aliases_ascii":[],"keywords":[]},"man_with_turban_tone5":{"unicode":"1f473-1f3ff","unicode_alt":"","code_decimal":"👳🏿","name":"man with turban tone 5","shortname":":man_with_turban_tone5:","category":"people","emoji_order":"416","aliases":[],"aliases_ascii":[],"keywords":[]},"person_with_blond_hair":{"unicode":"1f471","unicode_alt":"","code_decimal":"👱","name":"person with blond hair","shortname":":person_with_blond_hair:","category":"people","emoji_order":"429","aliases":[],"aliases_ascii":[],"keywords":["people","men","diversity"]},"person_with_blond_hair_tone1":{"unicode":"1f471-1f3fb","unicode_alt":"","code_decimal":"👱🏻","name":"person with blond hair tone 1","shortname":":person_with_blond_hair_tone1:","category":"people","emoji_order":"430","aliases":[],"aliases_ascii":[],"keywords":[]},"person_with_blond_hair_tone2":{"unicode":"1f471-1f3fc","unicode_alt":"","code_decimal":"👱🏼","name":"person with blond hair tone 2","shortname":":person_with_blond_hair_tone2:","category":"people","emoji_order":"431","aliases":[],"aliases_ascii":[],"keywords":[]},"person_with_blond_hair_tone3":{"unicode":"1f471-1f3fd","unicode_alt":"","code_decimal":"👱🏽","name":"person with blond hair tone 3","shortname":":person_with_blond_hair_tone3:","category":"people","emoji_order":"432","aliases":[],"aliases_ascii":[],"keywords":[]},"person_with_blond_hair_tone4":{"unicode":"1f471-1f3fe","unicode_alt":"","code_decimal":"👱🏾","name":"person with blond hair tone 4","shortname":":person_with_blond_hair_tone4:","category":"people","emoji_order":"433","aliases":[],"aliases_ascii":[],"keywords":[]},"person_with_blond_hair_tone5":{"unicode":"1f471-1f3ff","unicode_alt":"","code_decimal":"👱🏿","name":"person with blond hair tone 5","shortname":":person_with_blond_hair_tone5:","category":"people","emoji_order":"434","aliases":[],"aliases_ascii":[],"keywords":[]},"santa":{"unicode":"1f385","unicode_alt":"","code_decimal":"🎅","name":"father christmas","shortname":":santa:","category":"people","emoji_order":"447","aliases":[],"aliases_ascii":[],"keywords":["people","hat","winter","holidays","christmas","diversity","santa"]},"santa_tone1":{"unicode":"1f385-1f3fb","unicode_alt":"","code_decimal":"🎅🏻","name":"father christmas tone 1","shortname":":santa_tone1:","category":"people","emoji_order":"448","aliases":[],"aliases_ascii":[],"keywords":[]},"santa_tone2":{"unicode":"1f385-1f3fc","unicode_alt":"","code_decimal":"🎅🏼","name":"father christmas tone 2","shortname":":santa_tone2:","category":"people","emoji_order":"449","aliases":[],"aliases_ascii":[],"keywords":[]},"santa_tone3":{"unicode":"1f385-1f3fd","unicode_alt":"","code_decimal":"🎅🏽","name":"father christmas tone 3","shortname":":santa_tone3:","category":"people","emoji_order":"450","aliases":[],"aliases_ascii":[],"keywords":[]},"santa_tone4":{"unicode":"1f385-1f3fe","unicode_alt":"","code_decimal":"🎅🏾","name":"father christmas tone 4","shortname":":santa_tone4:","category":"people","emoji_order":"451","aliases":[],"aliases_ascii":[],"keywords":[]},"santa_tone5":{"unicode":"1f385-1f3ff","unicode_alt":"","code_decimal":"🎅🏿","name":"father christmas tone 5","shortname":":santa_tone5:","category":"people","emoji_order":"452","aliases":[],"aliases_ascii":[],"keywords":[]},"mrs_claus":{"unicode":"1f936","unicode_alt":"","code_decimal":"🤶","name":"mother christmas","shortname":":mrs_claus:","category":"people","emoji_order":"453","aliases":[":mother_christmas:"],"aliases_ascii":[],"keywords":[]},"mrs_claus_tone1":{"unicode":"1f936-1f3fb","unicode_alt":"","code_decimal":"🤶🏻","name":"mother christmas tone 1","shortname":":mrs_claus_tone1:","category":"people","emoji_order":"454","aliases":[":mother_christmas_tone1:"],"aliases_ascii":[],"keywords":[]},"mrs_claus_tone2":{"unicode":"1f936-1f3fc","unicode_alt":"","code_decimal":"🤶🏼","name":"mother christmas tone 2","shortname":":mrs_claus_tone2:","category":"people","emoji_order":"455","aliases":[":mother_christmas_tone2:"],"aliases_ascii":[],"keywords":[]},"mrs_claus_tone3":{"unicode":"1f936-1f3fd","unicode_alt":"","code_decimal":"🤶🏽","name":"mother christmas tone 3","shortname":":mrs_claus_tone3:","category":"people","emoji_order":"456","aliases":[":mother_christmas_tone3:"],"aliases_ascii":[],"keywords":[]},"mrs_claus_tone4":{"unicode":"1f936-1f3fe","unicode_alt":"","code_decimal":"🤶🏾","name":"mother christmas tone 4","shortname":":mrs_claus_tone4:","category":"people","emoji_order":"457","aliases":[":mother_christmas_tone4:"],"aliases_ascii":[],"keywords":[]},"mrs_claus_tone5":{"unicode":"1f936-1f3ff","unicode_alt":"","code_decimal":"🤶🏿","name":"mother christmas tone 5","shortname":":mrs_claus_tone5:","category":"people","emoji_order":"458","aliases":[":mother_christmas_tone5:"],"aliases_ascii":[],"keywords":[]},"princess":{"unicode":"1f478","unicode_alt":"","code_decimal":"👸","name":"princess","shortname":":princess:","category":"people","emoji_order":"459","aliases":[],"aliases_ascii":[],"keywords":["people","women","diversity","beautiful","girls night"]},"princess_tone1":{"unicode":"1f478-1f3fb","unicode_alt":"","code_decimal":"👸🏻","name":"princess tone 1","shortname":":princess_tone1:","category":"people","emoji_order":"460","aliases":[],"aliases_ascii":[],"keywords":[]},"princess_tone2":{"unicode":"1f478-1f3fc","unicode_alt":"","code_decimal":"👸🏼","name":"princess tone 2","shortname":":princess_tone2:","category":"people","emoji_order":"461","aliases":[],"aliases_ascii":[],"keywords":[]},"princess_tone3":{"unicode":"1f478-1f3fd","unicode_alt":"","code_decimal":"👸🏽","name":"princess tone 3","shortname":":princess_tone3:","category":"people","emoji_order":"462","aliases":[],"aliases_ascii":[],"keywords":[]},"princess_tone4":{"unicode":"1f478-1f3fe","unicode_alt":"","code_decimal":"👸🏾","name":"princess tone 4","shortname":":princess_tone4:","category":"people","emoji_order":"463","aliases":[],"aliases_ascii":[],"keywords":[]},"princess_tone5":{"unicode":"1f478-1f3ff","unicode_alt":"","code_decimal":"👸🏿","name":"princess tone 5","shortname":":princess_tone5:","category":"people","emoji_order":"464","aliases":[],"aliases_ascii":[],"keywords":[]},"prince":{"unicode":"1f934","unicode_alt":"","code_decimal":"🤴","name":"prince","shortname":":prince:","category":"people","emoji_order":"465","aliases":[],"aliases_ascii":[],"keywords":[]},"prince_tone1":{"unicode":"1f934-1f3fb","unicode_alt":"","code_decimal":"🤴🏻","name":"prince tone 1","shortname":":prince_tone1:","category":"people","emoji_order":"466","aliases":[],"aliases_ascii":[],"keywords":[]},"prince_tone2":{"unicode":"1f934-1f3fc","unicode_alt":"","code_decimal":"🤴🏼","name":"prince tone 2","shortname":":prince_tone2:","category":"people","emoji_order":"467","aliases":[],"aliases_ascii":[],"keywords":[]},"prince_tone3":{"unicode":"1f934-1f3fd","unicode_alt":"","code_decimal":"🤴🏽","name":"prince tone 3","shortname":":prince_tone3:","category":"people","emoji_order":"468","aliases":[],"aliases_ascii":[],"keywords":[]},"prince_tone4":{"unicode":"1f934-1f3fe","unicode_alt":"","code_decimal":"🤴🏾","name":"prince tone 4","shortname":":prince_tone4:","category":"people","emoji_order":"469","aliases":[],"aliases_ascii":[],"keywords":[]},"prince_tone5":{"unicode":"1f934-1f3ff","unicode_alt":"","code_decimal":"🤴🏿","name":"prince tone 5","shortname":":prince_tone5:","category":"people","emoji_order":"470","aliases":[],"aliases_ascii":[],"keywords":[]},"bride_with_veil":{"unicode":"1f470","unicode_alt":"","code_decimal":"👰","name":"bride with veil","shortname":":bride_with_veil:","category":"people","emoji_order":"471","aliases":[],"aliases_ascii":[],"keywords":["people","wedding","women","diversity"]},"bride_with_veil_tone1":{"unicode":"1f470-1f3fb","unicode_alt":"","code_decimal":"👰🏻","name":"bride with veil tone 1","shortname":":bride_with_veil_tone1:","category":"people","emoji_order":"472","aliases":[],"aliases_ascii":[],"keywords":[]},"bride_with_veil_tone2":{"unicode":"1f470-1f3fc","unicode_alt":"","code_decimal":"👰🏼","name":"bride with veil tone 2","shortname":":bride_with_veil_tone2:","category":"people","emoji_order":"473","aliases":[],"aliases_ascii":[],"keywords":[]},"bride_with_veil_tone3":{"unicode":"1f470-1f3fd","unicode_alt":"","code_decimal":"👰🏽","name":"bride with veil tone 3","shortname":":bride_with_veil_tone3:","category":"people","emoji_order":"474","aliases":[],"aliases_ascii":[],"keywords":[]},"bride_with_veil_tone4":{"unicode":"1f470-1f3fe","unicode_alt":"","code_decimal":"👰🏾","name":"bride with veil tone 4","shortname":":bride_with_veil_tone4:","category":"people","emoji_order":"475","aliases":[],"aliases_ascii":[],"keywords":[]},"bride_with_veil_tone5":{"unicode":"1f470-1f3ff","unicode_alt":"","code_decimal":"👰🏿","name":"bride with veil tone 5","shortname":":bride_with_veil_tone5:","category":"people","emoji_order":"476","aliases":[],"aliases_ascii":[],"keywords":[]},"man_in_tuxedo":{"unicode":"1f935","unicode_alt":"","code_decimal":"🤵","name":"man in tuxedo","shortname":":man_in_tuxedo:","category":"people","emoji_order":"477","aliases":[],"aliases_ascii":[],"keywords":[]},"man_in_tuxedo_tone1":{"unicode":"1f935-1f3fb","unicode_alt":"","code_decimal":"🤵🏻","name":"man in tuxedo tone 1","shortname":":man_in_tuxedo_tone1:","category":"people","emoji_order":"478","aliases":[":tuxedo_tone1:"],"aliases_ascii":[],"keywords":[]},"man_in_tuxedo_tone2":{"unicode":"1f935-1f3fc","unicode_alt":"","code_decimal":"🤵🏼","name":"man in tuxedo tone 2","shortname":":man_in_tuxedo_tone2:","category":"people","emoji_order":"479","aliases":[":tuxedo_tone2:"],"aliases_ascii":[],"keywords":[]},"man_in_tuxedo_tone3":{"unicode":"1f935-1f3fd","unicode_alt":"","code_decimal":"🤵🏽","name":"man in tuxedo tone 3","shortname":":man_in_tuxedo_tone3:","category":"people","emoji_order":"480","aliases":[":tuxedo_tone3:"],"aliases_ascii":[],"keywords":[]},"man_in_tuxedo_tone4":{"unicode":"1f935-1f3fe","unicode_alt":"","code_decimal":"🤵🏾","name":"man in tuxedo tone 4","shortname":":man_in_tuxedo_tone4:","category":"people","emoji_order":"481","aliases":[":tuxedo_tone4:"],"aliases_ascii":[],"keywords":[]},"man_in_tuxedo_tone5":{"unicode":"1f935-1f3ff","unicode_alt":"","code_decimal":"🤵🏿","name":"man in tuxedo tone 5","shortname":":man_in_tuxedo_tone5:","category":"people","emoji_order":"482","aliases":[":tuxedo_tone5:"],"aliases_ascii":[],"keywords":[]},"pregnant_woman":{"unicode":"1f930","unicode_alt":"","code_decimal":"🤰","name":"pregnant woman","shortname":":pregnant_woman:","category":"people","emoji_order":"483","aliases":[":expecting_woman:"],"aliases_ascii":[],"keywords":[]},"pregnant_woman_tone1":{"unicode":"1f930-1f3fb","unicode_alt":"","code_decimal":"🤰🏻","name":"pregnant woman tone 1","shortname":":pregnant_woman_tone1:","category":"people","emoji_order":"484","aliases":[":expecting_woman_tone1:"],"aliases_ascii":[],"keywords":[]},"pregnant_woman_tone2":{"unicode":"1f930-1f3fc","unicode_alt":"","code_decimal":"🤰🏼","name":"pregnant woman tone 2","shortname":":pregnant_woman_tone2:","category":"people","emoji_order":"485","aliases":[":expecting_woman_tone2:"],"aliases_ascii":[],"keywords":[]},"pregnant_woman_tone3":{"unicode":"1f930-1f3fd","unicode_alt":"","code_decimal":"🤰🏽","name":"pregnant woman tone 3","shortname":":pregnant_woman_tone3:","category":"people","emoji_order":"486","aliases":[":expecting_woman_tone3:"],"aliases_ascii":[],"keywords":[]},"pregnant_woman_tone4":{"unicode":"1f930-1f3fe","unicode_alt":"","code_decimal":"🤰🏾","name":"pregnant woman tone 4","shortname":":pregnant_woman_tone4:","category":"people","emoji_order":"487","aliases":[":expecting_woman_tone4:"],"aliases_ascii":[],"keywords":[]},"pregnant_woman_tone5":{"unicode":"1f930-1f3ff","unicode_alt":"","code_decimal":"🤰🏿","name":"pregnant woman tone 5","shortname":":pregnant_woman_tone5:","category":"people","emoji_order":"488","aliases":[":expecting_woman_tone5:"],"aliases_ascii":[],"keywords":[]},"man_with_gua_pi_mao":{"unicode":"1f472","unicode_alt":"","code_decimal":"👲","name":"man with gua pi mao","shortname":":man_with_gua_pi_mao:","category":"people","emoji_order":"489","aliases":[],"aliases_ascii":[],"keywords":["people","hat","men","diversity"]},"man_with_gua_pi_mao_tone1":{"unicode":"1f472-1f3fb","unicode_alt":"","code_decimal":"👲🏻","name":"man with gua pi mao tone 1","shortname":":man_with_gua_pi_mao_tone1:","category":"people","emoji_order":"490","aliases":[],"aliases_ascii":[],"keywords":[]},"man_with_gua_pi_mao_tone2":{"unicode":"1f472-1f3fc","unicode_alt":"","code_decimal":"👲🏼","name":"man with gua pi mao tone 2","shortname":":man_with_gua_pi_mao_tone2:","category":"people","emoji_order":"491","aliases":[],"aliases_ascii":[],"keywords":[]},"man_with_gua_pi_mao_tone3":{"unicode":"1f472-1f3fd","unicode_alt":"","code_decimal":"👲🏽","name":"man with gua pi mao tone 3","shortname":":man_with_gua_pi_mao_tone3:","category":"people","emoji_order":"492","aliases":[],"aliases_ascii":[],"keywords":[]},"man_with_gua_pi_mao_tone4":{"unicode":"1f472-1f3fe","unicode_alt":"","code_decimal":"👲🏾","name":"man with gua pi mao tone 4","shortname":":man_with_gua_pi_mao_tone4:","category":"people","emoji_order":"493","aliases":[],"aliases_ascii":[],"keywords":[]},"man_with_gua_pi_mao_tone5":{"unicode":"1f472-1f3ff","unicode_alt":"","code_decimal":"👲🏿","name":"man with gua pi mao tone 5","shortname":":man_with_gua_pi_mao_tone5:","category":"people","emoji_order":"494","aliases":[],"aliases_ascii":[],"keywords":[]},"person_frowning":{"unicode":"1f64d","unicode_alt":"","code_decimal":"🙍","name":"person frowning","shortname":":person_frowning:","category":"people","emoji_order":"495","aliases":[],"aliases_ascii":[],"keywords":["people","women","diversity"]},"person_frowning_tone1":{"unicode":"1f64d-1f3fb","unicode_alt":"","code_decimal":"🙍🏻","name":"person frowning tone 1","shortname":":person_frowning_tone1:","category":"people","emoji_order":"496","aliases":[],"aliases_ascii":[],"keywords":[]},"person_frowning_tone2":{"unicode":"1f64d-1f3fc","unicode_alt":"","code_decimal":"🙍🏼","name":"person frowning tone 2","shortname":":person_frowning_tone2:","category":"people","emoji_order":"497","aliases":[],"aliases_ascii":[],"keywords":[]},"person_frowning_tone3":{"unicode":"1f64d-1f3fd","unicode_alt":"","code_decimal":"🙍🏽","name":"person frowning tone 3","shortname":":person_frowning_tone3:","category":"people","emoji_order":"498","aliases":[],"aliases_ascii":[],"keywords":[]},"person_frowning_tone4":{"unicode":"1f64d-1f3fe","unicode_alt":"","code_decimal":"🙍🏾","name":"person frowning tone 4","shortname":":person_frowning_tone4:","category":"people","emoji_order":"499","aliases":[],"aliases_ascii":[],"keywords":[]},"person_frowning_tone5":{"unicode":"1f64d-1f3ff","unicode_alt":"","code_decimal":"🙍🏿","name":"person frowning tone 5","shortname":":person_frowning_tone5:","category":"people","emoji_order":"500","aliases":[],"aliases_ascii":[],"keywords":[]},"person_with_pouting_face":{"unicode":"1f64e","unicode_alt":"","code_decimal":"🙎","name":"person with pouting face","shortname":":person_with_pouting_face:","category":"people","emoji_order":"513","aliases":[],"aliases_ascii":[],"keywords":["people","women","diversity"]},"person_with_pouting_face_tone1":{"unicode":"1f64e-1f3fb","unicode_alt":"","code_decimal":"🙎🏻","name":"person with pouting face tone1","shortname":":person_with_pouting_face_tone1:","category":"people","emoji_order":"514","aliases":[],"aliases_ascii":[],"keywords":[]},"person_with_pouting_face_tone2":{"unicode":"1f64e-1f3fc","unicode_alt":"","code_decimal":"🙎🏼","name":"person with pouting face tone2","shortname":":person_with_pouting_face_tone2:","category":"people","emoji_order":"515","aliases":[],"aliases_ascii":[],"keywords":[]},"person_with_pouting_face_tone3":{"unicode":"1f64e-1f3fd","unicode_alt":"","code_decimal":"🙎🏽","name":"person with pouting face tone3","shortname":":person_with_pouting_face_tone3:","category":"people","emoji_order":"516","aliases":[],"aliases_ascii":[],"keywords":[]},"person_with_pouting_face_tone4":{"unicode":"1f64e-1f3fe","unicode_alt":"","code_decimal":"🙎🏾","name":"person with pouting face tone4","shortname":":person_with_pouting_face_tone4:","category":"people","emoji_order":"517","aliases":[],"aliases_ascii":[],"keywords":[]},"person_with_pouting_face_tone5":{"unicode":"1f64e-1f3ff","unicode_alt":"","code_decimal":"🙎🏿","name":"person with pouting face tone5","shortname":":person_with_pouting_face_tone5:","category":"people","emoji_order":"518","aliases":[],"aliases_ascii":[],"keywords":[]},"no_good":{"unicode":"1f645","unicode_alt":"","code_decimal":"🙅","name":"face with no good gesture","shortname":":no_good:","category":"people","emoji_order":"531","aliases":[],"aliases_ascii":[],"keywords":["people","women","diversity","girls night"]},"no_good_tone1":{"unicode":"1f645-1f3fb","unicode_alt":"","code_decimal":"🙅🏻","name":"face with no good gesture tone 1","shortname":":no_good_tone1:","category":"people","emoji_order":"532","aliases":[],"aliases_ascii":[],"keywords":[]},"no_good_tone2":{"unicode":"1f645-1f3fc","unicode_alt":"","code_decimal":"🙅🏼","name":"face with no good gesture tone 2","shortname":":no_good_tone2:","category":"people","emoji_order":"533","aliases":[],"aliases_ascii":[],"keywords":[]},"no_good_tone3":{"unicode":"1f645-1f3fd","unicode_alt":"","code_decimal":"🙅🏽","name":"face with no good gesture tone 3","shortname":":no_good_tone3:","category":"people","emoji_order":"534","aliases":[],"aliases_ascii":[],"keywords":[]},"no_good_tone4":{"unicode":"1f645-1f3fe","unicode_alt":"","code_decimal":"🙅🏾","name":"face with no good gesture tone 4","shortname":":no_good_tone4:","category":"people","emoji_order":"535","aliases":[],"aliases_ascii":[],"keywords":[]},"no_good_tone5":{"unicode":"1f645-1f3ff","unicode_alt":"","code_decimal":"🙅🏿","name":"face with no good gesture tone 5","shortname":":no_good_tone5:","category":"people","emoji_order":"536","aliases":[],"aliases_ascii":[],"keywords":[]},"ok_woman":{"unicode":"1f646","unicode_alt":"","code_decimal":"🙆","name":"face with ok gesture","shortname":":ok_woman:","category":"people","emoji_order":"549","aliases":[],"aliases_ascii":["*\\0\/*","\\0\/","*\\O\/*","\\O\/"],"keywords":["people","women","diversity"]},"ok_woman_tone1":{"unicode":"1f646-1f3fb","unicode_alt":"","code_decimal":"🙆🏻","name":"face with ok gesture tone1","shortname":":ok_woman_tone1:","category":"people","emoji_order":"550","aliases":[],"aliases_ascii":[],"keywords":[]},"ok_woman_tone2":{"unicode":"1f646-1f3fc","unicode_alt":"","code_decimal":"🙆🏼","name":"face with ok gesture tone2","shortname":":ok_woman_tone2:","category":"people","emoji_order":"551","aliases":[],"aliases_ascii":[],"keywords":[]},"ok_woman_tone3":{"unicode":"1f646-1f3fd","unicode_alt":"","code_decimal":"🙆🏽","name":"face with ok gesture tone3","shortname":":ok_woman_tone3:","category":"people","emoji_order":"552","aliases":[],"aliases_ascii":[],"keywords":[]},"ok_woman_tone4":{"unicode":"1f646-1f3fe","unicode_alt":"","code_decimal":"🙆🏾","name":"face with ok gesture tone4","shortname":":ok_woman_tone4:","category":"people","emoji_order":"553","aliases":[],"aliases_ascii":[],"keywords":[]},"ok_woman_tone5":{"unicode":"1f646-1f3ff","unicode_alt":"","code_decimal":"🙆🏿","name":"face with ok gesture tone5","shortname":":ok_woman_tone5:","category":"people","emoji_order":"554","aliases":[],"aliases_ascii":[],"keywords":[]},"information_desk_person":{"unicode":"1f481","unicode_alt":"","code_decimal":"💁","name":"information desk person","shortname":":information_desk_person:","category":"people","emoji_order":"567","aliases":[],"aliases_ascii":[],"keywords":["people","women","diversity"]},"information_desk_person_tone1":{"unicode":"1f481-1f3fb","unicode_alt":"","code_decimal":"💁🏻","name":"information desk person tone 1","shortname":":information_desk_person_tone1:","category":"people","emoji_order":"568","aliases":[],"aliases_ascii":[],"keywords":[]},"information_desk_person_tone2":{"unicode":"1f481-1f3fc","unicode_alt":"","code_decimal":"💁🏼","name":"information desk person tone 2","shortname":":information_desk_person_tone2:","category":"people","emoji_order":"569","aliases":[],"aliases_ascii":[],"keywords":[]},"information_desk_person_tone3":{"unicode":"1f481-1f3fd","unicode_alt":"","code_decimal":"💁🏽","name":"information desk person tone 3","shortname":":information_desk_person_tone3:","category":"people","emoji_order":"570","aliases":[],"aliases_ascii":[],"keywords":[]},"information_desk_person_tone4":{"unicode":"1f481-1f3fe","unicode_alt":"","code_decimal":"💁🏾","name":"information desk person tone 4","shortname":":information_desk_person_tone4:","category":"people","emoji_order":"571","aliases":[],"aliases_ascii":[],"keywords":[]},"information_desk_person_tone5":{"unicode":"1f481-1f3ff","unicode_alt":"","code_decimal":"💁🏿","name":"information desk person tone 5","shortname":":information_desk_person_tone5:","category":"people","emoji_order":"572","aliases":[],"aliases_ascii":[],"keywords":[]},"raising_hand":{"unicode":"1f64b","unicode_alt":"","code_decimal":"🙋","name":"happy person raising one hand","shortname":":raising_hand:","category":"people","emoji_order":"585","aliases":[],"aliases_ascii":[],"keywords":["people","women","diversity"]},"raising_hand_tone1":{"unicode":"1f64b-1f3fb","unicode_alt":"","code_decimal":"🙋🏻","name":"happy person raising one hand tone1","shortname":":raising_hand_tone1:","category":"people","emoji_order":"586","aliases":[],"aliases_ascii":[],"keywords":[]},"raising_hand_tone2":{"unicode":"1f64b-1f3fc","unicode_alt":"","code_decimal":"🙋🏼","name":"happy person raising one hand tone2","shortname":":raising_hand_tone2:","category":"people","emoji_order":"587","aliases":[],"aliases_ascii":[],"keywords":[]},"raising_hand_tone3":{"unicode":"1f64b-1f3fd","unicode_alt":"","code_decimal":"🙋🏽","name":"happy person raising one hand tone3","shortname":":raising_hand_tone3:","category":"people","emoji_order":"588","aliases":[],"aliases_ascii":[],"keywords":[]},"raising_hand_tone4":{"unicode":"1f64b-1f3fe","unicode_alt":"","code_decimal":"🙋🏾","name":"happy person raising one hand tone4","shortname":":raising_hand_tone4:","category":"people","emoji_order":"589","aliases":[],"aliases_ascii":[],"keywords":[]},"raising_hand_tone5":{"unicode":"1f64b-1f3ff","unicode_alt":"","code_decimal":"🙋🏿","name":"happy person raising one hand tone5","shortname":":raising_hand_tone5:","category":"people","emoji_order":"590","aliases":[],"aliases_ascii":[],"keywords":[]},"bow":{"unicode":"1f647","unicode_alt":"","code_decimal":"🙇","name":"person bowing deeply","shortname":":bow:","category":"people","emoji_order":"603","aliases":[],"aliases_ascii":[],"keywords":["people","pray","diversity"]},"bow_tone1":{"unicode":"1f647-1f3fb","unicode_alt":"","code_decimal":"🙇🏻","name":"person bowing deeply tone 1","shortname":":bow_tone1:","category":"people","emoji_order":"604","aliases":[],"aliases_ascii":[],"keywords":[]},"bow_tone2":{"unicode":"1f647-1f3fc","unicode_alt":"","code_decimal":"🙇🏼","name":"person bowing deeply tone 2","shortname":":bow_tone2:","category":"people","emoji_order":"605","aliases":[],"aliases_ascii":[],"keywords":[]},"bow_tone3":{"unicode":"1f647-1f3fd","unicode_alt":"","code_decimal":"🙇🏽","name":"person bowing deeply tone 3","shortname":":bow_tone3:","category":"people","emoji_order":"606","aliases":[],"aliases_ascii":[],"keywords":[]},"bow_tone4":{"unicode":"1f647-1f3fe","unicode_alt":"","code_decimal":"🙇🏾","name":"person bowing deeply tone 4","shortname":":bow_tone4:","category":"people","emoji_order":"607","aliases":[],"aliases_ascii":[],"keywords":[]},"bow_tone5":{"unicode":"1f647-1f3ff","unicode_alt":"","code_decimal":"🙇🏿","name":"person bowing deeply tone 5","shortname":":bow_tone5:","category":"people","emoji_order":"608","aliases":[],"aliases_ascii":[],"keywords":[]},"face_palm":{"unicode":"1f926","unicode_alt":"","code_decimal":"🤦","name":"face palm","shortname":":face_palm:","category":"people","emoji_order":"621","aliases":[":facepalm:"],"aliases_ascii":[],"keywords":[]},"face_palm_tone1":{"unicode":"1f926-1f3fb","unicode_alt":"","code_decimal":"🤦🏻","name":"face palm tone 1","shortname":":face_palm_tone1:","category":"people","emoji_order":"622","aliases":[":facepalm_tone1:"],"aliases_ascii":[],"keywords":[]},"face_palm_tone2":{"unicode":"1f926-1f3fc","unicode_alt":"","code_decimal":"🤦🏼","name":"face palm tone 2","shortname":":face_palm_tone2:","category":"people","emoji_order":"623","aliases":[":facepalm_tone2:"],"aliases_ascii":[],"keywords":[]},"face_palm_tone3":{"unicode":"1f926-1f3fd","unicode_alt":"","code_decimal":"🤦🏽","name":"face palm tone 3","shortname":":face_palm_tone3:","category":"people","emoji_order":"624","aliases":[":facepalm_tone3:"],"aliases_ascii":[],"keywords":[]},"face_palm_tone4":{"unicode":"1f926-1f3fe","unicode_alt":"","code_decimal":"🤦🏾","name":"face palm tone 4","shortname":":face_palm_tone4:","category":"people","emoji_order":"625","aliases":[":facepalm_tone4:"],"aliases_ascii":[],"keywords":[]},"face_palm_tone5":{"unicode":"1f926-1f3ff","unicode_alt":"","code_decimal":"🤦🏿","name":"face palm tone 5","shortname":":face_palm_tone5:","category":"people","emoji_order":"626","aliases":[":facepalm_tone5:"],"aliases_ascii":[],"keywords":[]},"shrug":{"unicode":"1f937","unicode_alt":"","code_decimal":"🤷","name":"shrug","shortname":":shrug:","category":"people","emoji_order":"639","aliases":[],"aliases_ascii":[],"keywords":[]},"shrug_tone1":{"unicode":"1f937-1f3fb","unicode_alt":"","code_decimal":"🤷🏻","name":"shrug tone 1","shortname":":shrug_tone1:","category":"people","emoji_order":"640","aliases":[],"aliases_ascii":[],"keywords":[]},"shrug_tone2":{"unicode":"1f937-1f3fc","unicode_alt":"","code_decimal":"🤷🏼","name":"shrug tone 2","shortname":":shrug_tone2:","category":"people","emoji_order":"641","aliases":[],"aliases_ascii":[],"keywords":[]},"shrug_tone3":{"unicode":"1f937-1f3fd","unicode_alt":"","code_decimal":"🤷🏽","name":"shrug tone 3","shortname":":shrug_tone3:","category":"people","emoji_order":"642","aliases":[],"aliases_ascii":[],"keywords":[]},"shrug_tone4":{"unicode":"1f937-1f3fe","unicode_alt":"","code_decimal":"🤷🏾","name":"shrug tone 4","shortname":":shrug_tone4:","category":"people","emoji_order":"643","aliases":[],"aliases_ascii":[],"keywords":[]},"shrug_tone5":{"unicode":"1f937-1f3ff","unicode_alt":"","code_decimal":"🤷🏿","name":"shrug tone 5","shortname":":shrug_tone5:","category":"people","emoji_order":"644","aliases":[],"aliases_ascii":[],"keywords":[]},"massage":{"unicode":"1f486","unicode_alt":"","code_decimal":"💆","name":"face massage","shortname":":massage:","category":"people","emoji_order":"657","aliases":[],"aliases_ascii":[],"keywords":["people","women","diversity"]},"massage_tone1":{"unicode":"1f486-1f3fb","unicode_alt":"","code_decimal":"💆🏻","name":"face massage tone 1","shortname":":massage_tone1:","category":"people","emoji_order":"658","aliases":[],"aliases_ascii":[],"keywords":[]},"massage_tone2":{"unicode":"1f486-1f3fc","unicode_alt":"","code_decimal":"💆🏼","name":"face massage tone 2","shortname":":massage_tone2:","category":"people","emoji_order":"659","aliases":[],"aliases_ascii":[],"keywords":[]},"massage_tone3":{"unicode":"1f486-1f3fd","unicode_alt":"","code_decimal":"💆🏽","name":"face massage tone 3","shortname":":massage_tone3:","category":"people","emoji_order":"660","aliases":[],"aliases_ascii":[],"keywords":[]},"massage_tone4":{"unicode":"1f486-1f3fe","unicode_alt":"","code_decimal":"💆🏾","name":"face massage tone 4","shortname":":massage_tone4:","category":"people","emoji_order":"661","aliases":[],"aliases_ascii":[],"keywords":[]},"massage_tone5":{"unicode":"1f486-1f3ff","unicode_alt":"","code_decimal":"💆🏿","name":"face massage tone 5","shortname":":massage_tone5:","category":"people","emoji_order":"662","aliases":[],"aliases_ascii":[],"keywords":[]},"haircut":{"unicode":"1f487","unicode_alt":"","code_decimal":"💇","name":"haircut","shortname":":haircut:","category":"people","emoji_order":"675","aliases":[],"aliases_ascii":[],"keywords":["people","women","diversity"]},"haircut_tone1":{"unicode":"1f487-1f3fb","unicode_alt":"","code_decimal":"💇🏻","name":"haircut tone 1","shortname":":haircut_tone1:","category":"people","emoji_order":"676","aliases":[],"aliases_ascii":[],"keywords":[]},"haircut_tone2":{"unicode":"1f487-1f3fc","unicode_alt":"","code_decimal":"💇🏼","name":"haircut tone 2","shortname":":haircut_tone2:","category":"people","emoji_order":"677","aliases":[],"aliases_ascii":[],"keywords":[]},"haircut_tone3":{"unicode":"1f487-1f3fd","unicode_alt":"","code_decimal":"💇🏽","name":"haircut tone 3","shortname":":haircut_tone3:","category":"people","emoji_order":"678","aliases":[],"aliases_ascii":[],"keywords":[]},"haircut_tone4":{"unicode":"1f487-1f3fe","unicode_alt":"","code_decimal":"💇🏾","name":"haircut tone 4","shortname":":haircut_tone4:","category":"people","emoji_order":"679","aliases":[],"aliases_ascii":[],"keywords":[]},"haircut_tone5":{"unicode":"1f487-1f3ff","unicode_alt":"","code_decimal":"💇🏿","name":"haircut tone 5","shortname":":haircut_tone5:","category":"people","emoji_order":"680","aliases":[],"aliases_ascii":[],"keywords":[]},"walking":{"unicode":"1f6b6","unicode_alt":"","code_decimal":"🚶","name":"pedestrian","shortname":":walking:","category":"people","emoji_order":"693","aliases":[],"aliases_ascii":[],"keywords":["people","men","diversity"]},"walking_tone1":{"unicode":"1f6b6-1f3fb","unicode_alt":"","code_decimal":"🚶🏻","name":"pedestrian tone 1","shortname":":walking_tone1:","category":"people","emoji_order":"694","aliases":[],"aliases_ascii":[],"keywords":[]},"walking_tone2":{"unicode":"1f6b6-1f3fc","unicode_alt":"","code_decimal":"🚶🏼","name":"pedestrian tone 2","shortname":":walking_tone2:","category":"people","emoji_order":"695","aliases":[],"aliases_ascii":[],"keywords":[]},"walking_tone3":{"unicode":"1f6b6-1f3fd","unicode_alt":"","code_decimal":"🚶🏽","name":"pedestrian tone 3","shortname":":walking_tone3:","category":"people","emoji_order":"696","aliases":[],"aliases_ascii":[],"keywords":[]},"walking_tone4":{"unicode":"1f6b6-1f3fe","unicode_alt":"","code_decimal":"🚶🏾","name":"pedestrian tone 4","shortname":":walking_tone4:","category":"people","emoji_order":"697","aliases":[],"aliases_ascii":[],"keywords":[]},"walking_tone5":{"unicode":"1f6b6-1f3ff","unicode_alt":"","code_decimal":"🚶🏿","name":"pedestrian tone 5","shortname":":walking_tone5:","category":"people","emoji_order":"698","aliases":[],"aliases_ascii":[],"keywords":[]},"runner":{"unicode":"1f3c3","unicode_alt":"","code_decimal":"🏃","name":"runner","shortname":":runner:","category":"people","emoji_order":"711","aliases":[],"aliases_ascii":[],"keywords":["people","men","diversity","boys night","run"]},"runner_tone1":{"unicode":"1f3c3-1f3fb","unicode_alt":"","code_decimal":"🏃🏻","name":"runner tone 1","shortname":":runner_tone1:","category":"people","emoji_order":"712","aliases":[],"aliases_ascii":[],"keywords":[]},"runner_tone2":{"unicode":"1f3c3-1f3fc","unicode_alt":"","code_decimal":"🏃🏼","name":"runner tone 2","shortname":":runner_tone2:","category":"people","emoji_order":"713","aliases":[],"aliases_ascii":[],"keywords":[]},"runner_tone3":{"unicode":"1f3c3-1f3fd","unicode_alt":"","code_decimal":"🏃🏽","name":"runner tone 3","shortname":":runner_tone3:","category":"people","emoji_order":"714","aliases":[],"aliases_ascii":[],"keywords":[]},"runner_tone4":{"unicode":"1f3c3-1f3fe","unicode_alt":"","code_decimal":"🏃🏾","name":"runner tone 4","shortname":":runner_tone4:","category":"people","emoji_order":"715","aliases":[],"aliases_ascii":[],"keywords":[]},"runner_tone5":{"unicode":"1f3c3-1f3ff","unicode_alt":"","code_decimal":"🏃🏿","name":"runner tone 5","shortname":":runner_tone5:","category":"people","emoji_order":"716","aliases":[],"aliases_ascii":[],"keywords":[]},"dancer":{"unicode":"1f483","unicode_alt":"","code_decimal":"💃","name":"dancer","shortname":":dancer:","category":"people","emoji_order":"729","aliases":[],"aliases_ascii":[],"keywords":["people","women","sexy","diversity","girls night","dance"]},"dancer_tone1":{"unicode":"1f483-1f3fb","unicode_alt":"","code_decimal":"💃🏻","name":"dancer tone 1","shortname":":dancer_tone1:","category":"people","emoji_order":"730","aliases":[],"aliases_ascii":[],"keywords":[]},"dancer_tone2":{"unicode":"1f483-1f3fc","unicode_alt":"","code_decimal":"💃🏼","name":"dancer tone 2","shortname":":dancer_tone2:","category":"people","emoji_order":"731","aliases":[],"aliases_ascii":[],"keywords":[]},"dancer_tone3":{"unicode":"1f483-1f3fd","unicode_alt":"","code_decimal":"💃🏽","name":"dancer tone 3","shortname":":dancer_tone3:","category":"people","emoji_order":"732","aliases":[],"aliases_ascii":[],"keywords":[]},"dancer_tone4":{"unicode":"1f483-1f3fe","unicode_alt":"","code_decimal":"💃🏾","name":"dancer tone 4","shortname":":dancer_tone4:","category":"people","emoji_order":"733","aliases":[],"aliases_ascii":[],"keywords":[]},"dancer_tone5":{"unicode":"1f483-1f3ff","unicode_alt":"","code_decimal":"💃🏿","name":"dancer tone 5","shortname":":dancer_tone5:","category":"people","emoji_order":"734","aliases":[],"aliases_ascii":[],"keywords":[]},"man_dancing":{"unicode":"1f57a","unicode_alt":"","code_decimal":"🕺","name":"man dancing","shortname":":man_dancing:","category":"people","emoji_order":"735","aliases":[":male_dancer:"],"aliases_ascii":[],"keywords":[]},"man_dancing_tone1":{"unicode":"1f57a-1f3fb","unicode_alt":"","code_decimal":"🕺🏻","name":"man dancing tone 1","shortname":":man_dancing_tone1:","category":"people","emoji_order":"736","aliases":[":male_dancer_tone1:"],"aliases_ascii":[],"keywords":[]},"man_dancing_tone2":{"unicode":"1f57a-1f3fc","unicode_alt":"","code_decimal":"🕺🏼","name":"man dancing tone 2","shortname":":man_dancing_tone2:","category":"people","emoji_order":"737","aliases":[":male_dancer_tone2:"],"aliases_ascii":[],"keywords":[]},"man_dancing_tone3":{"unicode":"1f57a-1f3fd","unicode_alt":"","code_decimal":"🕺🏽","name":"man dancing tone 3","shortname":":man_dancing_tone3:","category":"people","emoji_order":"738","aliases":[":male_dancer_tone3:"],"aliases_ascii":[],"keywords":[]},"man_dancing_tone4":{"unicode":"1f57a-1f3fe","unicode_alt":"","code_decimal":"🕺🏾","name":"man dancing tone 4","shortname":":man_dancing_tone4:","category":"people","emoji_order":"739","aliases":[":male_dancer_tone4:"],"aliases_ascii":[],"keywords":[]},"man_dancing_tone5":{"unicode":"1f57a-1f3ff","unicode_alt":"","code_decimal":"🕺🏿","name":"man dancing tone 5","shortname":":man_dancing_tone5:","category":"people","emoji_order":"740","aliases":[":male_dancer_tone5:"],"aliases_ascii":[],"keywords":[]},"dancers":{"unicode":"1f46f","unicode_alt":"","code_decimal":"👯","name":"woman with bunny ears","shortname":":dancers:","category":"people","emoji_order":"741","aliases":[],"aliases_ascii":[],"keywords":["people","women","sexy","girls night","boys night","parties","dance"]},"levitate":{"unicode":"1f574","unicode_alt":"1f574-fe0f","code_decimal":"🕴","name":"man in business suit levitating","shortname":":levitate:","category":"activity","emoji_order":"759","aliases":[":man_in_business_suit_levitating:"],"aliases_ascii":[],"keywords":["men","job"]},"speaking_head":{"unicode":"1f5e3","unicode_alt":"1f5e3-fe0f","code_decimal":"🗣","name":"speaking head in silhouette","shortname":":speaking_head:","category":"people","emoji_order":"765","aliases":[":speaking_head_in_silhouette:"],"aliases_ascii":[],"keywords":["people","talk"]},"bust_in_silhouette":{"unicode":"1f464","unicode_alt":"","code_decimal":"👤","name":"bust in silhouette","shortname":":bust_in_silhouette:","category":"people","emoji_order":"766","aliases":[],"aliases_ascii":[],"keywords":["people"]},"busts_in_silhouette":{"unicode":"1f465","unicode_alt":"","code_decimal":"👥","name":"busts in silhouette","shortname":":busts_in_silhouette:","category":"people","emoji_order":"767","aliases":[],"aliases_ascii":[],"keywords":["people"]},"fencer":{"unicode":"1f93a","unicode_alt":"","code_decimal":"🤺","name":"fencer","shortname":":fencer:","category":"activity","emoji_order":"768","aliases":[":fencing:"],"aliases_ascii":[],"keywords":[]},"horse_racing":{"unicode":"1f3c7","unicode_alt":"","code_decimal":"🏇","name":"horse racing","shortname":":horse_racing:","category":"activity","emoji_order":"769","aliases":[],"aliases_ascii":[],"keywords":["men","sport","horse racing"]},"horse_racing_tone1":{"unicode":"1f3c7-1f3fb","unicode_alt":"","code_decimal":"🏇🏻","name":"horse racing tone 1","shortname":":horse_racing_tone1:","category":"activity","emoji_order":"770","aliases":[],"aliases_ascii":[],"keywords":[]},"horse_racing_tone2":{"unicode":"1f3c7-1f3fc","unicode_alt":"","code_decimal":"🏇🏼","name":"horse racing tone 2","shortname":":horse_racing_tone2:","category":"activity","emoji_order":"771","aliases":[],"aliases_ascii":[],"keywords":[]},"horse_racing_tone3":{"unicode":"1f3c7-1f3fd","unicode_alt":"","code_decimal":"🏇🏽","name":"horse racing tone 3","shortname":":horse_racing_tone3:","category":"activity","emoji_order":"772","aliases":[],"aliases_ascii":[],"keywords":[]},"horse_racing_tone4":{"unicode":"1f3c7-1f3fe","unicode_alt":"","code_decimal":"🏇🏾","name":"horse racing tone 4","shortname":":horse_racing_tone4:","category":"activity","emoji_order":"773","aliases":[],"aliases_ascii":[],"keywords":[]},"horse_racing_tone5":{"unicode":"1f3c7-1f3ff","unicode_alt":"","code_decimal":"🏇🏿","name":"horse racing tone 5","shortname":":horse_racing_tone5:","category":"activity","emoji_order":"774","aliases":[],"aliases_ascii":[],"keywords":[]},"skier":{"unicode":"26f7","unicode_alt":"26f7-fe0f","code_decimal":"⛷","name":"skier","shortname":":skier:","category":"activity","emoji_order":"775","aliases":[],"aliases_ascii":[],"keywords":["hat","vacation","cold","sport","skiing"]},"snowboarder":{"unicode":"1f3c2","unicode_alt":"","code_decimal":"🏂","name":"snowboarder","shortname":":snowboarder:","category":"activity","emoji_order":"776","aliases":[],"aliases_ascii":[],"keywords":["hat","vacation","cold","sport","snowboarding"]},"golfer":{"unicode":"1f3cc","unicode_alt":"1f3cc-fe0f","code_decimal":"🏌","name":"golfer","shortname":":golfer:","category":"activity","emoji_order":"782","aliases":[],"aliases_ascii":[],"keywords":["men","game","ball","vacation","sport","golf"]},"surfer":{"unicode":"1f3c4","unicode_alt":"","code_decimal":"🏄","name":"surfer","shortname":":surfer:","category":"activity","emoji_order":"800","aliases":[],"aliases_ascii":[],"keywords":["men","vacation","tropical","sport","diversity"]},"surfer_tone1":{"unicode":"1f3c4-1f3fb","unicode_alt":"","code_decimal":"🏄🏻","name":"surfer tone 1","shortname":":surfer_tone1:","category":"activity","emoji_order":"801","aliases":[],"aliases_ascii":[],"keywords":[]},"surfer_tone2":{"unicode":"1f3c4-1f3fc","unicode_alt":"","code_decimal":"🏄🏼","name":"surfer tone 2","shortname":":surfer_tone2:","category":"activity","emoji_order":"802","aliases":[],"aliases_ascii":[],"keywords":[]},"surfer_tone3":{"unicode":"1f3c4-1f3fd","unicode_alt":"","code_decimal":"🏄🏽","name":"surfer tone 3","shortname":":surfer_tone3:","category":"activity","emoji_order":"803","aliases":[],"aliases_ascii":[],"keywords":[]},"surfer_tone4":{"unicode":"1f3c4-1f3fe","unicode_alt":"","code_decimal":"🏄🏾","name":"surfer tone 4","shortname":":surfer_tone4:","category":"activity","emoji_order":"804","aliases":[],"aliases_ascii":[],"keywords":[]},"surfer_tone5":{"unicode":"1f3c4-1f3ff","unicode_alt":"","code_decimal":"🏄🏿","name":"surfer tone 5","shortname":":surfer_tone5:","category":"activity","emoji_order":"805","aliases":[],"aliases_ascii":[],"keywords":[]},"rowboat":{"unicode":"1f6a3","unicode_alt":"","code_decimal":"🚣","name":"rowboat","shortname":":rowboat:","category":"activity","emoji_order":"818","aliases":[],"aliases_ascii":[],"keywords":["men","workout","sport","rowing","diversity"]},"rowboat_tone1":{"unicode":"1f6a3-1f3fb","unicode_alt":"","code_decimal":"🚣🏻","name":"rowboat tone 1","shortname":":rowboat_tone1:","category":"activity","emoji_order":"819","aliases":[],"aliases_ascii":[],"keywords":[]},"rowboat_tone2":{"unicode":"1f6a3-1f3fc","unicode_alt":"","code_decimal":"🚣🏼","name":"rowboat tone 2","shortname":":rowboat_tone2:","category":"activity","emoji_order":"820","aliases":[],"aliases_ascii":[],"keywords":[]},"rowboat_tone3":{"unicode":"1f6a3-1f3fd","unicode_alt":"","code_decimal":"🚣🏽","name":"rowboat tone 3","shortname":":rowboat_tone3:","category":"activity","emoji_order":"821","aliases":[],"aliases_ascii":[],"keywords":[]},"rowboat_tone4":{"unicode":"1f6a3-1f3fe","unicode_alt":"","code_decimal":"🚣🏾","name":"rowboat tone 4","shortname":":rowboat_tone4:","category":"activity","emoji_order":"822","aliases":[],"aliases_ascii":[],"keywords":[]},"rowboat_tone5":{"unicode":"1f6a3-1f3ff","unicode_alt":"","code_decimal":"🚣🏿","name":"rowboat tone 5","shortname":":rowboat_tone5:","category":"activity","emoji_order":"823","aliases":[],"aliases_ascii":[],"keywords":[]},"swimmer":{"unicode":"1f3ca","unicode_alt":"","code_decimal":"🏊","name":"swimmer","shortname":":swimmer:","category":"activity","emoji_order":"836","aliases":[],"aliases_ascii":[],"keywords":["workout","sport","swim","diversity"]},"swimmer_tone1":{"unicode":"1f3ca-1f3fb","unicode_alt":"","code_decimal":"🏊🏻","name":"swimmer tone 1","shortname":":swimmer_tone1:","category":"activity","emoji_order":"837","aliases":[],"aliases_ascii":[],"keywords":[]},"swimmer_tone2":{"unicode":"1f3ca-1f3fc","unicode_alt":"","code_decimal":"🏊🏼","name":"swimmer tone 2","shortname":":swimmer_tone2:","category":"activity","emoji_order":"838","aliases":[],"aliases_ascii":[],"keywords":[]},"swimmer_tone3":{"unicode":"1f3ca-1f3fd","unicode_alt":"","code_decimal":"🏊🏽","name":"swimmer tone 3","shortname":":swimmer_tone3:","category":"activity","emoji_order":"839","aliases":[],"aliases_ascii":[],"keywords":[]},"swimmer_tone4":{"unicode":"1f3ca-1f3fe","unicode_alt":"","code_decimal":"🏊🏾","name":"swimmer tone 4","shortname":":swimmer_tone4:","category":"activity","emoji_order":"840","aliases":[],"aliases_ascii":[],"keywords":[]},"swimmer_tone5":{"unicode":"1f3ca-1f3ff","unicode_alt":"","code_decimal":"🏊🏿","name":"swimmer tone 5","shortname":":swimmer_tone5:","category":"activity","emoji_order":"841","aliases":[],"aliases_ascii":[],"keywords":[]},"basketball_player":{"unicode":"26f9","unicode_alt":"26f9-fe0f","code_decimal":"⛹","name":"person with ball","shortname":":basketball_player:","category":"activity","emoji_order":"854","aliases":[":person_with_ball:"],"aliases_ascii":[],"keywords":["men","game","ball","sport","basketball","diversity"]},"basketball_player_tone1":{"unicode":"26f9-1f3fb","unicode_alt":"","code_decimal":"⛹🏻","name":"person with ball tone 1","shortname":":basketball_player_tone1:","category":"activity","emoji_order":"855","aliases":[":person_with_ball_tone1:"],"aliases_ascii":[],"keywords":[]},"basketball_player_tone2":{"unicode":"26f9-1f3fc","unicode_alt":"","code_decimal":"⛹🏼","name":"person with ball tone 2","shortname":":basketball_player_tone2:","category":"activity","emoji_order":"856","aliases":[":person_with_ball_tone2:"],"aliases_ascii":[],"keywords":[]},"basketball_player_tone3":{"unicode":"26f9-1f3fd","unicode_alt":"","code_decimal":"⛹🏽","name":"person with ball tone 3","shortname":":basketball_player_tone3:","category":"activity","emoji_order":"857","aliases":[":person_with_ball_tone3:"],"aliases_ascii":[],"keywords":[]},"basketball_player_tone4":{"unicode":"26f9-1f3fe","unicode_alt":"","code_decimal":"⛹🏾","name":"person with ball tone 4","shortname":":basketball_player_tone4:","category":"activity","emoji_order":"858","aliases":[":person_with_ball_tone4:"],"aliases_ascii":[],"keywords":[]},"basketball_player_tone5":{"unicode":"26f9-1f3ff","unicode_alt":"","code_decimal":"⛹🏿","name":"person with ball tone 5","shortname":":basketball_player_tone5:","category":"activity","emoji_order":"859","aliases":[":person_with_ball_tone5:"],"aliases_ascii":[],"keywords":[]},"lifter":{"unicode":"1f3cb","unicode_alt":"1f3cb-fe0f","code_decimal":"🏋","name":"weight lifter","shortname":":lifter:","category":"activity","emoji_order":"872","aliases":[":weight_lifter:"],"aliases_ascii":[],"keywords":["men","workout","flex","sport","weight lifting","win","diversity"]},"lifter_tone1":{"unicode":"1f3cb-1f3fb","unicode_alt":"","code_decimal":"🏋🏻","name":"weight lifter tone 1","shortname":":lifter_tone1:","category":"activity","emoji_order":"873","aliases":[":weight_lifter_tone1:"],"aliases_ascii":[],"keywords":[]},"lifter_tone2":{"unicode":"1f3cb-1f3fc","unicode_alt":"","code_decimal":"🏋🏼","name":"weight lifter tone 2","shortname":":lifter_tone2:","category":"activity","emoji_order":"874","aliases":[":weight_lifter_tone2:"],"aliases_ascii":[],"keywords":[]},"lifter_tone3":{"unicode":"1f3cb-1f3fd","unicode_alt":"","code_decimal":"🏋🏽","name":"weight lifter tone 3","shortname":":lifter_tone3:","category":"activity","emoji_order":"875","aliases":[":weight_lifter_tone3:"],"aliases_ascii":[],"keywords":[]},"lifter_tone4":{"unicode":"1f3cb-1f3fe","unicode_alt":"","code_decimal":"🏋🏾","name":"weight lifter tone 4","shortname":":lifter_tone4:","category":"activity","emoji_order":"876","aliases":[":weight_lifter_tone4:"],"aliases_ascii":[],"keywords":[]},"lifter_tone5":{"unicode":"1f3cb-1f3ff","unicode_alt":"","code_decimal":"🏋🏿","name":"weight lifter tone 5","shortname":":lifter_tone5:","category":"activity","emoji_order":"877","aliases":[":weight_lifter_tone5:"],"aliases_ascii":[],"keywords":[]},"bicyclist":{"unicode":"1f6b4","unicode_alt":"","code_decimal":"🚴","name":"bicyclist","shortname":":bicyclist:","category":"activity","emoji_order":"890","aliases":[],"aliases_ascii":[],"keywords":["men","workout","sport","bike","diversity"]},"bicyclist_tone1":{"unicode":"1f6b4-1f3fb","unicode_alt":"","code_decimal":"🚴🏻","name":"bicyclist tone 1","shortname":":bicyclist_tone1:","category":"activity","emoji_order":"891","aliases":[],"aliases_ascii":[],"keywords":[]},"bicyclist_tone2":{"unicode":"1f6b4-1f3fc","unicode_alt":"","code_decimal":"🚴🏼","name":"bicyclist tone 2","shortname":":bicyclist_tone2:","category":"activity","emoji_order":"892","aliases":[],"aliases_ascii":[],"keywords":[]},"bicyclist_tone3":{"unicode":"1f6b4-1f3fd","unicode_alt":"","code_decimal":"🚴🏽","name":"bicyclist tone 3","shortname":":bicyclist_tone3:","category":"activity","emoji_order":"893","aliases":[],"aliases_ascii":[],"keywords":[]},"bicyclist_tone4":{"unicode":"1f6b4-1f3fe","unicode_alt":"","code_decimal":"🚴🏾","name":"bicyclist tone 4","shortname":":bicyclist_tone4:","category":"activity","emoji_order":"894","aliases":[],"aliases_ascii":[],"keywords":[]},"bicyclist_tone5":{"unicode":"1f6b4-1f3ff","unicode_alt":"","code_decimal":"🚴🏿","name":"bicyclist tone 5","shortname":":bicyclist_tone5:","category":"activity","emoji_order":"895","aliases":[],"aliases_ascii":[],"keywords":[]},"mountain_bicyclist":{"unicode":"1f6b5","unicode_alt":"","code_decimal":"🚵","name":"mountain bicyclist","shortname":":mountain_bicyclist:","category":"activity","emoji_order":"908","aliases":[],"aliases_ascii":[],"keywords":["men","sport","bike","diversity"]},"mountain_bicyclist_tone1":{"unicode":"1f6b5-1f3fb","unicode_alt":"","code_decimal":"🚵🏻","name":"mountain bicyclist tone 1","shortname":":mountain_bicyclist_tone1:","category":"activity","emoji_order":"909","aliases":[],"aliases_ascii":[],"keywords":[]},"mountain_bicyclist_tone2":{"unicode":"1f6b5-1f3fc","unicode_alt":"","code_decimal":"🚵🏼","name":"mountain bicyclist tone 2","shortname":":mountain_bicyclist_tone2:","category":"activity","emoji_order":"910","aliases":[],"aliases_ascii":[],"keywords":[]},"mountain_bicyclist_tone3":{"unicode":"1f6b5-1f3fd","unicode_alt":"","code_decimal":"🚵🏽","name":"mountain bicyclist tone 3","shortname":":mountain_bicyclist_tone3:","category":"activity","emoji_order":"911","aliases":[],"aliases_ascii":[],"keywords":[]},"mountain_bicyclist_tone4":{"unicode":"1f6b5-1f3fe","unicode_alt":"","code_decimal":"🚵🏾","name":"mountain bicyclist tone 4","shortname":":mountain_bicyclist_tone4:","category":"activity","emoji_order":"912","aliases":[],"aliases_ascii":[],"keywords":[]},"mountain_bicyclist_tone5":{"unicode":"1f6b5-1f3ff","unicode_alt":"","code_decimal":"🚵🏿","name":"mountain bicyclist tone 5","shortname":":mountain_bicyclist_tone5:","category":"activity","emoji_order":"913","aliases":[],"aliases_ascii":[],"keywords":[]},"race_car":{"unicode":"1f3ce","unicode_alt":"1f3ce-fe0f","code_decimal":"🏎","name":"racing car","shortname":":race_car:","category":"travel","emoji_order":"926","aliases":[":racing_car:"],"aliases_ascii":[],"keywords":["transportation","car"]},"motorcycle":{"unicode":"1f3cd","unicode_alt":"1f3cd-fe0f","code_decimal":"🏍","name":"racing motorcycle","shortname":":motorcycle:","category":"travel","emoji_order":"927","aliases":[":racing_motorcycle:"],"aliases_ascii":[],"keywords":["transportation","travel","bike"]},"cartwheel":{"unicode":"1f938","unicode_alt":"","code_decimal":"🤸","name":"person doing cartwheel","shortname":":cartwheel:","category":"activity","emoji_order":"928","aliases":[":person_doing_cartwheel:"],"aliases_ascii":[],"keywords":[]},"cartwheel_tone1":{"unicode":"1f938-1f3fb","unicode_alt":"","code_decimal":"🤸🏻","name":"person doing cartwheel tone 1","shortname":":cartwheel_tone1:","category":"activity","emoji_order":"929","aliases":[":person_doing_cartwheel_tone1:"],"aliases_ascii":[],"keywords":[]},"cartwheel_tone2":{"unicode":"1f938-1f3fc","unicode_alt":"","code_decimal":"🤸🏼","name":"person doing cartwheel tone 2","shortname":":cartwheel_tone2:","category":"activity","emoji_order":"930","aliases":[":person_doing_cartwheel_tone2:"],"aliases_ascii":[],"keywords":[]},"cartwheel_tone3":{"unicode":"1f938-1f3fd","unicode_alt":"","code_decimal":"🤸🏽","name":"person doing cartwheel tone 3","shortname":":cartwheel_tone3:","category":"activity","emoji_order":"931","aliases":[":person_doing_cartwheel_tone3:"],"aliases_ascii":[],"keywords":[]},"cartwheel_tone4":{"unicode":"1f938-1f3fe","unicode_alt":"","code_decimal":"🤸🏾","name":"person doing cartwheel tone 4","shortname":":cartwheel_tone4:","category":"activity","emoji_order":"932","aliases":[":person_doing_cartwheel_tone4:"],"aliases_ascii":[],"keywords":[]},"cartwheel_tone5":{"unicode":"1f938-1f3ff","unicode_alt":"","code_decimal":"🤸🏿","name":"person doing cartwheel tone 5","shortname":":cartwheel_tone5:","category":"activity","emoji_order":"933","aliases":[":person_doing_cartwheel_tone5:"],"aliases_ascii":[],"keywords":[]},"wrestlers":{"unicode":"1f93c","unicode_alt":"","code_decimal":"🤼","name":"wrestlers","shortname":":wrestlers:","category":"activity","emoji_order":"946","aliases":[":wrestling:"],"aliases_ascii":[],"keywords":[]},"wrestlers_tone1":{"unicode":"1f93c-1f3fb","unicode_alt":"","code_decimal":"🤼🏻","name":"wrestlers tone 1","shortname":":wrestlers_tone1:","category":"activity","emoji_order":"947","aliases":[":wrestling_tone1:"],"aliases_ascii":[],"keywords":[]},"wrestlers_tone2":{"unicode":"1f93c-1f3fc","unicode_alt":"","code_decimal":"🤼🏼","name":"wrestlers tone 2","shortname":":wrestlers_tone2:","category":"activity","emoji_order":"948","aliases":[":wrestling_tone2:"],"aliases_ascii":[],"keywords":[]},"wrestlers_tone3":{"unicode":"1f93c-1f3fd","unicode_alt":"","code_decimal":"🤼🏽","name":"wrestlers tone 3","shortname":":wrestlers_tone3:","category":"activity","emoji_order":"949","aliases":[":wrestling_tone3:"],"aliases_ascii":[],"keywords":[]},"wrestlers_tone4":{"unicode":"1f93c-1f3fe","unicode_alt":"","code_decimal":"🤼🏾","name":"wrestlers tone 4","shortname":":wrestlers_tone4:","category":"activity","emoji_order":"950","aliases":[":wrestling_tone4:"],"aliases_ascii":[],"keywords":[]},"wrestlers_tone5":{"unicode":"1f93c-1f3ff","unicode_alt":"","code_decimal":"🤼🏿","name":"wrestlers tone 5","shortname":":wrestlers_tone5:","category":"activity","emoji_order":"951","aliases":[":wrestling_tone5:"],"aliases_ascii":[],"keywords":[]},"water_polo":{"unicode":"1f93d","unicode_alt":"","code_decimal":"🤽","name":"water polo","shortname":":water_polo:","category":"activity","emoji_order":"964","aliases":[],"aliases_ascii":[],"keywords":[]},"water_polo_tone1":{"unicode":"1f93d-1f3fb","unicode_alt":"","code_decimal":"🤽🏻","name":"water polo tone 1","shortname":":water_polo_tone1:","category":"activity","emoji_order":"965","aliases":[],"aliases_ascii":[],"keywords":[]},"water_polo_tone2":{"unicode":"1f93d-1f3fc","unicode_alt":"","code_decimal":"🤽🏼","name":"water polo tone 2","shortname":":water_polo_tone2:","category":"activity","emoji_order":"966","aliases":[],"aliases_ascii":[],"keywords":[]},"water_polo_tone3":{"unicode":"1f93d-1f3fd","unicode_alt":"","code_decimal":"🤽🏽","name":"water polo tone 3","shortname":":water_polo_tone3:","category":"activity","emoji_order":"967","aliases":[],"aliases_ascii":[],"keywords":[]},"water_polo_tone4":{"unicode":"1f93d-1f3fe","unicode_alt":"","code_decimal":"🤽🏾","name":"water polo tone 4","shortname":":water_polo_tone4:","category":"activity","emoji_order":"968","aliases":[],"aliases_ascii":[],"keywords":[]},"water_polo_tone5":{"unicode":"1f93d-1f3ff","unicode_alt":"","code_decimal":"🤽🏿","name":"water polo tone 5","shortname":":water_polo_tone5:","category":"activity","emoji_order":"969","aliases":[],"aliases_ascii":[],"keywords":[]},"handball":{"unicode":"1f93e","unicode_alt":"","code_decimal":"🤾","name":"handball","shortname":":handball:","category":"activity","emoji_order":"982","aliases":[],"aliases_ascii":[],"keywords":[]},"handball_tone1":{"unicode":"1f93e-1f3fb","unicode_alt":"","code_decimal":"🤾🏻","name":"handball tone 1","shortname":":handball_tone1:","category":"activity","emoji_order":"983","aliases":[],"aliases_ascii":[],"keywords":[]},"handball_tone2":{"unicode":"1f93e-1f3fc","unicode_alt":"","code_decimal":"🤾🏼","name":"handball tone 2","shortname":":handball_tone2:","category":"activity","emoji_order":"984","aliases":[],"aliases_ascii":[],"keywords":[]},"handball_tone3":{"unicode":"1f93e-1f3fd","unicode_alt":"","code_decimal":"🤾🏽","name":"handball tone 3","shortname":":handball_tone3:","category":"activity","emoji_order":"985","aliases":[],"aliases_ascii":[],"keywords":[]},"handball_tone4":{"unicode":"1f93e-1f3fe","unicode_alt":"","code_decimal":"🤾🏾","name":"handball tone 4","shortname":":handball_tone4:","category":"activity","emoji_order":"986","aliases":[],"aliases_ascii":[],"keywords":[]},"handball_tone5":{"unicode":"1f93e-1f3ff","unicode_alt":"","code_decimal":"🤾🏿","name":"handball tone 5","shortname":":handball_tone5:","category":"activity","emoji_order":"987","aliases":[],"aliases_ascii":[],"keywords":[]},"juggling":{"unicode":"1f939","unicode_alt":"","code_decimal":"🤹","name":"juggling","shortname":":juggling:","category":"activity","emoji_order":"1000","aliases":[":juggler:"],"aliases_ascii":[],"keywords":[]},"juggling_tone1":{"unicode":"1f939-1f3fb","unicode_alt":"","code_decimal":"🤹🏻","name":"juggling tone 1","shortname":":juggling_tone1:","category":"activity","emoji_order":"1001","aliases":[":juggler_tone1:"],"aliases_ascii":[],"keywords":[]},"juggling_tone2":{"unicode":"1f939-1f3fc","unicode_alt":"","code_decimal":"🤹🏼","name":"juggling tone 2","shortname":":juggling_tone2:","category":"activity","emoji_order":"1002","aliases":[":juggler_tone2:"],"aliases_ascii":[],"keywords":[]},"juggling_tone3":{"unicode":"1f939-1f3fd","unicode_alt":"","code_decimal":"🤹🏽","name":"juggling tone 3","shortname":":juggling_tone3:","category":"activity","emoji_order":"1003","aliases":[":juggler_tone3:"],"aliases_ascii":[],"keywords":[]},"juggling_tone4":{"unicode":"1f939-1f3fe","unicode_alt":"","code_decimal":"🤹🏾","name":"juggling tone 4","shortname":":juggling_tone4:","category":"activity","emoji_order":"1004","aliases":[":juggler_tone4:"],"aliases_ascii":[],"keywords":[]},"juggling_tone5":{"unicode":"1f939-1f3ff","unicode_alt":"","code_decimal":"🤹🏿","name":"juggling tone 5","shortname":":juggling_tone5:","category":"activity","emoji_order":"1005","aliases":[":juggler_tone5:"],"aliases_ascii":[],"keywords":[]},"couple":{"unicode":"1f46b","unicode_alt":"","code_decimal":"👫","name":"man and woman holding hands","shortname":":couple:","category":"people","emoji_order":"1018","aliases":[],"aliases_ascii":[],"keywords":["people","sex","creationism"]},"two_men_holding_hands":{"unicode":"1f46c","unicode_alt":"","code_decimal":"👬","name":"two men holding hands","shortname":":two_men_holding_hands:","category":"people","emoji_order":"1024","aliases":[],"aliases_ascii":[],"keywords":["people","gay","men","sex","lgbt"]},"two_women_holding_hands":{"unicode":"1f46d","unicode_alt":"","code_decimal":"👭","name":"two women holding hands","shortname":":two_women_holding_hands:","category":"people","emoji_order":"1030","aliases":[],"aliases_ascii":[],"keywords":["people","women","sex","lgbt","lesbian","girls night"]},"couplekiss":{"unicode":"1f48f","unicode_alt":"","code_decimal":"💏","name":"kiss","shortname":":couplekiss:","category":"people","emoji_order":"1036","aliases":[],"aliases_ascii":[],"keywords":["people","love","sex"]},"kiss_mm":{"unicode":"1f468-2764-1f48b-1f468","unicode_alt":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","code_decimal":"👨❤💋👨","name":"kiss (man,man)","shortname":":kiss_mm:","category":"people","emoji_order":"1038","aliases":[":couplekiss_mm:"],"aliases_ascii":[],"keywords":["people","gay","men","love","sex","lgbt"]},"kiss_ww":{"unicode":"1f469-2764-1f48b-1f469","unicode_alt":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","code_decimal":"👩❤💋👩","name":"kiss (woman,woman)","shortname":":kiss_ww:","category":"people","emoji_order":"1039","aliases":[":couplekiss_ww:"],"aliases_ascii":[],"keywords":["people","women","love","sex","lgbt","lesbian"]},"couple_with_heart":{"unicode":"1f491","unicode_alt":"","code_decimal":"💑","name":"couple with heart","shortname":":couple_with_heart:","category":"people","emoji_order":"1040","aliases":[],"aliases_ascii":[],"keywords":["people","love","sex"]},"couple_mm":{"unicode":"1f468-2764-1f468","unicode_alt":"1f468-200d-2764-fe0f-200d-1f468","code_decimal":"👨❤👨","name":"couple (man,man)","shortname":":couple_mm:","category":"people","emoji_order":"1042","aliases":[":couple_with_heart_mm:"],"aliases_ascii":[],"keywords":["people","gay","men","love","sex","lgbt"]},"couple_ww":{"unicode":"1f469-2764-1f469","unicode_alt":"1f469-200d-2764-fe0f-200d-1f469","code_decimal":"👩❤👩","name":"couple (woman,woman)","shortname":":couple_ww:","category":"people","emoji_order":"1043","aliases":[":couple_with_heart_ww:"],"aliases_ascii":[],"keywords":["people","women","love","sex","lgbt"]},"family":{"unicode":"1f46a","unicode_alt":"","code_decimal":"👪","name":"family","shortname":":family:","category":"people","emoji_order":"1044","aliases":[],"aliases_ascii":[],"keywords":["people","family","baby"]},"family_mwg":{"unicode":"1f468-1f469-1f467","unicode_alt":"1f468-200d-1f469-200d-1f467","code_decimal":"👨👩👧","name":"family (man,woman,girl)","shortname":":family_mwg:","category":"people","emoji_order":"1051","aliases":[],"aliases_ascii":[],"keywords":["people","family","baby"]},"family_mwgb":{"unicode":"1f468-1f469-1f467-1f466","unicode_alt":"1f468-200d-1f469-200d-1f467-200d-1f466","code_decimal":"👨👩👧👦","name":"family (man,woman,girl,boy)","shortname":":family_mwgb:","category":"people","emoji_order":"1052","aliases":[],"aliases_ascii":[],"keywords":["people","family","baby"]},"family_mwbb":{"unicode":"1f468-1f469-1f466-1f466","unicode_alt":"1f468-200d-1f469-200d-1f466-200d-1f466","code_decimal":"👨👩👦👦","name":"family (man,woman,boy,boy)","shortname":":family_mwbb:","category":"people","emoji_order":"1053","aliases":[],"aliases_ascii":[],"keywords":["people","family","baby"]},"family_mwgg":{"unicode":"1f468-1f469-1f467-1f467","unicode_alt":"1f468-200d-1f469-200d-1f467-200d-1f467","code_decimal":"👨👩👧👧","name":"family (man,woman,girl,girl)","shortname":":family_mwgg:","category":"people","emoji_order":"1054","aliases":[],"aliases_ascii":[],"keywords":["people","family","baby"]},"family_mmb":{"unicode":"1f468-1f468-1f466","unicode_alt":"1f468-200d-1f468-200d-1f466","code_decimal":"👨👨👦","name":"family (man,man,boy)","shortname":":family_mmb:","category":"people","emoji_order":"1055","aliases":[],"aliases_ascii":[],"keywords":["people","gay","family","men","baby","lgbt"]},"family_mmg":{"unicode":"1f468-1f468-1f467","unicode_alt":"1f468-200d-1f468-200d-1f467","code_decimal":"👨👨👧","name":"family (man,man,girl)","shortname":":family_mmg:","category":"people","emoji_order":"1056","aliases":[],"aliases_ascii":[],"keywords":["people","gay","family","men","baby","lgbt"]},"family_mmgb":{"unicode":"1f468-1f468-1f467-1f466","unicode_alt":"1f468-200d-1f468-200d-1f467-200d-1f466","code_decimal":"👨👨👧👦","name":"family (man,man,girl,boy)","shortname":":family_mmgb:","category":"people","emoji_order":"1057","aliases":[],"aliases_ascii":[],"keywords":["people","gay","family","men","baby","lgbt"]},"family_mmbb":{"unicode":"1f468-1f468-1f466-1f466","unicode_alt":"1f468-200d-1f468-200d-1f466-200d-1f466","code_decimal":"👨👨👦👦","name":"family (man,man,boy,boy)","shortname":":family_mmbb:","category":"people","emoji_order":"1058","aliases":[],"aliases_ascii":[],"keywords":["people","gay","family","men","baby","lgbt"]},"family_mmgg":{"unicode":"1f468-1f468-1f467-1f467","unicode_alt":"1f468-200d-1f468-200d-1f467-200d-1f467","code_decimal":"👨👨👧👧","name":"family (man,man,girl,girl)","shortname":":family_mmgg:","category":"people","emoji_order":"1059","aliases":[],"aliases_ascii":[],"keywords":["people","gay","family","men","baby","lgbt"]},"family_wwb":{"unicode":"1f469-1f469-1f466","unicode_alt":"1f469-200d-1f469-200d-1f466","code_decimal":"👩👩👦","name":"family (woman,woman,boy)","shortname":":family_wwb:","category":"people","emoji_order":"1060","aliases":[],"aliases_ascii":[],"keywords":["people","family","women","baby","lgbt","lesbian"]},"family_wwg":{"unicode":"1f469-1f469-1f467","unicode_alt":"1f469-200d-1f469-200d-1f467","code_decimal":"👩👩👧","name":"family (woman,woman,girl)","shortname":":family_wwg:","category":"people","emoji_order":"1061","aliases":[],"aliases_ascii":[],"keywords":["people","family","women","baby","lgbt","lesbian"]},"family_wwgb":{"unicode":"1f469-1f469-1f467-1f466","unicode_alt":"1f469-200d-1f469-200d-1f467-200d-1f466","code_decimal":"👩👩👧👦","name":"family (woman,woman,girl,boy)","shortname":":family_wwgb:","category":"people","emoji_order":"1062","aliases":[],"aliases_ascii":[],"keywords":["people","family","women","baby","lgbt","lesbian"]},"family_wwbb":{"unicode":"1f469-1f469-1f466-1f466","unicode_alt":"1f469-200d-1f469-200d-1f466-200d-1f466","code_decimal":"👩👩👦👦","name":"family (woman,woman,boy,boy)","shortname":":family_wwbb:","category":"people","emoji_order":"1063","aliases":[],"aliases_ascii":[],"keywords":["people","family","women","baby","lgbt","lesbian"]},"family_wwgg":{"unicode":"1f469-1f469-1f467-1f467","unicode_alt":"1f469-200d-1f469-200d-1f467-200d-1f467","code_decimal":"👩👩👧👧","name":"family (woman,woman,girl,girl)","shortname":":family_wwgg:","category":"people","emoji_order":"1064","aliases":[],"aliases_ascii":[],"keywords":["people","family","women","baby","lgbt","lesbian"]},"tone1":{"unicode":"1f3fb","unicode_alt":"","code_decimal":"🏻","name":"emoji modifier Fitzpatrick type-1-2","shortname":":tone1:","category":"modifier","emoji_order":"1075","aliases":[],"aliases_ascii":[],"keywords":[]},"tone2":{"unicode":"1f3fc","unicode_alt":"","code_decimal":"🏼","name":"emoji modifier Fitzpatrick type-3","shortname":":tone2:","category":"modifier","emoji_order":"1076","aliases":[],"aliases_ascii":[],"keywords":[]},"tone3":{"unicode":"1f3fd","unicode_alt":"","code_decimal":"🏽","name":"emoji modifier Fitzpatrick type-4","shortname":":tone3:","category":"modifier","emoji_order":"1077","aliases":[],"aliases_ascii":[],"keywords":[]},"tone4":{"unicode":"1f3fe","unicode_alt":"","code_decimal":"🏾","name":"emoji modifier Fitzpatrick type-5","shortname":":tone4:","category":"modifier","emoji_order":"1078","aliases":[],"aliases_ascii":[],"keywords":[]},"tone5":{"unicode":"1f3ff","unicode_alt":"","code_decimal":"🏿","name":"emoji modifier Fitzpatrick type-6","shortname":":tone5:","category":"modifier","emoji_order":"1079","aliases":[],"aliases_ascii":[],"keywords":[]},"muscle":{"unicode":"1f4aa","unicode_alt":"","code_decimal":"💪","name":"flexed biceps","shortname":":muscle:","category":"people","emoji_order":"1080","aliases":[],"aliases_ascii":[],"keywords":["body","hands","workout","flex","win","diversity","feminist","boys night"]},"muscle_tone1":{"unicode":"1f4aa-1f3fb","unicode_alt":"","code_decimal":"💪🏻","name":"flexed biceps tone 1","shortname":":muscle_tone1:","category":"people","emoji_order":"1081","aliases":[],"aliases_ascii":[],"keywords":[]},"muscle_tone2":{"unicode":"1f4aa-1f3fc","unicode_alt":"","code_decimal":"💪🏼","name":"flexed biceps tone 2","shortname":":muscle_tone2:","category":"people","emoji_order":"1082","aliases":[],"aliases_ascii":[],"keywords":[]},"muscle_tone3":{"unicode":"1f4aa-1f3fd","unicode_alt":"","code_decimal":"💪🏽","name":"flexed biceps tone 3","shortname":":muscle_tone3:","category":"people","emoji_order":"1083","aliases":[],"aliases_ascii":[],"keywords":[]},"muscle_tone4":{"unicode":"1f4aa-1f3fe","unicode_alt":"","code_decimal":"💪🏾","name":"flexed biceps tone 4","shortname":":muscle_tone4:","category":"people","emoji_order":"1084","aliases":[],"aliases_ascii":[],"keywords":[]},"muscle_tone5":{"unicode":"1f4aa-1f3ff","unicode_alt":"","code_decimal":"💪🏿","name":"flexed biceps tone 5","shortname":":muscle_tone5:","category":"people","emoji_order":"1085","aliases":[],"aliases_ascii":[],"keywords":[]},"selfie":{"unicode":"1f933","unicode_alt":"","code_decimal":"🤳","name":"selfie","shortname":":selfie:","category":"people","emoji_order":"1086","aliases":[],"aliases_ascii":[],"keywords":[]},"selfie_tone1":{"unicode":"1f933-1f3fb","unicode_alt":"","code_decimal":"🤳🏻","name":"selfie tone 1","shortname":":selfie_tone1:","category":"people","emoji_order":"1087","aliases":[],"aliases_ascii":[],"keywords":[]},"selfie_tone2":{"unicode":"1f933-1f3fc","unicode_alt":"","code_decimal":"🤳🏼","name":"selfie tone 2","shortname":":selfie_tone2:","category":"people","emoji_order":"1088","aliases":[],"aliases_ascii":[],"keywords":[]},"selfie_tone3":{"unicode":"1f933-1f3fd","unicode_alt":"","code_decimal":"🤳🏽","name":"selfie tone 3","shortname":":selfie_tone3:","category":"people","emoji_order":"1089","aliases":[],"aliases_ascii":[],"keywords":[]},"selfie_tone4":{"unicode":"1f933-1f3fe","unicode_alt":"","code_decimal":"🤳🏾","name":"selfie tone 4","shortname":":selfie_tone4:","category":"people","emoji_order":"1090","aliases":[],"aliases_ascii":[],"keywords":[]},"selfie_tone5":{"unicode":"1f933-1f3ff","unicode_alt":"","code_decimal":"🤳🏿","name":"selfie tone 5","shortname":":selfie_tone5:","category":"people","emoji_order":"1091","aliases":[],"aliases_ascii":[],"keywords":[]},"point_left":{"unicode":"1f448","unicode_alt":"","code_decimal":"👈","name":"white left pointing backhand index","shortname":":point_left:","category":"people","emoji_order":"1092","aliases":[],"aliases_ascii":[],"keywords":["body","hands","hi","diversity"]},"point_left_tone1":{"unicode":"1f448-1f3fb","unicode_alt":"","code_decimal":"👈🏻","name":"white left pointing backhand index tone 1","shortname":":point_left_tone1:","category":"people","emoji_order":"1093","aliases":[],"aliases_ascii":[],"keywords":[]},"point_left_tone2":{"unicode":"1f448-1f3fc","unicode_alt":"","code_decimal":"👈🏼","name":"white left pointing backhand index tone 2","shortname":":point_left_tone2:","category":"people","emoji_order":"1094","aliases":[],"aliases_ascii":[],"keywords":[]},"point_left_tone3":{"unicode":"1f448-1f3fd","unicode_alt":"","code_decimal":"👈🏽","name":"white left pointing backhand index tone 3","shortname":":point_left_tone3:","category":"people","emoji_order":"1095","aliases":[],"aliases_ascii":[],"keywords":[]},"point_left_tone4":{"unicode":"1f448-1f3fe","unicode_alt":"","code_decimal":"👈🏾","name":"white left pointing backhand index tone 4","shortname":":point_left_tone4:","category":"people","emoji_order":"1096","aliases":[],"aliases_ascii":[],"keywords":[]},"point_left_tone5":{"unicode":"1f448-1f3ff","unicode_alt":"","code_decimal":"👈🏿","name":"white left pointing backhand index tone 5","shortname":":point_left_tone5:","category":"people","emoji_order":"1097","aliases":[],"aliases_ascii":[],"keywords":[]},"point_right":{"unicode":"1f449","unicode_alt":"","code_decimal":"👉","name":"white right pointing backhand index","shortname":":point_right:","category":"people","emoji_order":"1098","aliases":[],"aliases_ascii":[],"keywords":["body","hands","hi","diversity"]},"point_right_tone1":{"unicode":"1f449-1f3fb","unicode_alt":"","code_decimal":"👉🏻","name":"white right pointing backhand index tone 1","shortname":":point_right_tone1:","category":"people","emoji_order":"1099","aliases":[],"aliases_ascii":[],"keywords":[]},"point_right_tone2":{"unicode":"1f449-1f3fc","unicode_alt":"","code_decimal":"👉🏼","name":"white right pointing backhand index tone 2","shortname":":point_right_tone2:","category":"people","emoji_order":"1100","aliases":[],"aliases_ascii":[],"keywords":[]},"point_right_tone3":{"unicode":"1f449-1f3fd","unicode_alt":"","code_decimal":"👉🏽","name":"white right pointing backhand index tone 3","shortname":":point_right_tone3:","category":"people","emoji_order":"1101","aliases":[],"aliases_ascii":[],"keywords":[]},"point_right_tone4":{"unicode":"1f449-1f3fe","unicode_alt":"","code_decimal":"👉🏾","name":"white right pointing backhand index tone 4","shortname":":point_right_tone4:","category":"people","emoji_order":"1102","aliases":[],"aliases_ascii":[],"keywords":[]},"point_right_tone5":{"unicode":"1f449-1f3ff","unicode_alt":"","code_decimal":"👉🏿","name":"white right pointing backhand index tone 5","shortname":":point_right_tone5:","category":"people","emoji_order":"1103","aliases":[],"aliases_ascii":[],"keywords":[]},"point_up":{"unicode":"261d","unicode_alt":"261d-fe0f","code_decimal":"☝","name":"white up pointing index","shortname":":point_up:","category":"people","emoji_order":"1104","aliases":[],"aliases_ascii":[],"keywords":["body","hands","emojione","diversity"]},"point_up_tone1":{"unicode":"261d-1f3fb","unicode_alt":"","code_decimal":"☝🏻","name":"white up pointing index tone 1","shortname":":point_up_tone1:","category":"people","emoji_order":"1105","aliases":[],"aliases_ascii":[],"keywords":[]},"point_up_tone2":{"unicode":"261d-1f3fc","unicode_alt":"","code_decimal":"☝🏼","name":"white up pointing index tone 2","shortname":":point_up_tone2:","category":"people","emoji_order":"1106","aliases":[],"aliases_ascii":[],"keywords":[]},"point_up_tone3":{"unicode":"261d-1f3fd","unicode_alt":"","code_decimal":"☝🏽","name":"white up pointing index tone 3","shortname":":point_up_tone3:","category":"people","emoji_order":"1107","aliases":[],"aliases_ascii":[],"keywords":[]},"point_up_tone4":{"unicode":"261d-1f3fe","unicode_alt":"","code_decimal":"☝🏾","name":"white up pointing index tone 4","shortname":":point_up_tone4:","category":"people","emoji_order":"1108","aliases":[],"aliases_ascii":[],"keywords":[]},"point_up_tone5":{"unicode":"261d-1f3ff","unicode_alt":"","code_decimal":"☝🏿","name":"white up pointing index tone 5","shortname":":point_up_tone5:","category":"people","emoji_order":"1109","aliases":[],"aliases_ascii":[],"keywords":[]},"point_up_2":{"unicode":"1f446","unicode_alt":"","code_decimal":"👆","name":"white up pointing backhand index","shortname":":point_up_2:","category":"people","emoji_order":"1110","aliases":[],"aliases_ascii":[],"keywords":["body","hands","diversity"]},"point_up_2_tone1":{"unicode":"1f446-1f3fb","unicode_alt":"","code_decimal":"👆🏻","name":"white up pointing backhand index tone 1","shortname":":point_up_2_tone1:","category":"people","emoji_order":"1111","aliases":[],"aliases_ascii":[],"keywords":[]},"point_up_2_tone2":{"unicode":"1f446-1f3fc","unicode_alt":"","code_decimal":"👆🏼","name":"white up pointing backhand index tone 2","shortname":":point_up_2_tone2:","category":"people","emoji_order":"1112","aliases":[],"aliases_ascii":[],"keywords":[]},"point_up_2_tone3":{"unicode":"1f446-1f3fd","unicode_alt":"","code_decimal":"👆🏽","name":"white up pointing backhand index tone 3","shortname":":point_up_2_tone3:","category":"people","emoji_order":"1113","aliases":[],"aliases_ascii":[],"keywords":[]},"point_up_2_tone4":{"unicode":"1f446-1f3fe","unicode_alt":"","code_decimal":"👆🏾","name":"white up pointing backhand index tone 4","shortname":":point_up_2_tone4:","category":"people","emoji_order":"1114","aliases":[],"aliases_ascii":[],"keywords":[]},"point_up_2_tone5":{"unicode":"1f446-1f3ff","unicode_alt":"","code_decimal":"👆🏿","name":"white up pointing backhand index tone 5","shortname":":point_up_2_tone5:","category":"people","emoji_order":"1115","aliases":[],"aliases_ascii":[],"keywords":[]},"middle_finger":{"unicode":"1f595","unicode_alt":"","code_decimal":"🖕","name":"reversed hand with middle finger extended","shortname":":middle_finger:","category":"people","emoji_order":"1116","aliases":[":reversed_hand_with_middle_finger_extended:"],"aliases_ascii":[],"keywords":["body","hands","middle finger","diversity"]},"middle_finger_tone1":{"unicode":"1f595-1f3fb","unicode_alt":"","code_decimal":"🖕🏻","name":"reversed hand with middle finger extended tone 1","shortname":":middle_finger_tone1:","category":"people","emoji_order":"1117","aliases":[":reversed_hand_with_middle_finger_extended_tone1:"],"aliases_ascii":[],"keywords":[]},"middle_finger_tone2":{"unicode":"1f595-1f3fc","unicode_alt":"","code_decimal":"🖕🏼","name":"reversed hand with middle finger extended tone 2","shortname":":middle_finger_tone2:","category":"people","emoji_order":"1118","aliases":[":reversed_hand_with_middle_finger_extended_tone2:"],"aliases_ascii":[],"keywords":[]},"middle_finger_tone3":{"unicode":"1f595-1f3fd","unicode_alt":"","code_decimal":"🖕🏽","name":"reversed hand with middle finger extended tone 3","shortname":":middle_finger_tone3:","category":"people","emoji_order":"1119","aliases":[":reversed_hand_with_middle_finger_extended_tone3:"],"aliases_ascii":[],"keywords":[]},"middle_finger_tone4":{"unicode":"1f595-1f3fe","unicode_alt":"","code_decimal":"🖕🏾","name":"reversed hand with middle finger extended tone 4","shortname":":middle_finger_tone4:","category":"people","emoji_order":"1120","aliases":[":reversed_hand_with_middle_finger_extended_tone4:"],"aliases_ascii":[],"keywords":[]},"middle_finger_tone5":{"unicode":"1f595-1f3ff","unicode_alt":"","code_decimal":"🖕🏿","name":"reversed hand with middle finger extended tone 5","shortname":":middle_finger_tone5:","category":"people","emoji_order":"1121","aliases":[":reversed_hand_with_middle_finger_extended_tone5:"],"aliases_ascii":[],"keywords":[]},"point_down":{"unicode":"1f447","unicode_alt":"","code_decimal":"👇","name":"white down pointing backhand index","shortname":":point_down:","category":"people","emoji_order":"1122","aliases":[],"aliases_ascii":[],"keywords":["body","hands","diversity"]},"point_down_tone1":{"unicode":"1f447-1f3fb","unicode_alt":"","code_decimal":"👇🏻","name":"white down pointing backhand index tone 1","shortname":":point_down_tone1:","category":"people","emoji_order":"1123","aliases":[],"aliases_ascii":[],"keywords":[]},"point_down_tone2":{"unicode":"1f447-1f3fc","unicode_alt":"","code_decimal":"👇🏼","name":"white down pointing backhand index tone 2","shortname":":point_down_tone2:","category":"people","emoji_order":"1124","aliases":[],"aliases_ascii":[],"keywords":[]},"point_down_tone3":{"unicode":"1f447-1f3fd","unicode_alt":"","code_decimal":"👇🏽","name":"white down pointing backhand index tone 3","shortname":":point_down_tone3:","category":"people","emoji_order":"1125","aliases":[],"aliases_ascii":[],"keywords":[]},"point_down_tone4":{"unicode":"1f447-1f3fe","unicode_alt":"","code_decimal":"👇🏾","name":"white down pointing backhand index tone 4","shortname":":point_down_tone4:","category":"people","emoji_order":"1126","aliases":[],"aliases_ascii":[],"keywords":[]},"point_down_tone5":{"unicode":"1f447-1f3ff","unicode_alt":"","code_decimal":"👇🏿","name":"white down pointing backhand index tone 5","shortname":":point_down_tone5:","category":"people","emoji_order":"1127","aliases":[],"aliases_ascii":[],"keywords":[]},"v":{"unicode":"270c","unicode_alt":"270c-fe0f","code_decimal":"✌","name":"victory hand","shortname":":v:","category":"people","emoji_order":"1128","aliases":[],"aliases_ascii":[],"keywords":["body","hands","hi","thank you","peace","diversity","girls night"]},"v_tone1":{"unicode":"270c-1f3fb","unicode_alt":"","code_decimal":"✌🏻","name":"victory hand tone 1","shortname":":v_tone1:","category":"people","emoji_order":"1129","aliases":[],"aliases_ascii":[],"keywords":[]},"v_tone2":{"unicode":"270c-1f3fc","unicode_alt":"","code_decimal":"✌🏼","name":"victory hand tone 2","shortname":":v_tone2:","category":"people","emoji_order":"1130","aliases":[],"aliases_ascii":[],"keywords":[]},"v_tone3":{"unicode":"270c-1f3fd","unicode_alt":"","code_decimal":"✌🏽","name":"victory hand tone 3","shortname":":v_tone3:","category":"people","emoji_order":"1131","aliases":[],"aliases_ascii":[],"keywords":[]},"v_tone4":{"unicode":"270c-1f3fe","unicode_alt":"","code_decimal":"✌🏾","name":"victory hand tone 4","shortname":":v_tone4:","category":"people","emoji_order":"1132","aliases":[],"aliases_ascii":[],"keywords":[]},"v_tone5":{"unicode":"270c-1f3ff","unicode_alt":"","code_decimal":"✌🏿","name":"victory hand tone 5","shortname":":v_tone5:","category":"people","emoji_order":"1133","aliases":[],"aliases_ascii":[],"keywords":[]},"fingers_crossed":{"unicode":"1f91e","unicode_alt":"","code_decimal":"🤞","name":"hand with first and index finger crossed","shortname":":fingers_crossed:","category":"people","emoji_order":"1134","aliases":[":hand_with_index_and_middle_finger_crossed:"],"aliases_ascii":[],"keywords":[]},"fingers_crossed_tone1":{"unicode":"1f91e-1f3fb","unicode_alt":"","code_decimal":"🤞🏻","name":"hand with index and middle fingers crossed tone 1","shortname":":fingers_crossed_tone1:","category":"people","emoji_order":"1135","aliases":[":hand_with_index_and_middle_fingers_crossed_tone1:"],"aliases_ascii":[],"keywords":[]},"fingers_crossed_tone2":{"unicode":"1f91e-1f3fc","unicode_alt":"","code_decimal":"🤞🏼","name":"hand with index and middle fingers crossed tone 2","shortname":":fingers_crossed_tone2:","category":"people","emoji_order":"1136","aliases":[":hand_with_index_and_middle_fingers_crossed_tone2:"],"aliases_ascii":[],"keywords":[]},"fingers_crossed_tone3":{"unicode":"1f91e-1f3fd","unicode_alt":"","code_decimal":"🤞🏽","name":"hand with index and middle fingers crossed tone 3","shortname":":fingers_crossed_tone3:","category":"people","emoji_order":"1137","aliases":[":hand_with_index_and_middle_fingers_crossed_tone3:"],"aliases_ascii":[],"keywords":[]},"fingers_crossed_tone4":{"unicode":"1f91e-1f3fe","unicode_alt":"","code_decimal":"🤞🏾","name":"hand with index and middle fingers crossed tone 4","shortname":":fingers_crossed_tone4:","category":"people","emoji_order":"1138","aliases":[":hand_with_index_and_middle_fingers_crossed_tone4:"],"aliases_ascii":[],"keywords":[]},"fingers_crossed_tone5":{"unicode":"1f91e-1f3ff","unicode_alt":"","code_decimal":"🤞🏿","name":"hand with index and middle fingers crossed tone 5","shortname":":fingers_crossed_tone5:","category":"people","emoji_order":"1139","aliases":[":hand_with_index_and_middle_fingers_crossed_tone5:"],"aliases_ascii":[],"keywords":[]},"vulcan":{"unicode":"1f596","unicode_alt":"","code_decimal":"🖖","name":"raised hand with part between middle and ring fingers","shortname":":vulcan:","category":"people","emoji_order":"1140","aliases":[":raised_hand_with_part_between_middle_and_ring_fingers:"],"aliases_ascii":[],"keywords":["body","hands","hi","diversity"]},"vulcan_tone1":{"unicode":"1f596-1f3fb","unicode_alt":"","code_decimal":"🖖🏻","name":"raised hand with part between middle and ring fingers tone 1","shortname":":vulcan_tone1:","category":"people","emoji_order":"1141","aliases":[":raised_hand_with_part_between_middle_and_ring_fingers_tone1:"],"aliases_ascii":[],"keywords":[]},"vulcan_tone2":{"unicode":"1f596-1f3fc","unicode_alt":"","code_decimal":"🖖🏼","name":"raised hand with part between middle and ring fingers tone 2","shortname":":vulcan_tone2:","category":"people","emoji_order":"1142","aliases":[":raised_hand_with_part_between_middle_and_ring_fingers_tone2:"],"aliases_ascii":[],"keywords":[]},"vulcan_tone3":{"unicode":"1f596-1f3fd","unicode_alt":"","code_decimal":"🖖🏽","name":"raised hand with part between middle and ring fingers tone 3","shortname":":vulcan_tone3:","category":"people","emoji_order":"1143","aliases":[":raised_hand_with_part_between_middle_and_ring_fingers_tone3:"],"aliases_ascii":[],"keywords":[]},"vulcan_tone4":{"unicode":"1f596-1f3fe","unicode_alt":"","code_decimal":"🖖🏾","name":"raised hand with part between middle and ring fingers tone 4","shortname":":vulcan_tone4:","category":"people","emoji_order":"1144","aliases":[":raised_hand_with_part_between_middle_and_ring_fingers_tone4:"],"aliases_ascii":[],"keywords":[]},"vulcan_tone5":{"unicode":"1f596-1f3ff","unicode_alt":"","code_decimal":"🖖🏿","name":"raised hand with part between middle and ring fingers tone 5","shortname":":vulcan_tone5:","category":"people","emoji_order":"1145","aliases":[":raised_hand_with_part_between_middle_and_ring_fingers_tone5:"],"aliases_ascii":[],"keywords":[]},"metal":{"unicode":"1f918","unicode_alt":"","code_decimal":"🤘","name":"sign of the horns","shortname":":metal:","category":"people","emoji_order":"1146","aliases":[":sign_of_the_horns:"],"aliases_ascii":[],"keywords":["body","hands","hi","diversity","boys night","parties"]},"metal_tone1":{"unicode":"1f918-1f3fb","unicode_alt":"","code_decimal":"🤘🏻","name":"sign of the horns tone 1","shortname":":metal_tone1:","category":"people","emoji_order":"1147","aliases":[":sign_of_the_horns_tone1:"],"aliases_ascii":[],"keywords":[]},"metal_tone2":{"unicode":"1f918-1f3fc","unicode_alt":"","code_decimal":"🤘🏼","name":"sign of the horns tone 2","shortname":":metal_tone2:","category":"people","emoji_order":"1148","aliases":[":sign_of_the_horns_tone2:"],"aliases_ascii":[],"keywords":[]},"metal_tone3":{"unicode":"1f918-1f3fd","unicode_alt":"","code_decimal":"🤘🏽","name":"sign of the horns tone 3","shortname":":metal_tone3:","category":"people","emoji_order":"1149","aliases":[":sign_of_the_horns_tone3:"],"aliases_ascii":[],"keywords":[]},"metal_tone4":{"unicode":"1f918-1f3fe","unicode_alt":"","code_decimal":"🤘🏾","name":"sign of the horns tone 4","shortname":":metal_tone4:","category":"people","emoji_order":"1150","aliases":[":sign_of_the_horns_tone4:"],"aliases_ascii":[],"keywords":[]},"metal_tone5":{"unicode":"1f918-1f3ff","unicode_alt":"","code_decimal":"🤘🏿","name":"sign of the horns tone 5","shortname":":metal_tone5:","category":"people","emoji_order":"1151","aliases":[":sign_of_the_horns_tone5:"],"aliases_ascii":[],"keywords":[]},"call_me":{"unicode":"1f919","unicode_alt":"","code_decimal":"🤙","name":"call me hand","shortname":":call_me:","category":"people","emoji_order":"1152","aliases":[":call_me_hand:"],"aliases_ascii":[],"keywords":[]},"call_me_tone1":{"unicode":"1f919-1f3fb","unicode_alt":"","code_decimal":"🤙🏻","name":"call me hand tone 1","shortname":":call_me_tone1:","category":"people","emoji_order":"1153","aliases":[":call_me_hand_tone1:"],"aliases_ascii":[],"keywords":[]},"call_me_tone2":{"unicode":"1f919-1f3fc","unicode_alt":"","code_decimal":"🤙🏼","name":"call me hand tone 2","shortname":":call_me_tone2:","category":"people","emoji_order":"1154","aliases":[":call_me_hand_tone2:"],"aliases_ascii":[],"keywords":[]},"call_me_tone3":{"unicode":"1f919-1f3fd","unicode_alt":"","code_decimal":"🤙🏽","name":"call me hand tone 3","shortname":":call_me_tone3:","category":"people","emoji_order":"1155","aliases":[":call_me_hand_tone3:"],"aliases_ascii":[],"keywords":[]},"call_me_tone4":{"unicode":"1f919-1f3fe","unicode_alt":"","code_decimal":"🤙🏾","name":"call me hand tone 4","shortname":":call_me_tone4:","category":"people","emoji_order":"1156","aliases":[":call_me_hand_tone4:"],"aliases_ascii":[],"keywords":[]},"call_me_tone5":{"unicode":"1f919-1f3ff","unicode_alt":"","code_decimal":"🤙🏿","name":"call me hand tone 5","shortname":":call_me_tone5:","category":"people","emoji_order":"1157","aliases":[":call_me_hand_tone5:"],"aliases_ascii":[],"keywords":[]},"hand_splayed":{"unicode":"1f590","unicode_alt":"1f590-fe0f","code_decimal":"🖐","name":"raised hand with fingers splayed","shortname":":hand_splayed:","category":"people","emoji_order":"1158","aliases":[":raised_hand_with_fingers_splayed:"],"aliases_ascii":[],"keywords":["body","hands","hi","diversity"]},"hand_splayed_tone1":{"unicode":"1f590-1f3fb","unicode_alt":"","code_decimal":"🖐🏻","name":"raised hand with fingers splayed tone 1","shortname":":hand_splayed_tone1:","category":"people","emoji_order":"1159","aliases":[":raised_hand_with_fingers_splayed_tone1:"],"aliases_ascii":[],"keywords":[]},"hand_splayed_tone2":{"unicode":"1f590-1f3fc","unicode_alt":"","code_decimal":"🖐🏼","name":"raised hand with fingers splayed tone 2","shortname":":hand_splayed_tone2:","category":"people","emoji_order":"1160","aliases":[":raised_hand_with_fingers_splayed_tone2:"],"aliases_ascii":[],"keywords":[]},"hand_splayed_tone3":{"unicode":"1f590-1f3fd","unicode_alt":"","code_decimal":"🖐🏽","name":"raised hand with fingers splayed tone 3","shortname":":hand_splayed_tone3:","category":"people","emoji_order":"1161","aliases":[":raised_hand_with_fingers_splayed_tone3:"],"aliases_ascii":[],"keywords":[]},"hand_splayed_tone4":{"unicode":"1f590-1f3fe","unicode_alt":"","code_decimal":"🖐🏾","name":"raised hand with fingers splayed tone 4","shortname":":hand_splayed_tone4:","category":"people","emoji_order":"1162","aliases":[":raised_hand_with_fingers_splayed_tone4:"],"aliases_ascii":[],"keywords":[]},"hand_splayed_tone5":{"unicode":"1f590-1f3ff","unicode_alt":"","code_decimal":"🖐🏿","name":"raised hand with fingers splayed tone 5","shortname":":hand_splayed_tone5:","category":"people","emoji_order":"1163","aliases":[":raised_hand_with_fingers_splayed_tone5:"],"aliases_ascii":[],"keywords":[]},"raised_hand":{"unicode":"270b","unicode_alt":"","code_decimal":"✋","name":"raised hand","shortname":":raised_hand:","category":"people","emoji_order":"1164","aliases":[],"aliases_ascii":[],"keywords":["body","hands","hi","diversity","girls night"]},"raised_hand_tone1":{"unicode":"270b-1f3fb","unicode_alt":"","code_decimal":"✋🏻","name":"raised hand tone 1","shortname":":raised_hand_tone1:","category":"people","emoji_order":"1165","aliases":[],"aliases_ascii":[],"keywords":[]},"raised_hand_tone2":{"unicode":"270b-1f3fc","unicode_alt":"","code_decimal":"✋🏼","name":"raised hand tone 2","shortname":":raised_hand_tone2:","category":"people","emoji_order":"1166","aliases":[],"aliases_ascii":[],"keywords":[]},"raised_hand_tone3":{"unicode":"270b-1f3fd","unicode_alt":"","code_decimal":"✋🏽","name":"raised hand tone 3","shortname":":raised_hand_tone3:","category":"people","emoji_order":"1167","aliases":[],"aliases_ascii":[],"keywords":[]},"raised_hand_tone4":{"unicode":"270b-1f3fe","unicode_alt":"","code_decimal":"✋🏾","name":"raised hand tone 4","shortname":":raised_hand_tone4:","category":"people","emoji_order":"1168","aliases":[],"aliases_ascii":[],"keywords":[]},"raised_hand_tone5":{"unicode":"270b-1f3ff","unicode_alt":"","code_decimal":"✋🏿","name":"raised hand tone 5","shortname":":raised_hand_tone5:","category":"people","emoji_order":"1169","aliases":[],"aliases_ascii":[],"keywords":[]},"ok_hand":{"unicode":"1f44c","unicode_alt":"","code_decimal":"👌","name":"ok hand sign","shortname":":ok_hand:","category":"people","emoji_order":"1170","aliases":[],"aliases_ascii":[],"keywords":["body","hands","hi","diversity","perfect","good","beautiful"]},"ok_hand_tone1":{"unicode":"1f44c-1f3fb","unicode_alt":"","code_decimal":"👌🏻","name":"ok hand sign tone 1","shortname":":ok_hand_tone1:","category":"people","emoji_order":"1171","aliases":[],"aliases_ascii":[],"keywords":[]},"ok_hand_tone2":{"unicode":"1f44c-1f3fc","unicode_alt":"","code_decimal":"👌🏼","name":"ok hand sign tone 2","shortname":":ok_hand_tone2:","category":"people","emoji_order":"1172","aliases":[],"aliases_ascii":[],"keywords":[]},"ok_hand_tone3":{"unicode":"1f44c-1f3fd","unicode_alt":"","code_decimal":"👌🏽","name":"ok hand sign tone 3","shortname":":ok_hand_tone3:","category":"people","emoji_order":"1173","aliases":[],"aliases_ascii":[],"keywords":[]},"ok_hand_tone4":{"unicode":"1f44c-1f3fe","unicode_alt":"","code_decimal":"👌🏾","name":"ok hand sign tone 4","shortname":":ok_hand_tone4:","category":"people","emoji_order":"1174","aliases":[],"aliases_ascii":[],"keywords":[]},"ok_hand_tone5":{"unicode":"1f44c-1f3ff","unicode_alt":"","code_decimal":"👌🏿","name":"ok hand sign tone 5","shortname":":ok_hand_tone5:","category":"people","emoji_order":"1175","aliases":[],"aliases_ascii":[],"keywords":[]},"thumbsup":{"unicode":"1f44d","unicode_alt":"","code_decimal":"👍","name":"thumbs up sign","shortname":":thumbsup:","category":"people","emoji_order":"1176","aliases":[":+1:",":thumbup:"],"aliases_ascii":[],"keywords":["body","hands","hi","luck","thank you","diversity","perfect","good","beautiful"]},"thumbsup_tone1":{"unicode":"1f44d-1f3fb","unicode_alt":"","code_decimal":"👍🏻","name":"thumbs up sign tone 1","shortname":":thumbsup_tone1:","category":"people","emoji_order":"1177","aliases":[":+1_tone1:",":thumbup_tone1:"],"aliases_ascii":[],"keywords":[]},"thumbsup_tone2":{"unicode":"1f44d-1f3fc","unicode_alt":"","code_decimal":"👍🏼","name":"thumbs up sign tone 2","shortname":":thumbsup_tone2:","category":"people","emoji_order":"1178","aliases":[":+1_tone2:",":thumbup_tone2:"],"aliases_ascii":[],"keywords":[]},"thumbsup_tone3":{"unicode":"1f44d-1f3fd","unicode_alt":"","code_decimal":"👍🏽","name":"thumbs up sign tone 3","shortname":":thumbsup_tone3:","category":"people","emoji_order":"1179","aliases":[":+1_tone3:",":thumbup_tone3:"],"aliases_ascii":[],"keywords":[]},"thumbsup_tone4":{"unicode":"1f44d-1f3fe","unicode_alt":"","code_decimal":"👍🏾","name":"thumbs up sign tone 4","shortname":":thumbsup_tone4:","category":"people","emoji_order":"1180","aliases":[":+1_tone4:",":thumbup_tone4:"],"aliases_ascii":[],"keywords":[]},"thumbsup_tone5":{"unicode":"1f44d-1f3ff","unicode_alt":"","code_decimal":"👍🏿","name":"thumbs up sign tone 5","shortname":":thumbsup_tone5:","category":"people","emoji_order":"1181","aliases":[":+1_tone5:",":thumbup_tone5:"],"aliases_ascii":[],"keywords":[]},"thumbsdown":{"unicode":"1f44e","unicode_alt":"","code_decimal":"👎","name":"thumbs down sign","shortname":":thumbsdown:","category":"people","emoji_order":"1182","aliases":[":-1:",":thumbdown:"],"aliases_ascii":[],"keywords":["body","hands","diversity"]},"thumbsdown_tone1":{"unicode":"1f44e-1f3fb","unicode_alt":"","code_decimal":"👎🏻","name":"thumbs down sign tone 1","shortname":":thumbsdown_tone1:","category":"people","emoji_order":"1183","aliases":[":-1_tone1:",":thumbdown_tone1:"],"aliases_ascii":[],"keywords":[]},"thumbsdown_tone2":{"unicode":"1f44e-1f3fc","unicode_alt":"","code_decimal":"👎🏼","name":"thumbs down sign tone 2","shortname":":thumbsdown_tone2:","category":"people","emoji_order":"1184","aliases":[":-1_tone2:",":thumbdown_tone2:"],"aliases_ascii":[],"keywords":[]},"thumbsdown_tone3":{"unicode":"1f44e-1f3fd","unicode_alt":"","code_decimal":"👎🏽","name":"thumbs down sign tone 3","shortname":":thumbsdown_tone3:","category":"people","emoji_order":"1185","aliases":[":-1_tone3:",":thumbdown_tone3:"],"aliases_ascii":[],"keywords":[]},"thumbsdown_tone4":{"unicode":"1f44e-1f3fe","unicode_alt":"","code_decimal":"👎🏾","name":"thumbs down sign tone 4","shortname":":thumbsdown_tone4:","category":"people","emoji_order":"1186","aliases":[":-1_tone4:",":thumbdown_tone4:"],"aliases_ascii":[],"keywords":[]},"thumbsdown_tone5":{"unicode":"1f44e-1f3ff","unicode_alt":"","code_decimal":"👎🏿","name":"thumbs down sign tone 5","shortname":":thumbsdown_tone5:","category":"people","emoji_order":"1187","aliases":[":-1_tone5:",":thumbdown_tone5:"],"aliases_ascii":[],"keywords":[]},"fist":{"unicode":"270a","unicode_alt":"","code_decimal":"✊","name":"raised fist","shortname":":fist:","category":"people","emoji_order":"1188","aliases":[],"aliases_ascii":[],"keywords":["body","hands","hi","fist bump","diversity","condolence"]},"fist_tone1":{"unicode":"270a-1f3fb","unicode_alt":"","code_decimal":"✊🏻","name":"raised fist tone 1","shortname":":fist_tone1:","category":"people","emoji_order":"1189","aliases":[],"aliases_ascii":[],"keywords":[]},"fist_tone2":{"unicode":"270a-1f3fc","unicode_alt":"","code_decimal":"✊🏼","name":"raised fist tone 2","shortname":":fist_tone2:","category":"people","emoji_order":"1190","aliases":[],"aliases_ascii":[],"keywords":[]},"fist_tone3":{"unicode":"270a-1f3fd","unicode_alt":"","code_decimal":"✊🏽","name":"raised fist tone 3","shortname":":fist_tone3:","category":"people","emoji_order":"1191","aliases":[],"aliases_ascii":[],"keywords":[]},"fist_tone4":{"unicode":"270a-1f3fe","unicode_alt":"","code_decimal":"✊🏾","name":"raised fist tone 4","shortname":":fist_tone4:","category":"people","emoji_order":"1192","aliases":[],"aliases_ascii":[],"keywords":[]},"fist_tone5":{"unicode":"270a-1f3ff","unicode_alt":"","code_decimal":"✊🏿","name":"raised fist tone 5","shortname":":fist_tone5:","category":"people","emoji_order":"1193","aliases":[],"aliases_ascii":[],"keywords":[]},"punch":{"unicode":"1f44a","unicode_alt":"","code_decimal":"👊","name":"fisted hand sign","shortname":":punch:","category":"people","emoji_order":"1194","aliases":[],"aliases_ascii":[],"keywords":["body","hands","hi","fist bump","diversity","boys night"]},"punch_tone1":{"unicode":"1f44a-1f3fb","unicode_alt":"","code_decimal":"👊🏻","name":"fisted hand sign tone 1","shortname":":punch_tone1:","category":"people","emoji_order":"1195","aliases":[],"aliases_ascii":[],"keywords":[]},"punch_tone2":{"unicode":"1f44a-1f3fc","unicode_alt":"","code_decimal":"👊🏼","name":"fisted hand sign tone 2","shortname":":punch_tone2:","category":"people","emoji_order":"1196","aliases":[],"aliases_ascii":[],"keywords":[]},"punch_tone3":{"unicode":"1f44a-1f3fd","unicode_alt":"","code_decimal":"👊🏽","name":"fisted hand sign tone 3","shortname":":punch_tone3:","category":"people","emoji_order":"1197","aliases":[],"aliases_ascii":[],"keywords":[]},"punch_tone4":{"unicode":"1f44a-1f3fe","unicode_alt":"","code_decimal":"👊🏾","name":"fisted hand sign tone 4","shortname":":punch_tone4:","category":"people","emoji_order":"1198","aliases":[],"aliases_ascii":[],"keywords":[]},"punch_tone5":{"unicode":"1f44a-1f3ff","unicode_alt":"","code_decimal":"👊🏿","name":"fisted hand sign tone 5","shortname":":punch_tone5:","category":"people","emoji_order":"1199","aliases":[],"aliases_ascii":[],"keywords":[]},"left_facing_fist":{"unicode":"1f91b","unicode_alt":"","code_decimal":"🤛","name":"left-facing fist","shortname":":left_facing_fist:","category":"people","emoji_order":"1200","aliases":[":left_fist:"],"aliases_ascii":[],"keywords":[]},"left_facing_fist_tone1":{"unicode":"1f91b-1f3fb","unicode_alt":"","code_decimal":"🤛🏻","name":"left facing fist tone 1","shortname":":left_facing_fist_tone1:","category":"people","emoji_order":"1201","aliases":[":left_fist_tone1:"],"aliases_ascii":[],"keywords":[]},"left_facing_fist_tone2":{"unicode":"1f91b-1f3fc","unicode_alt":"","code_decimal":"🤛🏼","name":"left facing fist tone 2","shortname":":left_facing_fist_tone2:","category":"people","emoji_order":"1202","aliases":[":left_fist_tone2:"],"aliases_ascii":[],"keywords":[]},"left_facing_fist_tone3":{"unicode":"1f91b-1f3fd","unicode_alt":"","code_decimal":"🤛🏽","name":"left facing fist tone 3","shortname":":left_facing_fist_tone3:","category":"people","emoji_order":"1203","aliases":[":left_fist_tone3:"],"aliases_ascii":[],"keywords":[]},"left_facing_fist_tone4":{"unicode":"1f91b-1f3fe","unicode_alt":"","code_decimal":"🤛🏾","name":"left facing fist tone 4","shortname":":left_facing_fist_tone4:","category":"people","emoji_order":"1204","aliases":[":left_fist_tone4:"],"aliases_ascii":[],"keywords":[]},"left_facing_fist_tone5":{"unicode":"1f91b-1f3ff","unicode_alt":"","code_decimal":"🤛🏿","name":"left facing fist tone 5","shortname":":left_facing_fist_tone5:","category":"people","emoji_order":"1205","aliases":[":left_fist_tone5:"],"aliases_ascii":[],"keywords":[]},"right_facing_fist":{"unicode":"1f91c","unicode_alt":"","code_decimal":"🤜","name":"right-facing fist","shortname":":right_facing_fist:","category":"people","emoji_order":"1206","aliases":[":right_fist:"],"aliases_ascii":[],"keywords":[]},"right_facing_fist_tone1":{"unicode":"1f91c-1f3fb","unicode_alt":"","code_decimal":"🤜🏻","name":"right facing fist tone 1","shortname":":right_facing_fist_tone1:","category":"people","emoji_order":"1207","aliases":[":right_fist_tone1:"],"aliases_ascii":[],"keywords":[]},"right_facing_fist_tone2":{"unicode":"1f91c-1f3fc","unicode_alt":"","code_decimal":"🤜🏼","name":"right facing fist tone 2","shortname":":right_facing_fist_tone2:","category":"people","emoji_order":"1208","aliases":[":right_fist_tone2:"],"aliases_ascii":[],"keywords":[]},"right_facing_fist_tone3":{"unicode":"1f91c-1f3fd","unicode_alt":"","code_decimal":"🤜🏽","name":"right facing fist tone 3","shortname":":right_facing_fist_tone3:","category":"people","emoji_order":"1209","aliases":[":right_fist_tone3:"],"aliases_ascii":[],"keywords":[]},"right_facing_fist_tone4":{"unicode":"1f91c-1f3fe","unicode_alt":"","code_decimal":"🤜🏾","name":"right facing fist tone 4","shortname":":right_facing_fist_tone4:","category":"people","emoji_order":"1210","aliases":[":right_fist_tone4:"],"aliases_ascii":[],"keywords":[]},"right_facing_fist_tone5":{"unicode":"1f91c-1f3ff","unicode_alt":"","code_decimal":"🤜🏿","name":"right facing fist tone 5","shortname":":right_facing_fist_tone5:","category":"people","emoji_order":"1211","aliases":[":right_fist_tone5:"],"aliases_ascii":[],"keywords":[]},"raised_back_of_hand":{"unicode":"1f91a","unicode_alt":"","code_decimal":"🤚","name":"raised back of hand","shortname":":raised_back_of_hand:","category":"people","emoji_order":"1212","aliases":[":back_of_hand:"],"aliases_ascii":[],"keywords":[]},"raised_back_of_hand_tone1":{"unicode":"1f91a-1f3fb","unicode_alt":"","code_decimal":"🤚🏻","name":"raised back of hand tone 1","shortname":":raised_back_of_hand_tone1:","category":"people","emoji_order":"1213","aliases":[":back_of_hand_tone1:"],"aliases_ascii":[],"keywords":[]},"raised_back_of_hand_tone2":{"unicode":"1f91a-1f3fc","unicode_alt":"","code_decimal":"🤚🏼","name":"raised back of hand tone 2","shortname":":raised_back_of_hand_tone2:","category":"people","emoji_order":"1214","aliases":[":back_of_hand_tone2:"],"aliases_ascii":[],"keywords":[]},"raised_back_of_hand_tone3":{"unicode":"1f91a-1f3fd","unicode_alt":"","code_decimal":"🤚🏽","name":"raised back of hand tone 3","shortname":":raised_back_of_hand_tone3:","category":"people","emoji_order":"1215","aliases":[":back_of_hand_tone3:"],"aliases_ascii":[],"keywords":[]},"raised_back_of_hand_tone4":{"unicode":"1f91a-1f3fe","unicode_alt":"","code_decimal":"🤚🏾","name":"raised back of hand tone 4","shortname":":raised_back_of_hand_tone4:","category":"people","emoji_order":"1216","aliases":[":back_of_hand_tone4:"],"aliases_ascii":[],"keywords":[]},"raised_back_of_hand_tone5":{"unicode":"1f91a-1f3ff","unicode_alt":"","code_decimal":"🤚🏿","name":"raised back of hand tone 5","shortname":":raised_back_of_hand_tone5:","category":"people","emoji_order":"1217","aliases":[":back_of_hand_tone5:"],"aliases_ascii":[],"keywords":[]},"wave":{"unicode":"1f44b","unicode_alt":"","code_decimal":"👋","name":"waving hand sign","shortname":":wave:","category":"people","emoji_order":"1218","aliases":[],"aliases_ascii":[],"keywords":["body","hands","hi","diversity"]},"wave_tone1":{"unicode":"1f44b-1f3fb","unicode_alt":"","code_decimal":"👋🏻","name":"waving hand sign tone 1","shortname":":wave_tone1:","category":"people","emoji_order":"1219","aliases":[],"aliases_ascii":[],"keywords":[]},"wave_tone2":{"unicode":"1f44b-1f3fc","unicode_alt":"","code_decimal":"👋🏼","name":"waving hand sign tone 2","shortname":":wave_tone2:","category":"people","emoji_order":"1220","aliases":[],"aliases_ascii":[],"keywords":[]},"wave_tone3":{"unicode":"1f44b-1f3fd","unicode_alt":"","code_decimal":"👋🏽","name":"waving hand sign tone 3","shortname":":wave_tone3:","category":"people","emoji_order":"1221","aliases":[],"aliases_ascii":[],"keywords":[]},"wave_tone4":{"unicode":"1f44b-1f3fe","unicode_alt":"","code_decimal":"👋🏾","name":"waving hand sign tone 4","shortname":":wave_tone4:","category":"people","emoji_order":"1222","aliases":[],"aliases_ascii":[],"keywords":[]},"wave_tone5":{"unicode":"1f44b-1f3ff","unicode_alt":"","code_decimal":"👋🏿","name":"waving hand sign tone 5","shortname":":wave_tone5:","category":"people","emoji_order":"1223","aliases":[],"aliases_ascii":[],"keywords":[]},"clap":{"unicode":"1f44f","unicode_alt":"","code_decimal":"👏","name":"clapping hands sign","shortname":":clap:","category":"people","emoji_order":"1224","aliases":[],"aliases_ascii":[],"keywords":["body","hands","win","diversity","good","beautiful"]},"clap_tone1":{"unicode":"1f44f-1f3fb","unicode_alt":"","code_decimal":"👏🏻","name":"clapping hands sign tone 1","shortname":":clap_tone1:","category":"people","emoji_order":"1225","aliases":[],"aliases_ascii":[],"keywords":[]},"clap_tone2":{"unicode":"1f44f-1f3fc","unicode_alt":"","code_decimal":"👏🏼","name":"clapping hands sign tone 2","shortname":":clap_tone2:","category":"people","emoji_order":"1226","aliases":[],"aliases_ascii":[],"keywords":[]},"clap_tone3":{"unicode":"1f44f-1f3fd","unicode_alt":"","code_decimal":"👏🏽","name":"clapping hands sign tone 3","shortname":":clap_tone3:","category":"people","emoji_order":"1227","aliases":[],"aliases_ascii":[],"keywords":[]},"clap_tone4":{"unicode":"1f44f-1f3fe","unicode_alt":"","code_decimal":"👏🏾","name":"clapping hands sign tone 4","shortname":":clap_tone4:","category":"people","emoji_order":"1228","aliases":[],"aliases_ascii":[],"keywords":[]},"clap_tone5":{"unicode":"1f44f-1f3ff","unicode_alt":"","code_decimal":"👏🏿","name":"clapping hands sign tone 5","shortname":":clap_tone5:","category":"people","emoji_order":"1229","aliases":[],"aliases_ascii":[],"keywords":[]},"writing_hand":{"unicode":"270d","unicode_alt":"270d-fe0f","code_decimal":"✍","name":"writing hand","shortname":":writing_hand:","category":"people","emoji_order":"1230","aliases":[],"aliases_ascii":[],"keywords":["body","hands","write","diversity"]},"writing_hand_tone1":{"unicode":"270d-1f3fb","unicode_alt":"","code_decimal":"✍🏻","name":"writing hand tone 1","shortname":":writing_hand_tone1:","category":"people","emoji_order":"1231","aliases":[],"aliases_ascii":[],"keywords":[]},"writing_hand_tone2":{"unicode":"270d-1f3fc","unicode_alt":"","code_decimal":"✍🏼","name":"writing hand tone 2","shortname":":writing_hand_tone2:","category":"people","emoji_order":"1232","aliases":[],"aliases_ascii":[],"keywords":[]},"writing_hand_tone3":{"unicode":"270d-1f3fd","unicode_alt":"","code_decimal":"✍🏽","name":"writing hand tone 3","shortname":":writing_hand_tone3:","category":"people","emoji_order":"1233","aliases":[],"aliases_ascii":[],"keywords":[]},"writing_hand_tone4":{"unicode":"270d-1f3fe","unicode_alt":"","code_decimal":"✍🏾","name":"writing hand tone 4","shortname":":writing_hand_tone4:","category":"people","emoji_order":"1234","aliases":[],"aliases_ascii":[],"keywords":[]},"writing_hand_tone5":{"unicode":"270d-1f3ff","unicode_alt":"","code_decimal":"✍🏿","name":"writing hand tone 5","shortname":":writing_hand_tone5:","category":"people","emoji_order":"1235","aliases":[],"aliases_ascii":[],"keywords":[]},"open_hands":{"unicode":"1f450","unicode_alt":"","code_decimal":"👐","name":"open hands sign","shortname":":open_hands:","category":"people","emoji_order":"1236","aliases":[],"aliases_ascii":[],"keywords":["body","hands","diversity","condolence"]},"open_hands_tone1":{"unicode":"1f450-1f3fb","unicode_alt":"","code_decimal":"👐🏻","name":"open hands sign tone 1","shortname":":open_hands_tone1:","category":"people","emoji_order":"1237","aliases":[],"aliases_ascii":[],"keywords":[]},"open_hands_tone2":{"unicode":"1f450-1f3fc","unicode_alt":"","code_decimal":"👐🏼","name":"open hands sign tone 2","shortname":":open_hands_tone2:","category":"people","emoji_order":"1238","aliases":[],"aliases_ascii":[],"keywords":[]},"open_hands_tone3":{"unicode":"1f450-1f3fd","unicode_alt":"","code_decimal":"👐🏽","name":"open hands sign tone 3","shortname":":open_hands_tone3:","category":"people","emoji_order":"1239","aliases":[],"aliases_ascii":[],"keywords":[]},"open_hands_tone4":{"unicode":"1f450-1f3fe","unicode_alt":"","code_decimal":"👐🏾","name":"open hands sign tone 4","shortname":":open_hands_tone4:","category":"people","emoji_order":"1240","aliases":[],"aliases_ascii":[],"keywords":[]},"open_hands_tone5":{"unicode":"1f450-1f3ff","unicode_alt":"","code_decimal":"👐🏿","name":"open hands sign tone 5","shortname":":open_hands_tone5:","category":"people","emoji_order":"1241","aliases":[],"aliases_ascii":[],"keywords":[]},"raised_hands":{"unicode":"1f64c","unicode_alt":"","code_decimal":"🙌","name":"person raising both hands in celebration","shortname":":raised_hands:","category":"people","emoji_order":"1242","aliases":[],"aliases_ascii":[],"keywords":["body","hands","diversity","perfect","good","parties"]},"raised_hands_tone1":{"unicode":"1f64c-1f3fb","unicode_alt":"","code_decimal":"🙌🏻","name":"person raising both hands in celebration tone 1","shortname":":raised_hands_tone1:","category":"people","emoji_order":"1243","aliases":[],"aliases_ascii":[],"keywords":[]},"raised_hands_tone2":{"unicode":"1f64c-1f3fc","unicode_alt":"","code_decimal":"🙌🏼","name":"person raising both hands in celebration tone 2","shortname":":raised_hands_tone2:","category":"people","emoji_order":"1244","aliases":[],"aliases_ascii":[],"keywords":[]},"raised_hands_tone3":{"unicode":"1f64c-1f3fd","unicode_alt":"","code_decimal":"🙌🏽","name":"person raising both hands in celebration tone 3","shortname":":raised_hands_tone3:","category":"people","emoji_order":"1245","aliases":[],"aliases_ascii":[],"keywords":[]},"raised_hands_tone4":{"unicode":"1f64c-1f3fe","unicode_alt":"","code_decimal":"🙌🏾","name":"person raising both hands in celebration tone 4","shortname":":raised_hands_tone4:","category":"people","emoji_order":"1246","aliases":[],"aliases_ascii":[],"keywords":[]},"raised_hands_tone5":{"unicode":"1f64c-1f3ff","unicode_alt":"","code_decimal":"🙌🏿","name":"person raising both hands in celebration tone 5","shortname":":raised_hands_tone5:","category":"people","emoji_order":"1247","aliases":[],"aliases_ascii":[],"keywords":[]},"pray":{"unicode":"1f64f","unicode_alt":"","code_decimal":"🙏","name":"person with folded hands","shortname":":pray:","category":"people","emoji_order":"1248","aliases":[],"aliases_ascii":[],"keywords":["body","hands","hi","luck","thank you","pray","diversity","scientology"]},"pray_tone1":{"unicode":"1f64f-1f3fb","unicode_alt":"","code_decimal":"🙏🏻","name":"person with folded hands tone 1","shortname":":pray_tone1:","category":"people","emoji_order":"1249","aliases":[],"aliases_ascii":[],"keywords":[]},"pray_tone2":{"unicode":"1f64f-1f3fc","unicode_alt":"","code_decimal":"🙏🏼","name":"person with folded hands tone 2","shortname":":pray_tone2:","category":"people","emoji_order":"1250","aliases":[],"aliases_ascii":[],"keywords":[]},"pray_tone3":{"unicode":"1f64f-1f3fd","unicode_alt":"","code_decimal":"🙏🏽","name":"person with folded hands tone 3","shortname":":pray_tone3:","category":"people","emoji_order":"1251","aliases":[],"aliases_ascii":[],"keywords":[]},"pray_tone4":{"unicode":"1f64f-1f3fe","unicode_alt":"","code_decimal":"🙏🏾","name":"person with folded hands tone 4","shortname":":pray_tone4:","category":"people","emoji_order":"1252","aliases":[],"aliases_ascii":[],"keywords":[]},"pray_tone5":{"unicode":"1f64f-1f3ff","unicode_alt":"","code_decimal":"🙏🏿","name":"person with folded hands tone 5","shortname":":pray_tone5:","category":"people","emoji_order":"1253","aliases":[],"aliases_ascii":[],"keywords":[]},"handshake":{"unicode":"1f91d","unicode_alt":"","code_decimal":"🤝","name":"handshake","shortname":":handshake:","category":"people","emoji_order":"1254","aliases":[":shaking_hands:"],"aliases_ascii":[],"keywords":[]},"handshake_tone1":{"unicode":"1f91d-1f3fb","unicode_alt":"","code_decimal":"🤝🏻","name":"handshake tone 1","shortname":":handshake_tone1:","category":"people","emoji_order":"1255","aliases":[":shaking_hands_tone1:"],"aliases_ascii":[],"keywords":[]},"handshake_tone2":{"unicode":"1f91d-1f3fc","unicode_alt":"","code_decimal":"🤝🏼","name":"handshake tone 2","shortname":":handshake_tone2:","category":"people","emoji_order":"1256","aliases":[":shaking_hands_tone2:"],"aliases_ascii":[],"keywords":[]},"handshake_tone3":{"unicode":"1f91d-1f3fd","unicode_alt":"","code_decimal":"🤝🏽","name":"handshake tone 3","shortname":":handshake_tone3:","category":"people","emoji_order":"1257","aliases":[":shaking_hands_tone3:"],"aliases_ascii":[],"keywords":[]},"handshake_tone4":{"unicode":"1f91d-1f3fe","unicode_alt":"","code_decimal":"🤝🏾","name":"handshake tone 4","shortname":":handshake_tone4:","category":"people","emoji_order":"1258","aliases":[":shaking_hands_tone4:"],"aliases_ascii":[],"keywords":[]},"handshake_tone5":{"unicode":"1f91d-1f3ff","unicode_alt":"","code_decimal":"🤝🏿","name":"handshake tone 5","shortname":":handshake_tone5:","category":"people","emoji_order":"1259","aliases":[":shaking_hands_tone5:"],"aliases_ascii":[],"keywords":[]},"nail_care":{"unicode":"1f485","unicode_alt":"","code_decimal":"💅","name":"nail polish","shortname":":nail_care:","category":"people","emoji_order":"1260","aliases":[],"aliases_ascii":[],"keywords":["women","body","hands","nailpolish","diversity","girls night"]},"nail_care_tone1":{"unicode":"1f485-1f3fb","unicode_alt":"","code_decimal":"💅🏻","name":"nail polish tone 1","shortname":":nail_care_tone1:","category":"people","emoji_order":"1261","aliases":[],"aliases_ascii":[],"keywords":[]},"nail_care_tone2":{"unicode":"1f485-1f3fc","unicode_alt":"","code_decimal":"💅🏼","name":"nail polish tone 2","shortname":":nail_care_tone2:","category":"people","emoji_order":"1262","aliases":[],"aliases_ascii":[],"keywords":[]},"nail_care_tone3":{"unicode":"1f485-1f3fd","unicode_alt":"","code_decimal":"💅🏽","name":"nail polish tone 3","shortname":":nail_care_tone3:","category":"people","emoji_order":"1263","aliases":[],"aliases_ascii":[],"keywords":[]},"nail_care_tone4":{"unicode":"1f485-1f3fe","unicode_alt":"","code_decimal":"💅🏾","name":"nail polish tone 4","shortname":":nail_care_tone4:","category":"people","emoji_order":"1264","aliases":[],"aliases_ascii":[],"keywords":[]},"nail_care_tone5":{"unicode":"1f485-1f3ff","unicode_alt":"","code_decimal":"💅🏿","name":"nail polish tone 5","shortname":":nail_care_tone5:","category":"people","emoji_order":"1265","aliases":[],"aliases_ascii":[],"keywords":[]},"ear":{"unicode":"1f442","unicode_alt":"","code_decimal":"👂","name":"ear","shortname":":ear:","category":"people","emoji_order":"1266","aliases":[],"aliases_ascii":[],"keywords":["body","diversity"]},"ear_tone1":{"unicode":"1f442-1f3fb","unicode_alt":"","code_decimal":"👂🏻","name":"ear tone 1","shortname":":ear_tone1:","category":"people","emoji_order":"1267","aliases":[],"aliases_ascii":[],"keywords":[]},"ear_tone2":{"unicode":"1f442-1f3fc","unicode_alt":"","code_decimal":"👂🏼","name":"ear tone 2","shortname":":ear_tone2:","category":"people","emoji_order":"1268","aliases":[],"aliases_ascii":[],"keywords":[]},"ear_tone3":{"unicode":"1f442-1f3fd","unicode_alt":"","code_decimal":"👂🏽","name":"ear tone 3","shortname":":ear_tone3:","category":"people","emoji_order":"1269","aliases":[],"aliases_ascii":[],"keywords":[]},"ear_tone4":{"unicode":"1f442-1f3fe","unicode_alt":"","code_decimal":"👂🏾","name":"ear tone 4","shortname":":ear_tone4:","category":"people","emoji_order":"1270","aliases":[],"aliases_ascii":[],"keywords":[]},"ear_tone5":{"unicode":"1f442-1f3ff","unicode_alt":"","code_decimal":"👂🏿","name":"ear tone 5","shortname":":ear_tone5:","category":"people","emoji_order":"1271","aliases":[],"aliases_ascii":[],"keywords":[]},"nose":{"unicode":"1f443","unicode_alt":"","code_decimal":"👃","name":"nose","shortname":":nose:","category":"people","emoji_order":"1272","aliases":[],"aliases_ascii":[],"keywords":["body","diversity"]},"nose_tone1":{"unicode":"1f443-1f3fb","unicode_alt":"","code_decimal":"👃🏻","name":"nose tone 1","shortname":":nose_tone1:","category":"people","emoji_order":"1273","aliases":[],"aliases_ascii":[],"keywords":[]},"nose_tone2":{"unicode":"1f443-1f3fc","unicode_alt":"","code_decimal":"👃🏼","name":"nose tone 2","shortname":":nose_tone2:","category":"people","emoji_order":"1274","aliases":[],"aliases_ascii":[],"keywords":[]},"nose_tone3":{"unicode":"1f443-1f3fd","unicode_alt":"","code_decimal":"👃🏽","name":"nose tone 3","shortname":":nose_tone3:","category":"people","emoji_order":"1275","aliases":[],"aliases_ascii":[],"keywords":[]},"nose_tone4":{"unicode":"1f443-1f3fe","unicode_alt":"","code_decimal":"👃🏾","name":"nose tone 4","shortname":":nose_tone4:","category":"people","emoji_order":"1276","aliases":[],"aliases_ascii":[],"keywords":[]},"nose_tone5":{"unicode":"1f443-1f3ff","unicode_alt":"","code_decimal":"👃🏿","name":"nose tone 5","shortname":":nose_tone5:","category":"people","emoji_order":"1277","aliases":[],"aliases_ascii":[],"keywords":[]},"footprints":{"unicode":"1f463","unicode_alt":"","code_decimal":"👣","name":"footprints","shortname":":footprints:","category":"people","emoji_order":"1278","aliases":[],"aliases_ascii":[],"keywords":[]},"eyes":{"unicode":"1f440","unicode_alt":"","code_decimal":"👀","name":"eyes","shortname":":eyes:","category":"people","emoji_order":"1279","aliases":[],"aliases_ascii":[],"keywords":["body","eyes"]},"eye":{"unicode":"1f441","unicode_alt":"1f441-fe0f","code_decimal":"👁","name":"eye","shortname":":eye:","category":"people","emoji_order":"1280","aliases":[],"aliases_ascii":[],"keywords":["body","eyes"]},"eye_in_speech_bubble":{"unicode":"1f441-1f5e8","unicode_alt":"1f441-200d-1f5e8","code_decimal":"👁🗨","name":"eye in speech bubble","shortname":":eye_in_speech_bubble:","category":"symbols","emoji_order":"1281","aliases":[],"aliases_ascii":[],"keywords":["object","symbol","eyes","talk"]},"tongue":{"unicode":"1f445","unicode_alt":"","code_decimal":"👅","name":"tongue","shortname":":tongue:","category":"people","emoji_order":"1282","aliases":[],"aliases_ascii":[],"keywords":["body","sexy","lip"]},"lips":{"unicode":"1f444","unicode_alt":"","code_decimal":"👄","name":"mouth","shortname":":lips:","category":"people","emoji_order":"1283","aliases":[],"aliases_ascii":[],"keywords":["women","body","sexy","lip"]},"kiss":{"unicode":"1f48b","unicode_alt":"","code_decimal":"💋","name":"kiss mark","shortname":":kiss:","category":"people","emoji_order":"1284","aliases":[],"aliases_ascii":[],"keywords":["women","love","sexy","lip","beautiful","girls night"]},"cupid":{"unicode":"1f498","unicode_alt":"","code_decimal":"💘","name":"heart with arrow","shortname":":cupid:","category":"symbols","emoji_order":"1285","aliases":[],"aliases_ascii":[],"keywords":["love","symbol"]},"heart":{"unicode":"2764","unicode_alt":"2764-fe0f","code_decimal":"❤","name":"heavy black heart","shortname":":heart:","category":"symbols","emoji_order":"1286","aliases":[],"aliases_ascii":["<3"],"keywords":["love","symbol","parties"]},"heartbeat":{"unicode":"1f493","unicode_alt":"","code_decimal":"💓","name":"beating heart","shortname":":heartbeat:","category":"symbols","emoji_order":"1287","aliases":[],"aliases_ascii":[],"keywords":["love","symbol"]},"broken_heart":{"unicode":"1f494","unicode_alt":"","code_decimal":"💔","name":"broken heart","shortname":":broken_heart:","category":"symbols","emoji_order":"1288","aliases":[],"aliases_ascii":["<\/3"],"keywords":["love","symbol","heartbreak"]},"two_hearts":{"unicode":"1f495","unicode_alt":"","code_decimal":"💕","name":"two hearts","shortname":":two_hearts:","category":"symbols","emoji_order":"1289","aliases":[],"aliases_ascii":[],"keywords":["love","symbol"]},"sparkling_heart":{"unicode":"1f496","unicode_alt":"","code_decimal":"💖","name":"sparkling heart","shortname":":sparkling_heart:","category":"symbols","emoji_order":"1290","aliases":[],"aliases_ascii":[],"keywords":["love","symbol","girls night"]},"heartpulse":{"unicode":"1f497","unicode_alt":"","code_decimal":"💗","name":"growing heart","shortname":":heartpulse:","category":"symbols","emoji_order":"1291","aliases":[],"aliases_ascii":[],"keywords":["love","symbol"]},"blue_heart":{"unicode":"1f499","unicode_alt":"","code_decimal":"💙","name":"blue heart","shortname":":blue_heart:","category":"symbols","emoji_order":"1292","aliases":[],"aliases_ascii":[],"keywords":["love","symbol"]},"green_heart":{"unicode":"1f49a","unicode_alt":"","code_decimal":"💚","name":"green heart","shortname":":green_heart:","category":"symbols","emoji_order":"1293","aliases":[],"aliases_ascii":[],"keywords":["love","symbol"]},"yellow_heart":{"unicode":"1f49b","unicode_alt":"","code_decimal":"💛","name":"yellow heart","shortname":":yellow_heart:","category":"symbols","emoji_order":"1294","aliases":[],"aliases_ascii":[],"keywords":["love","symbol"]},"purple_heart":{"unicode":"1f49c","unicode_alt":"","code_decimal":"💜","name":"purple heart","shortname":":purple_heart:","category":"symbols","emoji_order":"1295","aliases":[],"aliases_ascii":[],"keywords":["love","symbol"]},"black_heart":{"unicode":"1f5a4","unicode_alt":"","code_decimal":"🖤","name":"black heart","shortname":":black_heart:","category":"symbols","emoji_order":"1296","aliases":[],"aliases_ascii":[],"keywords":[]},"gift_heart":{"unicode":"1f49d","unicode_alt":"","code_decimal":"💝","name":"heart with ribbon","shortname":":gift_heart:","category":"symbols","emoji_order":"1297","aliases":[],"aliases_ascii":[],"keywords":["love","symbol","condolence"]},"revolving_hearts":{"unicode":"1f49e","unicode_alt":"","code_decimal":"💞","name":"revolving hearts","shortname":":revolving_hearts:","category":"symbols","emoji_order":"1298","aliases":[],"aliases_ascii":[],"keywords":["love","symbol"]},"heart_decoration":{"unicode":"1f49f","unicode_alt":"","code_decimal":"💟","name":"heart decoration","shortname":":heart_decoration:","category":"symbols","emoji_order":"1299","aliases":[],"aliases_ascii":[],"keywords":["love","symbol"]},"heart_exclamation":{"unicode":"2763","unicode_alt":"2763-fe0f","code_decimal":"❣","name":"heavy heart exclamation mark ornament","shortname":":heart_exclamation:","category":"symbols","emoji_order":"1300","aliases":[":heavy_heart_exclamation_mark_ornament:"],"aliases_ascii":[],"keywords":["love","symbol"]},"love_letter":{"unicode":"1f48c","unicode_alt":"","code_decimal":"💌","name":"love letter","shortname":":love_letter:","category":"objects","emoji_order":"1301","aliases":[],"aliases_ascii":[],"keywords":["object"]},"zzz":{"unicode":"1f4a4","unicode_alt":"","code_decimal":"💤","name":"sleeping symbol","shortname":":zzz:","category":"people","emoji_order":"1302","aliases":[],"aliases_ascii":[],"keywords":["tired","goodnight"]},"anger":{"unicode":"1f4a2","unicode_alt":"","code_decimal":"💢","name":"anger symbol","shortname":":anger:","category":"symbols","emoji_order":"1303","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"bomb":{"unicode":"1f4a3","unicode_alt":"","code_decimal":"💣","name":"bomb","shortname":":bomb:","category":"objects","emoji_order":"1304","aliases":[],"aliases_ascii":[],"keywords":["object","weapon","dead","blast"]},"boom":{"unicode":"1f4a5","unicode_alt":"","code_decimal":"💥","name":"collision symbol","shortname":":boom:","category":"symbols","emoji_order":"1305","aliases":[],"aliases_ascii":[],"keywords":["symbol","blast"]},"sweat_drops":{"unicode":"1f4a6","unicode_alt":"","code_decimal":"💦","name":"splashing sweat symbol","shortname":":sweat_drops:","category":"nature","emoji_order":"1306","aliases":[],"aliases_ascii":[],"keywords":["rain","stressed","sweat"]},"dash":{"unicode":"1f4a8","unicode_alt":"","code_decimal":"💨","name":"dash symbol","shortname":":dash:","category":"nature","emoji_order":"1307","aliases":[],"aliases_ascii":[],"keywords":["cloud","cold","smoking"]},"dizzy":{"unicode":"1f4ab","unicode_alt":"","code_decimal":"💫","name":"dizzy symbol","shortname":":dizzy:","category":"symbols","emoji_order":"1308","aliases":[],"aliases_ascii":[],"keywords":["star","symbol"]},"speech_balloon":{"unicode":"1f4ac","unicode_alt":"","code_decimal":"💬","name":"speech balloon","shortname":":speech_balloon:","category":"symbols","emoji_order":"1309","aliases":[],"aliases_ascii":[],"keywords":["symbol","free speech"]},"speech_left":{"unicode":"1f5e8","unicode_alt":"1f5e8-fe0f","code_decimal":"🗨","name":"left speech bubble","shortname":":speech_left:","category":"symbols","emoji_order":"1310","aliases":[":left_speech_bubble:"],"aliases_ascii":[],"keywords":[]},"anger_right":{"unicode":"1f5ef","unicode_alt":"1f5ef-fe0f","code_decimal":"🗯","name":"right anger bubble","shortname":":anger_right:","category":"symbols","emoji_order":"1311","aliases":[":right_anger_bubble:"],"aliases_ascii":[],"keywords":["symbol"]},"thought_balloon":{"unicode":"1f4ad","unicode_alt":"","code_decimal":"💭","name":"thought balloon","shortname":":thought_balloon:","category":"symbols","emoji_order":"1312","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"hole":{"unicode":"1f573","unicode_alt":"1f573-fe0f","code_decimal":"🕳","name":"hole","shortname":":hole:","category":"objects","emoji_order":"1313","aliases":[],"aliases_ascii":[],"keywords":["object"]},"eyeglasses":{"unicode":"1f453","unicode_alt":"","code_decimal":"👓","name":"eyeglasses","shortname":":eyeglasses:","category":"people","emoji_order":"1314","aliases":[],"aliases_ascii":[],"keywords":["fashion","glasses","accessories"]},"dark_sunglasses":{"unicode":"1f576","unicode_alt":"1f576-fe0f","code_decimal":"🕶","name":"dark sunglasses","shortname":":dark_sunglasses:","category":"people","emoji_order":"1315","aliases":[],"aliases_ascii":[],"keywords":["fashion","glasses","accessories"]},"necktie":{"unicode":"1f454","unicode_alt":"","code_decimal":"👔","name":"necktie","shortname":":necktie:","category":"people","emoji_order":"1316","aliases":[],"aliases_ascii":[],"keywords":["fashion"]},"shirt":{"unicode":"1f455","unicode_alt":"","code_decimal":"👕","name":"t-shirt","shortname":":shirt:","category":"people","emoji_order":"1317","aliases":[],"aliases_ascii":[],"keywords":["fashion"]},"jeans":{"unicode":"1f456","unicode_alt":"","code_decimal":"👖","name":"jeans","shortname":":jeans:","category":"people","emoji_order":"1318","aliases":[],"aliases_ascii":[],"keywords":["fashion"]},"dress":{"unicode":"1f457","unicode_alt":"","code_decimal":"👗","name":"dress","shortname":":dress:","category":"people","emoji_order":"1319","aliases":[],"aliases_ascii":[],"keywords":["women","fashion","sexy","girls night"]},"kimono":{"unicode":"1f458","unicode_alt":"","code_decimal":"👘","name":"kimono","shortname":":kimono:","category":"people","emoji_order":"1320","aliases":[],"aliases_ascii":[],"keywords":["fashion"]},"bikini":{"unicode":"1f459","unicode_alt":"","code_decimal":"👙","name":"bikini","shortname":":bikini:","category":"people","emoji_order":"1321","aliases":[],"aliases_ascii":[],"keywords":["women","fashion","sexy","vacation","tropical","swim"]},"womans_clothes":{"unicode":"1f45a","unicode_alt":"","code_decimal":"👚","name":"womans clothes","shortname":":womans_clothes:","category":"people","emoji_order":"1322","aliases":[],"aliases_ascii":[],"keywords":["women","fashion"]},"purse":{"unicode":"1f45b","unicode_alt":"","code_decimal":"👛","name":"purse","shortname":":purse:","category":"people","emoji_order":"1323","aliases":[],"aliases_ascii":[],"keywords":["bag","women","fashion","accessories","money"]},"handbag":{"unicode":"1f45c","unicode_alt":"","code_decimal":"👜","name":"handbag","shortname":":handbag:","category":"people","emoji_order":"1324","aliases":[],"aliases_ascii":[],"keywords":["bag","women","fashion","vacation","accessories"]},"pouch":{"unicode":"1f45d","unicode_alt":"","code_decimal":"👝","name":"pouch","shortname":":pouch:","category":"people","emoji_order":"1325","aliases":[],"aliases_ascii":[],"keywords":["bag","women","fashion","accessories"]},"shopping_bags":{"unicode":"1f6cd","unicode_alt":"1f6cd-fe0f","code_decimal":"🛍","name":"shopping bags","shortname":":shopping_bags:","category":"objects","emoji_order":"1326","aliases":[],"aliases_ascii":[],"keywords":["object","birthday","parties"]},"school_satchel":{"unicode":"1f392","unicode_alt":"","code_decimal":"🎒","name":"school satchel","shortname":":school_satchel:","category":"people","emoji_order":"1327","aliases":[],"aliases_ascii":[],"keywords":["bag","fashion","office","vacation","accessories"]},"mans_shoe":{"unicode":"1f45e","unicode_alt":"","code_decimal":"👞","name":"mans shoe","shortname":":mans_shoe:","category":"people","emoji_order":"1328","aliases":[],"aliases_ascii":[],"keywords":["fashion","shoe","accessories"]},"athletic_shoe":{"unicode":"1f45f","unicode_alt":"","code_decimal":"👟","name":"athletic shoe","shortname":":athletic_shoe:","category":"people","emoji_order":"1329","aliases":[],"aliases_ascii":[],"keywords":["fashion","shoe","accessories","boys night"]},"high_heel":{"unicode":"1f460","unicode_alt":"","code_decimal":"👠","name":"high-heeled shoe","shortname":":high_heel:","category":"people","emoji_order":"1330","aliases":[],"aliases_ascii":[],"keywords":["women","fashion","shoe","sexy","accessories","girls night"]},"sandal":{"unicode":"1f461","unicode_alt":"","code_decimal":"👡","name":"womans sandal","shortname":":sandal:","category":"people","emoji_order":"1331","aliases":[],"aliases_ascii":[],"keywords":["fashion","shoe","accessories"]},"boot":{"unicode":"1f462","unicode_alt":"","code_decimal":"👢","name":"womans boots","shortname":":boot:","category":"people","emoji_order":"1332","aliases":[],"aliases_ascii":[],"keywords":["women","fashion","shoe","sexy","accessories"]},"crown":{"unicode":"1f451","unicode_alt":"","code_decimal":"👑","name":"crown","shortname":":crown:","category":"people","emoji_order":"1333","aliases":[],"aliases_ascii":[],"keywords":["object","gem","accessories"]},"womans_hat":{"unicode":"1f452","unicode_alt":"","code_decimal":"👒","name":"womans hat","shortname":":womans_hat:","category":"people","emoji_order":"1334","aliases":[],"aliases_ascii":[],"keywords":["women","fashion","accessories"]},"tophat":{"unicode":"1f3a9","unicode_alt":"","code_decimal":"🎩","name":"top hat","shortname":":tophat:","category":"people","emoji_order":"1335","aliases":[],"aliases_ascii":[],"keywords":["hat","fashion","accessories"]},"mortar_board":{"unicode":"1f393","unicode_alt":"","code_decimal":"🎓","name":"graduation cap","shortname":":mortar_board:","category":"people","emoji_order":"1336","aliases":[],"aliases_ascii":[],"keywords":["hat","office","accessories"]},"helmet_with_cross":{"unicode":"26d1","unicode_alt":"26d1-fe0f","code_decimal":"⛑","name":"helmet with white cross","shortname":":helmet_with_cross:","category":"people","emoji_order":"1337","aliases":[":helmet_with_white_cross:"],"aliases_ascii":[],"keywords":["object","hat","accessories","job"]},"prayer_beads":{"unicode":"1f4ff","unicode_alt":"","code_decimal":"📿","name":"prayer beads","shortname":":prayer_beads:","category":"objects","emoji_order":"1338","aliases":[],"aliases_ascii":[],"keywords":["object","rosary"]},"lipstick":{"unicode":"1f484","unicode_alt":"","code_decimal":"💄","name":"lipstick","shortname":":lipstick:","category":"people","emoji_order":"1339","aliases":[],"aliases_ascii":[],"keywords":["object","women","fashion","sexy","lip"]},"ring":{"unicode":"1f48d","unicode_alt":"","code_decimal":"💍","name":"ring","shortname":":ring:","category":"people","emoji_order":"1340","aliases":[],"aliases_ascii":[],"keywords":["wedding","object","fashion","gem","accessories"]},"gem":{"unicode":"1f48e","unicode_alt":"","code_decimal":"💎","name":"gem stone","shortname":":gem:","category":"objects","emoji_order":"1341","aliases":[],"aliases_ascii":[],"keywords":["object","gem"]},"monkey_face":{"unicode":"1f435","unicode_alt":"","code_decimal":"🐵","name":"monkey face","shortname":":monkey_face:","category":"nature","emoji_order":"1342","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"monkey":{"unicode":"1f412","unicode_alt":"","code_decimal":"🐒","name":"monkey","shortname":":monkey:","category":"nature","emoji_order":"1343","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"gorilla":{"unicode":"1f98d","unicode_alt":"","code_decimal":"🦍","name":"gorilla","shortname":":gorilla:","category":"nature","emoji_order":"1344","aliases":[],"aliases_ascii":[],"keywords":[]},"dog":{"unicode":"1f436","unicode_alt":"","code_decimal":"🐶","name":"dog face","shortname":":dog:","category":"nature","emoji_order":"1345","aliases":[],"aliases_ascii":[],"keywords":["dog","pug","animal"]},"dog2":{"unicode":"1f415","unicode_alt":"","code_decimal":"🐕","name":"dog","shortname":":dog2:","category":"nature","emoji_order":"1346","aliases":[],"aliases_ascii":[],"keywords":["dog","pug","animal"]},"poodle":{"unicode":"1f429","unicode_alt":"","code_decimal":"🐩","name":"poodle","shortname":":poodle:","category":"nature","emoji_order":"1347","aliases":[],"aliases_ascii":[],"keywords":["dog","animal"]},"wolf":{"unicode":"1f43a","unicode_alt":"","code_decimal":"🐺","name":"wolf face","shortname":":wolf:","category":"nature","emoji_order":"1348","aliases":[],"aliases_ascii":[],"keywords":["wildlife","roar","animal"]},"fox":{"unicode":"1f98a","unicode_alt":"","code_decimal":"🦊","name":"fox face","shortname":":fox:","category":"nature","emoji_order":"1349","aliases":[":fox_face:"],"aliases_ascii":[],"keywords":[]},"cat":{"unicode":"1f431","unicode_alt":"","code_decimal":"🐱","name":"cat face","shortname":":cat:","category":"nature","emoji_order":"1350","aliases":[],"aliases_ascii":[],"keywords":["halloween","vagina","cat","animal"]},"cat2":{"unicode":"1f408","unicode_alt":"","code_decimal":"🐈","name":"cat","shortname":":cat2:","category":"nature","emoji_order":"1351","aliases":[],"aliases_ascii":[],"keywords":["halloween","cat","animal"]},"lion_face":{"unicode":"1f981","unicode_alt":"","code_decimal":"🦁","name":"lion face","shortname":":lion_face:","category":"nature","emoji_order":"1352","aliases":[":lion:"],"aliases_ascii":[],"keywords":["wildlife","roar","cat","animal"]},"tiger":{"unicode":"1f42f","unicode_alt":"","code_decimal":"🐯","name":"tiger face","shortname":":tiger:","category":"nature","emoji_order":"1353","aliases":[],"aliases_ascii":[],"keywords":["wildlife","roar","cat","animal"]},"tiger2":{"unicode":"1f405","unicode_alt":"","code_decimal":"🐅","name":"tiger","shortname":":tiger2:","category":"nature","emoji_order":"1354","aliases":[],"aliases_ascii":[],"keywords":["wildlife","roar","animal"]},"leopard":{"unicode":"1f406","unicode_alt":"","code_decimal":"🐆","name":"leopard","shortname":":leopard:","category":"nature","emoji_order":"1355","aliases":[],"aliases_ascii":[],"keywords":["wildlife","roar","animal"]},"horse":{"unicode":"1f434","unicode_alt":"","code_decimal":"🐴","name":"horse face","shortname":":horse:","category":"nature","emoji_order":"1356","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"racehorse":{"unicode":"1f40e","unicode_alt":"","code_decimal":"🐎","name":"horse","shortname":":racehorse:","category":"nature","emoji_order":"1357","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"deer":{"unicode":"1f98c","unicode_alt":"","code_decimal":"🦌","name":"deer","shortname":":deer:","category":"nature","emoji_order":"1358","aliases":[],"aliases_ascii":[],"keywords":[]},"unicorn":{"unicode":"1f984","unicode_alt":"","code_decimal":"🦄","name":"unicorn face","shortname":":unicorn:","category":"nature","emoji_order":"1359","aliases":[":unicorn_face:"],"aliases_ascii":[],"keywords":["animal"]},"cow":{"unicode":"1f42e","unicode_alt":"","code_decimal":"🐮","name":"cow face","shortname":":cow:","category":"nature","emoji_order":"1360","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"ox":{"unicode":"1f402","unicode_alt":"","code_decimal":"🐂","name":"ox","shortname":":ox:","category":"nature","emoji_order":"1361","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"water_buffalo":{"unicode":"1f403","unicode_alt":"","code_decimal":"🐃","name":"water buffalo","shortname":":water_buffalo:","category":"nature","emoji_order":"1362","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"cow2":{"unicode":"1f404","unicode_alt":"","code_decimal":"🐄","name":"cow","shortname":":cow2:","category":"nature","emoji_order":"1363","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"pig":{"unicode":"1f437","unicode_alt":"","code_decimal":"🐷","name":"pig face","shortname":":pig:","category":"nature","emoji_order":"1364","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"pig2":{"unicode":"1f416","unicode_alt":"","code_decimal":"🐖","name":"pig","shortname":":pig2:","category":"nature","emoji_order":"1365","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"boar":{"unicode":"1f417","unicode_alt":"","code_decimal":"🐗","name":"boar","shortname":":boar:","category":"nature","emoji_order":"1366","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"pig_nose":{"unicode":"1f43d","unicode_alt":"","code_decimal":"🐽","name":"pig nose","shortname":":pig_nose:","category":"nature","emoji_order":"1367","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"ram":{"unicode":"1f40f","unicode_alt":"","code_decimal":"🐏","name":"ram","shortname":":ram:","category":"nature","emoji_order":"1368","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"sheep":{"unicode":"1f411","unicode_alt":"","code_decimal":"🐑","name":"sheep","shortname":":sheep:","category":"nature","emoji_order":"1369","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"goat":{"unicode":"1f410","unicode_alt":"","code_decimal":"🐐","name":"goat","shortname":":goat:","category":"nature","emoji_order":"1370","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"dromedary_camel":{"unicode":"1f42a","unicode_alt":"","code_decimal":"🐪","name":"dromedary camel","shortname":":dromedary_camel:","category":"nature","emoji_order":"1371","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"camel":{"unicode":"1f42b","unicode_alt":"","code_decimal":"🐫","name":"bactrian camel","shortname":":camel:","category":"nature","emoji_order":"1372","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal","hump day"]},"elephant":{"unicode":"1f418","unicode_alt":"","code_decimal":"🐘","name":"elephant","shortname":":elephant:","category":"nature","emoji_order":"1373","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"rhino":{"unicode":"1f98f","unicode_alt":"","code_decimal":"🦏","name":"rhinoceros","shortname":":rhino:","category":"nature","emoji_order":"1374","aliases":[":rhinoceros:"],"aliases_ascii":[],"keywords":[]},"mouse":{"unicode":"1f42d","unicode_alt":"","code_decimal":"🐭","name":"mouse face","shortname":":mouse:","category":"nature","emoji_order":"1375","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"mouse2":{"unicode":"1f401","unicode_alt":"","code_decimal":"🐁","name":"mouse","shortname":":mouse2:","category":"nature","emoji_order":"1376","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"rat":{"unicode":"1f400","unicode_alt":"","code_decimal":"🐀","name":"rat","shortname":":rat:","category":"nature","emoji_order":"1377","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"hamster":{"unicode":"1f439","unicode_alt":"","code_decimal":"🐹","name":"hamster face","shortname":":hamster:","category":"nature","emoji_order":"1378","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"rabbit":{"unicode":"1f430","unicode_alt":"","code_decimal":"🐰","name":"rabbit face","shortname":":rabbit:","category":"nature","emoji_order":"1379","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"rabbit2":{"unicode":"1f407","unicode_alt":"","code_decimal":"🐇","name":"rabbit","shortname":":rabbit2:","category":"nature","emoji_order":"1380","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"chipmunk":{"unicode":"1f43f","unicode_alt":"1f43f-fe0f","code_decimal":"🐿","name":"chipmunk","shortname":":chipmunk:","category":"nature","emoji_order":"1381","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"bat":{"unicode":"1f987","unicode_alt":"","code_decimal":"🦇","name":"bat","shortname":":bat:","category":"nature","emoji_order":"1382","aliases":[],"aliases_ascii":[],"keywords":[]},"bear":{"unicode":"1f43b","unicode_alt":"","code_decimal":"🐻","name":"bear face","shortname":":bear:","category":"nature","emoji_order":"1383","aliases":[],"aliases_ascii":[],"keywords":["wildlife","roar","animal"]},"koala":{"unicode":"1f428","unicode_alt":"","code_decimal":"🐨","name":"koala","shortname":":koala:","category":"nature","emoji_order":"1384","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"panda_face":{"unicode":"1f43c","unicode_alt":"","code_decimal":"🐼","name":"panda face","shortname":":panda_face:","category":"nature","emoji_order":"1385","aliases":[],"aliases_ascii":[],"keywords":["wildlife","roar","animal"]},"feet":{"unicode":"1f43e","unicode_alt":"","code_decimal":"🐾","name":"paw prints","shortname":":feet:","category":"nature","emoji_order":"1386","aliases":[":paw_prints:"],"aliases_ascii":[],"keywords":["animal"]},"turkey":{"unicode":"1f983","unicode_alt":"","code_decimal":"🦃","name":"turkey","shortname":":turkey:","category":"nature","emoji_order":"1387","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"chicken":{"unicode":"1f414","unicode_alt":"","code_decimal":"🐔","name":"chicken","shortname":":chicken:","category":"nature","emoji_order":"1388","aliases":[],"aliases_ascii":[],"keywords":["animal","chicken"]},"rooster":{"unicode":"1f413","unicode_alt":"","code_decimal":"🐓","name":"rooster","shortname":":rooster:","category":"nature","emoji_order":"1389","aliases":[],"aliases_ascii":[],"keywords":["animal"]},"hatching_chick":{"unicode":"1f423","unicode_alt":"","code_decimal":"🐣","name":"hatching chick","shortname":":hatching_chick:","category":"nature","emoji_order":"1390","aliases":[],"aliases_ascii":[],"keywords":["animal","chicken"]},"baby_chick":{"unicode":"1f424","unicode_alt":"","code_decimal":"🐤","name":"baby chick","shortname":":baby_chick:","category":"nature","emoji_order":"1391","aliases":[],"aliases_ascii":[],"keywords":["animal","chicken"]},"hatched_chick":{"unicode":"1f425","unicode_alt":"","code_decimal":"🐥","name":"front-facing baby chick","shortname":":hatched_chick:","category":"nature","emoji_order":"1392","aliases":[],"aliases_ascii":[],"keywords":["animal","chicken"]},"bird":{"unicode":"1f426","unicode_alt":"","code_decimal":"🐦","name":"bird","shortname":":bird:","category":"nature","emoji_order":"1393","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"penguin":{"unicode":"1f427","unicode_alt":"","code_decimal":"🐧","name":"penguin","shortname":":penguin:","category":"nature","emoji_order":"1394","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"dove":{"unicode":"1f54a","unicode_alt":"1f54a-fe0f","code_decimal":"🕊","name":"dove of peace","shortname":":dove:","category":"nature","emoji_order":"1395","aliases":[":dove_of_peace:"],"aliases_ascii":[],"keywords":["animal"]},"eagle":{"unicode":"1f985","unicode_alt":"","code_decimal":"🦅","name":"eagle","shortname":":eagle:","category":"nature","emoji_order":"1396","aliases":[],"aliases_ascii":[],"keywords":[]},"duck":{"unicode":"1f986","unicode_alt":"","code_decimal":"🦆","name":"duck","shortname":":duck:","category":"nature","emoji_order":"1397","aliases":[],"aliases_ascii":[],"keywords":[]},"owl":{"unicode":"1f989","unicode_alt":"","code_decimal":"🦉","name":"owl","shortname":":owl:","category":"nature","emoji_order":"1398","aliases":[],"aliases_ascii":[],"keywords":[]},"frog":{"unicode":"1f438","unicode_alt":"","code_decimal":"🐸","name":"frog face","shortname":":frog:","category":"nature","emoji_order":"1399","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"crocodile":{"unicode":"1f40a","unicode_alt":"","code_decimal":"🐊","name":"crocodile","shortname":":crocodile:","category":"nature","emoji_order":"1400","aliases":[],"aliases_ascii":[],"keywords":["wildlife","reptile","animal"]},"turtle":{"unicode":"1f422","unicode_alt":"","code_decimal":"🐢","name":"turtle","shortname":":turtle:","category":"nature","emoji_order":"1401","aliases":[],"aliases_ascii":[],"keywords":["wildlife","reptile","animal"]},"lizard":{"unicode":"1f98e","unicode_alt":"","code_decimal":"🦎","name":"lizard","shortname":":lizard:","category":"nature","emoji_order":"1402","aliases":[],"aliases_ascii":[],"keywords":[]},"snake":{"unicode":"1f40d","unicode_alt":"","code_decimal":"🐍","name":"snake","shortname":":snake:","category":"nature","emoji_order":"1403","aliases":[],"aliases_ascii":[],"keywords":["wildlife","reptile","animal","creationism"]},"dragon_face":{"unicode":"1f432","unicode_alt":"","code_decimal":"🐲","name":"dragon face","shortname":":dragon_face:","category":"nature","emoji_order":"1404","aliases":[],"aliases_ascii":[],"keywords":["roar","monster","reptile","animal"]},"dragon":{"unicode":"1f409","unicode_alt":"","code_decimal":"🐉","name":"dragon","shortname":":dragon:","category":"nature","emoji_order":"1405","aliases":[],"aliases_ascii":[],"keywords":["roar","reptile","animal"]},"whale":{"unicode":"1f433","unicode_alt":"","code_decimal":"🐳","name":"spouting whale","shortname":":whale:","category":"nature","emoji_order":"1406","aliases":[],"aliases_ascii":[],"keywords":["wildlife","tropical","whales","animal"]},"whale2":{"unicode":"1f40b","unicode_alt":"","code_decimal":"🐋","name":"whale","shortname":":whale2:","category":"nature","emoji_order":"1407","aliases":[],"aliases_ascii":[],"keywords":["wildlife","tropical","whales","animal"]},"dolphin":{"unicode":"1f42c","unicode_alt":"","code_decimal":"🐬","name":"dolphin","shortname":":dolphin:","category":"nature","emoji_order":"1408","aliases":[],"aliases_ascii":[],"keywords":["wildlife","tropical","animal"]},"fish":{"unicode":"1f41f","unicode_alt":"","code_decimal":"🐟","name":"fish","shortname":":fish:","category":"nature","emoji_order":"1409","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"tropical_fish":{"unicode":"1f420","unicode_alt":"","code_decimal":"🐠","name":"tropical fish","shortname":":tropical_fish:","category":"nature","emoji_order":"1410","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"blowfish":{"unicode":"1f421","unicode_alt":"","code_decimal":"🐡","name":"blowfish","shortname":":blowfish:","category":"nature","emoji_order":"1411","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"shark":{"unicode":"1f988","unicode_alt":"","code_decimal":"🦈","name":"shark","shortname":":shark:","category":"nature","emoji_order":"1412","aliases":[],"aliases_ascii":[],"keywords":[]},"octopus":{"unicode":"1f419","unicode_alt":"","code_decimal":"🐙","name":"octopus","shortname":":octopus:","category":"nature","emoji_order":"1413","aliases":[],"aliases_ascii":[],"keywords":["wildlife","animal"]},"shell":{"unicode":"1f41a","unicode_alt":"","code_decimal":"🐚","name":"spiral shell","shortname":":shell:","category":"nature","emoji_order":"1414","aliases":[],"aliases_ascii":[],"keywords":[]},"crab":{"unicode":"1f980","unicode_alt":"","code_decimal":"🦀","name":"crab","shortname":":crab:","category":"nature","emoji_order":"1415","aliases":[],"aliases_ascii":[],"keywords":["tropical","animal"]},"shrimp":{"unicode":"1f990","unicode_alt":"","code_decimal":"🦐","name":"shrimp","shortname":":shrimp:","category":"nature","emoji_order":"1416","aliases":[],"aliases_ascii":[],"keywords":[]},"squid":{"unicode":"1f991","unicode_alt":"","code_decimal":"🦑","name":"squid","shortname":":squid:","category":"nature","emoji_order":"1417","aliases":[],"aliases_ascii":[],"keywords":[]},"butterfly":{"unicode":"1f98b","unicode_alt":"","code_decimal":"🦋","name":"butterfly","shortname":":butterfly:","category":"nature","emoji_order":"1418","aliases":[],"aliases_ascii":[],"keywords":[]},"snail":{"unicode":"1f40c","unicode_alt":"","code_decimal":"🐌","name":"snail","shortname":":snail:","category":"nature","emoji_order":"1419","aliases":[],"aliases_ascii":[],"keywords":["insects","animal"]},"bug":{"unicode":"1f41b","unicode_alt":"","code_decimal":"🐛","name":"bug","shortname":":bug:","category":"nature","emoji_order":"1420","aliases":[],"aliases_ascii":[],"keywords":["insects","animal"]},"ant":{"unicode":"1f41c","unicode_alt":"","code_decimal":"🐜","name":"ant","shortname":":ant:","category":"nature","emoji_order":"1421","aliases":[],"aliases_ascii":[],"keywords":["insects","animal"]},"bee":{"unicode":"1f41d","unicode_alt":"","code_decimal":"🐝","name":"honeybee","shortname":":bee:","category":"nature","emoji_order":"1422","aliases":[],"aliases_ascii":[],"keywords":["insects","animal"]},"beetle":{"unicode":"1f41e","unicode_alt":"","code_decimal":"🐞","name":"lady beetle","shortname":":beetle:","category":"nature","emoji_order":"1423","aliases":[],"aliases_ascii":[],"keywords":["insects","animal"]},"spider":{"unicode":"1f577","unicode_alt":"1f577-fe0f","code_decimal":"🕷","name":"spider","shortname":":spider:","category":"nature","emoji_order":"1424","aliases":[],"aliases_ascii":[],"keywords":["insects","halloween","animal"]},"spider_web":{"unicode":"1f578","unicode_alt":"1f578-fe0f","code_decimal":"🕸","name":"spider web","shortname":":spider_web:","category":"nature","emoji_order":"1425","aliases":[],"aliases_ascii":[],"keywords":["halloween"]},"scorpion":{"unicode":"1f982","unicode_alt":"","code_decimal":"🦂","name":"scorpion","shortname":":scorpion:","category":"nature","emoji_order":"1426","aliases":[],"aliases_ascii":[],"keywords":["insects","reptile","animal"]},"bouquet":{"unicode":"1f490","unicode_alt":"","code_decimal":"💐","name":"bouquet","shortname":":bouquet:","category":"nature","emoji_order":"1427","aliases":[],"aliases_ascii":[],"keywords":["nature","flower","plant","rip","condolence"]},"cherry_blossom":{"unicode":"1f338","unicode_alt":"","code_decimal":"🌸","name":"cherry blossom","shortname":":cherry_blossom:","category":"nature","emoji_order":"1428","aliases":[],"aliases_ascii":[],"keywords":["nature","flower","plant","tropical"]},"white_flower":{"unicode":"1f4ae","unicode_alt":"","code_decimal":"💮","name":"white flower","shortname":":white_flower:","category":"symbols","emoji_order":"1429","aliases":[],"aliases_ascii":[],"keywords":["flower","symbol"]},"rosette":{"unicode":"1f3f5","unicode_alt":"1f3f5-fe0f","code_decimal":"🏵","name":"rosette","shortname":":rosette:","category":"nature","emoji_order":"1430","aliases":[],"aliases_ascii":[],"keywords":["tropical"]},"rose":{"unicode":"1f339","unicode_alt":"","code_decimal":"🌹","name":"rose","shortname":":rose:","category":"nature","emoji_order":"1431","aliases":[],"aliases_ascii":[],"keywords":["nature","flower","plant","rip","condolence","beautiful"]},"wilted_rose":{"unicode":"1f940","unicode_alt":"","code_decimal":"🥀","name":"wilted flower","shortname":":wilted_rose:","category":"nature","emoji_order":"1432","aliases":[":wilted_flower:"],"aliases_ascii":[],"keywords":[]},"hibiscus":{"unicode":"1f33a","unicode_alt":"","code_decimal":"🌺","name":"hibiscus","shortname":":hibiscus:","category":"nature","emoji_order":"1433","aliases":[],"aliases_ascii":[],"keywords":["nature","flower","plant","tropical"]},"sunflower":{"unicode":"1f33b","unicode_alt":"","code_decimal":"🌻","name":"sunflower","shortname":":sunflower:","category":"nature","emoji_order":"1434","aliases":[],"aliases_ascii":[],"keywords":["nature","flower","plant"]},"blossom":{"unicode":"1f33c","unicode_alt":"","code_decimal":"🌼","name":"blossom","shortname":":blossom:","category":"nature","emoji_order":"1435","aliases":[],"aliases_ascii":[],"keywords":["nature","flower","plant"]},"tulip":{"unicode":"1f337","unicode_alt":"","code_decimal":"🌷","name":"tulip","shortname":":tulip:","category":"nature","emoji_order":"1436","aliases":[],"aliases_ascii":[],"keywords":["nature","flower","plant","vagina","girls night"]},"seedling":{"unicode":"1f331","unicode_alt":"","code_decimal":"🌱","name":"seedling","shortname":":seedling:","category":"nature","emoji_order":"1437","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","leaf"]},"evergreen_tree":{"unicode":"1f332","unicode_alt":"","code_decimal":"🌲","name":"evergreen tree","shortname":":evergreen_tree:","category":"nature","emoji_order":"1438","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","holidays","christmas","camp","trees"]},"deciduous_tree":{"unicode":"1f333","unicode_alt":"","code_decimal":"🌳","name":"deciduous tree","shortname":":deciduous_tree:","category":"nature","emoji_order":"1439","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","camp","trees"]},"palm_tree":{"unicode":"1f334","unicode_alt":"","code_decimal":"🌴","name":"palm tree","shortname":":palm_tree:","category":"nature","emoji_order":"1440","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","tropical","trees"]},"cactus":{"unicode":"1f335","unicode_alt":"","code_decimal":"🌵","name":"cactus","shortname":":cactus:","category":"nature","emoji_order":"1441","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","trees"]},"ear_of_rice":{"unicode":"1f33e","unicode_alt":"","code_decimal":"🌾","name":"ear of rice","shortname":":ear_of_rice:","category":"nature","emoji_order":"1442","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","leaf"]},"herb":{"unicode":"1f33f","unicode_alt":"","code_decimal":"🌿","name":"herb","shortname":":herb:","category":"nature","emoji_order":"1443","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","leaf"]},"shamrock":{"unicode":"2618","unicode_alt":"2618-fe0f","code_decimal":"☘","name":"shamrock","shortname":":shamrock:","category":"nature","emoji_order":"1444","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","luck","leaf"]},"four_leaf_clover":{"unicode":"1f340","unicode_alt":"","code_decimal":"🍀","name":"four leaf clover","shortname":":four_leaf_clover:","category":"nature","emoji_order":"1445","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","luck","leaf","sol"]},"maple_leaf":{"unicode":"1f341","unicode_alt":"","code_decimal":"🍁","name":"maple leaf","shortname":":maple_leaf:","category":"nature","emoji_order":"1446","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","leaf"]},"fallen_leaf":{"unicode":"1f342","unicode_alt":"","code_decimal":"🍂","name":"fallen leaf","shortname":":fallen_leaf:","category":"nature","emoji_order":"1447","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","leaf"]},"leaves":{"unicode":"1f343","unicode_alt":"","code_decimal":"🍃","name":"leaf fluttering in wind","shortname":":leaves:","category":"nature","emoji_order":"1448","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","leaf"]},"grapes":{"unicode":"1f347","unicode_alt":"","code_decimal":"🍇","name":"grapes","shortname":":grapes:","category":"food","emoji_order":"1449","aliases":[],"aliases_ascii":[],"keywords":["fruit","food"]},"melon":{"unicode":"1f348","unicode_alt":"","code_decimal":"🍈","name":"melon","shortname":":melon:","category":"food","emoji_order":"1450","aliases":[],"aliases_ascii":[],"keywords":["fruit","boobs","food"]},"watermelon":{"unicode":"1f349","unicode_alt":"","code_decimal":"🍉","name":"watermelon","shortname":":watermelon:","category":"food","emoji_order":"1451","aliases":[],"aliases_ascii":[],"keywords":["fruit","food"]},"tangerine":{"unicode":"1f34a","unicode_alt":"","code_decimal":"🍊","name":"tangerine","shortname":":tangerine:","category":"food","emoji_order":"1452","aliases":[],"aliases_ascii":[],"keywords":["fruit","food"]},"lemon":{"unicode":"1f34b","unicode_alt":"","code_decimal":"🍋","name":"lemon","shortname":":lemon:","category":"food","emoji_order":"1453","aliases":[],"aliases_ascii":[],"keywords":["fruit","food"]},"banana":{"unicode":"1f34c","unicode_alt":"","code_decimal":"🍌","name":"banana","shortname":":banana:","category":"food","emoji_order":"1454","aliases":[],"aliases_ascii":[],"keywords":["fruit","penis","food"]},"pineapple":{"unicode":"1f34d","unicode_alt":"","code_decimal":"🍍","name":"pineapple","shortname":":pineapple:","category":"food","emoji_order":"1455","aliases":[],"aliases_ascii":[],"keywords":["fruit","food","tropical"]},"apple":{"unicode":"1f34e","unicode_alt":"","code_decimal":"🍎","name":"red apple","shortname":":apple:","category":"food","emoji_order":"1456","aliases":[],"aliases_ascii":[],"keywords":["fruit","food","creationism"]},"green_apple":{"unicode":"1f34f","unicode_alt":"","code_decimal":"🍏","name":"green apple","shortname":":green_apple:","category":"food","emoji_order":"1457","aliases":[],"aliases_ascii":[],"keywords":["fruit","food"]},"pear":{"unicode":"1f350","unicode_alt":"","code_decimal":"🍐","name":"pear","shortname":":pear:","category":"food","emoji_order":"1458","aliases":[],"aliases_ascii":[],"keywords":["fruit","food"]},"peach":{"unicode":"1f351","unicode_alt":"","code_decimal":"🍑","name":"peach","shortname":":peach:","category":"food","emoji_order":"1459","aliases":[],"aliases_ascii":[],"keywords":["fruit","butt","food"]},"cherries":{"unicode":"1f352","unicode_alt":"","code_decimal":"🍒","name":"cherries","shortname":":cherries:","category":"food","emoji_order":"1460","aliases":[],"aliases_ascii":[],"keywords":["fruit","food"]},"strawberry":{"unicode":"1f353","unicode_alt":"","code_decimal":"🍓","name":"strawberry","shortname":":strawberry:","category":"food","emoji_order":"1461","aliases":[],"aliases_ascii":[],"keywords":["fruit","food"]},"kiwi":{"unicode":"1f95d","unicode_alt":"","code_decimal":"🥝","name":"kiwifruit","shortname":":kiwi:","category":"food","emoji_order":"1462","aliases":[":kiwifruit:"],"aliases_ascii":[],"keywords":[]},"tomato":{"unicode":"1f345","unicode_alt":"","code_decimal":"🍅","name":"tomato","shortname":":tomato:","category":"food","emoji_order":"1463","aliases":[],"aliases_ascii":[],"keywords":["fruit","vegetables","food"]},"avocado":{"unicode":"1f951","unicode_alt":"","code_decimal":"🥑","name":"avocado","shortname":":avocado:","category":"food","emoji_order":"1464","aliases":[],"aliases_ascii":[],"keywords":[]},"eggplant":{"unicode":"1f346","unicode_alt":"","code_decimal":"🍆","name":"aubergine","shortname":":eggplant:","category":"food","emoji_order":"1465","aliases":[],"aliases_ascii":[],"keywords":["vegetables","penis","food"]},"potato":{"unicode":"1f954","unicode_alt":"","code_decimal":"🥔","name":"potato","shortname":":potato:","category":"food","emoji_order":"1466","aliases":[],"aliases_ascii":[],"keywords":[]},"carrot":{"unicode":"1f955","unicode_alt":"","code_decimal":"🥕","name":"carrot","shortname":":carrot:","category":"food","emoji_order":"1467","aliases":[],"aliases_ascii":[],"keywords":[]},"corn":{"unicode":"1f33d","unicode_alt":"","code_decimal":"🌽","name":"ear of maize","shortname":":corn:","category":"food","emoji_order":"1468","aliases":[],"aliases_ascii":[],"keywords":["vegetables","food"]},"hot_pepper":{"unicode":"1f336","unicode_alt":"1f336-fe0f","code_decimal":"🌶","name":"hot pepper","shortname":":hot_pepper:","category":"food","emoji_order":"1469","aliases":[],"aliases_ascii":[],"keywords":["vegetables","food"]},"cucumber":{"unicode":"1f952","unicode_alt":"","code_decimal":"🥒","name":"cucumber","shortname":":cucumber:","category":"food","emoji_order":"1470","aliases":[],"aliases_ascii":[],"keywords":[]},"mushroom":{"unicode":"1f344","unicode_alt":"","code_decimal":"🍄","name":"mushroom","shortname":":mushroom:","category":"nature","emoji_order":"1471","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","drugs"]},"peanuts":{"unicode":"1f95c","unicode_alt":"","code_decimal":"🥜","name":"peanuts","shortname":":peanuts:","category":"food","emoji_order":"1472","aliases":[":shelled_peanut:"],"aliases_ascii":[],"keywords":[]},"chestnut":{"unicode":"1f330","unicode_alt":"","code_decimal":"🌰","name":"chestnut","shortname":":chestnut:","category":"nature","emoji_order":"1473","aliases":[],"aliases_ascii":[],"keywords":["nature","plant"]},"bread":{"unicode":"1f35e","unicode_alt":"","code_decimal":"🍞","name":"bread","shortname":":bread:","category":"food","emoji_order":"1474","aliases":[],"aliases_ascii":[],"keywords":["food"]},"croissant":{"unicode":"1f950","unicode_alt":"","code_decimal":"🥐","name":"croissant","shortname":":croissant:","category":"food","emoji_order":"1475","aliases":[],"aliases_ascii":[],"keywords":[]},"french_bread":{"unicode":"1f956","unicode_alt":"","code_decimal":"🥖","name":"baguette bread","shortname":":french_bread:","category":"food","emoji_order":"1476","aliases":[":baguette_bread:"],"aliases_ascii":[],"keywords":[]},"pancakes":{"unicode":"1f95e","unicode_alt":"","code_decimal":"🥞","name":"pancakes","shortname":":pancakes:","category":"food","emoji_order":"1477","aliases":[],"aliases_ascii":[],"keywords":[]},"cheese":{"unicode":"1f9c0","unicode_alt":"","code_decimal":"🧀","name":"cheese wedge","shortname":":cheese:","category":"food","emoji_order":"1478","aliases":[":cheese_wedge:"],"aliases_ascii":[],"keywords":["food"]},"meat_on_bone":{"unicode":"1f356","unicode_alt":"","code_decimal":"🍖","name":"meat on bone","shortname":":meat_on_bone:","category":"food","emoji_order":"1479","aliases":[],"aliases_ascii":[],"keywords":["food"]},"poultry_leg":{"unicode":"1f357","unicode_alt":"","code_decimal":"🍗","name":"poultry leg","shortname":":poultry_leg:","category":"food","emoji_order":"1480","aliases":[],"aliases_ascii":[],"keywords":["food","holidays"]},"bacon":{"unicode":"1f953","unicode_alt":"","code_decimal":"🥓","name":"bacon","shortname":":bacon:","category":"food","emoji_order":"1481","aliases":[],"aliases_ascii":[],"keywords":["pig"]},"hamburger":{"unicode":"1f354","unicode_alt":"","code_decimal":"🍔","name":"hamburger","shortname":":hamburger:","category":"food","emoji_order":"1482","aliases":[],"aliases_ascii":[],"keywords":["america","food"]},"fries":{"unicode":"1f35f","unicode_alt":"","code_decimal":"🍟","name":"french fries","shortname":":fries:","category":"food","emoji_order":"1483","aliases":[],"aliases_ascii":[],"keywords":["america","food"]},"pizza":{"unicode":"1f355","unicode_alt":"","code_decimal":"🍕","name":"slice of pizza","shortname":":pizza:","category":"food","emoji_order":"1484","aliases":[],"aliases_ascii":[],"keywords":["italian","food","boys night"]},"hotdog":{"unicode":"1f32d","unicode_alt":"","code_decimal":"🌭","name":"hot dog","shortname":":hotdog:","category":"food","emoji_order":"1485","aliases":[":hot_dog:"],"aliases_ascii":[],"keywords":["america","food"]},"taco":{"unicode":"1f32e","unicode_alt":"","code_decimal":"🌮","name":"taco","shortname":":taco:","category":"food","emoji_order":"1486","aliases":[],"aliases_ascii":[],"keywords":["food","mexican","vagina"]},"burrito":{"unicode":"1f32f","unicode_alt":"","code_decimal":"🌯","name":"burrito","shortname":":burrito:","category":"food","emoji_order":"1487","aliases":[],"aliases_ascii":[],"keywords":["food","mexican"]},"stuffed_flatbread":{"unicode":"1f959","unicode_alt":"","code_decimal":"🥙","name":"stuffed flatbread","shortname":":stuffed_flatbread:","category":"food","emoji_order":"1488","aliases":[":stuffed_pita:"],"aliases_ascii":[],"keywords":[]},"egg":{"unicode":"1f95a","unicode_alt":"","code_decimal":"🥚","name":"egg","shortname":":egg:","category":"food","emoji_order":"1489","aliases":[],"aliases_ascii":[],"keywords":[]},"cooking":{"unicode":"1f373","unicode_alt":"","code_decimal":"🍳","name":"cooking","shortname":":cooking:","category":"food","emoji_order":"1490","aliases":[],"aliases_ascii":[],"keywords":["food"]},"shallow_pan_of_food":{"unicode":"1f958","unicode_alt":"","code_decimal":"🥘","name":"shallow pan of food","shortname":":shallow_pan_of_food:","category":"food","emoji_order":"1491","aliases":[":paella:"],"aliases_ascii":[],"keywords":["pan of food"]},"stew":{"unicode":"1f372","unicode_alt":"","code_decimal":"🍲","name":"pot of food","shortname":":stew:","category":"food","emoji_order":"1492","aliases":[],"aliases_ascii":[],"keywords":["food","steam"]},"salad":{"unicode":"1f957","unicode_alt":"","code_decimal":"🥗","name":"green salad","shortname":":salad:","category":"food","emoji_order":"1493","aliases":[":green_salad:"],"aliases_ascii":[],"keywords":[]},"popcorn":{"unicode":"1f37f","unicode_alt":"","code_decimal":"🍿","name":"popcorn","shortname":":popcorn:","category":"food","emoji_order":"1494","aliases":[],"aliases_ascii":[],"keywords":["food","parties"]},"bento":{"unicode":"1f371","unicode_alt":"","code_decimal":"🍱","name":"bento box","shortname":":bento:","category":"food","emoji_order":"1495","aliases":[],"aliases_ascii":[],"keywords":["object","sushi","japan","food"]},"rice_cracker":{"unicode":"1f358","unicode_alt":"","code_decimal":"🍘","name":"rice cracker","shortname":":rice_cracker:","category":"food","emoji_order":"1496","aliases":[],"aliases_ascii":[],"keywords":["sushi","food"]},"rice_ball":{"unicode":"1f359","unicode_alt":"","code_decimal":"🍙","name":"rice ball","shortname":":rice_ball:","category":"food","emoji_order":"1497","aliases":[],"aliases_ascii":[],"keywords":["sushi","japan","food"]},"rice":{"unicode":"1f35a","unicode_alt":"","code_decimal":"🍚","name":"cooked rice","shortname":":rice:","category":"food","emoji_order":"1498","aliases":[],"aliases_ascii":[],"keywords":["sushi","japan","food"]},"curry":{"unicode":"1f35b","unicode_alt":"","code_decimal":"🍛","name":"curry and rice","shortname":":curry:","category":"food","emoji_order":"1499","aliases":[],"aliases_ascii":[],"keywords":["food"]},"ramen":{"unicode":"1f35c","unicode_alt":"","code_decimal":"🍜","name":"steaming bowl","shortname":":ramen:","category":"food","emoji_order":"1500","aliases":[],"aliases_ascii":[],"keywords":["noodles","ramen","japan","food"]},"spaghetti":{"unicode":"1f35d","unicode_alt":"","code_decimal":"🍝","name":"spaghetti","shortname":":spaghetti:","category":"food","emoji_order":"1501","aliases":[],"aliases_ascii":[],"keywords":["noodles","pasta","italian","food"]},"sweet_potato":{"unicode":"1f360","unicode_alt":"","code_decimal":"🍠","name":"roasted sweet potato","shortname":":sweet_potato:","category":"food","emoji_order":"1502","aliases":[],"aliases_ascii":[],"keywords":["vegetables","food"]},"oden":{"unicode":"1f362","unicode_alt":"","code_decimal":"🍢","name":"oden","shortname":":oden:","category":"food","emoji_order":"1503","aliases":[],"aliases_ascii":[],"keywords":["food"]},"sushi":{"unicode":"1f363","unicode_alt":"","code_decimal":"🍣","name":"sushi","shortname":":sushi:","category":"food","emoji_order":"1504","aliases":[],"aliases_ascii":[],"keywords":["sushi","japan","food"]},"fried_shrimp":{"unicode":"1f364","unicode_alt":"","code_decimal":"🍤","name":"fried shrimp","shortname":":fried_shrimp:","category":"food","emoji_order":"1505","aliases":[],"aliases_ascii":[],"keywords":["food"]},"fish_cake":{"unicode":"1f365","unicode_alt":"","code_decimal":"🍥","name":"fish cake with swirl design","shortname":":fish_cake:","category":"food","emoji_order":"1506","aliases":[],"aliases_ascii":[],"keywords":["sushi","food"]},"dango":{"unicode":"1f361","unicode_alt":"","code_decimal":"🍡","name":"dango","shortname":":dango:","category":"food","emoji_order":"1507","aliases":[],"aliases_ascii":[],"keywords":["food"]},"icecream":{"unicode":"1f366","unicode_alt":"","code_decimal":"🍦","name":"soft ice cream","shortname":":icecream:","category":"food","emoji_order":"1508","aliases":[],"aliases_ascii":[],"keywords":["food"]},"shaved_ice":{"unicode":"1f367","unicode_alt":"","code_decimal":"🍧","name":"shaved ice","shortname":":shaved_ice:","category":"food","emoji_order":"1509","aliases":[],"aliases_ascii":[],"keywords":["food"]},"ice_cream":{"unicode":"1f368","unicode_alt":"","code_decimal":"🍨","name":"ice cream","shortname":":ice_cream:","category":"food","emoji_order":"1510","aliases":[],"aliases_ascii":[],"keywords":["food"]},"doughnut":{"unicode":"1f369","unicode_alt":"","code_decimal":"🍩","name":"doughnut","shortname":":doughnut:","category":"food","emoji_order":"1511","aliases":[],"aliases_ascii":[],"keywords":["food"]},"cookie":{"unicode":"1f36a","unicode_alt":"","code_decimal":"🍪","name":"cookie","shortname":":cookie:","category":"food","emoji_order":"1512","aliases":[],"aliases_ascii":[],"keywords":["food","vagina"]},"birthday":{"unicode":"1f382","unicode_alt":"","code_decimal":"🎂","name":"birthday cake","shortname":":birthday:","category":"food","emoji_order":"1513","aliases":[],"aliases_ascii":[],"keywords":["birthday","food","parties"]},"cake":{"unicode":"1f370","unicode_alt":"","code_decimal":"🍰","name":"shortcake","shortname":":cake:","category":"food","emoji_order":"1514","aliases":[],"aliases_ascii":[],"keywords":["food"]},"chocolate_bar":{"unicode":"1f36b","unicode_alt":"","code_decimal":"🍫","name":"chocolate bar","shortname":":chocolate_bar:","category":"food","emoji_order":"1515","aliases":[],"aliases_ascii":[],"keywords":["food","halloween"]},"candy":{"unicode":"1f36c","unicode_alt":"","code_decimal":"🍬","name":"candy","shortname":":candy:","category":"food","emoji_order":"1516","aliases":[],"aliases_ascii":[],"keywords":["food","halloween"]},"lollipop":{"unicode":"1f36d","unicode_alt":"","code_decimal":"🍭","name":"lollipop","shortname":":lollipop:","category":"food","emoji_order":"1517","aliases":[],"aliases_ascii":[],"keywords":["food","halloween"]},"custard":{"unicode":"1f36e","unicode_alt":"","code_decimal":"🍮","name":"custard","shortname":":custard:","category":"food","emoji_order":"1518","aliases":[":pudding:",":flan:"],"aliases_ascii":[],"keywords":["food"]},"honey_pot":{"unicode":"1f36f","unicode_alt":"","code_decimal":"🍯","name":"honey pot","shortname":":honey_pot:","category":"food","emoji_order":"1519","aliases":[],"aliases_ascii":[],"keywords":["food","vagina"]},"baby_bottle":{"unicode":"1f37c","unicode_alt":"","code_decimal":"🍼","name":"baby bottle","shortname":":baby_bottle:","category":"food","emoji_order":"1520","aliases":[],"aliases_ascii":[],"keywords":["drink","object","food","baby"]},"milk":{"unicode":"1f95b","unicode_alt":"","code_decimal":"🥛","name":"glass of milk","shortname":":milk:","category":"food","emoji_order":"1521","aliases":[":glass_of_milk:"],"aliases_ascii":[],"keywords":[]},"coffee":{"unicode":"2615","unicode_alt":"2615-fe0f","code_decimal":"☕","name":"hot beverage","shortname":":coffee:","category":"food","emoji_order":"1522","aliases":[],"aliases_ascii":[],"keywords":["drink","caffeine","steam","morning"]},"tea":{"unicode":"1f375","unicode_alt":"","code_decimal":"🍵","name":"teacup without handle","shortname":":tea:","category":"food","emoji_order":"1523","aliases":[],"aliases_ascii":[],"keywords":["drink","japan","caffeine","steam","morning"]},"sake":{"unicode":"1f376","unicode_alt":"","code_decimal":"🍶","name":"sake bottle and cup","shortname":":sake:","category":"food","emoji_order":"1524","aliases":[],"aliases_ascii":[],"keywords":["drink","japan","sake","alcohol","girls night"]},"champagne":{"unicode":"1f37e","unicode_alt":"","code_decimal":"🍾","name":"bottle with popping cork","shortname":":champagne:","category":"food","emoji_order":"1525","aliases":[":bottle_with_popping_cork:"],"aliases_ascii":[],"keywords":["drink","cheers","alcohol","parties"]},"wine_glass":{"unicode":"1f377","unicode_alt":"","code_decimal":"🍷","name":"wine glass","shortname":":wine_glass:","category":"food","emoji_order":"1526","aliases":[],"aliases_ascii":[],"keywords":["drink","italian","alcohol","girls night","parties"]},"cocktail":{"unicode":"1f378","unicode_alt":"","code_decimal":"🍸","name":"cocktail glass","shortname":":cocktail:","category":"food","emoji_order":"1527","aliases":[],"aliases_ascii":[],"keywords":["drink","cocktail","alcohol","girls night","parties"]},"tropical_drink":{"unicode":"1f379","unicode_alt":"","code_decimal":"🍹","name":"tropical drink","shortname":":tropical_drink:","category":"food","emoji_order":"1528","aliases":[],"aliases_ascii":[],"keywords":["drink","cocktail","tropical","alcohol"]},"beer":{"unicode":"1f37a","unicode_alt":"","code_decimal":"🍺","name":"beer mug","shortname":":beer:","category":"food","emoji_order":"1529","aliases":[],"aliases_ascii":[],"keywords":["drink","beer","alcohol","parties"]},"beers":{"unicode":"1f37b","unicode_alt":"","code_decimal":"🍻","name":"clinking beer mugs","shortname":":beers:","category":"food","emoji_order":"1530","aliases":[],"aliases_ascii":[],"keywords":["drink","cheers","beer","alcohol","thank you","boys night","parties"]},"champagne_glass":{"unicode":"1f942","unicode_alt":"","code_decimal":"🥂","name":"clinking glasses","shortname":":champagne_glass:","category":"food","emoji_order":"1531","aliases":[":clinking_glass:"],"aliases_ascii":[],"keywords":[]},"tumbler_glass":{"unicode":"1f943","unicode_alt":"","code_decimal":"🥃","name":"tumbler glass","shortname":":tumbler_glass:","category":"food","emoji_order":"1532","aliases":[":whisky:"],"aliases_ascii":[],"keywords":["booze"]},"fork_knife_plate":{"unicode":"1f37d","unicode_alt":"1f37d-fe0f","code_decimal":"🍽","name":"fork and knife with plate","shortname":":fork_knife_plate:","category":"food","emoji_order":"1533","aliases":[":fork_and_knife_with_plate:"],"aliases_ascii":[],"keywords":["object","food"]},"fork_and_knife":{"unicode":"1f374","unicode_alt":"","code_decimal":"🍴","name":"fork and knife","shortname":":fork_and_knife:","category":"food","emoji_order":"1534","aliases":[],"aliases_ascii":[],"keywords":["object","weapon","food"]},"spoon":{"unicode":"1f944","unicode_alt":"","code_decimal":"🥄","name":"spoon","shortname":":spoon:","category":"food","emoji_order":"1535","aliases":[],"aliases_ascii":[],"keywords":[]},"knife":{"unicode":"1f52a","unicode_alt":"","code_decimal":"🔪","name":"hocho","shortname":":knife:","category":"objects","emoji_order":"1536","aliases":[],"aliases_ascii":[],"keywords":["object","weapon"]},"amphora":{"unicode":"1f3fa","unicode_alt":"","code_decimal":"🏺","name":"amphora","shortname":":amphora:","category":"objects","emoji_order":"1537","aliases":[],"aliases_ascii":[],"keywords":["object"]},"earth_africa":{"unicode":"1f30d","unicode_alt":"","code_decimal":"🌍","name":"earth globe europe-africa","shortname":":earth_africa:","category":"nature","emoji_order":"1538","aliases":[],"aliases_ascii":[],"keywords":["map","vacation","globe"]},"earth_americas":{"unicode":"1f30e","unicode_alt":"","code_decimal":"🌎","name":"earth globe americas","shortname":":earth_americas:","category":"nature","emoji_order":"1539","aliases":[],"aliases_ascii":[],"keywords":["map","vacation","globe"]},"earth_asia":{"unicode":"1f30f","unicode_alt":"","code_decimal":"🌏","name":"earth globe asia-australia","shortname":":earth_asia:","category":"nature","emoji_order":"1540","aliases":[],"aliases_ascii":[],"keywords":["map","vacation","globe"]},"globe_with_meridians":{"unicode":"1f310","unicode_alt":"","code_decimal":"🌐","name":"globe with meridians","shortname":":globe_with_meridians:","category":"symbols","emoji_order":"1541","aliases":[],"aliases_ascii":[],"keywords":["symbol","globe"]},"map":{"unicode":"1f5fa","unicode_alt":"1f5fa-fe0f","code_decimal":"🗺","name":"world map","shortname":":map:","category":"objects","emoji_order":"1542","aliases":[":world_map:"],"aliases_ascii":[],"keywords":["travel","map","vacation"]},"japan":{"unicode":"1f5fe","unicode_alt":"","code_decimal":"🗾","name":"silhouette of japan","shortname":":japan:","category":"travel","emoji_order":"1543","aliases":[],"aliases_ascii":[],"keywords":["places","travel","map","vacation","tropical"]},"mountain_snow":{"unicode":"1f3d4","unicode_alt":"1f3d4-fe0f","code_decimal":"🏔","name":"snow capped mountain","shortname":":mountain_snow:","category":"travel","emoji_order":"1544","aliases":[":snow_capped_mountain:"],"aliases_ascii":[],"keywords":["places","travel","vacation","cold","camp"]},"mountain":{"unicode":"26f0","unicode_alt":"26f0-fe0f","code_decimal":"⛰","name":"mountain","shortname":":mountain:","category":"travel","emoji_order":"1545","aliases":[],"aliases_ascii":[],"keywords":["places","travel","vacation","camp"]},"volcano":{"unicode":"1f30b","unicode_alt":"","code_decimal":"🌋","name":"volcano","shortname":":volcano:","category":"travel","emoji_order":"1546","aliases":[],"aliases_ascii":[],"keywords":["places","tropical"]},"mount_fuji":{"unicode":"1f5fb","unicode_alt":"","code_decimal":"🗻","name":"mount fuji","shortname":":mount_fuji:","category":"travel","emoji_order":"1547","aliases":[],"aliases_ascii":[],"keywords":["places","travel","vacation","cold","camp"]},"camping":{"unicode":"1f3d5","unicode_alt":"1f3d5-fe0f","code_decimal":"🏕","name":"camping","shortname":":camping:","category":"travel","emoji_order":"1548","aliases":[],"aliases_ascii":[],"keywords":["places","travel","vacation","camp"]},"beach":{"unicode":"1f3d6","unicode_alt":"1f3d6-fe0f","code_decimal":"🏖","name":"beach with umbrella","shortname":":beach:","category":"travel","emoji_order":"1549","aliases":[":beach_with_umbrella:"],"aliases_ascii":[],"keywords":["places","travel","vacation","tropical","beach","swim"]},"desert":{"unicode":"1f3dc","unicode_alt":"1f3dc-fe0f","code_decimal":"🏜","name":"desert","shortname":":desert:","category":"travel","emoji_order":"1550","aliases":[],"aliases_ascii":[],"keywords":["places","travel","vacation","hot"]},"island":{"unicode":"1f3dd","unicode_alt":"1f3dd-fe0f","code_decimal":"🏝","name":"desert island","shortname":":island:","category":"travel","emoji_order":"1551","aliases":[":desert_island:"],"aliases_ascii":[],"keywords":["places","travel","vacation","tropical","beach","swim"]},"park":{"unicode":"1f3de","unicode_alt":"1f3de-fe0f","code_decimal":"🏞","name":"national park","shortname":":park:","category":"travel","emoji_order":"1552","aliases":[":national_park:"],"aliases_ascii":[],"keywords":["travel","vacation","park","camp"]},"stadium":{"unicode":"1f3df","unicode_alt":"1f3df-fe0f","code_decimal":"🏟","name":"stadium","shortname":":stadium:","category":"travel","emoji_order":"1553","aliases":[],"aliases_ascii":[],"keywords":["places","building","travel","vacation","boys night"]},"classical_building":{"unicode":"1f3db","unicode_alt":"1f3db-fe0f","code_decimal":"🏛","name":"classical building","shortname":":classical_building:","category":"travel","emoji_order":"1554","aliases":[],"aliases_ascii":[],"keywords":["places","building","travel","vacation"]},"construction_site":{"unicode":"1f3d7","unicode_alt":"1f3d7-fe0f","code_decimal":"🏗","name":"building construction","shortname":":construction_site:","category":"travel","emoji_order":"1555","aliases":[":building_construction:"],"aliases_ascii":[],"keywords":["building","crane"]},"homes":{"unicode":"1f3d8","unicode_alt":"1f3d8-fe0f","code_decimal":"🏘","name":"house buildings","shortname":":homes:","category":"travel","emoji_order":"1556","aliases":[":house_buildings:"],"aliases_ascii":[],"keywords":["places","building","house"]},"cityscape":{"unicode":"1f3d9","unicode_alt":"1f3d9-fe0f","code_decimal":"🏙","name":"cityscape","shortname":":cityscape:","category":"travel","emoji_order":"1557","aliases":[],"aliases_ascii":[],"keywords":["places","building","vacation"]},"house_abandoned":{"unicode":"1f3da","unicode_alt":"1f3da-fe0f","code_decimal":"🏚","name":"derelict house building","shortname":":house_abandoned:","category":"travel","emoji_order":"1558","aliases":[":derelict_house_building:"],"aliases_ascii":[],"keywords":["places","building","house"]},"house":{"unicode":"1f3e0","unicode_alt":"","code_decimal":"🏠","name":"house building","shortname":":house:","category":"travel","emoji_order":"1559","aliases":[],"aliases_ascii":[],"keywords":["places","building","house"]},"house_with_garden":{"unicode":"1f3e1","unicode_alt":"","code_decimal":"🏡","name":"house with garden","shortname":":house_with_garden:","category":"travel","emoji_order":"1560","aliases":[],"aliases_ascii":[],"keywords":["places","building","house"]},"office":{"unicode":"1f3e2","unicode_alt":"","code_decimal":"🏢","name":"office building","shortname":":office:","category":"travel","emoji_order":"1561","aliases":[],"aliases_ascii":[],"keywords":["places","building","work"]},"post_office":{"unicode":"1f3e3","unicode_alt":"","code_decimal":"🏣","name":"japanese post office","shortname":":post_office:","category":"travel","emoji_order":"1562","aliases":[],"aliases_ascii":[],"keywords":["places","building","post office"]},"european_post_office":{"unicode":"1f3e4","unicode_alt":"","code_decimal":"🏤","name":"european post office","shortname":":european_post_office:","category":"travel","emoji_order":"1563","aliases":[],"aliases_ascii":[],"keywords":["places","building","post office"]},"hospital":{"unicode":"1f3e5","unicode_alt":"","code_decimal":"🏥","name":"hospital","shortname":":hospital:","category":"travel","emoji_order":"1564","aliases":[],"aliases_ascii":[],"keywords":["places","building","health","911"]},"bank":{"unicode":"1f3e6","unicode_alt":"","code_decimal":"🏦","name":"bank","shortname":":bank:","category":"travel","emoji_order":"1565","aliases":[],"aliases_ascii":[],"keywords":["places","building"]},"hotel":{"unicode":"1f3e8","unicode_alt":"","code_decimal":"🏨","name":"hotel","shortname":":hotel:","category":"travel","emoji_order":"1566","aliases":[],"aliases_ascii":[],"keywords":["places","building","vacation"]},"love_hotel":{"unicode":"1f3e9","unicode_alt":"","code_decimal":"🏩","name":"love hotel","shortname":":love_hotel:","category":"travel","emoji_order":"1567","aliases":[],"aliases_ascii":[],"keywords":["places","building","love"]},"convenience_store":{"unicode":"1f3ea","unicode_alt":"","code_decimal":"🏪","name":"convenience store","shortname":":convenience_store:","category":"travel","emoji_order":"1568","aliases":[],"aliases_ascii":[],"keywords":["places","building"]},"school":{"unicode":"1f3eb","unicode_alt":"","code_decimal":"🏫","name":"school","shortname":":school:","category":"travel","emoji_order":"1569","aliases":[],"aliases_ascii":[],"keywords":["places","building"]},"department_store":{"unicode":"1f3ec","unicode_alt":"","code_decimal":"🏬","name":"department store","shortname":":department_store:","category":"travel","emoji_order":"1570","aliases":[],"aliases_ascii":[],"keywords":["places","building"]},"factory":{"unicode":"1f3ed","unicode_alt":"","code_decimal":"🏭","name":"factory","shortname":":factory:","category":"travel","emoji_order":"1571","aliases":[],"aliases_ascii":[],"keywords":["places","building","travel","steam"]},"japanese_castle":{"unicode":"1f3ef","unicode_alt":"","code_decimal":"🏯","name":"japanese castle","shortname":":japanese_castle:","category":"travel","emoji_order":"1572","aliases":[],"aliases_ascii":[],"keywords":["places","building","travel","vacation"]},"european_castle":{"unicode":"1f3f0","unicode_alt":"","code_decimal":"🏰","name":"european castle","shortname":":european_castle:","category":"travel","emoji_order":"1573","aliases":[],"aliases_ascii":[],"keywords":["places","building","travel","vacation"]},"wedding":{"unicode":"1f492","unicode_alt":"","code_decimal":"💒","name":"wedding","shortname":":wedding:","category":"travel","emoji_order":"1574","aliases":[],"aliases_ascii":[],"keywords":["places","wedding","building","love","parties"]},"tokyo_tower":{"unicode":"1f5fc","unicode_alt":"","code_decimal":"🗼","name":"tokyo tower","shortname":":tokyo_tower:","category":"travel","emoji_order":"1575","aliases":[],"aliases_ascii":[],"keywords":["places","travel","vacation","eiffel tower"]},"statue_of_liberty":{"unicode":"1f5fd","unicode_alt":"","code_decimal":"🗽","name":"statue of liberty","shortname":":statue_of_liberty:","category":"travel","emoji_order":"1576","aliases":[],"aliases_ascii":[],"keywords":["places","america","travel","vacation","statue of liberty","free speech"]},"church":{"unicode":"26ea","unicode_alt":"26ea-fe0f","code_decimal":"⛪","name":"church","shortname":":church:","category":"travel","emoji_order":"1577","aliases":[],"aliases_ascii":[],"keywords":["places","wedding","religion","building","condolence"]},"mosque":{"unicode":"1f54c","unicode_alt":"","code_decimal":"🕌","name":"mosque","shortname":":mosque:","category":"travel","emoji_order":"1578","aliases":[],"aliases_ascii":[],"keywords":["places","religion","building","vacation","condolence"]},"synagogue":{"unicode":"1f54d","unicode_alt":"","code_decimal":"🕍","name":"synagogue","shortname":":synagogue:","category":"travel","emoji_order":"1579","aliases":[],"aliases_ascii":[],"keywords":["places","religion","building","travel","vacation","condolence"]},"shinto_shrine":{"unicode":"26e9","unicode_alt":"26e9-fe0f","code_decimal":"⛩","name":"shinto shrine","shortname":":shinto_shrine:","category":"travel","emoji_order":"1580","aliases":[],"aliases_ascii":[],"keywords":["places","building","travel","vacation"]},"kaaba":{"unicode":"1f54b","unicode_alt":"","code_decimal":"🕋","name":"kaaba","shortname":":kaaba:","category":"travel","emoji_order":"1581","aliases":[],"aliases_ascii":[],"keywords":["places","religion","building","condolence"]},"fountain":{"unicode":"26f2","unicode_alt":"26f2-fe0f","code_decimal":"⛲","name":"fountain","shortname":":fountain:","category":"travel","emoji_order":"1582","aliases":[],"aliases_ascii":[],"keywords":["travel","vacation"]},"tent":{"unicode":"26fa","unicode_alt":"26fa-fe0f","code_decimal":"⛺","name":"tent","shortname":":tent:","category":"travel","emoji_order":"1583","aliases":[],"aliases_ascii":[],"keywords":["places","travel","vacation","camp"]},"foggy":{"unicode":"1f301","unicode_alt":"","code_decimal":"🌁","name":"foggy","shortname":":foggy:","category":"travel","emoji_order":"1584","aliases":[],"aliases_ascii":[],"keywords":["places","building","sky","travel","vacation"]},"night_with_stars":{"unicode":"1f303","unicode_alt":"","code_decimal":"🌃","name":"night with stars","shortname":":night_with_stars:","category":"travel","emoji_order":"1585","aliases":[],"aliases_ascii":[],"keywords":["places","building","sky","vacation","goodnight"]},"sunrise_over_mountains":{"unicode":"1f304","unicode_alt":"","code_decimal":"🌄","name":"sunrise over mountains","shortname":":sunrise_over_mountains:","category":"travel","emoji_order":"1586","aliases":[],"aliases_ascii":[],"keywords":["places","sky","travel","vacation","day","sun","camp","morning"]},"sunrise":{"unicode":"1f305","unicode_alt":"","code_decimal":"🌅","name":"sunrise","shortname":":sunrise:","category":"travel","emoji_order":"1587","aliases":[],"aliases_ascii":[],"keywords":["places","sky","travel","vacation","tropical","day","sun","hump day","morning"]},"city_dusk":{"unicode":"1f306","unicode_alt":"","code_decimal":"🌆","name":"cityscape at dusk","shortname":":city_dusk:","category":"travel","emoji_order":"1588","aliases":[],"aliases_ascii":[],"keywords":["places","building"]},"city_sunset":{"unicode":"1f307","unicode_alt":"","code_decimal":"🌇","name":"sunset over buildings","shortname":":city_sunset:","category":"travel","emoji_order":"1589","aliases":[":city_sunrise:"],"aliases_ascii":[],"keywords":["places","building","sky","vacation"]},"bridge_at_night":{"unicode":"1f309","unicode_alt":"","code_decimal":"🌉","name":"bridge at night","shortname":":bridge_at_night:","category":"travel","emoji_order":"1590","aliases":[],"aliases_ascii":[],"keywords":["places","travel","vacation","goodnight"]},"hotsprings":{"unicode":"2668","unicode_alt":"2668-fe0f","code_decimal":"♨","name":"hot springs","shortname":":hotsprings:","category":"symbols","emoji_order":"1591","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"milky_way":{"unicode":"1f30c","unicode_alt":"","code_decimal":"🌌","name":"milky way","shortname":":milky_way:","category":"travel","emoji_order":"1592","aliases":[],"aliases_ascii":[],"keywords":["places","space","sky","travel","vacation"]},"carousel_horse":{"unicode":"1f3a0","unicode_alt":"","code_decimal":"🎠","name":"carousel horse","shortname":":carousel_horse:","category":"travel","emoji_order":"1593","aliases":[],"aliases_ascii":[],"keywords":["places","object","vacation","roller coaster","carousel"]},"ferris_wheel":{"unicode":"1f3a1","unicode_alt":"","code_decimal":"🎡","name":"ferris wheel","shortname":":ferris_wheel:","category":"travel","emoji_order":"1594","aliases":[],"aliases_ascii":[],"keywords":["places","vacation","ferris wheel"]},"roller_coaster":{"unicode":"1f3a2","unicode_alt":"","code_decimal":"🎢","name":"roller coaster","shortname":":roller_coaster:","category":"travel","emoji_order":"1595","aliases":[],"aliases_ascii":[],"keywords":["places","vacation","roller coaster"]},"barber":{"unicode":"1f488","unicode_alt":"","code_decimal":"💈","name":"barber pole","shortname":":barber:","category":"objects","emoji_order":"1596","aliases":[],"aliases_ascii":[],"keywords":["object"]},"circus_tent":{"unicode":"1f3aa","unicode_alt":"","code_decimal":"🎪","name":"circus tent","shortname":":circus_tent:","category":"activity","emoji_order":"1597","aliases":[],"aliases_ascii":[],"keywords":["circus tent"]},"performing_arts":{"unicode":"1f3ad","unicode_alt":"","code_decimal":"🎭","name":"performing arts","shortname":":performing_arts:","category":"activity","emoji_order":"1598","aliases":[],"aliases_ascii":[],"keywords":["theatre","movie"]},"frame_photo":{"unicode":"1f5bc","unicode_alt":"1f5bc-fe0f","code_decimal":"🖼","name":"frame with picture","shortname":":frame_photo:","category":"objects","emoji_order":"1599","aliases":[":frame_with_picture:"],"aliases_ascii":[],"keywords":["travel","vacation"]},"art":{"unicode":"1f3a8","unicode_alt":"","code_decimal":"🎨","name":"artist palette","shortname":":art:","category":"activity","emoji_order":"1600","aliases":[],"aliases_ascii":[],"keywords":[]},"slot_machine":{"unicode":"1f3b0","unicode_alt":"","code_decimal":"🎰","name":"slot machine","shortname":":slot_machine:","category":"activity","emoji_order":"1601","aliases":[],"aliases_ascii":[],"keywords":["game","boys night"]},"steam_locomotive":{"unicode":"1f682","unicode_alt":"","code_decimal":"🚂","name":"steam locomotive","shortname":":steam_locomotive:","category":"travel","emoji_order":"1602","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train","steam"]},"railway_car":{"unicode":"1f683","unicode_alt":"","code_decimal":"🚃","name":"railway car","shortname":":railway_car:","category":"travel","emoji_order":"1603","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"bullettrain_side":{"unicode":"1f684","unicode_alt":"","code_decimal":"🚄","name":"high-speed train","shortname":":bullettrain_side:","category":"travel","emoji_order":"1604","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"bullettrain_front":{"unicode":"1f685","unicode_alt":"","code_decimal":"🚅","name":"high-speed train with bullet nose","shortname":":bullettrain_front:","category":"travel","emoji_order":"1605","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"train2":{"unicode":"1f686","unicode_alt":"","code_decimal":"🚆","name":"train","shortname":":train2:","category":"travel","emoji_order":"1606","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"metro":{"unicode":"1f687","unicode_alt":"","code_decimal":"🚇","name":"metro","shortname":":metro:","category":"travel","emoji_order":"1607","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"light_rail":{"unicode":"1f688","unicode_alt":"","code_decimal":"🚈","name":"light rail","shortname":":light_rail:","category":"travel","emoji_order":"1608","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"station":{"unicode":"1f689","unicode_alt":"","code_decimal":"🚉","name":"station","shortname":":station:","category":"travel","emoji_order":"1609","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"tram":{"unicode":"1f68a","unicode_alt":"","code_decimal":"🚊","name":"tram","shortname":":tram:","category":"travel","emoji_order":"1610","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"monorail":{"unicode":"1f69d","unicode_alt":"","code_decimal":"🚝","name":"monorail","shortname":":monorail:","category":"travel","emoji_order":"1611","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train","vacation"]},"mountain_railway":{"unicode":"1f69e","unicode_alt":"","code_decimal":"🚞","name":"mountain railway","shortname":":mountain_railway:","category":"travel","emoji_order":"1612","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"train":{"unicode":"1f68b","unicode_alt":"","code_decimal":"🚋","name":"tram car","shortname":":train:","category":"travel","emoji_order":"1613","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"bus":{"unicode":"1f68c","unicode_alt":"","code_decimal":"🚌","name":"bus","shortname":":bus:","category":"travel","emoji_order":"1614","aliases":[],"aliases_ascii":[],"keywords":["transportation","bus","office"]},"oncoming_bus":{"unicode":"1f68d","unicode_alt":"","code_decimal":"🚍","name":"oncoming bus","shortname":":oncoming_bus:","category":"travel","emoji_order":"1615","aliases":[],"aliases_ascii":[],"keywords":["transportation","bus","travel"]},"trolleybus":{"unicode":"1f68e","unicode_alt":"","code_decimal":"🚎","name":"trolleybus","shortname":":trolleybus:","category":"travel","emoji_order":"1616","aliases":[],"aliases_ascii":[],"keywords":["transportation","bus","travel"]},"minibus":{"unicode":"1f690","unicode_alt":"","code_decimal":"🚐","name":"minibus","shortname":":minibus:","category":"travel","emoji_order":"1617","aliases":[],"aliases_ascii":[],"keywords":["transportation","bus"]},"ambulance":{"unicode":"1f691","unicode_alt":"","code_decimal":"🚑","name":"ambulance","shortname":":ambulance:","category":"travel","emoji_order":"1618","aliases":[],"aliases_ascii":[],"keywords":["transportation","911"]},"fire_engine":{"unicode":"1f692","unicode_alt":"","code_decimal":"🚒","name":"fire engine","shortname":":fire_engine:","category":"travel","emoji_order":"1619","aliases":[],"aliases_ascii":[],"keywords":["transportation","truck","911"]},"police_car":{"unicode":"1f693","unicode_alt":"","code_decimal":"🚓","name":"police car","shortname":":police_car:","category":"travel","emoji_order":"1620","aliases":[],"aliases_ascii":[],"keywords":["transportation","car","police","911"]},"oncoming_police_car":{"unicode":"1f694","unicode_alt":"","code_decimal":"🚔","name":"oncoming police car","shortname":":oncoming_police_car:","category":"travel","emoji_order":"1621","aliases":[],"aliases_ascii":[],"keywords":["transportation","car","police","911"]},"taxi":{"unicode":"1f695","unicode_alt":"","code_decimal":"🚕","name":"taxi","shortname":":taxi:","category":"travel","emoji_order":"1622","aliases":[],"aliases_ascii":[],"keywords":["transportation","car","travel"]},"oncoming_taxi":{"unicode":"1f696","unicode_alt":"","code_decimal":"🚖","name":"oncoming taxi","shortname":":oncoming_taxi:","category":"travel","emoji_order":"1623","aliases":[],"aliases_ascii":[],"keywords":["transportation","car","travel"]},"red_car":{"unicode":"1f697","unicode_alt":"","code_decimal":"🚗","name":"automobile","shortname":":red_car:","category":"travel","emoji_order":"1624","aliases":[],"aliases_ascii":[],"keywords":["transportation","car","travel"]},"oncoming_automobile":{"unicode":"1f698","unicode_alt":"","code_decimal":"🚘","name":"oncoming automobile","shortname":":oncoming_automobile:","category":"travel","emoji_order":"1625","aliases":[],"aliases_ascii":[],"keywords":["transportation","car","travel"]},"blue_car":{"unicode":"1f699","unicode_alt":"","code_decimal":"🚙","name":"recreational vehicle","shortname":":blue_car:","category":"travel","emoji_order":"1626","aliases":[],"aliases_ascii":[],"keywords":["transportation","car","travel"]},"truck":{"unicode":"1f69a","unicode_alt":"","code_decimal":"🚚","name":"delivery truck","shortname":":truck:","category":"travel","emoji_order":"1627","aliases":[],"aliases_ascii":[],"keywords":["transportation","truck"]},"articulated_lorry":{"unicode":"1f69b","unicode_alt":"","code_decimal":"🚛","name":"articulated lorry","shortname":":articulated_lorry:","category":"travel","emoji_order":"1628","aliases":[],"aliases_ascii":[],"keywords":["transportation","truck"]},"tractor":{"unicode":"1f69c","unicode_alt":"","code_decimal":"🚜","name":"tractor","shortname":":tractor:","category":"travel","emoji_order":"1629","aliases":[],"aliases_ascii":[],"keywords":["transportation"]},"bike":{"unicode":"1f6b2","unicode_alt":"","code_decimal":"🚲","name":"bicycle","shortname":":bike:","category":"travel","emoji_order":"1630","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","bike"]},"scooter":{"unicode":"1f6f4","unicode_alt":"","code_decimal":"🛴","name":"scooter","shortname":":scooter:","category":"travel","emoji_order":"1631","aliases":[],"aliases_ascii":[],"keywords":[]},"motor_scooter":{"unicode":"1f6f5","unicode_alt":"","code_decimal":"🛵","name":"motor scooter","shortname":":motor_scooter:","category":"travel","emoji_order":"1632","aliases":[":motorbike:"],"aliases_ascii":[],"keywords":["moped"]},"busstop":{"unicode":"1f68f","unicode_alt":"","code_decimal":"🚏","name":"bus stop","shortname":":busstop:","category":"travel","emoji_order":"1633","aliases":[],"aliases_ascii":[],"keywords":["object"]},"motorway":{"unicode":"1f6e3","unicode_alt":"1f6e3-fe0f","code_decimal":"🛣","name":"motorway","shortname":":motorway:","category":"travel","emoji_order":"1634","aliases":[],"aliases_ascii":[],"keywords":["travel","vacation","camp"]},"railway_track":{"unicode":"1f6e4","unicode_alt":"1f6e4-fe0f","code_decimal":"🛤","name":"railway track","shortname":":railway_track:","category":"travel","emoji_order":"1635","aliases":[":railroad_track:"],"aliases_ascii":[],"keywords":["travel","train","vacation"]},"fuelpump":{"unicode":"26fd","unicode_alt":"26fd-fe0f","code_decimal":"⛽","name":"fuel pump","shortname":":fuelpump:","category":"travel","emoji_order":"1636","aliases":[],"aliases_ascii":[],"keywords":["object","gas pump"]},"rotating_light":{"unicode":"1f6a8","unicode_alt":"","code_decimal":"🚨","name":"police cars revolving light","shortname":":rotating_light:","category":"travel","emoji_order":"1637","aliases":[],"aliases_ascii":[],"keywords":["transportation","object","police","911"]},"traffic_light":{"unicode":"1f6a5","unicode_alt":"","code_decimal":"🚥","name":"horizontal traffic light","shortname":":traffic_light:","category":"travel","emoji_order":"1638","aliases":[],"aliases_ascii":[],"keywords":["object","stop light"]},"vertical_traffic_light":{"unicode":"1f6a6","unicode_alt":"","code_decimal":"🚦","name":"vertical traffic light","shortname":":vertical_traffic_light:","category":"travel","emoji_order":"1639","aliases":[],"aliases_ascii":[],"keywords":["object","stop light"]},"construction":{"unicode":"1f6a7","unicode_alt":"","code_decimal":"🚧","name":"construction sign","shortname":":construction:","category":"travel","emoji_order":"1640","aliases":[],"aliases_ascii":[],"keywords":["object"]},"octagonal_sign":{"unicode":"1f6d1","unicode_alt":"","code_decimal":"🛑","name":"octagonal sign","shortname":":octagonal_sign:","category":"symbols","emoji_order":"1641","aliases":[":stop_sign:"],"aliases_ascii":[],"keywords":[]},"anchor":{"unicode":"2693","unicode_alt":"2693-fe0f","code_decimal":"⚓","name":"anchor","shortname":":anchor:","category":"travel","emoji_order":"1642","aliases":[],"aliases_ascii":[],"keywords":["object","travel","boat","vacation"]},"sailboat":{"unicode":"26f5","unicode_alt":"26f5-fe0f","code_decimal":"⛵","name":"sailboat","shortname":":sailboat:","category":"travel","emoji_order":"1643","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","boat","vacation"]},"canoe":{"unicode":"1f6f6","unicode_alt":"","code_decimal":"🛶","name":"canoe","shortname":":canoe:","category":"travel","emoji_order":"1644","aliases":[":kayak:"],"aliases_ascii":[],"keywords":[]},"speedboat":{"unicode":"1f6a4","unicode_alt":"","code_decimal":"🚤","name":"speedboat","shortname":":speedboat:","category":"travel","emoji_order":"1645","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","boat","vacation","tropical"]},"cruise_ship":{"unicode":"1f6f3","unicode_alt":"1f6f3-fe0f","code_decimal":"🛳","name":"passenger ship","shortname":":cruise_ship:","category":"travel","emoji_order":"1646","aliases":[":passenger_ship:"],"aliases_ascii":[],"keywords":["transportation","travel","boat","vacation"]},"ferry":{"unicode":"26f4","unicode_alt":"26f4-fe0f","code_decimal":"⛴","name":"ferry","shortname":":ferry:","category":"travel","emoji_order":"1647","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","boat","vacation"]},"motorboat":{"unicode":"1f6e5","unicode_alt":"1f6e5-fe0f","code_decimal":"🛥","name":"motorboat","shortname":":motorboat:","category":"travel","emoji_order":"1648","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","boat"]},"ship":{"unicode":"1f6a2","unicode_alt":"","code_decimal":"🚢","name":"ship","shortname":":ship:","category":"travel","emoji_order":"1649","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","boat","vacation"]},"airplane":{"unicode":"2708","unicode_alt":"2708-fe0f","code_decimal":"✈","name":"airplane","shortname":":airplane:","category":"travel","emoji_order":"1650","aliases":[],"aliases_ascii":[],"keywords":["transportation","plane","travel","vacation","fly"]},"airplane_small":{"unicode":"1f6e9","unicode_alt":"1f6e9-fe0f","code_decimal":"🛩","name":"small airplane","shortname":":airplane_small:","category":"travel","emoji_order":"1651","aliases":[":small_airplane:"],"aliases_ascii":[],"keywords":["transportation","plane","travel","vacation","fly"]},"airplane_departure":{"unicode":"1f6eb","unicode_alt":"","code_decimal":"🛫","name":"airplane departure","shortname":":airplane_departure:","category":"travel","emoji_order":"1652","aliases":[],"aliases_ascii":[],"keywords":["transportation","plane","travel","vacation","fly"]},"airplane_arriving":{"unicode":"1f6ec","unicode_alt":"","code_decimal":"🛬","name":"airplane arriving","shortname":":airplane_arriving:","category":"travel","emoji_order":"1653","aliases":[],"aliases_ascii":[],"keywords":["transportation","plane","travel","vacation","fly"]},"seat":{"unicode":"1f4ba","unicode_alt":"","code_decimal":"💺","name":"seat","shortname":":seat:","category":"travel","emoji_order":"1654","aliases":[],"aliases_ascii":[],"keywords":["transportation","object","travel","vacation"]},"helicopter":{"unicode":"1f681","unicode_alt":"","code_decimal":"🚁","name":"helicopter","shortname":":helicopter:","category":"travel","emoji_order":"1655","aliases":[],"aliases_ascii":[],"keywords":["transportation","plane","travel","fly"]},"suspension_railway":{"unicode":"1f69f","unicode_alt":"","code_decimal":"🚟","name":"suspension railway","shortname":":suspension_railway:","category":"travel","emoji_order":"1656","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"mountain_cableway":{"unicode":"1f6a0","unicode_alt":"","code_decimal":"🚠","name":"mountain cableway","shortname":":mountain_cableway:","category":"travel","emoji_order":"1657","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"aerial_tramway":{"unicode":"1f6a1","unicode_alt":"","code_decimal":"🚡","name":"aerial tramway","shortname":":aerial_tramway:","category":"travel","emoji_order":"1658","aliases":[],"aliases_ascii":[],"keywords":["transportation","travel","train"]},"rocket":{"unicode":"1f680","unicode_alt":"","code_decimal":"🚀","name":"rocket","shortname":":rocket:","category":"travel","emoji_order":"1659","aliases":[],"aliases_ascii":[],"keywords":["transportation","object","space","fly","blast"]},"satellite_orbital":{"unicode":"1f6f0","unicode_alt":"1f6f0-fe0f","code_decimal":"🛰","name":"satellite","shortname":":satellite_orbital:","category":"travel","emoji_order":"1660","aliases":[],"aliases_ascii":[],"keywords":["object"]},"bellhop":{"unicode":"1f6ce","unicode_alt":"1f6ce-fe0f","code_decimal":"🛎","name":"bellhop bell","shortname":":bellhop:","category":"objects","emoji_order":"1661","aliases":[":bellhop_bell:"],"aliases_ascii":[],"keywords":["object"]},"door":{"unicode":"1f6aa","unicode_alt":"","code_decimal":"🚪","name":"door","shortname":":door:","category":"objects","emoji_order":"1662","aliases":[],"aliases_ascii":[],"keywords":["object"]},"sleeping_accommodation":{"unicode":"1f6cc","unicode_alt":"","code_decimal":"🛌","name":"sleeping accommodation","shortname":":sleeping_accommodation:","category":"objects","emoji_order":"1663","aliases":[],"aliases_ascii":[],"keywords":["tired"]},"bed":{"unicode":"1f6cf","unicode_alt":"1f6cf-fe0f","code_decimal":"🛏","name":"bed","shortname":":bed:","category":"objects","emoji_order":"1669","aliases":[],"aliases_ascii":[],"keywords":["object","tired"]},"couch":{"unicode":"1f6cb","unicode_alt":"1f6cb-fe0f","code_decimal":"🛋","name":"couch and lamp","shortname":":couch:","category":"objects","emoji_order":"1670","aliases":[":couch_and_lamp:"],"aliases_ascii":[],"keywords":["object"]},"toilet":{"unicode":"1f6bd","unicode_alt":"","code_decimal":"🚽","name":"toilet","shortname":":toilet:","category":"objects","emoji_order":"1671","aliases":[],"aliases_ascii":[],"keywords":["object","bathroom"]},"shower":{"unicode":"1f6bf","unicode_alt":"","code_decimal":"🚿","name":"shower","shortname":":shower:","category":"objects","emoji_order":"1672","aliases":[],"aliases_ascii":[],"keywords":["object","bathroom"]},"bath":{"unicode":"1f6c0","unicode_alt":"","code_decimal":"🛀","name":"bath","shortname":":bath:","category":"activity","emoji_order":"1673","aliases":[],"aliases_ascii":[],"keywords":["bathroom","tired","diversity","steam"]},"bath_tone1":{"unicode":"1f6c0-1f3fb","unicode_alt":"","code_decimal":"🛀🏻","name":"bath tone 1","shortname":":bath_tone1:","category":"activity","emoji_order":"1674","aliases":[],"aliases_ascii":[],"keywords":[]},"bath_tone2":{"unicode":"1f6c0-1f3fc","unicode_alt":"","code_decimal":"🛀🏼","name":"bath tone 2","shortname":":bath_tone2:","category":"activity","emoji_order":"1675","aliases":[],"aliases_ascii":[],"keywords":[]},"bath_tone3":{"unicode":"1f6c0-1f3fd","unicode_alt":"","code_decimal":"🛀🏽","name":"bath tone 3","shortname":":bath_tone3:","category":"activity","emoji_order":"1676","aliases":[],"aliases_ascii":[],"keywords":[]},"bath_tone4":{"unicode":"1f6c0-1f3fe","unicode_alt":"","code_decimal":"🛀🏾","name":"bath tone 4","shortname":":bath_tone4:","category":"activity","emoji_order":"1677","aliases":[],"aliases_ascii":[],"keywords":[]},"bath_tone5":{"unicode":"1f6c0-1f3ff","unicode_alt":"","code_decimal":"🛀🏿","name":"bath tone 5","shortname":":bath_tone5:","category":"activity","emoji_order":"1678","aliases":[],"aliases_ascii":[],"keywords":[]},"bathtub":{"unicode":"1f6c1","unicode_alt":"","code_decimal":"🛁","name":"bathtub","shortname":":bathtub:","category":"objects","emoji_order":"1679","aliases":[],"aliases_ascii":[],"keywords":["object","bathroom","tired","steam"]},"hourglass":{"unicode":"231b","unicode_alt":"231b-fe0f","code_decimal":"⌛","name":"hourglass","shortname":":hourglass:","category":"objects","emoji_order":"1680","aliases":[],"aliases_ascii":[],"keywords":["object","time"]},"hourglass_flowing_sand":{"unicode":"23f3","unicode_alt":"","code_decimal":"⏳","name":"hourglass with flowing sand","shortname":":hourglass_flowing_sand:","category":"objects","emoji_order":"1681","aliases":[],"aliases_ascii":[],"keywords":["object","time"]},"watch":{"unicode":"231a","unicode_alt":"231a-fe0f","code_decimal":"⌚","name":"watch","shortname":":watch:","category":"objects","emoji_order":"1682","aliases":[],"aliases_ascii":[],"keywords":["electronics","time"]},"alarm_clock":{"unicode":"23f0","unicode_alt":"","code_decimal":"⏰","name":"alarm clock","shortname":":alarm_clock:","category":"objects","emoji_order":"1683","aliases":[],"aliases_ascii":[],"keywords":["object","time"]},"stopwatch":{"unicode":"23f1","unicode_alt":"23f1-fe0f","code_decimal":"⏱","name":"stopwatch","shortname":":stopwatch:","category":"objects","emoji_order":"1684","aliases":[],"aliases_ascii":[],"keywords":["electronics","time"]},"timer":{"unicode":"23f2","unicode_alt":"23f2-fe0f","code_decimal":"⏲","name":"timer clock","shortname":":timer:","category":"objects","emoji_order":"1685","aliases":[":timer_clock:"],"aliases_ascii":[],"keywords":["object","time"]},"clock":{"unicode":"1f570","unicode_alt":"1f570-fe0f","code_decimal":"🕰","name":"mantlepiece clock","shortname":":clock:","category":"objects","emoji_order":"1686","aliases":[":mantlepiece_clock:"],"aliases_ascii":[],"keywords":["object","time"]},"clock12":{"unicode":"1f55b","unicode_alt":"","code_decimal":"🕛","name":"clock face twelve oclock","shortname":":clock12:","category":"symbols","emoji_order":"1687","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock1230":{"unicode":"1f567","unicode_alt":"","code_decimal":"🕧","name":"clock face twelve-thirty","shortname":":clock1230:","category":"symbols","emoji_order":"1688","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock1":{"unicode":"1f550","unicode_alt":"","code_decimal":"🕐","name":"clock face one oclock","shortname":":clock1:","category":"symbols","emoji_order":"1689","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock130":{"unicode":"1f55c","unicode_alt":"","code_decimal":"🕜","name":"clock face one-thirty","shortname":":clock130:","category":"symbols","emoji_order":"1690","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock2":{"unicode":"1f551","unicode_alt":"","code_decimal":"🕑","name":"clock face two oclock","shortname":":clock2:","category":"symbols","emoji_order":"1691","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock230":{"unicode":"1f55d","unicode_alt":"","code_decimal":"🕝","name":"clock face two-thirty","shortname":":clock230:","category":"symbols","emoji_order":"1692","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock3":{"unicode":"1f552","unicode_alt":"","code_decimal":"🕒","name":"clock face three oclock","shortname":":clock3:","category":"symbols","emoji_order":"1693","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock330":{"unicode":"1f55e","unicode_alt":"","code_decimal":"🕞","name":"clock face three-thirty","shortname":":clock330:","category":"symbols","emoji_order":"1694","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock4":{"unicode":"1f553","unicode_alt":"","code_decimal":"🕓","name":"clock face four oclock","shortname":":clock4:","category":"symbols","emoji_order":"1695","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock430":{"unicode":"1f55f","unicode_alt":"","code_decimal":"🕟","name":"clock face four-thirty","shortname":":clock430:","category":"symbols","emoji_order":"1696","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock5":{"unicode":"1f554","unicode_alt":"","code_decimal":"🕔","name":"clock face five oclock","shortname":":clock5:","category":"symbols","emoji_order":"1697","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock530":{"unicode":"1f560","unicode_alt":"","code_decimal":"🕠","name":"clock face five-thirty","shortname":":clock530:","category":"symbols","emoji_order":"1698","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock6":{"unicode":"1f555","unicode_alt":"","code_decimal":"🕕","name":"clock face six oclock","shortname":":clock6:","category":"symbols","emoji_order":"1699","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock630":{"unicode":"1f561","unicode_alt":"","code_decimal":"🕡","name":"clock face six-thirty","shortname":":clock630:","category":"symbols","emoji_order":"1700","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock7":{"unicode":"1f556","unicode_alt":"","code_decimal":"🕖","name":"clock face seven oclock","shortname":":clock7:","category":"symbols","emoji_order":"1701","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock730":{"unicode":"1f562","unicode_alt":"","code_decimal":"🕢","name":"clock face seven-thirty","shortname":":clock730:","category":"symbols","emoji_order":"1702","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock8":{"unicode":"1f557","unicode_alt":"","code_decimal":"🕗","name":"clock face eight oclock","shortname":":clock8:","category":"symbols","emoji_order":"1703","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock830":{"unicode":"1f563","unicode_alt":"","code_decimal":"🕣","name":"clock face eight-thirty","shortname":":clock830:","category":"symbols","emoji_order":"1704","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock9":{"unicode":"1f558","unicode_alt":"","code_decimal":"🕘","name":"clock face nine oclock","shortname":":clock9:","category":"symbols","emoji_order":"1705","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock930":{"unicode":"1f564","unicode_alt":"","code_decimal":"🕤","name":"clock face nine-thirty","shortname":":clock930:","category":"symbols","emoji_order":"1706","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock10":{"unicode":"1f559","unicode_alt":"","code_decimal":"🕙","name":"clock face ten oclock","shortname":":clock10:","category":"symbols","emoji_order":"1707","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock1030":{"unicode":"1f565","unicode_alt":"","code_decimal":"🕥","name":"clock face ten-thirty","shortname":":clock1030:","category":"symbols","emoji_order":"1708","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock11":{"unicode":"1f55a","unicode_alt":"","code_decimal":"🕚","name":"clock face eleven oclock","shortname":":clock11:","category":"symbols","emoji_order":"1709","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"clock1130":{"unicode":"1f566","unicode_alt":"","code_decimal":"🕦","name":"clock face eleven-thirty","shortname":":clock1130:","category":"symbols","emoji_order":"1710","aliases":[],"aliases_ascii":[],"keywords":["symbol","time"]},"new_moon":{"unicode":"1f311","unicode_alt":"","code_decimal":"🌑","name":"new moon symbol","shortname":":new_moon:","category":"nature","emoji_order":"1711","aliases":[],"aliases_ascii":[],"keywords":["space","sky","moon"]},"waxing_crescent_moon":{"unicode":"1f312","unicode_alt":"","code_decimal":"🌒","name":"waxing crescent moon symbol","shortname":":waxing_crescent_moon:","category":"nature","emoji_order":"1712","aliases":[],"aliases_ascii":[],"keywords":["space","sky","moon"]},"first_quarter_moon":{"unicode":"1f313","unicode_alt":"","code_decimal":"🌓","name":"first quarter moon symbol","shortname":":first_quarter_moon:","category":"nature","emoji_order":"1713","aliases":[],"aliases_ascii":[],"keywords":["space","sky","moon"]},"waxing_gibbous_moon":{"unicode":"1f314","unicode_alt":"","code_decimal":"🌔","name":"waxing gibbous moon symbol","shortname":":waxing_gibbous_moon:","category":"nature","emoji_order":"1714","aliases":[],"aliases_ascii":[],"keywords":["space","sky","moon"]},"full_moon":{"unicode":"1f315","unicode_alt":"","code_decimal":"🌕","name":"full moon symbol","shortname":":full_moon:","category":"nature","emoji_order":"1715","aliases":[],"aliases_ascii":[],"keywords":["space","sky","moon"]},"waning_gibbous_moon":{"unicode":"1f316","unicode_alt":"","code_decimal":"🌖","name":"waning gibbous moon symbol","shortname":":waning_gibbous_moon:","category":"nature","emoji_order":"1716","aliases":[],"aliases_ascii":[],"keywords":["space","sky","moon"]},"last_quarter_moon":{"unicode":"1f317","unicode_alt":"","code_decimal":"🌗","name":"last quarter moon symbol","shortname":":last_quarter_moon:","category":"nature","emoji_order":"1717","aliases":[],"aliases_ascii":[],"keywords":["space","sky","moon"]},"waning_crescent_moon":{"unicode":"1f318","unicode_alt":"","code_decimal":"🌘","name":"waning crescent moon symbol","shortname":":waning_crescent_moon:","category":"nature","emoji_order":"1718","aliases":[],"aliases_ascii":[],"keywords":["space","sky","moon"]},"crescent_moon":{"unicode":"1f319","unicode_alt":"","code_decimal":"🌙","name":"crescent moon","shortname":":crescent_moon:","category":"nature","emoji_order":"1719","aliases":[],"aliases_ascii":[],"keywords":["space","sky","goodnight","moon"]},"new_moon_with_face":{"unicode":"1f31a","unicode_alt":"","code_decimal":"🌚","name":"new moon with face","shortname":":new_moon_with_face:","category":"nature","emoji_order":"1720","aliases":[],"aliases_ascii":[],"keywords":["space","sky","goodnight","moon"]},"first_quarter_moon_with_face":{"unicode":"1f31b","unicode_alt":"","code_decimal":"🌛","name":"first quarter moon with face","shortname":":first_quarter_moon_with_face:","category":"nature","emoji_order":"1721","aliases":[],"aliases_ascii":[],"keywords":["space","sky","moon"]},"last_quarter_moon_with_face":{"unicode":"1f31c","unicode_alt":"","code_decimal":"🌜","name":"last quarter moon with face","shortname":":last_quarter_moon_with_face:","category":"nature","emoji_order":"1722","aliases":[],"aliases_ascii":[],"keywords":["space","sky","moon"]},"thermometer":{"unicode":"1f321","unicode_alt":"1f321-fe0f","code_decimal":"🌡","name":"thermometer","shortname":":thermometer:","category":"objects","emoji_order":"1723","aliases":[],"aliases_ascii":[],"keywords":["object","science","health","hot"]},"sunny":{"unicode":"2600","unicode_alt":"2600-fe0f","code_decimal":"☀","name":"black sun with rays","shortname":":sunny:","category":"nature","emoji_order":"1724","aliases":[],"aliases_ascii":[],"keywords":["weather","sky","day","sun","hot","morning"]},"full_moon_with_face":{"unicode":"1f31d","unicode_alt":"","code_decimal":"🌝","name":"full moon with face","shortname":":full_moon_with_face:","category":"nature","emoji_order":"1725","aliases":[],"aliases_ascii":[],"keywords":["space","sky","goodnight","moon"]},"sun_with_face":{"unicode":"1f31e","unicode_alt":"","code_decimal":"🌞","name":"sun with face","shortname":":sun_with_face:","category":"nature","emoji_order":"1726","aliases":[],"aliases_ascii":[],"keywords":["sky","day","sun","hump day","morning"]},"star":{"unicode":"2b50","unicode_alt":"2b50-fe0f","code_decimal":"⭐","name":"white medium star","shortname":":star:","category":"nature","emoji_order":"1727","aliases":[],"aliases_ascii":[],"keywords":["space","sky","star"]},"star2":{"unicode":"1f31f","unicode_alt":"","code_decimal":"🌟","name":"glowing star","shortname":":star2:","category":"nature","emoji_order":"1728","aliases":[],"aliases_ascii":[],"keywords":["space","sky","star"]},"stars":{"unicode":"1f320","unicode_alt":"","code_decimal":"🌠","name":"shooting star","shortname":":stars:","category":"travel","emoji_order":"1729","aliases":[],"aliases_ascii":[],"keywords":["space"]},"cloud":{"unicode":"2601","unicode_alt":"2601-fe0f","code_decimal":"☁","name":"cloud","shortname":":cloud:","category":"nature","emoji_order":"1730","aliases":[],"aliases_ascii":[],"keywords":["weather","sky","cloud","cold","rain"]},"partly_sunny":{"unicode":"26c5","unicode_alt":"26c5-fe0f","code_decimal":"⛅","name":"sun behind cloud","shortname":":partly_sunny:","category":"nature","emoji_order":"1731","aliases":[],"aliases_ascii":[],"keywords":["weather","sky","cloud","sun"]},"thunder_cloud_rain":{"unicode":"26c8","unicode_alt":"26c8-fe0f","code_decimal":"⛈","name":"thunder cloud and rain","shortname":":thunder_cloud_rain:","category":"nature","emoji_order":"1732","aliases":[":thunder_cloud_and_rain:"],"aliases_ascii":[],"keywords":["weather","sky","cloud","cold","rain"]},"white_sun_small_cloud":{"unicode":"1f324","unicode_alt":"1f324-fe0f","code_decimal":"🌤","name":"white sun with small cloud","shortname":":white_sun_small_cloud:","category":"nature","emoji_order":"1733","aliases":[":white_sun_with_small_cloud:"],"aliases_ascii":[],"keywords":["weather","sky","cloud","sun"]},"white_sun_cloud":{"unicode":"1f325","unicode_alt":"1f325-fe0f","code_decimal":"🌥","name":"white sun behind cloud","shortname":":white_sun_cloud:","category":"nature","emoji_order":"1734","aliases":[":white_sun_behind_cloud:"],"aliases_ascii":[],"keywords":["weather","sky","cloud","cold","sun"]},"white_sun_rain_cloud":{"unicode":"1f326","unicode_alt":"1f326-fe0f","code_decimal":"🌦","name":"white sun behind cloud with rain","shortname":":white_sun_rain_cloud:","category":"nature","emoji_order":"1735","aliases":[":white_sun_behind_cloud_with_rain:"],"aliases_ascii":[],"keywords":["weather","sky","cloud","cold","rain","sun"]},"cloud_rain":{"unicode":"1f327","unicode_alt":"1f327-fe0f","code_decimal":"🌧","name":"cloud with rain","shortname":":cloud_rain:","category":"nature","emoji_order":"1736","aliases":[":cloud_with_rain:"],"aliases_ascii":[],"keywords":["weather","winter","sky","cloud","cold","rain"]},"cloud_snow":{"unicode":"1f328","unicode_alt":"1f328-fe0f","code_decimal":"🌨","name":"cloud with snow","shortname":":cloud_snow:","category":"nature","emoji_order":"1737","aliases":[":cloud_with_snow:"],"aliases_ascii":[],"keywords":["weather","winter","sky","cloud","cold","snow"]},"cloud_lightning":{"unicode":"1f329","unicode_alt":"1f329-fe0f","code_decimal":"🌩","name":"cloud with lightning","shortname":":cloud_lightning:","category":"nature","emoji_order":"1738","aliases":[":cloud_with_lightning:"],"aliases_ascii":[],"keywords":["weather","sky","cloud","cold","rain"]},"cloud_tornado":{"unicode":"1f32a","unicode_alt":"1f32a-fe0f","code_decimal":"🌪","name":"cloud with tornado","shortname":":cloud_tornado:","category":"nature","emoji_order":"1739","aliases":[":cloud_with_tornado:"],"aliases_ascii":[],"keywords":["weather","sky","cold"]},"fog":{"unicode":"1f32b","unicode_alt":"1f32b-fe0f","code_decimal":"🌫","name":"fog","shortname":":fog:","category":"nature","emoji_order":"1740","aliases":[],"aliases_ascii":[],"keywords":["weather","sky","cold"]},"wind_blowing_face":{"unicode":"1f32c","unicode_alt":"1f32c-fe0f","code_decimal":"🌬","name":"wind blowing face","shortname":":wind_blowing_face:","category":"nature","emoji_order":"1741","aliases":[],"aliases_ascii":[],"keywords":["weather","cold"]},"cyclone":{"unicode":"1f300","unicode_alt":"","code_decimal":"🌀","name":"cyclone","shortname":":cyclone:","category":"symbols","emoji_order":"1742","aliases":[],"aliases_ascii":[],"keywords":["symbol","drugs"]},"rainbow":{"unicode":"1f308","unicode_alt":"","code_decimal":"🌈","name":"rainbow","shortname":":rainbow:","category":"travel","emoji_order":"1743","aliases":[],"aliases_ascii":[],"keywords":["weather","gay","sky","rain"]},"closed_umbrella":{"unicode":"1f302","unicode_alt":"","code_decimal":"🌂","name":"closed umbrella","shortname":":closed_umbrella:","category":"people","emoji_order":"1744","aliases":[],"aliases_ascii":[],"keywords":["object","sky","rain","accessories"]},"umbrella2":{"unicode":"2602","unicode_alt":"2602-fe0f","code_decimal":"☂","name":"umbrella","shortname":":umbrella2:","category":"nature","emoji_order":"1745","aliases":[],"aliases_ascii":[],"keywords":["weather","object","sky","cold"]},"umbrella":{"unicode":"2614","unicode_alt":"2614-fe0f","code_decimal":"☔","name":"umbrella with rain drops","shortname":":umbrella:","category":"nature","emoji_order":"1746","aliases":[],"aliases_ascii":[],"keywords":["weather","sky","cold","rain"]},"beach_umbrella":{"unicode":"26f1","unicode_alt":"26f1-fe0f","code_decimal":"⛱","name":"umbrella on ground","shortname":":beach_umbrella:","category":"objects","emoji_order":"1747","aliases":[":umbrella_on_ground:"],"aliases_ascii":[],"keywords":["travel","vacation","tropical"]},"zap":{"unicode":"26a1","unicode_alt":"26a1-fe0f","code_decimal":"⚡","name":"high voltage sign","shortname":":zap:","category":"nature","emoji_order":"1748","aliases":[],"aliases_ascii":[],"keywords":["weather","sky","diarrhea"]},"snowflake":{"unicode":"2744","unicode_alt":"2744-fe0f","code_decimal":"❄","name":"snowflake","shortname":":snowflake:","category":"nature","emoji_order":"1749","aliases":[],"aliases_ascii":[],"keywords":["weather","winter","sky","holidays","cold","snow"]},"snowman2":{"unicode":"2603","unicode_alt":"2603-fe0f","code_decimal":"☃","name":"snowman","shortname":":snowman2:","category":"nature","emoji_order":"1750","aliases":[],"aliases_ascii":[],"keywords":["weather","winter","holidays","christmas","cold","snow"]},"snowman":{"unicode":"26c4","unicode_alt":"26c4-fe0f","code_decimal":"⛄","name":"snowman without snow","shortname":":snowman:","category":"nature","emoji_order":"1751","aliases":[],"aliases_ascii":[],"keywords":["weather","winter","holidays","cold","snow"]},"comet":{"unicode":"2604","unicode_alt":"2604-fe0f","code_decimal":"☄","name":"comet","shortname":":comet:","category":"nature","emoji_order":"1752","aliases":[],"aliases_ascii":[],"keywords":["space","sky"]},"fire":{"unicode":"1f525","unicode_alt":"","code_decimal":"🔥","name":"fire","shortname":":fire:","category":"nature","emoji_order":"1753","aliases":[":flame:"],"aliases_ascii":[],"keywords":["wth","hot"]},"droplet":{"unicode":"1f4a7","unicode_alt":"","code_decimal":"💧","name":"droplet","shortname":":droplet:","category":"nature","emoji_order":"1754","aliases":[],"aliases_ascii":[],"keywords":["weather","sky","rain"]},"ocean":{"unicode":"1f30a","unicode_alt":"","code_decimal":"🌊","name":"water wave","shortname":":ocean:","category":"nature","emoji_order":"1755","aliases":[],"aliases_ascii":[],"keywords":["weather","boat","tropical","swim"]},"jack_o_lantern":{"unicode":"1f383","unicode_alt":"","code_decimal":"🎃","name":"jack-o-lantern","shortname":":jack_o_lantern:","category":"nature","emoji_order":"1756","aliases":[],"aliases_ascii":[],"keywords":["holidays","halloween"]},"christmas_tree":{"unicode":"1f384","unicode_alt":"","code_decimal":"🎄","name":"christmas tree","shortname":":christmas_tree:","category":"nature","emoji_order":"1757","aliases":[],"aliases_ascii":[],"keywords":["plant","holidays","christmas","trees"]},"fireworks":{"unicode":"1f386","unicode_alt":"","code_decimal":"🎆","name":"fireworks","shortname":":fireworks:","category":"travel","emoji_order":"1758","aliases":[],"aliases_ascii":[],"keywords":["parties"]},"sparkler":{"unicode":"1f387","unicode_alt":"","code_decimal":"🎇","name":"firework sparkler","shortname":":sparkler:","category":"travel","emoji_order":"1759","aliases":[],"aliases_ascii":[],"keywords":["parties"]},"sparkles":{"unicode":"2728","unicode_alt":"","code_decimal":"✨","name":"sparkles","shortname":":sparkles:","category":"nature","emoji_order":"1760","aliases":[],"aliases_ascii":[],"keywords":["star","girls night"]},"balloon":{"unicode":"1f388","unicode_alt":"","code_decimal":"🎈","name":"balloon","shortname":":balloon:","category":"objects","emoji_order":"1761","aliases":[],"aliases_ascii":[],"keywords":["object","birthday","good","parties"]},"tada":{"unicode":"1f389","unicode_alt":"","code_decimal":"🎉","name":"party popper","shortname":":tada:","category":"objects","emoji_order":"1762","aliases":[],"aliases_ascii":[],"keywords":["object","birthday","holidays","cheers","good","girls night","boys night","parties"]},"confetti_ball":{"unicode":"1f38a","unicode_alt":"","code_decimal":"🎊","name":"confetti ball","shortname":":confetti_ball:","category":"objects","emoji_order":"1763","aliases":[],"aliases_ascii":[],"keywords":["object","birthday","holidays","cheers","girls night","boys night","parties"]},"tanabata_tree":{"unicode":"1f38b","unicode_alt":"","code_decimal":"🎋","name":"tanabata tree","shortname":":tanabata_tree:","category":"nature","emoji_order":"1764","aliases":[],"aliases_ascii":[],"keywords":["nature","plant","trees"]},"bamboo":{"unicode":"1f38d","unicode_alt":"","code_decimal":"🎍","name":"pine decoration","shortname":":bamboo:","category":"nature","emoji_order":"1765","aliases":[],"aliases_ascii":[],"keywords":["nature","plant"]},"dolls":{"unicode":"1f38e","unicode_alt":"","code_decimal":"🎎","name":"japanese dolls","shortname":":dolls:","category":"objects","emoji_order":"1766","aliases":[],"aliases_ascii":[],"keywords":["people","japan"]},"flags":{"unicode":"1f38f","unicode_alt":"","code_decimal":"🎏","name":"carp streamer","shortname":":flags:","category":"objects","emoji_order":"1767","aliases":[],"aliases_ascii":[],"keywords":["object","japan"]},"wind_chime":{"unicode":"1f390","unicode_alt":"","code_decimal":"🎐","name":"wind chime","shortname":":wind_chime:","category":"objects","emoji_order":"1768","aliases":[],"aliases_ascii":[],"keywords":["object","japan"]},"rice_scene":{"unicode":"1f391","unicode_alt":"","code_decimal":"🎑","name":"moon viewing ceremony","shortname":":rice_scene:","category":"travel","emoji_order":"1769","aliases":[],"aliases_ascii":[],"keywords":["places","space","sky","travel"]},"ribbon":{"unicode":"1f380","unicode_alt":"","code_decimal":"🎀","name":"ribbon","shortname":":ribbon:","category":"objects","emoji_order":"1770","aliases":[],"aliases_ascii":[],"keywords":["object","gift","birthday"]},"gift":{"unicode":"1f381","unicode_alt":"","code_decimal":"🎁","name":"wrapped present","shortname":":gift:","category":"objects","emoji_order":"1771","aliases":[],"aliases_ascii":[],"keywords":["object","gift","birthday","holidays","christmas","parties"]},"reminder_ribbon":{"unicode":"1f397","unicode_alt":"1f397-fe0f","code_decimal":"🎗","name":"reminder ribbon","shortname":":reminder_ribbon:","category":"activity","emoji_order":"1772","aliases":[],"aliases_ascii":[],"keywords":["award"]},"tickets":{"unicode":"1f39f","unicode_alt":"1f39f-fe0f","code_decimal":"🎟","name":"admission tickets","shortname":":tickets:","category":"activity","emoji_order":"1773","aliases":[":admission_tickets:"],"aliases_ascii":[],"keywords":["theatre","movie","parties"]},"ticket":{"unicode":"1f3ab","unicode_alt":"","code_decimal":"🎫","name":"ticket","shortname":":ticket:","category":"activity","emoji_order":"1774","aliases":[],"aliases_ascii":[],"keywords":["theatre","movie","parties"]},"military_medal":{"unicode":"1f396","unicode_alt":"1f396-fe0f","code_decimal":"🎖","name":"military medal","shortname":":military_medal:","category":"activity","emoji_order":"1775","aliases":[],"aliases_ascii":[],"keywords":["object","award","win"]},"trophy":{"unicode":"1f3c6","unicode_alt":"","code_decimal":"🏆","name":"trophy","shortname":":trophy:","category":"activity","emoji_order":"1776","aliases":[],"aliases_ascii":[],"keywords":["object","game","award","win","perfect","parties"]},"medal":{"unicode":"1f3c5","unicode_alt":"","code_decimal":"🏅","name":"sports medal","shortname":":medal:","category":"activity","emoji_order":"1777","aliases":[":sports_medal:"],"aliases_ascii":[],"keywords":["object","award","sport","win","perfect"]},"first_place":{"unicode":"1f947","unicode_alt":"","code_decimal":"🥇","name":"first place medal","shortname":":first_place:","category":"activity","emoji_order":"1778","aliases":[":first_place_medal:"],"aliases_ascii":[],"keywords":[]},"second_place":{"unicode":"1f948","unicode_alt":"","code_decimal":"🥈","name":"second place medal","shortname":":second_place:","category":"activity","emoji_order":"1779","aliases":[":second_place_medal:"],"aliases_ascii":[],"keywords":[]},"third_place":{"unicode":"1f949","unicode_alt":"","code_decimal":"🥉","name":"third place medal","shortname":":third_place:","category":"activity","emoji_order":"1780","aliases":[":third_place_medal:"],"aliases_ascii":[],"keywords":[]},"soccer":{"unicode":"26bd","unicode_alt":"26bd-fe0f","code_decimal":"⚽","name":"soccer ball","shortname":":soccer:","category":"activity","emoji_order":"1781","aliases":[],"aliases_ascii":[],"keywords":["game","ball","sport","soccer","football"]},"baseball":{"unicode":"26be","unicode_alt":"26be-fe0f","code_decimal":"⚾","name":"baseball","shortname":":baseball:","category":"activity","emoji_order":"1782","aliases":[],"aliases_ascii":[],"keywords":["game","ball","sport","baseball"]},"basketball":{"unicode":"1f3c0","unicode_alt":"","code_decimal":"🏀","name":"basketball and hoop","shortname":":basketball:","category":"activity","emoji_order":"1783","aliases":[],"aliases_ascii":[],"keywords":["game","ball","sport","basketball"]},"volleyball":{"unicode":"1f3d0","unicode_alt":"","code_decimal":"🏐","name":"volleyball","shortname":":volleyball:","category":"activity","emoji_order":"1784","aliases":[],"aliases_ascii":[],"keywords":["game","ball","sport","volleyball"]},"football":{"unicode":"1f3c8","unicode_alt":"","code_decimal":"🏈","name":"american football","shortname":":football:","category":"activity","emoji_order":"1785","aliases":[],"aliases_ascii":[],"keywords":["america","game","ball","sport","football"]},"rugby_football":{"unicode":"1f3c9","unicode_alt":"","code_decimal":"🏉","name":"rugby football","shortname":":rugby_football:","category":"activity","emoji_order":"1786","aliases":[],"aliases_ascii":[],"keywords":["game","sport","football"]},"tennis":{"unicode":"1f3be","unicode_alt":"","code_decimal":"🎾","name":"tennis racquet and ball","shortname":":tennis:","category":"activity","emoji_order":"1787","aliases":[],"aliases_ascii":[],"keywords":["game","ball","sport","tennis"]},"8ball":{"unicode":"1f3b1","unicode_alt":"","code_decimal":"🎱","name":"billiards","shortname":":8ball:","category":"activity","emoji_order":"1788","aliases":[],"aliases_ascii":[],"keywords":["game","ball","sport","billiards","luck","boys night"]},"bowling":{"unicode":"1f3b3","unicode_alt":"","code_decimal":"🎳","name":"bowling","shortname":":bowling:","category":"activity","emoji_order":"1789","aliases":[],"aliases_ascii":[],"keywords":["game","ball","sport","boys night"]},"cricket":{"unicode":"1f3cf","unicode_alt":"","code_decimal":"🏏","name":"cricket bat and ball","shortname":":cricket:","category":"activity","emoji_order":"1790","aliases":[":cricket_bat_ball:"],"aliases_ascii":[],"keywords":["ball","sport","cricket"]},"field_hockey":{"unicode":"1f3d1","unicode_alt":"","code_decimal":"🏑","name":"field hockey stick and ball","shortname":":field_hockey:","category":"activity","emoji_order":"1791","aliases":[],"aliases_ascii":[],"keywords":["ball","sport","hockey"]},"hockey":{"unicode":"1f3d2","unicode_alt":"","code_decimal":"🏒","name":"ice hockey stick and puck","shortname":":hockey:","category":"activity","emoji_order":"1792","aliases":[],"aliases_ascii":[],"keywords":["game","sport","hockey"]},"ping_pong":{"unicode":"1f3d3","unicode_alt":"","code_decimal":"🏓","name":"table tennis paddle and ball","shortname":":ping_pong:","category":"activity","emoji_order":"1793","aliases":[":table_tennis:"],"aliases_ascii":[],"keywords":["game","ball","sport","ping pong"]},"badminton":{"unicode":"1f3f8","unicode_alt":"","code_decimal":"🏸","name":"badminton racquet","shortname":":badminton:","category":"activity","emoji_order":"1794","aliases":[],"aliases_ascii":[],"keywords":["game","sport","badminton"]},"boxing_glove":{"unicode":"1f94a","unicode_alt":"","code_decimal":"🥊","name":"boxing glove","shortname":":boxing_glove:","category":"activity","emoji_order":"1795","aliases":[":boxing_gloves:"],"aliases_ascii":[],"keywords":[]},"martial_arts_uniform":{"unicode":"1f94b","unicode_alt":"","code_decimal":"🥋","name":"martial arts uniform","shortname":":martial_arts_uniform:","category":"activity","emoji_order":"1796","aliases":[":karate_uniform:"],"aliases_ascii":[],"keywords":[]},"goal":{"unicode":"1f945","unicode_alt":"","code_decimal":"🥅","name":"goal net","shortname":":goal:","category":"activity","emoji_order":"1797","aliases":[":goal_net:"],"aliases_ascii":[],"keywords":[]},"dart":{"unicode":"1f3af","unicode_alt":"","code_decimal":"🎯","name":"direct hit","shortname":":dart:","category":"activity","emoji_order":"1798","aliases":[],"aliases_ascii":[],"keywords":["game","sport","boys night"]},"golf":{"unicode":"26f3","unicode_alt":"26f3-fe0f","code_decimal":"⛳","name":"flag in hole","shortname":":golf:","category":"activity","emoji_order":"1799","aliases":[],"aliases_ascii":[],"keywords":["game","ball","vacation","sport","golf"]},"ice_skate":{"unicode":"26f8","unicode_alt":"26f8-fe0f","code_decimal":"⛸","name":"ice skate","shortname":":ice_skate:","category":"activity","emoji_order":"1800","aliases":[],"aliases_ascii":[],"keywords":["cold","sport","ice skating"]},"fishing_pole_and_fish":{"unicode":"1f3a3","unicode_alt":"","code_decimal":"🎣","name":"fishing pole and fish","shortname":":fishing_pole_and_fish:","category":"activity","emoji_order":"1801","aliases":[],"aliases_ascii":[],"keywords":["vacation","sport","fishing"]},"running_shirt_with_sash":{"unicode":"1f3bd","unicode_alt":"","code_decimal":"🎽","name":"running shirt with sash","shortname":":running_shirt_with_sash:","category":"activity","emoji_order":"1802","aliases":[],"aliases_ascii":[],"keywords":["award"]},"ski":{"unicode":"1f3bf","unicode_alt":"","code_decimal":"🎿","name":"ski and ski boot","shortname":":ski:","category":"activity","emoji_order":"1803","aliases":[],"aliases_ascii":[],"keywords":["cold","sport","skiing"]},"video_game":{"unicode":"1f3ae","unicode_alt":"","code_decimal":"🎮","name":"video game","shortname":":video_game:","category":"activity","emoji_order":"1804","aliases":[],"aliases_ascii":[],"keywords":["electronics","game","boys night"]},"joystick":{"unicode":"1f579","unicode_alt":"1f579-fe0f","code_decimal":"🕹","name":"joystick","shortname":":joystick:","category":"objects","emoji_order":"1805","aliases":[],"aliases_ascii":[],"keywords":["electronics","game","boys night"]},"game_die":{"unicode":"1f3b2","unicode_alt":"","code_decimal":"🎲","name":"game die","shortname":":game_die:","category":"activity","emoji_order":"1806","aliases":[],"aliases_ascii":[],"keywords":["object","game","boys night"]},"spades":{"unicode":"2660","unicode_alt":"2660-fe0f","code_decimal":"♠","name":"black spade suit","shortname":":spades:","category":"symbols","emoji_order":"1807","aliases":[],"aliases_ascii":[],"keywords":["symbol","game"]},"hearts":{"unicode":"2665","unicode_alt":"2665-fe0f","code_decimal":"♥","name":"black heart suit","shortname":":hearts:","category":"symbols","emoji_order":"1808","aliases":[],"aliases_ascii":[],"keywords":["love","symbol","game"]},"diamonds":{"unicode":"2666","unicode_alt":"2666-fe0f","code_decimal":"♦","name":"black diamond suit","shortname":":diamonds:","category":"symbols","emoji_order":"1809","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","game"]},"clubs":{"unicode":"2663","unicode_alt":"2663-fe0f","code_decimal":"♣","name":"black club suit","shortname":":clubs:","category":"symbols","emoji_order":"1810","aliases":[],"aliases_ascii":[],"keywords":["symbol","game"]},"black_joker":{"unicode":"1f0cf","unicode_alt":"","code_decimal":"🃏","name":"playing card black joker","shortname":":black_joker:","category":"symbols","emoji_order":"1811","aliases":[],"aliases_ascii":[],"keywords":["object","symbol","game"]},"mahjong":{"unicode":"1f004","unicode_alt":"1f004-fe0f","code_decimal":"🀄","name":"mahjong tile red dragon","shortname":":mahjong:","category":"symbols","emoji_order":"1812","aliases":[],"aliases_ascii":[],"keywords":["object","symbol","game"]},"flower_playing_cards":{"unicode":"1f3b4","unicode_alt":"","code_decimal":"🎴","name":"flower playing cards","shortname":":flower_playing_cards:","category":"symbols","emoji_order":"1813","aliases":[],"aliases_ascii":[],"keywords":["object","symbol"]},"mute":{"unicode":"1f507","unicode_alt":"","code_decimal":"🔇","name":"speaker with cancellation stroke","shortname":":mute:","category":"symbols","emoji_order":"1814","aliases":[],"aliases_ascii":[],"keywords":["alarm","symbol"]},"speaker":{"unicode":"1f508","unicode_alt":"","code_decimal":"🔈","name":"speaker","shortname":":speaker:","category":"symbols","emoji_order":"1815","aliases":[],"aliases_ascii":[],"keywords":["alarm","symbol"]},"sound":{"unicode":"1f509","unicode_alt":"","code_decimal":"🔉","name":"speaker with one sound wave","shortname":":sound:","category":"symbols","emoji_order":"1816","aliases":[],"aliases_ascii":[],"keywords":["alarm","symbol"]},"loud_sound":{"unicode":"1f50a","unicode_alt":"","code_decimal":"🔊","name":"speaker with three sound waves","shortname":":loud_sound:","category":"symbols","emoji_order":"1817","aliases":[],"aliases_ascii":[],"keywords":["alarm","symbol"]},"loudspeaker":{"unicode":"1f4e2","unicode_alt":"","code_decimal":"📢","name":"public address loudspeaker","shortname":":loudspeaker:","category":"symbols","emoji_order":"1818","aliases":[],"aliases_ascii":[],"keywords":["object","alarm","symbol"]},"mega":{"unicode":"1f4e3","unicode_alt":"","code_decimal":"📣","name":"cheering megaphone","shortname":":mega:","category":"symbols","emoji_order":"1819","aliases":[],"aliases_ascii":[],"keywords":["object","sport"]},"postal_horn":{"unicode":"1f4ef","unicode_alt":"","code_decimal":"📯","name":"postal horn","shortname":":postal_horn:","category":"objects","emoji_order":"1820","aliases":[],"aliases_ascii":[],"keywords":["object"]},"bell":{"unicode":"1f514","unicode_alt":"","code_decimal":"🔔","name":"bell","shortname":":bell:","category":"symbols","emoji_order":"1821","aliases":[],"aliases_ascii":[],"keywords":["object","alarm","symbol"]},"no_bell":{"unicode":"1f515","unicode_alt":"","code_decimal":"🔕","name":"bell with cancellation stroke","shortname":":no_bell:","category":"symbols","emoji_order":"1822","aliases":[],"aliases_ascii":[],"keywords":["alarm","symbol"]},"musical_score":{"unicode":"1f3bc","unicode_alt":"","code_decimal":"🎼","name":"musical score","shortname":":musical_score:","category":"activity","emoji_order":"1823","aliases":[],"aliases_ascii":[],"keywords":["instruments"]},"musical_note":{"unicode":"1f3b5","unicode_alt":"","code_decimal":"🎵","name":"musical note","shortname":":musical_note:","category":"symbols","emoji_order":"1824","aliases":[],"aliases_ascii":[],"keywords":["instruments","symbol"]},"notes":{"unicode":"1f3b6","unicode_alt":"","code_decimal":"🎶","name":"multiple musical notes","shortname":":notes:","category":"symbols","emoji_order":"1825","aliases":[],"aliases_ascii":[],"keywords":["instruments","symbol"]},"microphone2":{"unicode":"1f399","unicode_alt":"1f399-fe0f","code_decimal":"🎙","name":"studio microphone","shortname":":microphone2:","category":"objects","emoji_order":"1826","aliases":[":studio_microphone:"],"aliases_ascii":[],"keywords":["electronics","object"]},"level_slider":{"unicode":"1f39a","unicode_alt":"1f39a-fe0f","code_decimal":"🎚","name":"level slider","shortname":":level_slider:","category":"objects","emoji_order":"1827","aliases":[],"aliases_ascii":[],"keywords":[]},"control_knobs":{"unicode":"1f39b","unicode_alt":"1f39b-fe0f","code_decimal":"🎛","name":"control knobs","shortname":":control_knobs:","category":"objects","emoji_order":"1828","aliases":[],"aliases_ascii":[],"keywords":["time"]},"microphone":{"unicode":"1f3a4","unicode_alt":"","code_decimal":"🎤","name":"microphone","shortname":":microphone:","category":"activity","emoji_order":"1829","aliases":[],"aliases_ascii":[],"keywords":["instruments"]},"headphones":{"unicode":"1f3a7","unicode_alt":"","code_decimal":"🎧","name":"headphone","shortname":":headphones:","category":"activity","emoji_order":"1830","aliases":[],"aliases_ascii":[],"keywords":["instruments"]},"radio":{"unicode":"1f4fb","unicode_alt":"","code_decimal":"📻","name":"radio","shortname":":radio:","category":"objects","emoji_order":"1831","aliases":[],"aliases_ascii":[],"keywords":["electronics"]},"saxophone":{"unicode":"1f3b7","unicode_alt":"","code_decimal":"🎷","name":"saxophone","shortname":":saxophone:","category":"activity","emoji_order":"1832","aliases":[],"aliases_ascii":[],"keywords":["instruments"]},"guitar":{"unicode":"1f3b8","unicode_alt":"","code_decimal":"🎸","name":"guitar","shortname":":guitar:","category":"activity","emoji_order":"1833","aliases":[],"aliases_ascii":[],"keywords":["instruments"]},"musical_keyboard":{"unicode":"1f3b9","unicode_alt":"","code_decimal":"🎹","name":"musical keyboard","shortname":":musical_keyboard:","category":"activity","emoji_order":"1834","aliases":[],"aliases_ascii":[],"keywords":["instruments"]},"trumpet":{"unicode":"1f3ba","unicode_alt":"","code_decimal":"🎺","name":"trumpet","shortname":":trumpet:","category":"activity","emoji_order":"1835","aliases":[],"aliases_ascii":[],"keywords":["instruments"]},"violin":{"unicode":"1f3bb","unicode_alt":"","code_decimal":"🎻","name":"violin","shortname":":violin:","category":"activity","emoji_order":"1836","aliases":[],"aliases_ascii":[],"keywords":["instruments","sarcastic"]},"drum":{"unicode":"1f941","unicode_alt":"","code_decimal":"🥁","name":"drum with drumsticks","shortname":":drum:","category":"activity","emoji_order":"1837","aliases":[":drum_with_drumsticks:"],"aliases_ascii":[],"keywords":[]},"iphone":{"unicode":"1f4f1","unicode_alt":"","code_decimal":"📱","name":"mobile phone","shortname":":iphone:","category":"objects","emoji_order":"1838","aliases":[],"aliases_ascii":[],"keywords":["electronics","phone","selfie"]},"calling":{"unicode":"1f4f2","unicode_alt":"","code_decimal":"📲","name":"mobile phone with rightwards arrow at left","shortname":":calling:","category":"objects","emoji_order":"1839","aliases":[],"aliases_ascii":[],"keywords":["electronics","phone","selfie"]},"telephone":{"unicode":"260e","unicode_alt":"260e-fe0f","code_decimal":"☎","name":"black telephone","shortname":":telephone:","category":"objects","emoji_order":"1840","aliases":[],"aliases_ascii":[],"keywords":["electronics","phone"]},"telephone_receiver":{"unicode":"1f4de","unicode_alt":"","code_decimal":"📞","name":"telephone receiver","shortname":":telephone_receiver:","category":"objects","emoji_order":"1841","aliases":[],"aliases_ascii":[],"keywords":["electronics","phone"]},"pager":{"unicode":"1f4df","unicode_alt":"","code_decimal":"📟","name":"pager","shortname":":pager:","category":"objects","emoji_order":"1842","aliases":[],"aliases_ascii":[],"keywords":["electronics","work"]},"fax":{"unicode":"1f4e0","unicode_alt":"","code_decimal":"📠","name":"fax machine","shortname":":fax:","category":"objects","emoji_order":"1843","aliases":[],"aliases_ascii":[],"keywords":["electronics","work","office"]},"battery":{"unicode":"1f50b","unicode_alt":"","code_decimal":"🔋","name":"battery","shortname":":battery:","category":"objects","emoji_order":"1844","aliases":[],"aliases_ascii":[],"keywords":["object"]},"electric_plug":{"unicode":"1f50c","unicode_alt":"","code_decimal":"🔌","name":"electric plug","shortname":":electric_plug:","category":"objects","emoji_order":"1845","aliases":[],"aliases_ascii":[],"keywords":["electronics"]},"computer":{"unicode":"1f4bb","unicode_alt":"","code_decimal":"💻","name":"personal computer","shortname":":computer:","category":"objects","emoji_order":"1846","aliases":[],"aliases_ascii":[],"keywords":["electronics","work","office"]},"desktop":{"unicode":"1f5a5","unicode_alt":"1f5a5-fe0f","code_decimal":"🖥","name":"desktop computer","shortname":":desktop:","category":"objects","emoji_order":"1847","aliases":[":desktop_computer:"],"aliases_ascii":[],"keywords":["electronics","work"]},"printer":{"unicode":"1f5a8","unicode_alt":"1f5a8-fe0f","code_decimal":"🖨","name":"printer","shortname":":printer:","category":"objects","emoji_order":"1848","aliases":[],"aliases_ascii":[],"keywords":["electronics","work","office"]},"keyboard":{"unicode":"2328","unicode_alt":"2328-fe0f","code_decimal":"⌨","name":"keyboard","shortname":":keyboard:","category":"objects","emoji_order":"1849","aliases":[],"aliases_ascii":[],"keywords":["electronics","work","office"]},"mouse_three_button":{"unicode":"1f5b1","unicode_alt":"1f5b1-fe0f","code_decimal":"🖱","name":"three button mouse","shortname":":mouse_three_button:","category":"objects","emoji_order":"1850","aliases":[":three_button_mouse:"],"aliases_ascii":[],"keywords":["electronics","work","game","office"]},"trackball":{"unicode":"1f5b2","unicode_alt":"1f5b2-fe0f","code_decimal":"🖲","name":"trackball","shortname":":trackball:","category":"objects","emoji_order":"1851","aliases":[],"aliases_ascii":[],"keywords":["electronics","work","game","office"]},"minidisc":{"unicode":"1f4bd","unicode_alt":"","code_decimal":"💽","name":"minidisc","shortname":":minidisc:","category":"objects","emoji_order":"1852","aliases":[],"aliases_ascii":[],"keywords":["electronics"]},"floppy_disk":{"unicode":"1f4be","unicode_alt":"","code_decimal":"💾","name":"floppy disk","shortname":":floppy_disk:","category":"objects","emoji_order":"1853","aliases":[],"aliases_ascii":[],"keywords":["electronics","office"]},"cd":{"unicode":"1f4bf","unicode_alt":"","code_decimal":"💿","name":"optical disc","shortname":":cd:","category":"objects","emoji_order":"1854","aliases":[],"aliases_ascii":[],"keywords":["electronics"]},"dvd":{"unicode":"1f4c0","unicode_alt":"","code_decimal":"📀","name":"dvd","shortname":":dvd:","category":"objects","emoji_order":"1855","aliases":[],"aliases_ascii":[],"keywords":["electronics"]},"movie_camera":{"unicode":"1f3a5","unicode_alt":"","code_decimal":"🎥","name":"movie camera","shortname":":movie_camera:","category":"objects","emoji_order":"1856","aliases":[],"aliases_ascii":[],"keywords":["object","camera","movie"]},"film_frames":{"unicode":"1f39e","unicode_alt":"1f39e-fe0f","code_decimal":"🎞","name":"film frames","shortname":":film_frames:","category":"objects","emoji_order":"1857","aliases":[],"aliases_ascii":[],"keywords":["object","camera","movie"]},"projector":{"unicode":"1f4fd","unicode_alt":"1f4fd-fe0f","code_decimal":"📽","name":"film projector","shortname":":projector:","category":"objects","emoji_order":"1858","aliases":[":film_projector:"],"aliases_ascii":[],"keywords":["object","camera","movie"]},"clapper":{"unicode":"1f3ac","unicode_alt":"","code_decimal":"🎬","name":"clapper board","shortname":":clapper:","category":"activity","emoji_order":"1859","aliases":[],"aliases_ascii":[],"keywords":["movie"]},"tv":{"unicode":"1f4fa","unicode_alt":"","code_decimal":"📺","name":"television","shortname":":tv:","category":"objects","emoji_order":"1860","aliases":[],"aliases_ascii":[],"keywords":["electronics"]},"camera":{"unicode":"1f4f7","unicode_alt":"","code_decimal":"📷","name":"camera","shortname":":camera:","category":"objects","emoji_order":"1861","aliases":[],"aliases_ascii":[],"keywords":["electronics","camera","selfie"]},"camera_with_flash":{"unicode":"1f4f8","unicode_alt":"","code_decimal":"📸","name":"camera with flash","shortname":":camera_with_flash:","category":"objects","emoji_order":"1862","aliases":[],"aliases_ascii":[],"keywords":["electronics","camera"]},"video_camera":{"unicode":"1f4f9","unicode_alt":"","code_decimal":"📹","name":"video camera","shortname":":video_camera:","category":"objects","emoji_order":"1863","aliases":[],"aliases_ascii":[],"keywords":["electronics","camera","movie"]},"vhs":{"unicode":"1f4fc","unicode_alt":"","code_decimal":"📼","name":"videocassette","shortname":":vhs:","category":"objects","emoji_order":"1864","aliases":[],"aliases_ascii":[],"keywords":["electronics"]},"mag":{"unicode":"1f50d","unicode_alt":"","code_decimal":"🔍","name":"left-pointing magnifying glass","shortname":":mag:","category":"objects","emoji_order":"1865","aliases":[],"aliases_ascii":[],"keywords":["object"]},"mag_right":{"unicode":"1f50e","unicode_alt":"","code_decimal":"🔎","name":"right-pointing magnifying glass","shortname":":mag_right:","category":"objects","emoji_order":"1866","aliases":[],"aliases_ascii":[],"keywords":["object"]},"microscope":{"unicode":"1f52c","unicode_alt":"","code_decimal":"🔬","name":"microscope","shortname":":microscope:","category":"objects","emoji_order":"1867","aliases":[],"aliases_ascii":[],"keywords":["object","science"]},"telescope":{"unicode":"1f52d","unicode_alt":"","code_decimal":"🔭","name":"telescope","shortname":":telescope:","category":"objects","emoji_order":"1868","aliases":[],"aliases_ascii":[],"keywords":["object","space","science"]},"satellite":{"unicode":"1f4e1","unicode_alt":"","code_decimal":"📡","name":"satellite antenna","shortname":":satellite:","category":"objects","emoji_order":"1869","aliases":[],"aliases_ascii":[],"keywords":["object"]},"candle":{"unicode":"1f56f","unicode_alt":"1f56f-fe0f","code_decimal":"🕯","name":"candle","shortname":":candle:","category":"objects","emoji_order":"1870","aliases":[],"aliases_ascii":[],"keywords":["object"]},"bulb":{"unicode":"1f4a1","unicode_alt":"","code_decimal":"💡","name":"electric light bulb","shortname":":bulb:","category":"objects","emoji_order":"1871","aliases":[],"aliases_ascii":[],"keywords":["object","science"]},"flashlight":{"unicode":"1f526","unicode_alt":"","code_decimal":"🔦","name":"electric torch","shortname":":flashlight:","category":"objects","emoji_order":"1872","aliases":[],"aliases_ascii":[],"keywords":["electronics","object"]},"izakaya_lantern":{"unicode":"1f3ee","unicode_alt":"","code_decimal":"🏮","name":"izakaya lantern","shortname":":izakaya_lantern:","category":"objects","emoji_order":"1873","aliases":[],"aliases_ascii":[],"keywords":["object","japan"]},"notebook_with_decorative_cover":{"unicode":"1f4d4","unicode_alt":"","code_decimal":"📔","name":"notebook with decorative cover","shortname":":notebook_with_decorative_cover:","category":"objects","emoji_order":"1874","aliases":[],"aliases_ascii":[],"keywords":["object","office","write"]},"closed_book":{"unicode":"1f4d5","unicode_alt":"","code_decimal":"📕","name":"closed book","shortname":":closed_book:","category":"objects","emoji_order":"1875","aliases":[],"aliases_ascii":[],"keywords":["object","office","write","book"]},"book":{"unicode":"1f4d6","unicode_alt":"","code_decimal":"📖","name":"open book","shortname":":book:","category":"objects","emoji_order":"1876","aliases":[],"aliases_ascii":[],"keywords":["object","office","write","book"]},"green_book":{"unicode":"1f4d7","unicode_alt":"","code_decimal":"📗","name":"green book","shortname":":green_book:","category":"objects","emoji_order":"1877","aliases":[],"aliases_ascii":[],"keywords":["object","office","book"]},"blue_book":{"unicode":"1f4d8","unicode_alt":"","code_decimal":"📘","name":"blue book","shortname":":blue_book:","category":"objects","emoji_order":"1878","aliases":[],"aliases_ascii":[],"keywords":["object","office","write","book"]},"orange_book":{"unicode":"1f4d9","unicode_alt":"","code_decimal":"📙","name":"orange book","shortname":":orange_book:","category":"objects","emoji_order":"1879","aliases":[],"aliases_ascii":[],"keywords":["object","office","write","book"]},"books":{"unicode":"1f4da","unicode_alt":"","code_decimal":"📚","name":"books","shortname":":books:","category":"objects","emoji_order":"1880","aliases":[],"aliases_ascii":[],"keywords":["object","office","write","book"]},"notebook":{"unicode":"1f4d3","unicode_alt":"","code_decimal":"📓","name":"notebook","shortname":":notebook:","category":"objects","emoji_order":"1881","aliases":[],"aliases_ascii":[],"keywords":["object","office","write"]},"ledger":{"unicode":"1f4d2","unicode_alt":"","code_decimal":"📒","name":"ledger","shortname":":ledger:","category":"objects","emoji_order":"1882","aliases":[],"aliases_ascii":[],"keywords":["object","office","write"]},"page_with_curl":{"unicode":"1f4c3","unicode_alt":"","code_decimal":"📃","name":"page with curl","shortname":":page_with_curl:","category":"objects","emoji_order":"1883","aliases":[],"aliases_ascii":[],"keywords":["office","write"]},"scroll":{"unicode":"1f4dc","unicode_alt":"","code_decimal":"📜","name":"scroll","shortname":":scroll:","category":"objects","emoji_order":"1884","aliases":[],"aliases_ascii":[],"keywords":["object","office"]},"page_facing_up":{"unicode":"1f4c4","unicode_alt":"","code_decimal":"📄","name":"page facing up","shortname":":page_facing_up:","category":"objects","emoji_order":"1885","aliases":[],"aliases_ascii":[],"keywords":["work","office","write"]},"newspaper":{"unicode":"1f4f0","unicode_alt":"","code_decimal":"📰","name":"newspaper","shortname":":newspaper:","category":"objects","emoji_order":"1886","aliases":[],"aliases_ascii":[],"keywords":["office","write"]},"newspaper2":{"unicode":"1f5de","unicode_alt":"1f5de-fe0f","code_decimal":"🗞","name":"rolled-up newspaper","shortname":":newspaper2:","category":"objects","emoji_order":"1887","aliases":[":rolled_up_newspaper:"],"aliases_ascii":[],"keywords":["office","write"]},"bookmark_tabs":{"unicode":"1f4d1","unicode_alt":"","code_decimal":"📑","name":"bookmark tabs","shortname":":bookmark_tabs:","category":"objects","emoji_order":"1888","aliases":[],"aliases_ascii":[],"keywords":["office","write"]},"bookmark":{"unicode":"1f516","unicode_alt":"","code_decimal":"🔖","name":"bookmark","shortname":":bookmark:","category":"objects","emoji_order":"1889","aliases":[],"aliases_ascii":[],"keywords":["object","book"]},"label":{"unicode":"1f3f7","unicode_alt":"1f3f7-fe0f","code_decimal":"🏷","name":"label","shortname":":label:","category":"objects","emoji_order":"1890","aliases":[],"aliases_ascii":[],"keywords":["object"]},"moneybag":{"unicode":"1f4b0","unicode_alt":"","code_decimal":"💰","name":"money bag","shortname":":moneybag:","category":"objects","emoji_order":"1891","aliases":[],"aliases_ascii":[],"keywords":["bag","award","money"]},"yen":{"unicode":"1f4b4","unicode_alt":"","code_decimal":"💴","name":"banknote with yen sign","shortname":":yen:","category":"objects","emoji_order":"1892","aliases":[],"aliases_ascii":[],"keywords":["money"]},"dollar":{"unicode":"1f4b5","unicode_alt":"","code_decimal":"💵","name":"banknote with dollar sign","shortname":":dollar:","category":"objects","emoji_order":"1893","aliases":[],"aliases_ascii":[],"keywords":["money"]},"euro":{"unicode":"1f4b6","unicode_alt":"","code_decimal":"💶","name":"banknote with euro sign","shortname":":euro:","category":"objects","emoji_order":"1894","aliases":[],"aliases_ascii":[],"keywords":["money"]},"pound":{"unicode":"1f4b7","unicode_alt":"","code_decimal":"💷","name":"banknote with pound sign","shortname":":pound:","category":"objects","emoji_order":"1895","aliases":[],"aliases_ascii":[],"keywords":["money"]},"money_with_wings":{"unicode":"1f4b8","unicode_alt":"","code_decimal":"💸","name":"money with wings","shortname":":money_with_wings:","category":"objects","emoji_order":"1896","aliases":[],"aliases_ascii":[],"keywords":["money","boys night"]},"credit_card":{"unicode":"1f4b3","unicode_alt":"","code_decimal":"💳","name":"credit card","shortname":":credit_card:","category":"objects","emoji_order":"1897","aliases":[],"aliases_ascii":[],"keywords":["object","money","boys night"]},"chart":{"unicode":"1f4b9","unicode_alt":"","code_decimal":"💹","name":"chart with upwards trend and yen sign","shortname":":chart:","category":"symbols","emoji_order":"1898","aliases":[],"aliases_ascii":[],"keywords":["symbol","money"]},"currency_exchange":{"unicode":"1f4b1","unicode_alt":"","code_decimal":"💱","name":"currency exchange","shortname":":currency_exchange:","category":"symbols","emoji_order":"1899","aliases":[],"aliases_ascii":[],"keywords":["symbol","money"]},"heavy_dollar_sign":{"unicode":"1f4b2","unicode_alt":"","code_decimal":"💲","name":"heavy dollar sign","shortname":":heavy_dollar_sign:","category":"symbols","emoji_order":"1900","aliases":[],"aliases_ascii":[],"keywords":["math","symbol","money"]},"envelope":{"unicode":"2709","unicode_alt":"2709-fe0f","code_decimal":"✉","name":"envelope","shortname":":envelope:","category":"objects","emoji_order":"1901","aliases":[],"aliases_ascii":[],"keywords":["object","office","write"]},"e-mail":{"unicode":"1f4e7","unicode_alt":"","code_decimal":"📧","name":"e-mail symbol","shortname":":e-mail:","category":"objects","emoji_order":"1902","aliases":[":email:"],"aliases_ascii":[],"keywords":["office"]},"incoming_envelope":{"unicode":"1f4e8","unicode_alt":"","code_decimal":"📨","name":"incoming envelope","shortname":":incoming_envelope:","category":"objects","emoji_order":"1903","aliases":[],"aliases_ascii":[],"keywords":["object"]},"envelope_with_arrow":{"unicode":"1f4e9","unicode_alt":"","code_decimal":"📩","name":"envelope with downwards arrow above","shortname":":envelope_with_arrow:","category":"objects","emoji_order":"1904","aliases":[],"aliases_ascii":[],"keywords":["object","office"]},"outbox_tray":{"unicode":"1f4e4","unicode_alt":"","code_decimal":"📤","name":"outbox tray","shortname":":outbox_tray:","category":"objects","emoji_order":"1905","aliases":[],"aliases_ascii":[],"keywords":["work","office"]},"inbox_tray":{"unicode":"1f4e5","unicode_alt":"","code_decimal":"📥","name":"inbox tray","shortname":":inbox_tray:","category":"objects","emoji_order":"1906","aliases":[],"aliases_ascii":[],"keywords":["work","office"]},"package":{"unicode":"1f4e6","unicode_alt":"","code_decimal":"📦","name":"package","shortname":":package:","category":"objects","emoji_order":"1907","aliases":[],"aliases_ascii":[],"keywords":["object","gift","office"]},"mailbox":{"unicode":"1f4eb","unicode_alt":"","code_decimal":"📫","name":"closed mailbox with raised flag","shortname":":mailbox:","category":"objects","emoji_order":"1908","aliases":[],"aliases_ascii":[],"keywords":["object"]},"mailbox_closed":{"unicode":"1f4ea","unicode_alt":"","code_decimal":"📪","name":"closed mailbox with lowered flag","shortname":":mailbox_closed:","category":"objects","emoji_order":"1909","aliases":[],"aliases_ascii":[],"keywords":["object","office"]},"mailbox_with_mail":{"unicode":"1f4ec","unicode_alt":"","code_decimal":"📬","name":"open mailbox with raised flag","shortname":":mailbox_with_mail:","category":"objects","emoji_order":"1910","aliases":[],"aliases_ascii":[],"keywords":["object"]},"mailbox_with_no_mail":{"unicode":"1f4ed","unicode_alt":"","code_decimal":"📭","name":"open mailbox with lowered flag","shortname":":mailbox_with_no_mail:","category":"objects","emoji_order":"1911","aliases":[],"aliases_ascii":[],"keywords":["object"]},"postbox":{"unicode":"1f4ee","unicode_alt":"","code_decimal":"📮","name":"postbox","shortname":":postbox:","category":"objects","emoji_order":"1912","aliases":[],"aliases_ascii":[],"keywords":["object"]},"ballot_box":{"unicode":"1f5f3","unicode_alt":"1f5f3-fe0f","code_decimal":"🗳","name":"ballot box with ballot","shortname":":ballot_box:","category":"objects","emoji_order":"1913","aliases":[":ballot_box_with_ballot:"],"aliases_ascii":[],"keywords":["object","office"]},"pencil2":{"unicode":"270f","unicode_alt":"270f-fe0f","code_decimal":"✏","name":"pencil","shortname":":pencil2:","category":"objects","emoji_order":"1914","aliases":[],"aliases_ascii":[],"keywords":["object","office","write"]},"black_nib":{"unicode":"2712","unicode_alt":"2712-fe0f","code_decimal":"✒","name":"black nib","shortname":":black_nib:","category":"objects","emoji_order":"1915","aliases":[],"aliases_ascii":[],"keywords":["object","office","write"]},"pen_fountain":{"unicode":"1f58b","unicode_alt":"1f58b-fe0f","code_decimal":"🖋","name":"lower left fountain pen","shortname":":pen_fountain:","category":"objects","emoji_order":"1916","aliases":[":lower_left_fountain_pen:"],"aliases_ascii":[],"keywords":["object","office","write"]},"pen_ballpoint":{"unicode":"1f58a","unicode_alt":"1f58a-fe0f","code_decimal":"🖊","name":"lower left ballpoint pen","shortname":":pen_ballpoint:","category":"objects","emoji_order":"1917","aliases":[":lower_left_ballpoint_pen:"],"aliases_ascii":[],"keywords":["object","office","write"]},"paintbrush":{"unicode":"1f58c","unicode_alt":"1f58c-fe0f","code_decimal":"🖌","name":"lower left paintbrush","shortname":":paintbrush:","category":"objects","emoji_order":"1918","aliases":[":lower_left_paintbrush:"],"aliases_ascii":[],"keywords":["object","office","write"]},"crayon":{"unicode":"1f58d","unicode_alt":"1f58d-fe0f","code_decimal":"🖍","name":"lower left crayon","shortname":":crayon:","category":"objects","emoji_order":"1919","aliases":[":lower_left_crayon:"],"aliases_ascii":[],"keywords":["object","office","write"]},"pencil":{"unicode":"1f4dd","unicode_alt":"","code_decimal":"📝","name":"memo","shortname":":pencil:","category":"objects","emoji_order":"1920","aliases":[],"aliases_ascii":[],"keywords":["work","office","write"]},"briefcase":{"unicode":"1f4bc","unicode_alt":"","code_decimal":"💼","name":"briefcase","shortname":":briefcase:","category":"people","emoji_order":"1921","aliases":[],"aliases_ascii":[],"keywords":["bag","work","accessories","nutcase","job"]},"file_folder":{"unicode":"1f4c1","unicode_alt":"","code_decimal":"📁","name":"file folder","shortname":":file_folder:","category":"objects","emoji_order":"1922","aliases":[],"aliases_ascii":[],"keywords":["work","office"]},"open_file_folder":{"unicode":"1f4c2","unicode_alt":"","code_decimal":"📂","name":"open file folder","shortname":":open_file_folder:","category":"objects","emoji_order":"1923","aliases":[],"aliases_ascii":[],"keywords":["work","office"]},"dividers":{"unicode":"1f5c2","unicode_alt":"1f5c2-fe0f","code_decimal":"🗂","name":"card index dividers","shortname":":dividers:","category":"objects","emoji_order":"1924","aliases":[":card_index_dividers:"],"aliases_ascii":[],"keywords":["work","office"]},"date":{"unicode":"1f4c5","unicode_alt":"","code_decimal":"📅","name":"calendar","shortname":":date:","category":"objects","emoji_order":"1925","aliases":[],"aliases_ascii":[],"keywords":["object","office"]},"calendar":{"unicode":"1f4c6","unicode_alt":"","code_decimal":"📆","name":"tear-off calendar","shortname":":calendar:","category":"objects","emoji_order":"1926","aliases":[],"aliases_ascii":[],"keywords":["object","office"]},"notepad_spiral":{"unicode":"1f5d2","unicode_alt":"1f5d2-fe0f","code_decimal":"🗒","name":"spiral note pad","shortname":":notepad_spiral:","category":"objects","emoji_order":"1927","aliases":[":spiral_note_pad:"],"aliases_ascii":[],"keywords":["work","office","write"]},"calendar_spiral":{"unicode":"1f5d3","unicode_alt":"1f5d3-fe0f","code_decimal":"🗓","name":"spiral calendar pad","shortname":":calendar_spiral:","category":"objects","emoji_order":"1928","aliases":[":spiral_calendar_pad:"],"aliases_ascii":[],"keywords":["object","office"]},"card_index":{"unicode":"1f4c7","unicode_alt":"","code_decimal":"📇","name":"card index","shortname":":card_index:","category":"objects","emoji_order":"1929","aliases":[],"aliases_ascii":[],"keywords":["object","work","office"]},"chart_with_upwards_trend":{"unicode":"1f4c8","unicode_alt":"","code_decimal":"📈","name":"chart with upwards trend","shortname":":chart_with_upwards_trend:","category":"objects","emoji_order":"1930","aliases":[],"aliases_ascii":[],"keywords":["work","office"]},"chart_with_downwards_trend":{"unicode":"1f4c9","unicode_alt":"","code_decimal":"📉","name":"chart with downwards trend","shortname":":chart_with_downwards_trend:","category":"objects","emoji_order":"1931","aliases":[],"aliases_ascii":[],"keywords":["work","office"]},"bar_chart":{"unicode":"1f4ca","unicode_alt":"","code_decimal":"📊","name":"bar chart","shortname":":bar_chart:","category":"objects","emoji_order":"1932","aliases":[],"aliases_ascii":[],"keywords":["work","office"]},"clipboard":{"unicode":"1f4cb","unicode_alt":"","code_decimal":"📋","name":"clipboard","shortname":":clipboard:","category":"objects","emoji_order":"1933","aliases":[],"aliases_ascii":[],"keywords":["object","work","office","write"]},"pushpin":{"unicode":"1f4cc","unicode_alt":"","code_decimal":"📌","name":"pushpin","shortname":":pushpin:","category":"objects","emoji_order":"1934","aliases":[],"aliases_ascii":[],"keywords":["object","office"]},"round_pushpin":{"unicode":"1f4cd","unicode_alt":"","code_decimal":"📍","name":"round pushpin","shortname":":round_pushpin:","category":"objects","emoji_order":"1935","aliases":[],"aliases_ascii":[],"keywords":["object","office"]},"paperclip":{"unicode":"1f4ce","unicode_alt":"","code_decimal":"📎","name":"paperclip","shortname":":paperclip:","category":"objects","emoji_order":"1936","aliases":[],"aliases_ascii":[],"keywords":["object","work","office"]},"paperclips":{"unicode":"1f587","unicode_alt":"1f587-fe0f","code_decimal":"🖇","name":"linked paperclips","shortname":":paperclips:","category":"objects","emoji_order":"1937","aliases":[":linked_paperclips:"],"aliases_ascii":[],"keywords":["object","work","office"]},"straight_ruler":{"unicode":"1f4cf","unicode_alt":"","code_decimal":"📏","name":"straight ruler","shortname":":straight_ruler:","category":"objects","emoji_order":"1938","aliases":[],"aliases_ascii":[],"keywords":["object","tool","office"]},"triangular_ruler":{"unicode":"1f4d0","unicode_alt":"","code_decimal":"📐","name":"triangular ruler","shortname":":triangular_ruler:","category":"objects","emoji_order":"1939","aliases":[],"aliases_ascii":[],"keywords":["object","tool","office"]},"scissors":{"unicode":"2702","unicode_alt":"2702-fe0f","code_decimal":"✂","name":"black scissors","shortname":":scissors:","category":"objects","emoji_order":"1940","aliases":[],"aliases_ascii":[],"keywords":["object","tool","weapon","office"]},"card_box":{"unicode":"1f5c3","unicode_alt":"1f5c3-fe0f","code_decimal":"🗃","name":"card file box","shortname":":card_box:","category":"objects","emoji_order":"1941","aliases":[":card_file_box:"],"aliases_ascii":[],"keywords":["object","work","office"]},"file_cabinet":{"unicode":"1f5c4","unicode_alt":"1f5c4-fe0f","code_decimal":"🗄","name":"file cabinet","shortname":":file_cabinet:","category":"objects","emoji_order":"1942","aliases":[],"aliases_ascii":[],"keywords":["object","work","office"]},"wastebasket":{"unicode":"1f5d1","unicode_alt":"1f5d1-fe0f","code_decimal":"🗑","name":"wastebasket","shortname":":wastebasket:","category":"objects","emoji_order":"1943","aliases":[],"aliases_ascii":[],"keywords":["object","work"]},"lock":{"unicode":"1f512","unicode_alt":"","code_decimal":"🔒","name":"lock","shortname":":lock:","category":"objects","emoji_order":"1944","aliases":[],"aliases_ascii":[],"keywords":["object","lock"]},"unlock":{"unicode":"1f513","unicode_alt":"","code_decimal":"🔓","name":"open lock","shortname":":unlock:","category":"objects","emoji_order":"1945","aliases":[],"aliases_ascii":[],"keywords":["object","lock"]},"lock_with_ink_pen":{"unicode":"1f50f","unicode_alt":"","code_decimal":"🔏","name":"lock with ink pen","shortname":":lock_with_ink_pen:","category":"objects","emoji_order":"1946","aliases":[],"aliases_ascii":[],"keywords":["object","lock"]},"closed_lock_with_key":{"unicode":"1f510","unicode_alt":"","code_decimal":"🔐","name":"closed lock with key","shortname":":closed_lock_with_key:","category":"objects","emoji_order":"1947","aliases":[],"aliases_ascii":[],"keywords":["object","lock"]},"key":{"unicode":"1f511","unicode_alt":"","code_decimal":"🔑","name":"key","shortname":":key:","category":"objects","emoji_order":"1948","aliases":[],"aliases_ascii":[],"keywords":["object","lock"]},"key2":{"unicode":"1f5dd","unicode_alt":"1f5dd-fe0f","code_decimal":"🗝","name":"old key","shortname":":key2:","category":"objects","emoji_order":"1949","aliases":[":old_key:"],"aliases_ascii":[],"keywords":["object","lock"]},"hammer":{"unicode":"1f528","unicode_alt":"","code_decimal":"🔨","name":"hammer","shortname":":hammer:","category":"objects","emoji_order":"1950","aliases":[],"aliases_ascii":[],"keywords":["object","tool","weapon"]},"pick":{"unicode":"26cf","unicode_alt":"26cf-fe0f","code_decimal":"⛏","name":"pick","shortname":":pick:","category":"objects","emoji_order":"1951","aliases":[],"aliases_ascii":[],"keywords":["object","tool","weapon"]},"hammer_pick":{"unicode":"2692","unicode_alt":"2692-fe0f","code_decimal":"⚒","name":"hammer and pick","shortname":":hammer_pick:","category":"objects","emoji_order":"1952","aliases":[":hammer_and_pick:"],"aliases_ascii":[],"keywords":["object","tool","weapon"]},"tools":{"unicode":"1f6e0","unicode_alt":"1f6e0-fe0f","code_decimal":"🛠","name":"hammer and wrench","shortname":":tools:","category":"objects","emoji_order":"1953","aliases":[":hammer_and_wrench:"],"aliases_ascii":[],"keywords":["object","tool"]},"dagger":{"unicode":"1f5e1","unicode_alt":"1f5e1-fe0f","code_decimal":"🗡","name":"dagger knife","shortname":":dagger:","category":"objects","emoji_order":"1954","aliases":[":dagger_knife:"],"aliases_ascii":[],"keywords":["object","weapon"]},"crossed_swords":{"unicode":"2694","unicode_alt":"2694-fe0f","code_decimal":"⚔","name":"crossed swords","shortname":":crossed_swords:","category":"objects","emoji_order":"1955","aliases":[],"aliases_ascii":[],"keywords":["object","weapon"]},"gun":{"unicode":"1f52b","unicode_alt":"","code_decimal":"🔫","name":"pistol","shortname":":gun:","category":"objects","emoji_order":"1956","aliases":[],"aliases_ascii":[],"keywords":["object","weapon","dead","gun","sarcastic"]},"bow_and_arrow":{"unicode":"1f3f9","unicode_alt":"","code_decimal":"🏹","name":"bow and arrow","shortname":":bow_and_arrow:","category":"activity","emoji_order":"1957","aliases":[":archery:"],"aliases_ascii":[],"keywords":["weapon","sport"]},"shield":{"unicode":"1f6e1","unicode_alt":"1f6e1-fe0f","code_decimal":"🛡","name":"shield","shortname":":shield:","category":"objects","emoji_order":"1958","aliases":[],"aliases_ascii":[],"keywords":["object"]},"wrench":{"unicode":"1f527","unicode_alt":"","code_decimal":"🔧","name":"wrench","shortname":":wrench:","category":"objects","emoji_order":"1959","aliases":[],"aliases_ascii":[],"keywords":["object","tool"]},"nut_and_bolt":{"unicode":"1f529","unicode_alt":"","code_decimal":"🔩","name":"nut and bolt","shortname":":nut_and_bolt:","category":"objects","emoji_order":"1960","aliases":[],"aliases_ascii":[],"keywords":["object","tool","nutcase"]},"gear":{"unicode":"2699","unicode_alt":"2699-fe0f","code_decimal":"⚙","name":"gear","shortname":":gear:","category":"objects","emoji_order":"1961","aliases":[],"aliases_ascii":[],"keywords":["object","tool"]},"compression":{"unicode":"1f5dc","unicode_alt":"1f5dc-fe0f","code_decimal":"🗜","name":"compression","shortname":":compression:","category":"objects","emoji_order":"1962","aliases":[],"aliases_ascii":[],"keywords":[]},"alembic":{"unicode":"2697","unicode_alt":"2697-fe0f","code_decimal":"⚗","name":"alembic","shortname":":alembic:","category":"objects","emoji_order":"1963","aliases":[],"aliases_ascii":[],"keywords":["object","science"]},"scales":{"unicode":"2696","unicode_alt":"2696-fe0f","code_decimal":"⚖","name":"scales","shortname":":scales:","category":"objects","emoji_order":"1964","aliases":[],"aliases_ascii":[],"keywords":["object"]},"link":{"unicode":"1f517","unicode_alt":"","code_decimal":"🔗","name":"link symbol","shortname":":link:","category":"objects","emoji_order":"1965","aliases":[],"aliases_ascii":[],"keywords":["symbol","office"]},"chains":{"unicode":"26d3","unicode_alt":"26d3-fe0f","code_decimal":"⛓","name":"chains","shortname":":chains:","category":"objects","emoji_order":"1966","aliases":[],"aliases_ascii":[],"keywords":["object","tool"]},"syringe":{"unicode":"1f489","unicode_alt":"","code_decimal":"💉","name":"syringe","shortname":":syringe:","category":"objects","emoji_order":"1967","aliases":[],"aliases_ascii":[],"keywords":["object","weapon","health","drugs"]},"pill":{"unicode":"1f48a","unicode_alt":"","code_decimal":"💊","name":"pill","shortname":":pill:","category":"objects","emoji_order":"1968","aliases":[],"aliases_ascii":[],"keywords":["object","health","drugs"]},"smoking":{"unicode":"1f6ac","unicode_alt":"","code_decimal":"🚬","name":"smoking symbol","shortname":":smoking:","category":"objects","emoji_order":"1969","aliases":[],"aliases_ascii":[],"keywords":["symbol","drugs","smoking"]},"coffin":{"unicode":"26b0","unicode_alt":"26b0-fe0f","code_decimal":"⚰","name":"coffin","shortname":":coffin:","category":"objects","emoji_order":"1970","aliases":[],"aliases_ascii":[],"keywords":["object","dead","rip"]},"urn":{"unicode":"26b1","unicode_alt":"26b1-fe0f","code_decimal":"⚱","name":"funeral urn","shortname":":urn:","category":"objects","emoji_order":"1971","aliases":[":funeral_urn:"],"aliases_ascii":[],"keywords":["object","dead","rip"]},"moyai":{"unicode":"1f5ff","unicode_alt":"","code_decimal":"🗿","name":"moyai","shortname":":moyai:","category":"objects","emoji_order":"1972","aliases":[],"aliases_ascii":[],"keywords":["travel","vacation"]},"oil":{"unicode":"1f6e2","unicode_alt":"1f6e2-fe0f","code_decimal":"🛢","name":"oil drum","shortname":":oil:","category":"objects","emoji_order":"1973","aliases":[":oil_drum:"],"aliases_ascii":[],"keywords":["object"]},"crystal_ball":{"unicode":"1f52e","unicode_alt":"","code_decimal":"🔮","name":"crystal ball","shortname":":crystal_ball:","category":"objects","emoji_order":"1974","aliases":[],"aliases_ascii":[],"keywords":["object","ball"]},"shopping_cart":{"unicode":"1f6d2","unicode_alt":"","code_decimal":"🛒","name":"shopping trolley","shortname":":shopping_cart:","category":"objects","emoji_order":"1975","aliases":[":shopping_trolley:"],"aliases_ascii":[],"keywords":[]},"atm":{"unicode":"1f3e7","unicode_alt":"","code_decimal":"🏧","name":"automated teller machine","shortname":":atm:","category":"symbols","emoji_order":"1976","aliases":[],"aliases_ascii":[],"keywords":["electronics","symbol","money"]},"put_litter_in_its_place":{"unicode":"1f6ae","unicode_alt":"","code_decimal":"🚮","name":"put litter in its place symbol","shortname":":put_litter_in_its_place:","category":"symbols","emoji_order":"1977","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"potable_water":{"unicode":"1f6b0","unicode_alt":"","code_decimal":"🚰","name":"potable water symbol","shortname":":potable_water:","category":"symbols","emoji_order":"1978","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"wheelchair":{"unicode":"267f","unicode_alt":"267f-fe0f","code_decimal":"♿","name":"wheelchair symbol","shortname":":wheelchair:","category":"symbols","emoji_order":"1979","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"mens":{"unicode":"1f6b9","unicode_alt":"","code_decimal":"🚹","name":"mens symbol","shortname":":mens:","category":"symbols","emoji_order":"1980","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"womens":{"unicode":"1f6ba","unicode_alt":"","code_decimal":"🚺","name":"womens symbol","shortname":":womens:","category":"symbols","emoji_order":"1981","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"restroom":{"unicode":"1f6bb","unicode_alt":"","code_decimal":"🚻","name":"restroom","shortname":":restroom:","category":"symbols","emoji_order":"1982","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"baby_symbol":{"unicode":"1f6bc","unicode_alt":"","code_decimal":"🚼","name":"baby symbol","shortname":":baby_symbol:","category":"symbols","emoji_order":"1983","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"wc":{"unicode":"1f6be","unicode_alt":"","code_decimal":"🚾","name":"water closet","shortname":":wc:","category":"symbols","emoji_order":"1984","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"passport_control":{"unicode":"1f6c2","unicode_alt":"","code_decimal":"🛂","name":"passport control","shortname":":passport_control:","category":"symbols","emoji_order":"1985","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"customs":{"unicode":"1f6c3","unicode_alt":"","code_decimal":"🛃","name":"customs","shortname":":customs:","category":"symbols","emoji_order":"1986","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"baggage_claim":{"unicode":"1f6c4","unicode_alt":"","code_decimal":"🛄","name":"baggage claim","shortname":":baggage_claim:","category":"symbols","emoji_order":"1987","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"left_luggage":{"unicode":"1f6c5","unicode_alt":"","code_decimal":"🛅","name":"left luggage","shortname":":left_luggage:","category":"symbols","emoji_order":"1988","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"warning":{"unicode":"26a0","unicode_alt":"26a0-fe0f","code_decimal":"⚠","name":"warning sign","shortname":":warning:","category":"symbols","emoji_order":"1989","aliases":[],"aliases_ascii":[],"keywords":["symbol","punctuation"]},"children_crossing":{"unicode":"1f6b8","unicode_alt":"","code_decimal":"🚸","name":"children crossing","shortname":":children_crossing:","category":"symbols","emoji_order":"1990","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"no_entry":{"unicode":"26d4","unicode_alt":"26d4-fe0f","code_decimal":"⛔","name":"no entry","shortname":":no_entry:","category":"symbols","emoji_order":"1991","aliases":[],"aliases_ascii":[],"keywords":["symbol","circle"]},"no_entry_sign":{"unicode":"1f6ab","unicode_alt":"","code_decimal":"🚫","name":"no entry sign","shortname":":no_entry_sign:","category":"symbols","emoji_order":"1992","aliases":[],"aliases_ascii":[],"keywords":["symbol","circle"]},"no_bicycles":{"unicode":"1f6b3","unicode_alt":"","code_decimal":"🚳","name":"no bicycles","shortname":":no_bicycles:","category":"symbols","emoji_order":"1993","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"no_smoking":{"unicode":"1f6ad","unicode_alt":"","code_decimal":"🚭","name":"no smoking symbol","shortname":":no_smoking:","category":"symbols","emoji_order":"1994","aliases":[],"aliases_ascii":[],"keywords":["symbol","smoking"]},"do_not_litter":{"unicode":"1f6af","unicode_alt":"","code_decimal":"🚯","name":"do not litter symbol","shortname":":do_not_litter:","category":"symbols","emoji_order":"1995","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"non-potable_water":{"unicode":"1f6b1","unicode_alt":"","code_decimal":"🚱","name":"non-potable water symbol","shortname":":non-potable_water:","category":"symbols","emoji_order":"1996","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"no_pedestrians":{"unicode":"1f6b7","unicode_alt":"","code_decimal":"🚷","name":"no pedestrians","shortname":":no_pedestrians:","category":"symbols","emoji_order":"1997","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"no_mobile_phones":{"unicode":"1f4f5","unicode_alt":"","code_decimal":"📵","name":"no mobile phones","shortname":":no_mobile_phones:","category":"symbols","emoji_order":"1998","aliases":[],"aliases_ascii":[],"keywords":["symbol","phone"]},"underage":{"unicode":"1f51e","unicode_alt":"","code_decimal":"🔞","name":"no one under eighteen symbol","shortname":":underage:","category":"symbols","emoji_order":"1999","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"radioactive":{"unicode":"2622","unicode_alt":"2622-fe0f","code_decimal":"☢","name":"radioactive sign","shortname":":radioactive:","category":"symbols","emoji_order":"2000","aliases":[":radioactive_sign:"],"aliases_ascii":[],"keywords":["symbol","science"]},"biohazard":{"unicode":"2623","unicode_alt":"2623-fe0f","code_decimal":"☣","name":"biohazard sign","shortname":":biohazard:","category":"symbols","emoji_order":"2001","aliases":[":biohazard_sign:"],"aliases_ascii":[],"keywords":["symbol","science"]},"arrow_up":{"unicode":"2b06","unicode_alt":"2b06-fe0f","code_decimal":"⬆","name":"upwards black arrow","shortname":":arrow_up:","category":"symbols","emoji_order":"2002","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_upper_right":{"unicode":"2197","unicode_alt":"2197-fe0f","code_decimal":"↗","name":"north east arrow","shortname":":arrow_upper_right:","category":"symbols","emoji_order":"2003","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_right":{"unicode":"27a1","unicode_alt":"27a1-fe0f","code_decimal":"➡","name":"black rightwards arrow","shortname":":arrow_right:","category":"symbols","emoji_order":"2004","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_lower_right":{"unicode":"2198","unicode_alt":"2198-fe0f","code_decimal":"↘","name":"south east arrow","shortname":":arrow_lower_right:","category":"symbols","emoji_order":"2005","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_down":{"unicode":"2b07","unicode_alt":"2b07-fe0f","code_decimal":"⬇","name":"downwards black arrow","shortname":":arrow_down:","category":"symbols","emoji_order":"2006","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_lower_left":{"unicode":"2199","unicode_alt":"2199-fe0f","code_decimal":"↙","name":"south west arrow","shortname":":arrow_lower_left:","category":"symbols","emoji_order":"2007","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_left":{"unicode":"2b05","unicode_alt":"2b05-fe0f","code_decimal":"⬅","name":"leftwards black arrow","shortname":":arrow_left:","category":"symbols","emoji_order":"2008","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_upper_left":{"unicode":"2196","unicode_alt":"2196-fe0f","code_decimal":"↖","name":"north west arrow","shortname":":arrow_upper_left:","category":"symbols","emoji_order":"2009","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_up_down":{"unicode":"2195","unicode_alt":"2195-fe0f","code_decimal":"↕","name":"up down arrow","shortname":":arrow_up_down:","category":"symbols","emoji_order":"2010","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"left_right_arrow":{"unicode":"2194","unicode_alt":"2194-fe0f","code_decimal":"↔","name":"left right arrow","shortname":":left_right_arrow:","category":"symbols","emoji_order":"2011","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"leftwards_arrow_with_hook":{"unicode":"21a9","unicode_alt":"21a9-fe0f","code_decimal":"↩","name":"leftwards arrow with hook","shortname":":leftwards_arrow_with_hook:","category":"symbols","emoji_order":"2012","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_right_hook":{"unicode":"21aa","unicode_alt":"21aa-fe0f","code_decimal":"↪","name":"rightwards arrow with hook","shortname":":arrow_right_hook:","category":"symbols","emoji_order":"2013","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_heading_up":{"unicode":"2934","unicode_alt":"2934-fe0f","code_decimal":"⤴","name":"arrow pointing rightwards then curving upwards","shortname":":arrow_heading_up:","category":"symbols","emoji_order":"2014","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_heading_down":{"unicode":"2935","unicode_alt":"2935-fe0f","code_decimal":"⤵","name":"arrow pointing rightwards then curving downwards","shortname":":arrow_heading_down:","category":"symbols","emoji_order":"2015","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrows_clockwise":{"unicode":"1f503","unicode_alt":"","code_decimal":"🔃","name":"clockwise downwards and upwards open circle arrows","shortname":":arrows_clockwise:","category":"symbols","emoji_order":"2016","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrows_counterclockwise":{"unicode":"1f504","unicode_alt":"","code_decimal":"🔄","name":"anticlockwise downwards and upwards open circle arrows","shortname":":arrows_counterclockwise:","category":"symbols","emoji_order":"2017","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"back":{"unicode":"1f519","unicode_alt":"","code_decimal":"🔙","name":"back with leftwards arrow above","shortname":":back:","category":"symbols","emoji_order":"2018","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"end":{"unicode":"1f51a","unicode_alt":"","code_decimal":"🔚","name":"end with leftwards arrow above","shortname":":end:","category":"symbols","emoji_order":"2019","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"on":{"unicode":"1f51b","unicode_alt":"","code_decimal":"🔛","name":"on with exclamation mark with left right arrow abo","shortname":":on:","category":"symbols","emoji_order":"2020","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"soon":{"unicode":"1f51c","unicode_alt":"","code_decimal":"🔜","name":"soon with rightwards arrow above","shortname":":soon:","category":"symbols","emoji_order":"2021","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"top":{"unicode":"1f51d","unicode_alt":"","code_decimal":"🔝","name":"top with upwards arrow above","shortname":":top:","category":"symbols","emoji_order":"2022","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"place_of_worship":{"unicode":"1f6d0","unicode_alt":"","code_decimal":"🛐","name":"place of worship","shortname":":place_of_worship:","category":"symbols","emoji_order":"2023","aliases":[":worship_symbol:"],"aliases_ascii":[],"keywords":["religion","symbol","pray"]},"atom":{"unicode":"269b","unicode_alt":"269b-fe0f","code_decimal":"⚛","name":"atom symbol","shortname":":atom:","category":"symbols","emoji_order":"2024","aliases":[":atom_symbol:"],"aliases_ascii":[],"keywords":["symbol","science"]},"om_symbol":{"unicode":"1f549","unicode_alt":"1f549-fe0f","code_decimal":"🕉","name":"om symbol","shortname":":om_symbol:","category":"symbols","emoji_order":"2025","aliases":[],"aliases_ascii":[],"keywords":["religion","symbol"]},"star_of_david":{"unicode":"2721","unicode_alt":"2721-fe0f","code_decimal":"✡","name":"star of david","shortname":":star_of_david:","category":"symbols","emoji_order":"2026","aliases":[],"aliases_ascii":[],"keywords":["religion","jew","star","symbol"]},"wheel_of_dharma":{"unicode":"2638","unicode_alt":"2638-fe0f","code_decimal":"☸","name":"wheel of dharma","shortname":":wheel_of_dharma:","category":"symbols","emoji_order":"2027","aliases":[],"aliases_ascii":[],"keywords":["religion","symbol"]},"yin_yang":{"unicode":"262f","unicode_alt":"262f-fe0f","code_decimal":"☯","name":"yin yang","shortname":":yin_yang:","category":"symbols","emoji_order":"2028","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"cross":{"unicode":"271d","unicode_alt":"271d-fe0f","code_decimal":"✝","name":"latin cross","shortname":":cross:","category":"symbols","emoji_order":"2029","aliases":[":latin_cross:"],"aliases_ascii":[],"keywords":["religion","symbol"]},"orthodox_cross":{"unicode":"2626","unicode_alt":"2626-fe0f","code_decimal":"☦","name":"orthodox cross","shortname":":orthodox_cross:","category":"symbols","emoji_order":"2030","aliases":[],"aliases_ascii":[],"keywords":["religion","symbol"]},"star_and_crescent":{"unicode":"262a","unicode_alt":"262a-fe0f","code_decimal":"☪","name":"star and crescent","shortname":":star_and_crescent:","category":"symbols","emoji_order":"2031","aliases":[],"aliases_ascii":[],"keywords":["religion","symbol"]},"peace":{"unicode":"262e","unicode_alt":"262e-fe0f","code_decimal":"☮","name":"peace symbol","shortname":":peace:","category":"symbols","emoji_order":"2032","aliases":[":peace_symbol:"],"aliases_ascii":[],"keywords":["symbol","peace","drugs"]},"menorah":{"unicode":"1f54e","unicode_alt":"","code_decimal":"🕎","name":"menorah with nine branches","shortname":":menorah:","category":"symbols","emoji_order":"2033","aliases":[],"aliases_ascii":[],"keywords":["religion","object","jew","symbol","holidays"]},"six_pointed_star":{"unicode":"1f52f","unicode_alt":"","code_decimal":"🔯","name":"six pointed star with middle dot","shortname":":six_pointed_star:","category":"symbols","emoji_order":"2034","aliases":[],"aliases_ascii":[],"keywords":["religion","jew","star","symbol"]},"aries":{"unicode":"2648","unicode_alt":"2648-fe0f","code_decimal":"♈","name":"aries","shortname":":aries:","category":"symbols","emoji_order":"2035","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"taurus":{"unicode":"2649","unicode_alt":"2649-fe0f","code_decimal":"♉","name":"taurus","shortname":":taurus:","category":"symbols","emoji_order":"2036","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"gemini":{"unicode":"264a","unicode_alt":"264a-fe0f","code_decimal":"♊","name":"gemini","shortname":":gemini:","category":"symbols","emoji_order":"2037","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"cancer":{"unicode":"264b","unicode_alt":"264b-fe0f","code_decimal":"♋","name":"cancer","shortname":":cancer:","category":"symbols","emoji_order":"2038","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"leo":{"unicode":"264c","unicode_alt":"264c-fe0f","code_decimal":"♌","name":"leo","shortname":":leo:","category":"symbols","emoji_order":"2039","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"virgo":{"unicode":"264d","unicode_alt":"264d-fe0f","code_decimal":"♍","name":"virgo","shortname":":virgo:","category":"symbols","emoji_order":"2040","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"libra":{"unicode":"264e","unicode_alt":"264e-fe0f","code_decimal":"♎","name":"libra","shortname":":libra:","category":"symbols","emoji_order":"2041","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"scorpius":{"unicode":"264f","unicode_alt":"264f-fe0f","code_decimal":"♏","name":"scorpius","shortname":":scorpius:","category":"symbols","emoji_order":"2042","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"sagittarius":{"unicode":"2650","unicode_alt":"2650-fe0f","code_decimal":"♐","name":"sagittarius","shortname":":sagittarius:","category":"symbols","emoji_order":"2043","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"capricorn":{"unicode":"2651","unicode_alt":"2651-fe0f","code_decimal":"♑","name":"capricorn","shortname":":capricorn:","category":"symbols","emoji_order":"2044","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"aquarius":{"unicode":"2652","unicode_alt":"2652-fe0f","code_decimal":"♒","name":"aquarius","shortname":":aquarius:","category":"symbols","emoji_order":"2045","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"pisces":{"unicode":"2653","unicode_alt":"2653-fe0f","code_decimal":"♓","name":"pisces","shortname":":pisces:","category":"symbols","emoji_order":"2046","aliases":[],"aliases_ascii":[],"keywords":["zodiac","symbol"]},"ophiuchus":{"unicode":"26ce","unicode_alt":"","code_decimal":"⛎","name":"ophiuchus","shortname":":ophiuchus:","category":"symbols","emoji_order":"2047","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"twisted_rightwards_arrows":{"unicode":"1f500","unicode_alt":"","code_decimal":"🔀","name":"twisted rightwards arrows","shortname":":twisted_rightwards_arrows:","category":"symbols","emoji_order":"2048","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"repeat":{"unicode":"1f501","unicode_alt":"","code_decimal":"🔁","name":"clockwise rightwards and leftwards open circle arrows","shortname":":repeat:","category":"symbols","emoji_order":"2049","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"repeat_one":{"unicode":"1f502","unicode_alt":"","code_decimal":"🔂","name":"clockwise rightwards and leftwards open circle arrows with circled one overlay","shortname":":repeat_one:","category":"symbols","emoji_order":"2050","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_forward":{"unicode":"25b6","unicode_alt":"25b6-fe0f","code_decimal":"▶","name":"black right-pointing triangle","shortname":":arrow_forward:","category":"symbols","emoji_order":"2051","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol","triangle"]},"fast_forward":{"unicode":"23e9","unicode_alt":"","code_decimal":"⏩","name":"black right-pointing double triangle","shortname":":fast_forward:","category":"symbols","emoji_order":"2052","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"track_next":{"unicode":"23ed","unicode_alt":"23ed-fe0f","code_decimal":"⏭","name":"black right-pointing double triangle with vertical bar","shortname":":track_next:","category":"symbols","emoji_order":"2053","aliases":[":next_track:"],"aliases_ascii":[],"keywords":["arrow","symbol"]},"play_pause":{"unicode":"23ef","unicode_alt":"23ef-fe0f","code_decimal":"⏯","name":"black right-pointing double triangle with double vertical bar","shortname":":play_pause:","category":"symbols","emoji_order":"2054","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_backward":{"unicode":"25c0","unicode_alt":"25c0-fe0f","code_decimal":"◀","name":"black left-pointing triangle","shortname":":arrow_backward:","category":"symbols","emoji_order":"2055","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol","triangle"]},"rewind":{"unicode":"23ea","unicode_alt":"","code_decimal":"⏪","name":"black left-pointing double triangle","shortname":":rewind:","category":"symbols","emoji_order":"2056","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"track_previous":{"unicode":"23ee","unicode_alt":"23ee-fe0f","code_decimal":"⏮","name":"black left-pointing double triangle with vertical bar","shortname":":track_previous:","category":"symbols","emoji_order":"2057","aliases":[":previous_track:"],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_up_small":{"unicode":"1f53c","unicode_alt":"","code_decimal":"🔼","name":"up-pointing small red triangle","shortname":":arrow_up_small:","category":"symbols","emoji_order":"2058","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol","triangle"]},"arrow_double_up":{"unicode":"23eb","unicode_alt":"","code_decimal":"⏫","name":"black up-pointing double triangle","shortname":":arrow_double_up:","category":"symbols","emoji_order":"2059","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"arrow_down_small":{"unicode":"1f53d","unicode_alt":"","code_decimal":"🔽","name":"down-pointing small red triangle","shortname":":arrow_down_small:","category":"symbols","emoji_order":"2060","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol","triangle"]},"arrow_double_down":{"unicode":"23ec","unicode_alt":"","code_decimal":"⏬","name":"black down-pointing double triangle","shortname":":arrow_double_down:","category":"symbols","emoji_order":"2061","aliases":[],"aliases_ascii":[],"keywords":["arrow","symbol"]},"pause_button":{"unicode":"23f8","unicode_alt":"23f8-fe0f","code_decimal":"⏸","name":"double vertical bar","shortname":":pause_button:","category":"symbols","emoji_order":"2062","aliases":[":double_vertical_bar:"],"aliases_ascii":[],"keywords":["symbol"]},"stop_button":{"unicode":"23f9","unicode_alt":"23f9-fe0f","code_decimal":"⏹","name":"black square for stop","shortname":":stop_button:","category":"symbols","emoji_order":"2063","aliases":[],"aliases_ascii":[],"keywords":["symbol","square"]},"record_button":{"unicode":"23fa","unicode_alt":"23fa-fe0f","code_decimal":"⏺","name":"black circle for record","shortname":":record_button:","category":"symbols","emoji_order":"2064","aliases":[],"aliases_ascii":[],"keywords":["symbol","circle"]},"eject":{"unicode":"23cf","unicode_alt":"23cf-fe0f","code_decimal":"⏏","name":"eject symbol","shortname":":eject:","category":"symbols","emoji_order":"2065","aliases":[":eject_symbol:"],"aliases_ascii":[],"keywords":[]},"cinema":{"unicode":"1f3a6","unicode_alt":"","code_decimal":"🎦","name":"cinema","shortname":":cinema:","category":"symbols","emoji_order":"2066","aliases":[],"aliases_ascii":[],"keywords":["symbol","camera","movie"]},"low_brightness":{"unicode":"1f505","unicode_alt":"","code_decimal":"🔅","name":"low brightness symbol","shortname":":low_brightness:","category":"symbols","emoji_order":"2067","aliases":[],"aliases_ascii":[],"keywords":["symbol","sun"]},"high_brightness":{"unicode":"1f506","unicode_alt":"","code_decimal":"🔆","name":"high brightness symbol","shortname":":high_brightness:","category":"symbols","emoji_order":"2068","aliases":[],"aliases_ascii":[],"keywords":["symbol","sun"]},"signal_strength":{"unicode":"1f4f6","unicode_alt":"","code_decimal":"📶","name":"antenna with bars","shortname":":signal_strength:","category":"symbols","emoji_order":"2069","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"vibration_mode":{"unicode":"1f4f3","unicode_alt":"","code_decimal":"📳","name":"vibration mode","shortname":":vibration_mode:","category":"symbols","emoji_order":"2070","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"mobile_phone_off":{"unicode":"1f4f4","unicode_alt":"","code_decimal":"📴","name":"mobile phone off","shortname":":mobile_phone_off:","category":"symbols","emoji_order":"2071","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"recycle":{"unicode":"267b","unicode_alt":"267b-fe0f","code_decimal":"♻","name":"black universal recycling symbol","shortname":":recycle:","category":"symbols","emoji_order":"2072","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"name_badge":{"unicode":"1f4db","unicode_alt":"","code_decimal":"📛","name":"name badge","shortname":":name_badge:","category":"symbols","emoji_order":"2073","aliases":[],"aliases_ascii":[],"keywords":["work"]},"fleur-de-lis":{"unicode":"269c","unicode_alt":"269c-fe0f","code_decimal":"⚜","name":"fleur-de-lis","shortname":":fleur-de-lis:","category":"symbols","emoji_order":"2074","aliases":[],"aliases_ascii":[],"keywords":["object","symbol"]},"beginner":{"unicode":"1f530","unicode_alt":"","code_decimal":"🔰","name":"japanese symbol for beginner","shortname":":beginner:","category":"symbols","emoji_order":"2075","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"trident":{"unicode":"1f531","unicode_alt":"","code_decimal":"🔱","name":"trident emblem","shortname":":trident:","category":"symbols","emoji_order":"2076","aliases":[],"aliases_ascii":[],"keywords":["object","symbol"]},"o":{"unicode":"2b55","unicode_alt":"2b55-fe0f","code_decimal":"⭕","name":"heavy large circle","shortname":":o:","category":"symbols","emoji_order":"2077","aliases":[],"aliases_ascii":[],"keywords":["symbol","circle"]},"white_check_mark":{"unicode":"2705","unicode_alt":"","code_decimal":"✅","name":"white heavy check mark","shortname":":white_check_mark:","category":"symbols","emoji_order":"2078","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"ballot_box_with_check":{"unicode":"2611","unicode_alt":"2611-fe0f","code_decimal":"☑","name":"ballot box with check","shortname":":ballot_box_with_check:","category":"symbols","emoji_order":"2079","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"heavy_check_mark":{"unicode":"2714","unicode_alt":"2714-fe0f","code_decimal":"✔","name":"heavy check mark","shortname":":heavy_check_mark:","category":"symbols","emoji_order":"2080","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"heavy_multiplication_x":{"unicode":"2716","unicode_alt":"2716-fe0f","code_decimal":"✖","name":"heavy multiplication x","shortname":":heavy_multiplication_x:","category":"symbols","emoji_order":"2081","aliases":[],"aliases_ascii":[],"keywords":["math","symbol"]},"x":{"unicode":"274c","unicode_alt":"","code_decimal":"❌","name":"cross mark","shortname":":x:","category":"symbols","emoji_order":"2082","aliases":[],"aliases_ascii":[],"keywords":["symbol","sol"]},"negative_squared_cross_mark":{"unicode":"274e","unicode_alt":"","code_decimal":"❎","name":"negative squared cross mark","shortname":":negative_squared_cross_mark:","category":"symbols","emoji_order":"2083","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"heavy_plus_sign":{"unicode":"2795","unicode_alt":"","code_decimal":"➕","name":"heavy plus sign","shortname":":heavy_plus_sign:","category":"symbols","emoji_order":"2084","aliases":[],"aliases_ascii":[],"keywords":["math","symbol"]},"heavy_minus_sign":{"unicode":"2796","unicode_alt":"","code_decimal":"➖","name":"heavy minus sign","shortname":":heavy_minus_sign:","category":"symbols","emoji_order":"2088","aliases":[],"aliases_ascii":[],"keywords":["math","symbol"]},"heavy_division_sign":{"unicode":"2797","unicode_alt":"","code_decimal":"➗","name":"heavy division sign","shortname":":heavy_division_sign:","category":"symbols","emoji_order":"2089","aliases":[],"aliases_ascii":[],"keywords":["math","symbol"]},"curly_loop":{"unicode":"27b0","unicode_alt":"","code_decimal":"➰","name":"curly loop","shortname":":curly_loop:","category":"symbols","emoji_order":"2090","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"loop":{"unicode":"27bf","unicode_alt":"","code_decimal":"➿","name":"double curly loop","shortname":":loop:","category":"symbols","emoji_order":"2091","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"part_alternation_mark":{"unicode":"303d","unicode_alt":"303d-fe0f","code_decimal":"〽","name":"part alternation mark","shortname":":part_alternation_mark:","category":"symbols","emoji_order":"2092","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"eight_spoked_asterisk":{"unicode":"2733","unicode_alt":"2733-fe0f","code_decimal":"✳","name":"eight spoked asterisk","shortname":":eight_spoked_asterisk:","category":"symbols","emoji_order":"2093","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"eight_pointed_black_star":{"unicode":"2734","unicode_alt":"2734-fe0f","code_decimal":"✴","name":"eight pointed black star","shortname":":eight_pointed_black_star:","category":"symbols","emoji_order":"2094","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"sparkle":{"unicode":"2747","unicode_alt":"2747-fe0f","code_decimal":"❇","name":"sparkle","shortname":":sparkle:","category":"symbols","emoji_order":"2095","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"bangbang":{"unicode":"203c","unicode_alt":"203c-fe0f","code_decimal":"‼","name":"double exclamation mark","shortname":":bangbang:","category":"symbols","emoji_order":"2096","aliases":[],"aliases_ascii":[],"keywords":["symbol","punctuation"]},"interrobang":{"unicode":"2049","unicode_alt":"2049-fe0f","code_decimal":"⁉","name":"exclamation question mark","shortname":":interrobang:","category":"symbols","emoji_order":"2097","aliases":[],"aliases_ascii":[],"keywords":["symbol","punctuation"]},"question":{"unicode":"2753","unicode_alt":"","code_decimal":"❓","name":"black question mark ornament","shortname":":question:","category":"symbols","emoji_order":"2098","aliases":[],"aliases_ascii":[],"keywords":["symbol","punctuation","wth"]},"grey_question":{"unicode":"2754","unicode_alt":"","code_decimal":"❔","name":"white question mark ornament","shortname":":grey_question:","category":"symbols","emoji_order":"2099","aliases":[],"aliases_ascii":[],"keywords":["symbol","punctuation"]},"grey_exclamation":{"unicode":"2755","unicode_alt":"","code_decimal":"❕","name":"white exclamation mark ornament","shortname":":grey_exclamation:","category":"symbols","emoji_order":"2100","aliases":[],"aliases_ascii":[],"keywords":["symbol","punctuation"]},"exclamation":{"unicode":"2757","unicode_alt":"2757-fe0f","code_decimal":"❗","name":"heavy exclamation mark symbol","shortname":":exclamation:","category":"symbols","emoji_order":"2101","aliases":[],"aliases_ascii":[],"keywords":["symbol","punctuation"]},"wavy_dash":{"unicode":"3030","unicode_alt":"3030-fe0f","code_decimal":"〰","name":"wavy dash","shortname":":wavy_dash:","category":"symbols","emoji_order":"2102","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"copyright":{"unicode":"00a9","unicode_alt":"00a9-fe0f","code_decimal":"©","name":"copyright sign","shortname":":copyright:","category":"symbols","emoji_order":"2103","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"registered":{"unicode":"00ae","unicode_alt":"00ae-fe0f","code_decimal":"®","name":"registered sign","shortname":":registered:","category":"symbols","emoji_order":"2104","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"tm":{"unicode":"2122","unicode_alt":"2122-fe0f","code_decimal":"™","name":"trade mark sign","shortname":":tm:","category":"symbols","emoji_order":"2105","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"hash":{"unicode":"0023-20e3","unicode_alt":"0023-fe0f-20e3","code_decimal":"#⃣","name":"keycap number sign","shortname":":hash:","category":"symbols","emoji_order":"2106","aliases":[],"aliases_ascii":[],"keywords":["number","symbol"]},"asterisk":{"unicode":"002a-20e3","unicode_alt":"002a-fe0f-20e3","code_decimal":"*⃣","name":"keycap asterisk","shortname":":asterisk:","category":"symbols","emoji_order":"2107","aliases":[":keycap_asterisk:"],"aliases_ascii":[],"keywords":["symbol"]},"zero":{"unicode":"0030-20e3","unicode_alt":"0030-fe0f-20e3","code_decimal":"0⃣","name":"keycap digit zero","shortname":":zero:","category":"symbols","emoji_order":"2108","aliases":[],"aliases_ascii":[],"keywords":["number","math","symbol"]},"one":{"unicode":"0031-20e3","unicode_alt":"0031-fe0f-20e3","code_decimal":"1⃣","name":"keycap digit one","shortname":":one:","category":"symbols","emoji_order":"2109","aliases":[],"aliases_ascii":[],"keywords":["number","math","symbol"]},"two":{"unicode":"0032-20e3","unicode_alt":"0032-fe0f-20e3","code_decimal":"2⃣","name":"keycap digit two","shortname":":two:","category":"symbols","emoji_order":"2110","aliases":[],"aliases_ascii":[],"keywords":["number","math","symbol"]},"three":{"unicode":"0033-20e3","unicode_alt":"0033-fe0f-20e3","code_decimal":"3⃣","name":"keycap digit three","shortname":":three:","category":"symbols","emoji_order":"2111","aliases":[],"aliases_ascii":[],"keywords":["number","math","symbol"]},"four":{"unicode":"0034-20e3","unicode_alt":"0034-fe0f-20e3","code_decimal":"4⃣","name":"keycap digit four","shortname":":four:","category":"symbols","emoji_order":"2112","aliases":[],"aliases_ascii":[],"keywords":["number","math","symbol"]},"five":{"unicode":"0035-20e3","unicode_alt":"0035-fe0f-20e3","code_decimal":"5⃣","name":"keycap digit five","shortname":":five:","category":"symbols","emoji_order":"2113","aliases":[],"aliases_ascii":[],"keywords":["number","math","symbol"]},"six":{"unicode":"0036-20e3","unicode_alt":"0036-fe0f-20e3","code_decimal":"6⃣","name":"keycap digit six","shortname":":six:","category":"symbols","emoji_order":"2114","aliases":[],"aliases_ascii":[],"keywords":["number","math","symbol"]},"seven":{"unicode":"0037-20e3","unicode_alt":"0037-fe0f-20e3","code_decimal":"7⃣","name":"keycap digit seven","shortname":":seven:","category":"symbols","emoji_order":"2115","aliases":[],"aliases_ascii":[],"keywords":["number","math","symbol"]},"eight":{"unicode":"0038-20e3","unicode_alt":"0038-fe0f-20e3","code_decimal":"8⃣","name":"keycap digit eight","shortname":":eight:","category":"symbols","emoji_order":"2116","aliases":[],"aliases_ascii":[],"keywords":["number","math","symbol"]},"nine":{"unicode":"0039-20e3","unicode_alt":"0039-fe0f-20e3","code_decimal":"9⃣","name":"keycap digit nine","shortname":":nine:","category":"symbols","emoji_order":"2117","aliases":[],"aliases_ascii":[],"keywords":["number","math","symbol"]},"keycap_ten":{"unicode":"1f51f","unicode_alt":"","code_decimal":"🔟","name":"keycap ten","shortname":":keycap_ten:","category":"symbols","emoji_order":"2118","aliases":[],"aliases_ascii":[],"keywords":["number","math","symbol"]},"100":{"unicode":"1f4af","unicode_alt":"","code_decimal":"💯","name":"hundred points symbol","shortname":":100:","category":"symbols","emoji_order":"2119","aliases":[],"aliases_ascii":[],"keywords":["symbol","wow","win","perfect","parties"]},"capital_abcd":{"unicode":"1f520","unicode_alt":"","code_decimal":"🔠","name":"input symbol for latin capital letters","shortname":":capital_abcd:","category":"symbols","emoji_order":"2120","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"abcd":{"unicode":"1f521","unicode_alt":"","code_decimal":"🔡","name":"input symbol for latin small letters","shortname":":abcd:","category":"symbols","emoji_order":"2121","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"1234":{"unicode":"1f522","unicode_alt":"","code_decimal":"🔢","name":"input symbol for numbers","shortname":":1234:","category":"symbols","emoji_order":"2122","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"symbols":{"unicode":"1f523","unicode_alt":"","code_decimal":"🔣","name":"input symbol for symbols","shortname":":symbols:","category":"symbols","emoji_order":"2123","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"abc":{"unicode":"1f524","unicode_alt":"","code_decimal":"🔤","name":"input symbol for latin letters","shortname":":abc:","category":"symbols","emoji_order":"2124","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"a":{"unicode":"1f170","unicode_alt":"","code_decimal":"🅰","name":"negative squared latin capital letter a","shortname":":a:","category":"symbols","emoji_order":"2125","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"ab":{"unicode":"1f18e","unicode_alt":"","code_decimal":"🆎","name":"negative squared ab","shortname":":ab:","category":"symbols","emoji_order":"2126","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"b":{"unicode":"1f171","unicode_alt":"","code_decimal":"🅱","name":"negative squared latin capital letter b","shortname":":b:","category":"symbols","emoji_order":"2127","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"cl":{"unicode":"1f191","unicode_alt":"","code_decimal":"🆑","name":"squared cl","shortname":":cl:","category":"symbols","emoji_order":"2128","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"cool":{"unicode":"1f192","unicode_alt":"","code_decimal":"🆒","name":"squared cool","shortname":":cool:","category":"symbols","emoji_order":"2129","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"free":{"unicode":"1f193","unicode_alt":"","code_decimal":"🆓","name":"squared free","shortname":":free:","category":"symbols","emoji_order":"2130","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"information_source":{"unicode":"2139","unicode_alt":"2139-fe0f","code_decimal":"ℹ","name":"information source","shortname":":information_source:","category":"symbols","emoji_order":"2131","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"id":{"unicode":"1f194","unicode_alt":"","code_decimal":"🆔","name":"squared id","shortname":":id:","category":"symbols","emoji_order":"2132","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"m":{"unicode":"24c2","unicode_alt":"24c2-fe0f","code_decimal":"Ⓜ","name":"circled latin capital letter m","shortname":":m:","category":"symbols","emoji_order":"2133","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"new":{"unicode":"1f195","unicode_alt":"","code_decimal":"🆕","name":"squared new","shortname":":new:","category":"symbols","emoji_order":"2134","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"ng":{"unicode":"1f196","unicode_alt":"","code_decimal":"🆖","name":"squared ng","shortname":":ng:","category":"symbols","emoji_order":"2135","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"o2":{"unicode":"1f17e","unicode_alt":"","code_decimal":"🅾","name":"negative squared latin capital letter o","shortname":":o2:","category":"symbols","emoji_order":"2136","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"ok":{"unicode":"1f197","unicode_alt":"","code_decimal":"🆗","name":"squared ok","shortname":":ok:","category":"symbols","emoji_order":"2137","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"parking":{"unicode":"1f17f","unicode_alt":"1f17f-fe0f","code_decimal":"🅿","name":"negative squared latin capital letter p","shortname":":parking:","category":"symbols","emoji_order":"2138","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"sos":{"unicode":"1f198","unicode_alt":"","code_decimal":"🆘","name":"squared sos","shortname":":sos:","category":"symbols","emoji_order":"2139","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"up":{"unicode":"1f199","unicode_alt":"","code_decimal":"🆙","name":"squared up with exclamation mark","shortname":":up:","category":"symbols","emoji_order":"2140","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"vs":{"unicode":"1f19a","unicode_alt":"","code_decimal":"🆚","name":"squared vs","shortname":":vs:","category":"symbols","emoji_order":"2141","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"koko":{"unicode":"1f201","unicode_alt":"","code_decimal":"🈁","name":"squared katakana koko","shortname":":koko:","category":"symbols","emoji_order":"2142","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"sa":{"unicode":"1f202","unicode_alt":"1f202-fe0f","code_decimal":"🈂","name":"squared katakana sa","shortname":":sa:","category":"symbols","emoji_order":"2143","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"u6708":{"unicode":"1f237","unicode_alt":"1f237-fe0f","code_decimal":"🈷","name":"squared cjk unified ideograph-6708","shortname":":u6708:","category":"symbols","emoji_order":"2144","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"u6709":{"unicode":"1f236","unicode_alt":"","code_decimal":"🈶","name":"squared cjk unified ideograph-6709","shortname":":u6709:","category":"symbols","emoji_order":"2145","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"u6307":{"unicode":"1f22f","unicode_alt":"1f22f-fe0f","code_decimal":"🈯","name":"squared cjk unified ideograph-6307","shortname":":u6307:","category":"symbols","emoji_order":"2146","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"ideograph_advantage":{"unicode":"1f250","unicode_alt":"","code_decimal":"🉐","name":"circled ideograph advantage","shortname":":ideograph_advantage:","category":"symbols","emoji_order":"2147","aliases":[],"aliases_ascii":[],"keywords":["japan","symbol"]},"u5272":{"unicode":"1f239","unicode_alt":"","code_decimal":"🈹","name":"squared cjk unified ideograph-5272","shortname":":u5272:","category":"symbols","emoji_order":"2148","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"u7121":{"unicode":"1f21a","unicode_alt":"1f21a-fe0f","code_decimal":"🈚","name":"squared cjk unified ideograph-7121","shortname":":u7121:","category":"symbols","emoji_order":"2149","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"u7981":{"unicode":"1f232","unicode_alt":"","code_decimal":"🈲","name":"squared cjk unified ideograph-7981","shortname":":u7981:","category":"symbols","emoji_order":"2150","aliases":[],"aliases_ascii":[],"keywords":["japan","symbol"]},"accept":{"unicode":"1f251","unicode_alt":"","code_decimal":"🉑","name":"circled ideograph accept","shortname":":accept:","category":"symbols","emoji_order":"2151","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"u7533":{"unicode":"1f238","unicode_alt":"","code_decimal":"🈸","name":"squared cjk unified ideograph-7533","shortname":":u7533:","category":"symbols","emoji_order":"2152","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"u5408":{"unicode":"1f234","unicode_alt":"","code_decimal":"🈴","name":"squared cjk unified ideograph-5408","shortname":":u5408:","category":"symbols","emoji_order":"2153","aliases":[],"aliases_ascii":[],"keywords":["japan","symbol"]},"u7a7a":{"unicode":"1f233","unicode_alt":"","code_decimal":"🈳","name":"squared cjk unified ideograph-7a7a","shortname":":u7a7a:","category":"symbols","emoji_order":"2154","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"congratulations":{"unicode":"3297","unicode_alt":"3297-fe0f","code_decimal":"㊗","name":"circled ideograph congratulation","shortname":":congratulations:","category":"symbols","emoji_order":"2155","aliases":[],"aliases_ascii":[],"keywords":["japan","symbol"]},"secret":{"unicode":"3299","unicode_alt":"3299-fe0f","code_decimal":"㊙","name":"circled ideograph secret","shortname":":secret:","category":"symbols","emoji_order":"2156","aliases":[],"aliases_ascii":[],"keywords":["japan","symbol"]},"u55b6":{"unicode":"1f23a","unicode_alt":"","code_decimal":"🈺","name":"squared cjk unified ideograph-55b6","shortname":":u55b6:","category":"symbols","emoji_order":"2157","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"u6e80":{"unicode":"1f235","unicode_alt":"","code_decimal":"🈵","name":"squared cjk unified ideograph-6e80","shortname":":u6e80:","category":"symbols","emoji_order":"2158","aliases":[],"aliases_ascii":[],"keywords":["japan","symbol"]},"black_small_square":{"unicode":"25aa","unicode_alt":"25aa-fe0f","code_decimal":"▪","name":"black small square","shortname":":black_small_square:","category":"symbols","emoji_order":"2159","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","square"]},"white_small_square":{"unicode":"25ab","unicode_alt":"25ab-fe0f","code_decimal":"▫","name":"white small square","shortname":":white_small_square:","category":"symbols","emoji_order":"2160","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","square"]},"white_medium_square":{"unicode":"25fb","unicode_alt":"25fb-fe0f","code_decimal":"◻","name":"white medium square","shortname":":white_medium_square:","category":"symbols","emoji_order":"2161","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","square"]},"black_medium_square":{"unicode":"25fc","unicode_alt":"25fc-fe0f","code_decimal":"◼","name":"black medium square","shortname":":black_medium_square:","category":"symbols","emoji_order":"2162","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","square"]},"white_medium_small_square":{"unicode":"25fd","unicode_alt":"25fd-fe0f","code_decimal":"◽","name":"white medium small square","shortname":":white_medium_small_square:","category":"symbols","emoji_order":"2163","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","square"]},"black_medium_small_square":{"unicode":"25fe","unicode_alt":"25fe-fe0f","code_decimal":"◾","name":"black medium small square","shortname":":black_medium_small_square:","category":"symbols","emoji_order":"2164","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","square"]},"black_large_square":{"unicode":"2b1b","unicode_alt":"2b1b-fe0f","code_decimal":"⬛","name":"black large square","shortname":":black_large_square:","category":"symbols","emoji_order":"2165","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","square"]},"white_large_square":{"unicode":"2b1c","unicode_alt":"2b1c-fe0f","code_decimal":"⬜","name":"white large square","shortname":":white_large_square:","category":"symbols","emoji_order":"2166","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","square"]},"large_orange_diamond":{"unicode":"1f536","unicode_alt":"","code_decimal":"🔶","name":"large orange diamond","shortname":":large_orange_diamond:","category":"symbols","emoji_order":"2167","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol"]},"large_blue_diamond":{"unicode":"1f537","unicode_alt":"","code_decimal":"🔷","name":"large blue diamond","shortname":":large_blue_diamond:","category":"symbols","emoji_order":"2168","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol"]},"small_orange_diamond":{"unicode":"1f538","unicode_alt":"","code_decimal":"🔸","name":"small orange diamond","shortname":":small_orange_diamond:","category":"symbols","emoji_order":"2169","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol"]},"small_blue_diamond":{"unicode":"1f539","unicode_alt":"","code_decimal":"🔹","name":"small blue diamond","shortname":":small_blue_diamond:","category":"symbols","emoji_order":"2170","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol"]},"small_red_triangle":{"unicode":"1f53a","unicode_alt":"","code_decimal":"🔺","name":"up-pointing red triangle","shortname":":small_red_triangle:","category":"symbols","emoji_order":"2171","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","triangle"]},"small_red_triangle_down":{"unicode":"1f53b","unicode_alt":"","code_decimal":"🔻","name":"down-pointing red triangle","shortname":":small_red_triangle_down:","category":"symbols","emoji_order":"2172","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","triangle"]},"diamond_shape_with_a_dot_inside":{"unicode":"1f4a0","unicode_alt":"","code_decimal":"💠","name":"diamond shape with a dot inside","shortname":":diamond_shape_with_a_dot_inside:","category":"symbols","emoji_order":"2173","aliases":[],"aliases_ascii":[],"keywords":["symbol"]},"radio_button":{"unicode":"1f518","unicode_alt":"","code_decimal":"🔘","name":"radio button","shortname":":radio_button:","category":"symbols","emoji_order":"2174","aliases":[],"aliases_ascii":[],"keywords":["symbol","circle"]},"black_square_button":{"unicode":"1f532","unicode_alt":"","code_decimal":"🔲","name":"black square button","shortname":":black_square_button:","category":"symbols","emoji_order":"2175","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","square"]},"white_square_button":{"unicode":"1f533","unicode_alt":"","code_decimal":"🔳","name":"white square button","shortname":":white_square_button:","category":"symbols","emoji_order":"2176","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","square"]},"white_circle":{"unicode":"26aa","unicode_alt":"26aa-fe0f","code_decimal":"⚪","name":"white circle","shortname":":white_circle:","category":"symbols","emoji_order":"2177","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","circle"]},"black_circle":{"unicode":"26ab","unicode_alt":"26ab-fe0f","code_decimal":"⚫","name":"black circle","shortname":":black_circle:","category":"symbols","emoji_order":"2178","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","circle"]},"red_circle":{"unicode":"1f534","unicode_alt":"","code_decimal":"🔴","name":"red circle","shortname":":red_circle:","category":"symbols","emoji_order":"2179","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","circle"]},"blue_circle":{"unicode":"1f535","unicode_alt":"","code_decimal":"🔵","name":"blue circle","shortname":":blue_circle:","category":"symbols","emoji_order":"2180","aliases":[],"aliases_ascii":[],"keywords":["shapes","symbol","circle"]},"checkered_flag":{"unicode":"1f3c1","unicode_alt":"","code_decimal":"🏁","name":"chequered flag","shortname":":checkered_flag:","category":"travel","emoji_order":"2181","aliases":[],"aliases_ascii":[],"keywords":["object"]},"triangular_flag_on_post":{"unicode":"1f6a9","unicode_alt":"","code_decimal":"🚩","name":"triangular flag on post","shortname":":triangular_flag_on_post:","category":"objects","emoji_order":"2182","aliases":[],"aliases_ascii":[],"keywords":["object"]},"crossed_flags":{"unicode":"1f38c","unicode_alt":"","code_decimal":"🎌","name":"crossed flags","shortname":":crossed_flags:","category":"objects","emoji_order":"2183","aliases":[],"aliases_ascii":[],"keywords":["object","japan"]},"flag_black":{"unicode":"1f3f4","unicode_alt":"","code_decimal":"🏴","name":"waving black flag","shortname":":flag_black:","category":"objects","emoji_order":"2184","aliases":[":waving_black_flag:"],"aliases_ascii":[],"keywords":["object"]},"flag_white":{"unicode":"1f3f3","unicode_alt":"1f3f3-fe0f","code_decimal":"🏳","name":"waving white flag","shortname":":flag_white:","category":"objects","emoji_order":"2185","aliases":[":waving_white_flag:"],"aliases_ascii":[],"keywords":["object"]},"rainbow_flag":{"unicode":"1f3f3-1f308","unicode_alt":"","code_decimal":"🏳🌈","name":"rainbow_flag","shortname":":rainbow_flag:","category":"objects","emoji_order":"2186","aliases":[":gay_pride_flag:"],"aliases_ascii":[],"keywords":[]},"flag_ac":{"unicode":"1f1e6-1f1e8","unicode_alt":"","code_decimal":"🇦🇨","name":"ascension","shortname":":flag_ac:","category":"flags","emoji_order":"2187","aliases":[":ac:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ad":{"unicode":"1f1e6-1f1e9","unicode_alt":"","code_decimal":"🇦🇩","name":"andorra","shortname":":flag_ad:","category":"flags","emoji_order":"2188","aliases":[":ad:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ae":{"unicode":"1f1e6-1f1ea","unicode_alt":"","code_decimal":"🇦🇪","name":"the united arab emirates","shortname":":flag_ae:","category":"flags","emoji_order":"2189","aliases":[":ae:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_af":{"unicode":"1f1e6-1f1eb","unicode_alt":"","code_decimal":"🇦🇫","name":"afghanistan","shortname":":flag_af:","category":"flags","emoji_order":"2190","aliases":[":af:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ag":{"unicode":"1f1e6-1f1ec","unicode_alt":"","code_decimal":"🇦🇬","name":"antigua and barbuda","shortname":":flag_ag:","category":"flags","emoji_order":"2191","aliases":[":ag:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ai":{"unicode":"1f1e6-1f1ee","unicode_alt":"","code_decimal":"🇦🇮","name":"anguilla","shortname":":flag_ai:","category":"flags","emoji_order":"2192","aliases":[":ai:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_al":{"unicode":"1f1e6-1f1f1","unicode_alt":"","code_decimal":"🇦🇱","name":"albania","shortname":":flag_al:","category":"flags","emoji_order":"2193","aliases":[":al:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_am":{"unicode":"1f1e6-1f1f2","unicode_alt":"","code_decimal":"🇦🇲","name":"armenia","shortname":":flag_am:","category":"flags","emoji_order":"2194","aliases":[":am:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ao":{"unicode":"1f1e6-1f1f4","unicode_alt":"","code_decimal":"🇦🇴","name":"angola","shortname":":flag_ao:","category":"flags","emoji_order":"2195","aliases":[":ao:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_aq":{"unicode":"1f1e6-1f1f6","unicode_alt":"","code_decimal":"🇦🇶","name":"antarctica","shortname":":flag_aq:","category":"flags","emoji_order":"2196","aliases":[":aq:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ar":{"unicode":"1f1e6-1f1f7","unicode_alt":"","code_decimal":"🇦🇷","name":"argentina","shortname":":flag_ar:","category":"flags","emoji_order":"2197","aliases":[":ar:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_as":{"unicode":"1f1e6-1f1f8","unicode_alt":"","code_decimal":"🇦🇸","name":"american samoa","shortname":":flag_as:","category":"flags","emoji_order":"2198","aliases":[":as:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_at":{"unicode":"1f1e6-1f1f9","unicode_alt":"","code_decimal":"🇦🇹","name":"austria","shortname":":flag_at:","category":"flags","emoji_order":"2199","aliases":[":at:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_au":{"unicode":"1f1e6-1f1fa","unicode_alt":"","code_decimal":"🇦🇺","name":"australia","shortname":":flag_au:","category":"flags","emoji_order":"2200","aliases":[":au:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_aw":{"unicode":"1f1e6-1f1fc","unicode_alt":"","code_decimal":"🇦🇼","name":"aruba","shortname":":flag_aw:","category":"flags","emoji_order":"2201","aliases":[":aw:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ax":{"unicode":"1f1e6-1f1fd","unicode_alt":"","code_decimal":"🇦🇽","name":"\u00e5land islands","shortname":":flag_ax:","category":"flags","emoji_order":"2202","aliases":[":ax:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_az":{"unicode":"1f1e6-1f1ff","unicode_alt":"","code_decimal":"🇦🇿","name":"azerbaijan","shortname":":flag_az:","category":"flags","emoji_order":"2203","aliases":[":az:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ba":{"unicode":"1f1e7-1f1e6","unicode_alt":"","code_decimal":"🇧🇦","name":"bosnia and herzegovina","shortname":":flag_ba:","category":"flags","emoji_order":"2204","aliases":[":ba:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bb":{"unicode":"1f1e7-1f1e7","unicode_alt":"","code_decimal":"🇧🇧","name":"barbados","shortname":":flag_bb:","category":"flags","emoji_order":"2205","aliases":[":bb:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bd":{"unicode":"1f1e7-1f1e9","unicode_alt":"","code_decimal":"🇧🇩","name":"bangladesh","shortname":":flag_bd:","category":"flags","emoji_order":"2206","aliases":[":bd:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_be":{"unicode":"1f1e7-1f1ea","unicode_alt":"","code_decimal":"🇧🇪","name":"belgium","shortname":":flag_be:","category":"flags","emoji_order":"2207","aliases":[":be:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bf":{"unicode":"1f1e7-1f1eb","unicode_alt":"","code_decimal":"🇧🇫","name":"burkina faso","shortname":":flag_bf:","category":"flags","emoji_order":"2208","aliases":[":bf:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bg":{"unicode":"1f1e7-1f1ec","unicode_alt":"","code_decimal":"🇧🇬","name":"bulgaria","shortname":":flag_bg:","category":"flags","emoji_order":"2209","aliases":[":bg:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bh":{"unicode":"1f1e7-1f1ed","unicode_alt":"","code_decimal":"🇧🇭","name":"bahrain","shortname":":flag_bh:","category":"flags","emoji_order":"2210","aliases":[":bh:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bi":{"unicode":"1f1e7-1f1ee","unicode_alt":"","code_decimal":"🇧🇮","name":"burundi","shortname":":flag_bi:","category":"flags","emoji_order":"2211","aliases":[":bi:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bj":{"unicode":"1f1e7-1f1ef","unicode_alt":"","code_decimal":"🇧🇯","name":"benin","shortname":":flag_bj:","category":"flags","emoji_order":"2212","aliases":[":bj:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bl":{"unicode":"1f1e7-1f1f1","unicode_alt":"","code_decimal":"🇧🇱","name":"saint barth\u00e9lemy","shortname":":flag_bl:","category":"flags","emoji_order":"2213","aliases":[":bl:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bm":{"unicode":"1f1e7-1f1f2","unicode_alt":"","code_decimal":"🇧🇲","name":"bermuda","shortname":":flag_bm:","category":"flags","emoji_order":"2214","aliases":[":bm:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bn":{"unicode":"1f1e7-1f1f3","unicode_alt":"","code_decimal":"🇧🇳","name":"brunei","shortname":":flag_bn:","category":"flags","emoji_order":"2215","aliases":[":bn:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bo":{"unicode":"1f1e7-1f1f4","unicode_alt":"","code_decimal":"🇧🇴","name":"bolivia","shortname":":flag_bo:","category":"flags","emoji_order":"2216","aliases":[":bo:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bq":{"unicode":"1f1e7-1f1f6","unicode_alt":"","code_decimal":"🇧🇶","name":"caribbean netherlands","shortname":":flag_bq:","category":"flags","emoji_order":"2217","aliases":[":bq:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_br":{"unicode":"1f1e7-1f1f7","unicode_alt":"","code_decimal":"🇧🇷","name":"brazil","shortname":":flag_br:","category":"flags","emoji_order":"2218","aliases":[":br:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bs":{"unicode":"1f1e7-1f1f8","unicode_alt":"","code_decimal":"🇧🇸","name":"the bahamas","shortname":":flag_bs:","category":"flags","emoji_order":"2219","aliases":[":bs:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bt":{"unicode":"1f1e7-1f1f9","unicode_alt":"","code_decimal":"🇧🇹","name":"bhutan","shortname":":flag_bt:","category":"flags","emoji_order":"2220","aliases":[":bt:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bv":{"unicode":"1f1e7-1f1fb","unicode_alt":"","code_decimal":"🇧🇻","name":"bouvet island","shortname":":flag_bv:","category":"flags","emoji_order":"2221","aliases":[":bv:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bw":{"unicode":"1f1e7-1f1fc","unicode_alt":"","code_decimal":"🇧🇼","name":"botswana","shortname":":flag_bw:","category":"flags","emoji_order":"2222","aliases":[":bw:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_by":{"unicode":"1f1e7-1f1fe","unicode_alt":"","code_decimal":"🇧🇾","name":"belarus","shortname":":flag_by:","category":"flags","emoji_order":"2223","aliases":[":by:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_bz":{"unicode":"1f1e7-1f1ff","unicode_alt":"","code_decimal":"🇧🇿","name":"belize","shortname":":flag_bz:","category":"flags","emoji_order":"2224","aliases":[":bz:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ca":{"unicode":"1f1e8-1f1e6","unicode_alt":"","code_decimal":"🇨🇦","name":"canada","shortname":":flag_ca:","category":"flags","emoji_order":"2225","aliases":[":ca:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cc":{"unicode":"1f1e8-1f1e8","unicode_alt":"","code_decimal":"🇨🇨","name":"cocos (keeling) islands","shortname":":flag_cc:","category":"flags","emoji_order":"2226","aliases":[":cc:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cd":{"unicode":"1f1e8-1f1e9","unicode_alt":"","code_decimal":"🇨🇩","name":"the democratic republic of the congo","shortname":":flag_cd:","category":"flags","emoji_order":"2227","aliases":[":congo:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cf":{"unicode":"1f1e8-1f1eb","unicode_alt":"","code_decimal":"🇨🇫","name":"central african republic","shortname":":flag_cf:","category":"flags","emoji_order":"2228","aliases":[":cf:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cg":{"unicode":"1f1e8-1f1ec","unicode_alt":"","code_decimal":"🇨🇬","name":"the republic of the congo","shortname":":flag_cg:","category":"flags","emoji_order":"2229","aliases":[":cg:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ch":{"unicode":"1f1e8-1f1ed","unicode_alt":"","code_decimal":"🇨🇭","name":"switzerland","shortname":":flag_ch:","category":"flags","emoji_order":"2230","aliases":[":ch:"],"aliases_ascii":[],"keywords":["country","neutral","flag"]},"flag_ci":{"unicode":"1f1e8-1f1ee","unicode_alt":"","code_decimal":"🇨🇮","name":"c\u00f4te d\u2019ivoire","shortname":":flag_ci:","category":"flags","emoji_order":"2231","aliases":[":ci:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ck":{"unicode":"1f1e8-1f1f0","unicode_alt":"","code_decimal":"🇨🇰","name":"cook islands","shortname":":flag_ck:","category":"flags","emoji_order":"2232","aliases":[":ck:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cl":{"unicode":"1f1e8-1f1f1","unicode_alt":"","code_decimal":"🇨🇱","name":"chile","shortname":":flag_cl:","category":"flags","emoji_order":"2233","aliases":[":chile:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cm":{"unicode":"1f1e8-1f1f2","unicode_alt":"","code_decimal":"🇨🇲","name":"cameroon","shortname":":flag_cm:","category":"flags","emoji_order":"2234","aliases":[":cm:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cn":{"unicode":"1f1e8-1f1f3","unicode_alt":"","code_decimal":"🇨🇳","name":"china","shortname":":flag_cn:","category":"flags","emoji_order":"2235","aliases":[":cn:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_co":{"unicode":"1f1e8-1f1f4","unicode_alt":"","code_decimal":"🇨🇴","name":"colombia","shortname":":flag_co:","category":"flags","emoji_order":"2236","aliases":[":co:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cp":{"unicode":"1f1e8-1f1f5","unicode_alt":"","code_decimal":"🇨🇵","name":"clipperton island","shortname":":flag_cp:","category":"flags","emoji_order":"2237","aliases":[":cp:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cr":{"unicode":"1f1e8-1f1f7","unicode_alt":"","code_decimal":"🇨🇷","name":"costa rica","shortname":":flag_cr:","category":"flags","emoji_order":"2238","aliases":[":cr:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cu":{"unicode":"1f1e8-1f1fa","unicode_alt":"","code_decimal":"🇨🇺","name":"cuba","shortname":":flag_cu:","category":"flags","emoji_order":"2239","aliases":[":cu:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cv":{"unicode":"1f1e8-1f1fb","unicode_alt":"","code_decimal":"🇨🇻","name":"cape verde","shortname":":flag_cv:","category":"flags","emoji_order":"2240","aliases":[":cv:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cw":{"unicode":"1f1e8-1f1fc","unicode_alt":"","code_decimal":"🇨🇼","name":"cura\u00e7ao","shortname":":flag_cw:","category":"flags","emoji_order":"2241","aliases":[":cw:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cx":{"unicode":"1f1e8-1f1fd","unicode_alt":"","code_decimal":"🇨🇽","name":"christmas island","shortname":":flag_cx:","category":"flags","emoji_order":"2242","aliases":[":cx:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cy":{"unicode":"1f1e8-1f1fe","unicode_alt":"","code_decimal":"🇨🇾","name":"cyprus","shortname":":flag_cy:","category":"flags","emoji_order":"2243","aliases":[":cy:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_cz":{"unicode":"1f1e8-1f1ff","unicode_alt":"","code_decimal":"🇨🇿","name":"the czech republic","shortname":":flag_cz:","category":"flags","emoji_order":"2244","aliases":[":cz:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_de":{"unicode":"1f1e9-1f1ea","unicode_alt":"","code_decimal":"🇩🇪","name":"germany","shortname":":flag_de:","category":"flags","emoji_order":"2245","aliases":[":de:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_dg":{"unicode":"1f1e9-1f1ec","unicode_alt":"","code_decimal":"🇩🇬","name":"diego garcia","shortname":":flag_dg:","category":"flags","emoji_order":"2246","aliases":[":dg:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_dj":{"unicode":"1f1e9-1f1ef","unicode_alt":"","code_decimal":"🇩🇯","name":"djibouti","shortname":":flag_dj:","category":"flags","emoji_order":"2247","aliases":[":dj:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_dk":{"unicode":"1f1e9-1f1f0","unicode_alt":"","code_decimal":"🇩🇰","name":"denmark","shortname":":flag_dk:","category":"flags","emoji_order":"2248","aliases":[":dk:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_dm":{"unicode":"1f1e9-1f1f2","unicode_alt":"","code_decimal":"🇩🇲","name":"dominica","shortname":":flag_dm:","category":"flags","emoji_order":"2249","aliases":[":dm:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_do":{"unicode":"1f1e9-1f1f4","unicode_alt":"","code_decimal":"🇩🇴","name":"the dominican republic","shortname":":flag_do:","category":"flags","emoji_order":"2250","aliases":[":do:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_dz":{"unicode":"1f1e9-1f1ff","unicode_alt":"","code_decimal":"🇩🇿","name":"algeria","shortname":":flag_dz:","category":"flags","emoji_order":"2251","aliases":[":dz:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ea":{"unicode":"1f1ea-1f1e6","unicode_alt":"","code_decimal":"🇪🇦","name":"ceuta, melilla","shortname":":flag_ea:","category":"flags","emoji_order":"2252","aliases":[":ea:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ec":{"unicode":"1f1ea-1f1e8","unicode_alt":"","code_decimal":"🇪🇨","name":"ecuador","shortname":":flag_ec:","category":"flags","emoji_order":"2253","aliases":[":ec:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ee":{"unicode":"1f1ea-1f1ea","unicode_alt":"","code_decimal":"🇪🇪","name":"estonia","shortname":":flag_ee:","category":"flags","emoji_order":"2254","aliases":[":ee:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_eg":{"unicode":"1f1ea-1f1ec","unicode_alt":"","code_decimal":"🇪🇬","name":"egypt","shortname":":flag_eg:","category":"flags","emoji_order":"2255","aliases":[":eg:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_eh":{"unicode":"1f1ea-1f1ed","unicode_alt":"","code_decimal":"🇪🇭","name":"western sahara","shortname":":flag_eh:","category":"flags","emoji_order":"2256","aliases":[":eh:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_er":{"unicode":"1f1ea-1f1f7","unicode_alt":"","code_decimal":"🇪🇷","name":"eritrea","shortname":":flag_er:","category":"flags","emoji_order":"2257","aliases":[":er:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_es":{"unicode":"1f1ea-1f1f8","unicode_alt":"","code_decimal":"🇪🇸","name":"spain","shortname":":flag_es:","category":"flags","emoji_order":"2258","aliases":[":es:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_et":{"unicode":"1f1ea-1f1f9","unicode_alt":"","code_decimal":"🇪🇹","name":"ethiopia","shortname":":flag_et:","category":"flags","emoji_order":"2259","aliases":[":et:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_eu":{"unicode":"1f1ea-1f1fa","unicode_alt":"","code_decimal":"🇪🇺","name":"european union","shortname":":flag_eu:","category":"flags","emoji_order":"2260","aliases":[":eu:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_fi":{"unicode":"1f1eb-1f1ee","unicode_alt":"","code_decimal":"🇫🇮","name":"finland","shortname":":flag_fi:","category":"flags","emoji_order":"2261","aliases":[":fi:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_fj":{"unicode":"1f1eb-1f1ef","unicode_alt":"","code_decimal":"🇫🇯","name":"fiji","shortname":":flag_fj:","category":"flags","emoji_order":"2262","aliases":[":fj:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_fk":{"unicode":"1f1eb-1f1f0","unicode_alt":"","code_decimal":"🇫🇰","name":"falkland islands","shortname":":flag_fk:","category":"flags","emoji_order":"2263","aliases":[":fk:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_fm":{"unicode":"1f1eb-1f1f2","unicode_alt":"","code_decimal":"🇫🇲","name":"micronesia","shortname":":flag_fm:","category":"flags","emoji_order":"2264","aliases":[":fm:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_fo":{"unicode":"1f1eb-1f1f4","unicode_alt":"","code_decimal":"🇫🇴","name":"faroe islands","shortname":":flag_fo:","category":"flags","emoji_order":"2265","aliases":[":fo:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_fr":{"unicode":"1f1eb-1f1f7","unicode_alt":"","code_decimal":"🇫🇷","name":"france","shortname":":flag_fr:","category":"flags","emoji_order":"2266","aliases":[":fr:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ga":{"unicode":"1f1ec-1f1e6","unicode_alt":"","code_decimal":"🇬🇦","name":"gabon","shortname":":flag_ga:","category":"flags","emoji_order":"2267","aliases":[":ga:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gb":{"unicode":"1f1ec-1f1e7","unicode_alt":"","code_decimal":"🇬🇧","name":"great britain","shortname":":flag_gb:","category":"flags","emoji_order":"2268","aliases":[":gb:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gd":{"unicode":"1f1ec-1f1e9","unicode_alt":"","code_decimal":"🇬🇩","name":"grenada","shortname":":flag_gd:","category":"flags","emoji_order":"2269","aliases":[":gd:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ge":{"unicode":"1f1ec-1f1ea","unicode_alt":"","code_decimal":"🇬🇪","name":"georgia","shortname":":flag_ge:","category":"flags","emoji_order":"2270","aliases":[":ge:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gf":{"unicode":"1f1ec-1f1eb","unicode_alt":"","code_decimal":"🇬🇫","name":"french guiana","shortname":":flag_gf:","category":"flags","emoji_order":"2271","aliases":[":gf:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gg":{"unicode":"1f1ec-1f1ec","unicode_alt":"","code_decimal":"🇬🇬","name":"guernsey","shortname":":flag_gg:","category":"flags","emoji_order":"2272","aliases":[":gg:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gh":{"unicode":"1f1ec-1f1ed","unicode_alt":"","code_decimal":"🇬🇭","name":"ghana","shortname":":flag_gh:","category":"flags","emoji_order":"2273","aliases":[":gh:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gi":{"unicode":"1f1ec-1f1ee","unicode_alt":"","code_decimal":"🇬🇮","name":"gibraltar","shortname":":flag_gi:","category":"flags","emoji_order":"2274","aliases":[":gi:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gl":{"unicode":"1f1ec-1f1f1","unicode_alt":"","code_decimal":"🇬🇱","name":"greenland","shortname":":flag_gl:","category":"flags","emoji_order":"2275","aliases":[":gl:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gm":{"unicode":"1f1ec-1f1f2","unicode_alt":"","code_decimal":"🇬🇲","name":"the gambia","shortname":":flag_gm:","category":"flags","emoji_order":"2276","aliases":[":gm:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gn":{"unicode":"1f1ec-1f1f3","unicode_alt":"","code_decimal":"🇬🇳","name":"guinea","shortname":":flag_gn:","category":"flags","emoji_order":"2277","aliases":[":gn:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gp":{"unicode":"1f1ec-1f1f5","unicode_alt":"","code_decimal":"🇬🇵","name":"guadeloupe","shortname":":flag_gp:","category":"flags","emoji_order":"2278","aliases":[":gp:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gq":{"unicode":"1f1ec-1f1f6","unicode_alt":"","code_decimal":"🇬🇶","name":"equatorial guinea","shortname":":flag_gq:","category":"flags","emoji_order":"2279","aliases":[":gq:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gr":{"unicode":"1f1ec-1f1f7","unicode_alt":"","code_decimal":"🇬🇷","name":"greece","shortname":":flag_gr:","category":"flags","emoji_order":"2280","aliases":[":gr:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gs":{"unicode":"1f1ec-1f1f8","unicode_alt":"","code_decimal":"🇬🇸","name":"south georgia","shortname":":flag_gs:","category":"flags","emoji_order":"2281","aliases":[":gs:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gt":{"unicode":"1f1ec-1f1f9","unicode_alt":"","code_decimal":"🇬🇹","name":"guatemala","shortname":":flag_gt:","category":"flags","emoji_order":"2282","aliases":[":gt:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gu":{"unicode":"1f1ec-1f1fa","unicode_alt":"","code_decimal":"🇬🇺","name":"guam","shortname":":flag_gu:","category":"flags","emoji_order":"2283","aliases":[":gu:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gw":{"unicode":"1f1ec-1f1fc","unicode_alt":"","code_decimal":"🇬🇼","name":"guinea-bissau","shortname":":flag_gw:","category":"flags","emoji_order":"2284","aliases":[":gw:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_gy":{"unicode":"1f1ec-1f1fe","unicode_alt":"","code_decimal":"🇬🇾","name":"guyana","shortname":":flag_gy:","category":"flags","emoji_order":"2285","aliases":[":gy:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_hk":{"unicode":"1f1ed-1f1f0","unicode_alt":"","code_decimal":"🇭🇰","name":"hong kong","shortname":":flag_hk:","category":"flags","emoji_order":"2286","aliases":[":hk:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_hm":{"unicode":"1f1ed-1f1f2","unicode_alt":"","code_decimal":"🇭🇲","name":"heard island and mcdonald islands","shortname":":flag_hm:","category":"flags","emoji_order":"2287","aliases":[":hm:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_hn":{"unicode":"1f1ed-1f1f3","unicode_alt":"","code_decimal":"🇭🇳","name":"honduras","shortname":":flag_hn:","category":"flags","emoji_order":"2288","aliases":[":hn:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_hr":{"unicode":"1f1ed-1f1f7","unicode_alt":"","code_decimal":"🇭🇷","name":"croatia","shortname":":flag_hr:","category":"flags","emoji_order":"2289","aliases":[":hr:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ht":{"unicode":"1f1ed-1f1f9","unicode_alt":"","code_decimal":"🇭🇹","name":"haiti","shortname":":flag_ht:","category":"flags","emoji_order":"2290","aliases":[":ht:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_hu":{"unicode":"1f1ed-1f1fa","unicode_alt":"","code_decimal":"🇭🇺","name":"hungary","shortname":":flag_hu:","category":"flags","emoji_order":"2291","aliases":[":hu:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ic":{"unicode":"1f1ee-1f1e8","unicode_alt":"","code_decimal":"🇮🇨","name":"canary islands","shortname":":flag_ic:","category":"flags","emoji_order":"2292","aliases":[":ic:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_id":{"unicode":"1f1ee-1f1e9","unicode_alt":"","code_decimal":"🇮🇩","name":"indonesia","shortname":":flag_id:","category":"flags","emoji_order":"2293","aliases":[":indonesia:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ie":{"unicode":"1f1ee-1f1ea","unicode_alt":"","code_decimal":"🇮🇪","name":"ireland","shortname":":flag_ie:","category":"flags","emoji_order":"2294","aliases":[":ie:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_il":{"unicode":"1f1ee-1f1f1","unicode_alt":"","code_decimal":"🇮🇱","name":"israel","shortname":":flag_il:","category":"flags","emoji_order":"2295","aliases":[":il:"],"aliases_ascii":[],"keywords":["jew","country","flag"]},"flag_im":{"unicode":"1f1ee-1f1f2","unicode_alt":"","code_decimal":"🇮🇲","name":"isle of man","shortname":":flag_im:","category":"flags","emoji_order":"2296","aliases":[":im:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_in":{"unicode":"1f1ee-1f1f3","unicode_alt":"","code_decimal":"🇮🇳","name":"india","shortname":":flag_in:","category":"flags","emoji_order":"2297","aliases":[":in:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_io":{"unicode":"1f1ee-1f1f4","unicode_alt":"","code_decimal":"🇮🇴","name":"british indian ocean territory","shortname":":flag_io:","category":"flags","emoji_order":"2298","aliases":[":io:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_iq":{"unicode":"1f1ee-1f1f6","unicode_alt":"","code_decimal":"🇮🇶","name":"iraq","shortname":":flag_iq:","category":"flags","emoji_order":"2299","aliases":[":iq:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ir":{"unicode":"1f1ee-1f1f7","unicode_alt":"","code_decimal":"🇮🇷","name":"iran","shortname":":flag_ir:","category":"flags","emoji_order":"2300","aliases":[":ir:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_is":{"unicode":"1f1ee-1f1f8","unicode_alt":"","code_decimal":"🇮🇸","name":"iceland","shortname":":flag_is:","category":"flags","emoji_order":"2301","aliases":[":is:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_it":{"unicode":"1f1ee-1f1f9","unicode_alt":"","code_decimal":"🇮🇹","name":"italy","shortname":":flag_it:","category":"flags","emoji_order":"2302","aliases":[":it:"],"aliases_ascii":[],"keywords":["italian","country","flag"]},"flag_je":{"unicode":"1f1ef-1f1ea","unicode_alt":"","code_decimal":"🇯🇪","name":"jersey","shortname":":flag_je:","category":"flags","emoji_order":"2303","aliases":[":je:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_jm":{"unicode":"1f1ef-1f1f2","unicode_alt":"","code_decimal":"🇯🇲","name":"jamaica","shortname":":flag_jm:","category":"flags","emoji_order":"2304","aliases":[":jm:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_jo":{"unicode":"1f1ef-1f1f4","unicode_alt":"","code_decimal":"🇯🇴","name":"jordan","shortname":":flag_jo:","category":"flags","emoji_order":"2305","aliases":[":jo:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_jp":{"unicode":"1f1ef-1f1f5","unicode_alt":"","code_decimal":"🇯🇵","name":"japan","shortname":":flag_jp:","category":"flags","emoji_order":"2306","aliases":[":jp:"],"aliases_ascii":[],"keywords":["japan","country","flag"]},"flag_ke":{"unicode":"1f1f0-1f1ea","unicode_alt":"","code_decimal":"🇰🇪","name":"kenya","shortname":":flag_ke:","category":"flags","emoji_order":"2307","aliases":[":ke:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_kg":{"unicode":"1f1f0-1f1ec","unicode_alt":"","code_decimal":"🇰🇬","name":"kyrgyzstan","shortname":":flag_kg:","category":"flags","emoji_order":"2308","aliases":[":kg:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_kh":{"unicode":"1f1f0-1f1ed","unicode_alt":"","code_decimal":"🇰🇭","name":"cambodia","shortname":":flag_kh:","category":"flags","emoji_order":"2309","aliases":[":kh:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ki":{"unicode":"1f1f0-1f1ee","unicode_alt":"","code_decimal":"🇰🇮","name":"kiribati","shortname":":flag_ki:","category":"flags","emoji_order":"2310","aliases":[":ki:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_km":{"unicode":"1f1f0-1f1f2","unicode_alt":"","code_decimal":"🇰🇲","name":"the comoros","shortname":":flag_km:","category":"flags","emoji_order":"2311","aliases":[":km:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_kn":{"unicode":"1f1f0-1f1f3","unicode_alt":"","code_decimal":"🇰🇳","name":"saint kitts and nevis","shortname":":flag_kn:","category":"flags","emoji_order":"2312","aliases":[":kn:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_kp":{"unicode":"1f1f0-1f1f5","unicode_alt":"","code_decimal":"🇰🇵","name":"north korea","shortname":":flag_kp:","category":"flags","emoji_order":"2313","aliases":[":kp:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_kr":{"unicode":"1f1f0-1f1f7","unicode_alt":"","code_decimal":"🇰🇷","name":"korea","shortname":":flag_kr:","category":"flags","emoji_order":"2314","aliases":[":kr:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_kw":{"unicode":"1f1f0-1f1fc","unicode_alt":"","code_decimal":"🇰🇼","name":"kuwait","shortname":":flag_kw:","category":"flags","emoji_order":"2315","aliases":[":kw:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ky":{"unicode":"1f1f0-1f1fe","unicode_alt":"","code_decimal":"🇰🇾","name":"cayman islands","shortname":":flag_ky:","category":"flags","emoji_order":"2316","aliases":[":ky:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_kz":{"unicode":"1f1f0-1f1ff","unicode_alt":"","code_decimal":"🇰🇿","name":"kazakhstan","shortname":":flag_kz:","category":"flags","emoji_order":"2317","aliases":[":kz:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_la":{"unicode":"1f1f1-1f1e6","unicode_alt":"","code_decimal":"🇱🇦","name":"laos","shortname":":flag_la:","category":"flags","emoji_order":"2318","aliases":[":la:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_lb":{"unicode":"1f1f1-1f1e7","unicode_alt":"","code_decimal":"🇱🇧","name":"lebanon","shortname":":flag_lb:","category":"flags","emoji_order":"2319","aliases":[":lb:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_lc":{"unicode":"1f1f1-1f1e8","unicode_alt":"","code_decimal":"🇱🇨","name":"saint lucia","shortname":":flag_lc:","category":"flags","emoji_order":"2320","aliases":[":lc:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_li":{"unicode":"1f1f1-1f1ee","unicode_alt":"","code_decimal":"🇱🇮","name":"liechtenstein","shortname":":flag_li:","category":"flags","emoji_order":"2321","aliases":[":li:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_lk":{"unicode":"1f1f1-1f1f0","unicode_alt":"","code_decimal":"🇱🇰","name":"sri lanka","shortname":":flag_lk:","category":"flags","emoji_order":"2322","aliases":[":lk:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_lr":{"unicode":"1f1f1-1f1f7","unicode_alt":"","code_decimal":"🇱🇷","name":"liberia","shortname":":flag_lr:","category":"flags","emoji_order":"2323","aliases":[":lr:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ls":{"unicode":"1f1f1-1f1f8","unicode_alt":"","code_decimal":"🇱🇸","name":"lesotho","shortname":":flag_ls:","category":"flags","emoji_order":"2324","aliases":[":ls:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_lt":{"unicode":"1f1f1-1f1f9","unicode_alt":"","code_decimal":"🇱🇹","name":"lithuania","shortname":":flag_lt:","category":"flags","emoji_order":"2325","aliases":[":lt:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_lu":{"unicode":"1f1f1-1f1fa","unicode_alt":"","code_decimal":"🇱🇺","name":"luxembourg","shortname":":flag_lu:","category":"flags","emoji_order":"2326","aliases":[":lu:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_lv":{"unicode":"1f1f1-1f1fb","unicode_alt":"","code_decimal":"🇱🇻","name":"latvia","shortname":":flag_lv:","category":"flags","emoji_order":"2327","aliases":[":lv:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ly":{"unicode":"1f1f1-1f1fe","unicode_alt":"","code_decimal":"🇱🇾","name":"libya","shortname":":flag_ly:","category":"flags","emoji_order":"2328","aliases":[":ly:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ma":{"unicode":"1f1f2-1f1e6","unicode_alt":"","code_decimal":"🇲🇦","name":"morocco","shortname":":flag_ma:","category":"flags","emoji_order":"2329","aliases":[":ma:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mc":{"unicode":"1f1f2-1f1e8","unicode_alt":"","code_decimal":"🇲🇨","name":"monaco","shortname":":flag_mc:","category":"flags","emoji_order":"2330","aliases":[":mc:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_md":{"unicode":"1f1f2-1f1e9","unicode_alt":"","code_decimal":"🇲🇩","name":"moldova","shortname":":flag_md:","category":"flags","emoji_order":"2331","aliases":[":md:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_me":{"unicode":"1f1f2-1f1ea","unicode_alt":"","code_decimal":"🇲🇪","name":"montenegro","shortname":":flag_me:","category":"flags","emoji_order":"2332","aliases":[":me:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mf":{"unicode":"1f1f2-1f1eb","unicode_alt":"","code_decimal":"🇲🇫","name":"saint martin","shortname":":flag_mf:","category":"flags","emoji_order":"2333","aliases":[":mf:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mg":{"unicode":"1f1f2-1f1ec","unicode_alt":"","code_decimal":"🇲🇬","name":"madagascar","shortname":":flag_mg:","category":"flags","emoji_order":"2334","aliases":[":mg:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mh":{"unicode":"1f1f2-1f1ed","unicode_alt":"","code_decimal":"🇲🇭","name":"the marshall islands","shortname":":flag_mh:","category":"flags","emoji_order":"2335","aliases":[":mh:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mk":{"unicode":"1f1f2-1f1f0","unicode_alt":"","code_decimal":"🇲🇰","name":"macedonia","shortname":":flag_mk:","category":"flags","emoji_order":"2336","aliases":[":mk:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ml":{"unicode":"1f1f2-1f1f1","unicode_alt":"","code_decimal":"🇲🇱","name":"mali","shortname":":flag_ml:","category":"flags","emoji_order":"2337","aliases":[":ml:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mm":{"unicode":"1f1f2-1f1f2","unicode_alt":"","code_decimal":"🇲🇲","name":"myanmar","shortname":":flag_mm:","category":"flags","emoji_order":"2338","aliases":[":mm:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mn":{"unicode":"1f1f2-1f1f3","unicode_alt":"","code_decimal":"🇲🇳","name":"mongolia","shortname":":flag_mn:","category":"flags","emoji_order":"2339","aliases":[":mn:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mo":{"unicode":"1f1f2-1f1f4","unicode_alt":"","code_decimal":"🇲🇴","name":"macau","shortname":":flag_mo:","category":"flags","emoji_order":"2340","aliases":[":mo:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mp":{"unicode":"1f1f2-1f1f5","unicode_alt":"","code_decimal":"🇲🇵","name":"northern mariana islands","shortname":":flag_mp:","category":"flags","emoji_order":"2341","aliases":[":mp:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mq":{"unicode":"1f1f2-1f1f6","unicode_alt":"","code_decimal":"🇲🇶","name":"martinique","shortname":":flag_mq:","category":"flags","emoji_order":"2342","aliases":[":mq:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mr":{"unicode":"1f1f2-1f1f7","unicode_alt":"","code_decimal":"🇲🇷","name":"mauritania","shortname":":flag_mr:","category":"flags","emoji_order":"2343","aliases":[":mr:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ms":{"unicode":"1f1f2-1f1f8","unicode_alt":"","code_decimal":"🇲🇸","name":"montserrat","shortname":":flag_ms:","category":"flags","emoji_order":"2344","aliases":[":ms:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mt":{"unicode":"1f1f2-1f1f9","unicode_alt":"","code_decimal":"🇲🇹","name":"malta","shortname":":flag_mt:","category":"flags","emoji_order":"2345","aliases":[":mt:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mu":{"unicode":"1f1f2-1f1fa","unicode_alt":"","code_decimal":"🇲🇺","name":"mauritius","shortname":":flag_mu:","category":"flags","emoji_order":"2346","aliases":[":mu:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mv":{"unicode":"1f1f2-1f1fb","unicode_alt":"","code_decimal":"🇲🇻","name":"maldives","shortname":":flag_mv:","category":"flags","emoji_order":"2347","aliases":[":mv:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mw":{"unicode":"1f1f2-1f1fc","unicode_alt":"","code_decimal":"🇲🇼","name":"malawi","shortname":":flag_mw:","category":"flags","emoji_order":"2348","aliases":[":mw:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mx":{"unicode":"1f1f2-1f1fd","unicode_alt":"","code_decimal":"🇲🇽","name":"mexico","shortname":":flag_mx:","category":"flags","emoji_order":"2349","aliases":[":mx:"],"aliases_ascii":[],"keywords":["country","mexican","flag"]},"flag_my":{"unicode":"1f1f2-1f1fe","unicode_alt":"","code_decimal":"🇲🇾","name":"malaysia","shortname":":flag_my:","category":"flags","emoji_order":"2350","aliases":[":my:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_mz":{"unicode":"1f1f2-1f1ff","unicode_alt":"","code_decimal":"🇲🇿","name":"mozambique","shortname":":flag_mz:","category":"flags","emoji_order":"2351","aliases":[":mz:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_na":{"unicode":"1f1f3-1f1e6","unicode_alt":"","code_decimal":"🇳🇦","name":"namibia","shortname":":flag_na:","category":"flags","emoji_order":"2352","aliases":[":na:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_nc":{"unicode":"1f1f3-1f1e8","unicode_alt":"","code_decimal":"🇳🇨","name":"new caledonia","shortname":":flag_nc:","category":"flags","emoji_order":"2353","aliases":[":nc:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ne":{"unicode":"1f1f3-1f1ea","unicode_alt":"","code_decimal":"🇳🇪","name":"niger","shortname":":flag_ne:","category":"flags","emoji_order":"2354","aliases":[":ne:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_nf":{"unicode":"1f1f3-1f1eb","unicode_alt":"","code_decimal":"🇳🇫","name":"norfolk island","shortname":":flag_nf:","category":"flags","emoji_order":"2355","aliases":[":nf:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ng":{"unicode":"1f1f3-1f1ec","unicode_alt":"","code_decimal":"🇳🇬","name":"nigeria","shortname":":flag_ng:","category":"flags","emoji_order":"2356","aliases":[":nigeria:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ni":{"unicode":"1f1f3-1f1ee","unicode_alt":"","code_decimal":"🇳🇮","name":"nicaragua","shortname":":flag_ni:","category":"flags","emoji_order":"2357","aliases":[":ni:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_nl":{"unicode":"1f1f3-1f1f1","unicode_alt":"","code_decimal":"🇳🇱","name":"the netherlands","shortname":":flag_nl:","category":"flags","emoji_order":"2358","aliases":[":nl:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_no":{"unicode":"1f1f3-1f1f4","unicode_alt":"","code_decimal":"🇳🇴","name":"norway","shortname":":flag_no:","category":"flags","emoji_order":"2359","aliases":[":no:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_np":{"unicode":"1f1f3-1f1f5","unicode_alt":"","code_decimal":"🇳🇵","name":"nepal","shortname":":flag_np:","category":"flags","emoji_order":"2360","aliases":[":np:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_nr":{"unicode":"1f1f3-1f1f7","unicode_alt":"","code_decimal":"🇳🇷","name":"nauru","shortname":":flag_nr:","category":"flags","emoji_order":"2361","aliases":[":nr:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_nu":{"unicode":"1f1f3-1f1fa","unicode_alt":"","code_decimal":"🇳🇺","name":"niue","shortname":":flag_nu:","category":"flags","emoji_order":"2362","aliases":[":nu:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_nz":{"unicode":"1f1f3-1f1ff","unicode_alt":"","code_decimal":"🇳🇿","name":"new zealand","shortname":":flag_nz:","category":"flags","emoji_order":"2363","aliases":[":nz:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_om":{"unicode":"1f1f4-1f1f2","unicode_alt":"","code_decimal":"🇴🇲","name":"oman","shortname":":flag_om:","category":"flags","emoji_order":"2364","aliases":[":om:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_pa":{"unicode":"1f1f5-1f1e6","unicode_alt":"","code_decimal":"🇵🇦","name":"panama","shortname":":flag_pa:","category":"flags","emoji_order":"2365","aliases":[":pa:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_pe":{"unicode":"1f1f5-1f1ea","unicode_alt":"","code_decimal":"🇵🇪","name":"peru","shortname":":flag_pe:","category":"flags","emoji_order":"2366","aliases":[":pe:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_pf":{"unicode":"1f1f5-1f1eb","unicode_alt":"","code_decimal":"🇵🇫","name":"french polynesia","shortname":":flag_pf:","category":"flags","emoji_order":"2367","aliases":[":pf:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_pg":{"unicode":"1f1f5-1f1ec","unicode_alt":"","code_decimal":"🇵🇬","name":"papua new guinea","shortname":":flag_pg:","category":"flags","emoji_order":"2368","aliases":[":pg:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ph":{"unicode":"1f1f5-1f1ed","unicode_alt":"","code_decimal":"🇵🇭","name":"the philippines","shortname":":flag_ph:","category":"flags","emoji_order":"2369","aliases":[":ph:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_pk":{"unicode":"1f1f5-1f1f0","unicode_alt":"","code_decimal":"🇵🇰","name":"pakistan","shortname":":flag_pk:","category":"flags","emoji_order":"2370","aliases":[":pk:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_pl":{"unicode":"1f1f5-1f1f1","unicode_alt":"","code_decimal":"🇵🇱","name":"poland","shortname":":flag_pl:","category":"flags","emoji_order":"2371","aliases":[":pl:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_pm":{"unicode":"1f1f5-1f1f2","unicode_alt":"","code_decimal":"🇵🇲","name":"saint pierre and miquelon","shortname":":flag_pm:","category":"flags","emoji_order":"2372","aliases":[":pm:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_pn":{"unicode":"1f1f5-1f1f3","unicode_alt":"","code_decimal":"🇵🇳","name":"pitcairn","shortname":":flag_pn:","category":"flags","emoji_order":"2373","aliases":[":pn:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_pr":{"unicode":"1f1f5-1f1f7","unicode_alt":"","code_decimal":"🇵🇷","name":"puerto rico","shortname":":flag_pr:","category":"flags","emoji_order":"2374","aliases":[":pr:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ps":{"unicode":"1f1f5-1f1f8","unicode_alt":"","code_decimal":"🇵🇸","name":"palestinian authority","shortname":":flag_ps:","category":"flags","emoji_order":"2375","aliases":[":ps:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_pt":{"unicode":"1f1f5-1f1f9","unicode_alt":"","code_decimal":"🇵🇹","name":"portugal","shortname":":flag_pt:","category":"flags","emoji_order":"2376","aliases":[":pt:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_pw":{"unicode":"1f1f5-1f1fc","unicode_alt":"","code_decimal":"🇵🇼","name":"palau","shortname":":flag_pw:","category":"flags","emoji_order":"2377","aliases":[":pw:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_py":{"unicode":"1f1f5-1f1fe","unicode_alt":"","code_decimal":"🇵🇾","name":"paraguay","shortname":":flag_py:","category":"flags","emoji_order":"2378","aliases":[":py:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_qa":{"unicode":"1f1f6-1f1e6","unicode_alt":"","code_decimal":"🇶🇦","name":"qatar","shortname":":flag_qa:","category":"flags","emoji_order":"2379","aliases":[":qa:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_re":{"unicode":"1f1f7-1f1ea","unicode_alt":"","code_decimal":"🇷🇪","name":"r\u00e9union","shortname":":flag_re:","category":"flags","emoji_order":"2380","aliases":[":re:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ro":{"unicode":"1f1f7-1f1f4","unicode_alt":"","code_decimal":"🇷🇴","name":"romania","shortname":":flag_ro:","category":"flags","emoji_order":"2381","aliases":[":ro:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_rs":{"unicode":"1f1f7-1f1f8","unicode_alt":"","code_decimal":"🇷🇸","name":"serbia","shortname":":flag_rs:","category":"flags","emoji_order":"2382","aliases":[":rs:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ru":{"unicode":"1f1f7-1f1fa","unicode_alt":"","code_decimal":"🇷🇺","name":"russia","shortname":":flag_ru:","category":"flags","emoji_order":"2383","aliases":[":ru:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_rw":{"unicode":"1f1f7-1f1fc","unicode_alt":"","code_decimal":"🇷🇼","name":"rwanda","shortname":":flag_rw:","category":"flags","emoji_order":"2384","aliases":[":rw:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sa":{"unicode":"1f1f8-1f1e6","unicode_alt":"","code_decimal":"🇸🇦","name":"saudi arabia","shortname":":flag_sa:","category":"flags","emoji_order":"2385","aliases":[":saudiarabia:",":saudi:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sb":{"unicode":"1f1f8-1f1e7","unicode_alt":"","code_decimal":"🇸🇧","name":"the solomon islands","shortname":":flag_sb:","category":"flags","emoji_order":"2386","aliases":[":sb:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sc":{"unicode":"1f1f8-1f1e8","unicode_alt":"","code_decimal":"🇸🇨","name":"the seychelles","shortname":":flag_sc:","category":"flags","emoji_order":"2387","aliases":[":sc:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sd":{"unicode":"1f1f8-1f1e9","unicode_alt":"","code_decimal":"🇸🇩","name":"sudan","shortname":":flag_sd:","category":"flags","emoji_order":"2388","aliases":[":sd:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_se":{"unicode":"1f1f8-1f1ea","unicode_alt":"","code_decimal":"🇸🇪","name":"sweden","shortname":":flag_se:","category":"flags","emoji_order":"2389","aliases":[":se:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sg":{"unicode":"1f1f8-1f1ec","unicode_alt":"","code_decimal":"🇸🇬","name":"singapore","shortname":":flag_sg:","category":"flags","emoji_order":"2390","aliases":[":sg:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sh":{"unicode":"1f1f8-1f1ed","unicode_alt":"","code_decimal":"🇸🇭","name":"saint helena","shortname":":flag_sh:","category":"flags","emoji_order":"2391","aliases":[":sh:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_si":{"unicode":"1f1f8-1f1ee","unicode_alt":"","code_decimal":"🇸🇮","name":"slovenia","shortname":":flag_si:","category":"flags","emoji_order":"2392","aliases":[":si:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sj":{"unicode":"1f1f8-1f1ef","unicode_alt":"","code_decimal":"🇸🇯","name":"svalbard and jan mayen","shortname":":flag_sj:","category":"flags","emoji_order":"2393","aliases":[":sj:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sk":{"unicode":"1f1f8-1f1f0","unicode_alt":"","code_decimal":"🇸🇰","name":"slovakia","shortname":":flag_sk:","category":"flags","emoji_order":"2394","aliases":[":sk:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sl":{"unicode":"1f1f8-1f1f1","unicode_alt":"","code_decimal":"🇸🇱","name":"sierra leone","shortname":":flag_sl:","category":"flags","emoji_order":"2395","aliases":[":sl:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sm":{"unicode":"1f1f8-1f1f2","unicode_alt":"","code_decimal":"🇸🇲","name":"san marino","shortname":":flag_sm:","category":"flags","emoji_order":"2396","aliases":[":sm:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sn":{"unicode":"1f1f8-1f1f3","unicode_alt":"","code_decimal":"🇸🇳","name":"senegal","shortname":":flag_sn:","category":"flags","emoji_order":"2397","aliases":[":sn:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_so":{"unicode":"1f1f8-1f1f4","unicode_alt":"","code_decimal":"🇸🇴","name":"somalia","shortname":":flag_so:","category":"flags","emoji_order":"2398","aliases":[":so:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sr":{"unicode":"1f1f8-1f1f7","unicode_alt":"","code_decimal":"🇸🇷","name":"suriname","shortname":":flag_sr:","category":"flags","emoji_order":"2399","aliases":[":sr:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ss":{"unicode":"1f1f8-1f1f8","unicode_alt":"","code_decimal":"🇸🇸","name":"south sudan","shortname":":flag_ss:","category":"flags","emoji_order":"2400","aliases":[":ss:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_st":{"unicode":"1f1f8-1f1f9","unicode_alt":"","code_decimal":"🇸🇹","name":"s\u00e3o tom\u00e9 and pr\u00edncipe","shortname":":flag_st:","category":"flags","emoji_order":"2401","aliases":[":st:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sv":{"unicode":"1f1f8-1f1fb","unicode_alt":"","code_decimal":"🇸🇻","name":"el salvador","shortname":":flag_sv:","category":"flags","emoji_order":"2402","aliases":[":sv:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sx":{"unicode":"1f1f8-1f1fd","unicode_alt":"","code_decimal":"🇸🇽","name":"sint maarten","shortname":":flag_sx:","category":"flags","emoji_order":"2403","aliases":[":sx:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sy":{"unicode":"1f1f8-1f1fe","unicode_alt":"","code_decimal":"🇸🇾","name":"syria","shortname":":flag_sy:","category":"flags","emoji_order":"2404","aliases":[":sy:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_sz":{"unicode":"1f1f8-1f1ff","unicode_alt":"","code_decimal":"🇸🇿","name":"swaziland","shortname":":flag_sz:","category":"flags","emoji_order":"2405","aliases":[":sz:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ta":{"unicode":"1f1f9-1f1e6","unicode_alt":"","code_decimal":"🇹🇦","name":"tristan da cunha","shortname":":flag_ta:","category":"flags","emoji_order":"2406","aliases":[":ta:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tc":{"unicode":"1f1f9-1f1e8","unicode_alt":"","code_decimal":"🇹🇨","name":"turks and caicos islands","shortname":":flag_tc:","category":"flags","emoji_order":"2407","aliases":[":tc:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_td":{"unicode":"1f1f9-1f1e9","unicode_alt":"","code_decimal":"🇹🇩","name":"chad","shortname":":flag_td:","category":"flags","emoji_order":"2408","aliases":[":td:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tf":{"unicode":"1f1f9-1f1eb","unicode_alt":"","code_decimal":"🇹🇫","name":"french southern territories","shortname":":flag_tf:","category":"flags","emoji_order":"2409","aliases":[":tf:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tg":{"unicode":"1f1f9-1f1ec","unicode_alt":"","code_decimal":"🇹🇬","name":"togo","shortname":":flag_tg:","category":"flags","emoji_order":"2410","aliases":[":tg:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_th":{"unicode":"1f1f9-1f1ed","unicode_alt":"","code_decimal":"🇹🇭","name":"thailand","shortname":":flag_th:","category":"flags","emoji_order":"2411","aliases":[":th:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tj":{"unicode":"1f1f9-1f1ef","unicode_alt":"","code_decimal":"🇹🇯","name":"tajikistan","shortname":":flag_tj:","category":"flags","emoji_order":"2412","aliases":[":tj:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tk":{"unicode":"1f1f9-1f1f0","unicode_alt":"","code_decimal":"🇹🇰","name":"tokelau","shortname":":flag_tk:","category":"flags","emoji_order":"2413","aliases":[":tk:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tl":{"unicode":"1f1f9-1f1f1","unicode_alt":"","code_decimal":"🇹🇱","name":"timor-leste","shortname":":flag_tl:","category":"flags","emoji_order":"2414","aliases":[":tl:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tm":{"unicode":"1f1f9-1f1f2","unicode_alt":"","code_decimal":"🇹🇲","name":"turkmenistan","shortname":":flag_tm:","category":"flags","emoji_order":"2415","aliases":[":turkmenistan:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tn":{"unicode":"1f1f9-1f1f3","unicode_alt":"","code_decimal":"🇹🇳","name":"tunisia","shortname":":flag_tn:","category":"flags","emoji_order":"2416","aliases":[":tn:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_to":{"unicode":"1f1f9-1f1f4","unicode_alt":"","code_decimal":"🇹🇴","name":"tonga","shortname":":flag_to:","category":"flags","emoji_order":"2417","aliases":[":to:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tr":{"unicode":"1f1f9-1f1f7","unicode_alt":"","code_decimal":"🇹🇷","name":"turkey","shortname":":flag_tr:","category":"flags","emoji_order":"2418","aliases":[":tr:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tt":{"unicode":"1f1f9-1f1f9","unicode_alt":"","code_decimal":"🇹🇹","name":"trinidad and tobago","shortname":":flag_tt:","category":"flags","emoji_order":"2419","aliases":[":tt:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tv":{"unicode":"1f1f9-1f1fb","unicode_alt":"","code_decimal":"🇹🇻","name":"tuvalu","shortname":":flag_tv:","category":"flags","emoji_order":"2420","aliases":[":tuvalu:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tw":{"unicode":"1f1f9-1f1fc","unicode_alt":"","code_decimal":"🇹🇼","name":"the republic of china","shortname":":flag_tw:","category":"flags","emoji_order":"2421","aliases":[":tw:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_tz":{"unicode":"1f1f9-1f1ff","unicode_alt":"","code_decimal":"🇹🇿","name":"tanzania","shortname":":flag_tz:","category":"flags","emoji_order":"2422","aliases":[":tz:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ua":{"unicode":"1f1fa-1f1e6","unicode_alt":"","code_decimal":"🇺🇦","name":"ukraine","shortname":":flag_ua:","category":"flags","emoji_order":"2423","aliases":[":ua:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ug":{"unicode":"1f1fa-1f1ec","unicode_alt":"","code_decimal":"🇺🇬","name":"uganda","shortname":":flag_ug:","category":"flags","emoji_order":"2424","aliases":[":ug:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_um":{"unicode":"1f1fa-1f1f2","unicode_alt":"","code_decimal":"🇺🇲","name":"united states minor outlying islands","shortname":":flag_um:","category":"flags","emoji_order":"2425","aliases":[":um:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_us":{"unicode":"1f1fa-1f1f8","unicode_alt":"","code_decimal":"🇺🇸","name":"united states","shortname":":flag_us:","category":"flags","emoji_order":"2427","aliases":[":us:"],"aliases_ascii":[],"keywords":["america","country","flag"]},"flag_uy":{"unicode":"1f1fa-1f1fe","unicode_alt":"","code_decimal":"🇺🇾","name":"uruguay","shortname":":flag_uy:","category":"flags","emoji_order":"2428","aliases":[":uy:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_uz":{"unicode":"1f1fa-1f1ff","unicode_alt":"","code_decimal":"🇺🇿","name":"uzbekistan","shortname":":flag_uz:","category":"flags","emoji_order":"2429","aliases":[":uz:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_va":{"unicode":"1f1fb-1f1e6","unicode_alt":"","code_decimal":"🇻🇦","name":"the vatican city","shortname":":flag_va:","category":"flags","emoji_order":"2430","aliases":[":va:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_vc":{"unicode":"1f1fb-1f1e8","unicode_alt":"","code_decimal":"🇻🇨","name":"saint vincent and the grenadines","shortname":":flag_vc:","category":"flags","emoji_order":"2431","aliases":[":vc:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ve":{"unicode":"1f1fb-1f1ea","unicode_alt":"","code_decimal":"🇻🇪","name":"venezuela","shortname":":flag_ve:","category":"flags","emoji_order":"2432","aliases":[":ve:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_vg":{"unicode":"1f1fb-1f1ec","unicode_alt":"","code_decimal":"🇻🇬","name":"british virgin islands","shortname":":flag_vg:","category":"flags","emoji_order":"2433","aliases":[":vg:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_vi":{"unicode":"1f1fb-1f1ee","unicode_alt":"","code_decimal":"🇻🇮","name":"u.s. virgin islands","shortname":":flag_vi:","category":"flags","emoji_order":"2434","aliases":[":vi:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_vn":{"unicode":"1f1fb-1f1f3","unicode_alt":"","code_decimal":"🇻🇳","name":"vietnam","shortname":":flag_vn:","category":"flags","emoji_order":"2435","aliases":[":vn:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_vu":{"unicode":"1f1fb-1f1fa","unicode_alt":"","code_decimal":"🇻🇺","name":"vanuatu","shortname":":flag_vu:","category":"flags","emoji_order":"2436","aliases":[":vu:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_wf":{"unicode":"1f1fc-1f1eb","unicode_alt":"","code_decimal":"🇼🇫","name":"wallis and futuna","shortname":":flag_wf:","category":"flags","emoji_order":"2437","aliases":[":wf:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ws":{"unicode":"1f1fc-1f1f8","unicode_alt":"","code_decimal":"🇼🇸","name":"samoa","shortname":":flag_ws:","category":"flags","emoji_order":"2438","aliases":[":ws:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_xk":{"unicode":"1f1fd-1f1f0","unicode_alt":"","code_decimal":"🇽🇰","name":"kosovo","shortname":":flag_xk:","category":"flags","emoji_order":"2439","aliases":[":xk:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_ye":{"unicode":"1f1fe-1f1ea","unicode_alt":"","code_decimal":"🇾🇪","name":"yemen","shortname":":flag_ye:","category":"flags","emoji_order":"2440","aliases":[":ye:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_yt":{"unicode":"1f1fe-1f1f9","unicode_alt":"","code_decimal":"🇾🇹","name":"mayotte","shortname":":flag_yt:","category":"flags","emoji_order":"2441","aliases":[":yt:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_za":{"unicode":"1f1ff-1f1e6","unicode_alt":"","code_decimal":"🇿🇦","name":"south africa","shortname":":flag_za:","category":"flags","emoji_order":"2442","aliases":[":za:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_zm":{"unicode":"1f1ff-1f1f2","unicode_alt":"","code_decimal":"🇿🇲","name":"zambia","shortname":":flag_zm:","category":"flags","emoji_order":"2443","aliases":[":zm:"],"aliases_ascii":[],"keywords":["country","flag"]},"flag_zw":{"unicode":"1f1ff-1f1fc","unicode_alt":"","code_decimal":"🇿🇼","name":"zimbabwe","shortname":":flag_zw:","category":"flags","emoji_order":"2444","aliases":[":zw:"],"aliases_ascii":[],"keywords":["country","flag"]},"regional_indicator_z":{"unicode":"1f1ff","unicode_alt":"","code_decimal":"🇿","name":"regional indicator symbol letter z","shortname":":regional_indicator_z:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_y":{"unicode":"1f1fe","unicode_alt":"","code_decimal":"🇾","name":"regional indicator symbol letter y","shortname":":regional_indicator_y:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_x":{"unicode":"1f1fd","unicode_alt":"","code_decimal":"🇽","name":"regional indicator symbol letter x","shortname":":regional_indicator_x:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_w":{"unicode":"1f1fc","unicode_alt":"","code_decimal":"🇼","name":"regional indicator symbol letter w","shortname":":regional_indicator_w:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_v":{"unicode":"1f1fb","unicode_alt":"","code_decimal":"🇻","name":"regional indicator symbol letter v","shortname":":regional_indicator_v:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_u":{"unicode":"1f1fa","unicode_alt":"","code_decimal":"🇺","name":"regional indicator symbol letter u","shortname":":regional_indicator_u:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_t":{"unicode":"1f1f9","unicode_alt":"","code_decimal":"🇹","name":"regional indicator symbol letter t","shortname":":regional_indicator_t:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_s":{"unicode":"1f1f8","unicode_alt":"","code_decimal":"🇸","name":"regional indicator symbol letter s","shortname":":regional_indicator_s:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_r":{"unicode":"1f1f7","unicode_alt":"","code_decimal":"🇷","name":"regional indicator symbol letter r","shortname":":regional_indicator_r:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_q":{"unicode":"1f1f6","unicode_alt":"","code_decimal":"🇶","name":"regional indicator symbol letter q","shortname":":regional_indicator_q:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_p":{"unicode":"1f1f5","unicode_alt":"","code_decimal":"🇵","name":"regional indicator symbol letter p","shortname":":regional_indicator_p:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_o":{"unicode":"1f1f4","unicode_alt":"","code_decimal":"🇴","name":"regional indicator symbol letter o","shortname":":regional_indicator_o:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_n":{"unicode":"1f1f3","unicode_alt":"","code_decimal":"🇳","name":"regional indicator symbol letter n","shortname":":regional_indicator_n:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_m":{"unicode":"1f1f2","unicode_alt":"","code_decimal":"🇲","name":"regional indicator symbol letter m","shortname":":regional_indicator_m:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_l":{"unicode":"1f1f1","unicode_alt":"","code_decimal":"🇱","name":"regional indicator symbol letter l","shortname":":regional_indicator_l:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_k":{"unicode":"1f1f0","unicode_alt":"","code_decimal":"🇰","name":"regional indicator symbol letter k","shortname":":regional_indicator_k:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_j":{"unicode":"1f1ef","unicode_alt":"","code_decimal":"🇯","name":"regional indicator symbol letter j","shortname":":regional_indicator_j:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_i":{"unicode":"1f1ee","unicode_alt":"","code_decimal":"🇮","name":"regional indicator symbol letter i","shortname":":regional_indicator_i:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_h":{"unicode":"1f1ed","unicode_alt":"","code_decimal":"🇭","name":"regional indicator symbol letter h","shortname":":regional_indicator_h:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_g":{"unicode":"1f1ec","unicode_alt":"","code_decimal":"🇬","name":"regional indicator symbol letter g","shortname":":regional_indicator_g:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_f":{"unicode":"1f1eb","unicode_alt":"","code_decimal":"🇫","name":"regional indicator symbol letter f","shortname":":regional_indicator_f:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_e":{"unicode":"1f1ea","unicode_alt":"","code_decimal":"🇪","name":"regional indicator symbol letter e","shortname":":regional_indicator_e:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_d":{"unicode":"1f1e9","unicode_alt":"","code_decimal":"🇩","name":"regional indicator symbol letter d","shortname":":regional_indicator_d:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_c":{"unicode":"1f1e8","unicode_alt":"","code_decimal":"🇨","name":"regional indicator symbol letter c","shortname":":regional_indicator_c:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_b":{"unicode":"1f1e7","unicode_alt":"","code_decimal":"🇧","name":"regional indicator symbol letter b","shortname":":regional_indicator_b:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]},"regional_indicator_a":{"unicode":"1f1e6","unicode_alt":"","code_decimal":"🇦","name":"regional indicator symbol letter a","shortname":":regional_indicator_a:","category":"regional","emoji_order":"12345","aliases":[],"aliases_ascii":[],"keywords":[]}}
\ No newline at end of file
diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake
new file mode 100644
index 0000000000..44896afc7b
--- /dev/null
+++ b/lib/tasks/assets.rake
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+def render_static_page(action, dest:, **opts)
+ I18n.with_locale(ENV['DEFAULT_LOCALE'] || I18n.default_locale) do
+ html = ApplicationController.render(action, opts)
+ File.write(dest, html)
+ end
+end
+
+namespace :assets do
+ desc 'Generate static pages'
+ task :generate_static_pages do
+ render_static_page 'errors/500', layout: 'error', dest: Rails.root.join('public', '500.html')
+ end
+end
+
+if Rake::Task.task_defined?('assets:precompile')
+ Rake::Task['assets:precompile'].enhance do
+ Webpacker.manifest.refresh
+ Rake::Task['assets:generate_static_pages'].invoke
+ end
+end
diff --git a/lib/tasks/emojis.rake b/lib/tasks/emojis.rake
new file mode 100644
index 0000000000..cd5e30e968
--- /dev/null
+++ b/lib/tasks/emojis.rake
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+def codepoints_to_filename(codepoints)
+ codepoints.downcase.gsub(/\A[0]+/, '').tr(' ', '-')
+end
+
+def codepoints_to_unicode(codepoints)
+ if codepoints.include?(' ')
+ codepoints.split(' ').map(&:hex).pack('U*')
+ else
+ [codepoints.hex].pack('U')
+ end
+end
+
+namespace :emojis do
+ desc 'Generate a unicode to filename mapping'
+ task :generate do
+ source = 'http://www.unicode.org/Public/emoji/5.0/emoji-test.txt'
+ codes = []
+ dest = Rails.root.join('app', 'javascript', 'mastodon', 'emoji_map.json')
+
+ puts "Downloading emojos from source... (#{source})"
+
+ HTTP.get(source).to_s.split("\n").each do |line|
+ next if line.start_with? '#'
+ parts = line.split(';').map(&:strip)
+ next if parts.size < 2
+ codes << [parts[0], parts[1].start_with?('fully-qualified')]
+ end
+
+ grouped_codes = codes.reduce([]) do |agg, current|
+ if current[1]
+ agg << [current[0]]
+ else
+ agg.last << current[0]
+ agg
+ end
+ end
+
+ existence_maps = grouped_codes.map { |c| c.map { |cc| [cc, File.exist?(Rails.root.join('public', 'emoji', codepoints_to_filename(cc) + '.svg'))] }.to_h }
+ map = {}
+
+ existence_maps.each do |group|
+ existing_one = group.key(true)
+
+ group.each_key do |key|
+ map[codepoints_to_unicode(key)] = codepoints_to_filename(existing_one)
+ end
+ end
+
+ map = map.sort { |a, b| a[0].size <=> b[0].size }.to_h
+
+ File.write(dest, Oj.dump(map))
+ puts "Wrote emojo to destination! (#{dest})"
+ end
+end
diff --git a/package.json b/package.json
index 228dd1f257..7835a04408 100644
--- a/package.json
+++ b/package.json
@@ -45,6 +45,7 @@
"css-loader": "^0.28.4",
"detect-passive-events": "^1.0.2",
"dotenv": "^4.0.0",
+ "emoji-mart": "^1.0.1",
"emojione": "^2.2.7",
"emojione-picker": "^2.2.1",
"es6-symbol": "^3.1.1",
@@ -88,11 +89,13 @@
"react-intl": "^2.4.0",
"react-motion": "^0.5.0",
"react-notification": "^6.7.1",
+ "react-overlays": "^0.8.1",
"react-redux": "^5.0.4",
"react-redux-loading-bar": "^2.9.2",
"react-router-dom": "^4.1.1",
"react-router-scroll": "ytase/react-router-scroll#build",
"react-simple-dropdown": "^3.0.0",
+ "react-sizeme": "^2.3.5",
"react-swipeable-views": "^0.12.3",
"react-textarea-autosize": "^5.0.7",
"react-toggle": "^4.0.1",
diff --git a/public/500.html b/public/500.html
index 5812bb476b..e69de29bb2 100644
--- a/public/500.html
+++ b/public/500.html
@@ -1,43 +0,0 @@
-
-
-
-
- We're sorry, but something went wrong
-
-
-
-
-
-
-
-
-
-
-
We're sorry, but something went wrong.
-
-
-
-
diff --git a/public/emoji/0023-20e3.png b/public/emoji/0023-20e3.png
deleted file mode 100644
index 6e26f0070b..0000000000
Binary files a/public/emoji/0023-20e3.png and /dev/null differ
diff --git a/public/emoji/0023-20e3.svg b/public/emoji/0023-20e3.svg
deleted file mode 100644
index a29d90113c..0000000000
--- a/public/emoji/0023-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0023.png b/public/emoji/0023.png
deleted file mode 100644
index 811f22af83..0000000000
Binary files a/public/emoji/0023.png and /dev/null differ
diff --git a/public/emoji/0023.svg b/public/emoji/0023.svg
deleted file mode 100644
index 76c606dd03..0000000000
--- a/public/emoji/0023.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/002a-20e3.png b/public/emoji/002a-20e3.png
deleted file mode 100644
index 2f8e511380..0000000000
Binary files a/public/emoji/002a-20e3.png and /dev/null differ
diff --git a/public/emoji/002a-20e3.svg b/public/emoji/002a-20e3.svg
deleted file mode 100644
index bc3b2e6eb9..0000000000
--- a/public/emoji/002a-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/002a.png b/public/emoji/002a.png
deleted file mode 100644
index c39443e24a..0000000000
Binary files a/public/emoji/002a.png and /dev/null differ
diff --git a/public/emoji/002a.svg b/public/emoji/002a.svg
deleted file mode 100644
index 2584149042..0000000000
--- a/public/emoji/002a.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0030-20e3.png b/public/emoji/0030-20e3.png
deleted file mode 100644
index 13aca83e01..0000000000
Binary files a/public/emoji/0030-20e3.png and /dev/null differ
diff --git a/public/emoji/0030-20e3.svg b/public/emoji/0030-20e3.svg
deleted file mode 100644
index 57dc889092..0000000000
--- a/public/emoji/0030-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0030.png b/public/emoji/0030.png
deleted file mode 100644
index e730b28dfe..0000000000
Binary files a/public/emoji/0030.png and /dev/null differ
diff --git a/public/emoji/0030.svg b/public/emoji/0030.svg
deleted file mode 100644
index 8ea076ce9c..0000000000
--- a/public/emoji/0030.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0031-20e3.png b/public/emoji/0031-20e3.png
deleted file mode 100644
index e6d84b8012..0000000000
Binary files a/public/emoji/0031-20e3.png and /dev/null differ
diff --git a/public/emoji/0031-20e3.svg b/public/emoji/0031-20e3.svg
deleted file mode 100644
index e18178a177..0000000000
--- a/public/emoji/0031-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0031.png b/public/emoji/0031.png
deleted file mode 100644
index 9c4cbd6f7f..0000000000
Binary files a/public/emoji/0031.png and /dev/null differ
diff --git a/public/emoji/0031.svg b/public/emoji/0031.svg
deleted file mode 100644
index c0ca63e68d..0000000000
--- a/public/emoji/0031.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0032-20e3.png b/public/emoji/0032-20e3.png
deleted file mode 100644
index 927339c9bf..0000000000
Binary files a/public/emoji/0032-20e3.png and /dev/null differ
diff --git a/public/emoji/0032-20e3.svg b/public/emoji/0032-20e3.svg
deleted file mode 100644
index c2eb5bd504..0000000000
--- a/public/emoji/0032-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0032.png b/public/emoji/0032.png
deleted file mode 100644
index 9a0b49a0e0..0000000000
Binary files a/public/emoji/0032.png and /dev/null differ
diff --git a/public/emoji/0032.svg b/public/emoji/0032.svg
deleted file mode 100644
index abd01370ae..0000000000
--- a/public/emoji/0032.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0033-20e3.png b/public/emoji/0033-20e3.png
deleted file mode 100644
index dbaa6183e7..0000000000
Binary files a/public/emoji/0033-20e3.png and /dev/null differ
diff --git a/public/emoji/0033-20e3.svg b/public/emoji/0033-20e3.svg
deleted file mode 100644
index 2952760137..0000000000
--- a/public/emoji/0033-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0033.png b/public/emoji/0033.png
deleted file mode 100644
index bc898b986e..0000000000
Binary files a/public/emoji/0033.png and /dev/null differ
diff --git a/public/emoji/0033.svg b/public/emoji/0033.svg
deleted file mode 100644
index 3136230ffd..0000000000
--- a/public/emoji/0033.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0034-20e3.png b/public/emoji/0034-20e3.png
deleted file mode 100644
index b0e914aac4..0000000000
Binary files a/public/emoji/0034-20e3.png and /dev/null differ
diff --git a/public/emoji/0034-20e3.svg b/public/emoji/0034-20e3.svg
deleted file mode 100644
index f530a75424..0000000000
--- a/public/emoji/0034-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0034.png b/public/emoji/0034.png
deleted file mode 100644
index 7216ee32bd..0000000000
Binary files a/public/emoji/0034.png and /dev/null differ
diff --git a/public/emoji/0034.svg b/public/emoji/0034.svg
deleted file mode 100644
index 1722ee9586..0000000000
--- a/public/emoji/0034.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0035-20e3.png b/public/emoji/0035-20e3.png
deleted file mode 100644
index d14371f3f2..0000000000
Binary files a/public/emoji/0035-20e3.png and /dev/null differ
diff --git a/public/emoji/0035-20e3.svg b/public/emoji/0035-20e3.svg
deleted file mode 100644
index dc4e1d81a5..0000000000
--- a/public/emoji/0035-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0035.png b/public/emoji/0035.png
deleted file mode 100644
index c64709a7e7..0000000000
Binary files a/public/emoji/0035.png and /dev/null differ
diff --git a/public/emoji/0035.svg b/public/emoji/0035.svg
deleted file mode 100644
index 3e7717f08b..0000000000
--- a/public/emoji/0035.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0036-20e3.png b/public/emoji/0036-20e3.png
deleted file mode 100644
index 371b3acef2..0000000000
Binary files a/public/emoji/0036-20e3.png and /dev/null differ
diff --git a/public/emoji/0036-20e3.svg b/public/emoji/0036-20e3.svg
deleted file mode 100644
index 9ce3a594fe..0000000000
--- a/public/emoji/0036-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0036.png b/public/emoji/0036.png
deleted file mode 100644
index 68e1e71e4b..0000000000
Binary files a/public/emoji/0036.png and /dev/null differ
diff --git a/public/emoji/0036.svg b/public/emoji/0036.svg
deleted file mode 100644
index 2ff6d93906..0000000000
--- a/public/emoji/0036.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0037-20e3.png b/public/emoji/0037-20e3.png
deleted file mode 100644
index 9b3476ae7c..0000000000
Binary files a/public/emoji/0037-20e3.png and /dev/null differ
diff --git a/public/emoji/0037-20e3.svg b/public/emoji/0037-20e3.svg
deleted file mode 100644
index 1f01b9db89..0000000000
--- a/public/emoji/0037-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0037.png b/public/emoji/0037.png
deleted file mode 100644
index e4aa065c62..0000000000
Binary files a/public/emoji/0037.png and /dev/null differ
diff --git a/public/emoji/0037.svg b/public/emoji/0037.svg
deleted file mode 100644
index 6079e49306..0000000000
--- a/public/emoji/0037.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0038-20e3.png b/public/emoji/0038-20e3.png
deleted file mode 100644
index 8c95874d4c..0000000000
Binary files a/public/emoji/0038-20e3.png and /dev/null differ
diff --git a/public/emoji/0038-20e3.svg b/public/emoji/0038-20e3.svg
deleted file mode 100644
index b6ed90a32c..0000000000
--- a/public/emoji/0038-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0038.png b/public/emoji/0038.png
deleted file mode 100644
index 27eae28e69..0000000000
Binary files a/public/emoji/0038.png and /dev/null differ
diff --git a/public/emoji/0038.svg b/public/emoji/0038.svg
deleted file mode 100644
index 014bf26318..0000000000
--- a/public/emoji/0038.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0039-20e3.png b/public/emoji/0039-20e3.png
deleted file mode 100644
index 9fce3d1eca..0000000000
Binary files a/public/emoji/0039-20e3.png and /dev/null differ
diff --git a/public/emoji/0039-20e3.svg b/public/emoji/0039-20e3.svg
deleted file mode 100644
index c883419705..0000000000
--- a/public/emoji/0039-20e3.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/0039.png b/public/emoji/0039.png
deleted file mode 100644
index fd9e980552..0000000000
Binary files a/public/emoji/0039.png and /dev/null differ
diff --git a/public/emoji/0039.svg b/public/emoji/0039.svg
deleted file mode 100644
index afda6d7b6d..0000000000
--- a/public/emoji/0039.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/00a9.png b/public/emoji/00a9.png
deleted file mode 100644
index 6b9a6adbfd..0000000000
Binary files a/public/emoji/00a9.png and /dev/null differ
diff --git a/public/emoji/00a9.svg b/public/emoji/00a9.svg
deleted file mode 100644
index 68a7702274..0000000000
--- a/public/emoji/00a9.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/00ae.png b/public/emoji/00ae.png
deleted file mode 100644
index 53ef9f2d4e..0000000000
Binary files a/public/emoji/00ae.png and /dev/null differ
diff --git a/public/emoji/00ae.svg b/public/emoji/00ae.svg
deleted file mode 100644
index 8b084f6bf6..0000000000
--- a/public/emoji/00ae.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f004.png b/public/emoji/1f004.png
deleted file mode 100644
index 66fd32025b..0000000000
Binary files a/public/emoji/1f004.png and /dev/null differ
diff --git a/public/emoji/1f004.svg b/public/emoji/1f004.svg
index 45867fb5a2..f6f39e4338 100644
--- a/public/emoji/1f004.svg
+++ b/public/emoji/1f004.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f0cf.png b/public/emoji/1f0cf.png
deleted file mode 100644
index 3d0924b68a..0000000000
Binary files a/public/emoji/1f0cf.png and /dev/null differ
diff --git a/public/emoji/1f0cf.svg b/public/emoji/1f0cf.svg
index 45ae8abccd..ae95b99541 100644
--- a/public/emoji/1f0cf.svg
+++ b/public/emoji/1f0cf.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f170.png b/public/emoji/1f170.png
deleted file mode 100644
index 8603ff05a1..0000000000
Binary files a/public/emoji/1f170.png and /dev/null differ
diff --git a/public/emoji/1f170.svg b/public/emoji/1f170.svg
index a2ed41f334..c9fc32b717 100644
--- a/public/emoji/1f170.svg
+++ b/public/emoji/1f170.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f171.png b/public/emoji/1f171.png
deleted file mode 100644
index 25875bc6a1..0000000000
Binary files a/public/emoji/1f171.png and /dev/null differ
diff --git a/public/emoji/1f171.svg b/public/emoji/1f171.svg
index d0f8e64940..f7251222d1 100644
--- a/public/emoji/1f171.svg
+++ b/public/emoji/1f171.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f17e.png b/public/emoji/1f17e.png
deleted file mode 100644
index 73278ba194..0000000000
Binary files a/public/emoji/1f17e.png and /dev/null differ
diff --git a/public/emoji/1f17e.svg b/public/emoji/1f17e.svg
index 8844efa531..96c14b4c39 100644
--- a/public/emoji/1f17e.svg
+++ b/public/emoji/1f17e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f17f.png b/public/emoji/1f17f.png
deleted file mode 100644
index 7be7dac27e..0000000000
Binary files a/public/emoji/1f17f.png and /dev/null differ
diff --git a/public/emoji/1f17f.svg b/public/emoji/1f17f.svg
index 5d85644448..33db94984a 100644
--- a/public/emoji/1f17f.svg
+++ b/public/emoji/1f17f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f18e.png b/public/emoji/1f18e.png
deleted file mode 100644
index d9f2d17dea..0000000000
Binary files a/public/emoji/1f18e.png and /dev/null differ
diff --git a/public/emoji/1f18e.svg b/public/emoji/1f18e.svg
index 6c5e8866f9..207d4cf090 100644
--- a/public/emoji/1f18e.svg
+++ b/public/emoji/1f18e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f191.png b/public/emoji/1f191.png
deleted file mode 100644
index 8b01b4343e..0000000000
Binary files a/public/emoji/1f191.png and /dev/null differ
diff --git a/public/emoji/1f191.svg b/public/emoji/1f191.svg
index ef2cbf8962..7334171fdf 100644
--- a/public/emoji/1f191.svg
+++ b/public/emoji/1f191.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f192.png b/public/emoji/1f192.png
deleted file mode 100644
index 74674978d0..0000000000
Binary files a/public/emoji/1f192.png and /dev/null differ
diff --git a/public/emoji/1f192.svg b/public/emoji/1f192.svg
index 4bcdb3b914..86fd7df12b 100644
--- a/public/emoji/1f192.svg
+++ b/public/emoji/1f192.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f193.png b/public/emoji/1f193.png
deleted file mode 100644
index b71956eb48..0000000000
Binary files a/public/emoji/1f193.png and /dev/null differ
diff --git a/public/emoji/1f193.svg b/public/emoji/1f193.svg
index d26b8c27c0..72a80ae583 100644
--- a/public/emoji/1f193.svg
+++ b/public/emoji/1f193.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f194.png b/public/emoji/1f194.png
deleted file mode 100644
index 5bf69bf7ba..0000000000
Binary files a/public/emoji/1f194.png and /dev/null differ
diff --git a/public/emoji/1f194.svg b/public/emoji/1f194.svg
index 0c36d517b7..9d72b800c9 100644
--- a/public/emoji/1f194.svg
+++ b/public/emoji/1f194.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f195.png b/public/emoji/1f195.png
deleted file mode 100644
index b4f85488d1..0000000000
Binary files a/public/emoji/1f195.png and /dev/null differ
diff --git a/public/emoji/1f195.svg b/public/emoji/1f195.svg
index ad6466f5e5..22dad4cf84 100644
--- a/public/emoji/1f195.svg
+++ b/public/emoji/1f195.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f196.png b/public/emoji/1f196.png
deleted file mode 100644
index ee8d20f5eb..0000000000
Binary files a/public/emoji/1f196.png and /dev/null differ
diff --git a/public/emoji/1f196.svg b/public/emoji/1f196.svg
index fe38c95a46..50bf800347 100644
--- a/public/emoji/1f196.svg
+++ b/public/emoji/1f196.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f197.png b/public/emoji/1f197.png
deleted file mode 100644
index d0d775532f..0000000000
Binary files a/public/emoji/1f197.png and /dev/null differ
diff --git a/public/emoji/1f197.svg b/public/emoji/1f197.svg
index c45e4e1c9b..9f43d676fe 100644
--- a/public/emoji/1f197.svg
+++ b/public/emoji/1f197.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f198.png b/public/emoji/1f198.png
deleted file mode 100644
index d7d8c9953e..0000000000
Binary files a/public/emoji/1f198.png and /dev/null differ
diff --git a/public/emoji/1f198.svg b/public/emoji/1f198.svg
index fef773a90c..36cf601170 100644
--- a/public/emoji/1f198.svg
+++ b/public/emoji/1f198.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f199.png b/public/emoji/1f199.png
deleted file mode 100644
index 0d42142ba0..0000000000
Binary files a/public/emoji/1f199.png and /dev/null differ
diff --git a/public/emoji/1f199.svg b/public/emoji/1f199.svg
index f5bc638ac5..1f2d8e60af 100644
--- a/public/emoji/1f199.svg
+++ b/public/emoji/1f199.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f19a.png b/public/emoji/1f19a.png
deleted file mode 100644
index e1180f4a46..0000000000
Binary files a/public/emoji/1f19a.png and /dev/null differ
diff --git a/public/emoji/1f19a.svg b/public/emoji/1f19a.svg
index 6d2545d60d..af8f685dcc 100644
--- a/public/emoji/1f19a.svg
+++ b/public/emoji/1f19a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1e8.png b/public/emoji/1f1e6-1f1e8.png
deleted file mode 100644
index 286239920c..0000000000
Binary files a/public/emoji/1f1e6-1f1e8.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1e8.svg b/public/emoji/1f1e6-1f1e8.svg
index 23d7009995..588d4e8bfd 100644
--- a/public/emoji/1f1e6-1f1e8.svg
+++ b/public/emoji/1f1e6-1f1e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1e9.png b/public/emoji/1f1e6-1f1e9.png
deleted file mode 100644
index 20f4b14e8a..0000000000
Binary files a/public/emoji/1f1e6-1f1e9.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1e9.svg b/public/emoji/1f1e6-1f1e9.svg
index 0340b9d6d0..e0e8608b88 100644
--- a/public/emoji/1f1e6-1f1e9.svg
+++ b/public/emoji/1f1e6-1f1e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1ea.png b/public/emoji/1f1e6-1f1ea.png
deleted file mode 100644
index d16ffe4b86..0000000000
Binary files a/public/emoji/1f1e6-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1ea.svg b/public/emoji/1f1e6-1f1ea.svg
index 6610e894cd..571251753c 100644
--- a/public/emoji/1f1e6-1f1ea.svg
+++ b/public/emoji/1f1e6-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1eb.png b/public/emoji/1f1e6-1f1eb.png
deleted file mode 100644
index a51533b554..0000000000
Binary files a/public/emoji/1f1e6-1f1eb.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1eb.svg b/public/emoji/1f1e6-1f1eb.svg
index e1998a6b2e..9e880f92e3 100644
--- a/public/emoji/1f1e6-1f1eb.svg
+++ b/public/emoji/1f1e6-1f1eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1ec.png b/public/emoji/1f1e6-1f1ec.png
deleted file mode 100644
index 07f2ce397d..0000000000
Binary files a/public/emoji/1f1e6-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1ec.svg b/public/emoji/1f1e6-1f1ec.svg
index 0bcf4ebdc0..10d53620ba 100644
--- a/public/emoji/1f1e6-1f1ec.svg
+++ b/public/emoji/1f1e6-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1ee.png b/public/emoji/1f1e6-1f1ee.png
deleted file mode 100644
index 500b5ab09f..0000000000
Binary files a/public/emoji/1f1e6-1f1ee.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1ee.svg b/public/emoji/1f1e6-1f1ee.svg
index c117d60875..cf17878e07 100644
--- a/public/emoji/1f1e6-1f1ee.svg
+++ b/public/emoji/1f1e6-1f1ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1f1.png b/public/emoji/1f1e6-1f1f1.png
deleted file mode 100644
index 03a20132cc..0000000000
Binary files a/public/emoji/1f1e6-1f1f1.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1f1.svg b/public/emoji/1f1e6-1f1f1.svg
index 62c373cb04..5de35c369b 100644
--- a/public/emoji/1f1e6-1f1f1.svg
+++ b/public/emoji/1f1e6-1f1f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1f2.png b/public/emoji/1f1e6-1f1f2.png
deleted file mode 100644
index 2ad60a273e..0000000000
Binary files a/public/emoji/1f1e6-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1f2.svg b/public/emoji/1f1e6-1f1f2.svg
index 619935b02a..0b87990ccf 100644
--- a/public/emoji/1f1e6-1f1f2.svg
+++ b/public/emoji/1f1e6-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1f4.png b/public/emoji/1f1e6-1f1f4.png
deleted file mode 100644
index cb46c31f86..0000000000
Binary files a/public/emoji/1f1e6-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1f4.svg b/public/emoji/1f1e6-1f1f4.svg
index 7440d2d238..32692e12dd 100644
--- a/public/emoji/1f1e6-1f1f4.svg
+++ b/public/emoji/1f1e6-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1f6.png b/public/emoji/1f1e6-1f1f6.png
deleted file mode 100644
index b272021d37..0000000000
Binary files a/public/emoji/1f1e6-1f1f6.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1f6.svg b/public/emoji/1f1e6-1f1f6.svg
index 476eac8817..8f82509901 100644
--- a/public/emoji/1f1e6-1f1f6.svg
+++ b/public/emoji/1f1e6-1f1f6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1f7.png b/public/emoji/1f1e6-1f1f7.png
deleted file mode 100644
index 73136caf3b..0000000000
Binary files a/public/emoji/1f1e6-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1f7.svg b/public/emoji/1f1e6-1f1f7.svg
index 040ef76bb4..983c6df9dc 100644
--- a/public/emoji/1f1e6-1f1f7.svg
+++ b/public/emoji/1f1e6-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1f8.png b/public/emoji/1f1e6-1f1f8.png
deleted file mode 100644
index 3db45a0d9f..0000000000
Binary files a/public/emoji/1f1e6-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1f8.svg b/public/emoji/1f1e6-1f1f8.svg
index 158d0c6f41..d4334d65cd 100644
--- a/public/emoji/1f1e6-1f1f8.svg
+++ b/public/emoji/1f1e6-1f1f8.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1f9.png b/public/emoji/1f1e6-1f1f9.png
deleted file mode 100644
index c43769dcb1..0000000000
Binary files a/public/emoji/1f1e6-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1f9.svg b/public/emoji/1f1e6-1f1f9.svg
index 407ac40351..ea3c039e5f 100644
--- a/public/emoji/1f1e6-1f1f9.svg
+++ b/public/emoji/1f1e6-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1fa.png b/public/emoji/1f1e6-1f1fa.png
deleted file mode 100644
index 7794309c78..0000000000
Binary files a/public/emoji/1f1e6-1f1fa.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1fa.svg b/public/emoji/1f1e6-1f1fa.svg
index 48ab1dc09a..986705ff93 100644
--- a/public/emoji/1f1e6-1f1fa.svg
+++ b/public/emoji/1f1e6-1f1fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1fc.png b/public/emoji/1f1e6-1f1fc.png
deleted file mode 100644
index 02c840d12c..0000000000
Binary files a/public/emoji/1f1e6-1f1fc.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1fc.svg b/public/emoji/1f1e6-1f1fc.svg
index ab3f2d0574..3ec298915e 100644
--- a/public/emoji/1f1e6-1f1fc.svg
+++ b/public/emoji/1f1e6-1f1fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1fd.png b/public/emoji/1f1e6-1f1fd.png
deleted file mode 100644
index fc5466174b..0000000000
Binary files a/public/emoji/1f1e6-1f1fd.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1fd.svg b/public/emoji/1f1e6-1f1fd.svg
index 81ab225514..939ea37c7e 100644
--- a/public/emoji/1f1e6-1f1fd.svg
+++ b/public/emoji/1f1e6-1f1fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6-1f1ff.png b/public/emoji/1f1e6-1f1ff.png
deleted file mode 100644
index 89d3d15fd9..0000000000
Binary files a/public/emoji/1f1e6-1f1ff.png and /dev/null differ
diff --git a/public/emoji/1f1e6-1f1ff.svg b/public/emoji/1f1e6-1f1ff.svg
index 4ac419fbcf..d05dffbc2a 100644
--- a/public/emoji/1f1e6-1f1ff.svg
+++ b/public/emoji/1f1e6-1f1ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e6.png b/public/emoji/1f1e6.png
deleted file mode 100644
index 2b6c439561..0000000000
Binary files a/public/emoji/1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1e6.svg b/public/emoji/1f1e6.svg
index 5670a81a09..845aea33b6 100644
--- a/public/emoji/1f1e6.svg
+++ b/public/emoji/1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1e6.png b/public/emoji/1f1e7-1f1e6.png
deleted file mode 100644
index 25fe407e13..0000000000
Binary files a/public/emoji/1f1e7-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1e6.svg b/public/emoji/1f1e7-1f1e6.svg
index 9c14bd4b67..e30dd2cb30 100644
--- a/public/emoji/1f1e7-1f1e6.svg
+++ b/public/emoji/1f1e7-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1e7.png b/public/emoji/1f1e7-1f1e7.png
deleted file mode 100644
index bccd8c5c9b..0000000000
Binary files a/public/emoji/1f1e7-1f1e7.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1e7.svg b/public/emoji/1f1e7-1f1e7.svg
index 6bf8ae2cdd..2eeb182555 100644
--- a/public/emoji/1f1e7-1f1e7.svg
+++ b/public/emoji/1f1e7-1f1e7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1e9.png b/public/emoji/1f1e7-1f1e9.png
deleted file mode 100644
index b0597a3149..0000000000
Binary files a/public/emoji/1f1e7-1f1e9.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1e9.svg b/public/emoji/1f1e7-1f1e9.svg
index e2713372a6..5d16a3f3a1 100644
--- a/public/emoji/1f1e7-1f1e9.svg
+++ b/public/emoji/1f1e7-1f1e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1ea.png b/public/emoji/1f1e7-1f1ea.png
deleted file mode 100644
index 551f086e3c..0000000000
Binary files a/public/emoji/1f1e7-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1ea.svg b/public/emoji/1f1e7-1f1ea.svg
index 085c2cdb6d..18a9d1bb16 100644
--- a/public/emoji/1f1e7-1f1ea.svg
+++ b/public/emoji/1f1e7-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1eb.png b/public/emoji/1f1e7-1f1eb.png
deleted file mode 100644
index 444d4829f9..0000000000
Binary files a/public/emoji/1f1e7-1f1eb.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1eb.svg b/public/emoji/1f1e7-1f1eb.svg
index eeb129a771..769b898c90 100644
--- a/public/emoji/1f1e7-1f1eb.svg
+++ b/public/emoji/1f1e7-1f1eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1ec.png b/public/emoji/1f1e7-1f1ec.png
deleted file mode 100644
index 821eee5e17..0000000000
Binary files a/public/emoji/1f1e7-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1ec.svg b/public/emoji/1f1e7-1f1ec.svg
index f6a6723c04..4caa980b1b 100644
--- a/public/emoji/1f1e7-1f1ec.svg
+++ b/public/emoji/1f1e7-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1ed.png b/public/emoji/1f1e7-1f1ed.png
deleted file mode 100644
index f33724249f..0000000000
Binary files a/public/emoji/1f1e7-1f1ed.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1ed.svg b/public/emoji/1f1e7-1f1ed.svg
index f708818b1f..8ee8c0818b 100644
--- a/public/emoji/1f1e7-1f1ed.svg
+++ b/public/emoji/1f1e7-1f1ed.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1ee.png b/public/emoji/1f1e7-1f1ee.png
deleted file mode 100644
index ea20ac9321..0000000000
Binary files a/public/emoji/1f1e7-1f1ee.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1ee.svg b/public/emoji/1f1e7-1f1ee.svg
index 7ea0077c0d..4b0122f058 100644
--- a/public/emoji/1f1e7-1f1ee.svg
+++ b/public/emoji/1f1e7-1f1ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1ef.png b/public/emoji/1f1e7-1f1ef.png
deleted file mode 100644
index 7cca4f8045..0000000000
Binary files a/public/emoji/1f1e7-1f1ef.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1ef.svg b/public/emoji/1f1e7-1f1ef.svg
index 0e99fb00dc..d3d3435ffd 100644
--- a/public/emoji/1f1e7-1f1ef.svg
+++ b/public/emoji/1f1e7-1f1ef.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1f1.png b/public/emoji/1f1e7-1f1f1.png
deleted file mode 100644
index 1082e78999..0000000000
Binary files a/public/emoji/1f1e7-1f1f1.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1f1.svg b/public/emoji/1f1e7-1f1f1.svg
index ad59884c60..77b2b07bcb 100644
--- a/public/emoji/1f1e7-1f1f1.svg
+++ b/public/emoji/1f1e7-1f1f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1f2.png b/public/emoji/1f1e7-1f1f2.png
deleted file mode 100644
index ab8cafdac6..0000000000
Binary files a/public/emoji/1f1e7-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1f2.svg b/public/emoji/1f1e7-1f1f2.svg
index ba96edd0eb..723f285770 100644
--- a/public/emoji/1f1e7-1f1f2.svg
+++ b/public/emoji/1f1e7-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1f3.png b/public/emoji/1f1e7-1f1f3.png
deleted file mode 100644
index caa9329a89..0000000000
Binary files a/public/emoji/1f1e7-1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1f3.svg b/public/emoji/1f1e7-1f1f3.svg
index 3271af93cc..669fd4045c 100644
--- a/public/emoji/1f1e7-1f1f3.svg
+++ b/public/emoji/1f1e7-1f1f3.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1f4.png b/public/emoji/1f1e7-1f1f4.png
deleted file mode 100644
index 98af62b3da..0000000000
Binary files a/public/emoji/1f1e7-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1f4.svg b/public/emoji/1f1e7-1f1f4.svg
index 49a94e9e91..f702e40b6d 100644
--- a/public/emoji/1f1e7-1f1f4.svg
+++ b/public/emoji/1f1e7-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1f6.png b/public/emoji/1f1e7-1f1f6.png
deleted file mode 100644
index cb978ef9de..0000000000
Binary files a/public/emoji/1f1e7-1f1f6.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1f6.svg b/public/emoji/1f1e7-1f1f6.svg
index a835cb570c..25fad13939 100644
--- a/public/emoji/1f1e7-1f1f6.svg
+++ b/public/emoji/1f1e7-1f1f6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1f7.png b/public/emoji/1f1e7-1f1f7.png
deleted file mode 100644
index b139366a42..0000000000
Binary files a/public/emoji/1f1e7-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1f7.svg b/public/emoji/1f1e7-1f1f7.svg
index 3191070a20..f9b120d64f 100644
--- a/public/emoji/1f1e7-1f1f7.svg
+++ b/public/emoji/1f1e7-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1f8.png b/public/emoji/1f1e7-1f1f8.png
deleted file mode 100644
index d36bcd2fb5..0000000000
Binary files a/public/emoji/1f1e7-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1f8.svg b/public/emoji/1f1e7-1f1f8.svg
index a353225a21..48f72d7f8c 100644
--- a/public/emoji/1f1e7-1f1f8.svg
+++ b/public/emoji/1f1e7-1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1f9.png b/public/emoji/1f1e7-1f1f9.png
deleted file mode 100644
index ed57aa0360..0000000000
Binary files a/public/emoji/1f1e7-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1f9.svg b/public/emoji/1f1e7-1f1f9.svg
index fb5784cc72..ac8ba9d373 100644
--- a/public/emoji/1f1e7-1f1f9.svg
+++ b/public/emoji/1f1e7-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1fb.png b/public/emoji/1f1e7-1f1fb.png
deleted file mode 100644
index 5884e64822..0000000000
Binary files a/public/emoji/1f1e7-1f1fb.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1fb.svg b/public/emoji/1f1e7-1f1fb.svg
index e9f5672c6f..75ed1e94a3 100644
--- a/public/emoji/1f1e7-1f1fb.svg
+++ b/public/emoji/1f1e7-1f1fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1fc.png b/public/emoji/1f1e7-1f1fc.png
deleted file mode 100644
index cb12f34739..0000000000
Binary files a/public/emoji/1f1e7-1f1fc.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1fc.svg b/public/emoji/1f1e7-1f1fc.svg
index 05f152a377..f29ad45ce9 100644
--- a/public/emoji/1f1e7-1f1fc.svg
+++ b/public/emoji/1f1e7-1f1fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1fe.png b/public/emoji/1f1e7-1f1fe.png
deleted file mode 100644
index 859c05beb1..0000000000
Binary files a/public/emoji/1f1e7-1f1fe.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1fe.svg b/public/emoji/1f1e7-1f1fe.svg
index f27068ab6a..b7ba015c3f 100644
--- a/public/emoji/1f1e7-1f1fe.svg
+++ b/public/emoji/1f1e7-1f1fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7-1f1ff.png b/public/emoji/1f1e7-1f1ff.png
deleted file mode 100644
index 34761cd03d..0000000000
Binary files a/public/emoji/1f1e7-1f1ff.png and /dev/null differ
diff --git a/public/emoji/1f1e7-1f1ff.svg b/public/emoji/1f1e7-1f1ff.svg
index a2e5cffc0e..36f0d2e6c5 100644
--- a/public/emoji/1f1e7-1f1ff.svg
+++ b/public/emoji/1f1e7-1f1ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e7.png b/public/emoji/1f1e7.png
deleted file mode 100644
index 8f69fa973e..0000000000
Binary files a/public/emoji/1f1e7.png and /dev/null differ
diff --git a/public/emoji/1f1e7.svg b/public/emoji/1f1e7.svg
index 7590fdd8ea..70bee81333 100644
--- a/public/emoji/1f1e7.svg
+++ b/public/emoji/1f1e7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1e6.png b/public/emoji/1f1e8-1f1e6.png
deleted file mode 100644
index 7c5b390e85..0000000000
Binary files a/public/emoji/1f1e8-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1e6.svg b/public/emoji/1f1e8-1f1e6.svg
index 886c66e27c..555d21808b 100644
--- a/public/emoji/1f1e8-1f1e6.svg
+++ b/public/emoji/1f1e8-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1e8.png b/public/emoji/1f1e8-1f1e8.png
deleted file mode 100644
index b6555a23d8..0000000000
Binary files a/public/emoji/1f1e8-1f1e8.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1e8.svg b/public/emoji/1f1e8-1f1e8.svg
index 8d002807ba..a8d74a752d 100644
--- a/public/emoji/1f1e8-1f1e8.svg
+++ b/public/emoji/1f1e8-1f1e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1e9.png b/public/emoji/1f1e8-1f1e9.png
deleted file mode 100644
index fa92009771..0000000000
Binary files a/public/emoji/1f1e8-1f1e9.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1e9.svg b/public/emoji/1f1e8-1f1e9.svg
index c635b47e7a..1495355e4a 100644
--- a/public/emoji/1f1e8-1f1e9.svg
+++ b/public/emoji/1f1e8-1f1e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1eb.png b/public/emoji/1f1e8-1f1eb.png
deleted file mode 100644
index b969ae29ea..0000000000
Binary files a/public/emoji/1f1e8-1f1eb.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1eb.svg b/public/emoji/1f1e8-1f1eb.svg
index 919121cd3e..d9fcde0a93 100644
--- a/public/emoji/1f1e8-1f1eb.svg
+++ b/public/emoji/1f1e8-1f1eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1ec.png b/public/emoji/1f1e8-1f1ec.png
deleted file mode 100644
index 3a38a40a95..0000000000
Binary files a/public/emoji/1f1e8-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1ec.svg b/public/emoji/1f1e8-1f1ec.svg
index d511520b95..c9496fe12a 100644
--- a/public/emoji/1f1e8-1f1ec.svg
+++ b/public/emoji/1f1e8-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1ed.png b/public/emoji/1f1e8-1f1ed.png
deleted file mode 100644
index 5ff86b8a3b..0000000000
Binary files a/public/emoji/1f1e8-1f1ed.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1ed.svg b/public/emoji/1f1e8-1f1ed.svg
index 507afb3701..46e47864f0 100644
--- a/public/emoji/1f1e8-1f1ed.svg
+++ b/public/emoji/1f1e8-1f1ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1ee.png b/public/emoji/1f1e8-1f1ee.png
deleted file mode 100644
index e3b4d15c7f..0000000000
Binary files a/public/emoji/1f1e8-1f1ee.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1ee.svg b/public/emoji/1f1e8-1f1ee.svg
index 4ae397b288..47188a220b 100644
--- a/public/emoji/1f1e8-1f1ee.svg
+++ b/public/emoji/1f1e8-1f1ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1f0.png b/public/emoji/1f1e8-1f1f0.png
deleted file mode 100644
index b6b53dbc1c..0000000000
Binary files a/public/emoji/1f1e8-1f1f0.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1f0.svg b/public/emoji/1f1e8-1f1f0.svg
index 683223e296..bec3a08369 100644
--- a/public/emoji/1f1e8-1f1f0.svg
+++ b/public/emoji/1f1e8-1f1f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1f1.png b/public/emoji/1f1e8-1f1f1.png
deleted file mode 100644
index c9390da549..0000000000
Binary files a/public/emoji/1f1e8-1f1f1.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1f1.svg b/public/emoji/1f1e8-1f1f1.svg
index 51be06e674..6ebd464530 100644
--- a/public/emoji/1f1e8-1f1f1.svg
+++ b/public/emoji/1f1e8-1f1f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1f2.png b/public/emoji/1f1e8-1f1f2.png
deleted file mode 100644
index 2d3f6ec451..0000000000
Binary files a/public/emoji/1f1e8-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1f2.svg b/public/emoji/1f1e8-1f1f2.svg
index e86d029a4d..e7651a5136 100644
--- a/public/emoji/1f1e8-1f1f2.svg
+++ b/public/emoji/1f1e8-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1f3.png b/public/emoji/1f1e8-1f1f3.png
deleted file mode 100644
index 0a7f350a6d..0000000000
Binary files a/public/emoji/1f1e8-1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1f3.svg b/public/emoji/1f1e8-1f1f3.svg
index 9e5bd6650f..646cea9d95 100644
--- a/public/emoji/1f1e8-1f1f3.svg
+++ b/public/emoji/1f1e8-1f1f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1f4.png b/public/emoji/1f1e8-1f1f4.png
deleted file mode 100644
index 7e0f5e0dc3..0000000000
Binary files a/public/emoji/1f1e8-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1f4.svg b/public/emoji/1f1e8-1f1f4.svg
index 387be03c36..e9cb4f814a 100644
--- a/public/emoji/1f1e8-1f1f4.svg
+++ b/public/emoji/1f1e8-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1f5.png b/public/emoji/1f1e8-1f1f5.png
deleted file mode 100644
index 70c761036b..0000000000
Binary files a/public/emoji/1f1e8-1f1f5.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1f5.svg b/public/emoji/1f1e8-1f1f5.svg
index 16bfba0cfe..359779e7f0 100644
--- a/public/emoji/1f1e8-1f1f5.svg
+++ b/public/emoji/1f1e8-1f1f5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1f7.png b/public/emoji/1f1e8-1f1f7.png
deleted file mode 100644
index a5fce12651..0000000000
Binary files a/public/emoji/1f1e8-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1f7.svg b/public/emoji/1f1e8-1f1f7.svg
index e8510bc058..18dabbc4e1 100644
--- a/public/emoji/1f1e8-1f1f7.svg
+++ b/public/emoji/1f1e8-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1fa.png b/public/emoji/1f1e8-1f1fa.png
deleted file mode 100644
index 447328f7df..0000000000
Binary files a/public/emoji/1f1e8-1f1fa.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1fa.svg b/public/emoji/1f1e8-1f1fa.svg
index ae73709b63..d8c05766c9 100644
--- a/public/emoji/1f1e8-1f1fa.svg
+++ b/public/emoji/1f1e8-1f1fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1fb.png b/public/emoji/1f1e8-1f1fb.png
deleted file mode 100644
index 43faf4d64d..0000000000
Binary files a/public/emoji/1f1e8-1f1fb.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1fb.svg b/public/emoji/1f1e8-1f1fb.svg
index c3c11d6218..d9055e7f3e 100644
--- a/public/emoji/1f1e8-1f1fb.svg
+++ b/public/emoji/1f1e8-1f1fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1fc.png b/public/emoji/1f1e8-1f1fc.png
deleted file mode 100644
index eb39e8d007..0000000000
Binary files a/public/emoji/1f1e8-1f1fc.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1fc.svg b/public/emoji/1f1e8-1f1fc.svg
index cecfdbffd1..e05eae77f6 100644
--- a/public/emoji/1f1e8-1f1fc.svg
+++ b/public/emoji/1f1e8-1f1fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1fd.png b/public/emoji/1f1e8-1f1fd.png
deleted file mode 100644
index 09d21359f3..0000000000
Binary files a/public/emoji/1f1e8-1f1fd.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1fd.svg b/public/emoji/1f1e8-1f1fd.svg
index 2811542007..30857e46b3 100644
--- a/public/emoji/1f1e8-1f1fd.svg
+++ b/public/emoji/1f1e8-1f1fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1fe.png b/public/emoji/1f1e8-1f1fe.png
deleted file mode 100644
index 154a7aa317..0000000000
Binary files a/public/emoji/1f1e8-1f1fe.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1fe.svg b/public/emoji/1f1e8-1f1fe.svg
index 4529030d14..fe7b2b05f8 100644
--- a/public/emoji/1f1e8-1f1fe.svg
+++ b/public/emoji/1f1e8-1f1fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8-1f1ff.png b/public/emoji/1f1e8-1f1ff.png
deleted file mode 100644
index 9737ca223c..0000000000
Binary files a/public/emoji/1f1e8-1f1ff.png and /dev/null differ
diff --git a/public/emoji/1f1e8-1f1ff.svg b/public/emoji/1f1e8-1f1ff.svg
index 3226720bec..3dd8a789c9 100644
--- a/public/emoji/1f1e8-1f1ff.svg
+++ b/public/emoji/1f1e8-1f1ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e8.png b/public/emoji/1f1e8.png
deleted file mode 100644
index f94e668a2c..0000000000
Binary files a/public/emoji/1f1e8.png and /dev/null differ
diff --git a/public/emoji/1f1e8.svg b/public/emoji/1f1e8.svg
index 1aa1eabd4d..c2a6d71f10 100644
--- a/public/emoji/1f1e8.svg
+++ b/public/emoji/1f1e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e9-1f1ea.png b/public/emoji/1f1e9-1f1ea.png
deleted file mode 100644
index 98ed76b3ba..0000000000
Binary files a/public/emoji/1f1e9-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1e9-1f1ea.svg b/public/emoji/1f1e9-1f1ea.svg
index b2015a77ae..ef390466f7 100644
--- a/public/emoji/1f1e9-1f1ea.svg
+++ b/public/emoji/1f1e9-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e9-1f1ec.png b/public/emoji/1f1e9-1f1ec.png
deleted file mode 100644
index aae927d14b..0000000000
Binary files a/public/emoji/1f1e9-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1e9-1f1ec.svg b/public/emoji/1f1e9-1f1ec.svg
index 04d9b4ee65..0266453dd1 100644
--- a/public/emoji/1f1e9-1f1ec.svg
+++ b/public/emoji/1f1e9-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e9-1f1ef.png b/public/emoji/1f1e9-1f1ef.png
deleted file mode 100644
index 73c2a2acbd..0000000000
Binary files a/public/emoji/1f1e9-1f1ef.png and /dev/null differ
diff --git a/public/emoji/1f1e9-1f1ef.svg b/public/emoji/1f1e9-1f1ef.svg
index f4ae5eafa0..a4daa6f94c 100644
--- a/public/emoji/1f1e9-1f1ef.svg
+++ b/public/emoji/1f1e9-1f1ef.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e9-1f1f0.png b/public/emoji/1f1e9-1f1f0.png
deleted file mode 100644
index e5a60b0625..0000000000
Binary files a/public/emoji/1f1e9-1f1f0.png and /dev/null differ
diff --git a/public/emoji/1f1e9-1f1f0.svg b/public/emoji/1f1e9-1f1f0.svg
index fd2d704d08..ceda13d974 100644
--- a/public/emoji/1f1e9-1f1f0.svg
+++ b/public/emoji/1f1e9-1f1f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e9-1f1f2.png b/public/emoji/1f1e9-1f1f2.png
deleted file mode 100644
index 50f8a53981..0000000000
Binary files a/public/emoji/1f1e9-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1e9-1f1f2.svg b/public/emoji/1f1e9-1f1f2.svg
index 27fc817ba9..66d850adc8 100644
--- a/public/emoji/1f1e9-1f1f2.svg
+++ b/public/emoji/1f1e9-1f1f2.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e9-1f1f4.png b/public/emoji/1f1e9-1f1f4.png
deleted file mode 100644
index 037a45d7c2..0000000000
Binary files a/public/emoji/1f1e9-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1e9-1f1f4.svg b/public/emoji/1f1e9-1f1f4.svg
index 133278cbb3..48967b1c97 100644
--- a/public/emoji/1f1e9-1f1f4.svg
+++ b/public/emoji/1f1e9-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e9-1f1ff.png b/public/emoji/1f1e9-1f1ff.png
deleted file mode 100644
index 24945b10f2..0000000000
Binary files a/public/emoji/1f1e9-1f1ff.png and /dev/null differ
diff --git a/public/emoji/1f1e9-1f1ff.svg b/public/emoji/1f1e9-1f1ff.svg
index 081674e2a6..243c153f30 100644
--- a/public/emoji/1f1e9-1f1ff.svg
+++ b/public/emoji/1f1e9-1f1ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1e9.png b/public/emoji/1f1e9.png
deleted file mode 100644
index 4a36666e5f..0000000000
Binary files a/public/emoji/1f1e9.png and /dev/null differ
diff --git a/public/emoji/1f1e9.svg b/public/emoji/1f1e9.svg
index e7085af164..b96b27d1f7 100644
--- a/public/emoji/1f1e9.svg
+++ b/public/emoji/1f1e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ea-1f1e6.png b/public/emoji/1f1ea-1f1e6.png
deleted file mode 100644
index 356ff34783..0000000000
Binary files a/public/emoji/1f1ea-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1ea-1f1e6.svg b/public/emoji/1f1ea-1f1e6.svg
index 0a39cf63e2..97f8ad0117 100644
--- a/public/emoji/1f1ea-1f1e6.svg
+++ b/public/emoji/1f1ea-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ea-1f1e8.png b/public/emoji/1f1ea-1f1e8.png
deleted file mode 100644
index 1381459461..0000000000
Binary files a/public/emoji/1f1ea-1f1e8.png and /dev/null differ
diff --git a/public/emoji/1f1ea-1f1e8.svg b/public/emoji/1f1ea-1f1e8.svg
index 2d7bf4d1b4..d8af4a1928 100644
--- a/public/emoji/1f1ea-1f1e8.svg
+++ b/public/emoji/1f1ea-1f1e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ea-1f1ea.png b/public/emoji/1f1ea-1f1ea.png
deleted file mode 100644
index 84f317e774..0000000000
Binary files a/public/emoji/1f1ea-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1ea-1f1ea.svg b/public/emoji/1f1ea-1f1ea.svg
index 0f3f6d8ed7..e8359c64b3 100644
--- a/public/emoji/1f1ea-1f1ea.svg
+++ b/public/emoji/1f1ea-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ea-1f1ec.png b/public/emoji/1f1ea-1f1ec.png
deleted file mode 100644
index 57786064a9..0000000000
Binary files a/public/emoji/1f1ea-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1ea-1f1ec.svg b/public/emoji/1f1ea-1f1ec.svg
index ee47f26c9f..9018d1c60a 100644
--- a/public/emoji/1f1ea-1f1ec.svg
+++ b/public/emoji/1f1ea-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ea-1f1ed.png b/public/emoji/1f1ea-1f1ed.png
deleted file mode 100644
index 4d7a76687f..0000000000
Binary files a/public/emoji/1f1ea-1f1ed.png and /dev/null differ
diff --git a/public/emoji/1f1ea-1f1ed.svg b/public/emoji/1f1ea-1f1ed.svg
index 63f1fe8ac2..a4bbad3099 100644
--- a/public/emoji/1f1ea-1f1ed.svg
+++ b/public/emoji/1f1ea-1f1ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ea-1f1f7.png b/public/emoji/1f1ea-1f1f7.png
deleted file mode 100644
index 0c3c724c1f..0000000000
Binary files a/public/emoji/1f1ea-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1ea-1f1f7.svg b/public/emoji/1f1ea-1f1f7.svg
index 616efd6cc8..067278b027 100644
--- a/public/emoji/1f1ea-1f1f7.svg
+++ b/public/emoji/1f1ea-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ea-1f1f8.png b/public/emoji/1f1ea-1f1f8.png
deleted file mode 100644
index 3e73597a22..0000000000
Binary files a/public/emoji/1f1ea-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1ea-1f1f8.svg b/public/emoji/1f1ea-1f1f8.svg
index 891a2597b9..97f8ad0117 100644
--- a/public/emoji/1f1ea-1f1f8.svg
+++ b/public/emoji/1f1ea-1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ea-1f1f9.png b/public/emoji/1f1ea-1f1f9.png
deleted file mode 100644
index 9560a134c9..0000000000
Binary files a/public/emoji/1f1ea-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1ea-1f1f9.svg b/public/emoji/1f1ea-1f1f9.svg
index ab724478ea..7e7a5194d7 100644
--- a/public/emoji/1f1ea-1f1f9.svg
+++ b/public/emoji/1f1ea-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ea-1f1fa.png b/public/emoji/1f1ea-1f1fa.png
deleted file mode 100644
index 0b456cf333..0000000000
Binary files a/public/emoji/1f1ea-1f1fa.png and /dev/null differ
diff --git a/public/emoji/1f1ea-1f1fa.svg b/public/emoji/1f1ea-1f1fa.svg
index 40416b4bad..76f6485a8d 100644
--- a/public/emoji/1f1ea-1f1fa.svg
+++ b/public/emoji/1f1ea-1f1fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ea.png b/public/emoji/1f1ea.png
deleted file mode 100644
index 66f7e8d8cf..0000000000
Binary files a/public/emoji/1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1ea.svg b/public/emoji/1f1ea.svg
index 6727438c4d..d1521bb00a 100644
--- a/public/emoji/1f1ea.svg
+++ b/public/emoji/1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1eb-1f1ee.png b/public/emoji/1f1eb-1f1ee.png
deleted file mode 100644
index ebcf58abfc..0000000000
Binary files a/public/emoji/1f1eb-1f1ee.png and /dev/null differ
diff --git a/public/emoji/1f1eb-1f1ee.svg b/public/emoji/1f1eb-1f1ee.svg
index 0894ffc582..ce60e2d95d 100644
--- a/public/emoji/1f1eb-1f1ee.svg
+++ b/public/emoji/1f1eb-1f1ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1eb-1f1ef.png b/public/emoji/1f1eb-1f1ef.png
deleted file mode 100644
index 9cc8c37fe3..0000000000
Binary files a/public/emoji/1f1eb-1f1ef.png and /dev/null differ
diff --git a/public/emoji/1f1eb-1f1ef.svg b/public/emoji/1f1eb-1f1ef.svg
index 0bbbeae0fd..198e69ed6a 100644
--- a/public/emoji/1f1eb-1f1ef.svg
+++ b/public/emoji/1f1eb-1f1ef.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1eb-1f1f0.png b/public/emoji/1f1eb-1f1f0.png
deleted file mode 100644
index 61372fd254..0000000000
Binary files a/public/emoji/1f1eb-1f1f0.png and /dev/null differ
diff --git a/public/emoji/1f1eb-1f1f0.svg b/public/emoji/1f1eb-1f1f0.svg
index 29f0c8548f..e2c5a49178 100644
--- a/public/emoji/1f1eb-1f1f0.svg
+++ b/public/emoji/1f1eb-1f1f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1eb-1f1f2.png b/public/emoji/1f1eb-1f1f2.png
deleted file mode 100644
index 0889825c8e..0000000000
Binary files a/public/emoji/1f1eb-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1eb-1f1f2.svg b/public/emoji/1f1eb-1f1f2.svg
index ca329d00ae..01e5dd223a 100644
--- a/public/emoji/1f1eb-1f1f2.svg
+++ b/public/emoji/1f1eb-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1eb-1f1f4.png b/public/emoji/1f1eb-1f1f4.png
deleted file mode 100644
index 9a4431b083..0000000000
Binary files a/public/emoji/1f1eb-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1eb-1f1f4.svg b/public/emoji/1f1eb-1f1f4.svg
index d5b522ebec..c1fd7e9772 100644
--- a/public/emoji/1f1eb-1f1f4.svg
+++ b/public/emoji/1f1eb-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1eb-1f1f7.png b/public/emoji/1f1eb-1f1f7.png
deleted file mode 100644
index 62ca19c3fc..0000000000
Binary files a/public/emoji/1f1eb-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1eb-1f1f7.svg b/public/emoji/1f1eb-1f1f7.svg
index 7f9d0ab327..359779e7f0 100644
--- a/public/emoji/1f1eb-1f1f7.svg
+++ b/public/emoji/1f1eb-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1eb.png b/public/emoji/1f1eb.png
deleted file mode 100644
index 913b230fde..0000000000
Binary files a/public/emoji/1f1eb.png and /dev/null differ
diff --git a/public/emoji/1f1eb.svg b/public/emoji/1f1eb.svg
index 2d54ed2388..c5907a4a44 100644
--- a/public/emoji/1f1eb.svg
+++ b/public/emoji/1f1eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1e6.png b/public/emoji/1f1ec-1f1e6.png
deleted file mode 100644
index 2e68e527a3..0000000000
Binary files a/public/emoji/1f1ec-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1e6.svg b/public/emoji/1f1ec-1f1e6.svg
index f30f1e0445..809addb476 100644
--- a/public/emoji/1f1ec-1f1e6.svg
+++ b/public/emoji/1f1ec-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1e7.png b/public/emoji/1f1ec-1f1e7.png
deleted file mode 100644
index 3ed10f6234..0000000000
Binary files a/public/emoji/1f1ec-1f1e7.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1e7.svg b/public/emoji/1f1ec-1f1e7.svg
index f745d658d0..9628d4f2b4 100644
--- a/public/emoji/1f1ec-1f1e7.svg
+++ b/public/emoji/1f1ec-1f1e7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1e9.png b/public/emoji/1f1ec-1f1e9.png
deleted file mode 100644
index 527aad3380..0000000000
Binary files a/public/emoji/1f1ec-1f1e9.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1e9.svg b/public/emoji/1f1ec-1f1e9.svg
index c33b39dfc6..33a1f9b844 100644
--- a/public/emoji/1f1ec-1f1e9.svg
+++ b/public/emoji/1f1ec-1f1e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1ea.png b/public/emoji/1f1ec-1f1ea.png
deleted file mode 100644
index a75d142480..0000000000
Binary files a/public/emoji/1f1ec-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1ea.svg b/public/emoji/1f1ec-1f1ea.svg
index 044d07dcab..e1dc358f4d 100644
--- a/public/emoji/1f1ec-1f1ea.svg
+++ b/public/emoji/1f1ec-1f1ea.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1eb.png b/public/emoji/1f1ec-1f1eb.png
deleted file mode 100644
index 0cf96f327c..0000000000
Binary files a/public/emoji/1f1ec-1f1eb.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1eb.svg b/public/emoji/1f1ec-1f1eb.svg
index 328baf2635..4aef797025 100644
--- a/public/emoji/1f1ec-1f1eb.svg
+++ b/public/emoji/1f1ec-1f1eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1ec.png b/public/emoji/1f1ec-1f1ec.png
deleted file mode 100644
index 970002c7f7..0000000000
Binary files a/public/emoji/1f1ec-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1ec.svg b/public/emoji/1f1ec-1f1ec.svg
index 3e4098e429..8bd725600d 100644
--- a/public/emoji/1f1ec-1f1ec.svg
+++ b/public/emoji/1f1ec-1f1ec.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1ed.png b/public/emoji/1f1ec-1f1ed.png
deleted file mode 100644
index f31b5eb7b4..0000000000
Binary files a/public/emoji/1f1ec-1f1ed.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1ed.svg b/public/emoji/1f1ec-1f1ed.svg
index f3558ad051..ea91d25084 100644
--- a/public/emoji/1f1ec-1f1ed.svg
+++ b/public/emoji/1f1ec-1f1ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1ee.png b/public/emoji/1f1ec-1f1ee.png
deleted file mode 100644
index e554a2a1d0..0000000000
Binary files a/public/emoji/1f1ec-1f1ee.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1ee.svg b/public/emoji/1f1ec-1f1ee.svg
index c980311a08..77ac932899 100644
--- a/public/emoji/1f1ec-1f1ee.svg
+++ b/public/emoji/1f1ec-1f1ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1f1.png b/public/emoji/1f1ec-1f1f1.png
deleted file mode 100644
index 2e795dd4e3..0000000000
Binary files a/public/emoji/1f1ec-1f1f1.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1f1.svg b/public/emoji/1f1ec-1f1f1.svg
index 484b80c08b..aa1713855f 100644
--- a/public/emoji/1f1ec-1f1f1.svg
+++ b/public/emoji/1f1ec-1f1f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1f2.png b/public/emoji/1f1ec-1f1f2.png
deleted file mode 100644
index bb69c0975a..0000000000
Binary files a/public/emoji/1f1ec-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1f2.svg b/public/emoji/1f1ec-1f1f2.svg
index 5fa53d532b..38e8738de4 100644
--- a/public/emoji/1f1ec-1f1f2.svg
+++ b/public/emoji/1f1ec-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1f3.png b/public/emoji/1f1ec-1f1f3.png
deleted file mode 100644
index 1981f61dbf..0000000000
Binary files a/public/emoji/1f1ec-1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1f3.svg b/public/emoji/1f1ec-1f1f3.svg
index ea98260a48..94758e5377 100644
--- a/public/emoji/1f1ec-1f1f3.svg
+++ b/public/emoji/1f1ec-1f1f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1f5.png b/public/emoji/1f1ec-1f1f5.png
deleted file mode 100644
index 10e42e672b..0000000000
Binary files a/public/emoji/1f1ec-1f1f5.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1f5.svg b/public/emoji/1f1ec-1f1f5.svg
index f044d48d20..5cba069782 100644
--- a/public/emoji/1f1ec-1f1f5.svg
+++ b/public/emoji/1f1ec-1f1f5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1f6.png b/public/emoji/1f1ec-1f1f6.png
deleted file mode 100644
index 11475e61ee..0000000000
Binary files a/public/emoji/1f1ec-1f1f6.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1f6.svg b/public/emoji/1f1ec-1f1f6.svg
index 6c4a1581a5..0b7c182362 100644
--- a/public/emoji/1f1ec-1f1f6.svg
+++ b/public/emoji/1f1ec-1f1f6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1f7.png b/public/emoji/1f1ec-1f1f7.png
deleted file mode 100644
index 0f6bb1b6b9..0000000000
Binary files a/public/emoji/1f1ec-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1f7.svg b/public/emoji/1f1ec-1f1f7.svg
index 75c9bc6a45..686ca152e5 100644
--- a/public/emoji/1f1ec-1f1f7.svg
+++ b/public/emoji/1f1ec-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1f8.png b/public/emoji/1f1ec-1f1f8.png
deleted file mode 100644
index 6fc9278045..0000000000
Binary files a/public/emoji/1f1ec-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1f8.svg b/public/emoji/1f1ec-1f1f8.svg
index 68772ee199..f51cd5dfc8 100644
--- a/public/emoji/1f1ec-1f1f8.svg
+++ b/public/emoji/1f1ec-1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1f9.png b/public/emoji/1f1ec-1f1f9.png
deleted file mode 100644
index 7213d4139e..0000000000
Binary files a/public/emoji/1f1ec-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1f9.svg b/public/emoji/1f1ec-1f1f9.svg
index bc4f58471a..3e86ce5202 100644
--- a/public/emoji/1f1ec-1f1f9.svg
+++ b/public/emoji/1f1ec-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1fa.png b/public/emoji/1f1ec-1f1fa.png
deleted file mode 100644
index 4027549ca3..0000000000
Binary files a/public/emoji/1f1ec-1f1fa.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1fa.svg b/public/emoji/1f1ec-1f1fa.svg
index 6cdd6bf36a..4718442acc 100644
--- a/public/emoji/1f1ec-1f1fa.svg
+++ b/public/emoji/1f1ec-1f1fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1fc.png b/public/emoji/1f1ec-1f1fc.png
deleted file mode 100644
index 6357f6225f..0000000000
Binary files a/public/emoji/1f1ec-1f1fc.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1fc.svg b/public/emoji/1f1ec-1f1fc.svg
index 30ed7effb9..9c121c5645 100644
--- a/public/emoji/1f1ec-1f1fc.svg
+++ b/public/emoji/1f1ec-1f1fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec-1f1fe.png b/public/emoji/1f1ec-1f1fe.png
deleted file mode 100644
index 746e2fb7e4..0000000000
Binary files a/public/emoji/1f1ec-1f1fe.png and /dev/null differ
diff --git a/public/emoji/1f1ec-1f1fe.svg b/public/emoji/1f1ec-1f1fe.svg
index b4f6743d2b..37faeaf905 100644
--- a/public/emoji/1f1ec-1f1fe.svg
+++ b/public/emoji/1f1ec-1f1fe.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ec.png b/public/emoji/1f1ec.png
deleted file mode 100644
index 2711630753..0000000000
Binary files a/public/emoji/1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1ec.svg b/public/emoji/1f1ec.svg
index 2fb8014307..a8c44210fa 100644
--- a/public/emoji/1f1ec.svg
+++ b/public/emoji/1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ed-1f1f0.png b/public/emoji/1f1ed-1f1f0.png
deleted file mode 100644
index cf0c7151b5..0000000000
Binary files a/public/emoji/1f1ed-1f1f0.png and /dev/null differ
diff --git a/public/emoji/1f1ed-1f1f0.svg b/public/emoji/1f1ed-1f1f0.svg
index 20f6508bed..8152b768b0 100644
--- a/public/emoji/1f1ed-1f1f0.svg
+++ b/public/emoji/1f1ed-1f1f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ed-1f1f2.png b/public/emoji/1f1ed-1f1f2.png
deleted file mode 100644
index b613509e46..0000000000
Binary files a/public/emoji/1f1ed-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1ed-1f1f2.svg b/public/emoji/1f1ed-1f1f2.svg
index ee741bb195..986705ff93 100644
--- a/public/emoji/1f1ed-1f1f2.svg
+++ b/public/emoji/1f1ed-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ed-1f1f3.png b/public/emoji/1f1ed-1f1f3.png
deleted file mode 100644
index 402cdcefdf..0000000000
Binary files a/public/emoji/1f1ed-1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1ed-1f1f3.svg b/public/emoji/1f1ed-1f1f3.svg
index 0b56c947bb..9ffdb103ce 100644
--- a/public/emoji/1f1ed-1f1f3.svg
+++ b/public/emoji/1f1ed-1f1f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ed-1f1f7.png b/public/emoji/1f1ed-1f1f7.png
deleted file mode 100644
index 46f4f06b4f..0000000000
Binary files a/public/emoji/1f1ed-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1ed-1f1f7.svg b/public/emoji/1f1ed-1f1f7.svg
index 938504a0db..3d757816ac 100644
--- a/public/emoji/1f1ed-1f1f7.svg
+++ b/public/emoji/1f1ed-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ed-1f1f9.png b/public/emoji/1f1ed-1f1f9.png
deleted file mode 100644
index d8d0c88849..0000000000
Binary files a/public/emoji/1f1ed-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1ed-1f1f9.svg b/public/emoji/1f1ed-1f1f9.svg
index 6162c6a4d2..6bc1872294 100644
--- a/public/emoji/1f1ed-1f1f9.svg
+++ b/public/emoji/1f1ed-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ed-1f1fa.png b/public/emoji/1f1ed-1f1fa.png
deleted file mode 100644
index a898de636a..0000000000
Binary files a/public/emoji/1f1ed-1f1fa.png and /dev/null differ
diff --git a/public/emoji/1f1ed-1f1fa.svg b/public/emoji/1f1ed-1f1fa.svg
index 48b8aced60..bb04c1863b 100644
--- a/public/emoji/1f1ed-1f1fa.svg
+++ b/public/emoji/1f1ed-1f1fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ed.png b/public/emoji/1f1ed.png
deleted file mode 100644
index ca88e46bfc..0000000000
Binary files a/public/emoji/1f1ed.png and /dev/null differ
diff --git a/public/emoji/1f1ed.svg b/public/emoji/1f1ed.svg
index 6add3c7e04..337b2f0a98 100644
--- a/public/emoji/1f1ed.svg
+++ b/public/emoji/1f1ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee-1f1e8.png b/public/emoji/1f1ee-1f1e8.png
deleted file mode 100644
index 69fd990aa9..0000000000
Binary files a/public/emoji/1f1ee-1f1e8.png and /dev/null differ
diff --git a/public/emoji/1f1ee-1f1e8.svg b/public/emoji/1f1ee-1f1e8.svg
index 540234ef7a..7741ac37d1 100644
--- a/public/emoji/1f1ee-1f1e8.svg
+++ b/public/emoji/1f1ee-1f1e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee-1f1e9.png b/public/emoji/1f1ee-1f1e9.png
deleted file mode 100644
index 85b4c063a4..0000000000
Binary files a/public/emoji/1f1ee-1f1e9.png and /dev/null differ
diff --git a/public/emoji/1f1ee-1f1e9.svg b/public/emoji/1f1ee-1f1e9.svg
index d92e0a0090..2e35859dd4 100644
--- a/public/emoji/1f1ee-1f1e9.svg
+++ b/public/emoji/1f1ee-1f1e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee-1f1ea.png b/public/emoji/1f1ee-1f1ea.png
deleted file mode 100644
index a28295838c..0000000000
Binary files a/public/emoji/1f1ee-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1ee-1f1ea.svg b/public/emoji/1f1ee-1f1ea.svg
index c3f32f72d1..449c639469 100644
--- a/public/emoji/1f1ee-1f1ea.svg
+++ b/public/emoji/1f1ee-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee-1f1f1.png b/public/emoji/1f1ee-1f1f1.png
deleted file mode 100644
index 85c410d45f..0000000000
Binary files a/public/emoji/1f1ee-1f1f1.png and /dev/null differ
diff --git a/public/emoji/1f1ee-1f1f1.svg b/public/emoji/1f1ee-1f1f1.svg
index 4118fdf99d..a9680cc922 100644
--- a/public/emoji/1f1ee-1f1f1.svg
+++ b/public/emoji/1f1ee-1f1f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee-1f1f2.png b/public/emoji/1f1ee-1f1f2.png
deleted file mode 100644
index 60a2458e38..0000000000
Binary files a/public/emoji/1f1ee-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1ee-1f1f2.svg b/public/emoji/1f1ee-1f1f2.svg
index 17632dc76d..7dc6a44fef 100644
--- a/public/emoji/1f1ee-1f1f2.svg
+++ b/public/emoji/1f1ee-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee-1f1f3.png b/public/emoji/1f1ee-1f1f3.png
deleted file mode 100644
index feccc8952c..0000000000
Binary files a/public/emoji/1f1ee-1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1ee-1f1f3.svg b/public/emoji/1f1ee-1f1f3.svg
index 0f8b13d572..c8720d0eab 100644
--- a/public/emoji/1f1ee-1f1f3.svg
+++ b/public/emoji/1f1ee-1f1f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee-1f1f4.png b/public/emoji/1f1ee-1f1f4.png
deleted file mode 100644
index aae927d14b..0000000000
Binary files a/public/emoji/1f1ee-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1ee-1f1f4.svg b/public/emoji/1f1ee-1f1f4.svg
index 04d9b4ee65..0266453dd1 100644
--- a/public/emoji/1f1ee-1f1f4.svg
+++ b/public/emoji/1f1ee-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee-1f1f6.png b/public/emoji/1f1ee-1f1f6.png
deleted file mode 100644
index 41fd1db6f8..0000000000
Binary files a/public/emoji/1f1ee-1f1f6.png and /dev/null differ
diff --git a/public/emoji/1f1ee-1f1f6.svg b/public/emoji/1f1ee-1f1f6.svg
index c260e29258..cde68d8e77 100644
--- a/public/emoji/1f1ee-1f1f6.svg
+++ b/public/emoji/1f1ee-1f1f6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee-1f1f7.png b/public/emoji/1f1ee-1f1f7.png
deleted file mode 100644
index ff7aaf62ba..0000000000
Binary files a/public/emoji/1f1ee-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1ee-1f1f7.svg b/public/emoji/1f1ee-1f1f7.svg
index d7b36f5e80..79a88385b1 100644
--- a/public/emoji/1f1ee-1f1f7.svg
+++ b/public/emoji/1f1ee-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee-1f1f8.png b/public/emoji/1f1ee-1f1f8.png
deleted file mode 100644
index ad8d4131dd..0000000000
Binary files a/public/emoji/1f1ee-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1ee-1f1f8.svg b/public/emoji/1f1ee-1f1f8.svg
index 485bbd003d..06b977391d 100644
--- a/public/emoji/1f1ee-1f1f8.svg
+++ b/public/emoji/1f1ee-1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee-1f1f9.png b/public/emoji/1f1ee-1f1f9.png
deleted file mode 100644
index f21563ec53..0000000000
Binary files a/public/emoji/1f1ee-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1ee-1f1f9.svg b/public/emoji/1f1ee-1f1f9.svg
index f14b06522b..9278ea01a8 100644
--- a/public/emoji/1f1ee-1f1f9.svg
+++ b/public/emoji/1f1ee-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ee.png b/public/emoji/1f1ee.png
deleted file mode 100644
index 48dc167889..0000000000
Binary files a/public/emoji/1f1ee.png and /dev/null differ
diff --git a/public/emoji/1f1ee.svg b/public/emoji/1f1ee.svg
index dc8d231b86..a344801737 100644
--- a/public/emoji/1f1ee.svg
+++ b/public/emoji/1f1ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ef-1f1ea.png b/public/emoji/1f1ef-1f1ea.png
deleted file mode 100644
index 198a918f6a..0000000000
Binary files a/public/emoji/1f1ef-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1ef-1f1ea.svg b/public/emoji/1f1ef-1f1ea.svg
index d71bf48eef..79576ef1f0 100644
--- a/public/emoji/1f1ef-1f1ea.svg
+++ b/public/emoji/1f1ef-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ef-1f1f2.png b/public/emoji/1f1ef-1f1f2.png
deleted file mode 100644
index f84e4f9e8d..0000000000
Binary files a/public/emoji/1f1ef-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1ef-1f1f2.svg b/public/emoji/1f1ef-1f1f2.svg
index 810f5ab715..9a2c61823d 100644
--- a/public/emoji/1f1ef-1f1f2.svg
+++ b/public/emoji/1f1ef-1f1f2.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ef-1f1f4.png b/public/emoji/1f1ef-1f1f4.png
deleted file mode 100644
index 20bfa147e3..0000000000
Binary files a/public/emoji/1f1ef-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1ef-1f1f4.svg b/public/emoji/1f1ef-1f1f4.svg
index 2acfb9a8eb..76695fd2ac 100644
--- a/public/emoji/1f1ef-1f1f4.svg
+++ b/public/emoji/1f1ef-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ef-1f1f5.png b/public/emoji/1f1ef-1f1f5.png
deleted file mode 100644
index 8d8838e470..0000000000
Binary files a/public/emoji/1f1ef-1f1f5.png and /dev/null differ
diff --git a/public/emoji/1f1ef-1f1f5.svg b/public/emoji/1f1ef-1f1f5.svg
index 8ffa66be68..e7d4edf6b7 100644
--- a/public/emoji/1f1ef-1f1f5.svg
+++ b/public/emoji/1f1ef-1f1f5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ef.png b/public/emoji/1f1ef.png
deleted file mode 100644
index 16599daa7d..0000000000
Binary files a/public/emoji/1f1ef.png and /dev/null differ
diff --git a/public/emoji/1f1ef.svg b/public/emoji/1f1ef.svg
index 249efde293..c36897e373 100644
--- a/public/emoji/1f1ef.svg
+++ b/public/emoji/1f1ef.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0-1f1ea.png b/public/emoji/1f1f0-1f1ea.png
deleted file mode 100644
index 9e417ab300..0000000000
Binary files a/public/emoji/1f1f0-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1f0-1f1ea.svg b/public/emoji/1f1f0-1f1ea.svg
index 65828fd765..7448af9f4a 100644
--- a/public/emoji/1f1f0-1f1ea.svg
+++ b/public/emoji/1f1f0-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0-1f1ec.png b/public/emoji/1f1f0-1f1ec.png
deleted file mode 100644
index 2f2d848fe5..0000000000
Binary files a/public/emoji/1f1f0-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1f0-1f1ec.svg b/public/emoji/1f1f0-1f1ec.svg
index c2b532f660..88eb576130 100644
--- a/public/emoji/1f1f0-1f1ec.svg
+++ b/public/emoji/1f1f0-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0-1f1ed.png b/public/emoji/1f1f0-1f1ed.png
deleted file mode 100644
index 9a2877dd62..0000000000
Binary files a/public/emoji/1f1f0-1f1ed.png and /dev/null differ
diff --git a/public/emoji/1f1f0-1f1ed.svg b/public/emoji/1f1f0-1f1ed.svg
index a28e0243e1..7ef576703a 100644
--- a/public/emoji/1f1f0-1f1ed.svg
+++ b/public/emoji/1f1f0-1f1ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0-1f1ee.png b/public/emoji/1f1f0-1f1ee.png
deleted file mode 100644
index 10e507e324..0000000000
Binary files a/public/emoji/1f1f0-1f1ee.png and /dev/null differ
diff --git a/public/emoji/1f1f0-1f1ee.svg b/public/emoji/1f1f0-1f1ee.svg
index 81f5fc9e52..4ff9bc2637 100644
--- a/public/emoji/1f1f0-1f1ee.svg
+++ b/public/emoji/1f1f0-1f1ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0-1f1f2.png b/public/emoji/1f1f0-1f1f2.png
deleted file mode 100644
index bd5a0588e0..0000000000
Binary files a/public/emoji/1f1f0-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1f0-1f1f2.svg b/public/emoji/1f1f0-1f1f2.svg
index 8e9ba574d0..576e2fa22a 100644
--- a/public/emoji/1f1f0-1f1f2.svg
+++ b/public/emoji/1f1f0-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0-1f1f3.png b/public/emoji/1f1f0-1f1f3.png
deleted file mode 100644
index 776207c960..0000000000
Binary files a/public/emoji/1f1f0-1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1f0-1f1f3.svg b/public/emoji/1f1f0-1f1f3.svg
index 505ac748dd..86a2dd6bbd 100644
--- a/public/emoji/1f1f0-1f1f3.svg
+++ b/public/emoji/1f1f0-1f1f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0-1f1f5.png b/public/emoji/1f1f0-1f1f5.png
deleted file mode 100644
index 6b3fd89eaa..0000000000
Binary files a/public/emoji/1f1f0-1f1f5.png and /dev/null differ
diff --git a/public/emoji/1f1f0-1f1f5.svg b/public/emoji/1f1f0-1f1f5.svg
index dc4d679813..c4ff6ac31b 100644
--- a/public/emoji/1f1f0-1f1f5.svg
+++ b/public/emoji/1f1f0-1f1f5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0-1f1f7.png b/public/emoji/1f1f0-1f1f7.png
deleted file mode 100644
index 833a88116e..0000000000
Binary files a/public/emoji/1f1f0-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1f0-1f1f7.svg b/public/emoji/1f1f0-1f1f7.svg
index 5b28e35952..7b5c679047 100644
--- a/public/emoji/1f1f0-1f1f7.svg
+++ b/public/emoji/1f1f0-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0-1f1fc.png b/public/emoji/1f1f0-1f1fc.png
deleted file mode 100644
index 4d19bfa6ca..0000000000
Binary files a/public/emoji/1f1f0-1f1fc.png and /dev/null differ
diff --git a/public/emoji/1f1f0-1f1fc.svg b/public/emoji/1f1f0-1f1fc.svg
index f3076ffb40..735085fa90 100644
--- a/public/emoji/1f1f0-1f1fc.svg
+++ b/public/emoji/1f1f0-1f1fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0-1f1fe.png b/public/emoji/1f1f0-1f1fe.png
deleted file mode 100644
index 40daa4da59..0000000000
Binary files a/public/emoji/1f1f0-1f1fe.png and /dev/null differ
diff --git a/public/emoji/1f1f0-1f1fe.svg b/public/emoji/1f1f0-1f1fe.svg
index 6d0432cb82..ae4088997f 100644
--- a/public/emoji/1f1f0-1f1fe.svg
+++ b/public/emoji/1f1f0-1f1fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0-1f1ff.png b/public/emoji/1f1f0-1f1ff.png
deleted file mode 100644
index 2f97a8fd3c..0000000000
Binary files a/public/emoji/1f1f0-1f1ff.png and /dev/null differ
diff --git a/public/emoji/1f1f0-1f1ff.svg b/public/emoji/1f1f0-1f1ff.svg
index 107bf17ac7..0c398a457d 100644
--- a/public/emoji/1f1f0-1f1ff.svg
+++ b/public/emoji/1f1f0-1f1ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f0.png b/public/emoji/1f1f0.png
deleted file mode 100644
index 204b95d1b5..0000000000
Binary files a/public/emoji/1f1f0.png and /dev/null differ
diff --git a/public/emoji/1f1f0.svg b/public/emoji/1f1f0.svg
index 0ae3f9a3b0..d9294f183c 100644
--- a/public/emoji/1f1f0.svg
+++ b/public/emoji/1f1f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1-1f1e6.png b/public/emoji/1f1f1-1f1e6.png
deleted file mode 100644
index 4d4179f34f..0000000000
Binary files a/public/emoji/1f1f1-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1f1-1f1e6.svg b/public/emoji/1f1f1-1f1e6.svg
index a9ebf083c8..251d2bdec6 100644
--- a/public/emoji/1f1f1-1f1e6.svg
+++ b/public/emoji/1f1f1-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1-1f1e7.png b/public/emoji/1f1f1-1f1e7.png
deleted file mode 100644
index 3d59446701..0000000000
Binary files a/public/emoji/1f1f1-1f1e7.png and /dev/null differ
diff --git a/public/emoji/1f1f1-1f1e7.svg b/public/emoji/1f1f1-1f1e7.svg
index d000185e59..3b47f5895d 100644
--- a/public/emoji/1f1f1-1f1e7.svg
+++ b/public/emoji/1f1f1-1f1e7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1-1f1e8.png b/public/emoji/1f1f1-1f1e8.png
deleted file mode 100644
index 45547b1e43..0000000000
Binary files a/public/emoji/1f1f1-1f1e8.png and /dev/null differ
diff --git a/public/emoji/1f1f1-1f1e8.svg b/public/emoji/1f1f1-1f1e8.svg
index 9f5255714c..255cbe8f04 100644
--- a/public/emoji/1f1f1-1f1e8.svg
+++ b/public/emoji/1f1f1-1f1e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1-1f1ee.png b/public/emoji/1f1f1-1f1ee.png
deleted file mode 100644
index 0eafa6a221..0000000000
Binary files a/public/emoji/1f1f1-1f1ee.png and /dev/null differ
diff --git a/public/emoji/1f1f1-1f1ee.svg b/public/emoji/1f1f1-1f1ee.svg
index 51b11472b4..5b878c9d75 100644
--- a/public/emoji/1f1f1-1f1ee.svg
+++ b/public/emoji/1f1f1-1f1ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1-1f1f0.png b/public/emoji/1f1f1-1f1f0.png
deleted file mode 100644
index ab4fe10c40..0000000000
Binary files a/public/emoji/1f1f1-1f1f0.png and /dev/null differ
diff --git a/public/emoji/1f1f1-1f1f0.svg b/public/emoji/1f1f1-1f1f0.svg
index 5eb3cd7ee4..18ce60f466 100644
--- a/public/emoji/1f1f1-1f1f0.svg
+++ b/public/emoji/1f1f1-1f1f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1-1f1f7.png b/public/emoji/1f1f1-1f1f7.png
deleted file mode 100644
index f66f267fea..0000000000
Binary files a/public/emoji/1f1f1-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1f1-1f1f7.svg b/public/emoji/1f1f1-1f1f7.svg
index 13995a6bf4..60815efb69 100644
--- a/public/emoji/1f1f1-1f1f7.svg
+++ b/public/emoji/1f1f1-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1-1f1f8.png b/public/emoji/1f1f1-1f1f8.png
deleted file mode 100644
index 24745631e3..0000000000
Binary files a/public/emoji/1f1f1-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1f1-1f1f8.svg b/public/emoji/1f1f1-1f1f8.svg
index ef9b0346c5..437f875ba9 100644
--- a/public/emoji/1f1f1-1f1f8.svg
+++ b/public/emoji/1f1f1-1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1-1f1f9.png b/public/emoji/1f1f1-1f1f9.png
deleted file mode 100644
index d644b56d62..0000000000
Binary files a/public/emoji/1f1f1-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1f1-1f1f9.svg b/public/emoji/1f1f1-1f1f9.svg
index 513d722c0c..464ae5e046 100644
--- a/public/emoji/1f1f1-1f1f9.svg
+++ b/public/emoji/1f1f1-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1-1f1fa.png b/public/emoji/1f1f1-1f1fa.png
deleted file mode 100644
index a2df9c9299..0000000000
Binary files a/public/emoji/1f1f1-1f1fa.png and /dev/null differ
diff --git a/public/emoji/1f1f1-1f1fa.svg b/public/emoji/1f1f1-1f1fa.svg
index 78de148357..ce8ff86f7b 100644
--- a/public/emoji/1f1f1-1f1fa.svg
+++ b/public/emoji/1f1f1-1f1fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1-1f1fb.png b/public/emoji/1f1f1-1f1fb.png
deleted file mode 100644
index ae680d5f0e..0000000000
Binary files a/public/emoji/1f1f1-1f1fb.png and /dev/null differ
diff --git a/public/emoji/1f1f1-1f1fb.svg b/public/emoji/1f1f1-1f1fb.svg
index b3fa271e08..7265ac5074 100644
--- a/public/emoji/1f1f1-1f1fb.svg
+++ b/public/emoji/1f1f1-1f1fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1-1f1fe.png b/public/emoji/1f1f1-1f1fe.png
deleted file mode 100644
index f6e77b0f3b..0000000000
Binary files a/public/emoji/1f1f1-1f1fe.png and /dev/null differ
diff --git a/public/emoji/1f1f1-1f1fe.svg b/public/emoji/1f1f1-1f1fe.svg
index dd29b3b31e..74add1f6f6 100644
--- a/public/emoji/1f1f1-1f1fe.svg
+++ b/public/emoji/1f1f1-1f1fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f1.png b/public/emoji/1f1f1.png
deleted file mode 100644
index 7992b4f681..0000000000
Binary files a/public/emoji/1f1f1.png and /dev/null differ
diff --git a/public/emoji/1f1f1.svg b/public/emoji/1f1f1.svg
index 9239d516eb..dc299d45f1 100644
--- a/public/emoji/1f1f1.svg
+++ b/public/emoji/1f1f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1e6.png b/public/emoji/1f1f2-1f1e6.png
deleted file mode 100644
index c4a056722c..0000000000
Binary files a/public/emoji/1f1f2-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1e6.svg b/public/emoji/1f1f2-1f1e6.svg
index f2e7c5aab8..77421f18da 100644
--- a/public/emoji/1f1f2-1f1e6.svg
+++ b/public/emoji/1f1f2-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1e8.png b/public/emoji/1f1f2-1f1e8.png
deleted file mode 100644
index d479eab98c..0000000000
Binary files a/public/emoji/1f1f2-1f1e8.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1e8.svg b/public/emoji/1f1f2-1f1e8.svg
index a0228346b4..abc6746dcf 100644
--- a/public/emoji/1f1f2-1f1e8.svg
+++ b/public/emoji/1f1f2-1f1e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1e9.png b/public/emoji/1f1f2-1f1e9.png
deleted file mode 100644
index a7a7253987..0000000000
Binary files a/public/emoji/1f1f2-1f1e9.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1e9.svg b/public/emoji/1f1f2-1f1e9.svg
index 76845b662f..b4f1fe18fe 100644
--- a/public/emoji/1f1f2-1f1e9.svg
+++ b/public/emoji/1f1f2-1f1e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1ea.png b/public/emoji/1f1f2-1f1ea.png
deleted file mode 100644
index 7c771e7e12..0000000000
Binary files a/public/emoji/1f1f2-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1ea.svg b/public/emoji/1f1f2-1f1ea.svg
index 7eb38ad815..45e00923e6 100644
--- a/public/emoji/1f1f2-1f1ea.svg
+++ b/public/emoji/1f1f2-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1eb.png b/public/emoji/1f1f2-1f1eb.png
deleted file mode 100644
index 70c761036b..0000000000
Binary files a/public/emoji/1f1f2-1f1eb.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1eb.svg b/public/emoji/1f1f2-1f1eb.svg
index 16bfba0cfe..359779e7f0 100644
--- a/public/emoji/1f1f2-1f1eb.svg
+++ b/public/emoji/1f1f2-1f1eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1ec.png b/public/emoji/1f1f2-1f1ec.png
deleted file mode 100644
index 2f3ccdda76..0000000000
Binary files a/public/emoji/1f1f2-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1ec.svg b/public/emoji/1f1f2-1f1ec.svg
index 3571c0a7f4..016e1c3601 100644
--- a/public/emoji/1f1f2-1f1ec.svg
+++ b/public/emoji/1f1f2-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1ed.png b/public/emoji/1f1f2-1f1ed.png
deleted file mode 100644
index 598016481c..0000000000
Binary files a/public/emoji/1f1f2-1f1ed.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1ed.svg b/public/emoji/1f1f2-1f1ed.svg
index bc53ad9667..9a82f6e4a6 100644
--- a/public/emoji/1f1f2-1f1ed.svg
+++ b/public/emoji/1f1f2-1f1ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1f0.png b/public/emoji/1f1f2-1f1f0.png
deleted file mode 100644
index 7ba775ee75..0000000000
Binary files a/public/emoji/1f1f2-1f1f0.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1f0.svg b/public/emoji/1f1f2-1f1f0.svg
index 8a3bc3e7c6..d5602de7c7 100644
--- a/public/emoji/1f1f2-1f1f0.svg
+++ b/public/emoji/1f1f2-1f1f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1f1.png b/public/emoji/1f1f2-1f1f1.png
deleted file mode 100644
index 6834378546..0000000000
Binary files a/public/emoji/1f1f2-1f1f1.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1f1.svg b/public/emoji/1f1f2-1f1f1.svg
index 650d974a97..729816534f 100644
--- a/public/emoji/1f1f2-1f1f1.svg
+++ b/public/emoji/1f1f2-1f1f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1f2.png b/public/emoji/1f1f2-1f1f2.png
deleted file mode 100644
index 37dc7d7159..0000000000
Binary files a/public/emoji/1f1f2-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1f2.svg b/public/emoji/1f1f2-1f1f2.svg
index 2df73cff5c..011a6a4d7d 100644
--- a/public/emoji/1f1f2-1f1f2.svg
+++ b/public/emoji/1f1f2-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1f3.png b/public/emoji/1f1f2-1f1f3.png
deleted file mode 100644
index 1f146bbcd1..0000000000
Binary files a/public/emoji/1f1f2-1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1f3.svg b/public/emoji/1f1f2-1f1f3.svg
index bfb46eb047..6987e12624 100644
--- a/public/emoji/1f1f2-1f1f3.svg
+++ b/public/emoji/1f1f2-1f1f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1f4.png b/public/emoji/1f1f2-1f1f4.png
deleted file mode 100644
index 7edde31f64..0000000000
Binary files a/public/emoji/1f1f2-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1f4.svg b/public/emoji/1f1f2-1f1f4.svg
index 30c75b65a1..9c7fb53658 100644
--- a/public/emoji/1f1f2-1f1f4.svg
+++ b/public/emoji/1f1f2-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1f5.png b/public/emoji/1f1f2-1f1f5.png
deleted file mode 100644
index 17ec1c441e..0000000000
Binary files a/public/emoji/1f1f2-1f1f5.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1f5.svg b/public/emoji/1f1f2-1f1f5.svg
index 823a275f35..ea7005e64f 100644
--- a/public/emoji/1f1f2-1f1f5.svg
+++ b/public/emoji/1f1f2-1f1f5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1f6.png b/public/emoji/1f1f2-1f1f6.png
deleted file mode 100644
index 1e672dc908..0000000000
Binary files a/public/emoji/1f1f2-1f1f6.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1f6.svg b/public/emoji/1f1f2-1f1f6.svg
index 79c46fd4a1..3a12ec0501 100644
--- a/public/emoji/1f1f2-1f1f6.svg
+++ b/public/emoji/1f1f2-1f1f6.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1f7.png b/public/emoji/1f1f2-1f1f7.png
deleted file mode 100644
index f87de46eff..0000000000
Binary files a/public/emoji/1f1f2-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1f7.svg b/public/emoji/1f1f2-1f1f7.svg
index 7878b6bbfc..1cc8a6fff4 100644
--- a/public/emoji/1f1f2-1f1f7.svg
+++ b/public/emoji/1f1f2-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1f8.png b/public/emoji/1f1f2-1f1f8.png
deleted file mode 100644
index 480b0d4ebd..0000000000
Binary files a/public/emoji/1f1f2-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1f8.svg b/public/emoji/1f1f2-1f1f8.svg
index 97cb964c84..24d149b0ad 100644
--- a/public/emoji/1f1f2-1f1f8.svg
+++ b/public/emoji/1f1f2-1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1f9.png b/public/emoji/1f1f2-1f1f9.png
deleted file mode 100644
index c9e1dbdce8..0000000000
Binary files a/public/emoji/1f1f2-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1f9.svg b/public/emoji/1f1f2-1f1f9.svg
index f244732753..98a364da95 100644
--- a/public/emoji/1f1f2-1f1f9.svg
+++ b/public/emoji/1f1f2-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1fa.png b/public/emoji/1f1f2-1f1fa.png
deleted file mode 100644
index 55b33cb7c3..0000000000
Binary files a/public/emoji/1f1f2-1f1fa.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1fa.svg b/public/emoji/1f1f2-1f1fa.svg
index 03c638846b..223c786e68 100644
--- a/public/emoji/1f1f2-1f1fa.svg
+++ b/public/emoji/1f1f2-1f1fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1fb.png b/public/emoji/1f1f2-1f1fb.png
deleted file mode 100644
index ce5867126a..0000000000
Binary files a/public/emoji/1f1f2-1f1fb.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1fb.svg b/public/emoji/1f1f2-1f1fb.svg
index 9326ae793a..87eba9d93f 100644
--- a/public/emoji/1f1f2-1f1fb.svg
+++ b/public/emoji/1f1f2-1f1fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1fc.png b/public/emoji/1f1f2-1f1fc.png
deleted file mode 100644
index 003d854840..0000000000
Binary files a/public/emoji/1f1f2-1f1fc.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1fc.svg b/public/emoji/1f1f2-1f1fc.svg
index 4fd4f5aefe..2dd553add9 100644
--- a/public/emoji/1f1f2-1f1fc.svg
+++ b/public/emoji/1f1f2-1f1fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1fd.png b/public/emoji/1f1f2-1f1fd.png
deleted file mode 100644
index 42572bcd0b..0000000000
Binary files a/public/emoji/1f1f2-1f1fd.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1fd.svg b/public/emoji/1f1f2-1f1fd.svg
index 7ccbceb6a4..fbb2ae056e 100644
--- a/public/emoji/1f1f2-1f1fd.svg
+++ b/public/emoji/1f1f2-1f1fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1fe.png b/public/emoji/1f1f2-1f1fe.png
deleted file mode 100644
index 17526c2674..0000000000
Binary files a/public/emoji/1f1f2-1f1fe.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1fe.svg b/public/emoji/1f1f2-1f1fe.svg
index 580bc7f9f4..97f472e19e 100644
--- a/public/emoji/1f1f2-1f1fe.svg
+++ b/public/emoji/1f1f2-1f1fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2-1f1ff.png b/public/emoji/1f1f2-1f1ff.png
deleted file mode 100644
index 2352a78e78..0000000000
Binary files a/public/emoji/1f1f2-1f1ff.png and /dev/null differ
diff --git a/public/emoji/1f1f2-1f1ff.svg b/public/emoji/1f1f2-1f1ff.svg
index 42ff00ceff..ddca4a7bd2 100644
--- a/public/emoji/1f1f2-1f1ff.svg
+++ b/public/emoji/1f1f2-1f1ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f2.png b/public/emoji/1f1f2.png
deleted file mode 100644
index 7b848b2ce2..0000000000
Binary files a/public/emoji/1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1f2.svg b/public/emoji/1f1f2.svg
index c04f37116d..595c1a8a72 100644
--- a/public/emoji/1f1f2.svg
+++ b/public/emoji/1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1e6.png b/public/emoji/1f1f3-1f1e6.png
deleted file mode 100644
index ed31c3df04..0000000000
Binary files a/public/emoji/1f1f3-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1e6.svg b/public/emoji/1f1f3-1f1e6.svg
index c53c7ddc6d..d8224397a7 100644
--- a/public/emoji/1f1f3-1f1e6.svg
+++ b/public/emoji/1f1f3-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1e8.png b/public/emoji/1f1f3-1f1e8.png
deleted file mode 100644
index 90b3afebfa..0000000000
Binary files a/public/emoji/1f1f3-1f1e8.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1e8.svg b/public/emoji/1f1f3-1f1e8.svg
index 7a9113f808..5a4999f5af 100644
--- a/public/emoji/1f1f3-1f1e8.svg
+++ b/public/emoji/1f1f3-1f1e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1ea.png b/public/emoji/1f1f3-1f1ea.png
deleted file mode 100644
index f98a1173c2..0000000000
Binary files a/public/emoji/1f1f3-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1ea.svg b/public/emoji/1f1f3-1f1ea.svg
index b7f4707888..b7d32ca125 100644
--- a/public/emoji/1f1f3-1f1ea.svg
+++ b/public/emoji/1f1f3-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1eb.png b/public/emoji/1f1f3-1f1eb.png
deleted file mode 100644
index 9099e76742..0000000000
Binary files a/public/emoji/1f1f3-1f1eb.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1eb.svg b/public/emoji/1f1f3-1f1eb.svg
index 21005fb0d2..d8d25ec549 100644
--- a/public/emoji/1f1f3-1f1eb.svg
+++ b/public/emoji/1f1f3-1f1eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1ec.png b/public/emoji/1f1f3-1f1ec.png
deleted file mode 100644
index ea0abeff1a..0000000000
Binary files a/public/emoji/1f1f3-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1ec.svg b/public/emoji/1f1f3-1f1ec.svg
index 0701d0cdf1..2e68813ae6 100644
--- a/public/emoji/1f1f3-1f1ec.svg
+++ b/public/emoji/1f1f3-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1ee.png b/public/emoji/1f1f3-1f1ee.png
deleted file mode 100644
index 772920dfa1..0000000000
Binary files a/public/emoji/1f1f3-1f1ee.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1ee.svg b/public/emoji/1f1f3-1f1ee.svg
index 8792eddc8d..d61e76bcdd 100644
--- a/public/emoji/1f1f3-1f1ee.svg
+++ b/public/emoji/1f1f3-1f1ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1f1.png b/public/emoji/1f1f3-1f1f1.png
deleted file mode 100644
index 83a0e817e4..0000000000
Binary files a/public/emoji/1f1f3-1f1f1.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1f1.svg b/public/emoji/1f1f3-1f1f1.svg
index c150ee5942..80adf56ddb 100644
--- a/public/emoji/1f1f3-1f1f1.svg
+++ b/public/emoji/1f1f3-1f1f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1f4.png b/public/emoji/1f1f3-1f1f4.png
deleted file mode 100644
index 99d3142eb7..0000000000
Binary files a/public/emoji/1f1f3-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1f4.svg b/public/emoji/1f1f3-1f1f4.svg
index 85182d9839..f9a01310c6 100644
--- a/public/emoji/1f1f3-1f1f4.svg
+++ b/public/emoji/1f1f3-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1f5.png b/public/emoji/1f1f3-1f1f5.png
deleted file mode 100644
index 87425a8dfe..0000000000
Binary files a/public/emoji/1f1f3-1f1f5.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1f5.svg b/public/emoji/1f1f3-1f1f5.svg
index a1e7545bad..4c816f7a4e 100644
--- a/public/emoji/1f1f3-1f1f5.svg
+++ b/public/emoji/1f1f3-1f1f5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1f7.png b/public/emoji/1f1f3-1f1f7.png
deleted file mode 100644
index b3e3a5d562..0000000000
Binary files a/public/emoji/1f1f3-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1f7.svg b/public/emoji/1f1f3-1f1f7.svg
index eba929277a..dcf7aa255e 100644
--- a/public/emoji/1f1f3-1f1f7.svg
+++ b/public/emoji/1f1f3-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1fa.png b/public/emoji/1f1f3-1f1fa.png
deleted file mode 100644
index f03614443e..0000000000
Binary files a/public/emoji/1f1f3-1f1fa.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1fa.svg b/public/emoji/1f1f3-1f1fa.svg
index f4b61fd5e6..20fa1fbfa7 100644
--- a/public/emoji/1f1f3-1f1fa.svg
+++ b/public/emoji/1f1f3-1f1fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3-1f1ff.png b/public/emoji/1f1f3-1f1ff.png
deleted file mode 100644
index a4eeeab9cd..0000000000
Binary files a/public/emoji/1f1f3-1f1ff.png and /dev/null differ
diff --git a/public/emoji/1f1f3-1f1ff.svg b/public/emoji/1f1f3-1f1ff.svg
index 688b145c19..3d76eaf879 100644
--- a/public/emoji/1f1f3-1f1ff.svg
+++ b/public/emoji/1f1f3-1f1ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f3.png b/public/emoji/1f1f3.png
deleted file mode 100644
index 4a11e50438..0000000000
Binary files a/public/emoji/1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1f3.svg b/public/emoji/1f1f3.svg
index a32f055903..4736cc6eb3 100644
--- a/public/emoji/1f1f3.svg
+++ b/public/emoji/1f1f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f4-1f1f2.png b/public/emoji/1f1f4-1f1f2.png
deleted file mode 100644
index ea824ba31e..0000000000
Binary files a/public/emoji/1f1f4-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1f4-1f1f2.svg b/public/emoji/1f1f4-1f1f2.svg
index 3a23ddcb9f..95682a7bee 100644
--- a/public/emoji/1f1f4-1f1f2.svg
+++ b/public/emoji/1f1f4-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f4.png b/public/emoji/1f1f4.png
deleted file mode 100644
index 2a0760b315..0000000000
Binary files a/public/emoji/1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1f4.svg b/public/emoji/1f1f4.svg
index 079e2b1a9d..96fc0b1f49 100644
--- a/public/emoji/1f1f4.svg
+++ b/public/emoji/1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1e6.png b/public/emoji/1f1f5-1f1e6.png
deleted file mode 100644
index c3091d8988..0000000000
Binary files a/public/emoji/1f1f5-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1e6.svg b/public/emoji/1f1f5-1f1e6.svg
index cbeb3037f5..aa4edaa8ff 100644
--- a/public/emoji/1f1f5-1f1e6.svg
+++ b/public/emoji/1f1f5-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1ea.png b/public/emoji/1f1f5-1f1ea.png
deleted file mode 100644
index 39223aa9db..0000000000
Binary files a/public/emoji/1f1f5-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1ea.svg b/public/emoji/1f1f5-1f1ea.svg
index dab27b6367..17e8abe250 100644
--- a/public/emoji/1f1f5-1f1ea.svg
+++ b/public/emoji/1f1f5-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1eb.png b/public/emoji/1f1f5-1f1eb.png
deleted file mode 100644
index 113445f8f6..0000000000
Binary files a/public/emoji/1f1f5-1f1eb.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1eb.svg b/public/emoji/1f1f5-1f1eb.svg
index d68516daa7..8d2d874941 100644
--- a/public/emoji/1f1f5-1f1eb.svg
+++ b/public/emoji/1f1f5-1f1eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1ec.png b/public/emoji/1f1f5-1f1ec.png
deleted file mode 100644
index 825e9dcb76..0000000000
Binary files a/public/emoji/1f1f5-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1ec.svg b/public/emoji/1f1f5-1f1ec.svg
index 094bf895f5..a39a0e987c 100644
--- a/public/emoji/1f1f5-1f1ec.svg
+++ b/public/emoji/1f1f5-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1ed.png b/public/emoji/1f1f5-1f1ed.png
deleted file mode 100644
index 8260e15bd2..0000000000
Binary files a/public/emoji/1f1f5-1f1ed.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1ed.svg b/public/emoji/1f1f5-1f1ed.svg
index 57ebde425a..17965b9eb3 100644
--- a/public/emoji/1f1f5-1f1ed.svg
+++ b/public/emoji/1f1f5-1f1ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1f0.png b/public/emoji/1f1f5-1f1f0.png
deleted file mode 100644
index a7b6a1c507..0000000000
Binary files a/public/emoji/1f1f5-1f1f0.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1f0.svg b/public/emoji/1f1f5-1f1f0.svg
index 3a8cfd9b26..f3cfa46689 100644
--- a/public/emoji/1f1f5-1f1f0.svg
+++ b/public/emoji/1f1f5-1f1f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1f1.png b/public/emoji/1f1f5-1f1f1.png
deleted file mode 100644
index 19de2edec1..0000000000
Binary files a/public/emoji/1f1f5-1f1f1.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1f1.svg b/public/emoji/1f1f5-1f1f1.svg
index bf78dbbce8..bbc7f1ba91 100644
--- a/public/emoji/1f1f5-1f1f1.svg
+++ b/public/emoji/1f1f5-1f1f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1f2.png b/public/emoji/1f1f5-1f1f2.png
deleted file mode 100644
index 2ca6055419..0000000000
Binary files a/public/emoji/1f1f5-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1f2.svg b/public/emoji/1f1f5-1f1f2.svg
index 517c6682a5..44e7282b8b 100644
--- a/public/emoji/1f1f5-1f1f2.svg
+++ b/public/emoji/1f1f5-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1f3.png b/public/emoji/1f1f5-1f1f3.png
deleted file mode 100644
index f2263b154b..0000000000
Binary files a/public/emoji/1f1f5-1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1f3.svg b/public/emoji/1f1f5-1f1f3.svg
index adf57ca1ab..e9d1c474e2 100644
--- a/public/emoji/1f1f5-1f1f3.svg
+++ b/public/emoji/1f1f5-1f1f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1f7.png b/public/emoji/1f1f5-1f1f7.png
deleted file mode 100644
index d0209cddb7..0000000000
Binary files a/public/emoji/1f1f5-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1f7.svg b/public/emoji/1f1f5-1f1f7.svg
index 9008a55851..5a384c0e75 100644
--- a/public/emoji/1f1f5-1f1f7.svg
+++ b/public/emoji/1f1f5-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1f8.png b/public/emoji/1f1f5-1f1f8.png
deleted file mode 100644
index 7ccab09778..0000000000
Binary files a/public/emoji/1f1f5-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1f8.svg b/public/emoji/1f1f5-1f1f8.svg
index e3f5f42489..08f8d7f13f 100644
--- a/public/emoji/1f1f5-1f1f8.svg
+++ b/public/emoji/1f1f5-1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1f9.png b/public/emoji/1f1f5-1f1f9.png
deleted file mode 100644
index cc93f27c64..0000000000
Binary files a/public/emoji/1f1f5-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1f9.svg b/public/emoji/1f1f5-1f1f9.svg
index f4866075c2..81defcf3ad 100644
--- a/public/emoji/1f1f5-1f1f9.svg
+++ b/public/emoji/1f1f5-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1fc.png b/public/emoji/1f1f5-1f1fc.png
deleted file mode 100644
index 154b2f12d3..0000000000
Binary files a/public/emoji/1f1f5-1f1fc.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1fc.svg b/public/emoji/1f1f5-1f1fc.svg
index a88c9f8fb1..4eaf0143ce 100644
--- a/public/emoji/1f1f5-1f1fc.svg
+++ b/public/emoji/1f1f5-1f1fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5-1f1fe.png b/public/emoji/1f1f5-1f1fe.png
deleted file mode 100644
index 662ad2f6ff..0000000000
Binary files a/public/emoji/1f1f5-1f1fe.png and /dev/null differ
diff --git a/public/emoji/1f1f5-1f1fe.svg b/public/emoji/1f1f5-1f1fe.svg
index 93e40d091d..1853d28da9 100644
--- a/public/emoji/1f1f5-1f1fe.svg
+++ b/public/emoji/1f1f5-1f1fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f5.png b/public/emoji/1f1f5.png
deleted file mode 100644
index bcb3298f99..0000000000
Binary files a/public/emoji/1f1f5.png and /dev/null differ
diff --git a/public/emoji/1f1f5.svg b/public/emoji/1f1f5.svg
index 2a769ae73a..c111c03866 100644
--- a/public/emoji/1f1f5.svg
+++ b/public/emoji/1f1f5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f6-1f1e6.png b/public/emoji/1f1f6-1f1e6.png
deleted file mode 100644
index a01d8b05cc..0000000000
Binary files a/public/emoji/1f1f6-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1f6-1f1e6.svg b/public/emoji/1f1f6-1f1e6.svg
index 6c5ce7947f..0df0124967 100644
--- a/public/emoji/1f1f6-1f1e6.svg
+++ b/public/emoji/1f1f6-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f6.png b/public/emoji/1f1f6.png
deleted file mode 100644
index 6c92a9dfbc..0000000000
Binary files a/public/emoji/1f1f6.png and /dev/null differ
diff --git a/public/emoji/1f1f6.svg b/public/emoji/1f1f6.svg
index ea3e84d3c0..b3de8efbda 100644
--- a/public/emoji/1f1f6.svg
+++ b/public/emoji/1f1f6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f7-1f1ea.png b/public/emoji/1f1f7-1f1ea.png
deleted file mode 100644
index 57f2bbe9df..0000000000
Binary files a/public/emoji/1f1f7-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1f7-1f1ea.svg b/public/emoji/1f1f7-1f1ea.svg
index 634a34f5c2..ef15739e2d 100644
--- a/public/emoji/1f1f7-1f1ea.svg
+++ b/public/emoji/1f1f7-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f7-1f1f4.png b/public/emoji/1f1f7-1f1f4.png
deleted file mode 100644
index 3e48c44770..0000000000
Binary files a/public/emoji/1f1f7-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1f7-1f1f4.svg b/public/emoji/1f1f7-1f1f4.svg
index 20553c7714..3b3b6ab864 100644
--- a/public/emoji/1f1f7-1f1f4.svg
+++ b/public/emoji/1f1f7-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f7-1f1f8.png b/public/emoji/1f1f7-1f1f8.png
deleted file mode 100644
index 9df6c9a523..0000000000
Binary files a/public/emoji/1f1f7-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1f7-1f1f8.svg b/public/emoji/1f1f7-1f1f8.svg
index 276ec5da58..5a2a165288 100644
--- a/public/emoji/1f1f7-1f1f8.svg
+++ b/public/emoji/1f1f7-1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f7-1f1fa.png b/public/emoji/1f1f7-1f1fa.png
deleted file mode 100644
index e50c9db90e..0000000000
Binary files a/public/emoji/1f1f7-1f1fa.png and /dev/null differ
diff --git a/public/emoji/1f1f7-1f1fa.svg b/public/emoji/1f1f7-1f1fa.svg
index ba85d44e80..0c0949e69c 100644
--- a/public/emoji/1f1f7-1f1fa.svg
+++ b/public/emoji/1f1f7-1f1fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f7-1f1fc.png b/public/emoji/1f1f7-1f1fc.png
deleted file mode 100644
index c238c874e1..0000000000
Binary files a/public/emoji/1f1f7-1f1fc.png and /dev/null differ
diff --git a/public/emoji/1f1f7-1f1fc.svg b/public/emoji/1f1f7-1f1fc.svg
index d02fc12bac..11651f29b6 100644
--- a/public/emoji/1f1f7-1f1fc.svg
+++ b/public/emoji/1f1f7-1f1fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f7.png b/public/emoji/1f1f7.png
deleted file mode 100644
index 627892c912..0000000000
Binary files a/public/emoji/1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1f7.svg b/public/emoji/1f1f7.svg
index 1e8673ffa8..545c7700fa 100644
--- a/public/emoji/1f1f7.svg
+++ b/public/emoji/1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1e6.png b/public/emoji/1f1f8-1f1e6.png
deleted file mode 100644
index 4941be7d19..0000000000
Binary files a/public/emoji/1f1f8-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1e6.svg b/public/emoji/1f1f8-1f1e6.svg
index 73d0b056b0..86d6527578 100644
--- a/public/emoji/1f1f8-1f1e6.svg
+++ b/public/emoji/1f1f8-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1e7.png b/public/emoji/1f1f8-1f1e7.png
deleted file mode 100644
index 7d8f1ac613..0000000000
Binary files a/public/emoji/1f1f8-1f1e7.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1e7.svg b/public/emoji/1f1f8-1f1e7.svg
index 1253585e93..f5629076f5 100644
--- a/public/emoji/1f1f8-1f1e7.svg
+++ b/public/emoji/1f1f8-1f1e7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1e8.png b/public/emoji/1f1f8-1f1e8.png
deleted file mode 100644
index 6ae4d90765..0000000000
Binary files a/public/emoji/1f1f8-1f1e8.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1e8.svg b/public/emoji/1f1f8-1f1e8.svg
index c1632e6964..2bafbc20c6 100644
--- a/public/emoji/1f1f8-1f1e8.svg
+++ b/public/emoji/1f1f8-1f1e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1e9.png b/public/emoji/1f1f8-1f1e9.png
deleted file mode 100644
index 963be1b36f..0000000000
Binary files a/public/emoji/1f1f8-1f1e9.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1e9.svg b/public/emoji/1f1f8-1f1e9.svg
index 4fe07ce327..387ad34056 100644
--- a/public/emoji/1f1f8-1f1e9.svg
+++ b/public/emoji/1f1f8-1f1e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1ea.png b/public/emoji/1f1f8-1f1ea.png
deleted file mode 100644
index fc0d0e0ce8..0000000000
Binary files a/public/emoji/1f1f8-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1ea.svg b/public/emoji/1f1f8-1f1ea.svg
index ccd38777ba..a84f573df1 100644
--- a/public/emoji/1f1f8-1f1ea.svg
+++ b/public/emoji/1f1f8-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1ec.png b/public/emoji/1f1f8-1f1ec.png
deleted file mode 100644
index de3c7737c4..0000000000
Binary files a/public/emoji/1f1f8-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1ec.svg b/public/emoji/1f1f8-1f1ec.svg
index 91caccd4ad..3d77757f4c 100644
--- a/public/emoji/1f1f8-1f1ec.svg
+++ b/public/emoji/1f1f8-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1ed.png b/public/emoji/1f1f8-1f1ed.png
deleted file mode 100644
index 40cd9e44e9..0000000000
Binary files a/public/emoji/1f1f8-1f1ed.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1ed.svg b/public/emoji/1f1f8-1f1ed.svg
index ac8dfd1a03..5ceca0d3f0 100644
--- a/public/emoji/1f1f8-1f1ed.svg
+++ b/public/emoji/1f1f8-1f1ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1ee.png b/public/emoji/1f1f8-1f1ee.png
deleted file mode 100644
index e308999dba..0000000000
Binary files a/public/emoji/1f1f8-1f1ee.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1ee.svg b/public/emoji/1f1f8-1f1ee.svg
index 85338c99ca..aa66a1599c 100644
--- a/public/emoji/1f1f8-1f1ee.svg
+++ b/public/emoji/1f1f8-1f1ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1ef.png b/public/emoji/1f1f8-1f1ef.png
deleted file mode 100644
index 5884e64822..0000000000
Binary files a/public/emoji/1f1f8-1f1ef.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1ef.svg b/public/emoji/1f1f8-1f1ef.svg
index e9f5672c6f..f9a01310c6 100644
--- a/public/emoji/1f1f8-1f1ef.svg
+++ b/public/emoji/1f1f8-1f1ef.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1f0.png b/public/emoji/1f1f8-1f1f0.png
deleted file mode 100644
index 4259d0e141..0000000000
Binary files a/public/emoji/1f1f8-1f1f0.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1f0.svg b/public/emoji/1f1f8-1f1f0.svg
index 5b0e543563..d3a88c1dae 100644
--- a/public/emoji/1f1f8-1f1f0.svg
+++ b/public/emoji/1f1f8-1f1f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1f1.png b/public/emoji/1f1f8-1f1f1.png
deleted file mode 100644
index d2cc68830a..0000000000
Binary files a/public/emoji/1f1f8-1f1f1.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1f1.svg b/public/emoji/1f1f8-1f1f1.svg
index 50fafc2775..a03423c129 100644
--- a/public/emoji/1f1f8-1f1f1.svg
+++ b/public/emoji/1f1f8-1f1f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1f2.png b/public/emoji/1f1f8-1f1f2.png
deleted file mode 100644
index 03b8708754..0000000000
Binary files a/public/emoji/1f1f8-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1f2.svg b/public/emoji/1f1f8-1f1f2.svg
index abe63183d3..d26d90e38c 100644
--- a/public/emoji/1f1f8-1f1f2.svg
+++ b/public/emoji/1f1f8-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1f3.png b/public/emoji/1f1f8-1f1f3.png
deleted file mode 100644
index 5368bbe93d..0000000000
Binary files a/public/emoji/1f1f8-1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1f3.svg b/public/emoji/1f1f8-1f1f3.svg
index 548243e3b3..308ef03422 100644
--- a/public/emoji/1f1f8-1f1f3.svg
+++ b/public/emoji/1f1f8-1f1f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1f4.png b/public/emoji/1f1f8-1f1f4.png
deleted file mode 100644
index 68a0597365..0000000000
Binary files a/public/emoji/1f1f8-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1f4.svg b/public/emoji/1f1f8-1f1f4.svg
index 967be6174a..c205b1b37b 100644
--- a/public/emoji/1f1f8-1f1f4.svg
+++ b/public/emoji/1f1f8-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1f7.png b/public/emoji/1f1f8-1f1f7.png
deleted file mode 100644
index d325132703..0000000000
Binary files a/public/emoji/1f1f8-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1f7.svg b/public/emoji/1f1f8-1f1f7.svg
index 6348d1a785..d2b6e0fb50 100644
--- a/public/emoji/1f1f8-1f1f7.svg
+++ b/public/emoji/1f1f8-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1f8.png b/public/emoji/1f1f8-1f1f8.png
deleted file mode 100644
index 122977e798..0000000000
Binary files a/public/emoji/1f1f8-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1f8.svg b/public/emoji/1f1f8-1f1f8.svg
index 9bbb665424..e18f9e697b 100644
--- a/public/emoji/1f1f8-1f1f8.svg
+++ b/public/emoji/1f1f8-1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1f9.png b/public/emoji/1f1f8-1f1f9.png
deleted file mode 100644
index f83a863d61..0000000000
Binary files a/public/emoji/1f1f8-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1f9.svg b/public/emoji/1f1f8-1f1f9.svg
index 08a1d8fbb4..2d5ef73c5c 100644
--- a/public/emoji/1f1f8-1f1f9.svg
+++ b/public/emoji/1f1f8-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1fb.png b/public/emoji/1f1f8-1f1fb.png
deleted file mode 100644
index efb83e2f25..0000000000
Binary files a/public/emoji/1f1f8-1f1fb.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1fb.svg b/public/emoji/1f1f8-1f1fb.svg
index 9c93704758..5081fb9482 100644
--- a/public/emoji/1f1f8-1f1fb.svg
+++ b/public/emoji/1f1f8-1f1fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1fd.png b/public/emoji/1f1f8-1f1fd.png
deleted file mode 100644
index 94b760fbed..0000000000
Binary files a/public/emoji/1f1f8-1f1fd.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1fd.svg b/public/emoji/1f1f8-1f1fd.svg
index b0cd97a077..00d7eb4d57 100644
--- a/public/emoji/1f1f8-1f1fd.svg
+++ b/public/emoji/1f1f8-1f1fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1fe.png b/public/emoji/1f1f8-1f1fe.png
deleted file mode 100644
index 09a8ee8f78..0000000000
Binary files a/public/emoji/1f1f8-1f1fe.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1fe.svg b/public/emoji/1f1f8-1f1fe.svg
index 62fbea40bf..d7c1df75a1 100644
--- a/public/emoji/1f1f8-1f1fe.svg
+++ b/public/emoji/1f1f8-1f1fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8-1f1ff.png b/public/emoji/1f1f8-1f1ff.png
deleted file mode 100644
index f74e82ea1f..0000000000
Binary files a/public/emoji/1f1f8-1f1ff.png and /dev/null differ
diff --git a/public/emoji/1f1f8-1f1ff.svg b/public/emoji/1f1f8-1f1ff.svg
index deafce4e2c..d6c470dd07 100644
--- a/public/emoji/1f1f8-1f1ff.svg
+++ b/public/emoji/1f1f8-1f1ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f8.png b/public/emoji/1f1f8.png
deleted file mode 100644
index 9d0dbf93af..0000000000
Binary files a/public/emoji/1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1f8.svg b/public/emoji/1f1f8.svg
index a39d2010ee..a73e5074c2 100644
--- a/public/emoji/1f1f8.svg
+++ b/public/emoji/1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1e6.png b/public/emoji/1f1f9-1f1e6.png
deleted file mode 100644
index b44283e90e..0000000000
Binary files a/public/emoji/1f1f9-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1e6.svg b/public/emoji/1f1f9-1f1e6.svg
index 68e6e9ce7c..84b5c1e7d9 100644
--- a/public/emoji/1f1f9-1f1e6.svg
+++ b/public/emoji/1f1f9-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1e8.png b/public/emoji/1f1f9-1f1e8.png
deleted file mode 100644
index 156b33d1ba..0000000000
Binary files a/public/emoji/1f1f9-1f1e8.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1e8.svg b/public/emoji/1f1f9-1f1e8.svg
index ba12e33df8..5f2b42d62c 100644
--- a/public/emoji/1f1f9-1f1e8.svg
+++ b/public/emoji/1f1f9-1f1e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1e9.png b/public/emoji/1f1f9-1f1e9.png
deleted file mode 100644
index ebe7f59282..0000000000
Binary files a/public/emoji/1f1f9-1f1e9.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1e9.svg b/public/emoji/1f1f9-1f1e9.svg
index 3976073fb3..0e48d2772a 100644
--- a/public/emoji/1f1f9-1f1e9.svg
+++ b/public/emoji/1f1f9-1f1e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1eb.png b/public/emoji/1f1f9-1f1eb.png
deleted file mode 100644
index a1a3ad68ee..0000000000
Binary files a/public/emoji/1f1f9-1f1eb.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1eb.svg b/public/emoji/1f1f9-1f1eb.svg
index f374f23f69..015fbf976e 100644
--- a/public/emoji/1f1f9-1f1eb.svg
+++ b/public/emoji/1f1f9-1f1eb.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1ec.png b/public/emoji/1f1f9-1f1ec.png
deleted file mode 100644
index 826b73c9ac..0000000000
Binary files a/public/emoji/1f1f9-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1ec.svg b/public/emoji/1f1f9-1f1ec.svg
index 1c9e70f452..e4dc6d6d3d 100644
--- a/public/emoji/1f1f9-1f1ec.svg
+++ b/public/emoji/1f1f9-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1ed.png b/public/emoji/1f1f9-1f1ed.png
deleted file mode 100644
index 93ff542c5a..0000000000
Binary files a/public/emoji/1f1f9-1f1ed.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1ed.svg b/public/emoji/1f1f9-1f1ed.svg
index d5a54a4d89..426a60c8e3 100644
--- a/public/emoji/1f1f9-1f1ed.svg
+++ b/public/emoji/1f1f9-1f1ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1ef.png b/public/emoji/1f1f9-1f1ef.png
deleted file mode 100644
index 7a8a0b6190..0000000000
Binary files a/public/emoji/1f1f9-1f1ef.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1ef.svg b/public/emoji/1f1f9-1f1ef.svg
index a7d29de9d0..126bc7c5aa 100644
--- a/public/emoji/1f1f9-1f1ef.svg
+++ b/public/emoji/1f1f9-1f1ef.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1f0.png b/public/emoji/1f1f9-1f1f0.png
deleted file mode 100644
index 2fa5a21b1b..0000000000
Binary files a/public/emoji/1f1f9-1f1f0.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1f0.svg b/public/emoji/1f1f9-1f1f0.svg
index 7c869591e2..ba9c6a1a6a 100644
--- a/public/emoji/1f1f9-1f1f0.svg
+++ b/public/emoji/1f1f9-1f1f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1f1.png b/public/emoji/1f1f9-1f1f1.png
deleted file mode 100644
index 5b120eccc6..0000000000
Binary files a/public/emoji/1f1f9-1f1f1.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1f1.svg b/public/emoji/1f1f9-1f1f1.svg
index 43e983ac30..1da3e65029 100644
--- a/public/emoji/1f1f9-1f1f1.svg
+++ b/public/emoji/1f1f9-1f1f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1f2.png b/public/emoji/1f1f9-1f1f2.png
deleted file mode 100644
index c3c4f53230..0000000000
Binary files a/public/emoji/1f1f9-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1f2.svg b/public/emoji/1f1f9-1f1f2.svg
index 785f91cbbc..5dcd737a7a 100644
--- a/public/emoji/1f1f9-1f1f2.svg
+++ b/public/emoji/1f1f9-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1f3.png b/public/emoji/1f1f9-1f1f3.png
deleted file mode 100644
index 58ef161229..0000000000
Binary files a/public/emoji/1f1f9-1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1f3.svg b/public/emoji/1f1f9-1f1f3.svg
index b27930a659..09b34992ae 100644
--- a/public/emoji/1f1f9-1f1f3.svg
+++ b/public/emoji/1f1f9-1f1f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1f4.png b/public/emoji/1f1f9-1f1f4.png
deleted file mode 100644
index 1ffa7bb9d1..0000000000
Binary files a/public/emoji/1f1f9-1f1f4.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1f4.svg b/public/emoji/1f1f9-1f1f4.svg
index 4adcb03430..cd4ae3094b 100644
--- a/public/emoji/1f1f9-1f1f4.svg
+++ b/public/emoji/1f1f9-1f1f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1f7.png b/public/emoji/1f1f9-1f1f7.png
deleted file mode 100644
index 325251fae8..0000000000
Binary files a/public/emoji/1f1f9-1f1f7.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1f7.svg b/public/emoji/1f1f9-1f1f7.svg
index 57ab90b7dd..d8fd78213e 100644
--- a/public/emoji/1f1f9-1f1f7.svg
+++ b/public/emoji/1f1f9-1f1f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1f9.png b/public/emoji/1f1f9-1f1f9.png
deleted file mode 100644
index ed3bb39a30..0000000000
Binary files a/public/emoji/1f1f9-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1f9.svg b/public/emoji/1f1f9-1f1f9.svg
index d0322a71a8..00bf8643a6 100644
--- a/public/emoji/1f1f9-1f1f9.svg
+++ b/public/emoji/1f1f9-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1fb.png b/public/emoji/1f1f9-1f1fb.png
deleted file mode 100644
index e82c65c7bb..0000000000
Binary files a/public/emoji/1f1f9-1f1fb.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1fb.svg b/public/emoji/1f1f9-1f1fb.svg
index e911e865f6..1a3d48f7e3 100644
--- a/public/emoji/1f1f9-1f1fb.svg
+++ b/public/emoji/1f1f9-1f1fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1fc.png b/public/emoji/1f1f9-1f1fc.png
deleted file mode 100644
index 3a8f00b592..0000000000
Binary files a/public/emoji/1f1f9-1f1fc.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1fc.svg b/public/emoji/1f1f9-1f1fc.svg
index 8ac4ed8312..948f05efe4 100644
--- a/public/emoji/1f1f9-1f1fc.svg
+++ b/public/emoji/1f1f9-1f1fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9-1f1ff.png b/public/emoji/1f1f9-1f1ff.png
deleted file mode 100644
index 2a020853d4..0000000000
Binary files a/public/emoji/1f1f9-1f1ff.png and /dev/null differ
diff --git a/public/emoji/1f1f9-1f1ff.svg b/public/emoji/1f1f9-1f1ff.svg
index 9e65b4b844..8a5cbf6804 100644
--- a/public/emoji/1f1f9-1f1ff.svg
+++ b/public/emoji/1f1f9-1f1ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1f9.png b/public/emoji/1f1f9.png
deleted file mode 100644
index 2d882f66b1..0000000000
Binary files a/public/emoji/1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1f9.svg b/public/emoji/1f1f9.svg
index 6d8e6eda82..c230bbcfc0 100644
--- a/public/emoji/1f1f9.svg
+++ b/public/emoji/1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fa-1f1e6.png b/public/emoji/1f1fa-1f1e6.png
deleted file mode 100644
index cd84d1bbd3..0000000000
Binary files a/public/emoji/1f1fa-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1fa-1f1e6.svg b/public/emoji/1f1fa-1f1e6.svg
index 3d4e0e3b59..6d7254dced 100644
--- a/public/emoji/1f1fa-1f1e6.svg
+++ b/public/emoji/1f1fa-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fa-1f1ec.png b/public/emoji/1f1fa-1f1ec.png
deleted file mode 100644
index dc97690eb5..0000000000
Binary files a/public/emoji/1f1fa-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1fa-1f1ec.svg b/public/emoji/1f1fa-1f1ec.svg
index 450937689a..cc3422c620 100644
--- a/public/emoji/1f1fa-1f1ec.svg
+++ b/public/emoji/1f1fa-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fa-1f1f2.png b/public/emoji/1f1fa-1f1f2.png
deleted file mode 100644
index 4a7ee3cdf1..0000000000
Binary files a/public/emoji/1f1fa-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1fa-1f1f2.svg b/public/emoji/1f1fa-1f1f2.svg
index 48488ea245..a7e325796a 100644
--- a/public/emoji/1f1fa-1f1f2.svg
+++ b/public/emoji/1f1fa-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fa-1f1f3.svg b/public/emoji/1f1fa-1f1f3.svg
new file mode 100644
index 0000000000..825b32daca
--- /dev/null
+++ b/public/emoji/1f1fa-1f1f3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f1fa-1f1f8.png b/public/emoji/1f1fa-1f1f8.png
deleted file mode 100644
index 9f73030586..0000000000
Binary files a/public/emoji/1f1fa-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1fa-1f1f8.svg b/public/emoji/1f1fa-1f1f8.svg
index 28e8578e17..a7e325796a 100644
--- a/public/emoji/1f1fa-1f1f8.svg
+++ b/public/emoji/1f1fa-1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fa-1f1fe.png b/public/emoji/1f1fa-1f1fe.png
deleted file mode 100644
index b8002a697a..0000000000
Binary files a/public/emoji/1f1fa-1f1fe.png and /dev/null differ
diff --git a/public/emoji/1f1fa-1f1fe.svg b/public/emoji/1f1fa-1f1fe.svg
index bc4ad70037..dfd2535a09 100644
--- a/public/emoji/1f1fa-1f1fe.svg
+++ b/public/emoji/1f1fa-1f1fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fa-1f1ff.png b/public/emoji/1f1fa-1f1ff.png
deleted file mode 100644
index d56ca9bc42..0000000000
Binary files a/public/emoji/1f1fa-1f1ff.png and /dev/null differ
diff --git a/public/emoji/1f1fa-1f1ff.svg b/public/emoji/1f1fa-1f1ff.svg
index a6bb6cbfd2..b9997256eb 100644
--- a/public/emoji/1f1fa-1f1ff.svg
+++ b/public/emoji/1f1fa-1f1ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fa.png b/public/emoji/1f1fa.png
deleted file mode 100644
index ae0cabeb1c..0000000000
Binary files a/public/emoji/1f1fa.png and /dev/null differ
diff --git a/public/emoji/1f1fa.svg b/public/emoji/1f1fa.svg
index 9966d13230..1e7d298696 100644
--- a/public/emoji/1f1fa.svg
+++ b/public/emoji/1f1fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fb-1f1e6.png b/public/emoji/1f1fb-1f1e6.png
deleted file mode 100644
index ddaf5e3141..0000000000
Binary files a/public/emoji/1f1fb-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1fb-1f1e6.svg b/public/emoji/1f1fb-1f1e6.svg
index d0078effe3..af4d696034 100644
--- a/public/emoji/1f1fb-1f1e6.svg
+++ b/public/emoji/1f1fb-1f1e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fb-1f1e8.png b/public/emoji/1f1fb-1f1e8.png
deleted file mode 100644
index 43703c62a7..0000000000
Binary files a/public/emoji/1f1fb-1f1e8.png and /dev/null differ
diff --git a/public/emoji/1f1fb-1f1e8.svg b/public/emoji/1f1fb-1f1e8.svg
index 5cafb43d9d..06ffac6988 100644
--- a/public/emoji/1f1fb-1f1e8.svg
+++ b/public/emoji/1f1fb-1f1e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fb-1f1ea.png b/public/emoji/1f1fb-1f1ea.png
deleted file mode 100644
index 1b62796824..0000000000
Binary files a/public/emoji/1f1fb-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1fb-1f1ea.svg b/public/emoji/1f1fb-1f1ea.svg
index 8274ed0b4c..a4ed2d2aa1 100644
--- a/public/emoji/1f1fb-1f1ea.svg
+++ b/public/emoji/1f1fb-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fb-1f1ec.png b/public/emoji/1f1fb-1f1ec.png
deleted file mode 100644
index 536f780f1c..0000000000
Binary files a/public/emoji/1f1fb-1f1ec.png and /dev/null differ
diff --git a/public/emoji/1f1fb-1f1ec.svg b/public/emoji/1f1fb-1f1ec.svg
index e5afefcad8..6357a52fac 100644
--- a/public/emoji/1f1fb-1f1ec.svg
+++ b/public/emoji/1f1fb-1f1ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fb-1f1ee.png b/public/emoji/1f1fb-1f1ee.png
deleted file mode 100644
index 64102012cf..0000000000
Binary files a/public/emoji/1f1fb-1f1ee.png and /dev/null differ
diff --git a/public/emoji/1f1fb-1f1ee.svg b/public/emoji/1f1fb-1f1ee.svg
index 2364a0c8c2..2f0b931945 100644
--- a/public/emoji/1f1fb-1f1ee.svg
+++ b/public/emoji/1f1fb-1f1ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fb-1f1f3.png b/public/emoji/1f1fb-1f1f3.png
deleted file mode 100644
index 427036046b..0000000000
Binary files a/public/emoji/1f1fb-1f1f3.png and /dev/null differ
diff --git a/public/emoji/1f1fb-1f1f3.svg b/public/emoji/1f1fb-1f1f3.svg
index a35b203fd6..d0b7daeb44 100644
--- a/public/emoji/1f1fb-1f1f3.svg
+++ b/public/emoji/1f1fb-1f1f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fb-1f1fa.png b/public/emoji/1f1fb-1f1fa.png
deleted file mode 100644
index 706eba4407..0000000000
Binary files a/public/emoji/1f1fb-1f1fa.png and /dev/null differ
diff --git a/public/emoji/1f1fb-1f1fa.svg b/public/emoji/1f1fb-1f1fa.svg
index 51ac13f4f6..7595f2f72d 100644
--- a/public/emoji/1f1fb-1f1fa.svg
+++ b/public/emoji/1f1fb-1f1fa.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fb.png b/public/emoji/1f1fb.png
deleted file mode 100644
index e01e179b45..0000000000
Binary files a/public/emoji/1f1fb.png and /dev/null differ
diff --git a/public/emoji/1f1fb.svg b/public/emoji/1f1fb.svg
index fd7586dca7..946cf36a1b 100644
--- a/public/emoji/1f1fb.svg
+++ b/public/emoji/1f1fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fc-1f1eb.png b/public/emoji/1f1fc-1f1eb.png
deleted file mode 100644
index 70c761036b..0000000000
Binary files a/public/emoji/1f1fc-1f1eb.png and /dev/null differ
diff --git a/public/emoji/1f1fc-1f1eb.svg b/public/emoji/1f1fc-1f1eb.svg
index 16bfba0cfe..b7d01ea663 100644
--- a/public/emoji/1f1fc-1f1eb.svg
+++ b/public/emoji/1f1fc-1f1eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fc-1f1f8.png b/public/emoji/1f1fc-1f1f8.png
deleted file mode 100644
index a1ea070314..0000000000
Binary files a/public/emoji/1f1fc-1f1f8.png and /dev/null differ
diff --git a/public/emoji/1f1fc-1f1f8.svg b/public/emoji/1f1fc-1f1f8.svg
index 67b769ca6e..6e11aab766 100644
--- a/public/emoji/1f1fc-1f1f8.svg
+++ b/public/emoji/1f1fc-1f1f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fc.png b/public/emoji/1f1fc.png
deleted file mode 100644
index e8f614ac84..0000000000
Binary files a/public/emoji/1f1fc.png and /dev/null differ
diff --git a/public/emoji/1f1fc.svg b/public/emoji/1f1fc.svg
index 3f2ce79fd6..aed47a8820 100644
--- a/public/emoji/1f1fc.svg
+++ b/public/emoji/1f1fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fd-1f1f0.png b/public/emoji/1f1fd-1f1f0.png
deleted file mode 100644
index e587a44663..0000000000
Binary files a/public/emoji/1f1fd-1f1f0.png and /dev/null differ
diff --git a/public/emoji/1f1fd-1f1f0.svg b/public/emoji/1f1fd-1f1f0.svg
index 4a771e9381..4499d2cfd2 100644
--- a/public/emoji/1f1fd-1f1f0.svg
+++ b/public/emoji/1f1fd-1f1f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fd.png b/public/emoji/1f1fd.png
deleted file mode 100644
index e3bedba0be..0000000000
Binary files a/public/emoji/1f1fd.png and /dev/null differ
diff --git a/public/emoji/1f1fd.svg b/public/emoji/1f1fd.svg
index 0b95b597c0..9af21b8df4 100644
--- a/public/emoji/1f1fd.svg
+++ b/public/emoji/1f1fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fe-1f1ea.png b/public/emoji/1f1fe-1f1ea.png
deleted file mode 100644
index eadfebd5f6..0000000000
Binary files a/public/emoji/1f1fe-1f1ea.png and /dev/null differ
diff --git a/public/emoji/1f1fe-1f1ea.svg b/public/emoji/1f1fe-1f1ea.svg
index beeca62293..667d2ae899 100644
--- a/public/emoji/1f1fe-1f1ea.svg
+++ b/public/emoji/1f1fe-1f1ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fe-1f1f9.png b/public/emoji/1f1fe-1f1f9.png
deleted file mode 100644
index c81fa6d886..0000000000
Binary files a/public/emoji/1f1fe-1f1f9.png and /dev/null differ
diff --git a/public/emoji/1f1fe-1f1f9.svg b/public/emoji/1f1fe-1f1f9.svg
index b2627bf9b9..5560649cba 100644
--- a/public/emoji/1f1fe-1f1f9.svg
+++ b/public/emoji/1f1fe-1f1f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1fe.png b/public/emoji/1f1fe.png
deleted file mode 100644
index 9bfa7f2db9..0000000000
Binary files a/public/emoji/1f1fe.png and /dev/null differ
diff --git a/public/emoji/1f1fe.svg b/public/emoji/1f1fe.svg
index fe9e109c05..49eecb7d67 100644
--- a/public/emoji/1f1fe.svg
+++ b/public/emoji/1f1fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ff-1f1e6.png b/public/emoji/1f1ff-1f1e6.png
deleted file mode 100644
index f397ef5072..0000000000
Binary files a/public/emoji/1f1ff-1f1e6.png and /dev/null differ
diff --git a/public/emoji/1f1ff-1f1e6.svg b/public/emoji/1f1ff-1f1e6.svg
index 5253e63600..cb41b2ef6f 100644
--- a/public/emoji/1f1ff-1f1e6.svg
+++ b/public/emoji/1f1ff-1f1e6.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ff-1f1f2.png b/public/emoji/1f1ff-1f1f2.png
deleted file mode 100644
index 2494a31f66..0000000000
Binary files a/public/emoji/1f1ff-1f1f2.png and /dev/null differ
diff --git a/public/emoji/1f1ff-1f1f2.svg b/public/emoji/1f1ff-1f1f2.svg
index 16306c7393..25e86be032 100644
--- a/public/emoji/1f1ff-1f1f2.svg
+++ b/public/emoji/1f1ff-1f1f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ff-1f1fc.png b/public/emoji/1f1ff-1f1fc.png
deleted file mode 100644
index e09b9652be..0000000000
Binary files a/public/emoji/1f1ff-1f1fc.png and /dev/null differ
diff --git a/public/emoji/1f1ff-1f1fc.svg b/public/emoji/1f1ff-1f1fc.svg
index 77f539e5f4..aeb9a3c81c 100644
--- a/public/emoji/1f1ff-1f1fc.svg
+++ b/public/emoji/1f1ff-1f1fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f1ff.png b/public/emoji/1f1ff.png
deleted file mode 100644
index 5bf03f100c..0000000000
Binary files a/public/emoji/1f1ff.png and /dev/null differ
diff --git a/public/emoji/1f1ff.svg b/public/emoji/1f1ff.svg
index 133cd3cf3c..f8f7989891 100644
--- a/public/emoji/1f1ff.svg
+++ b/public/emoji/1f1ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f201.png b/public/emoji/1f201.png
deleted file mode 100644
index 6450eb44d9..0000000000
Binary files a/public/emoji/1f201.png and /dev/null differ
diff --git a/public/emoji/1f201.svg b/public/emoji/1f201.svg
index 44714e7ea3..824d957c38 100644
--- a/public/emoji/1f201.svg
+++ b/public/emoji/1f201.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f202.png b/public/emoji/1f202.png
deleted file mode 100644
index 900f963324..0000000000
Binary files a/public/emoji/1f202.png and /dev/null differ
diff --git a/public/emoji/1f202.svg b/public/emoji/1f202.svg
index a6e36bc7d9..b2c039cb77 100644
--- a/public/emoji/1f202.svg
+++ b/public/emoji/1f202.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f21a.png b/public/emoji/1f21a.png
deleted file mode 100644
index d3a19b420d..0000000000
Binary files a/public/emoji/1f21a.png and /dev/null differ
diff --git a/public/emoji/1f21a.svg b/public/emoji/1f21a.svg
index 74c92f22c7..1992f1d494 100644
--- a/public/emoji/1f21a.svg
+++ b/public/emoji/1f21a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f22f.png b/public/emoji/1f22f.png
deleted file mode 100644
index 078e23e4ff..0000000000
Binary files a/public/emoji/1f22f.png and /dev/null differ
diff --git a/public/emoji/1f22f.svg b/public/emoji/1f22f.svg
index 07d785adfb..265e896a91 100644
--- a/public/emoji/1f22f.svg
+++ b/public/emoji/1f22f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f232.png b/public/emoji/1f232.png
deleted file mode 100644
index 4c704e0343..0000000000
Binary files a/public/emoji/1f232.png and /dev/null differ
diff --git a/public/emoji/1f232.svg b/public/emoji/1f232.svg
index 5cc5826cef..442d11dcea 100644
--- a/public/emoji/1f232.svg
+++ b/public/emoji/1f232.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f233.png b/public/emoji/1f233.png
deleted file mode 100644
index 47966c1ea9..0000000000
Binary files a/public/emoji/1f233.png and /dev/null differ
diff --git a/public/emoji/1f233.svg b/public/emoji/1f233.svg
index ae8c7bdad5..c9de760809 100644
--- a/public/emoji/1f233.svg
+++ b/public/emoji/1f233.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f234.png b/public/emoji/1f234.png
deleted file mode 100644
index 8375ad9d9a..0000000000
Binary files a/public/emoji/1f234.png and /dev/null differ
diff --git a/public/emoji/1f234.svg b/public/emoji/1f234.svg
index ea346b6664..8d24fe0b14 100644
--- a/public/emoji/1f234.svg
+++ b/public/emoji/1f234.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f235.png b/public/emoji/1f235.png
deleted file mode 100644
index f9dea8b883..0000000000
Binary files a/public/emoji/1f235.png and /dev/null differ
diff --git a/public/emoji/1f235.svg b/public/emoji/1f235.svg
index ed4265dc3b..69992bd9b2 100644
--- a/public/emoji/1f235.svg
+++ b/public/emoji/1f235.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f236.png b/public/emoji/1f236.png
deleted file mode 100644
index a4510de41c..0000000000
Binary files a/public/emoji/1f236.png and /dev/null differ
diff --git a/public/emoji/1f236.svg b/public/emoji/1f236.svg
index 8d2d4e38f5..161b138988 100644
--- a/public/emoji/1f236.svg
+++ b/public/emoji/1f236.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f237.png b/public/emoji/1f237.png
deleted file mode 100644
index c41bd36a26..0000000000
Binary files a/public/emoji/1f237.png and /dev/null differ
diff --git a/public/emoji/1f237.svg b/public/emoji/1f237.svg
index 01c87d7759..a0590d6a3d 100644
--- a/public/emoji/1f237.svg
+++ b/public/emoji/1f237.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f238.png b/public/emoji/1f238.png
deleted file mode 100644
index 6b7af0ee22..0000000000
Binary files a/public/emoji/1f238.png and /dev/null differ
diff --git a/public/emoji/1f238.svg b/public/emoji/1f238.svg
index 2bec669007..913f6ee104 100644
--- a/public/emoji/1f238.svg
+++ b/public/emoji/1f238.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f239.png b/public/emoji/1f239.png
deleted file mode 100644
index c4f837fe68..0000000000
Binary files a/public/emoji/1f239.png and /dev/null differ
diff --git a/public/emoji/1f239.svg b/public/emoji/1f239.svg
index c989838cc6..a85431febc 100644
--- a/public/emoji/1f239.svg
+++ b/public/emoji/1f239.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f23a.png b/public/emoji/1f23a.png
deleted file mode 100644
index d21cb30eaf..0000000000
Binary files a/public/emoji/1f23a.png and /dev/null differ
diff --git a/public/emoji/1f23a.svg b/public/emoji/1f23a.svg
index 2c743f7f91..3b7447811b 100644
--- a/public/emoji/1f23a.svg
+++ b/public/emoji/1f23a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f250.png b/public/emoji/1f250.png
deleted file mode 100644
index 0c0d589caf..0000000000
Binary files a/public/emoji/1f250.png and /dev/null differ
diff --git a/public/emoji/1f250.svg b/public/emoji/1f250.svg
index 0518c4af6a..b33576a7a9 100644
--- a/public/emoji/1f250.svg
+++ b/public/emoji/1f250.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f251.png b/public/emoji/1f251.png
deleted file mode 100644
index 8afd7ce99c..0000000000
Binary files a/public/emoji/1f251.png and /dev/null differ
diff --git a/public/emoji/1f251.svg b/public/emoji/1f251.svg
index 4da18fa198..c47e05b218 100644
--- a/public/emoji/1f251.svg
+++ b/public/emoji/1f251.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f300.png b/public/emoji/1f300.png
deleted file mode 100644
index ff00b1afe7..0000000000
Binary files a/public/emoji/1f300.png and /dev/null differ
diff --git a/public/emoji/1f300.svg b/public/emoji/1f300.svg
index 00f6030869..2dc5286f77 100644
--- a/public/emoji/1f300.svg
+++ b/public/emoji/1f300.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f301.png b/public/emoji/1f301.png
deleted file mode 100644
index 57702d8d3a..0000000000
Binary files a/public/emoji/1f301.png and /dev/null differ
diff --git a/public/emoji/1f301.svg b/public/emoji/1f301.svg
index a94c77a88c..0ab7d698b4 100644
--- a/public/emoji/1f301.svg
+++ b/public/emoji/1f301.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f302.png b/public/emoji/1f302.png
deleted file mode 100644
index ecefba9e44..0000000000
Binary files a/public/emoji/1f302.png and /dev/null differ
diff --git a/public/emoji/1f302.svg b/public/emoji/1f302.svg
index 2e02d28950..881160d3a4 100644
--- a/public/emoji/1f302.svg
+++ b/public/emoji/1f302.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f303.png b/public/emoji/1f303.png
deleted file mode 100644
index ca2018f456..0000000000
Binary files a/public/emoji/1f303.png and /dev/null differ
diff --git a/public/emoji/1f303.svg b/public/emoji/1f303.svg
index cb533e58f4..958318bc8c 100644
--- a/public/emoji/1f303.svg
+++ b/public/emoji/1f303.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f304.png b/public/emoji/1f304.png
deleted file mode 100644
index 2b99307344..0000000000
Binary files a/public/emoji/1f304.png and /dev/null differ
diff --git a/public/emoji/1f304.svg b/public/emoji/1f304.svg
index 1d032f0828..9b9aab4d62 100644
--- a/public/emoji/1f304.svg
+++ b/public/emoji/1f304.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f305.png b/public/emoji/1f305.png
deleted file mode 100644
index 4ad36003c2..0000000000
Binary files a/public/emoji/1f305.png and /dev/null differ
diff --git a/public/emoji/1f305.svg b/public/emoji/1f305.svg
index dfc8498031..df6b2f0d56 100644
--- a/public/emoji/1f305.svg
+++ b/public/emoji/1f305.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f306.png b/public/emoji/1f306.png
deleted file mode 100644
index 80cdff7cf5..0000000000
Binary files a/public/emoji/1f306.png and /dev/null differ
diff --git a/public/emoji/1f306.svg b/public/emoji/1f306.svg
index 0bf2b32a9a..49a62d4990 100644
--- a/public/emoji/1f306.svg
+++ b/public/emoji/1f306.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f307.png b/public/emoji/1f307.png
deleted file mode 100644
index 7cded0ba55..0000000000
Binary files a/public/emoji/1f307.png and /dev/null differ
diff --git a/public/emoji/1f307.svg b/public/emoji/1f307.svg
index d6648a4902..03edebae16 100644
--- a/public/emoji/1f307.svg
+++ b/public/emoji/1f307.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f308.png b/public/emoji/1f308.png
deleted file mode 100644
index 154735d714..0000000000
Binary files a/public/emoji/1f308.png and /dev/null differ
diff --git a/public/emoji/1f308.svg b/public/emoji/1f308.svg
index 22ae3f5f84..000d18debd 100644
--- a/public/emoji/1f308.svg
+++ b/public/emoji/1f308.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f309.png b/public/emoji/1f309.png
deleted file mode 100644
index 1d444e0be6..0000000000
Binary files a/public/emoji/1f309.png and /dev/null differ
diff --git a/public/emoji/1f309.svg b/public/emoji/1f309.svg
index cdaab3191f..20776394b6 100644
--- a/public/emoji/1f309.svg
+++ b/public/emoji/1f309.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f30a.png b/public/emoji/1f30a.png
deleted file mode 100644
index 45ff1e8770..0000000000
Binary files a/public/emoji/1f30a.png and /dev/null differ
diff --git a/public/emoji/1f30a.svg b/public/emoji/1f30a.svg
index efdfafca58..e72edf1e6a 100644
--- a/public/emoji/1f30a.svg
+++ b/public/emoji/1f30a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f30b.png b/public/emoji/1f30b.png
deleted file mode 100644
index 931d569294..0000000000
Binary files a/public/emoji/1f30b.png and /dev/null differ
diff --git a/public/emoji/1f30b.svg b/public/emoji/1f30b.svg
index 51ce7a82ef..9d4ca18181 100644
--- a/public/emoji/1f30b.svg
+++ b/public/emoji/1f30b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f30c.png b/public/emoji/1f30c.png
deleted file mode 100644
index b2b8ac59c5..0000000000
Binary files a/public/emoji/1f30c.png and /dev/null differ
diff --git a/public/emoji/1f30c.svg b/public/emoji/1f30c.svg
index de7a0212d6..d6764f50fe 100644
--- a/public/emoji/1f30c.svg
+++ b/public/emoji/1f30c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f30d.png b/public/emoji/1f30d.png
deleted file mode 100644
index 66c3348c23..0000000000
Binary files a/public/emoji/1f30d.png and /dev/null differ
diff --git a/public/emoji/1f30d.svg b/public/emoji/1f30d.svg
index efe3dee5d4..d34b7012d1 100644
--- a/public/emoji/1f30d.svg
+++ b/public/emoji/1f30d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f30e.png b/public/emoji/1f30e.png
deleted file mode 100644
index 538c3cddd6..0000000000
Binary files a/public/emoji/1f30e.png and /dev/null differ
diff --git a/public/emoji/1f30e.svg b/public/emoji/1f30e.svg
index 96eb2c4a4b..609dd5c938 100644
--- a/public/emoji/1f30e.svg
+++ b/public/emoji/1f30e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f30f.png b/public/emoji/1f30f.png
deleted file mode 100644
index d8df97fec3..0000000000
Binary files a/public/emoji/1f30f.png and /dev/null differ
diff --git a/public/emoji/1f30f.svg b/public/emoji/1f30f.svg
index 3766698ba5..21b702ddbe 100644
--- a/public/emoji/1f30f.svg
+++ b/public/emoji/1f30f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f310.png b/public/emoji/1f310.png
deleted file mode 100644
index 82450c1a4b..0000000000
Binary files a/public/emoji/1f310.png and /dev/null differ
diff --git a/public/emoji/1f310.svg b/public/emoji/1f310.svg
index 5290ca39f7..fa1e93b6c9 100644
--- a/public/emoji/1f310.svg
+++ b/public/emoji/1f310.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f311.png b/public/emoji/1f311.png
deleted file mode 100644
index ecff72caa4..0000000000
Binary files a/public/emoji/1f311.png and /dev/null differ
diff --git a/public/emoji/1f311.svg b/public/emoji/1f311.svg
index 78fd41ea06..6b7dd3d8df 100644
--- a/public/emoji/1f311.svg
+++ b/public/emoji/1f311.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f312.png b/public/emoji/1f312.png
deleted file mode 100644
index 687125173d..0000000000
Binary files a/public/emoji/1f312.png and /dev/null differ
diff --git a/public/emoji/1f312.svg b/public/emoji/1f312.svg
index 7bae646ded..6b7680e369 100644
--- a/public/emoji/1f312.svg
+++ b/public/emoji/1f312.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f313.png b/public/emoji/1f313.png
deleted file mode 100644
index 5dccaf72a4..0000000000
Binary files a/public/emoji/1f313.png and /dev/null differ
diff --git a/public/emoji/1f313.svg b/public/emoji/1f313.svg
index 2a604a0f77..8ade662c72 100644
--- a/public/emoji/1f313.svg
+++ b/public/emoji/1f313.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f314.png b/public/emoji/1f314.png
deleted file mode 100644
index 3a80815631..0000000000
Binary files a/public/emoji/1f314.png and /dev/null differ
diff --git a/public/emoji/1f314.svg b/public/emoji/1f314.svg
index 8fd4cf6a78..1609b18e96 100644
--- a/public/emoji/1f314.svg
+++ b/public/emoji/1f314.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f315.png b/public/emoji/1f315.png
deleted file mode 100644
index c9a2d6aa7c..0000000000
Binary files a/public/emoji/1f315.png and /dev/null differ
diff --git a/public/emoji/1f315.svg b/public/emoji/1f315.svg
index cdcbea5971..e0143639f3 100644
--- a/public/emoji/1f315.svg
+++ b/public/emoji/1f315.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f316.png b/public/emoji/1f316.png
deleted file mode 100644
index 24e1626611..0000000000
Binary files a/public/emoji/1f316.png and /dev/null differ
diff --git a/public/emoji/1f316.svg b/public/emoji/1f316.svg
index 0e1aa7b986..c7a3390eb0 100644
--- a/public/emoji/1f316.svg
+++ b/public/emoji/1f316.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f317.png b/public/emoji/1f317.png
deleted file mode 100644
index 0842a0dd40..0000000000
Binary files a/public/emoji/1f317.png and /dev/null differ
diff --git a/public/emoji/1f317.svg b/public/emoji/1f317.svg
index fe9e6db9d5..2c63c0179d 100644
--- a/public/emoji/1f317.svg
+++ b/public/emoji/1f317.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f318.png b/public/emoji/1f318.png
deleted file mode 100644
index cf68706b87..0000000000
Binary files a/public/emoji/1f318.png and /dev/null differ
diff --git a/public/emoji/1f318.svg b/public/emoji/1f318.svg
index 0cc59a6d05..0cd9693b57 100644
--- a/public/emoji/1f318.svg
+++ b/public/emoji/1f318.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f319.png b/public/emoji/1f319.png
deleted file mode 100644
index 765420ecec..0000000000
Binary files a/public/emoji/1f319.png and /dev/null differ
diff --git a/public/emoji/1f319.svg b/public/emoji/1f319.svg
index 3fd5b28f93..a05283d37c 100644
--- a/public/emoji/1f319.svg
+++ b/public/emoji/1f319.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f31a.png b/public/emoji/1f31a.png
deleted file mode 100644
index 150dd12400..0000000000
Binary files a/public/emoji/1f31a.png and /dev/null differ
diff --git a/public/emoji/1f31a.svg b/public/emoji/1f31a.svg
index 201d831f2a..ea21d3f3d7 100644
--- a/public/emoji/1f31a.svg
+++ b/public/emoji/1f31a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f31b.png b/public/emoji/1f31b.png
deleted file mode 100644
index cd8a3d7acd..0000000000
Binary files a/public/emoji/1f31b.png and /dev/null differ
diff --git a/public/emoji/1f31b.svg b/public/emoji/1f31b.svg
index 1f67f817da..14707c9d2c 100644
--- a/public/emoji/1f31b.svg
+++ b/public/emoji/1f31b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f31c.png b/public/emoji/1f31c.png
deleted file mode 100644
index 94099343c5..0000000000
Binary files a/public/emoji/1f31c.png and /dev/null differ
diff --git a/public/emoji/1f31c.svg b/public/emoji/1f31c.svg
index 53b98ca502..b1c8b52509 100644
--- a/public/emoji/1f31c.svg
+++ b/public/emoji/1f31c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f31d.png b/public/emoji/1f31d.png
deleted file mode 100644
index a5c25bbaf6..0000000000
Binary files a/public/emoji/1f31d.png and /dev/null differ
diff --git a/public/emoji/1f31d.svg b/public/emoji/1f31d.svg
index 90c6d5019e..cc75e8a567 100644
--- a/public/emoji/1f31d.svg
+++ b/public/emoji/1f31d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f31e.png b/public/emoji/1f31e.png
deleted file mode 100644
index 14a4ea971d..0000000000
Binary files a/public/emoji/1f31e.png and /dev/null differ
diff --git a/public/emoji/1f31e.svg b/public/emoji/1f31e.svg
index f86c173d6e..f694aa74aa 100644
--- a/public/emoji/1f31e.svg
+++ b/public/emoji/1f31e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f31f.png b/public/emoji/1f31f.png
deleted file mode 100644
index 2f5cba592d..0000000000
Binary files a/public/emoji/1f31f.png and /dev/null differ
diff --git a/public/emoji/1f31f.svg b/public/emoji/1f31f.svg
index 13565256fd..ac88d0d942 100644
--- a/public/emoji/1f31f.svg
+++ b/public/emoji/1f31f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f320.png b/public/emoji/1f320.png
deleted file mode 100644
index aa45384d1c..0000000000
Binary files a/public/emoji/1f320.png and /dev/null differ
diff --git a/public/emoji/1f320.svg b/public/emoji/1f320.svg
index c79d56a39b..5d54372e39 100644
--- a/public/emoji/1f320.svg
+++ b/public/emoji/1f320.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f321.png b/public/emoji/1f321.png
deleted file mode 100644
index b114739242..0000000000
Binary files a/public/emoji/1f321.png and /dev/null differ
diff --git a/public/emoji/1f321.svg b/public/emoji/1f321.svg
index b6419126b8..8f55e77e1f 100644
--- a/public/emoji/1f321.svg
+++ b/public/emoji/1f321.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f324.png b/public/emoji/1f324.png
deleted file mode 100644
index cead0bfa52..0000000000
Binary files a/public/emoji/1f324.png and /dev/null differ
diff --git a/public/emoji/1f324.svg b/public/emoji/1f324.svg
index 0bfacd23d6..b5d8293cee 100644
--- a/public/emoji/1f324.svg
+++ b/public/emoji/1f324.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f325.png b/public/emoji/1f325.png
deleted file mode 100644
index 0a4cc10026..0000000000
Binary files a/public/emoji/1f325.png and /dev/null differ
diff --git a/public/emoji/1f325.svg b/public/emoji/1f325.svg
index 41fc0560ce..8155577a34 100644
--- a/public/emoji/1f325.svg
+++ b/public/emoji/1f325.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f326.png b/public/emoji/1f326.png
deleted file mode 100644
index 491f9ca483..0000000000
Binary files a/public/emoji/1f326.png and /dev/null differ
diff --git a/public/emoji/1f326.svg b/public/emoji/1f326.svg
index 8f83b295f2..383aa2e972 100644
--- a/public/emoji/1f326.svg
+++ b/public/emoji/1f326.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f327.png b/public/emoji/1f327.png
deleted file mode 100644
index 385685e051..0000000000
Binary files a/public/emoji/1f327.png and /dev/null differ
diff --git a/public/emoji/1f327.svg b/public/emoji/1f327.svg
index 52e6a1eff2..2ff8cdfa3e 100644
--- a/public/emoji/1f327.svg
+++ b/public/emoji/1f327.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f328.png b/public/emoji/1f328.png
deleted file mode 100644
index 9720384eb9..0000000000
Binary files a/public/emoji/1f328.png and /dev/null differ
diff --git a/public/emoji/1f328.svg b/public/emoji/1f328.svg
index dc0e858a89..35476fa954 100644
--- a/public/emoji/1f328.svg
+++ b/public/emoji/1f328.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f329.png b/public/emoji/1f329.png
deleted file mode 100644
index 0831e88aa3..0000000000
Binary files a/public/emoji/1f329.png and /dev/null differ
diff --git a/public/emoji/1f329.svg b/public/emoji/1f329.svg
index d7844b627b..88bf05d374 100644
--- a/public/emoji/1f329.svg
+++ b/public/emoji/1f329.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f32a.png b/public/emoji/1f32a.png
deleted file mode 100644
index 4821c89da1..0000000000
Binary files a/public/emoji/1f32a.png and /dev/null differ
diff --git a/public/emoji/1f32a.svg b/public/emoji/1f32a.svg
index 87326d990b..ca5c1694a2 100644
--- a/public/emoji/1f32a.svg
+++ b/public/emoji/1f32a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f32b.png b/public/emoji/1f32b.png
deleted file mode 100644
index 4e73c2de27..0000000000
Binary files a/public/emoji/1f32b.png and /dev/null differ
diff --git a/public/emoji/1f32b.svg b/public/emoji/1f32b.svg
index a294ee341f..f22dfdd849 100644
--- a/public/emoji/1f32b.svg
+++ b/public/emoji/1f32b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f32c.png b/public/emoji/1f32c.png
deleted file mode 100644
index df81b652eb..0000000000
Binary files a/public/emoji/1f32c.png and /dev/null differ
diff --git a/public/emoji/1f32c.svg b/public/emoji/1f32c.svg
index 652f28b7c9..cb0615f1b6 100644
--- a/public/emoji/1f32c.svg
+++ b/public/emoji/1f32c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f32d.png b/public/emoji/1f32d.png
deleted file mode 100644
index 3c3354d94c..0000000000
Binary files a/public/emoji/1f32d.png and /dev/null differ
diff --git a/public/emoji/1f32d.svg b/public/emoji/1f32d.svg
index e9acb62da3..e4c7c5b617 100644
--- a/public/emoji/1f32d.svg
+++ b/public/emoji/1f32d.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f32e.png b/public/emoji/1f32e.png
deleted file mode 100644
index 10e847a461..0000000000
Binary files a/public/emoji/1f32e.png and /dev/null differ
diff --git a/public/emoji/1f32e.svg b/public/emoji/1f32e.svg
index 7ce2afabed..1ed1f80c85 100644
--- a/public/emoji/1f32e.svg
+++ b/public/emoji/1f32e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f32f.png b/public/emoji/1f32f.png
deleted file mode 100644
index 02bd5601df..0000000000
Binary files a/public/emoji/1f32f.png and /dev/null differ
diff --git a/public/emoji/1f32f.svg b/public/emoji/1f32f.svg
index 6ae9039022..78023dd5de 100644
--- a/public/emoji/1f32f.svg
+++ b/public/emoji/1f32f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f330.png b/public/emoji/1f330.png
deleted file mode 100644
index e9fb40468e..0000000000
Binary files a/public/emoji/1f330.png and /dev/null differ
diff --git a/public/emoji/1f330.svg b/public/emoji/1f330.svg
index 5def656045..2bdaacc0ce 100644
--- a/public/emoji/1f330.svg
+++ b/public/emoji/1f330.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f331.png b/public/emoji/1f331.png
deleted file mode 100644
index ae0948bcfd..0000000000
Binary files a/public/emoji/1f331.png and /dev/null differ
diff --git a/public/emoji/1f331.svg b/public/emoji/1f331.svg
index 90f17ee296..3fbe3c8198 100644
--- a/public/emoji/1f331.svg
+++ b/public/emoji/1f331.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f332.png b/public/emoji/1f332.png
deleted file mode 100644
index f679d8dd77..0000000000
Binary files a/public/emoji/1f332.png and /dev/null differ
diff --git a/public/emoji/1f332.svg b/public/emoji/1f332.svg
index be20988631..6c6ce55050 100644
--- a/public/emoji/1f332.svg
+++ b/public/emoji/1f332.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f333.png b/public/emoji/1f333.png
deleted file mode 100644
index 785fc1c30e..0000000000
Binary files a/public/emoji/1f333.png and /dev/null differ
diff --git a/public/emoji/1f333.svg b/public/emoji/1f333.svg
index 4f29da350e..27070cdc13 100644
--- a/public/emoji/1f333.svg
+++ b/public/emoji/1f333.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f334.png b/public/emoji/1f334.png
deleted file mode 100644
index 4bbb10f4f1..0000000000
Binary files a/public/emoji/1f334.png and /dev/null differ
diff --git a/public/emoji/1f334.svg b/public/emoji/1f334.svg
index b0cec6d92d..e20f94e276 100644
--- a/public/emoji/1f334.svg
+++ b/public/emoji/1f334.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f335.png b/public/emoji/1f335.png
deleted file mode 100644
index 9b48ccf3d0..0000000000
Binary files a/public/emoji/1f335.png and /dev/null differ
diff --git a/public/emoji/1f335.svg b/public/emoji/1f335.svg
index b980aad283..972a1fc9ba 100644
--- a/public/emoji/1f335.svg
+++ b/public/emoji/1f335.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f336.png b/public/emoji/1f336.png
deleted file mode 100644
index 266675bd57..0000000000
Binary files a/public/emoji/1f336.png and /dev/null differ
diff --git a/public/emoji/1f336.svg b/public/emoji/1f336.svg
index 3763d91d28..a5f14a3bb5 100644
--- a/public/emoji/1f336.svg
+++ b/public/emoji/1f336.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f337.png b/public/emoji/1f337.png
deleted file mode 100644
index f799d75c18..0000000000
Binary files a/public/emoji/1f337.png and /dev/null differ
diff --git a/public/emoji/1f337.svg b/public/emoji/1f337.svg
index 6512189415..0c5a2c362d 100644
--- a/public/emoji/1f337.svg
+++ b/public/emoji/1f337.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f338.png b/public/emoji/1f338.png
deleted file mode 100644
index 282f3e7bc8..0000000000
Binary files a/public/emoji/1f338.png and /dev/null differ
diff --git a/public/emoji/1f338.svg b/public/emoji/1f338.svg
index eb6d6da7b9..8188ae92ae 100644
--- a/public/emoji/1f338.svg
+++ b/public/emoji/1f338.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f339.png b/public/emoji/1f339.png
deleted file mode 100644
index 52c286d31c..0000000000
Binary files a/public/emoji/1f339.png and /dev/null differ
diff --git a/public/emoji/1f339.svg b/public/emoji/1f339.svg
index e7122eb323..66a4b9c6a0 100644
--- a/public/emoji/1f339.svg
+++ b/public/emoji/1f339.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f33a.png b/public/emoji/1f33a.png
deleted file mode 100644
index 39dd352423..0000000000
Binary files a/public/emoji/1f33a.png and /dev/null differ
diff --git a/public/emoji/1f33a.svg b/public/emoji/1f33a.svg
index 557788787f..19e7e30010 100644
--- a/public/emoji/1f33a.svg
+++ b/public/emoji/1f33a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f33b.png b/public/emoji/1f33b.png
deleted file mode 100644
index 08cc07761e..0000000000
Binary files a/public/emoji/1f33b.png and /dev/null differ
diff --git a/public/emoji/1f33b.svg b/public/emoji/1f33b.svg
index 3834929fe1..b39eabf1c4 100644
--- a/public/emoji/1f33b.svg
+++ b/public/emoji/1f33b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f33c.png b/public/emoji/1f33c.png
deleted file mode 100644
index 4083026c15..0000000000
Binary files a/public/emoji/1f33c.png and /dev/null differ
diff --git a/public/emoji/1f33c.svg b/public/emoji/1f33c.svg
index 15d4207358..3242c56f70 100644
--- a/public/emoji/1f33c.svg
+++ b/public/emoji/1f33c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f33d.png b/public/emoji/1f33d.png
deleted file mode 100644
index 36e2012793..0000000000
Binary files a/public/emoji/1f33d.png and /dev/null differ
diff --git a/public/emoji/1f33d.svg b/public/emoji/1f33d.svg
index 074139da8c..8e542a0381 100644
--- a/public/emoji/1f33d.svg
+++ b/public/emoji/1f33d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f33e.png b/public/emoji/1f33e.png
deleted file mode 100644
index 3564d9d643..0000000000
Binary files a/public/emoji/1f33e.png and /dev/null differ
diff --git a/public/emoji/1f33e.svg b/public/emoji/1f33e.svg
index 5b02cf7cb7..ce4151b06b 100644
--- a/public/emoji/1f33e.svg
+++ b/public/emoji/1f33e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f33f.png b/public/emoji/1f33f.png
deleted file mode 100644
index d984d1562b..0000000000
Binary files a/public/emoji/1f33f.png and /dev/null differ
diff --git a/public/emoji/1f33f.svg b/public/emoji/1f33f.svg
index 174e90223c..48fb3f3fd9 100644
--- a/public/emoji/1f33f.svg
+++ b/public/emoji/1f33f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f340.png b/public/emoji/1f340.png
deleted file mode 100644
index fdedfcc2b4..0000000000
Binary files a/public/emoji/1f340.png and /dev/null differ
diff --git a/public/emoji/1f340.svg b/public/emoji/1f340.svg
index 0b06567d5e..1685a7ca1e 100644
--- a/public/emoji/1f340.svg
+++ b/public/emoji/1f340.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f341.png b/public/emoji/1f341.png
deleted file mode 100644
index c49acea67f..0000000000
Binary files a/public/emoji/1f341.png and /dev/null differ
diff --git a/public/emoji/1f341.svg b/public/emoji/1f341.svg
index 35a4563626..2b65956e15 100644
--- a/public/emoji/1f341.svg
+++ b/public/emoji/1f341.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f342.png b/public/emoji/1f342.png
deleted file mode 100644
index 0d60e7bdf2..0000000000
Binary files a/public/emoji/1f342.png and /dev/null differ
diff --git a/public/emoji/1f342.svg b/public/emoji/1f342.svg
index 7ca377c873..e03bcc4de1 100644
--- a/public/emoji/1f342.svg
+++ b/public/emoji/1f342.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f343.png b/public/emoji/1f343.png
deleted file mode 100644
index 1e43e1af82..0000000000
Binary files a/public/emoji/1f343.png and /dev/null differ
diff --git a/public/emoji/1f343.svg b/public/emoji/1f343.svg
index c19539d9d0..ec4e9d7f66 100644
--- a/public/emoji/1f343.svg
+++ b/public/emoji/1f343.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f344.png b/public/emoji/1f344.png
deleted file mode 100644
index dd85742ba2..0000000000
Binary files a/public/emoji/1f344.png and /dev/null differ
diff --git a/public/emoji/1f344.svg b/public/emoji/1f344.svg
index 853a49d20c..2ebc9dd2ea 100644
--- a/public/emoji/1f344.svg
+++ b/public/emoji/1f344.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f345.png b/public/emoji/1f345.png
deleted file mode 100644
index 497da8f6b2..0000000000
Binary files a/public/emoji/1f345.png and /dev/null differ
diff --git a/public/emoji/1f345.svg b/public/emoji/1f345.svg
index b0f3efc4e0..6921847d17 100644
--- a/public/emoji/1f345.svg
+++ b/public/emoji/1f345.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f346.png b/public/emoji/1f346.png
deleted file mode 100644
index fafd7c1a14..0000000000
Binary files a/public/emoji/1f346.png and /dev/null differ
diff --git a/public/emoji/1f346.svg b/public/emoji/1f346.svg
index 78a52f6c8e..a6eb936473 100644
--- a/public/emoji/1f346.svg
+++ b/public/emoji/1f346.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f347.png b/public/emoji/1f347.png
deleted file mode 100644
index 30d2221889..0000000000
Binary files a/public/emoji/1f347.png and /dev/null differ
diff --git a/public/emoji/1f347.svg b/public/emoji/1f347.svg
index e924fc2163..bbcc06a293 100644
--- a/public/emoji/1f347.svg
+++ b/public/emoji/1f347.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f348.png b/public/emoji/1f348.png
deleted file mode 100644
index c01232d419..0000000000
Binary files a/public/emoji/1f348.png and /dev/null differ
diff --git a/public/emoji/1f348.svg b/public/emoji/1f348.svg
index d715aaa252..ddd15f6312 100644
--- a/public/emoji/1f348.svg
+++ b/public/emoji/1f348.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f349.png b/public/emoji/1f349.png
deleted file mode 100644
index 0761488b4c..0000000000
Binary files a/public/emoji/1f349.png and /dev/null differ
diff --git a/public/emoji/1f349.svg b/public/emoji/1f349.svg
index 0f7a175f77..4ba2a40d95 100644
--- a/public/emoji/1f349.svg
+++ b/public/emoji/1f349.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f34a.png b/public/emoji/1f34a.png
deleted file mode 100644
index ab14e5378d..0000000000
Binary files a/public/emoji/1f34a.png and /dev/null differ
diff --git a/public/emoji/1f34a.svg b/public/emoji/1f34a.svg
index a6c48c5ff0..8dc08a76cc 100644
--- a/public/emoji/1f34a.svg
+++ b/public/emoji/1f34a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f34b.png b/public/emoji/1f34b.png
deleted file mode 100644
index 9a7d95ca22..0000000000
Binary files a/public/emoji/1f34b.png and /dev/null differ
diff --git a/public/emoji/1f34b.svg b/public/emoji/1f34b.svg
index e6dafd4c74..6a4aea458c 100644
--- a/public/emoji/1f34b.svg
+++ b/public/emoji/1f34b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f34c.png b/public/emoji/1f34c.png
deleted file mode 100644
index f498727958..0000000000
Binary files a/public/emoji/1f34c.png and /dev/null differ
diff --git a/public/emoji/1f34c.svg b/public/emoji/1f34c.svg
index 9f7af936f1..19a2413fe5 100644
--- a/public/emoji/1f34c.svg
+++ b/public/emoji/1f34c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f34d.png b/public/emoji/1f34d.png
deleted file mode 100644
index c89a160646..0000000000
Binary files a/public/emoji/1f34d.png and /dev/null differ
diff --git a/public/emoji/1f34d.svg b/public/emoji/1f34d.svg
index 350c11f281..ed6150475e 100644
--- a/public/emoji/1f34d.svg
+++ b/public/emoji/1f34d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f34e.png b/public/emoji/1f34e.png
deleted file mode 100644
index da650c60f6..0000000000
Binary files a/public/emoji/1f34e.png and /dev/null differ
diff --git a/public/emoji/1f34e.svg b/public/emoji/1f34e.svg
index 1353d5dd57..47576d4e58 100644
--- a/public/emoji/1f34e.svg
+++ b/public/emoji/1f34e.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f34f.png b/public/emoji/1f34f.png
deleted file mode 100644
index 5fd51bd391..0000000000
Binary files a/public/emoji/1f34f.png and /dev/null differ
diff --git a/public/emoji/1f34f.svg b/public/emoji/1f34f.svg
index 27561bc31d..8210910416 100644
--- a/public/emoji/1f34f.svg
+++ b/public/emoji/1f34f.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f350.png b/public/emoji/1f350.png
deleted file mode 100644
index 3869f718bc..0000000000
Binary files a/public/emoji/1f350.png and /dev/null differ
diff --git a/public/emoji/1f350.svg b/public/emoji/1f350.svg
index 467a86e13a..161fe7a943 100644
--- a/public/emoji/1f350.svg
+++ b/public/emoji/1f350.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f351.png b/public/emoji/1f351.png
deleted file mode 100644
index 9ab57cbb75..0000000000
Binary files a/public/emoji/1f351.png and /dev/null differ
diff --git a/public/emoji/1f351.svg b/public/emoji/1f351.svg
index 574969a8e8..2f6beeebe3 100644
--- a/public/emoji/1f351.svg
+++ b/public/emoji/1f351.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f352.png b/public/emoji/1f352.png
deleted file mode 100644
index 9b10cbaac5..0000000000
Binary files a/public/emoji/1f352.png and /dev/null differ
diff --git a/public/emoji/1f352.svg b/public/emoji/1f352.svg
index d43aca6dcf..ba6f99a596 100644
--- a/public/emoji/1f352.svg
+++ b/public/emoji/1f352.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f353.png b/public/emoji/1f353.png
deleted file mode 100644
index 7bb86f0b29..0000000000
Binary files a/public/emoji/1f353.png and /dev/null differ
diff --git a/public/emoji/1f353.svg b/public/emoji/1f353.svg
index 709e0db4b4..0243a55b70 100644
--- a/public/emoji/1f353.svg
+++ b/public/emoji/1f353.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f354.png b/public/emoji/1f354.png
deleted file mode 100644
index 3573b28a1f..0000000000
Binary files a/public/emoji/1f354.png and /dev/null differ
diff --git a/public/emoji/1f354.svg b/public/emoji/1f354.svg
index 34608757f3..7c954be89d 100644
--- a/public/emoji/1f354.svg
+++ b/public/emoji/1f354.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f355.png b/public/emoji/1f355.png
deleted file mode 100644
index e07365cb39..0000000000
Binary files a/public/emoji/1f355.png and /dev/null differ
diff --git a/public/emoji/1f355.svg b/public/emoji/1f355.svg
index 4bd17b70e0..1bd819aca3 100644
--- a/public/emoji/1f355.svg
+++ b/public/emoji/1f355.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f356.png b/public/emoji/1f356.png
deleted file mode 100644
index b20a59d169..0000000000
Binary files a/public/emoji/1f356.png and /dev/null differ
diff --git a/public/emoji/1f356.svg b/public/emoji/1f356.svg
index d1b3e056e9..bb4e72396e 100644
--- a/public/emoji/1f356.svg
+++ b/public/emoji/1f356.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f357.png b/public/emoji/1f357.png
deleted file mode 100644
index eea4a53a2f..0000000000
Binary files a/public/emoji/1f357.png and /dev/null differ
diff --git a/public/emoji/1f357.svg b/public/emoji/1f357.svg
index dca233f0be..6096785dec 100644
--- a/public/emoji/1f357.svg
+++ b/public/emoji/1f357.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f358.png b/public/emoji/1f358.png
deleted file mode 100644
index 7fbd08e4ff..0000000000
Binary files a/public/emoji/1f358.png and /dev/null differ
diff --git a/public/emoji/1f358.svg b/public/emoji/1f358.svg
index 5e38bb4fbe..f59e71bc02 100644
--- a/public/emoji/1f358.svg
+++ b/public/emoji/1f358.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f359.png b/public/emoji/1f359.png
deleted file mode 100644
index d3d8ee25cb..0000000000
Binary files a/public/emoji/1f359.png and /dev/null differ
diff --git a/public/emoji/1f359.svg b/public/emoji/1f359.svg
index 0c7cf7952b..7d6ececa89 100644
--- a/public/emoji/1f359.svg
+++ b/public/emoji/1f359.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f35a.png b/public/emoji/1f35a.png
deleted file mode 100644
index 6e3ac7956b..0000000000
Binary files a/public/emoji/1f35a.png and /dev/null differ
diff --git a/public/emoji/1f35a.svg b/public/emoji/1f35a.svg
index 08398ca6cd..ebbc452f5a 100644
--- a/public/emoji/1f35a.svg
+++ b/public/emoji/1f35a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f35b.png b/public/emoji/1f35b.png
deleted file mode 100644
index 69657ca810..0000000000
Binary files a/public/emoji/1f35b.png and /dev/null differ
diff --git a/public/emoji/1f35b.svg b/public/emoji/1f35b.svg
index 5880aea591..f265581010 100644
--- a/public/emoji/1f35b.svg
+++ b/public/emoji/1f35b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f35c.png b/public/emoji/1f35c.png
deleted file mode 100644
index c1cb7cd738..0000000000
Binary files a/public/emoji/1f35c.png and /dev/null differ
diff --git a/public/emoji/1f35c.svg b/public/emoji/1f35c.svg
index 93c4cdbf2b..f5371889f1 100644
--- a/public/emoji/1f35c.svg
+++ b/public/emoji/1f35c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f35d.png b/public/emoji/1f35d.png
deleted file mode 100644
index 89c24a321f..0000000000
Binary files a/public/emoji/1f35d.png and /dev/null differ
diff --git a/public/emoji/1f35d.svg b/public/emoji/1f35d.svg
index 52f7db9cab..6c795af573 100644
--- a/public/emoji/1f35d.svg
+++ b/public/emoji/1f35d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f35e.png b/public/emoji/1f35e.png
deleted file mode 100644
index 6676510aaa..0000000000
Binary files a/public/emoji/1f35e.png and /dev/null differ
diff --git a/public/emoji/1f35e.svg b/public/emoji/1f35e.svg
index bbaae9cc6c..1df731d9d4 100644
--- a/public/emoji/1f35e.svg
+++ b/public/emoji/1f35e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f35f.png b/public/emoji/1f35f.png
deleted file mode 100644
index 4e2a4caace..0000000000
Binary files a/public/emoji/1f35f.png and /dev/null differ
diff --git a/public/emoji/1f35f.svg b/public/emoji/1f35f.svg
index fe9e1bac70..15661bc929 100644
--- a/public/emoji/1f35f.svg
+++ b/public/emoji/1f35f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f360.png b/public/emoji/1f360.png
deleted file mode 100644
index 92a425f2e2..0000000000
Binary files a/public/emoji/1f360.png and /dev/null differ
diff --git a/public/emoji/1f360.svg b/public/emoji/1f360.svg
index bfbbd9c500..6ad2c85689 100644
--- a/public/emoji/1f360.svg
+++ b/public/emoji/1f360.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f361.png b/public/emoji/1f361.png
deleted file mode 100644
index f73f37b01c..0000000000
Binary files a/public/emoji/1f361.png and /dev/null differ
diff --git a/public/emoji/1f361.svg b/public/emoji/1f361.svg
index 6cc82e3d9a..e74a76be2c 100644
--- a/public/emoji/1f361.svg
+++ b/public/emoji/1f361.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f362.png b/public/emoji/1f362.png
deleted file mode 100644
index d38a849fec..0000000000
Binary files a/public/emoji/1f362.png and /dev/null differ
diff --git a/public/emoji/1f362.svg b/public/emoji/1f362.svg
index f00dbf6dfa..c7dda46dca 100644
--- a/public/emoji/1f362.svg
+++ b/public/emoji/1f362.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f363.png b/public/emoji/1f363.png
deleted file mode 100644
index f171fd2f7a..0000000000
Binary files a/public/emoji/1f363.png and /dev/null differ
diff --git a/public/emoji/1f363.svg b/public/emoji/1f363.svg
index 93aed08074..ec00279f90 100644
--- a/public/emoji/1f363.svg
+++ b/public/emoji/1f363.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f364.png b/public/emoji/1f364.png
deleted file mode 100644
index 752ba7f139..0000000000
Binary files a/public/emoji/1f364.png and /dev/null differ
diff --git a/public/emoji/1f364.svg b/public/emoji/1f364.svg
index c64f84077d..3bc480d47d 100644
--- a/public/emoji/1f364.svg
+++ b/public/emoji/1f364.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f365.png b/public/emoji/1f365.png
deleted file mode 100644
index 157bded65d..0000000000
Binary files a/public/emoji/1f365.png and /dev/null differ
diff --git a/public/emoji/1f365.svg b/public/emoji/1f365.svg
index 9932d3438a..bd9130486c 100644
--- a/public/emoji/1f365.svg
+++ b/public/emoji/1f365.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f366.png b/public/emoji/1f366.png
deleted file mode 100644
index 8f6546e31a..0000000000
Binary files a/public/emoji/1f366.png and /dev/null differ
diff --git a/public/emoji/1f366.svg b/public/emoji/1f366.svg
index aab1e61fd3..bf9a7609c4 100644
--- a/public/emoji/1f366.svg
+++ b/public/emoji/1f366.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f367.png b/public/emoji/1f367.png
deleted file mode 100644
index 36dfb53ca9..0000000000
Binary files a/public/emoji/1f367.png and /dev/null differ
diff --git a/public/emoji/1f367.svg b/public/emoji/1f367.svg
index 296c4f7177..0d3c276dd5 100644
--- a/public/emoji/1f367.svg
+++ b/public/emoji/1f367.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f368.png b/public/emoji/1f368.png
deleted file mode 100644
index 94267b9c43..0000000000
Binary files a/public/emoji/1f368.png and /dev/null differ
diff --git a/public/emoji/1f368.svg b/public/emoji/1f368.svg
index c1524bf373..693e2afe7b 100644
--- a/public/emoji/1f368.svg
+++ b/public/emoji/1f368.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f369.png b/public/emoji/1f369.png
deleted file mode 100644
index 0ca4cd0bde..0000000000
Binary files a/public/emoji/1f369.png and /dev/null differ
diff --git a/public/emoji/1f369.svg b/public/emoji/1f369.svg
index 6620235bcd..ae1d58f028 100644
--- a/public/emoji/1f369.svg
+++ b/public/emoji/1f369.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f36a.png b/public/emoji/1f36a.png
deleted file mode 100644
index 1b6bcb1554..0000000000
Binary files a/public/emoji/1f36a.png and /dev/null differ
diff --git a/public/emoji/1f36a.svg b/public/emoji/1f36a.svg
index 8daf31164c..31f6bf342a 100644
--- a/public/emoji/1f36a.svg
+++ b/public/emoji/1f36a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f36b.png b/public/emoji/1f36b.png
deleted file mode 100644
index 318bbd40ef..0000000000
Binary files a/public/emoji/1f36b.png and /dev/null differ
diff --git a/public/emoji/1f36b.svg b/public/emoji/1f36b.svg
index 493e7b34ae..1ac9c24d25 100644
--- a/public/emoji/1f36b.svg
+++ b/public/emoji/1f36b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f36c.png b/public/emoji/1f36c.png
deleted file mode 100644
index 8c67ace3a3..0000000000
Binary files a/public/emoji/1f36c.png and /dev/null differ
diff --git a/public/emoji/1f36c.svg b/public/emoji/1f36c.svg
index 2c26a67d9a..d12a6545a7 100644
--- a/public/emoji/1f36c.svg
+++ b/public/emoji/1f36c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f36d.png b/public/emoji/1f36d.png
deleted file mode 100644
index ad76d7bf91..0000000000
Binary files a/public/emoji/1f36d.png and /dev/null differ
diff --git a/public/emoji/1f36d.svg b/public/emoji/1f36d.svg
index 887f57c003..2dc9f0c597 100644
--- a/public/emoji/1f36d.svg
+++ b/public/emoji/1f36d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f36e.png b/public/emoji/1f36e.png
deleted file mode 100644
index fa3df67b8f..0000000000
Binary files a/public/emoji/1f36e.png and /dev/null differ
diff --git a/public/emoji/1f36e.svg b/public/emoji/1f36e.svg
index de1d4317ee..4e251e450e 100644
--- a/public/emoji/1f36e.svg
+++ b/public/emoji/1f36e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f36f.png b/public/emoji/1f36f.png
deleted file mode 100644
index 9d8f592955..0000000000
Binary files a/public/emoji/1f36f.png and /dev/null differ
diff --git a/public/emoji/1f36f.svg b/public/emoji/1f36f.svg
index 031903fc19..b29e9bf7f2 100644
--- a/public/emoji/1f36f.svg
+++ b/public/emoji/1f36f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f370.png b/public/emoji/1f370.png
deleted file mode 100644
index 4368177be9..0000000000
Binary files a/public/emoji/1f370.png and /dev/null differ
diff --git a/public/emoji/1f370.svg b/public/emoji/1f370.svg
index c42ca1b6f1..7156f048d3 100644
--- a/public/emoji/1f370.svg
+++ b/public/emoji/1f370.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f371.png b/public/emoji/1f371.png
deleted file mode 100644
index 83d41ca7eb..0000000000
Binary files a/public/emoji/1f371.png and /dev/null differ
diff --git a/public/emoji/1f371.svg b/public/emoji/1f371.svg
index dbc80e5b30..da1195afa2 100644
--- a/public/emoji/1f371.svg
+++ b/public/emoji/1f371.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f372.png b/public/emoji/1f372.png
deleted file mode 100644
index 6b3f010c17..0000000000
Binary files a/public/emoji/1f372.png and /dev/null differ
diff --git a/public/emoji/1f372.svg b/public/emoji/1f372.svg
index 52663af16d..65a5fcacc2 100644
--- a/public/emoji/1f372.svg
+++ b/public/emoji/1f372.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f373.png b/public/emoji/1f373.png
deleted file mode 100644
index 918c980577..0000000000
Binary files a/public/emoji/1f373.png and /dev/null differ
diff --git a/public/emoji/1f373.svg b/public/emoji/1f373.svg
index 4f80ed53c0..33e20b7282 100644
--- a/public/emoji/1f373.svg
+++ b/public/emoji/1f373.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f374.png b/public/emoji/1f374.png
deleted file mode 100644
index 09f1feaea1..0000000000
Binary files a/public/emoji/1f374.png and /dev/null differ
diff --git a/public/emoji/1f374.svg b/public/emoji/1f374.svg
index e9d6b48ef9..3585bc0eae 100644
--- a/public/emoji/1f374.svg
+++ b/public/emoji/1f374.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f375.png b/public/emoji/1f375.png
deleted file mode 100644
index b53b98f0c4..0000000000
Binary files a/public/emoji/1f375.png and /dev/null differ
diff --git a/public/emoji/1f375.svg b/public/emoji/1f375.svg
index 7f210fc769..deabda3ddf 100644
--- a/public/emoji/1f375.svg
+++ b/public/emoji/1f375.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f376.png b/public/emoji/1f376.png
deleted file mode 100644
index 2933f5672c..0000000000
Binary files a/public/emoji/1f376.png and /dev/null differ
diff --git a/public/emoji/1f376.svg b/public/emoji/1f376.svg
index b573b4566a..f8df7b4fb2 100644
--- a/public/emoji/1f376.svg
+++ b/public/emoji/1f376.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f377.png b/public/emoji/1f377.png
deleted file mode 100644
index 3cc9868919..0000000000
Binary files a/public/emoji/1f377.png and /dev/null differ
diff --git a/public/emoji/1f377.svg b/public/emoji/1f377.svg
index e2652b0a32..4df8c35fa6 100644
--- a/public/emoji/1f377.svg
+++ b/public/emoji/1f377.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f378.png b/public/emoji/1f378.png
deleted file mode 100644
index 2e50c57e98..0000000000
Binary files a/public/emoji/1f378.png and /dev/null differ
diff --git a/public/emoji/1f378.svg b/public/emoji/1f378.svg
index a8c9960d86..ed6ca0eb0d 100644
--- a/public/emoji/1f378.svg
+++ b/public/emoji/1f378.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f379.png b/public/emoji/1f379.png
deleted file mode 100644
index cd714f81b3..0000000000
Binary files a/public/emoji/1f379.png and /dev/null differ
diff --git a/public/emoji/1f379.svg b/public/emoji/1f379.svg
index b96f8f05cf..7b4f6eebf4 100644
--- a/public/emoji/1f379.svg
+++ b/public/emoji/1f379.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f37a.png b/public/emoji/1f37a.png
deleted file mode 100644
index b6d73dc0b7..0000000000
Binary files a/public/emoji/1f37a.png and /dev/null differ
diff --git a/public/emoji/1f37a.svg b/public/emoji/1f37a.svg
index 85e65ba62d..575e03bd50 100644
--- a/public/emoji/1f37a.svg
+++ b/public/emoji/1f37a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f37b.png b/public/emoji/1f37b.png
deleted file mode 100644
index b55deb66b4..0000000000
Binary files a/public/emoji/1f37b.png and /dev/null differ
diff --git a/public/emoji/1f37b.svg b/public/emoji/1f37b.svg
index 76c8bdc071..c4bd4c7192 100644
--- a/public/emoji/1f37b.svg
+++ b/public/emoji/1f37b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f37c.png b/public/emoji/1f37c.png
deleted file mode 100644
index 2bd1052418..0000000000
Binary files a/public/emoji/1f37c.png and /dev/null differ
diff --git a/public/emoji/1f37c.svg b/public/emoji/1f37c.svg
index 1491a98b88..0f776fcb74 100644
--- a/public/emoji/1f37c.svg
+++ b/public/emoji/1f37c.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f37d.png b/public/emoji/1f37d.png
deleted file mode 100644
index 7411755f70..0000000000
Binary files a/public/emoji/1f37d.png and /dev/null differ
diff --git a/public/emoji/1f37d.svg b/public/emoji/1f37d.svg
index 95bd3821f5..469593c05d 100644
--- a/public/emoji/1f37d.svg
+++ b/public/emoji/1f37d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f37e.png b/public/emoji/1f37e.png
deleted file mode 100644
index 285a79a93d..0000000000
Binary files a/public/emoji/1f37e.png and /dev/null differ
diff --git a/public/emoji/1f37e.svg b/public/emoji/1f37e.svg
index 24714015c4..604147b6ec 100644
--- a/public/emoji/1f37e.svg
+++ b/public/emoji/1f37e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f37f.png b/public/emoji/1f37f.png
deleted file mode 100644
index 36853e381d..0000000000
Binary files a/public/emoji/1f37f.png and /dev/null differ
diff --git a/public/emoji/1f37f.svg b/public/emoji/1f37f.svg
index 74510dcbe4..0902f28801 100644
--- a/public/emoji/1f37f.svg
+++ b/public/emoji/1f37f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f380.png b/public/emoji/1f380.png
deleted file mode 100644
index 0f253c3d8c..0000000000
Binary files a/public/emoji/1f380.png and /dev/null differ
diff --git a/public/emoji/1f380.svg b/public/emoji/1f380.svg
index 12c535e99c..d031920efe 100644
--- a/public/emoji/1f380.svg
+++ b/public/emoji/1f380.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f381.png b/public/emoji/1f381.png
deleted file mode 100644
index 844e216456..0000000000
Binary files a/public/emoji/1f381.png and /dev/null differ
diff --git a/public/emoji/1f381.svg b/public/emoji/1f381.svg
index bd62608c9a..bbe0fa9e0c 100644
--- a/public/emoji/1f381.svg
+++ b/public/emoji/1f381.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f382.png b/public/emoji/1f382.png
deleted file mode 100644
index 317e9a4194..0000000000
Binary files a/public/emoji/1f382.png and /dev/null differ
diff --git a/public/emoji/1f382.svg b/public/emoji/1f382.svg
index 0bbef8ccc5..955152aada 100644
--- a/public/emoji/1f382.svg
+++ b/public/emoji/1f382.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f383.png b/public/emoji/1f383.png
deleted file mode 100644
index 44c3fc0aec..0000000000
Binary files a/public/emoji/1f383.png and /dev/null differ
diff --git a/public/emoji/1f383.svg b/public/emoji/1f383.svg
index 21144b72ea..bdab6d2907 100644
--- a/public/emoji/1f383.svg
+++ b/public/emoji/1f383.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f384.png b/public/emoji/1f384.png
deleted file mode 100644
index 4197d37a52..0000000000
Binary files a/public/emoji/1f384.png and /dev/null differ
diff --git a/public/emoji/1f384.svg b/public/emoji/1f384.svg
index 27bbe5fc5a..d8f76bc7f1 100644
--- a/public/emoji/1f384.svg
+++ b/public/emoji/1f384.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f385-1f3fb.png b/public/emoji/1f385-1f3fb.png
deleted file mode 100644
index 5233ffb717..0000000000
Binary files a/public/emoji/1f385-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f385-1f3fb.svg b/public/emoji/1f385-1f3fb.svg
index 13c2657c34..2eef1d1d0f 100644
--- a/public/emoji/1f385-1f3fb.svg
+++ b/public/emoji/1f385-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f385-1f3fc.png b/public/emoji/1f385-1f3fc.png
deleted file mode 100644
index 4e84543819..0000000000
Binary files a/public/emoji/1f385-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f385-1f3fc.svg b/public/emoji/1f385-1f3fc.svg
index 4089865318..ce5e991ff7 100644
--- a/public/emoji/1f385-1f3fc.svg
+++ b/public/emoji/1f385-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f385-1f3fd.png b/public/emoji/1f385-1f3fd.png
deleted file mode 100644
index 7fc4f33b60..0000000000
Binary files a/public/emoji/1f385-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f385-1f3fd.svg b/public/emoji/1f385-1f3fd.svg
index 9286b2f809..e6b9f14875 100644
--- a/public/emoji/1f385-1f3fd.svg
+++ b/public/emoji/1f385-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f385-1f3fe.png b/public/emoji/1f385-1f3fe.png
deleted file mode 100644
index d1d5a15132..0000000000
Binary files a/public/emoji/1f385-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f385-1f3fe.svg b/public/emoji/1f385-1f3fe.svg
index 3745e8eef1..4e6a2efebf 100644
--- a/public/emoji/1f385-1f3fe.svg
+++ b/public/emoji/1f385-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f385-1f3ff.png b/public/emoji/1f385-1f3ff.png
deleted file mode 100644
index 4d697a01f2..0000000000
Binary files a/public/emoji/1f385-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f385-1f3ff.svg b/public/emoji/1f385-1f3ff.svg
index af8c96721c..91b20f10be 100644
--- a/public/emoji/1f385-1f3ff.svg
+++ b/public/emoji/1f385-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f385.png b/public/emoji/1f385.png
deleted file mode 100644
index bc83ab80d5..0000000000
Binary files a/public/emoji/1f385.png and /dev/null differ
diff --git a/public/emoji/1f385.svg b/public/emoji/1f385.svg
index 9f07458bae..55e0d6c56c 100644
--- a/public/emoji/1f385.svg
+++ b/public/emoji/1f385.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f386.png b/public/emoji/1f386.png
deleted file mode 100644
index 176c8b5826..0000000000
Binary files a/public/emoji/1f386.png and /dev/null differ
diff --git a/public/emoji/1f386.svg b/public/emoji/1f386.svg
index 9b8995a4e6..712a7f0110 100644
--- a/public/emoji/1f386.svg
+++ b/public/emoji/1f386.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f387.png b/public/emoji/1f387.png
deleted file mode 100644
index 30339cd6e0..0000000000
Binary files a/public/emoji/1f387.png and /dev/null differ
diff --git a/public/emoji/1f387.svg b/public/emoji/1f387.svg
index 2014225233..3e81c5c2d7 100644
--- a/public/emoji/1f387.svg
+++ b/public/emoji/1f387.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f388.png b/public/emoji/1f388.png
deleted file mode 100644
index 07916fe6df..0000000000
Binary files a/public/emoji/1f388.png and /dev/null differ
diff --git a/public/emoji/1f388.svg b/public/emoji/1f388.svg
index d29c08e05d..d799bc41ba 100644
--- a/public/emoji/1f388.svg
+++ b/public/emoji/1f388.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f389.png b/public/emoji/1f389.png
deleted file mode 100644
index 0244d60f26..0000000000
Binary files a/public/emoji/1f389.png and /dev/null differ
diff --git a/public/emoji/1f389.svg b/public/emoji/1f389.svg
index b0adb4c725..0e5d08936a 100644
--- a/public/emoji/1f389.svg
+++ b/public/emoji/1f389.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f38a.png b/public/emoji/1f38a.png
deleted file mode 100644
index ba4fd9b12b..0000000000
Binary files a/public/emoji/1f38a.png and /dev/null differ
diff --git a/public/emoji/1f38a.svg b/public/emoji/1f38a.svg
index a29c16a78c..961ed4fb65 100644
--- a/public/emoji/1f38a.svg
+++ b/public/emoji/1f38a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f38b.png b/public/emoji/1f38b.png
deleted file mode 100644
index 46fcb3a1aa..0000000000
Binary files a/public/emoji/1f38b.png and /dev/null differ
diff --git a/public/emoji/1f38b.svg b/public/emoji/1f38b.svg
index ad576db713..80bdcf94a8 100644
--- a/public/emoji/1f38b.svg
+++ b/public/emoji/1f38b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f38c.png b/public/emoji/1f38c.png
deleted file mode 100644
index 273bd0f0fe..0000000000
Binary files a/public/emoji/1f38c.png and /dev/null differ
diff --git a/public/emoji/1f38c.svg b/public/emoji/1f38c.svg
index 959e66865c..8ec2b57f66 100644
--- a/public/emoji/1f38c.svg
+++ b/public/emoji/1f38c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f38d.png b/public/emoji/1f38d.png
deleted file mode 100644
index 5d5e0e728a..0000000000
Binary files a/public/emoji/1f38d.png and /dev/null differ
diff --git a/public/emoji/1f38d.svg b/public/emoji/1f38d.svg
index 952e4c4c65..f3bc7cfe43 100644
--- a/public/emoji/1f38d.svg
+++ b/public/emoji/1f38d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f38e.png b/public/emoji/1f38e.png
deleted file mode 100644
index 1095561511..0000000000
Binary files a/public/emoji/1f38e.png and /dev/null differ
diff --git a/public/emoji/1f38e.svg b/public/emoji/1f38e.svg
index 05628ca3ac..beb21af5cf 100644
--- a/public/emoji/1f38e.svg
+++ b/public/emoji/1f38e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f38f.png b/public/emoji/1f38f.png
deleted file mode 100644
index 3b451035a3..0000000000
Binary files a/public/emoji/1f38f.png and /dev/null differ
diff --git a/public/emoji/1f38f.svg b/public/emoji/1f38f.svg
index 8f1261b6c3..51c1fbde8e 100644
--- a/public/emoji/1f38f.svg
+++ b/public/emoji/1f38f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f390.png b/public/emoji/1f390.png
deleted file mode 100644
index 3c9ef3a95f..0000000000
Binary files a/public/emoji/1f390.png and /dev/null differ
diff --git a/public/emoji/1f390.svg b/public/emoji/1f390.svg
index 6a2c3ac902..f2c5c6ea8f 100644
--- a/public/emoji/1f390.svg
+++ b/public/emoji/1f390.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f391.png b/public/emoji/1f391.png
deleted file mode 100644
index 1a28426592..0000000000
Binary files a/public/emoji/1f391.png and /dev/null differ
diff --git a/public/emoji/1f391.svg b/public/emoji/1f391.svg
index 7a1e114284..5fae1c37bf 100644
--- a/public/emoji/1f391.svg
+++ b/public/emoji/1f391.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f392.png b/public/emoji/1f392.png
deleted file mode 100644
index 9997c86e7d..0000000000
Binary files a/public/emoji/1f392.png and /dev/null differ
diff --git a/public/emoji/1f392.svg b/public/emoji/1f392.svg
index 812ae04099..67c626e867 100644
--- a/public/emoji/1f392.svg
+++ b/public/emoji/1f392.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f393.png b/public/emoji/1f393.png
deleted file mode 100644
index 8b17ddd9d0..0000000000
Binary files a/public/emoji/1f393.png and /dev/null differ
diff --git a/public/emoji/1f393.svg b/public/emoji/1f393.svg
index 743f8c1d98..b3e6d83e1c 100644
--- a/public/emoji/1f393.svg
+++ b/public/emoji/1f393.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f396.png b/public/emoji/1f396.png
deleted file mode 100644
index ecd3fb0358..0000000000
Binary files a/public/emoji/1f396.png and /dev/null differ
diff --git a/public/emoji/1f396.svg b/public/emoji/1f396.svg
index 316e3a49eb..b9102321af 100644
--- a/public/emoji/1f396.svg
+++ b/public/emoji/1f396.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f397.png b/public/emoji/1f397.png
deleted file mode 100644
index 3988bbd094..0000000000
Binary files a/public/emoji/1f397.png and /dev/null differ
diff --git a/public/emoji/1f397.svg b/public/emoji/1f397.svg
index 11875061e1..9c6a7b4083 100644
--- a/public/emoji/1f397.svg
+++ b/public/emoji/1f397.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f399.png b/public/emoji/1f399.png
deleted file mode 100644
index cd9167654f..0000000000
Binary files a/public/emoji/1f399.png and /dev/null differ
diff --git a/public/emoji/1f399.svg b/public/emoji/1f399.svg
index 44c4b3f0a2..853475c237 100644
--- a/public/emoji/1f399.svg
+++ b/public/emoji/1f399.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f39a.png b/public/emoji/1f39a.png
deleted file mode 100644
index 720a3b3411..0000000000
Binary files a/public/emoji/1f39a.png and /dev/null differ
diff --git a/public/emoji/1f39a.svg b/public/emoji/1f39a.svg
index 426ccd12ff..28cd6ecd04 100644
--- a/public/emoji/1f39a.svg
+++ b/public/emoji/1f39a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f39b.png b/public/emoji/1f39b.png
deleted file mode 100644
index 6635ac93b5..0000000000
Binary files a/public/emoji/1f39b.png and /dev/null differ
diff --git a/public/emoji/1f39b.svg b/public/emoji/1f39b.svg
index 54dda727d2..4bb880b277 100644
--- a/public/emoji/1f39b.svg
+++ b/public/emoji/1f39b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f39e.png b/public/emoji/1f39e.png
deleted file mode 100644
index 30143aedbe..0000000000
Binary files a/public/emoji/1f39e.png and /dev/null differ
diff --git a/public/emoji/1f39e.svg b/public/emoji/1f39e.svg
index 1a65cc86ec..2823df68cc 100644
--- a/public/emoji/1f39e.svg
+++ b/public/emoji/1f39e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f39f.png b/public/emoji/1f39f.png
deleted file mode 100644
index e510f4a7a5..0000000000
Binary files a/public/emoji/1f39f.png and /dev/null differ
diff --git a/public/emoji/1f39f.svg b/public/emoji/1f39f.svg
index 6e4c9b6922..59db5eb8ce 100644
--- a/public/emoji/1f39f.svg
+++ b/public/emoji/1f39f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3a0.png b/public/emoji/1f3a0.png
deleted file mode 100644
index a17074edf0..0000000000
Binary files a/public/emoji/1f3a0.png and /dev/null differ
diff --git a/public/emoji/1f3a0.svg b/public/emoji/1f3a0.svg
index 1c1feb0901..fd3e3464fa 100644
--- a/public/emoji/1f3a0.svg
+++ b/public/emoji/1f3a0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3a1.png b/public/emoji/1f3a1.png
deleted file mode 100644
index 55c8ff0475..0000000000
Binary files a/public/emoji/1f3a1.png and /dev/null differ
diff --git a/public/emoji/1f3a1.svg b/public/emoji/1f3a1.svg
index 72c71cd421..70b23f1e46 100644
--- a/public/emoji/1f3a1.svg
+++ b/public/emoji/1f3a1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3a2.png b/public/emoji/1f3a2.png
deleted file mode 100644
index 5b849e071e..0000000000
Binary files a/public/emoji/1f3a2.png and /dev/null differ
diff --git a/public/emoji/1f3a2.svg b/public/emoji/1f3a2.svg
index e8efa01a22..350ee1c326 100644
--- a/public/emoji/1f3a2.svg
+++ b/public/emoji/1f3a2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3a3.png b/public/emoji/1f3a3.png
deleted file mode 100644
index dfcdf07eb5..0000000000
Binary files a/public/emoji/1f3a3.png and /dev/null differ
diff --git a/public/emoji/1f3a3.svg b/public/emoji/1f3a3.svg
index daa26dc601..8a41469416 100644
--- a/public/emoji/1f3a3.svg
+++ b/public/emoji/1f3a3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3a4.png b/public/emoji/1f3a4.png
deleted file mode 100644
index d4e6b0def2..0000000000
Binary files a/public/emoji/1f3a4.png and /dev/null differ
diff --git a/public/emoji/1f3a4.svg b/public/emoji/1f3a4.svg
index 810538abda..854679bc75 100644
--- a/public/emoji/1f3a4.svg
+++ b/public/emoji/1f3a4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3a5.png b/public/emoji/1f3a5.png
deleted file mode 100644
index 4e73b13015..0000000000
Binary files a/public/emoji/1f3a5.png and /dev/null differ
diff --git a/public/emoji/1f3a5.svg b/public/emoji/1f3a5.svg
index da84a9fc61..7d6255d803 100644
--- a/public/emoji/1f3a5.svg
+++ b/public/emoji/1f3a5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3a6.png b/public/emoji/1f3a6.png
deleted file mode 100644
index 65f27b386f..0000000000
Binary files a/public/emoji/1f3a6.png and /dev/null differ
diff --git a/public/emoji/1f3a6.svg b/public/emoji/1f3a6.svg
index 1dca8b5178..20804c9778 100644
--- a/public/emoji/1f3a6.svg
+++ b/public/emoji/1f3a6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3a7.png b/public/emoji/1f3a7.png
deleted file mode 100644
index e9fd34041d..0000000000
Binary files a/public/emoji/1f3a7.png and /dev/null differ
diff --git a/public/emoji/1f3a7.svg b/public/emoji/1f3a7.svg
index 15d0289022..ef591d6b15 100644
--- a/public/emoji/1f3a7.svg
+++ b/public/emoji/1f3a7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3a8.png b/public/emoji/1f3a8.png
deleted file mode 100644
index bd6afe9ff0..0000000000
Binary files a/public/emoji/1f3a8.png and /dev/null differ
diff --git a/public/emoji/1f3a8.svg b/public/emoji/1f3a8.svg
index c70f95ee6c..184cb761b8 100644
--- a/public/emoji/1f3a8.svg
+++ b/public/emoji/1f3a8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3a9.png b/public/emoji/1f3a9.png
deleted file mode 100644
index 131b657b10..0000000000
Binary files a/public/emoji/1f3a9.png and /dev/null differ
diff --git a/public/emoji/1f3a9.svg b/public/emoji/1f3a9.svg
index d61f2f3d01..6fd99395d6 100644
--- a/public/emoji/1f3a9.svg
+++ b/public/emoji/1f3a9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3aa.png b/public/emoji/1f3aa.png
deleted file mode 100644
index b0379775b1..0000000000
Binary files a/public/emoji/1f3aa.png and /dev/null differ
diff --git a/public/emoji/1f3aa.svg b/public/emoji/1f3aa.svg
index 6d0fdff84d..e68ca8a78c 100644
--- a/public/emoji/1f3aa.svg
+++ b/public/emoji/1f3aa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ab.png b/public/emoji/1f3ab.png
deleted file mode 100644
index 605936bb6b..0000000000
Binary files a/public/emoji/1f3ab.png and /dev/null differ
diff --git a/public/emoji/1f3ab.svg b/public/emoji/1f3ab.svg
index 4e2c9b8ebc..c29ba29172 100644
--- a/public/emoji/1f3ab.svg
+++ b/public/emoji/1f3ab.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ac.png b/public/emoji/1f3ac.png
deleted file mode 100644
index 8139088311..0000000000
Binary files a/public/emoji/1f3ac.png and /dev/null differ
diff --git a/public/emoji/1f3ac.svg b/public/emoji/1f3ac.svg
index 7e70040c5e..1a91c024e4 100644
--- a/public/emoji/1f3ac.svg
+++ b/public/emoji/1f3ac.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ad.png b/public/emoji/1f3ad.png
deleted file mode 100644
index 685441fdaa..0000000000
Binary files a/public/emoji/1f3ad.png and /dev/null differ
diff --git a/public/emoji/1f3ad.svg b/public/emoji/1f3ad.svg
index f94769858f..de1ca17bb2 100644
--- a/public/emoji/1f3ad.svg
+++ b/public/emoji/1f3ad.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ae.png b/public/emoji/1f3ae.png
deleted file mode 100644
index 316a9106a5..0000000000
Binary files a/public/emoji/1f3ae.png and /dev/null differ
diff --git a/public/emoji/1f3ae.svg b/public/emoji/1f3ae.svg
index 534a483de1..c96c63589c 100644
--- a/public/emoji/1f3ae.svg
+++ b/public/emoji/1f3ae.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3af.png b/public/emoji/1f3af.png
deleted file mode 100644
index f6704aeb8b..0000000000
Binary files a/public/emoji/1f3af.png and /dev/null differ
diff --git a/public/emoji/1f3af.svg b/public/emoji/1f3af.svg
index fe4adfa486..fffbf85a5e 100644
--- a/public/emoji/1f3af.svg
+++ b/public/emoji/1f3af.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3b0.png b/public/emoji/1f3b0.png
deleted file mode 100644
index ee71b6c268..0000000000
Binary files a/public/emoji/1f3b0.png and /dev/null differ
diff --git a/public/emoji/1f3b0.svg b/public/emoji/1f3b0.svg
index bf844ef632..94d62408f0 100644
--- a/public/emoji/1f3b0.svg
+++ b/public/emoji/1f3b0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3b1.png b/public/emoji/1f3b1.png
deleted file mode 100644
index 38ca662ede..0000000000
Binary files a/public/emoji/1f3b1.png and /dev/null differ
diff --git a/public/emoji/1f3b1.svg b/public/emoji/1f3b1.svg
index c4dcbfe7f8..29ad506831 100644
--- a/public/emoji/1f3b1.svg
+++ b/public/emoji/1f3b1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3b2.png b/public/emoji/1f3b2.png
deleted file mode 100644
index ad3626fe5e..0000000000
Binary files a/public/emoji/1f3b2.png and /dev/null differ
diff --git a/public/emoji/1f3b2.svg b/public/emoji/1f3b2.svg
index 56434d024d..036835dc78 100644
--- a/public/emoji/1f3b2.svg
+++ b/public/emoji/1f3b2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3b3.png b/public/emoji/1f3b3.png
deleted file mode 100644
index 63add89e53..0000000000
Binary files a/public/emoji/1f3b3.png and /dev/null differ
diff --git a/public/emoji/1f3b3.svg b/public/emoji/1f3b3.svg
index 3fe632fcbf..997b5d3098 100644
--- a/public/emoji/1f3b3.svg
+++ b/public/emoji/1f3b3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3b4.png b/public/emoji/1f3b4.png
deleted file mode 100644
index 6766b044d9..0000000000
Binary files a/public/emoji/1f3b4.png and /dev/null differ
diff --git a/public/emoji/1f3b4.svg b/public/emoji/1f3b4.svg
index 9618a3cb19..e0dcba142d 100644
--- a/public/emoji/1f3b4.svg
+++ b/public/emoji/1f3b4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3b5.png b/public/emoji/1f3b5.png
deleted file mode 100644
index 06691ef61b..0000000000
Binary files a/public/emoji/1f3b5.png and /dev/null differ
diff --git a/public/emoji/1f3b5.svg b/public/emoji/1f3b5.svg
index 7ce21dd8d1..d748d57ac8 100644
--- a/public/emoji/1f3b5.svg
+++ b/public/emoji/1f3b5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3b6.png b/public/emoji/1f3b6.png
deleted file mode 100644
index 57d499aa18..0000000000
Binary files a/public/emoji/1f3b6.png and /dev/null differ
diff --git a/public/emoji/1f3b6.svg b/public/emoji/1f3b6.svg
index 9c0b8a81e8..f1e96a1438 100644
--- a/public/emoji/1f3b6.svg
+++ b/public/emoji/1f3b6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3b7.png b/public/emoji/1f3b7.png
deleted file mode 100644
index a392faec29..0000000000
Binary files a/public/emoji/1f3b7.png and /dev/null differ
diff --git a/public/emoji/1f3b7.svg b/public/emoji/1f3b7.svg
index a3bf5ca27d..146331c503 100644
--- a/public/emoji/1f3b7.svg
+++ b/public/emoji/1f3b7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3b8.png b/public/emoji/1f3b8.png
deleted file mode 100644
index 43d752f1e3..0000000000
Binary files a/public/emoji/1f3b8.png and /dev/null differ
diff --git a/public/emoji/1f3b8.svg b/public/emoji/1f3b8.svg
index e31145b883..9253fa7122 100644
--- a/public/emoji/1f3b8.svg
+++ b/public/emoji/1f3b8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3b9.png b/public/emoji/1f3b9.png
deleted file mode 100644
index 442b745684..0000000000
Binary files a/public/emoji/1f3b9.png and /dev/null differ
diff --git a/public/emoji/1f3b9.svg b/public/emoji/1f3b9.svg
index 4605d3fbd5..f3dc5d6fbf 100644
--- a/public/emoji/1f3b9.svg
+++ b/public/emoji/1f3b9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ba.png b/public/emoji/1f3ba.png
deleted file mode 100644
index 864ccbcd04..0000000000
Binary files a/public/emoji/1f3ba.png and /dev/null differ
diff --git a/public/emoji/1f3ba.svg b/public/emoji/1f3ba.svg
index 248ae7d2aa..69c96b2bcf 100644
--- a/public/emoji/1f3ba.svg
+++ b/public/emoji/1f3ba.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3bb.png b/public/emoji/1f3bb.png
deleted file mode 100644
index e1e76cce24..0000000000
Binary files a/public/emoji/1f3bb.png and /dev/null differ
diff --git a/public/emoji/1f3bb.svg b/public/emoji/1f3bb.svg
index 3e9cf6e764..bb41fa03ad 100644
--- a/public/emoji/1f3bb.svg
+++ b/public/emoji/1f3bb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3bc.png b/public/emoji/1f3bc.png
deleted file mode 100644
index 47dc05a8ef..0000000000
Binary files a/public/emoji/1f3bc.png and /dev/null differ
diff --git a/public/emoji/1f3bc.svg b/public/emoji/1f3bc.svg
index c07402486c..5a6b2c5432 100644
--- a/public/emoji/1f3bc.svg
+++ b/public/emoji/1f3bc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3bd.png b/public/emoji/1f3bd.png
deleted file mode 100644
index 6d83c06b80..0000000000
Binary files a/public/emoji/1f3bd.png and /dev/null differ
diff --git a/public/emoji/1f3bd.svg b/public/emoji/1f3bd.svg
index b612348f3f..5afc205fc0 100644
--- a/public/emoji/1f3bd.svg
+++ b/public/emoji/1f3bd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3be.png b/public/emoji/1f3be.png
deleted file mode 100644
index 7e68ba8f30..0000000000
Binary files a/public/emoji/1f3be.png and /dev/null differ
diff --git a/public/emoji/1f3be.svg b/public/emoji/1f3be.svg
index 25ead517e9..a32596c85e 100644
--- a/public/emoji/1f3be.svg
+++ b/public/emoji/1f3be.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3bf.png b/public/emoji/1f3bf.png
deleted file mode 100644
index 4a2d2c1230..0000000000
Binary files a/public/emoji/1f3bf.png and /dev/null differ
diff --git a/public/emoji/1f3bf.svg b/public/emoji/1f3bf.svg
index c18b6706dd..8fc9b173d8 100644
--- a/public/emoji/1f3bf.svg
+++ b/public/emoji/1f3bf.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c0.png b/public/emoji/1f3c0.png
deleted file mode 100644
index 64c76b79c6..0000000000
Binary files a/public/emoji/1f3c0.png and /dev/null differ
diff --git a/public/emoji/1f3c0.svg b/public/emoji/1f3c0.svg
index 4c88cd07ed..19fe48e475 100644
--- a/public/emoji/1f3c0.svg
+++ b/public/emoji/1f3c0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c1.png b/public/emoji/1f3c1.png
deleted file mode 100644
index 5a71eecb89..0000000000
Binary files a/public/emoji/1f3c1.png and /dev/null differ
diff --git a/public/emoji/1f3c1.svg b/public/emoji/1f3c1.svg
index a57b1b0014..a8b2718646 100644
--- a/public/emoji/1f3c1.svg
+++ b/public/emoji/1f3c1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c2-1f3fb.svg b/public/emoji/1f3c2-1f3fb.svg
new file mode 100644
index 0000000000..80f18eae43
--- /dev/null
+++ b/public/emoji/1f3c2-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c2-1f3fc.svg b/public/emoji/1f3c2-1f3fc.svg
new file mode 100644
index 0000000000..d9d27bd1b4
--- /dev/null
+++ b/public/emoji/1f3c2-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c2-1f3fd.svg b/public/emoji/1f3c2-1f3fd.svg
new file mode 100644
index 0000000000..93bdecc58b
--- /dev/null
+++ b/public/emoji/1f3c2-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c2-1f3fe.svg b/public/emoji/1f3c2-1f3fe.svg
new file mode 100644
index 0000000000..076c81b98b
--- /dev/null
+++ b/public/emoji/1f3c2-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c2-1f3ff.svg b/public/emoji/1f3c2-1f3ff.svg
new file mode 100644
index 0000000000..b2d6ad96e7
--- /dev/null
+++ b/public/emoji/1f3c2-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c2.png b/public/emoji/1f3c2.png
deleted file mode 100644
index 6361c0f2c9..0000000000
Binary files a/public/emoji/1f3c2.png and /dev/null differ
diff --git a/public/emoji/1f3c2.svg b/public/emoji/1f3c2.svg
index 347e2d7f78..7239e12522 100644
--- a/public/emoji/1f3c2.svg
+++ b/public/emoji/1f3c2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c3-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f3c3-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..570fc7cc05
--- /dev/null
+++ b/public/emoji/1f3c3-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f3c3-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..dfff62b71c
--- /dev/null
+++ b/public/emoji/1f3c3-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3-1f3fb.png b/public/emoji/1f3c3-1f3fb.png
deleted file mode 100644
index 9355239a52..0000000000
Binary files a/public/emoji/1f3c3-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f3c3-1f3fb.svg b/public/emoji/1f3c3-1f3fb.svg
index 4b9b89b068..dfff62b71c 100644
--- a/public/emoji/1f3c3-1f3fb.svg
+++ b/public/emoji/1f3c3-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c3-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f3c3-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..ab219949db
--- /dev/null
+++ b/public/emoji/1f3c3-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f3c3-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..093f4ba69c
--- /dev/null
+++ b/public/emoji/1f3c3-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3-1f3fc.png b/public/emoji/1f3c3-1f3fc.png
deleted file mode 100644
index 6112fd5c37..0000000000
Binary files a/public/emoji/1f3c3-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f3c3-1f3fc.svg b/public/emoji/1f3c3-1f3fc.svg
index fd2a61abd9..093f4ba69c 100644
--- a/public/emoji/1f3c3-1f3fc.svg
+++ b/public/emoji/1f3c3-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c3-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f3c3-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..c7d77e2afd
--- /dev/null
+++ b/public/emoji/1f3c3-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f3c3-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..fc486856e8
--- /dev/null
+++ b/public/emoji/1f3c3-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3-1f3fd.png b/public/emoji/1f3c3-1f3fd.png
deleted file mode 100644
index 625ec708f4..0000000000
Binary files a/public/emoji/1f3c3-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f3c3-1f3fd.svg b/public/emoji/1f3c3-1f3fd.svg
index 6e8a3ba0d9..fc486856e8 100644
--- a/public/emoji/1f3c3-1f3fd.svg
+++ b/public/emoji/1f3c3-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c3-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f3c3-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..ec6cb8d7bd
--- /dev/null
+++ b/public/emoji/1f3c3-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f3c3-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ebf10ebdeb
--- /dev/null
+++ b/public/emoji/1f3c3-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3-1f3fe.png b/public/emoji/1f3c3-1f3fe.png
deleted file mode 100644
index 242f1b5633..0000000000
Binary files a/public/emoji/1f3c3-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f3c3-1f3fe.svg b/public/emoji/1f3c3-1f3fe.svg
index 819f33c333..ebf10ebdeb 100644
--- a/public/emoji/1f3c3-1f3fe.svg
+++ b/public/emoji/1f3c3-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c3-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f3c3-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..6a6be6cb8e
--- /dev/null
+++ b/public/emoji/1f3c3-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f3c3-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..870bf9f5bc
--- /dev/null
+++ b/public/emoji/1f3c3-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3-1f3ff.png b/public/emoji/1f3c3-1f3ff.png
deleted file mode 100644
index 2976c6f019..0000000000
Binary files a/public/emoji/1f3c3-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f3c3-1f3ff.svg b/public/emoji/1f3c3-1f3ff.svg
index 622c252e46..870bf9f5bc 100644
--- a/public/emoji/1f3c3-1f3ff.svg
+++ b/public/emoji/1f3c3-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c3-200d-2640-fe0f.svg b/public/emoji/1f3c3-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..267f23f2a2
--- /dev/null
+++ b/public/emoji/1f3c3-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3-200d-2642-fe0f.svg b/public/emoji/1f3c3-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..2916e58975
--- /dev/null
+++ b/public/emoji/1f3c3-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c3.png b/public/emoji/1f3c3.png
deleted file mode 100644
index e914915976..0000000000
Binary files a/public/emoji/1f3c3.png and /dev/null differ
diff --git a/public/emoji/1f3c3.svg b/public/emoji/1f3c3.svg
index e292a290c6..2916e58975 100644
--- a/public/emoji/1f3c3.svg
+++ b/public/emoji/1f3c3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c4-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f3c4-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..1e6a1bb30b
--- /dev/null
+++ b/public/emoji/1f3c4-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f3c4-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..10680958eb
--- /dev/null
+++ b/public/emoji/1f3c4-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4-1f3fb.png b/public/emoji/1f3c4-1f3fb.png
deleted file mode 100644
index b5faaa524c..0000000000
Binary files a/public/emoji/1f3c4-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f3c4-1f3fb.svg b/public/emoji/1f3c4-1f3fb.svg
index b76cc56bcd..10680958eb 100644
--- a/public/emoji/1f3c4-1f3fb.svg
+++ b/public/emoji/1f3c4-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c4-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f3c4-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..63730d1c09
--- /dev/null
+++ b/public/emoji/1f3c4-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f3c4-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..02facb5ce7
--- /dev/null
+++ b/public/emoji/1f3c4-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4-1f3fc.png b/public/emoji/1f3c4-1f3fc.png
deleted file mode 100644
index 6d92e412ff..0000000000
Binary files a/public/emoji/1f3c4-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f3c4-1f3fc.svg b/public/emoji/1f3c4-1f3fc.svg
index f595853c7a..02facb5ce7 100644
--- a/public/emoji/1f3c4-1f3fc.svg
+++ b/public/emoji/1f3c4-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c4-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f3c4-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..03e18b72d1
--- /dev/null
+++ b/public/emoji/1f3c4-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f3c4-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..bf3a8b32be
--- /dev/null
+++ b/public/emoji/1f3c4-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4-1f3fd.png b/public/emoji/1f3c4-1f3fd.png
deleted file mode 100644
index f05ef59496..0000000000
Binary files a/public/emoji/1f3c4-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f3c4-1f3fd.svg b/public/emoji/1f3c4-1f3fd.svg
index 5ddcf250fe..bf3a8b32be 100644
--- a/public/emoji/1f3c4-1f3fd.svg
+++ b/public/emoji/1f3c4-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c4-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f3c4-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..866a81364a
--- /dev/null
+++ b/public/emoji/1f3c4-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f3c4-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..d3529de70d
--- /dev/null
+++ b/public/emoji/1f3c4-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4-1f3fe.png b/public/emoji/1f3c4-1f3fe.png
deleted file mode 100644
index 35e143d19d..0000000000
Binary files a/public/emoji/1f3c4-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f3c4-1f3fe.svg b/public/emoji/1f3c4-1f3fe.svg
index bf0fa36f2c..d3529de70d 100644
--- a/public/emoji/1f3c4-1f3fe.svg
+++ b/public/emoji/1f3c4-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c4-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f3c4-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..40c4e2605f
--- /dev/null
+++ b/public/emoji/1f3c4-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f3c4-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..5c4f2a5e46
--- /dev/null
+++ b/public/emoji/1f3c4-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4-1f3ff.png b/public/emoji/1f3c4-1f3ff.png
deleted file mode 100644
index 38917658ea..0000000000
Binary files a/public/emoji/1f3c4-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f3c4-1f3ff.svg b/public/emoji/1f3c4-1f3ff.svg
index 294226da2d..5c4f2a5e46 100644
--- a/public/emoji/1f3c4-1f3ff.svg
+++ b/public/emoji/1f3c4-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c4-200d-2640-fe0f.svg b/public/emoji/1f3c4-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..ea334a12a6
--- /dev/null
+++ b/public/emoji/1f3c4-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4-200d-2642-fe0f.svg b/public/emoji/1f3c4-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..88bd36f1aa
--- /dev/null
+++ b/public/emoji/1f3c4-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3c4.png b/public/emoji/1f3c4.png
deleted file mode 100644
index 3ab017adf4..0000000000
Binary files a/public/emoji/1f3c4.png and /dev/null differ
diff --git a/public/emoji/1f3c4.svg b/public/emoji/1f3c4.svg
index 53b845c633..88bd36f1aa 100644
--- a/public/emoji/1f3c4.svg
+++ b/public/emoji/1f3c4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c5.png b/public/emoji/1f3c5.png
deleted file mode 100644
index b85896b14d..0000000000
Binary files a/public/emoji/1f3c5.png and /dev/null differ
diff --git a/public/emoji/1f3c5.svg b/public/emoji/1f3c5.svg
index 4862d3c692..1514714dc5 100644
--- a/public/emoji/1f3c5.svg
+++ b/public/emoji/1f3c5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c6.png b/public/emoji/1f3c6.png
deleted file mode 100644
index ac2895c189..0000000000
Binary files a/public/emoji/1f3c6.png and /dev/null differ
diff --git a/public/emoji/1f3c6.svg b/public/emoji/1f3c6.svg
index 025592e6df..6ecc234aff 100644
--- a/public/emoji/1f3c6.svg
+++ b/public/emoji/1f3c6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c7-1f3fb.png b/public/emoji/1f3c7-1f3fb.png
deleted file mode 100644
index e9bf4092e9..0000000000
Binary files a/public/emoji/1f3c7-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f3c7-1f3fb.svg b/public/emoji/1f3c7-1f3fb.svg
index 308dd7abef..47ac7e4180 100644
--- a/public/emoji/1f3c7-1f3fb.svg
+++ b/public/emoji/1f3c7-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c7-1f3fc.png b/public/emoji/1f3c7-1f3fc.png
deleted file mode 100644
index 031bbc3d86..0000000000
Binary files a/public/emoji/1f3c7-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f3c7-1f3fc.svg b/public/emoji/1f3c7-1f3fc.svg
index f841b3e2d7..b8509d9d10 100644
--- a/public/emoji/1f3c7-1f3fc.svg
+++ b/public/emoji/1f3c7-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c7-1f3fd.png b/public/emoji/1f3c7-1f3fd.png
deleted file mode 100644
index b40ef891f9..0000000000
Binary files a/public/emoji/1f3c7-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f3c7-1f3fd.svg b/public/emoji/1f3c7-1f3fd.svg
index ca972a62fc..67944e2882 100644
--- a/public/emoji/1f3c7-1f3fd.svg
+++ b/public/emoji/1f3c7-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c7-1f3fe.png b/public/emoji/1f3c7-1f3fe.png
deleted file mode 100644
index e286cb8506..0000000000
Binary files a/public/emoji/1f3c7-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f3c7-1f3fe.svg b/public/emoji/1f3c7-1f3fe.svg
index c8f3850849..5bea32d7c6 100644
--- a/public/emoji/1f3c7-1f3fe.svg
+++ b/public/emoji/1f3c7-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c7-1f3ff.png b/public/emoji/1f3c7-1f3ff.png
deleted file mode 100644
index 453c51c600..0000000000
Binary files a/public/emoji/1f3c7-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f3c7-1f3ff.svg b/public/emoji/1f3c7-1f3ff.svg
index 1ee4554df1..a6c6031f70 100644
--- a/public/emoji/1f3c7-1f3ff.svg
+++ b/public/emoji/1f3c7-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c7.png b/public/emoji/1f3c7.png
deleted file mode 100644
index addf9edac5..0000000000
Binary files a/public/emoji/1f3c7.png and /dev/null differ
diff --git a/public/emoji/1f3c7.svg b/public/emoji/1f3c7.svg
index f790b68859..b6b0ecc8ef 100644
--- a/public/emoji/1f3c7.svg
+++ b/public/emoji/1f3c7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c8.png b/public/emoji/1f3c8.png
deleted file mode 100644
index 10366f41fc..0000000000
Binary files a/public/emoji/1f3c8.png and /dev/null differ
diff --git a/public/emoji/1f3c8.svg b/public/emoji/1f3c8.svg
index 85ecdbf9cb..3a7e9ea5ca 100644
--- a/public/emoji/1f3c8.svg
+++ b/public/emoji/1f3c8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3c9.png b/public/emoji/1f3c9.png
deleted file mode 100644
index b187227343..0000000000
Binary files a/public/emoji/1f3c9.png and /dev/null differ
diff --git a/public/emoji/1f3c9.svg b/public/emoji/1f3c9.svg
index dca5f04935..c61d5e1049 100644
--- a/public/emoji/1f3c9.svg
+++ b/public/emoji/1f3c9.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ca-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f3ca-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..b566b0b495
--- /dev/null
+++ b/public/emoji/1f3ca-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f3ca-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..4adae1bee6
--- /dev/null
+++ b/public/emoji/1f3ca-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca-1f3fb.png b/public/emoji/1f3ca-1f3fb.png
deleted file mode 100644
index 38441c9ca9..0000000000
Binary files a/public/emoji/1f3ca-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f3ca-1f3fb.svg b/public/emoji/1f3ca-1f3fb.svg
index 8484a53049..4adae1bee6 100644
--- a/public/emoji/1f3ca-1f3fb.svg
+++ b/public/emoji/1f3ca-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ca-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f3ca-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..938af613b4
--- /dev/null
+++ b/public/emoji/1f3ca-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f3ca-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..b7bad31957
--- /dev/null
+++ b/public/emoji/1f3ca-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca-1f3fc.png b/public/emoji/1f3ca-1f3fc.png
deleted file mode 100644
index b0d4311244..0000000000
Binary files a/public/emoji/1f3ca-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f3ca-1f3fc.svg b/public/emoji/1f3ca-1f3fc.svg
index 456bee3b39..b7bad31957 100644
--- a/public/emoji/1f3ca-1f3fc.svg
+++ b/public/emoji/1f3ca-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ca-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f3ca-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..fb1f38e4b4
--- /dev/null
+++ b/public/emoji/1f3ca-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f3ca-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..87d970d38b
--- /dev/null
+++ b/public/emoji/1f3ca-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca-1f3fd.png b/public/emoji/1f3ca-1f3fd.png
deleted file mode 100644
index 211e77e2aa..0000000000
Binary files a/public/emoji/1f3ca-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f3ca-1f3fd.svg b/public/emoji/1f3ca-1f3fd.svg
index 57e0642245..87d970d38b 100644
--- a/public/emoji/1f3ca-1f3fd.svg
+++ b/public/emoji/1f3ca-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ca-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f3ca-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..c506400824
--- /dev/null
+++ b/public/emoji/1f3ca-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f3ca-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..68084d89a1
--- /dev/null
+++ b/public/emoji/1f3ca-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca-1f3fe.png b/public/emoji/1f3ca-1f3fe.png
deleted file mode 100644
index f34c34db9d..0000000000
Binary files a/public/emoji/1f3ca-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f3ca-1f3fe.svg b/public/emoji/1f3ca-1f3fe.svg
index 12d607b4bb..68084d89a1 100644
--- a/public/emoji/1f3ca-1f3fe.svg
+++ b/public/emoji/1f3ca-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ca-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f3ca-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..7f97b5f07b
--- /dev/null
+++ b/public/emoji/1f3ca-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f3ca-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..0e93a98c93
--- /dev/null
+++ b/public/emoji/1f3ca-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca-1f3ff.png b/public/emoji/1f3ca-1f3ff.png
deleted file mode 100644
index 3e9231ff86..0000000000
Binary files a/public/emoji/1f3ca-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f3ca-1f3ff.svg b/public/emoji/1f3ca-1f3ff.svg
index 99fe3f240e..0e93a98c93 100644
--- a/public/emoji/1f3ca-1f3ff.svg
+++ b/public/emoji/1f3ca-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ca-200d-2640-fe0f.svg b/public/emoji/1f3ca-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..1d4abfd761
--- /dev/null
+++ b/public/emoji/1f3ca-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca-200d-2642-fe0f.svg b/public/emoji/1f3ca-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..7611ea22ab
--- /dev/null
+++ b/public/emoji/1f3ca-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3ca.png b/public/emoji/1f3ca.png
deleted file mode 100644
index 55b4d72f9a..0000000000
Binary files a/public/emoji/1f3ca.png and /dev/null differ
diff --git a/public/emoji/1f3ca.svg b/public/emoji/1f3ca.svg
index 5b62b5cc77..7611ea22ab 100644
--- a/public/emoji/1f3ca.svg
+++ b/public/emoji/1f3ca.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3cb-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f3cb-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..70fdc084fe
--- /dev/null
+++ b/public/emoji/1f3cb-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f3cb-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..3938ed9cc2
--- /dev/null
+++ b/public/emoji/1f3cb-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb-1f3fb.png b/public/emoji/1f3cb-1f3fb.png
deleted file mode 100644
index febaad123e..0000000000
Binary files a/public/emoji/1f3cb-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f3cb-1f3fb.svg b/public/emoji/1f3cb-1f3fb.svg
index 1d993f5b36..3938ed9cc2 100644
--- a/public/emoji/1f3cb-1f3fb.svg
+++ b/public/emoji/1f3cb-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3cb-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f3cb-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..5f84387930
--- /dev/null
+++ b/public/emoji/1f3cb-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f3cb-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..11f1a17280
--- /dev/null
+++ b/public/emoji/1f3cb-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb-1f3fc.png b/public/emoji/1f3cb-1f3fc.png
deleted file mode 100644
index 27ae794a18..0000000000
Binary files a/public/emoji/1f3cb-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f3cb-1f3fc.svg b/public/emoji/1f3cb-1f3fc.svg
index 4b386c0119..11f1a17280 100644
--- a/public/emoji/1f3cb-1f3fc.svg
+++ b/public/emoji/1f3cb-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3cb-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f3cb-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..310e485338
--- /dev/null
+++ b/public/emoji/1f3cb-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f3cb-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..8f7a557280
--- /dev/null
+++ b/public/emoji/1f3cb-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb-1f3fd.png b/public/emoji/1f3cb-1f3fd.png
deleted file mode 100644
index 45c4c22c70..0000000000
Binary files a/public/emoji/1f3cb-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f3cb-1f3fd.svg b/public/emoji/1f3cb-1f3fd.svg
index 06778330e1..8f7a557280 100644
--- a/public/emoji/1f3cb-1f3fd.svg
+++ b/public/emoji/1f3cb-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3cb-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f3cb-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..7026af4e9f
--- /dev/null
+++ b/public/emoji/1f3cb-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f3cb-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..4e06d696b0
--- /dev/null
+++ b/public/emoji/1f3cb-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb-1f3fe.png b/public/emoji/1f3cb-1f3fe.png
deleted file mode 100644
index 67dd21d246..0000000000
Binary files a/public/emoji/1f3cb-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f3cb-1f3fe.svg b/public/emoji/1f3cb-1f3fe.svg
index 7df96c44d2..4e06d696b0 100644
--- a/public/emoji/1f3cb-1f3fe.svg
+++ b/public/emoji/1f3cb-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3cb-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f3cb-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..27cfbeef62
--- /dev/null
+++ b/public/emoji/1f3cb-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f3cb-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..08e998ed92
--- /dev/null
+++ b/public/emoji/1f3cb-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb-1f3ff.png b/public/emoji/1f3cb-1f3ff.png
deleted file mode 100644
index fa0152038b..0000000000
Binary files a/public/emoji/1f3cb-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f3cb-1f3ff.svg b/public/emoji/1f3cb-1f3ff.svg
index 252bf0e4a8..08e998ed92 100644
--- a/public/emoji/1f3cb-1f3ff.svg
+++ b/public/emoji/1f3cb-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3cb-fe0f-200d-2640-fe0f.svg b/public/emoji/1f3cb-fe0f-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..3e6f21e92c
--- /dev/null
+++ b/public/emoji/1f3cb-fe0f-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb-fe0f-200d-2642-fe0f.svg b/public/emoji/1f3cb-fe0f-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..01306a7538
--- /dev/null
+++ b/public/emoji/1f3cb-fe0f-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cb.png b/public/emoji/1f3cb.png
deleted file mode 100644
index afdeaa476a..0000000000
Binary files a/public/emoji/1f3cb.png and /dev/null differ
diff --git a/public/emoji/1f3cb.svg b/public/emoji/1f3cb.svg
index 606b0076bc..01306a7538 100644
--- a/public/emoji/1f3cb.svg
+++ b/public/emoji/1f3cb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3cc-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f3cc-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..24b0ade254
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f3cc-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ca733cb955
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3fb.svg b/public/emoji/1f3cc-1f3fb.svg
new file mode 100644
index 0000000000..ca733cb955
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f3cc-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..e3379b1e3a
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f3cc-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..c0c7941621
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3fc.svg b/public/emoji/1f3cc-1f3fc.svg
new file mode 100644
index 0000000000..c0c7941621
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f3cc-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..0fb927c829
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f3cc-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..6e67fa7ab0
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3fd.svg b/public/emoji/1f3cc-1f3fd.svg
new file mode 100644
index 0000000000..6e67fa7ab0
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f3cc-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..150fc0e212
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f3cc-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..c891ce67ae
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3fe.svg b/public/emoji/1f3cc-1f3fe.svg
new file mode 100644
index 0000000000..c891ce67ae
--- /dev/null
+++ b/public/emoji/1f3cc-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f3cc-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..78031ea857
--- /dev/null
+++ b/public/emoji/1f3cc-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f3cc-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..703b6c66e5
--- /dev/null
+++ b/public/emoji/1f3cc-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-1f3ff.svg b/public/emoji/1f3cc-1f3ff.svg
new file mode 100644
index 0000000000..703b6c66e5
--- /dev/null
+++ b/public/emoji/1f3cc-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-fe0f-200d-2640-fe0f.svg b/public/emoji/1f3cc-fe0f-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..a51cba2e14
--- /dev/null
+++ b/public/emoji/1f3cc-fe0f-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc-fe0f-200d-2642-fe0f.svg b/public/emoji/1f3cc-fe0f-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..23c4ae77ed
--- /dev/null
+++ b/public/emoji/1f3cc-fe0f-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3cc.png b/public/emoji/1f3cc.png
deleted file mode 100644
index 39c552de86..0000000000
Binary files a/public/emoji/1f3cc.png and /dev/null differ
diff --git a/public/emoji/1f3cc.svg b/public/emoji/1f3cc.svg
index 25cce198a9..23c4ae77ed 100644
--- a/public/emoji/1f3cc.svg
+++ b/public/emoji/1f3cc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3cd.png b/public/emoji/1f3cd.png
deleted file mode 100644
index 3d1d567e8e..0000000000
Binary files a/public/emoji/1f3cd.png and /dev/null differ
diff --git a/public/emoji/1f3cd.svg b/public/emoji/1f3cd.svg
index ea58df55be..7384d6b0e7 100644
--- a/public/emoji/1f3cd.svg
+++ b/public/emoji/1f3cd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ce.png b/public/emoji/1f3ce.png
deleted file mode 100644
index fe3f045f44..0000000000
Binary files a/public/emoji/1f3ce.png and /dev/null differ
diff --git a/public/emoji/1f3ce.svg b/public/emoji/1f3ce.svg
index f6bb1d8f9c..3fc893c907 100644
--- a/public/emoji/1f3ce.svg
+++ b/public/emoji/1f3ce.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3cf.png b/public/emoji/1f3cf.png
deleted file mode 100644
index d602294a2c..0000000000
Binary files a/public/emoji/1f3cf.png and /dev/null differ
diff --git a/public/emoji/1f3cf.svg b/public/emoji/1f3cf.svg
index 1723dfe48f..c9f934012e 100644
--- a/public/emoji/1f3cf.svg
+++ b/public/emoji/1f3cf.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3d0.png b/public/emoji/1f3d0.png
deleted file mode 100644
index 7a0e49d4b0..0000000000
Binary files a/public/emoji/1f3d0.png and /dev/null differ
diff --git a/public/emoji/1f3d0.svg b/public/emoji/1f3d0.svg
index bf0a613239..6f3923c6ac 100644
--- a/public/emoji/1f3d0.svg
+++ b/public/emoji/1f3d0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3d1.png b/public/emoji/1f3d1.png
deleted file mode 100644
index 839637716e..0000000000
Binary files a/public/emoji/1f3d1.png and /dev/null differ
diff --git a/public/emoji/1f3d1.svg b/public/emoji/1f3d1.svg
index 22278e5754..3cd95b2990 100644
--- a/public/emoji/1f3d1.svg
+++ b/public/emoji/1f3d1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3d2.png b/public/emoji/1f3d2.png
deleted file mode 100644
index be94e9cbf7..0000000000
Binary files a/public/emoji/1f3d2.png and /dev/null differ
diff --git a/public/emoji/1f3d2.svg b/public/emoji/1f3d2.svg
index 84c1cd5099..25513203cc 100644
--- a/public/emoji/1f3d2.svg
+++ b/public/emoji/1f3d2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3d3.png b/public/emoji/1f3d3.png
deleted file mode 100644
index ff3c51727d..0000000000
Binary files a/public/emoji/1f3d3.png and /dev/null differ
diff --git a/public/emoji/1f3d3.svg b/public/emoji/1f3d3.svg
index f7ecc84613..f9fe5dedb5 100644
--- a/public/emoji/1f3d3.svg
+++ b/public/emoji/1f3d3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3d4.png b/public/emoji/1f3d4.png
deleted file mode 100644
index 76e1cfd831..0000000000
Binary files a/public/emoji/1f3d4.png and /dev/null differ
diff --git a/public/emoji/1f3d4.svg b/public/emoji/1f3d4.svg
index fad85a34ee..06a703edb5 100644
--- a/public/emoji/1f3d4.svg
+++ b/public/emoji/1f3d4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3d5.png b/public/emoji/1f3d5.png
deleted file mode 100644
index d589cc1f44..0000000000
Binary files a/public/emoji/1f3d5.png and /dev/null differ
diff --git a/public/emoji/1f3d5.svg b/public/emoji/1f3d5.svg
index 166f1a74f3..2aec636dcc 100644
--- a/public/emoji/1f3d5.svg
+++ b/public/emoji/1f3d5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3d6.png b/public/emoji/1f3d6.png
deleted file mode 100644
index 69108c8ea1..0000000000
Binary files a/public/emoji/1f3d6.png and /dev/null differ
diff --git a/public/emoji/1f3d6.svg b/public/emoji/1f3d6.svg
index 7aa2ca8b9a..0e9cc80767 100644
--- a/public/emoji/1f3d6.svg
+++ b/public/emoji/1f3d6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3d7.png b/public/emoji/1f3d7.png
deleted file mode 100644
index 8206a20f63..0000000000
Binary files a/public/emoji/1f3d7.png and /dev/null differ
diff --git a/public/emoji/1f3d7.svg b/public/emoji/1f3d7.svg
index a29f1db270..271e35a240 100644
--- a/public/emoji/1f3d7.svg
+++ b/public/emoji/1f3d7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3d8.png b/public/emoji/1f3d8.png
deleted file mode 100644
index 6ab4a2a265..0000000000
Binary files a/public/emoji/1f3d8.png and /dev/null differ
diff --git a/public/emoji/1f3d8.svg b/public/emoji/1f3d8.svg
index ba838e874f..805e0aa149 100644
--- a/public/emoji/1f3d8.svg
+++ b/public/emoji/1f3d8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3d9.png b/public/emoji/1f3d9.png
deleted file mode 100644
index d7b9844a0b..0000000000
Binary files a/public/emoji/1f3d9.png and /dev/null differ
diff --git a/public/emoji/1f3d9.svg b/public/emoji/1f3d9.svg
index 3deabda452..b740e61a2e 100644
--- a/public/emoji/1f3d9.svg
+++ b/public/emoji/1f3d9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3da.png b/public/emoji/1f3da.png
deleted file mode 100644
index c55e81de99..0000000000
Binary files a/public/emoji/1f3da.png and /dev/null differ
diff --git a/public/emoji/1f3da.svg b/public/emoji/1f3da.svg
index bf6c30621f..df78c98e8e 100644
--- a/public/emoji/1f3da.svg
+++ b/public/emoji/1f3da.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3db.png b/public/emoji/1f3db.png
deleted file mode 100644
index de7b559daa..0000000000
Binary files a/public/emoji/1f3db.png and /dev/null differ
diff --git a/public/emoji/1f3db.svg b/public/emoji/1f3db.svg
index 501ea5c8b6..85a7984275 100644
--- a/public/emoji/1f3db.svg
+++ b/public/emoji/1f3db.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3dc.png b/public/emoji/1f3dc.png
deleted file mode 100644
index e9966ff8c6..0000000000
Binary files a/public/emoji/1f3dc.png and /dev/null differ
diff --git a/public/emoji/1f3dc.svg b/public/emoji/1f3dc.svg
index f95f15ea75..5dd33f2b98 100644
--- a/public/emoji/1f3dc.svg
+++ b/public/emoji/1f3dc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3dd.png b/public/emoji/1f3dd.png
deleted file mode 100644
index 7fd834389b..0000000000
Binary files a/public/emoji/1f3dd.png and /dev/null differ
diff --git a/public/emoji/1f3dd.svg b/public/emoji/1f3dd.svg
index c9bf170125..ef5d06435e 100644
--- a/public/emoji/1f3dd.svg
+++ b/public/emoji/1f3dd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3de.png b/public/emoji/1f3de.png
deleted file mode 100644
index 63ec701630..0000000000
Binary files a/public/emoji/1f3de.png and /dev/null differ
diff --git a/public/emoji/1f3de.svg b/public/emoji/1f3de.svg
index c3c729a29d..d0d38a8a1e 100644
--- a/public/emoji/1f3de.svg
+++ b/public/emoji/1f3de.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3df.png b/public/emoji/1f3df.png
deleted file mode 100644
index 00cd6db5e2..0000000000
Binary files a/public/emoji/1f3df.png and /dev/null differ
diff --git a/public/emoji/1f3df.svg b/public/emoji/1f3df.svg
index 579a720258..4b9818a8ee 100644
--- a/public/emoji/1f3df.svg
+++ b/public/emoji/1f3df.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3e0.png b/public/emoji/1f3e0.png
deleted file mode 100644
index 01c98a0ba9..0000000000
Binary files a/public/emoji/1f3e0.png and /dev/null differ
diff --git a/public/emoji/1f3e0.svg b/public/emoji/1f3e0.svg
index 5edbccef4d..c6b274a315 100644
--- a/public/emoji/1f3e0.svg
+++ b/public/emoji/1f3e0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3e1.png b/public/emoji/1f3e1.png
deleted file mode 100644
index 0aae41598e..0000000000
Binary files a/public/emoji/1f3e1.png and /dev/null differ
diff --git a/public/emoji/1f3e1.svg b/public/emoji/1f3e1.svg
index 8c1751eefc..b7fb3cc8a3 100644
--- a/public/emoji/1f3e1.svg
+++ b/public/emoji/1f3e1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3e2.png b/public/emoji/1f3e2.png
deleted file mode 100644
index 7eee927d1b..0000000000
Binary files a/public/emoji/1f3e2.png and /dev/null differ
diff --git a/public/emoji/1f3e2.svg b/public/emoji/1f3e2.svg
index 0f38711e03..71a4330611 100644
--- a/public/emoji/1f3e2.svg
+++ b/public/emoji/1f3e2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3e3.png b/public/emoji/1f3e3.png
deleted file mode 100644
index a23848f9aa..0000000000
Binary files a/public/emoji/1f3e3.png and /dev/null differ
diff --git a/public/emoji/1f3e3.svg b/public/emoji/1f3e3.svg
index db2004f55f..697b1bd85f 100644
--- a/public/emoji/1f3e3.svg
+++ b/public/emoji/1f3e3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3e4.png b/public/emoji/1f3e4.png
deleted file mode 100644
index 3745aff8dd..0000000000
Binary files a/public/emoji/1f3e4.png and /dev/null differ
diff --git a/public/emoji/1f3e4.svg b/public/emoji/1f3e4.svg
index 8359ad4f10..62040366aa 100644
--- a/public/emoji/1f3e4.svg
+++ b/public/emoji/1f3e4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3e5.png b/public/emoji/1f3e5.png
deleted file mode 100644
index 1cbce4ae76..0000000000
Binary files a/public/emoji/1f3e5.png and /dev/null differ
diff --git a/public/emoji/1f3e5.svg b/public/emoji/1f3e5.svg
index 448460d267..f115d2de48 100644
--- a/public/emoji/1f3e5.svg
+++ b/public/emoji/1f3e5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3e6.png b/public/emoji/1f3e6.png
deleted file mode 100644
index dffdcef36a..0000000000
Binary files a/public/emoji/1f3e6.png and /dev/null differ
diff --git a/public/emoji/1f3e6.svg b/public/emoji/1f3e6.svg
index dee2c6fa7c..99f5f1ff0f 100644
--- a/public/emoji/1f3e6.svg
+++ b/public/emoji/1f3e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3e7.png b/public/emoji/1f3e7.png
deleted file mode 100644
index 4d935307b9..0000000000
Binary files a/public/emoji/1f3e7.png and /dev/null differ
diff --git a/public/emoji/1f3e7.svg b/public/emoji/1f3e7.svg
index 770f019591..520b821148 100644
--- a/public/emoji/1f3e7.svg
+++ b/public/emoji/1f3e7.svg
@@ -1,3 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3e8.png b/public/emoji/1f3e8.png
deleted file mode 100644
index ea8f4c4979..0000000000
Binary files a/public/emoji/1f3e8.png and /dev/null differ
diff --git a/public/emoji/1f3e8.svg b/public/emoji/1f3e8.svg
index 6aaa759886..667bffaf71 100644
--- a/public/emoji/1f3e8.svg
+++ b/public/emoji/1f3e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3e9.png b/public/emoji/1f3e9.png
deleted file mode 100644
index 5e136be6f8..0000000000
Binary files a/public/emoji/1f3e9.png and /dev/null differ
diff --git a/public/emoji/1f3e9.svg b/public/emoji/1f3e9.svg
index 5842ed57f8..036f2cb6ee 100644
--- a/public/emoji/1f3e9.svg
+++ b/public/emoji/1f3e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ea.png b/public/emoji/1f3ea.png
deleted file mode 100644
index 26b53b5669..0000000000
Binary files a/public/emoji/1f3ea.png and /dev/null differ
diff --git a/public/emoji/1f3ea.svg b/public/emoji/1f3ea.svg
index c423a1ef7e..73b3620281 100644
--- a/public/emoji/1f3ea.svg
+++ b/public/emoji/1f3ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3eb.png b/public/emoji/1f3eb.png
deleted file mode 100644
index 269759534f..0000000000
Binary files a/public/emoji/1f3eb.png and /dev/null differ
diff --git a/public/emoji/1f3eb.svg b/public/emoji/1f3eb.svg
index 67a04c9213..e02359f960 100644
--- a/public/emoji/1f3eb.svg
+++ b/public/emoji/1f3eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ec.png b/public/emoji/1f3ec.png
deleted file mode 100644
index 58867c7a6e..0000000000
Binary files a/public/emoji/1f3ec.png and /dev/null differ
diff --git a/public/emoji/1f3ec.svg b/public/emoji/1f3ec.svg
index d39eedf566..da4dac4488 100644
--- a/public/emoji/1f3ec.svg
+++ b/public/emoji/1f3ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ed.png b/public/emoji/1f3ed.png
deleted file mode 100644
index e1d2ddf4a2..0000000000
Binary files a/public/emoji/1f3ed.png and /dev/null differ
diff --git a/public/emoji/1f3ed.svg b/public/emoji/1f3ed.svg
index 43aaa5a076..2303b92e1e 100644
--- a/public/emoji/1f3ed.svg
+++ b/public/emoji/1f3ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ee.png b/public/emoji/1f3ee.png
deleted file mode 100644
index dfd933f6f3..0000000000
Binary files a/public/emoji/1f3ee.png and /dev/null differ
diff --git a/public/emoji/1f3ee.svg b/public/emoji/1f3ee.svg
index 664a33340e..3fa57346ba 100644
--- a/public/emoji/1f3ee.svg
+++ b/public/emoji/1f3ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ef.png b/public/emoji/1f3ef.png
deleted file mode 100644
index 64b4e33a1a..0000000000
Binary files a/public/emoji/1f3ef.png and /dev/null differ
diff --git a/public/emoji/1f3ef.svg b/public/emoji/1f3ef.svg
index f4ba33581f..19127e6ff4 100644
--- a/public/emoji/1f3ef.svg
+++ b/public/emoji/1f3ef.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3f0.png b/public/emoji/1f3f0.png
deleted file mode 100644
index 888d11332c..0000000000
Binary files a/public/emoji/1f3f0.png and /dev/null differ
diff --git a/public/emoji/1f3f0.svg b/public/emoji/1f3f0.svg
index b0b4b12cc6..a8a08cdc2d 100644
--- a/public/emoji/1f3f0.svg
+++ b/public/emoji/1f3f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3f3-1f308.png b/public/emoji/1f3f3-1f308.png
deleted file mode 100644
index 1bec5f2ffd..0000000000
Binary files a/public/emoji/1f3f3-1f308.png and /dev/null differ
diff --git a/public/emoji/1f3f3-1f308.svg b/public/emoji/1f3f3-1f308.svg
deleted file mode 100644
index e082546b2b..0000000000
--- a/public/emoji/1f3f3-1f308.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f3f3-fe0f-200d-1f308.svg b/public/emoji/1f3f3-fe0f-200d-1f308.svg
new file mode 100644
index 0000000000..f3994d389a
--- /dev/null
+++ b/public/emoji/1f3f3-fe0f-200d-1f308.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3f3.png b/public/emoji/1f3f3.png
deleted file mode 100644
index 86d6e96d5e..0000000000
Binary files a/public/emoji/1f3f3.png and /dev/null differ
diff --git a/public/emoji/1f3f3.svg b/public/emoji/1f3f3.svg
index d1421b827d..2c792674e6 100644
--- a/public/emoji/1f3f3.svg
+++ b/public/emoji/1f3f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3f4-200d-2620-fe0f.svg b/public/emoji/1f3f4-200d-2620-fe0f.svg
new file mode 100644
index 0000000000..4c8a343446
--- /dev/null
+++ b/public/emoji/1f3f4-200d-2620-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.svg b/public/emoji/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.svg
new file mode 100644
index 0000000000..a929886b8b
--- /dev/null
+++ b/public/emoji/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.svg b/public/emoji/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.svg
new file mode 100644
index 0000000000..f732be741f
--- /dev/null
+++ b/public/emoji/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.svg b/public/emoji/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.svg
new file mode 100644
index 0000000000..76ac4e04fb
--- /dev/null
+++ b/public/emoji/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f3f4.png b/public/emoji/1f3f4.png
deleted file mode 100644
index 0e28d05d5a..0000000000
Binary files a/public/emoji/1f3f4.png and /dev/null differ
diff --git a/public/emoji/1f3f4.svg b/public/emoji/1f3f4.svg
index 0e6202dc16..82a6942b3f 100644
--- a/public/emoji/1f3f4.svg
+++ b/public/emoji/1f3f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3f5.png b/public/emoji/1f3f5.png
deleted file mode 100644
index 8030e494bc..0000000000
Binary files a/public/emoji/1f3f5.png and /dev/null differ
diff --git a/public/emoji/1f3f5.svg b/public/emoji/1f3f5.svg
index b6576ae999..624353dea5 100644
--- a/public/emoji/1f3f5.svg
+++ b/public/emoji/1f3f5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3f7.png b/public/emoji/1f3f7.png
deleted file mode 100644
index d41c9b4f1e..0000000000
Binary files a/public/emoji/1f3f7.png and /dev/null differ
diff --git a/public/emoji/1f3f7.svg b/public/emoji/1f3f7.svg
index 372a35f5ef..3851970f97 100644
--- a/public/emoji/1f3f7.svg
+++ b/public/emoji/1f3f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3f8.png b/public/emoji/1f3f8.png
deleted file mode 100644
index 7ba1570899..0000000000
Binary files a/public/emoji/1f3f8.png and /dev/null differ
diff --git a/public/emoji/1f3f8.svg b/public/emoji/1f3f8.svg
index c9e2b401ed..e4ade6338f 100644
--- a/public/emoji/1f3f8.svg
+++ b/public/emoji/1f3f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3f9.png b/public/emoji/1f3f9.png
deleted file mode 100644
index 6a538bf475..0000000000
Binary files a/public/emoji/1f3f9.png and /dev/null differ
diff --git a/public/emoji/1f3f9.svg b/public/emoji/1f3f9.svg
index e73e45cc3a..bc367fc4e5 100644
--- a/public/emoji/1f3f9.svg
+++ b/public/emoji/1f3f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3fa.png b/public/emoji/1f3fa.png
deleted file mode 100644
index 96de505605..0000000000
Binary files a/public/emoji/1f3fa.png and /dev/null differ
diff --git a/public/emoji/1f3fa.svg b/public/emoji/1f3fa.svg
index bf02dbddaf..e2c6cd44f0 100644
--- a/public/emoji/1f3fa.svg
+++ b/public/emoji/1f3fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3fb.png b/public/emoji/1f3fb.png
deleted file mode 100644
index 7c9d7cdc49..0000000000
Binary files a/public/emoji/1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f3fb.svg b/public/emoji/1f3fb.svg
index 95d9113d7e..dd5723819d 100644
--- a/public/emoji/1f3fb.svg
+++ b/public/emoji/1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3fc.png b/public/emoji/1f3fc.png
deleted file mode 100644
index c0fc8338c5..0000000000
Binary files a/public/emoji/1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f3fc.svg b/public/emoji/1f3fc.svg
index 98674ab9a5..6352920954 100644
--- a/public/emoji/1f3fc.svg
+++ b/public/emoji/1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3fd.png b/public/emoji/1f3fd.png
deleted file mode 100644
index 4814822f23..0000000000
Binary files a/public/emoji/1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f3fd.svg b/public/emoji/1f3fd.svg
index 3216c0c48e..efeab639ca 100644
--- a/public/emoji/1f3fd.svg
+++ b/public/emoji/1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3fe.png b/public/emoji/1f3fe.png
deleted file mode 100644
index 60599fa6b7..0000000000
Binary files a/public/emoji/1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f3fe.svg b/public/emoji/1f3fe.svg
index f4e86c3367..ac82ddb055 100644
--- a/public/emoji/1f3fe.svg
+++ b/public/emoji/1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f3ff.png b/public/emoji/1f3ff.png
deleted file mode 100644
index 4c528eaf6d..0000000000
Binary files a/public/emoji/1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f3ff.svg b/public/emoji/1f3ff.svg
index b99182a777..d0683b4279 100644
--- a/public/emoji/1f3ff.svg
+++ b/public/emoji/1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f400.png b/public/emoji/1f400.png
deleted file mode 100644
index 86219144f1..0000000000
Binary files a/public/emoji/1f400.png and /dev/null differ
diff --git a/public/emoji/1f400.svg b/public/emoji/1f400.svg
index 8dcadea17b..b3a80271c3 100644
--- a/public/emoji/1f400.svg
+++ b/public/emoji/1f400.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f401.png b/public/emoji/1f401.png
deleted file mode 100644
index 20fb041f09..0000000000
Binary files a/public/emoji/1f401.png and /dev/null differ
diff --git a/public/emoji/1f401.svg b/public/emoji/1f401.svg
index 944b4a2e58..54852c8f43 100644
--- a/public/emoji/1f401.svg
+++ b/public/emoji/1f401.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f402.png b/public/emoji/1f402.png
deleted file mode 100644
index badf5708f2..0000000000
Binary files a/public/emoji/1f402.png and /dev/null differ
diff --git a/public/emoji/1f402.svg b/public/emoji/1f402.svg
index 491e8d181b..b06f60b19b 100644
--- a/public/emoji/1f402.svg
+++ b/public/emoji/1f402.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f403.png b/public/emoji/1f403.png
deleted file mode 100644
index 80446615ca..0000000000
Binary files a/public/emoji/1f403.png and /dev/null differ
diff --git a/public/emoji/1f403.svg b/public/emoji/1f403.svg
index 96982688c7..cc5483e9f2 100644
--- a/public/emoji/1f403.svg
+++ b/public/emoji/1f403.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f404.png b/public/emoji/1f404.png
deleted file mode 100644
index 4d0ca534ff..0000000000
Binary files a/public/emoji/1f404.png and /dev/null differ
diff --git a/public/emoji/1f404.svg b/public/emoji/1f404.svg
index 1bf1728714..d0dca2b507 100644
--- a/public/emoji/1f404.svg
+++ b/public/emoji/1f404.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f405.png b/public/emoji/1f405.png
deleted file mode 100644
index 871a8b74d5..0000000000
Binary files a/public/emoji/1f405.png and /dev/null differ
diff --git a/public/emoji/1f405.svg b/public/emoji/1f405.svg
index 27db054c5b..383ee31f86 100644
--- a/public/emoji/1f405.svg
+++ b/public/emoji/1f405.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f406.png b/public/emoji/1f406.png
deleted file mode 100644
index 8aac3d4944..0000000000
Binary files a/public/emoji/1f406.png and /dev/null differ
diff --git a/public/emoji/1f406.svg b/public/emoji/1f406.svg
index 7093fe41ff..59a2e0585a 100644
--- a/public/emoji/1f406.svg
+++ b/public/emoji/1f406.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f407.png b/public/emoji/1f407.png
deleted file mode 100644
index 2c8a29c642..0000000000
Binary files a/public/emoji/1f407.png and /dev/null differ
diff --git a/public/emoji/1f407.svg b/public/emoji/1f407.svg
index f673e966de..54f4d69654 100644
--- a/public/emoji/1f407.svg
+++ b/public/emoji/1f407.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f408.png b/public/emoji/1f408.png
deleted file mode 100644
index 46abe8cbc1..0000000000
Binary files a/public/emoji/1f408.png and /dev/null differ
diff --git a/public/emoji/1f408.svg b/public/emoji/1f408.svg
index 4eadb2c416..68fe8f2a16 100644
--- a/public/emoji/1f408.svg
+++ b/public/emoji/1f408.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f409.png b/public/emoji/1f409.png
deleted file mode 100644
index d6311cf542..0000000000
Binary files a/public/emoji/1f409.png and /dev/null differ
diff --git a/public/emoji/1f409.svg b/public/emoji/1f409.svg
index aaf9cd252c..ab05374fb5 100644
--- a/public/emoji/1f409.svg
+++ b/public/emoji/1f409.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f40a.png b/public/emoji/1f40a.png
deleted file mode 100644
index 3005c46f17..0000000000
Binary files a/public/emoji/1f40a.png and /dev/null differ
diff --git a/public/emoji/1f40a.svg b/public/emoji/1f40a.svg
index d5dd7c6abc..1d3f3be012 100644
--- a/public/emoji/1f40a.svg
+++ b/public/emoji/1f40a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f40b.png b/public/emoji/1f40b.png
deleted file mode 100644
index 0df9d3c73a..0000000000
Binary files a/public/emoji/1f40b.png and /dev/null differ
diff --git a/public/emoji/1f40b.svg b/public/emoji/1f40b.svg
index 31bb7393f6..b6d3c6032f 100644
--- a/public/emoji/1f40b.svg
+++ b/public/emoji/1f40b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f40c.png b/public/emoji/1f40c.png
deleted file mode 100644
index f4ea071e2d..0000000000
Binary files a/public/emoji/1f40c.png and /dev/null differ
diff --git a/public/emoji/1f40c.svg b/public/emoji/1f40c.svg
index b4204fae0a..75393adf4c 100644
--- a/public/emoji/1f40c.svg
+++ b/public/emoji/1f40c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f40d.png b/public/emoji/1f40d.png
deleted file mode 100644
index d0278a28d8..0000000000
Binary files a/public/emoji/1f40d.png and /dev/null differ
diff --git a/public/emoji/1f40d.svg b/public/emoji/1f40d.svg
index 6ad56b8d9b..7e2fc51c23 100644
--- a/public/emoji/1f40d.svg
+++ b/public/emoji/1f40d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f40e.png b/public/emoji/1f40e.png
deleted file mode 100644
index b3e73cc890..0000000000
Binary files a/public/emoji/1f40e.png and /dev/null differ
diff --git a/public/emoji/1f40e.svg b/public/emoji/1f40e.svg
index b7ba4df3fb..ac2eab05a2 100644
--- a/public/emoji/1f40e.svg
+++ b/public/emoji/1f40e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f40f.png b/public/emoji/1f40f.png
deleted file mode 100644
index 52a44464c9..0000000000
Binary files a/public/emoji/1f40f.png and /dev/null differ
diff --git a/public/emoji/1f40f.svg b/public/emoji/1f40f.svg
index 2cf3e57155..5905609098 100644
--- a/public/emoji/1f40f.svg
+++ b/public/emoji/1f40f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f410.png b/public/emoji/1f410.png
deleted file mode 100644
index f9d9e38a12..0000000000
Binary files a/public/emoji/1f410.png and /dev/null differ
diff --git a/public/emoji/1f410.svg b/public/emoji/1f410.svg
index 445e63f8c9..056f6ba061 100644
--- a/public/emoji/1f410.svg
+++ b/public/emoji/1f410.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f411.png b/public/emoji/1f411.png
deleted file mode 100644
index 102b8a52b2..0000000000
Binary files a/public/emoji/1f411.png and /dev/null differ
diff --git a/public/emoji/1f411.svg b/public/emoji/1f411.svg
index 19d8b9e770..58cf59a30a 100644
--- a/public/emoji/1f411.svg
+++ b/public/emoji/1f411.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f412.png b/public/emoji/1f412.png
deleted file mode 100644
index 9fae29448e..0000000000
Binary files a/public/emoji/1f412.png and /dev/null differ
diff --git a/public/emoji/1f412.svg b/public/emoji/1f412.svg
index 713e48da89..f6335f3678 100644
--- a/public/emoji/1f412.svg
+++ b/public/emoji/1f412.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f413.png b/public/emoji/1f413.png
deleted file mode 100644
index bbf2bbff97..0000000000
Binary files a/public/emoji/1f413.png and /dev/null differ
diff --git a/public/emoji/1f413.svg b/public/emoji/1f413.svg
index 349de85521..b952ce5be5 100644
--- a/public/emoji/1f413.svg
+++ b/public/emoji/1f413.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f414.png b/public/emoji/1f414.png
deleted file mode 100644
index 9a6992e55b..0000000000
Binary files a/public/emoji/1f414.png and /dev/null differ
diff --git a/public/emoji/1f414.svg b/public/emoji/1f414.svg
index 34dfab5779..1fd1333457 100644
--- a/public/emoji/1f414.svg
+++ b/public/emoji/1f414.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f415.png b/public/emoji/1f415.png
deleted file mode 100644
index 976143dbdb..0000000000
Binary files a/public/emoji/1f415.png and /dev/null differ
diff --git a/public/emoji/1f415.svg b/public/emoji/1f415.svg
index 7fded5c112..3626f8a363 100644
--- a/public/emoji/1f415.svg
+++ b/public/emoji/1f415.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f416.png b/public/emoji/1f416.png
deleted file mode 100644
index 5f31c1a2d7..0000000000
Binary files a/public/emoji/1f416.png and /dev/null differ
diff --git a/public/emoji/1f416.svg b/public/emoji/1f416.svg
index a3f0422a51..d6fbe7c172 100644
--- a/public/emoji/1f416.svg
+++ b/public/emoji/1f416.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f417.png b/public/emoji/1f417.png
deleted file mode 100644
index fead972633..0000000000
Binary files a/public/emoji/1f417.png and /dev/null differ
diff --git a/public/emoji/1f417.svg b/public/emoji/1f417.svg
index d134de16ac..39715ce4eb 100644
--- a/public/emoji/1f417.svg
+++ b/public/emoji/1f417.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f418.png b/public/emoji/1f418.png
deleted file mode 100644
index b8a6d14059..0000000000
Binary files a/public/emoji/1f418.png and /dev/null differ
diff --git a/public/emoji/1f418.svg b/public/emoji/1f418.svg
index 80479aa3d7..595a808053 100644
--- a/public/emoji/1f418.svg
+++ b/public/emoji/1f418.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f419.png b/public/emoji/1f419.png
deleted file mode 100644
index 72c84074aa..0000000000
Binary files a/public/emoji/1f419.png and /dev/null differ
diff --git a/public/emoji/1f419.svg b/public/emoji/1f419.svg
index fa59238e2e..0f00d078e3 100644
--- a/public/emoji/1f419.svg
+++ b/public/emoji/1f419.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f41a.png b/public/emoji/1f41a.png
deleted file mode 100644
index 55721629f6..0000000000
Binary files a/public/emoji/1f41a.png and /dev/null differ
diff --git a/public/emoji/1f41a.svg b/public/emoji/1f41a.svg
index fb691d49bf..e4aef0416e 100644
--- a/public/emoji/1f41a.svg
+++ b/public/emoji/1f41a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f41b.png b/public/emoji/1f41b.png
deleted file mode 100644
index e64e72f259..0000000000
Binary files a/public/emoji/1f41b.png and /dev/null differ
diff --git a/public/emoji/1f41b.svg b/public/emoji/1f41b.svg
index 64bcedb14d..ddc70682e6 100644
--- a/public/emoji/1f41b.svg
+++ b/public/emoji/1f41b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f41c.png b/public/emoji/1f41c.png
deleted file mode 100644
index 994127ed6b..0000000000
Binary files a/public/emoji/1f41c.png and /dev/null differ
diff --git a/public/emoji/1f41c.svg b/public/emoji/1f41c.svg
index 2f90d0615a..8d8d18afd4 100644
--- a/public/emoji/1f41c.svg
+++ b/public/emoji/1f41c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f41d.png b/public/emoji/1f41d.png
deleted file mode 100644
index 4615606009..0000000000
Binary files a/public/emoji/1f41d.png and /dev/null differ
diff --git a/public/emoji/1f41d.svg b/public/emoji/1f41d.svg
index eb1819b075..956227a51f 100644
--- a/public/emoji/1f41d.svg
+++ b/public/emoji/1f41d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f41e.png b/public/emoji/1f41e.png
deleted file mode 100644
index 3d93174d7f..0000000000
Binary files a/public/emoji/1f41e.png and /dev/null differ
diff --git a/public/emoji/1f41e.svg b/public/emoji/1f41e.svg
index 0cbee7332c..179f097ddf 100644
--- a/public/emoji/1f41e.svg
+++ b/public/emoji/1f41e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f41f.png b/public/emoji/1f41f.png
deleted file mode 100644
index c2d2faaacd..0000000000
Binary files a/public/emoji/1f41f.png and /dev/null differ
diff --git a/public/emoji/1f41f.svg b/public/emoji/1f41f.svg
index d4ddc1a59f..4ad0515626 100644
--- a/public/emoji/1f41f.svg
+++ b/public/emoji/1f41f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f420.png b/public/emoji/1f420.png
deleted file mode 100644
index 252105235a..0000000000
Binary files a/public/emoji/1f420.png and /dev/null differ
diff --git a/public/emoji/1f420.svg b/public/emoji/1f420.svg
index 339bfce51c..0dc45ffe75 100644
--- a/public/emoji/1f420.svg
+++ b/public/emoji/1f420.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f421.png b/public/emoji/1f421.png
deleted file mode 100644
index a10f4f84e3..0000000000
Binary files a/public/emoji/1f421.png and /dev/null differ
diff --git a/public/emoji/1f421.svg b/public/emoji/1f421.svg
index 51e96024a1..1c24b12d02 100644
--- a/public/emoji/1f421.svg
+++ b/public/emoji/1f421.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f422.png b/public/emoji/1f422.png
deleted file mode 100644
index c22f7519fe..0000000000
Binary files a/public/emoji/1f422.png and /dev/null differ
diff --git a/public/emoji/1f422.svg b/public/emoji/1f422.svg
index 48be9dc54f..4ad52f2ee2 100644
--- a/public/emoji/1f422.svg
+++ b/public/emoji/1f422.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f423.png b/public/emoji/1f423.png
deleted file mode 100644
index c5b0e8f3bc..0000000000
Binary files a/public/emoji/1f423.png and /dev/null differ
diff --git a/public/emoji/1f423.svg b/public/emoji/1f423.svg
index 7d8abff5fd..b3635cdd0a 100644
--- a/public/emoji/1f423.svg
+++ b/public/emoji/1f423.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f424.png b/public/emoji/1f424.png
deleted file mode 100644
index dccd96576e..0000000000
Binary files a/public/emoji/1f424.png and /dev/null differ
diff --git a/public/emoji/1f424.svg b/public/emoji/1f424.svg
index f9269d1487..9766792867 100644
--- a/public/emoji/1f424.svg
+++ b/public/emoji/1f424.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f425.png b/public/emoji/1f425.png
deleted file mode 100644
index 31dfb511e0..0000000000
Binary files a/public/emoji/1f425.png and /dev/null differ
diff --git a/public/emoji/1f425.svg b/public/emoji/1f425.svg
index fabfbf927c..24dbec2aa5 100644
--- a/public/emoji/1f425.svg
+++ b/public/emoji/1f425.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f426.png b/public/emoji/1f426.png
deleted file mode 100644
index e201c22be3..0000000000
Binary files a/public/emoji/1f426.png and /dev/null differ
diff --git a/public/emoji/1f426.svg b/public/emoji/1f426.svg
index 225d767777..2760fec59f 100644
--- a/public/emoji/1f426.svg
+++ b/public/emoji/1f426.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f427.png b/public/emoji/1f427.png
deleted file mode 100644
index c0064fb973..0000000000
Binary files a/public/emoji/1f427.png and /dev/null differ
diff --git a/public/emoji/1f427.svg b/public/emoji/1f427.svg
index ce85cadf29..b83882c127 100644
--- a/public/emoji/1f427.svg
+++ b/public/emoji/1f427.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f428.png b/public/emoji/1f428.png
deleted file mode 100644
index a0aa437a98..0000000000
Binary files a/public/emoji/1f428.png and /dev/null differ
diff --git a/public/emoji/1f428.svg b/public/emoji/1f428.svg
index 88832b7022..9a54a0d287 100644
--- a/public/emoji/1f428.svg
+++ b/public/emoji/1f428.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f429.png b/public/emoji/1f429.png
deleted file mode 100644
index 8ec39e396a..0000000000
Binary files a/public/emoji/1f429.png and /dev/null differ
diff --git a/public/emoji/1f429.svg b/public/emoji/1f429.svg
index 7b56afe0d7..33c5b7ec09 100644
--- a/public/emoji/1f429.svg
+++ b/public/emoji/1f429.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f42a.png b/public/emoji/1f42a.png
deleted file mode 100644
index 5271637c7c..0000000000
Binary files a/public/emoji/1f42a.png and /dev/null differ
diff --git a/public/emoji/1f42a.svg b/public/emoji/1f42a.svg
index 63e30c13ae..e7f97340d5 100644
--- a/public/emoji/1f42a.svg
+++ b/public/emoji/1f42a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f42b.png b/public/emoji/1f42b.png
deleted file mode 100644
index b421d07a80..0000000000
Binary files a/public/emoji/1f42b.png and /dev/null differ
diff --git a/public/emoji/1f42b.svg b/public/emoji/1f42b.svg
index fbd4b0e1b1..a6b76e272f 100644
--- a/public/emoji/1f42b.svg
+++ b/public/emoji/1f42b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f42c.png b/public/emoji/1f42c.png
deleted file mode 100644
index 8143480900..0000000000
Binary files a/public/emoji/1f42c.png and /dev/null differ
diff --git a/public/emoji/1f42c.svg b/public/emoji/1f42c.svg
index abd84802ea..dc57e89abb 100644
--- a/public/emoji/1f42c.svg
+++ b/public/emoji/1f42c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f42d.png b/public/emoji/1f42d.png
deleted file mode 100644
index 50afcd3262..0000000000
Binary files a/public/emoji/1f42d.png and /dev/null differ
diff --git a/public/emoji/1f42d.svg b/public/emoji/1f42d.svg
index 0b215006dd..60fec435e9 100644
--- a/public/emoji/1f42d.svg
+++ b/public/emoji/1f42d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f42e.png b/public/emoji/1f42e.png
deleted file mode 100644
index 718a3986d6..0000000000
Binary files a/public/emoji/1f42e.png and /dev/null differ
diff --git a/public/emoji/1f42e.svg b/public/emoji/1f42e.svg
index f6d7c9a04b..a3d5d0305e 100644
--- a/public/emoji/1f42e.svg
+++ b/public/emoji/1f42e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f42f.png b/public/emoji/1f42f.png
deleted file mode 100644
index a4d3ef086d..0000000000
Binary files a/public/emoji/1f42f.png and /dev/null differ
diff --git a/public/emoji/1f42f.svg b/public/emoji/1f42f.svg
index 834981944b..934ec15ece 100644
--- a/public/emoji/1f42f.svg
+++ b/public/emoji/1f42f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f430.png b/public/emoji/1f430.png
deleted file mode 100644
index ea75ab0426..0000000000
Binary files a/public/emoji/1f430.png and /dev/null differ
diff --git a/public/emoji/1f430.svg b/public/emoji/1f430.svg
index ec8d17c081..4d80f7cb52 100644
--- a/public/emoji/1f430.svg
+++ b/public/emoji/1f430.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f431.png b/public/emoji/1f431.png
deleted file mode 100644
index efd82c2abf..0000000000
Binary files a/public/emoji/1f431.png and /dev/null differ
diff --git a/public/emoji/1f431.svg b/public/emoji/1f431.svg
index bacd52c388..7576d6bf34 100644
--- a/public/emoji/1f431.svg
+++ b/public/emoji/1f431.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f432.png b/public/emoji/1f432.png
deleted file mode 100644
index 3c2720446c..0000000000
Binary files a/public/emoji/1f432.png and /dev/null differ
diff --git a/public/emoji/1f432.svg b/public/emoji/1f432.svg
index b4b3669092..4f099dc736 100644
--- a/public/emoji/1f432.svg
+++ b/public/emoji/1f432.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f433.png b/public/emoji/1f433.png
deleted file mode 100644
index 9f19b44257..0000000000
Binary files a/public/emoji/1f433.png and /dev/null differ
diff --git a/public/emoji/1f433.svg b/public/emoji/1f433.svg
index dc6f7f1ecb..6085b47936 100644
--- a/public/emoji/1f433.svg
+++ b/public/emoji/1f433.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f434.png b/public/emoji/1f434.png
deleted file mode 100644
index 7cb1172f4e..0000000000
Binary files a/public/emoji/1f434.png and /dev/null differ
diff --git a/public/emoji/1f434.svg b/public/emoji/1f434.svg
index 5935149308..ae01857998 100644
--- a/public/emoji/1f434.svg
+++ b/public/emoji/1f434.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f435.png b/public/emoji/1f435.png
deleted file mode 100644
index 7cab9b91a8..0000000000
Binary files a/public/emoji/1f435.png and /dev/null differ
diff --git a/public/emoji/1f435.svg b/public/emoji/1f435.svg
index 5e796ada85..671de74ec7 100644
--- a/public/emoji/1f435.svg
+++ b/public/emoji/1f435.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f436.png b/public/emoji/1f436.png
deleted file mode 100644
index 281b81d58b..0000000000
Binary files a/public/emoji/1f436.png and /dev/null differ
diff --git a/public/emoji/1f436.svg b/public/emoji/1f436.svg
index b6af6c613f..d30951d4e3 100644
--- a/public/emoji/1f436.svg
+++ b/public/emoji/1f436.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f437.png b/public/emoji/1f437.png
deleted file mode 100644
index afe05ca167..0000000000
Binary files a/public/emoji/1f437.png and /dev/null differ
diff --git a/public/emoji/1f437.svg b/public/emoji/1f437.svg
index 30d534b087..41fe6ff8a9 100644
--- a/public/emoji/1f437.svg
+++ b/public/emoji/1f437.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f438.png b/public/emoji/1f438.png
deleted file mode 100644
index 8825d1ad57..0000000000
Binary files a/public/emoji/1f438.png and /dev/null differ
diff --git a/public/emoji/1f438.svg b/public/emoji/1f438.svg
index a45c14aaa6..4b2e5bbb8c 100644
--- a/public/emoji/1f438.svg
+++ b/public/emoji/1f438.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f439.png b/public/emoji/1f439.png
deleted file mode 100644
index 9a04388e4e..0000000000
Binary files a/public/emoji/1f439.png and /dev/null differ
diff --git a/public/emoji/1f439.svg b/public/emoji/1f439.svg
index 4027ed9b5b..a61817e293 100644
--- a/public/emoji/1f439.svg
+++ b/public/emoji/1f439.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f43a.png b/public/emoji/1f43a.png
deleted file mode 100644
index ba7220f2de..0000000000
Binary files a/public/emoji/1f43a.png and /dev/null differ
diff --git a/public/emoji/1f43a.svg b/public/emoji/1f43a.svg
index 7b2fd57512..5287eeea75 100644
--- a/public/emoji/1f43a.svg
+++ b/public/emoji/1f43a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f43b.png b/public/emoji/1f43b.png
deleted file mode 100644
index 272d56bbbc..0000000000
Binary files a/public/emoji/1f43b.png and /dev/null differ
diff --git a/public/emoji/1f43b.svg b/public/emoji/1f43b.svg
index 681e20a575..5b3c33d01d 100644
--- a/public/emoji/1f43b.svg
+++ b/public/emoji/1f43b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f43c.png b/public/emoji/1f43c.png
deleted file mode 100644
index 978382775c..0000000000
Binary files a/public/emoji/1f43c.png and /dev/null differ
diff --git a/public/emoji/1f43c.svg b/public/emoji/1f43c.svg
index 247aacc06c..f8964d903b 100644
--- a/public/emoji/1f43c.svg
+++ b/public/emoji/1f43c.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f43d.png b/public/emoji/1f43d.png
deleted file mode 100644
index 3610ae4a91..0000000000
Binary files a/public/emoji/1f43d.png and /dev/null differ
diff --git a/public/emoji/1f43d.svg b/public/emoji/1f43d.svg
index 6014a8b708..57642b28ae 100644
--- a/public/emoji/1f43d.svg
+++ b/public/emoji/1f43d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f43e.png b/public/emoji/1f43e.png
deleted file mode 100644
index 5fe568cee9..0000000000
Binary files a/public/emoji/1f43e.png and /dev/null differ
diff --git a/public/emoji/1f43e.svg b/public/emoji/1f43e.svg
index c6b2b83af7..846abe58e0 100644
--- a/public/emoji/1f43e.svg
+++ b/public/emoji/1f43e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f43f.png b/public/emoji/1f43f.png
deleted file mode 100644
index 2aac560cb2..0000000000
Binary files a/public/emoji/1f43f.png and /dev/null differ
diff --git a/public/emoji/1f43f.svg b/public/emoji/1f43f.svg
index 243ee89441..1363021ee5 100644
--- a/public/emoji/1f43f.svg
+++ b/public/emoji/1f43f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f440.png b/public/emoji/1f440.png
deleted file mode 100644
index 2102ada7e0..0000000000
Binary files a/public/emoji/1f440.png and /dev/null differ
diff --git a/public/emoji/1f440.svg b/public/emoji/1f440.svg
index 8caf9aafe4..b4f59a98b5 100644
--- a/public/emoji/1f440.svg
+++ b/public/emoji/1f440.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f441-1f5e8.png b/public/emoji/1f441-1f5e8.png
deleted file mode 100644
index 21bd22bbcc..0000000000
Binary files a/public/emoji/1f441-1f5e8.png and /dev/null differ
diff --git a/public/emoji/1f441-1f5e8.svg b/public/emoji/1f441-1f5e8.svg
deleted file mode 100644
index facc5a21ae..0000000000
--- a/public/emoji/1f441-1f5e8.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f441-200d-1f5e8.svg b/public/emoji/1f441-200d-1f5e8.svg
new file mode 100644
index 0000000000..fd23adad74
--- /dev/null
+++ b/public/emoji/1f441-200d-1f5e8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f441.png b/public/emoji/1f441.png
deleted file mode 100644
index 9d989cdd37..0000000000
Binary files a/public/emoji/1f441.png and /dev/null differ
diff --git a/public/emoji/1f441.svg b/public/emoji/1f441.svg
index 3ce3327d16..ae4257faac 100644
--- a/public/emoji/1f441.svg
+++ b/public/emoji/1f441.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f442-1f3fb.png b/public/emoji/1f442-1f3fb.png
deleted file mode 100644
index d09e1e4199..0000000000
Binary files a/public/emoji/1f442-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f442-1f3fb.svg b/public/emoji/1f442-1f3fb.svg
index e203744eaf..fcbaf73536 100644
--- a/public/emoji/1f442-1f3fb.svg
+++ b/public/emoji/1f442-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f442-1f3fc.png b/public/emoji/1f442-1f3fc.png
deleted file mode 100644
index 300d60a994..0000000000
Binary files a/public/emoji/1f442-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f442-1f3fc.svg b/public/emoji/1f442-1f3fc.svg
index e9b24783b9..103d6aca1a 100644
--- a/public/emoji/1f442-1f3fc.svg
+++ b/public/emoji/1f442-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f442-1f3fd.png b/public/emoji/1f442-1f3fd.png
deleted file mode 100644
index 2a56eebe44..0000000000
Binary files a/public/emoji/1f442-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f442-1f3fd.svg b/public/emoji/1f442-1f3fd.svg
index 717877f319..50708efd1d 100644
--- a/public/emoji/1f442-1f3fd.svg
+++ b/public/emoji/1f442-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f442-1f3fe.png b/public/emoji/1f442-1f3fe.png
deleted file mode 100644
index bd270f7763..0000000000
Binary files a/public/emoji/1f442-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f442-1f3fe.svg b/public/emoji/1f442-1f3fe.svg
index aaf77d80b3..1099e81510 100644
--- a/public/emoji/1f442-1f3fe.svg
+++ b/public/emoji/1f442-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f442-1f3ff.png b/public/emoji/1f442-1f3ff.png
deleted file mode 100644
index b96bb441df..0000000000
Binary files a/public/emoji/1f442-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f442-1f3ff.svg b/public/emoji/1f442-1f3ff.svg
index c8f653bba9..7e451d62b9 100644
--- a/public/emoji/1f442-1f3ff.svg
+++ b/public/emoji/1f442-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f442.png b/public/emoji/1f442.png
deleted file mode 100644
index f84f9ff154..0000000000
Binary files a/public/emoji/1f442.png and /dev/null differ
diff --git a/public/emoji/1f442.svg b/public/emoji/1f442.svg
index 3063df796c..6af51d61dc 100644
--- a/public/emoji/1f442.svg
+++ b/public/emoji/1f442.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f443-1f3fb.png b/public/emoji/1f443-1f3fb.png
deleted file mode 100644
index 8008d17506..0000000000
Binary files a/public/emoji/1f443-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f443-1f3fb.svg b/public/emoji/1f443-1f3fb.svg
index db943dbf4f..22d8710ab5 100644
--- a/public/emoji/1f443-1f3fb.svg
+++ b/public/emoji/1f443-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f443-1f3fc.png b/public/emoji/1f443-1f3fc.png
deleted file mode 100644
index ac17f26e82..0000000000
Binary files a/public/emoji/1f443-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f443-1f3fc.svg b/public/emoji/1f443-1f3fc.svg
index e909c446df..dc165861c2 100644
--- a/public/emoji/1f443-1f3fc.svg
+++ b/public/emoji/1f443-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f443-1f3fd.png b/public/emoji/1f443-1f3fd.png
deleted file mode 100644
index d8b6cbe0f8..0000000000
Binary files a/public/emoji/1f443-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f443-1f3fd.svg b/public/emoji/1f443-1f3fd.svg
index 61fe537698..1fb7a658b5 100644
--- a/public/emoji/1f443-1f3fd.svg
+++ b/public/emoji/1f443-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f443-1f3fe.png b/public/emoji/1f443-1f3fe.png
deleted file mode 100644
index 004b2631e2..0000000000
Binary files a/public/emoji/1f443-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f443-1f3fe.svg b/public/emoji/1f443-1f3fe.svg
index 4b9d466163..38bb79d05b 100644
--- a/public/emoji/1f443-1f3fe.svg
+++ b/public/emoji/1f443-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f443-1f3ff.png b/public/emoji/1f443-1f3ff.png
deleted file mode 100644
index 7b33821f6c..0000000000
Binary files a/public/emoji/1f443-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f443-1f3ff.svg b/public/emoji/1f443-1f3ff.svg
index a1daed04fd..c3d6381118 100644
--- a/public/emoji/1f443-1f3ff.svg
+++ b/public/emoji/1f443-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f443.png b/public/emoji/1f443.png
deleted file mode 100644
index 2f04ac5f98..0000000000
Binary files a/public/emoji/1f443.png and /dev/null differ
diff --git a/public/emoji/1f443.svg b/public/emoji/1f443.svg
index 6f1613804e..6aa7857d49 100644
--- a/public/emoji/1f443.svg
+++ b/public/emoji/1f443.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f444.png b/public/emoji/1f444.png
deleted file mode 100644
index 35f3cc2006..0000000000
Binary files a/public/emoji/1f444.png and /dev/null differ
diff --git a/public/emoji/1f444.svg b/public/emoji/1f444.svg
index 1bdb5440fa..0d8e7cf6fd 100644
--- a/public/emoji/1f444.svg
+++ b/public/emoji/1f444.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f445.png b/public/emoji/1f445.png
deleted file mode 100644
index 70ce9c1225..0000000000
Binary files a/public/emoji/1f445.png and /dev/null differ
diff --git a/public/emoji/1f445.svg b/public/emoji/1f445.svg
index 8a5af77fa8..86d4ea2007 100644
--- a/public/emoji/1f445.svg
+++ b/public/emoji/1f445.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f446-1f3fb.png b/public/emoji/1f446-1f3fb.png
deleted file mode 100644
index a12a7e7843..0000000000
Binary files a/public/emoji/1f446-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f446-1f3fb.svg b/public/emoji/1f446-1f3fb.svg
index 0b774dd4dd..d3797818f2 100644
--- a/public/emoji/1f446-1f3fb.svg
+++ b/public/emoji/1f446-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f446-1f3fc.png b/public/emoji/1f446-1f3fc.png
deleted file mode 100644
index cdff40ceab..0000000000
Binary files a/public/emoji/1f446-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f446-1f3fc.svg b/public/emoji/1f446-1f3fc.svg
index 8931e2428a..478b8d0974 100644
--- a/public/emoji/1f446-1f3fc.svg
+++ b/public/emoji/1f446-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f446-1f3fd.png b/public/emoji/1f446-1f3fd.png
deleted file mode 100644
index a07ce9e5ae..0000000000
Binary files a/public/emoji/1f446-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f446-1f3fd.svg b/public/emoji/1f446-1f3fd.svg
index 1bf90d5203..f3f5c4d62d 100644
--- a/public/emoji/1f446-1f3fd.svg
+++ b/public/emoji/1f446-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f446-1f3fe.png b/public/emoji/1f446-1f3fe.png
deleted file mode 100644
index 4f86c88ba4..0000000000
Binary files a/public/emoji/1f446-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f446-1f3fe.svg b/public/emoji/1f446-1f3fe.svg
index cfeb3e0a5d..75943fadf3 100644
--- a/public/emoji/1f446-1f3fe.svg
+++ b/public/emoji/1f446-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f446-1f3ff.png b/public/emoji/1f446-1f3ff.png
deleted file mode 100644
index ed1b26c35d..0000000000
Binary files a/public/emoji/1f446-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f446-1f3ff.svg b/public/emoji/1f446-1f3ff.svg
index 845edc3301..21289fae2d 100644
--- a/public/emoji/1f446-1f3ff.svg
+++ b/public/emoji/1f446-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f446.png b/public/emoji/1f446.png
deleted file mode 100644
index bc496dfeae..0000000000
Binary files a/public/emoji/1f446.png and /dev/null differ
diff --git a/public/emoji/1f446.svg b/public/emoji/1f446.svg
index fc4d2b1fd4..73464961d9 100644
--- a/public/emoji/1f446.svg
+++ b/public/emoji/1f446.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f447-1f3fb.png b/public/emoji/1f447-1f3fb.png
deleted file mode 100644
index 140f157d8c..0000000000
Binary files a/public/emoji/1f447-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f447-1f3fb.svg b/public/emoji/1f447-1f3fb.svg
index b6d347e66c..942fadfdb5 100644
--- a/public/emoji/1f447-1f3fb.svg
+++ b/public/emoji/1f447-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f447-1f3fc.png b/public/emoji/1f447-1f3fc.png
deleted file mode 100644
index d518544f7f..0000000000
Binary files a/public/emoji/1f447-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f447-1f3fc.svg b/public/emoji/1f447-1f3fc.svg
index cd98682fb5..891ba70886 100644
--- a/public/emoji/1f447-1f3fc.svg
+++ b/public/emoji/1f447-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f447-1f3fd.png b/public/emoji/1f447-1f3fd.png
deleted file mode 100644
index 018b688b8b..0000000000
Binary files a/public/emoji/1f447-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f447-1f3fd.svg b/public/emoji/1f447-1f3fd.svg
index a63fe57414..e363bcc3c6 100644
--- a/public/emoji/1f447-1f3fd.svg
+++ b/public/emoji/1f447-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f447-1f3fe.png b/public/emoji/1f447-1f3fe.png
deleted file mode 100644
index 98845bf6f7..0000000000
Binary files a/public/emoji/1f447-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f447-1f3fe.svg b/public/emoji/1f447-1f3fe.svg
index cdb5c4a813..a61d203139 100644
--- a/public/emoji/1f447-1f3fe.svg
+++ b/public/emoji/1f447-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f447-1f3ff.png b/public/emoji/1f447-1f3ff.png
deleted file mode 100644
index 9a9b039a9f..0000000000
Binary files a/public/emoji/1f447-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f447-1f3ff.svg b/public/emoji/1f447-1f3ff.svg
index 62fa984100..aca3691d91 100644
--- a/public/emoji/1f447-1f3ff.svg
+++ b/public/emoji/1f447-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f447.png b/public/emoji/1f447.png
deleted file mode 100644
index 00d3d13ab5..0000000000
Binary files a/public/emoji/1f447.png and /dev/null differ
diff --git a/public/emoji/1f447.svg b/public/emoji/1f447.svg
index 25b2490a24..9c0e528533 100644
--- a/public/emoji/1f447.svg
+++ b/public/emoji/1f447.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f448-1f3fb.png b/public/emoji/1f448-1f3fb.png
deleted file mode 100644
index 88e2c30607..0000000000
Binary files a/public/emoji/1f448-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f448-1f3fb.svg b/public/emoji/1f448-1f3fb.svg
index 16ef6409e5..f3b7f99d30 100644
--- a/public/emoji/1f448-1f3fb.svg
+++ b/public/emoji/1f448-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f448-1f3fc.png b/public/emoji/1f448-1f3fc.png
deleted file mode 100644
index d3c89d87c5..0000000000
Binary files a/public/emoji/1f448-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f448-1f3fc.svg b/public/emoji/1f448-1f3fc.svg
index e37282ab88..cd2a2d02bd 100644
--- a/public/emoji/1f448-1f3fc.svg
+++ b/public/emoji/1f448-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f448-1f3fd.png b/public/emoji/1f448-1f3fd.png
deleted file mode 100644
index b23b916735..0000000000
Binary files a/public/emoji/1f448-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f448-1f3fd.svg b/public/emoji/1f448-1f3fd.svg
index 09d730d4fe..b00149aafd 100644
--- a/public/emoji/1f448-1f3fd.svg
+++ b/public/emoji/1f448-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f448-1f3fe.png b/public/emoji/1f448-1f3fe.png
deleted file mode 100644
index 3093f325c2..0000000000
Binary files a/public/emoji/1f448-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f448-1f3fe.svg b/public/emoji/1f448-1f3fe.svg
index 07f16f2e93..970dcb2ce1 100644
--- a/public/emoji/1f448-1f3fe.svg
+++ b/public/emoji/1f448-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f448-1f3ff.png b/public/emoji/1f448-1f3ff.png
deleted file mode 100644
index 2b4cbfa120..0000000000
Binary files a/public/emoji/1f448-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f448-1f3ff.svg b/public/emoji/1f448-1f3ff.svg
index a382bfd7b0..0c4851b8de 100644
--- a/public/emoji/1f448-1f3ff.svg
+++ b/public/emoji/1f448-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f448.png b/public/emoji/1f448.png
deleted file mode 100644
index 599fa2e3cf..0000000000
Binary files a/public/emoji/1f448.png and /dev/null differ
diff --git a/public/emoji/1f448.svg b/public/emoji/1f448.svg
index 63e25672e3..800ff09aa3 100644
--- a/public/emoji/1f448.svg
+++ b/public/emoji/1f448.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f449-1f3fb.png b/public/emoji/1f449-1f3fb.png
deleted file mode 100644
index 4a28c6bbc8..0000000000
Binary files a/public/emoji/1f449-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f449-1f3fb.svg b/public/emoji/1f449-1f3fb.svg
index 150e78be99..c810f2a897 100644
--- a/public/emoji/1f449-1f3fb.svg
+++ b/public/emoji/1f449-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f449-1f3fc.png b/public/emoji/1f449-1f3fc.png
deleted file mode 100644
index 7cb1323173..0000000000
Binary files a/public/emoji/1f449-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f449-1f3fc.svg b/public/emoji/1f449-1f3fc.svg
index d30c03fe17..049a07e345 100644
--- a/public/emoji/1f449-1f3fc.svg
+++ b/public/emoji/1f449-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f449-1f3fd.png b/public/emoji/1f449-1f3fd.png
deleted file mode 100644
index 5514807d71..0000000000
Binary files a/public/emoji/1f449-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f449-1f3fd.svg b/public/emoji/1f449-1f3fd.svg
index 421e7e5af3..d5b62df749 100644
--- a/public/emoji/1f449-1f3fd.svg
+++ b/public/emoji/1f449-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f449-1f3fe.png b/public/emoji/1f449-1f3fe.png
deleted file mode 100644
index b8541d6440..0000000000
Binary files a/public/emoji/1f449-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f449-1f3fe.svg b/public/emoji/1f449-1f3fe.svg
index 43db2b7b2e..850a672de1 100644
--- a/public/emoji/1f449-1f3fe.svg
+++ b/public/emoji/1f449-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f449-1f3ff.png b/public/emoji/1f449-1f3ff.png
deleted file mode 100644
index 1b7aab07bb..0000000000
Binary files a/public/emoji/1f449-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f449-1f3ff.svg b/public/emoji/1f449-1f3ff.svg
index c3fde3f9d7..a04f4c9e3b 100644
--- a/public/emoji/1f449-1f3ff.svg
+++ b/public/emoji/1f449-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f449.png b/public/emoji/1f449.png
deleted file mode 100644
index 93a3cd34aa..0000000000
Binary files a/public/emoji/1f449.png and /dev/null differ
diff --git a/public/emoji/1f449.svg b/public/emoji/1f449.svg
index 815e08efb5..93f79ee855 100644
--- a/public/emoji/1f449.svg
+++ b/public/emoji/1f449.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44a-1f3fb.png b/public/emoji/1f44a-1f3fb.png
deleted file mode 100644
index 93c7d17fb4..0000000000
Binary files a/public/emoji/1f44a-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f44a-1f3fb.svg b/public/emoji/1f44a-1f3fb.svg
index 6b68ade7ea..f4e937b74e 100644
--- a/public/emoji/1f44a-1f3fb.svg
+++ b/public/emoji/1f44a-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44a-1f3fc.png b/public/emoji/1f44a-1f3fc.png
deleted file mode 100644
index c0a1af6e10..0000000000
Binary files a/public/emoji/1f44a-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f44a-1f3fc.svg b/public/emoji/1f44a-1f3fc.svg
index 7bb10f2fa3..a24a0a1051 100644
--- a/public/emoji/1f44a-1f3fc.svg
+++ b/public/emoji/1f44a-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44a-1f3fd.png b/public/emoji/1f44a-1f3fd.png
deleted file mode 100644
index 1458b02120..0000000000
Binary files a/public/emoji/1f44a-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f44a-1f3fd.svg b/public/emoji/1f44a-1f3fd.svg
index 1543e53a8b..5d0cb8ee95 100644
--- a/public/emoji/1f44a-1f3fd.svg
+++ b/public/emoji/1f44a-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44a-1f3fe.png b/public/emoji/1f44a-1f3fe.png
deleted file mode 100644
index c1466bfcde..0000000000
Binary files a/public/emoji/1f44a-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f44a-1f3fe.svg b/public/emoji/1f44a-1f3fe.svg
index 6485deb721..dabe7559b2 100644
--- a/public/emoji/1f44a-1f3fe.svg
+++ b/public/emoji/1f44a-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44a-1f3ff.png b/public/emoji/1f44a-1f3ff.png
deleted file mode 100644
index 00b4ddb895..0000000000
Binary files a/public/emoji/1f44a-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f44a-1f3ff.svg b/public/emoji/1f44a-1f3ff.svg
index 2eded30724..e064185462 100644
--- a/public/emoji/1f44a-1f3ff.svg
+++ b/public/emoji/1f44a-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44a.png b/public/emoji/1f44a.png
deleted file mode 100644
index b14ca5f521..0000000000
Binary files a/public/emoji/1f44a.png and /dev/null differ
diff --git a/public/emoji/1f44a.svg b/public/emoji/1f44a.svg
index 20b808db58..6d8336dafa 100644
--- a/public/emoji/1f44a.svg
+++ b/public/emoji/1f44a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44b-1f3fb.png b/public/emoji/1f44b-1f3fb.png
deleted file mode 100644
index 6b2b34b106..0000000000
Binary files a/public/emoji/1f44b-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f44b-1f3fb.svg b/public/emoji/1f44b-1f3fb.svg
index 981d4d4749..86471187bf 100644
--- a/public/emoji/1f44b-1f3fb.svg
+++ b/public/emoji/1f44b-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44b-1f3fc.png b/public/emoji/1f44b-1f3fc.png
deleted file mode 100644
index b857119732..0000000000
Binary files a/public/emoji/1f44b-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f44b-1f3fc.svg b/public/emoji/1f44b-1f3fc.svg
index 0e3fb5f890..490e479a4c 100644
--- a/public/emoji/1f44b-1f3fc.svg
+++ b/public/emoji/1f44b-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44b-1f3fd.png b/public/emoji/1f44b-1f3fd.png
deleted file mode 100644
index 6283b670f4..0000000000
Binary files a/public/emoji/1f44b-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f44b-1f3fd.svg b/public/emoji/1f44b-1f3fd.svg
index 801f13f4d7..8988c6e17a 100644
--- a/public/emoji/1f44b-1f3fd.svg
+++ b/public/emoji/1f44b-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44b-1f3fe.png b/public/emoji/1f44b-1f3fe.png
deleted file mode 100644
index fe6b2baa74..0000000000
Binary files a/public/emoji/1f44b-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f44b-1f3fe.svg b/public/emoji/1f44b-1f3fe.svg
index 687ff445f9..6c35abe524 100644
--- a/public/emoji/1f44b-1f3fe.svg
+++ b/public/emoji/1f44b-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44b-1f3ff.png b/public/emoji/1f44b-1f3ff.png
deleted file mode 100644
index 4bd168ebb7..0000000000
Binary files a/public/emoji/1f44b-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f44b-1f3ff.svg b/public/emoji/1f44b-1f3ff.svg
index 68636c28d4..5ef6da63f0 100644
--- a/public/emoji/1f44b-1f3ff.svg
+++ b/public/emoji/1f44b-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44b.png b/public/emoji/1f44b.png
deleted file mode 100644
index e0cd79b45f..0000000000
Binary files a/public/emoji/1f44b.png and /dev/null differ
diff --git a/public/emoji/1f44b.svg b/public/emoji/1f44b.svg
index 2118c9b43d..5860e81599 100644
--- a/public/emoji/1f44b.svg
+++ b/public/emoji/1f44b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44c-1f3fb.png b/public/emoji/1f44c-1f3fb.png
deleted file mode 100644
index cecf7b2ab5..0000000000
Binary files a/public/emoji/1f44c-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f44c-1f3fb.svg b/public/emoji/1f44c-1f3fb.svg
index 988b464e53..7c8564a1d8 100644
--- a/public/emoji/1f44c-1f3fb.svg
+++ b/public/emoji/1f44c-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44c-1f3fc.png b/public/emoji/1f44c-1f3fc.png
deleted file mode 100644
index c19239bcd3..0000000000
Binary files a/public/emoji/1f44c-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f44c-1f3fc.svg b/public/emoji/1f44c-1f3fc.svg
index c03cb353f1..606e6a14a8 100644
--- a/public/emoji/1f44c-1f3fc.svg
+++ b/public/emoji/1f44c-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44c-1f3fd.png b/public/emoji/1f44c-1f3fd.png
deleted file mode 100644
index 94b65b03ec..0000000000
Binary files a/public/emoji/1f44c-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f44c-1f3fd.svg b/public/emoji/1f44c-1f3fd.svg
index e6d0d54753..0477988343 100644
--- a/public/emoji/1f44c-1f3fd.svg
+++ b/public/emoji/1f44c-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44c-1f3fe.png b/public/emoji/1f44c-1f3fe.png
deleted file mode 100644
index 03d26f08e6..0000000000
Binary files a/public/emoji/1f44c-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f44c-1f3fe.svg b/public/emoji/1f44c-1f3fe.svg
index c28d64a332..3136ab5a91 100644
--- a/public/emoji/1f44c-1f3fe.svg
+++ b/public/emoji/1f44c-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44c-1f3ff.png b/public/emoji/1f44c-1f3ff.png
deleted file mode 100644
index d4b2408636..0000000000
Binary files a/public/emoji/1f44c-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f44c-1f3ff.svg b/public/emoji/1f44c-1f3ff.svg
index 6d2a3a4370..6c60c5cce4 100644
--- a/public/emoji/1f44c-1f3ff.svg
+++ b/public/emoji/1f44c-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44c.png b/public/emoji/1f44c.png
deleted file mode 100644
index 028d69b0de..0000000000
Binary files a/public/emoji/1f44c.png and /dev/null differ
diff --git a/public/emoji/1f44c.svg b/public/emoji/1f44c.svg
index bb3a06657a..3ccac82651 100644
--- a/public/emoji/1f44c.svg
+++ b/public/emoji/1f44c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44d-1f3fb.png b/public/emoji/1f44d-1f3fb.png
deleted file mode 100644
index 39684cd5cc..0000000000
Binary files a/public/emoji/1f44d-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f44d-1f3fb.svg b/public/emoji/1f44d-1f3fb.svg
index c50c59f9ff..f2ea302f93 100644
--- a/public/emoji/1f44d-1f3fb.svg
+++ b/public/emoji/1f44d-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44d-1f3fc.png b/public/emoji/1f44d-1f3fc.png
deleted file mode 100644
index a9b5972357..0000000000
Binary files a/public/emoji/1f44d-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f44d-1f3fc.svg b/public/emoji/1f44d-1f3fc.svg
index 54d7d6a19e..be40cb6423 100644
--- a/public/emoji/1f44d-1f3fc.svg
+++ b/public/emoji/1f44d-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44d-1f3fd.png b/public/emoji/1f44d-1f3fd.png
deleted file mode 100644
index c5e2916701..0000000000
Binary files a/public/emoji/1f44d-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f44d-1f3fd.svg b/public/emoji/1f44d-1f3fd.svg
index 1fc72ebe93..534a37fb2d 100644
--- a/public/emoji/1f44d-1f3fd.svg
+++ b/public/emoji/1f44d-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44d-1f3fe.png b/public/emoji/1f44d-1f3fe.png
deleted file mode 100644
index 5bf4857a88..0000000000
Binary files a/public/emoji/1f44d-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f44d-1f3fe.svg b/public/emoji/1f44d-1f3fe.svg
index 4db4b58eff..682fed7d46 100644
--- a/public/emoji/1f44d-1f3fe.svg
+++ b/public/emoji/1f44d-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44d-1f3ff.png b/public/emoji/1f44d-1f3ff.png
deleted file mode 100644
index d829f787c6..0000000000
Binary files a/public/emoji/1f44d-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f44d-1f3ff.svg b/public/emoji/1f44d-1f3ff.svg
index e64edfb135..280fed6aca 100644
--- a/public/emoji/1f44d-1f3ff.svg
+++ b/public/emoji/1f44d-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44d.png b/public/emoji/1f44d.png
deleted file mode 100644
index f9e6f13a34..0000000000
Binary files a/public/emoji/1f44d.png and /dev/null differ
diff --git a/public/emoji/1f44d.svg b/public/emoji/1f44d.svg
index 100df67076..de2963f8b9 100644
--- a/public/emoji/1f44d.svg
+++ b/public/emoji/1f44d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44e-1f3fb.png b/public/emoji/1f44e-1f3fb.png
deleted file mode 100644
index a1631af8e9..0000000000
Binary files a/public/emoji/1f44e-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f44e-1f3fb.svg b/public/emoji/1f44e-1f3fb.svg
index 298cda3697..98af17fe31 100644
--- a/public/emoji/1f44e-1f3fb.svg
+++ b/public/emoji/1f44e-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44e-1f3fc.png b/public/emoji/1f44e-1f3fc.png
deleted file mode 100644
index 85fff82d59..0000000000
Binary files a/public/emoji/1f44e-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f44e-1f3fc.svg b/public/emoji/1f44e-1f3fc.svg
index 79398ad090..4504b3b671 100644
--- a/public/emoji/1f44e-1f3fc.svg
+++ b/public/emoji/1f44e-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44e-1f3fd.png b/public/emoji/1f44e-1f3fd.png
deleted file mode 100644
index eeba3be80f..0000000000
Binary files a/public/emoji/1f44e-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f44e-1f3fd.svg b/public/emoji/1f44e-1f3fd.svg
index e0bf3be99a..b25cfcfbcc 100644
--- a/public/emoji/1f44e-1f3fd.svg
+++ b/public/emoji/1f44e-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44e-1f3fe.png b/public/emoji/1f44e-1f3fe.png
deleted file mode 100644
index 1addafdaed..0000000000
Binary files a/public/emoji/1f44e-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f44e-1f3fe.svg b/public/emoji/1f44e-1f3fe.svg
index 17fa30ceaf..fb26a9e6d1 100644
--- a/public/emoji/1f44e-1f3fe.svg
+++ b/public/emoji/1f44e-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44e-1f3ff.png b/public/emoji/1f44e-1f3ff.png
deleted file mode 100644
index 37ec07b572..0000000000
Binary files a/public/emoji/1f44e-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f44e-1f3ff.svg b/public/emoji/1f44e-1f3ff.svg
index c58da806fc..9d064d53a5 100644
--- a/public/emoji/1f44e-1f3ff.svg
+++ b/public/emoji/1f44e-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44e.png b/public/emoji/1f44e.png
deleted file mode 100644
index b63da2f20a..0000000000
Binary files a/public/emoji/1f44e.png and /dev/null differ
diff --git a/public/emoji/1f44e.svg b/public/emoji/1f44e.svg
index cd5ce20eeb..05c5a1f97a 100644
--- a/public/emoji/1f44e.svg
+++ b/public/emoji/1f44e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44f-1f3fb.png b/public/emoji/1f44f-1f3fb.png
deleted file mode 100644
index de4bc837b9..0000000000
Binary files a/public/emoji/1f44f-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f44f-1f3fb.svg b/public/emoji/1f44f-1f3fb.svg
index 4728186ef1..d11ee40be3 100644
--- a/public/emoji/1f44f-1f3fb.svg
+++ b/public/emoji/1f44f-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44f-1f3fc.png b/public/emoji/1f44f-1f3fc.png
deleted file mode 100644
index 1323de775b..0000000000
Binary files a/public/emoji/1f44f-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f44f-1f3fc.svg b/public/emoji/1f44f-1f3fc.svg
index ffb3d7e717..562ec07996 100644
--- a/public/emoji/1f44f-1f3fc.svg
+++ b/public/emoji/1f44f-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44f-1f3fd.png b/public/emoji/1f44f-1f3fd.png
deleted file mode 100644
index d448ca19dd..0000000000
Binary files a/public/emoji/1f44f-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f44f-1f3fd.svg b/public/emoji/1f44f-1f3fd.svg
index 138e7bde1e..ca3e19e1c5 100644
--- a/public/emoji/1f44f-1f3fd.svg
+++ b/public/emoji/1f44f-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44f-1f3fe.png b/public/emoji/1f44f-1f3fe.png
deleted file mode 100644
index c49f44ee91..0000000000
Binary files a/public/emoji/1f44f-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f44f-1f3fe.svg b/public/emoji/1f44f-1f3fe.svg
index 56107c4337..83b18c50e1 100644
--- a/public/emoji/1f44f-1f3fe.svg
+++ b/public/emoji/1f44f-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44f-1f3ff.png b/public/emoji/1f44f-1f3ff.png
deleted file mode 100644
index 29ee9bdf37..0000000000
Binary files a/public/emoji/1f44f-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f44f-1f3ff.svg b/public/emoji/1f44f-1f3ff.svg
index d4361ab361..c214a9b51d 100644
--- a/public/emoji/1f44f-1f3ff.svg
+++ b/public/emoji/1f44f-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f44f.png b/public/emoji/1f44f.png
deleted file mode 100644
index b0ffe92892..0000000000
Binary files a/public/emoji/1f44f.png and /dev/null differ
diff --git a/public/emoji/1f44f.svg b/public/emoji/1f44f.svg
index c611e5d3b1..d190887b75 100644
--- a/public/emoji/1f44f.svg
+++ b/public/emoji/1f44f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f450-1f3fb.png b/public/emoji/1f450-1f3fb.png
deleted file mode 100644
index 352d2614f1..0000000000
Binary files a/public/emoji/1f450-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f450-1f3fb.svg b/public/emoji/1f450-1f3fb.svg
index 3da933cf3b..fc3e988048 100644
--- a/public/emoji/1f450-1f3fb.svg
+++ b/public/emoji/1f450-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f450-1f3fc.png b/public/emoji/1f450-1f3fc.png
deleted file mode 100644
index 70824a50c7..0000000000
Binary files a/public/emoji/1f450-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f450-1f3fc.svg b/public/emoji/1f450-1f3fc.svg
index 4463814f00..da95cf19a5 100644
--- a/public/emoji/1f450-1f3fc.svg
+++ b/public/emoji/1f450-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f450-1f3fd.png b/public/emoji/1f450-1f3fd.png
deleted file mode 100644
index d7d136bd3d..0000000000
Binary files a/public/emoji/1f450-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f450-1f3fd.svg b/public/emoji/1f450-1f3fd.svg
index 715fb59fc8..3dfa45374b 100644
--- a/public/emoji/1f450-1f3fd.svg
+++ b/public/emoji/1f450-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f450-1f3fe.png b/public/emoji/1f450-1f3fe.png
deleted file mode 100644
index df4eaa711e..0000000000
Binary files a/public/emoji/1f450-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f450-1f3fe.svg b/public/emoji/1f450-1f3fe.svg
index d3c412ec00..f15104c537 100644
--- a/public/emoji/1f450-1f3fe.svg
+++ b/public/emoji/1f450-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f450-1f3ff.png b/public/emoji/1f450-1f3ff.png
deleted file mode 100644
index 7dc04eaebd..0000000000
Binary files a/public/emoji/1f450-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f450-1f3ff.svg b/public/emoji/1f450-1f3ff.svg
index d7dc9146f6..888cc644ed 100644
--- a/public/emoji/1f450-1f3ff.svg
+++ b/public/emoji/1f450-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f450.png b/public/emoji/1f450.png
deleted file mode 100644
index 1cf75c9101..0000000000
Binary files a/public/emoji/1f450.png and /dev/null differ
diff --git a/public/emoji/1f450.svg b/public/emoji/1f450.svg
index d910626503..5f4edc4c00 100644
--- a/public/emoji/1f450.svg
+++ b/public/emoji/1f450.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f451.png b/public/emoji/1f451.png
deleted file mode 100644
index 93b82d92f0..0000000000
Binary files a/public/emoji/1f451.png and /dev/null differ
diff --git a/public/emoji/1f451.svg b/public/emoji/1f451.svg
index ce7da0aab7..c8e31dfd55 100644
--- a/public/emoji/1f451.svg
+++ b/public/emoji/1f451.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f452.png b/public/emoji/1f452.png
deleted file mode 100644
index b837b6a2e4..0000000000
Binary files a/public/emoji/1f452.png and /dev/null differ
diff --git a/public/emoji/1f452.svg b/public/emoji/1f452.svg
index 0ef14ae7af..19c624995d 100644
--- a/public/emoji/1f452.svg
+++ b/public/emoji/1f452.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f453.png b/public/emoji/1f453.png
deleted file mode 100644
index 865d8274ac..0000000000
Binary files a/public/emoji/1f453.png and /dev/null differ
diff --git a/public/emoji/1f453.svg b/public/emoji/1f453.svg
index 0356c31efe..0e0451ea27 100644
--- a/public/emoji/1f453.svg
+++ b/public/emoji/1f453.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f454.png b/public/emoji/1f454.png
deleted file mode 100644
index 1804e7f3ff..0000000000
Binary files a/public/emoji/1f454.png and /dev/null differ
diff --git a/public/emoji/1f454.svg b/public/emoji/1f454.svg
index b72e4dc9e2..de9f10fee0 100644
--- a/public/emoji/1f454.svg
+++ b/public/emoji/1f454.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f455.png b/public/emoji/1f455.png
deleted file mode 100644
index af08dec8b5..0000000000
Binary files a/public/emoji/1f455.png and /dev/null differ
diff --git a/public/emoji/1f455.svg b/public/emoji/1f455.svg
index 33900afbbb..13581c7b6d 100644
--- a/public/emoji/1f455.svg
+++ b/public/emoji/1f455.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f456.png b/public/emoji/1f456.png
deleted file mode 100644
index 2a6869d674..0000000000
Binary files a/public/emoji/1f456.png and /dev/null differ
diff --git a/public/emoji/1f456.svg b/public/emoji/1f456.svg
index eed2f86df7..8f07c20785 100644
--- a/public/emoji/1f456.svg
+++ b/public/emoji/1f456.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f457.png b/public/emoji/1f457.png
deleted file mode 100644
index a697ca5c57..0000000000
Binary files a/public/emoji/1f457.png and /dev/null differ
diff --git a/public/emoji/1f457.svg b/public/emoji/1f457.svg
index 2a20f802b9..c00c84a045 100644
--- a/public/emoji/1f457.svg
+++ b/public/emoji/1f457.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f458.png b/public/emoji/1f458.png
deleted file mode 100644
index abe851115d..0000000000
Binary files a/public/emoji/1f458.png and /dev/null differ
diff --git a/public/emoji/1f458.svg b/public/emoji/1f458.svg
index 7f7bed9af8..6917bbc779 100644
--- a/public/emoji/1f458.svg
+++ b/public/emoji/1f458.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f459.png b/public/emoji/1f459.png
deleted file mode 100644
index 77a8a0aae5..0000000000
Binary files a/public/emoji/1f459.png and /dev/null differ
diff --git a/public/emoji/1f459.svg b/public/emoji/1f459.svg
index e0a1ca75df..6480f8f855 100644
--- a/public/emoji/1f459.svg
+++ b/public/emoji/1f459.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f45a.png b/public/emoji/1f45a.png
deleted file mode 100644
index 01410dc810..0000000000
Binary files a/public/emoji/1f45a.png and /dev/null differ
diff --git a/public/emoji/1f45a.svg b/public/emoji/1f45a.svg
index 294d86ef6f..4312f4ca5e 100644
--- a/public/emoji/1f45a.svg
+++ b/public/emoji/1f45a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f45b.png b/public/emoji/1f45b.png
deleted file mode 100644
index 981346193c..0000000000
Binary files a/public/emoji/1f45b.png and /dev/null differ
diff --git a/public/emoji/1f45b.svg b/public/emoji/1f45b.svg
index 2bb632f3ed..615cb606c3 100644
--- a/public/emoji/1f45b.svg
+++ b/public/emoji/1f45b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f45c.png b/public/emoji/1f45c.png
deleted file mode 100644
index cbf75c5d25..0000000000
Binary files a/public/emoji/1f45c.png and /dev/null differ
diff --git a/public/emoji/1f45c.svg b/public/emoji/1f45c.svg
index 39165931c8..ffa83ff157 100644
--- a/public/emoji/1f45c.svg
+++ b/public/emoji/1f45c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f45d.png b/public/emoji/1f45d.png
deleted file mode 100644
index 8795c6c66f..0000000000
Binary files a/public/emoji/1f45d.png and /dev/null differ
diff --git a/public/emoji/1f45d.svg b/public/emoji/1f45d.svg
index b877d3ed88..4cadb52c7a 100644
--- a/public/emoji/1f45d.svg
+++ b/public/emoji/1f45d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f45e.png b/public/emoji/1f45e.png
deleted file mode 100644
index 4bf7541032..0000000000
Binary files a/public/emoji/1f45e.png and /dev/null differ
diff --git a/public/emoji/1f45e.svg b/public/emoji/1f45e.svg
index 7dbe5d8bf1..5b71d31ff7 100644
--- a/public/emoji/1f45e.svg
+++ b/public/emoji/1f45e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f45f.png b/public/emoji/1f45f.png
deleted file mode 100644
index 423fa07dd5..0000000000
Binary files a/public/emoji/1f45f.png and /dev/null differ
diff --git a/public/emoji/1f45f.svg b/public/emoji/1f45f.svg
index a54733edcd..3b94ca3ce0 100644
--- a/public/emoji/1f45f.svg
+++ b/public/emoji/1f45f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f460.png b/public/emoji/1f460.png
deleted file mode 100644
index b331cbccc9..0000000000
Binary files a/public/emoji/1f460.png and /dev/null differ
diff --git a/public/emoji/1f460.svg b/public/emoji/1f460.svg
index 57b7e17fb9..334ea75ecd 100644
--- a/public/emoji/1f460.svg
+++ b/public/emoji/1f460.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f461.png b/public/emoji/1f461.png
deleted file mode 100644
index 9d9f5122b7..0000000000
Binary files a/public/emoji/1f461.png and /dev/null differ
diff --git a/public/emoji/1f461.svg b/public/emoji/1f461.svg
index e17e173db8..4da080d37e 100644
--- a/public/emoji/1f461.svg
+++ b/public/emoji/1f461.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f462.png b/public/emoji/1f462.png
deleted file mode 100644
index 11f1065ed0..0000000000
Binary files a/public/emoji/1f462.png and /dev/null differ
diff --git a/public/emoji/1f462.svg b/public/emoji/1f462.svg
index 72c94f379f..47948a9319 100644
--- a/public/emoji/1f462.svg
+++ b/public/emoji/1f462.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f463.png b/public/emoji/1f463.png
deleted file mode 100644
index b2673c5a1a..0000000000
Binary files a/public/emoji/1f463.png and /dev/null differ
diff --git a/public/emoji/1f463.svg b/public/emoji/1f463.svg
index 2330610517..c4ee494e6b 100644
--- a/public/emoji/1f463.svg
+++ b/public/emoji/1f463.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f464.png b/public/emoji/1f464.png
deleted file mode 100644
index 123b2cbe1f..0000000000
Binary files a/public/emoji/1f464.png and /dev/null differ
diff --git a/public/emoji/1f464.svg b/public/emoji/1f464.svg
index 9c0e92dadb..515da2c577 100644
--- a/public/emoji/1f464.svg
+++ b/public/emoji/1f464.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f465.png b/public/emoji/1f465.png
deleted file mode 100644
index d7656860a1..0000000000
Binary files a/public/emoji/1f465.png and /dev/null differ
diff --git a/public/emoji/1f465.svg b/public/emoji/1f465.svg
index 4ca629e3dc..9ac02e6dc0 100644
--- a/public/emoji/1f465.svg
+++ b/public/emoji/1f465.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f466-1f3fb.png b/public/emoji/1f466-1f3fb.png
deleted file mode 100644
index 2fc436ea51..0000000000
Binary files a/public/emoji/1f466-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f466-1f3fb.svg b/public/emoji/1f466-1f3fb.svg
index f0c2365dd3..ae20d77b54 100644
--- a/public/emoji/1f466-1f3fb.svg
+++ b/public/emoji/1f466-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f466-1f3fc.png b/public/emoji/1f466-1f3fc.png
deleted file mode 100644
index 09a5f18d36..0000000000
Binary files a/public/emoji/1f466-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f466-1f3fc.svg b/public/emoji/1f466-1f3fc.svg
index 296576e85b..380488720d 100644
--- a/public/emoji/1f466-1f3fc.svg
+++ b/public/emoji/1f466-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f466-1f3fd.png b/public/emoji/1f466-1f3fd.png
deleted file mode 100644
index 3cfe675dd3..0000000000
Binary files a/public/emoji/1f466-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f466-1f3fd.svg b/public/emoji/1f466-1f3fd.svg
index eafb2511db..12d0d0f067 100644
--- a/public/emoji/1f466-1f3fd.svg
+++ b/public/emoji/1f466-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f466-1f3fe.png b/public/emoji/1f466-1f3fe.png
deleted file mode 100644
index 780be0ace3..0000000000
Binary files a/public/emoji/1f466-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f466-1f3fe.svg b/public/emoji/1f466-1f3fe.svg
index 1623d305eb..5c9c55d97d 100644
--- a/public/emoji/1f466-1f3fe.svg
+++ b/public/emoji/1f466-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f466-1f3ff.png b/public/emoji/1f466-1f3ff.png
deleted file mode 100644
index f32fe22e35..0000000000
Binary files a/public/emoji/1f466-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f466-1f3ff.svg b/public/emoji/1f466-1f3ff.svg
index 051400b1c6..d0e4deca1c 100644
--- a/public/emoji/1f466-1f3ff.svg
+++ b/public/emoji/1f466-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f466.png b/public/emoji/1f466.png
deleted file mode 100644
index 8ecfb0a4e9..0000000000
Binary files a/public/emoji/1f466.png and /dev/null differ
diff --git a/public/emoji/1f466.svg b/public/emoji/1f466.svg
index 5e233fc8b6..3ef0fcc58a 100644
--- a/public/emoji/1f466.svg
+++ b/public/emoji/1f466.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f467-1f3fb.png b/public/emoji/1f467-1f3fb.png
deleted file mode 100644
index bb667e8865..0000000000
Binary files a/public/emoji/1f467-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f467-1f3fb.svg b/public/emoji/1f467-1f3fb.svg
index eeb7738dac..1836aaa671 100644
--- a/public/emoji/1f467-1f3fb.svg
+++ b/public/emoji/1f467-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f467-1f3fc.png b/public/emoji/1f467-1f3fc.png
deleted file mode 100644
index a59ed4a3f0..0000000000
Binary files a/public/emoji/1f467-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f467-1f3fc.svg b/public/emoji/1f467-1f3fc.svg
index 4088b48a76..08eae438e7 100644
--- a/public/emoji/1f467-1f3fc.svg
+++ b/public/emoji/1f467-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f467-1f3fd.png b/public/emoji/1f467-1f3fd.png
deleted file mode 100644
index 517e7f2a7b..0000000000
Binary files a/public/emoji/1f467-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f467-1f3fd.svg b/public/emoji/1f467-1f3fd.svg
index 18a76f65de..477ffe9ee7 100644
--- a/public/emoji/1f467-1f3fd.svg
+++ b/public/emoji/1f467-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f467-1f3fe.png b/public/emoji/1f467-1f3fe.png
deleted file mode 100644
index 542d96c848..0000000000
Binary files a/public/emoji/1f467-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f467-1f3fe.svg b/public/emoji/1f467-1f3fe.svg
index dbb0f5fc60..190ba22292 100644
--- a/public/emoji/1f467-1f3fe.svg
+++ b/public/emoji/1f467-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f467-1f3ff.png b/public/emoji/1f467-1f3ff.png
deleted file mode 100644
index 66b7c28c2d..0000000000
Binary files a/public/emoji/1f467-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f467-1f3ff.svg b/public/emoji/1f467-1f3ff.svg
index 80e424ed2b..8d2ca56367 100644
--- a/public/emoji/1f467-1f3ff.svg
+++ b/public/emoji/1f467-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f467.png b/public/emoji/1f467.png
deleted file mode 100644
index dc1d4d08b3..0000000000
Binary files a/public/emoji/1f467.png and /dev/null differ
diff --git a/public/emoji/1f467.svg b/public/emoji/1f467.svg
index 1cb7f67a65..a3bc670640 100644
--- a/public/emoji/1f467.svg
+++ b/public/emoji/1f467.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f33e.svg b/public/emoji/1f468-1f3fb-200d-1f33e.svg
new file mode 100644
index 0000000000..2b4b3e2dd9
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f373.svg b/public/emoji/1f468-1f3fb-200d-1f373.svg
new file mode 100644
index 0000000000..80e793c79d
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f393.svg b/public/emoji/1f468-1f3fb-200d-1f393.svg
new file mode 100644
index 0000000000..1b9ca687a1
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f3a4.svg b/public/emoji/1f468-1f3fb-200d-1f3a4.svg
new file mode 100644
index 0000000000..3c51ea9595
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f3a8.svg b/public/emoji/1f468-1f3fb-200d-1f3a8.svg
new file mode 100644
index 0000000000..b884ed15d5
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f3eb.svg b/public/emoji/1f468-1f3fb-200d-1f3eb.svg
new file mode 100644
index 0000000000..e33cca230a
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f3ed.svg b/public/emoji/1f468-1f3fb-200d-1f3ed.svg
new file mode 100644
index 0000000000..53b9e25b46
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f4bb.svg b/public/emoji/1f468-1f3fb-200d-1f4bb.svg
new file mode 100644
index 0000000000..15601f70c8
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f4bc.svg b/public/emoji/1f468-1f3fb-200d-1f4bc.svg
new file mode 100644
index 0000000000..f5987b48e0
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f527.svg b/public/emoji/1f468-1f3fb-200d-1f527.svg
new file mode 100644
index 0000000000..7b44dc1737
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f52c.svg b/public/emoji/1f468-1f3fb-200d-1f52c.svg
new file mode 100644
index 0000000000..f14434d228
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f680.svg b/public/emoji/1f468-1f3fb-200d-1f680.svg
new file mode 100644
index 0000000000..eab6f4e662
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-1f692.svg b/public/emoji/1f468-1f3fb-200d-1f692.svg
new file mode 100644
index 0000000000..e562eadeef
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-2695-fe0f.svg b/public/emoji/1f468-1f3fb-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..73027bb864
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-2696-fe0f.svg b/public/emoji/1f468-1f3fb-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..9418cad316
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb-200d-2708-fe0f.svg b/public/emoji/1f468-1f3fb-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..119142aec7
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fb.png b/public/emoji/1f468-1f3fb.png
deleted file mode 100644
index bb86e963a8..0000000000
Binary files a/public/emoji/1f468-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f468-1f3fb.svg b/public/emoji/1f468-1f3fb.svg
index 9ffc40139f..6c3bfe333d 100644
--- a/public/emoji/1f468-1f3fb.svg
+++ b/public/emoji/1f468-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f33e.svg b/public/emoji/1f468-1f3fc-200d-1f33e.svg
new file mode 100644
index 0000000000..6b9dff148b
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f373.svg b/public/emoji/1f468-1f3fc-200d-1f373.svg
new file mode 100644
index 0000000000..3834a6fcac
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f393.svg b/public/emoji/1f468-1f3fc-200d-1f393.svg
new file mode 100644
index 0000000000..4c665c3073
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f3a4.svg b/public/emoji/1f468-1f3fc-200d-1f3a4.svg
new file mode 100644
index 0000000000..924e63cbb4
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f3a8.svg b/public/emoji/1f468-1f3fc-200d-1f3a8.svg
new file mode 100644
index 0000000000..340b2c74c1
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f3eb.svg b/public/emoji/1f468-1f3fc-200d-1f3eb.svg
new file mode 100644
index 0000000000..891c080bc1
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f3ed.svg b/public/emoji/1f468-1f3fc-200d-1f3ed.svg
new file mode 100644
index 0000000000..1e65941de4
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f4bb.svg b/public/emoji/1f468-1f3fc-200d-1f4bb.svg
new file mode 100644
index 0000000000..916faf9244
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f4bc.svg b/public/emoji/1f468-1f3fc-200d-1f4bc.svg
new file mode 100644
index 0000000000..68a4145906
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f527.svg b/public/emoji/1f468-1f3fc-200d-1f527.svg
new file mode 100644
index 0000000000..6ce9580f85
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f52c.svg b/public/emoji/1f468-1f3fc-200d-1f52c.svg
new file mode 100644
index 0000000000..054ab00962
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f680.svg b/public/emoji/1f468-1f3fc-200d-1f680.svg
new file mode 100644
index 0000000000..523fe1c985
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-1f692.svg b/public/emoji/1f468-1f3fc-200d-1f692.svg
new file mode 100644
index 0000000000..4f05f832f3
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-2695-fe0f.svg b/public/emoji/1f468-1f3fc-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..16625d4579
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-2696-fe0f.svg b/public/emoji/1f468-1f3fc-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..f2d87d2d70
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc-200d-2708-fe0f.svg b/public/emoji/1f468-1f3fc-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..e2496e389e
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fc.png b/public/emoji/1f468-1f3fc.png
deleted file mode 100644
index fdeeaff46f..0000000000
Binary files a/public/emoji/1f468-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f468-1f3fc.svg b/public/emoji/1f468-1f3fc.svg
index e0e8d5fd30..19a37a4328 100644
--- a/public/emoji/1f468-1f3fc.svg
+++ b/public/emoji/1f468-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f33e.svg b/public/emoji/1f468-1f3fd-200d-1f33e.svg
new file mode 100644
index 0000000000..9eb2585981
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f373.svg b/public/emoji/1f468-1f3fd-200d-1f373.svg
new file mode 100644
index 0000000000..5e723978b1
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f393.svg b/public/emoji/1f468-1f3fd-200d-1f393.svg
new file mode 100644
index 0000000000..15aa6ce23a
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f3a4.svg b/public/emoji/1f468-1f3fd-200d-1f3a4.svg
new file mode 100644
index 0000000000..9fec651300
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f3a8.svg b/public/emoji/1f468-1f3fd-200d-1f3a8.svg
new file mode 100644
index 0000000000..979e5bc52e
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f3eb.svg b/public/emoji/1f468-1f3fd-200d-1f3eb.svg
new file mode 100644
index 0000000000..0ccca9bdef
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f3ed.svg b/public/emoji/1f468-1f3fd-200d-1f3ed.svg
new file mode 100644
index 0000000000..b8d6cacae9
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f4bb.svg b/public/emoji/1f468-1f3fd-200d-1f4bb.svg
new file mode 100644
index 0000000000..d26aa9ae2b
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f4bc.svg b/public/emoji/1f468-1f3fd-200d-1f4bc.svg
new file mode 100644
index 0000000000..3f59dbcbff
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f527.svg b/public/emoji/1f468-1f3fd-200d-1f527.svg
new file mode 100644
index 0000000000..06b41a20c8
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f52c.svg b/public/emoji/1f468-1f3fd-200d-1f52c.svg
new file mode 100644
index 0000000000..98f161a81f
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f680.svg b/public/emoji/1f468-1f3fd-200d-1f680.svg
new file mode 100644
index 0000000000..fd08434235
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-1f692.svg b/public/emoji/1f468-1f3fd-200d-1f692.svg
new file mode 100644
index 0000000000..5d9619e153
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-2695-fe0f.svg b/public/emoji/1f468-1f3fd-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..4a53e82bd2
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-2696-fe0f.svg b/public/emoji/1f468-1f3fd-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..7815ddb92a
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd-200d-2708-fe0f.svg b/public/emoji/1f468-1f3fd-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..caf7f3dfd4
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fd.png b/public/emoji/1f468-1f3fd.png
deleted file mode 100644
index 7ae0b5df9c..0000000000
Binary files a/public/emoji/1f468-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f468-1f3fd.svg b/public/emoji/1f468-1f3fd.svg
index 4fc71c6d81..42f34b8b0d 100644
--- a/public/emoji/1f468-1f3fd.svg
+++ b/public/emoji/1f468-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f33e.svg b/public/emoji/1f468-1f3fe-200d-1f33e.svg
new file mode 100644
index 0000000000..96a2bf5bf1
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f373.svg b/public/emoji/1f468-1f3fe-200d-1f373.svg
new file mode 100644
index 0000000000..e608c4e26c
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f393.svg b/public/emoji/1f468-1f3fe-200d-1f393.svg
new file mode 100644
index 0000000000..da6f2b1003
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f3a4.svg b/public/emoji/1f468-1f3fe-200d-1f3a4.svg
new file mode 100644
index 0000000000..4eb5cd9c56
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f3a8.svg b/public/emoji/1f468-1f3fe-200d-1f3a8.svg
new file mode 100644
index 0000000000..d01f1b275e
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f3eb.svg b/public/emoji/1f468-1f3fe-200d-1f3eb.svg
new file mode 100644
index 0000000000..ae70e8a4a0
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f3ed.svg b/public/emoji/1f468-1f3fe-200d-1f3ed.svg
new file mode 100644
index 0000000000..1663a9c959
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f4bb.svg b/public/emoji/1f468-1f3fe-200d-1f4bb.svg
new file mode 100644
index 0000000000..7bcc7ecf43
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f4bc.svg b/public/emoji/1f468-1f3fe-200d-1f4bc.svg
new file mode 100644
index 0000000000..094ce5d7e7
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f527.svg b/public/emoji/1f468-1f3fe-200d-1f527.svg
new file mode 100644
index 0000000000..176da65b13
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f52c.svg b/public/emoji/1f468-1f3fe-200d-1f52c.svg
new file mode 100644
index 0000000000..ef4187208b
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f680.svg b/public/emoji/1f468-1f3fe-200d-1f680.svg
new file mode 100644
index 0000000000..56fc2b18b0
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-1f692.svg b/public/emoji/1f468-1f3fe-200d-1f692.svg
new file mode 100644
index 0000000000..0408f4d359
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-2695-fe0f.svg b/public/emoji/1f468-1f3fe-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..385369bf5e
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-2696-fe0f.svg b/public/emoji/1f468-1f3fe-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..ceb83559f5
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe-200d-2708-fe0f.svg b/public/emoji/1f468-1f3fe-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..799fd409b1
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3fe.png b/public/emoji/1f468-1f3fe.png
deleted file mode 100644
index db14cde99b..0000000000
Binary files a/public/emoji/1f468-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f468-1f3fe.svg b/public/emoji/1f468-1f3fe.svg
index 9dc4c6df70..62054625af 100644
--- a/public/emoji/1f468-1f3fe.svg
+++ b/public/emoji/1f468-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f33e.svg b/public/emoji/1f468-1f3ff-200d-1f33e.svg
new file mode 100644
index 0000000000..e5edce8149
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f373.svg b/public/emoji/1f468-1f3ff-200d-1f373.svg
new file mode 100644
index 0000000000..30eba86edb
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f393.svg b/public/emoji/1f468-1f3ff-200d-1f393.svg
new file mode 100644
index 0000000000..7d5672e850
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f3a4.svg b/public/emoji/1f468-1f3ff-200d-1f3a4.svg
new file mode 100644
index 0000000000..28d5059edd
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f3a8.svg b/public/emoji/1f468-1f3ff-200d-1f3a8.svg
new file mode 100644
index 0000000000..e63e974c66
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f3eb.svg b/public/emoji/1f468-1f3ff-200d-1f3eb.svg
new file mode 100644
index 0000000000..2565b202fb
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f3ed.svg b/public/emoji/1f468-1f3ff-200d-1f3ed.svg
new file mode 100644
index 0000000000..a3de0981d9
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f4bb.svg b/public/emoji/1f468-1f3ff-200d-1f4bb.svg
new file mode 100644
index 0000000000..401bfb9eb7
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f4bc.svg b/public/emoji/1f468-1f3ff-200d-1f4bc.svg
new file mode 100644
index 0000000000..6e48ee3532
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f527.svg b/public/emoji/1f468-1f3ff-200d-1f527.svg
new file mode 100644
index 0000000000..b188a3d21e
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f52c.svg b/public/emoji/1f468-1f3ff-200d-1f52c.svg
new file mode 100644
index 0000000000..e0eccb44bd
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f680.svg b/public/emoji/1f468-1f3ff-200d-1f680.svg
new file mode 100644
index 0000000000..21f0babefb
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-1f692.svg b/public/emoji/1f468-1f3ff-200d-1f692.svg
new file mode 100644
index 0000000000..e99af4b65b
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-2695-fe0f.svg b/public/emoji/1f468-1f3ff-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..515da8684d
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-2696-fe0f.svg b/public/emoji/1f468-1f3ff-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..96f7b0b85e
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff-200d-2708-fe0f.svg b/public/emoji/1f468-1f3ff-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..713423a789
--- /dev/null
+++ b/public/emoji/1f468-1f3ff-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-1f3ff.png b/public/emoji/1f468-1f3ff.png
deleted file mode 100644
index 7c67a70529..0000000000
Binary files a/public/emoji/1f468-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f468-1f3ff.svg b/public/emoji/1f468-1f3ff.svg
index fab2b43492..f8f629a42f 100644
--- a/public/emoji/1f468-1f3ff.svg
+++ b/public/emoji/1f468-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f468-1f468-1f466-1f466.png b/public/emoji/1f468-1f468-1f466-1f466.png
deleted file mode 100644
index 81e6c0fc0e..0000000000
Binary files a/public/emoji/1f468-1f468-1f466-1f466.png and /dev/null differ
diff --git a/public/emoji/1f468-1f468-1f466-1f466.svg b/public/emoji/1f468-1f468-1f466-1f466.svg
deleted file mode 100644
index 5c348147b6..0000000000
--- a/public/emoji/1f468-1f468-1f466-1f466.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f468-1f468-1f466.png b/public/emoji/1f468-1f468-1f466.png
deleted file mode 100644
index 7a2e4e2c49..0000000000
Binary files a/public/emoji/1f468-1f468-1f466.png and /dev/null differ
diff --git a/public/emoji/1f468-1f468-1f466.svg b/public/emoji/1f468-1f468-1f466.svg
deleted file mode 100644
index 7f5946500f..0000000000
--- a/public/emoji/1f468-1f468-1f466.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f468-1f468-1f467-1f466.png b/public/emoji/1f468-1f468-1f467-1f466.png
deleted file mode 100644
index 41e3516667..0000000000
Binary files a/public/emoji/1f468-1f468-1f467-1f466.png and /dev/null differ
diff --git a/public/emoji/1f468-1f468-1f467-1f466.svg b/public/emoji/1f468-1f468-1f467-1f466.svg
deleted file mode 100644
index 555c8bd84b..0000000000
--- a/public/emoji/1f468-1f468-1f467-1f466.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f468-1f468-1f467-1f467.png b/public/emoji/1f468-1f468-1f467-1f467.png
deleted file mode 100644
index 8e8ccfe6c7..0000000000
Binary files a/public/emoji/1f468-1f468-1f467-1f467.png and /dev/null differ
diff --git a/public/emoji/1f468-1f468-1f467-1f467.svg b/public/emoji/1f468-1f468-1f467-1f467.svg
deleted file mode 100644
index 1e35ca4eb1..0000000000
--- a/public/emoji/1f468-1f468-1f467-1f467.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f468-1f468-1f467.png b/public/emoji/1f468-1f468-1f467.png
deleted file mode 100644
index 932a85e1fe..0000000000
Binary files a/public/emoji/1f468-1f468-1f467.png and /dev/null differ
diff --git a/public/emoji/1f468-1f468-1f467.svg b/public/emoji/1f468-1f468-1f467.svg
deleted file mode 100644
index 6dfa7e98eb..0000000000
--- a/public/emoji/1f468-1f468-1f467.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f468-1f469-1f466-1f466.png b/public/emoji/1f468-1f469-1f466-1f466.png
deleted file mode 100644
index b544fbe573..0000000000
Binary files a/public/emoji/1f468-1f469-1f466-1f466.png and /dev/null differ
diff --git a/public/emoji/1f468-1f469-1f466-1f466.svg b/public/emoji/1f468-1f469-1f466-1f466.svg
deleted file mode 100644
index f877a886c9..0000000000
--- a/public/emoji/1f468-1f469-1f466-1f466.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f468-1f469-1f467-1f466.png b/public/emoji/1f468-1f469-1f467-1f466.png
deleted file mode 100644
index 40dbf1f7a1..0000000000
Binary files a/public/emoji/1f468-1f469-1f467-1f466.png and /dev/null differ
diff --git a/public/emoji/1f468-1f469-1f467-1f466.svg b/public/emoji/1f468-1f469-1f467-1f466.svg
deleted file mode 100644
index 0ab0a6b2bc..0000000000
--- a/public/emoji/1f468-1f469-1f467-1f466.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f468-1f469-1f467-1f467.png b/public/emoji/1f468-1f469-1f467-1f467.png
deleted file mode 100644
index bfefa4879c..0000000000
Binary files a/public/emoji/1f468-1f469-1f467-1f467.png and /dev/null differ
diff --git a/public/emoji/1f468-1f469-1f467-1f467.svg b/public/emoji/1f468-1f469-1f467-1f467.svg
deleted file mode 100644
index ca1285f9be..0000000000
--- a/public/emoji/1f468-1f469-1f467-1f467.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f468-1f469-1f467.png b/public/emoji/1f468-1f469-1f467.png
deleted file mode 100644
index 71d2681c32..0000000000
Binary files a/public/emoji/1f468-1f469-1f467.png and /dev/null differ
diff --git a/public/emoji/1f468-1f469-1f467.svg b/public/emoji/1f468-1f469-1f467.svg
deleted file mode 100644
index 0afec9c1b9..0000000000
--- a/public/emoji/1f468-1f469-1f467.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f468-200d-1f33e.svg b/public/emoji/1f468-200d-1f33e.svg
new file mode 100644
index 0000000000..315a53f07b
--- /dev/null
+++ b/public/emoji/1f468-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f373.svg b/public/emoji/1f468-200d-1f373.svg
new file mode 100644
index 0000000000..e999b54938
--- /dev/null
+++ b/public/emoji/1f468-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f393.svg b/public/emoji/1f468-200d-1f393.svg
new file mode 100644
index 0000000000..701bc5f3aa
--- /dev/null
+++ b/public/emoji/1f468-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f3a4.svg b/public/emoji/1f468-200d-1f3a4.svg
new file mode 100644
index 0000000000..48bbd13e8e
--- /dev/null
+++ b/public/emoji/1f468-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f3a8.svg b/public/emoji/1f468-200d-1f3a8.svg
new file mode 100644
index 0000000000..861521d275
--- /dev/null
+++ b/public/emoji/1f468-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f3eb.svg b/public/emoji/1f468-200d-1f3eb.svg
new file mode 100644
index 0000000000..ff49105fc4
--- /dev/null
+++ b/public/emoji/1f468-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f3ed.svg b/public/emoji/1f468-200d-1f3ed.svg
new file mode 100644
index 0000000000..178acc73aa
--- /dev/null
+++ b/public/emoji/1f468-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f466-200d-1f466.svg b/public/emoji/1f468-200d-1f466-200d-1f466.svg
new file mode 100644
index 0000000000..8edd3a9c56
--- /dev/null
+++ b/public/emoji/1f468-200d-1f466-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f466.svg b/public/emoji/1f468-200d-1f466.svg
new file mode 100644
index 0000000000..6ef28200c0
--- /dev/null
+++ b/public/emoji/1f468-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f467-200d-1f466.svg b/public/emoji/1f468-200d-1f467-200d-1f466.svg
new file mode 100644
index 0000000000..a12e1379f8
--- /dev/null
+++ b/public/emoji/1f468-200d-1f467-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f467-200d-1f467.svg b/public/emoji/1f468-200d-1f467-200d-1f467.svg
new file mode 100644
index 0000000000..b9b029f59a
--- /dev/null
+++ b/public/emoji/1f468-200d-1f467-200d-1f467.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f467.svg b/public/emoji/1f468-200d-1f467.svg
new file mode 100644
index 0000000000..9b0ded754a
--- /dev/null
+++ b/public/emoji/1f468-200d-1f467.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f468-200d-1f466-200d-1f466.svg b/public/emoji/1f468-200d-1f468-200d-1f466-200d-1f466.svg
new file mode 100644
index 0000000000..621d66ec97
--- /dev/null
+++ b/public/emoji/1f468-200d-1f468-200d-1f466-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f468-200d-1f466.svg b/public/emoji/1f468-200d-1f468-200d-1f466.svg
new file mode 100644
index 0000000000..b44243a480
--- /dev/null
+++ b/public/emoji/1f468-200d-1f468-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f466.svg b/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f466.svg
new file mode 100644
index 0000000000..613d824d38
--- /dev/null
+++ b/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f467.svg b/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f467.svg
new file mode 100644
index 0000000000..8dcf9c6348
--- /dev/null
+++ b/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f467.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f468-200d-1f467.svg b/public/emoji/1f468-200d-1f468-200d-1f467.svg
new file mode 100644
index 0000000000..f5395db98d
--- /dev/null
+++ b/public/emoji/1f468-200d-1f468-200d-1f467.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f469-200d-1f466-200d-1f466.svg b/public/emoji/1f468-200d-1f469-200d-1f466-200d-1f466.svg
new file mode 100644
index 0000000000..4146ccc4f7
--- /dev/null
+++ b/public/emoji/1f468-200d-1f469-200d-1f466-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f469-200d-1f466.svg b/public/emoji/1f468-200d-1f469-200d-1f466.svg
new file mode 100644
index 0000000000..ce5ccdd204
--- /dev/null
+++ b/public/emoji/1f468-200d-1f469-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f466.svg b/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f466.svg
new file mode 100644
index 0000000000..de683b2563
--- /dev/null
+++ b/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg b/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg
new file mode 100644
index 0000000000..bbc2e5b404
--- /dev/null
+++ b/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f469-200d-1f467.svg b/public/emoji/1f468-200d-1f469-200d-1f467.svg
new file mode 100644
index 0000000000..6eecb56bbc
--- /dev/null
+++ b/public/emoji/1f468-200d-1f469-200d-1f467.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f4bb.svg b/public/emoji/1f468-200d-1f4bb.svg
new file mode 100644
index 0000000000..d5721aa9cd
--- /dev/null
+++ b/public/emoji/1f468-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f4bc.svg b/public/emoji/1f468-200d-1f4bc.svg
new file mode 100644
index 0000000000..62b3870a9d
--- /dev/null
+++ b/public/emoji/1f468-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f527.svg b/public/emoji/1f468-200d-1f527.svg
new file mode 100644
index 0000000000..22e44a25b9
--- /dev/null
+++ b/public/emoji/1f468-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f52c.svg b/public/emoji/1f468-200d-1f52c.svg
new file mode 100644
index 0000000000..084d54a684
--- /dev/null
+++ b/public/emoji/1f468-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f680.svg b/public/emoji/1f468-200d-1f680.svg
new file mode 100644
index 0000000000..5a5e3c84b2
--- /dev/null
+++ b/public/emoji/1f468-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-1f692.svg b/public/emoji/1f468-200d-1f692.svg
new file mode 100644
index 0000000000..134d977222
--- /dev/null
+++ b/public/emoji/1f468-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-2695-fe0f.svg b/public/emoji/1f468-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..4c83450a2f
--- /dev/null
+++ b/public/emoji/1f468-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-2696-fe0f.svg b/public/emoji/1f468-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..01dc234b65
--- /dev/null
+++ b/public/emoji/1f468-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-2708-fe0f.svg b/public/emoji/1f468-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..e787f82751
--- /dev/null
+++ b/public/emoji/1f468-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-2764-fe0f-200d-1f468.svg b/public/emoji/1f468-200d-2764-fe0f-200d-1f468.svg
new file mode 100644
index 0000000000..42220fc2e0
--- /dev/null
+++ b/public/emoji/1f468-200d-2764-fe0f-200d-1f468.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-200d-2764-fe0f-200d-1f48b-200d-1f468.svg b/public/emoji/1f468-200d-2764-fe0f-200d-1f48b-200d-1f468.svg
new file mode 100644
index 0000000000..0a0955d14e
--- /dev/null
+++ b/public/emoji/1f468-200d-2764-fe0f-200d-1f48b-200d-1f468.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f468-2764-1f468.png b/public/emoji/1f468-2764-1f468.png
deleted file mode 100644
index 8759fa5db8..0000000000
Binary files a/public/emoji/1f468-2764-1f468.png and /dev/null differ
diff --git a/public/emoji/1f468-2764-1f468.svg b/public/emoji/1f468-2764-1f468.svg
deleted file mode 100644
index 727c3fc949..0000000000
--- a/public/emoji/1f468-2764-1f468.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f468-2764-1f48b-1f468.png b/public/emoji/1f468-2764-1f48b-1f468.png
deleted file mode 100644
index a9a0edae17..0000000000
Binary files a/public/emoji/1f468-2764-1f48b-1f468.png and /dev/null differ
diff --git a/public/emoji/1f468-2764-1f48b-1f468.svg b/public/emoji/1f468-2764-1f48b-1f468.svg
deleted file mode 100644
index 5e84506824..0000000000
--- a/public/emoji/1f468-2764-1f48b-1f468.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f468.png b/public/emoji/1f468.png
deleted file mode 100644
index 857a02e514..0000000000
Binary files a/public/emoji/1f468.png and /dev/null differ
diff --git a/public/emoji/1f468.svg b/public/emoji/1f468.svg
index 0f27a28365..9148131936 100644
--- a/public/emoji/1f468.svg
+++ b/public/emoji/1f468.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f33e.svg b/public/emoji/1f469-1f3fb-200d-1f33e.svg
new file mode 100644
index 0000000000..a393ab23e6
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f373.svg b/public/emoji/1f469-1f3fb-200d-1f373.svg
new file mode 100644
index 0000000000..49513c95f5
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f393.svg b/public/emoji/1f469-1f3fb-200d-1f393.svg
new file mode 100644
index 0000000000..15b1261679
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f3a4.svg b/public/emoji/1f469-1f3fb-200d-1f3a4.svg
new file mode 100644
index 0000000000..a0648002f7
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f3a8.svg b/public/emoji/1f469-1f3fb-200d-1f3a8.svg
new file mode 100644
index 0000000000..ab51794347
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f3eb.svg b/public/emoji/1f469-1f3fb-200d-1f3eb.svg
new file mode 100644
index 0000000000..68f3a9e4e7
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f3ed.svg b/public/emoji/1f469-1f3fb-200d-1f3ed.svg
new file mode 100644
index 0000000000..3586f5448c
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f4bb.svg b/public/emoji/1f469-1f3fb-200d-1f4bb.svg
new file mode 100644
index 0000000000..01efc523f6
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f4bc.svg b/public/emoji/1f469-1f3fb-200d-1f4bc.svg
new file mode 100644
index 0000000000..60bf352906
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f527.svg b/public/emoji/1f469-1f3fb-200d-1f527.svg
new file mode 100644
index 0000000000..db0ba00c29
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f52c.svg b/public/emoji/1f469-1f3fb-200d-1f52c.svg
new file mode 100644
index 0000000000..95fbcb49b4
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f680.svg b/public/emoji/1f469-1f3fb-200d-1f680.svg
new file mode 100644
index 0000000000..5913cc9b60
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-1f692.svg b/public/emoji/1f469-1f3fb-200d-1f692.svg
new file mode 100644
index 0000000000..c3442f9551
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-2695-fe0f.svg b/public/emoji/1f469-1f3fb-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..1873ac8c3d
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-2696-fe0f.svg b/public/emoji/1f469-1f3fb-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..92cf6553e8
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb-200d-2708-fe0f.svg b/public/emoji/1f469-1f3fb-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..3d9d0cecad
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fb.png b/public/emoji/1f469-1f3fb.png
deleted file mode 100644
index ff089b8889..0000000000
Binary files a/public/emoji/1f469-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f469-1f3fb.svg b/public/emoji/1f469-1f3fb.svg
index 62b4b63227..7866eff41f 100644
--- a/public/emoji/1f469-1f3fb.svg
+++ b/public/emoji/1f469-1f3fb.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f33e.svg b/public/emoji/1f469-1f3fc-200d-1f33e.svg
new file mode 100644
index 0000000000..442deaec1f
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f373.svg b/public/emoji/1f469-1f3fc-200d-1f373.svg
new file mode 100644
index 0000000000..a4161eaca4
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f393.svg b/public/emoji/1f469-1f3fc-200d-1f393.svg
new file mode 100644
index 0000000000..5aa6c0ec0e
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f3a4.svg b/public/emoji/1f469-1f3fc-200d-1f3a4.svg
new file mode 100644
index 0000000000..9f26f9fda7
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f3a8.svg b/public/emoji/1f469-1f3fc-200d-1f3a8.svg
new file mode 100644
index 0000000000..11017c8002
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f3eb.svg b/public/emoji/1f469-1f3fc-200d-1f3eb.svg
new file mode 100644
index 0000000000..e0f456b98a
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f3ed.svg b/public/emoji/1f469-1f3fc-200d-1f3ed.svg
new file mode 100644
index 0000000000..0cef02e69d
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f4bb.svg b/public/emoji/1f469-1f3fc-200d-1f4bb.svg
new file mode 100644
index 0000000000..37c0eb59c7
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f4bc.svg b/public/emoji/1f469-1f3fc-200d-1f4bc.svg
new file mode 100644
index 0000000000..3daf9c47bb
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f527.svg b/public/emoji/1f469-1f3fc-200d-1f527.svg
new file mode 100644
index 0000000000..3b6fc5c200
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f52c.svg b/public/emoji/1f469-1f3fc-200d-1f52c.svg
new file mode 100644
index 0000000000..47d03225af
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f680.svg b/public/emoji/1f469-1f3fc-200d-1f680.svg
new file mode 100644
index 0000000000..11378acaef
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-1f692.svg b/public/emoji/1f469-1f3fc-200d-1f692.svg
new file mode 100644
index 0000000000..35e271ba47
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-2695-fe0f.svg b/public/emoji/1f469-1f3fc-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..dabd93e1dd
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-2696-fe0f.svg b/public/emoji/1f469-1f3fc-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..f0a3ea40c0
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc-200d-2708-fe0f.svg b/public/emoji/1f469-1f3fc-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..81c041eebe
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fc.png b/public/emoji/1f469-1f3fc.png
deleted file mode 100644
index 0719c37801..0000000000
Binary files a/public/emoji/1f469-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f469-1f3fc.svg b/public/emoji/1f469-1f3fc.svg
index 2556b3a2d3..8328828e1e 100644
--- a/public/emoji/1f469-1f3fc.svg
+++ b/public/emoji/1f469-1f3fc.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f33e.svg b/public/emoji/1f469-1f3fd-200d-1f33e.svg
new file mode 100644
index 0000000000..31787ece26
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f373.svg b/public/emoji/1f469-1f3fd-200d-1f373.svg
new file mode 100644
index 0000000000..9abc408961
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f393.svg b/public/emoji/1f469-1f3fd-200d-1f393.svg
new file mode 100644
index 0000000000..25fd3caaa1
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f3a4.svg b/public/emoji/1f469-1f3fd-200d-1f3a4.svg
new file mode 100644
index 0000000000..ad6deb4d01
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f3a8.svg b/public/emoji/1f469-1f3fd-200d-1f3a8.svg
new file mode 100644
index 0000000000..c6233010ea
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f3eb.svg b/public/emoji/1f469-1f3fd-200d-1f3eb.svg
new file mode 100644
index 0000000000..d059eb64a6
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f3ed.svg b/public/emoji/1f469-1f3fd-200d-1f3ed.svg
new file mode 100644
index 0000000000..d242300ab7
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f4bb.svg b/public/emoji/1f469-1f3fd-200d-1f4bb.svg
new file mode 100644
index 0000000000..3f16d298a8
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f4bc.svg b/public/emoji/1f469-1f3fd-200d-1f4bc.svg
new file mode 100644
index 0000000000..b9cb8782d0
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f527.svg b/public/emoji/1f469-1f3fd-200d-1f527.svg
new file mode 100644
index 0000000000..01b65f1e10
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f52c.svg b/public/emoji/1f469-1f3fd-200d-1f52c.svg
new file mode 100644
index 0000000000..89158a2333
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f680.svg b/public/emoji/1f469-1f3fd-200d-1f680.svg
new file mode 100644
index 0000000000..df8627aacb
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-1f692.svg b/public/emoji/1f469-1f3fd-200d-1f692.svg
new file mode 100644
index 0000000000..bbc2e7cad6
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-2695-fe0f.svg b/public/emoji/1f469-1f3fd-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..5c96c15c3c
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-2696-fe0f.svg b/public/emoji/1f469-1f3fd-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..5c34de7b88
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd-200d-2708-fe0f.svg b/public/emoji/1f469-1f3fd-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..e149723f0c
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fd.png b/public/emoji/1f469-1f3fd.png
deleted file mode 100644
index 5672e2fd52..0000000000
Binary files a/public/emoji/1f469-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f469-1f3fd.svg b/public/emoji/1f469-1f3fd.svg
index c026985664..0c25028ae7 100644
--- a/public/emoji/1f469-1f3fd.svg
+++ b/public/emoji/1f469-1f3fd.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f33e.svg b/public/emoji/1f469-1f3fe-200d-1f33e.svg
new file mode 100644
index 0000000000..ee03115ffa
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f373.svg b/public/emoji/1f469-1f3fe-200d-1f373.svg
new file mode 100644
index 0000000000..ca0215f9c4
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f393.svg b/public/emoji/1f469-1f3fe-200d-1f393.svg
new file mode 100644
index 0000000000..2998bbc9b8
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f3a4.svg b/public/emoji/1f469-1f3fe-200d-1f3a4.svg
new file mode 100644
index 0000000000..f1d48b1d8f
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f3a8.svg b/public/emoji/1f469-1f3fe-200d-1f3a8.svg
new file mode 100644
index 0000000000..5e7049c806
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f3eb.svg b/public/emoji/1f469-1f3fe-200d-1f3eb.svg
new file mode 100644
index 0000000000..70e1044b0f
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f3ed.svg b/public/emoji/1f469-1f3fe-200d-1f3ed.svg
new file mode 100644
index 0000000000..a8a3c3479d
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f4bb.svg b/public/emoji/1f469-1f3fe-200d-1f4bb.svg
new file mode 100644
index 0000000000..51fb3f47da
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f4bc.svg b/public/emoji/1f469-1f3fe-200d-1f4bc.svg
new file mode 100644
index 0000000000..61aef57240
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f527.svg b/public/emoji/1f469-1f3fe-200d-1f527.svg
new file mode 100644
index 0000000000..fe47e22fab
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f52c.svg b/public/emoji/1f469-1f3fe-200d-1f52c.svg
new file mode 100644
index 0000000000..ba7c0e68d0
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f680.svg b/public/emoji/1f469-1f3fe-200d-1f680.svg
new file mode 100644
index 0000000000..e2734a3553
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-1f692.svg b/public/emoji/1f469-1f3fe-200d-1f692.svg
new file mode 100644
index 0000000000..6ad50f7401
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-2695-fe0f.svg b/public/emoji/1f469-1f3fe-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..1f1492f76b
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-2696-fe0f.svg b/public/emoji/1f469-1f3fe-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..021c287232
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe-200d-2708-fe0f.svg b/public/emoji/1f469-1f3fe-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..c82832cb5f
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3fe.png b/public/emoji/1f469-1f3fe.png
deleted file mode 100644
index 5754aab558..0000000000
Binary files a/public/emoji/1f469-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f469-1f3fe.svg b/public/emoji/1f469-1f3fe.svg
index 8c977082dd..2aa3fef23d 100644
--- a/public/emoji/1f469-1f3fe.svg
+++ b/public/emoji/1f469-1f3fe.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f33e.svg b/public/emoji/1f469-1f3ff-200d-1f33e.svg
new file mode 100644
index 0000000000..36db97cc3f
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f373.svg b/public/emoji/1f469-1f3ff-200d-1f373.svg
new file mode 100644
index 0000000000..02cd40205e
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f393.svg b/public/emoji/1f469-1f3ff-200d-1f393.svg
new file mode 100644
index 0000000000..6822832bab
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f3a4.svg b/public/emoji/1f469-1f3ff-200d-1f3a4.svg
new file mode 100644
index 0000000000..b23847530a
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f3a8.svg b/public/emoji/1f469-1f3ff-200d-1f3a8.svg
new file mode 100644
index 0000000000..930d5ed5d0
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f3eb.svg b/public/emoji/1f469-1f3ff-200d-1f3eb.svg
new file mode 100644
index 0000000000..925977b395
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f3ed.svg b/public/emoji/1f469-1f3ff-200d-1f3ed.svg
new file mode 100644
index 0000000000..cde71c216e
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f4bb.svg b/public/emoji/1f469-1f3ff-200d-1f4bb.svg
new file mode 100644
index 0000000000..a41064af8d
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f4bc.svg b/public/emoji/1f469-1f3ff-200d-1f4bc.svg
new file mode 100644
index 0000000000..eea06ae801
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f527.svg b/public/emoji/1f469-1f3ff-200d-1f527.svg
new file mode 100644
index 0000000000..cf2c4e3106
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f52c.svg b/public/emoji/1f469-1f3ff-200d-1f52c.svg
new file mode 100644
index 0000000000..06e8d253d1
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f680.svg b/public/emoji/1f469-1f3ff-200d-1f680.svg
new file mode 100644
index 0000000000..35fe42f5f3
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-1f692.svg b/public/emoji/1f469-1f3ff-200d-1f692.svg
new file mode 100644
index 0000000000..861b1ff043
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-2695-fe0f.svg b/public/emoji/1f469-1f3ff-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..40fe1cb157
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-2696-fe0f.svg b/public/emoji/1f469-1f3ff-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..2385f231a3
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff-200d-2708-fe0f.svg b/public/emoji/1f469-1f3ff-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..273621927b
--- /dev/null
+++ b/public/emoji/1f469-1f3ff-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-1f3ff.png b/public/emoji/1f469-1f3ff.png
deleted file mode 100644
index fc252af3a3..0000000000
Binary files a/public/emoji/1f469-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f469-1f3ff.svg b/public/emoji/1f469-1f3ff.svg
index 3078858cd0..523ac98cc8 100644
--- a/public/emoji/1f469-1f3ff.svg
+++ b/public/emoji/1f469-1f3ff.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f469-1f469-1f466-1f466.png b/public/emoji/1f469-1f469-1f466-1f466.png
deleted file mode 100644
index 6c6ba45e7b..0000000000
Binary files a/public/emoji/1f469-1f469-1f466-1f466.png and /dev/null differ
diff --git a/public/emoji/1f469-1f469-1f466-1f466.svg b/public/emoji/1f469-1f469-1f466-1f466.svg
deleted file mode 100644
index 8bd5911037..0000000000
--- a/public/emoji/1f469-1f469-1f466-1f466.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f469-1f469-1f466.png b/public/emoji/1f469-1f469-1f466.png
deleted file mode 100644
index 836feae7c7..0000000000
Binary files a/public/emoji/1f469-1f469-1f466.png and /dev/null differ
diff --git a/public/emoji/1f469-1f469-1f466.svg b/public/emoji/1f469-1f469-1f466.svg
deleted file mode 100644
index ece9c72c43..0000000000
--- a/public/emoji/1f469-1f469-1f466.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f469-1f469-1f467-1f466.png b/public/emoji/1f469-1f469-1f467-1f466.png
deleted file mode 100644
index 284d29ab5d..0000000000
Binary files a/public/emoji/1f469-1f469-1f467-1f466.png and /dev/null differ
diff --git a/public/emoji/1f469-1f469-1f467-1f466.svg b/public/emoji/1f469-1f469-1f467-1f466.svg
deleted file mode 100644
index 2f4951e980..0000000000
--- a/public/emoji/1f469-1f469-1f467-1f466.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f469-1f469-1f467-1f467.png b/public/emoji/1f469-1f469-1f467-1f467.png
deleted file mode 100644
index d8d3f49b85..0000000000
Binary files a/public/emoji/1f469-1f469-1f467-1f467.png and /dev/null differ
diff --git a/public/emoji/1f469-1f469-1f467-1f467.svg b/public/emoji/1f469-1f469-1f467-1f467.svg
deleted file mode 100644
index 73760fbb4d..0000000000
--- a/public/emoji/1f469-1f469-1f467-1f467.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f469-1f469-1f467.png b/public/emoji/1f469-1f469-1f467.png
deleted file mode 100644
index 41225c6fa5..0000000000
Binary files a/public/emoji/1f469-1f469-1f467.png and /dev/null differ
diff --git a/public/emoji/1f469-1f469-1f467.svg b/public/emoji/1f469-1f469-1f467.svg
deleted file mode 100644
index bbc72da228..0000000000
--- a/public/emoji/1f469-1f469-1f467.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f469-200d-1f33e.svg b/public/emoji/1f469-200d-1f33e.svg
new file mode 100644
index 0000000000..e1a146570b
--- /dev/null
+++ b/public/emoji/1f469-200d-1f33e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f373.svg b/public/emoji/1f469-200d-1f373.svg
new file mode 100644
index 0000000000..4883fffcba
--- /dev/null
+++ b/public/emoji/1f469-200d-1f373.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f393.svg b/public/emoji/1f469-200d-1f393.svg
new file mode 100644
index 0000000000..0edec9c295
--- /dev/null
+++ b/public/emoji/1f469-200d-1f393.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f3a4.svg b/public/emoji/1f469-200d-1f3a4.svg
new file mode 100644
index 0000000000..b8da6c8d3e
--- /dev/null
+++ b/public/emoji/1f469-200d-1f3a4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f3a8.svg b/public/emoji/1f469-200d-1f3a8.svg
new file mode 100644
index 0000000000..2db8c4a317
--- /dev/null
+++ b/public/emoji/1f469-200d-1f3a8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f3eb.svg b/public/emoji/1f469-200d-1f3eb.svg
new file mode 100644
index 0000000000..fe46827cc2
--- /dev/null
+++ b/public/emoji/1f469-200d-1f3eb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f3ed.svg b/public/emoji/1f469-200d-1f3ed.svg
new file mode 100644
index 0000000000..450cf4496e
--- /dev/null
+++ b/public/emoji/1f469-200d-1f3ed.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f466-200d-1f466.svg b/public/emoji/1f469-200d-1f466-200d-1f466.svg
new file mode 100644
index 0000000000..2f20655efd
--- /dev/null
+++ b/public/emoji/1f469-200d-1f466-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f466.svg b/public/emoji/1f469-200d-1f466.svg
new file mode 100644
index 0000000000..df6d988201
--- /dev/null
+++ b/public/emoji/1f469-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f467-200d-1f466.svg b/public/emoji/1f469-200d-1f467-200d-1f466.svg
new file mode 100644
index 0000000000..7c02a27bd5
--- /dev/null
+++ b/public/emoji/1f469-200d-1f467-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f467-200d-1f467.svg b/public/emoji/1f469-200d-1f467-200d-1f467.svg
new file mode 100644
index 0000000000..f016ce89c8
--- /dev/null
+++ b/public/emoji/1f469-200d-1f467-200d-1f467.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f467.svg b/public/emoji/1f469-200d-1f467.svg
new file mode 100644
index 0000000000..1c5d811eef
--- /dev/null
+++ b/public/emoji/1f469-200d-1f467.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg b/public/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg
new file mode 100644
index 0000000000..38198b363b
--- /dev/null
+++ b/public/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f469-200d-1f466.svg b/public/emoji/1f469-200d-1f469-200d-1f466.svg
new file mode 100644
index 0000000000..eeb0c80e14
--- /dev/null
+++ b/public/emoji/1f469-200d-1f469-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f466.svg b/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f466.svg
new file mode 100644
index 0000000000..1e84cdd354
--- /dev/null
+++ b/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f466.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f467.svg b/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f467.svg
new file mode 100644
index 0000000000..689084de1c
--- /dev/null
+++ b/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f467.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f469-200d-1f467.svg b/public/emoji/1f469-200d-1f469-200d-1f467.svg
new file mode 100644
index 0000000000..ac18f5515c
--- /dev/null
+++ b/public/emoji/1f469-200d-1f469-200d-1f467.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f4bb.svg b/public/emoji/1f469-200d-1f4bb.svg
new file mode 100644
index 0000000000..bc0eda085b
--- /dev/null
+++ b/public/emoji/1f469-200d-1f4bb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f4bc.svg b/public/emoji/1f469-200d-1f4bc.svg
new file mode 100644
index 0000000000..e84decf7af
--- /dev/null
+++ b/public/emoji/1f469-200d-1f4bc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f527.svg b/public/emoji/1f469-200d-1f527.svg
new file mode 100644
index 0000000000..c020914a93
--- /dev/null
+++ b/public/emoji/1f469-200d-1f527.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f52c.svg b/public/emoji/1f469-200d-1f52c.svg
new file mode 100644
index 0000000000..6a05dde12c
--- /dev/null
+++ b/public/emoji/1f469-200d-1f52c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f680.svg b/public/emoji/1f469-200d-1f680.svg
new file mode 100644
index 0000000000..54b41f7dc7
--- /dev/null
+++ b/public/emoji/1f469-200d-1f680.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-1f692.svg b/public/emoji/1f469-200d-1f692.svg
new file mode 100644
index 0000000000..e95a70cf9c
--- /dev/null
+++ b/public/emoji/1f469-200d-1f692.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-2695-fe0f.svg b/public/emoji/1f469-200d-2695-fe0f.svg
new file mode 100644
index 0000000000..a24749665f
--- /dev/null
+++ b/public/emoji/1f469-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-2696-fe0f.svg b/public/emoji/1f469-200d-2696-fe0f.svg
new file mode 100644
index 0000000000..69eb8c537a
--- /dev/null
+++ b/public/emoji/1f469-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-2708-fe0f.svg b/public/emoji/1f469-200d-2708-fe0f.svg
new file mode 100644
index 0000000000..25ab72a34b
--- /dev/null
+++ b/public/emoji/1f469-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-2764-fe0f-200d-1f468.svg b/public/emoji/1f469-200d-2764-fe0f-200d-1f468.svg
new file mode 100644
index 0000000000..9f42ccee84
--- /dev/null
+++ b/public/emoji/1f469-200d-2764-fe0f-200d-1f468.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-2764-fe0f-200d-1f469.svg b/public/emoji/1f469-200d-2764-fe0f-200d-1f469.svg
new file mode 100644
index 0000000000..804903c75c
--- /dev/null
+++ b/public/emoji/1f469-200d-2764-fe0f-200d-1f469.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f468.svg b/public/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f468.svg
new file mode 100644
index 0000000000..0bae3004bc
--- /dev/null
+++ b/public/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f468.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f469.svg b/public/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f469.svg
new file mode 100644
index 0000000000..529eff4d15
--- /dev/null
+++ b/public/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f469.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f469-2764-1f469.png b/public/emoji/1f469-2764-1f469.png
deleted file mode 100644
index 08fdabcdc5..0000000000
Binary files a/public/emoji/1f469-2764-1f469.png and /dev/null differ
diff --git a/public/emoji/1f469-2764-1f469.svg b/public/emoji/1f469-2764-1f469.svg
deleted file mode 100644
index 5f188ca18c..0000000000
--- a/public/emoji/1f469-2764-1f469.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f469-2764-1f48b-1f469.png b/public/emoji/1f469-2764-1f48b-1f469.png
deleted file mode 100644
index fdac73cbb1..0000000000
Binary files a/public/emoji/1f469-2764-1f48b-1f469.png and /dev/null differ
diff --git a/public/emoji/1f469-2764-1f48b-1f469.svg b/public/emoji/1f469-2764-1f48b-1f469.svg
deleted file mode 100644
index c236906195..0000000000
--- a/public/emoji/1f469-2764-1f48b-1f469.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f469.png b/public/emoji/1f469.png
deleted file mode 100644
index ece440e7a6..0000000000
Binary files a/public/emoji/1f469.png and /dev/null differ
diff --git a/public/emoji/1f469.svg b/public/emoji/1f469.svg
index 8a7fada151..6f7dde41f7 100644
--- a/public/emoji/1f469.svg
+++ b/public/emoji/1f469.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f46a.png b/public/emoji/1f46a.png
deleted file mode 100644
index 2642196579..0000000000
Binary files a/public/emoji/1f46a.png and /dev/null differ
diff --git a/public/emoji/1f46a.svg b/public/emoji/1f46a.svg
index e0fc9893bc..ab47f4abc7 100644
--- a/public/emoji/1f46a.svg
+++ b/public/emoji/1f46a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f46b.png b/public/emoji/1f46b.png
deleted file mode 100644
index 960323f3c1..0000000000
Binary files a/public/emoji/1f46b.png and /dev/null differ
diff --git a/public/emoji/1f46b.svg b/public/emoji/1f46b.svg
index 4e7dcce0fd..8115fe984c 100644
--- a/public/emoji/1f46b.svg
+++ b/public/emoji/1f46b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f46c.png b/public/emoji/1f46c.png
deleted file mode 100644
index a511fda822..0000000000
Binary files a/public/emoji/1f46c.png and /dev/null differ
diff --git a/public/emoji/1f46c.svg b/public/emoji/1f46c.svg
index 376a18dddc..7feab42c0c 100644
--- a/public/emoji/1f46c.svg
+++ b/public/emoji/1f46c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f46d.png b/public/emoji/1f46d.png
deleted file mode 100644
index b077cd3e40..0000000000
Binary files a/public/emoji/1f46d.png and /dev/null differ
diff --git a/public/emoji/1f46d.svg b/public/emoji/1f46d.svg
index ed12b05e15..fae1da2d4b 100644
--- a/public/emoji/1f46d.svg
+++ b/public/emoji/1f46d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f46e-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f46e-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..58bcfd77a7
--- /dev/null
+++ b/public/emoji/1f46e-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f46e-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..2bff6d5727
--- /dev/null
+++ b/public/emoji/1f46e-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e-1f3fb.png b/public/emoji/1f46e-1f3fb.png
deleted file mode 100644
index 6ccba3879d..0000000000
Binary files a/public/emoji/1f46e-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f46e-1f3fb.svg b/public/emoji/1f46e-1f3fb.svg
index 98a019fff4..2bff6d5727 100644
--- a/public/emoji/1f46e-1f3fb.svg
+++ b/public/emoji/1f46e-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f46e-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f46e-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..d3d127b3bf
--- /dev/null
+++ b/public/emoji/1f46e-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f46e-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..873359cd27
--- /dev/null
+++ b/public/emoji/1f46e-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e-1f3fc.png b/public/emoji/1f46e-1f3fc.png
deleted file mode 100644
index 7814ea9f52..0000000000
Binary files a/public/emoji/1f46e-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f46e-1f3fc.svg b/public/emoji/1f46e-1f3fc.svg
index 9e44350629..873359cd27 100644
--- a/public/emoji/1f46e-1f3fc.svg
+++ b/public/emoji/1f46e-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f46e-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f46e-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..b94c792bd3
--- /dev/null
+++ b/public/emoji/1f46e-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f46e-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..b0d9e6ae19
--- /dev/null
+++ b/public/emoji/1f46e-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e-1f3fd.png b/public/emoji/1f46e-1f3fd.png
deleted file mode 100644
index d78e88ec87..0000000000
Binary files a/public/emoji/1f46e-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f46e-1f3fd.svg b/public/emoji/1f46e-1f3fd.svg
index fe8b6f4513..b0d9e6ae19 100644
--- a/public/emoji/1f46e-1f3fd.svg
+++ b/public/emoji/1f46e-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f46e-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f46e-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..3e6a0c7ccb
--- /dev/null
+++ b/public/emoji/1f46e-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f46e-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1fdabb297f
--- /dev/null
+++ b/public/emoji/1f46e-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e-1f3fe.png b/public/emoji/1f46e-1f3fe.png
deleted file mode 100644
index 2e13c50831..0000000000
Binary files a/public/emoji/1f46e-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f46e-1f3fe.svg b/public/emoji/1f46e-1f3fe.svg
index d880766e58..1fdabb297f 100644
--- a/public/emoji/1f46e-1f3fe.svg
+++ b/public/emoji/1f46e-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f46e-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f46e-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..1b1ffa1075
--- /dev/null
+++ b/public/emoji/1f46e-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f46e-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..f6c19165aa
--- /dev/null
+++ b/public/emoji/1f46e-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e-1f3ff.png b/public/emoji/1f46e-1f3ff.png
deleted file mode 100644
index 2980d61cc2..0000000000
Binary files a/public/emoji/1f46e-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f46e-1f3ff.svg b/public/emoji/1f46e-1f3ff.svg
index 9ec2135b5e..f6c19165aa 100644
--- a/public/emoji/1f46e-1f3ff.svg
+++ b/public/emoji/1f46e-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f46e-200d-2640-fe0f.svg b/public/emoji/1f46e-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..79963b5e6b
--- /dev/null
+++ b/public/emoji/1f46e-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e-200d-2642-fe0f.svg b/public/emoji/1f46e-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..f38c573d01
--- /dev/null
+++ b/public/emoji/1f46e-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46e.png b/public/emoji/1f46e.png
deleted file mode 100644
index 0b16d7c17b..0000000000
Binary files a/public/emoji/1f46e.png and /dev/null differ
diff --git a/public/emoji/1f46e.svg b/public/emoji/1f46e.svg
index 3631cdd540..f38c573d01 100644
--- a/public/emoji/1f46e.svg
+++ b/public/emoji/1f46e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f46f-200d-2640-fe0f.svg b/public/emoji/1f46f-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..e3d470d6fe
--- /dev/null
+++ b/public/emoji/1f46f-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46f-200d-2642-fe0f.svg b/public/emoji/1f46f-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..d58f55fae0
--- /dev/null
+++ b/public/emoji/1f46f-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f46f.png b/public/emoji/1f46f.png
deleted file mode 100644
index 67e6ffacb7..0000000000
Binary files a/public/emoji/1f46f.png and /dev/null differ
diff --git a/public/emoji/1f46f.svg b/public/emoji/1f46f.svg
index 32985cc36b..e3d470d6fe 100644
--- a/public/emoji/1f46f.svg
+++ b/public/emoji/1f46f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f470-1f3fb.png b/public/emoji/1f470-1f3fb.png
deleted file mode 100644
index c4fb141ae8..0000000000
Binary files a/public/emoji/1f470-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f470-1f3fb.svg b/public/emoji/1f470-1f3fb.svg
index cb221eee12..b1eeedb6d7 100644
--- a/public/emoji/1f470-1f3fb.svg
+++ b/public/emoji/1f470-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f470-1f3fc.png b/public/emoji/1f470-1f3fc.png
deleted file mode 100644
index c248769fc0..0000000000
Binary files a/public/emoji/1f470-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f470-1f3fc.svg b/public/emoji/1f470-1f3fc.svg
index b571839713..09a8ed7e36 100644
--- a/public/emoji/1f470-1f3fc.svg
+++ b/public/emoji/1f470-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f470-1f3fd.png b/public/emoji/1f470-1f3fd.png
deleted file mode 100644
index 962c0a6eed..0000000000
Binary files a/public/emoji/1f470-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f470-1f3fd.svg b/public/emoji/1f470-1f3fd.svg
index 6c9874f778..e5b73e6af4 100644
--- a/public/emoji/1f470-1f3fd.svg
+++ b/public/emoji/1f470-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f470-1f3fe.png b/public/emoji/1f470-1f3fe.png
deleted file mode 100644
index 740ca208cd..0000000000
Binary files a/public/emoji/1f470-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f470-1f3fe.svg b/public/emoji/1f470-1f3fe.svg
index e4ff8c92d8..6fe5fe6076 100644
--- a/public/emoji/1f470-1f3fe.svg
+++ b/public/emoji/1f470-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f470-1f3ff.png b/public/emoji/1f470-1f3ff.png
deleted file mode 100644
index 5cc5598587..0000000000
Binary files a/public/emoji/1f470-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f470-1f3ff.svg b/public/emoji/1f470-1f3ff.svg
index 29633af92d..149a6fc242 100644
--- a/public/emoji/1f470-1f3ff.svg
+++ b/public/emoji/1f470-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f470.png b/public/emoji/1f470.png
deleted file mode 100644
index eaf4bd9789..0000000000
Binary files a/public/emoji/1f470.png and /dev/null differ
diff --git a/public/emoji/1f470.svg b/public/emoji/1f470.svg
index dc9e6c7301..3445fc8d6a 100644
--- a/public/emoji/1f470.svg
+++ b/public/emoji/1f470.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f471-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f471-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..b112f6a4ed
--- /dev/null
+++ b/public/emoji/1f471-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f471-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..b3b6a74d70
--- /dev/null
+++ b/public/emoji/1f471-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471-1f3fb.png b/public/emoji/1f471-1f3fb.png
deleted file mode 100644
index 7d18ef2444..0000000000
Binary files a/public/emoji/1f471-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f471-1f3fb.svg b/public/emoji/1f471-1f3fb.svg
index eee7e7a2c9..b3b6a74d70 100644
--- a/public/emoji/1f471-1f3fb.svg
+++ b/public/emoji/1f471-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f471-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f471-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..8328828e1e
--- /dev/null
+++ b/public/emoji/1f471-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f471-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..9f0eceb397
--- /dev/null
+++ b/public/emoji/1f471-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471-1f3fc.png b/public/emoji/1f471-1f3fc.png
deleted file mode 100644
index dae1307315..0000000000
Binary files a/public/emoji/1f471-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f471-1f3fc.svg b/public/emoji/1f471-1f3fc.svg
index 6bdf858863..9f0eceb397 100644
--- a/public/emoji/1f471-1f3fc.svg
+++ b/public/emoji/1f471-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f471-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f471-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..259f8ccbd5
--- /dev/null
+++ b/public/emoji/1f471-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f471-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..e1431d851e
--- /dev/null
+++ b/public/emoji/1f471-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471-1f3fd.png b/public/emoji/1f471-1f3fd.png
deleted file mode 100644
index 684677e8e5..0000000000
Binary files a/public/emoji/1f471-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f471-1f3fd.svg b/public/emoji/1f471-1f3fd.svg
index b08ba66848..e1431d851e 100644
--- a/public/emoji/1f471-1f3fd.svg
+++ b/public/emoji/1f471-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f471-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f471-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..b4ff0c9916
--- /dev/null
+++ b/public/emoji/1f471-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f471-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..994afaf962
--- /dev/null
+++ b/public/emoji/1f471-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471-1f3fe.png b/public/emoji/1f471-1f3fe.png
deleted file mode 100644
index 012be0b51f..0000000000
Binary files a/public/emoji/1f471-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f471-1f3fe.svg b/public/emoji/1f471-1f3fe.svg
index 72a38d2188..994afaf962 100644
--- a/public/emoji/1f471-1f3fe.svg
+++ b/public/emoji/1f471-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f471-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f471-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..b28b077d2a
--- /dev/null
+++ b/public/emoji/1f471-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f471-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..151970867a
--- /dev/null
+++ b/public/emoji/1f471-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471-1f3ff.png b/public/emoji/1f471-1f3ff.png
deleted file mode 100644
index d4ecc4cf44..0000000000
Binary files a/public/emoji/1f471-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f471-1f3ff.svg b/public/emoji/1f471-1f3ff.svg
index dcfd094c80..151970867a 100644
--- a/public/emoji/1f471-1f3ff.svg
+++ b/public/emoji/1f471-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f471-200d-2640-fe0f.svg b/public/emoji/1f471-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..a3f7c19988
--- /dev/null
+++ b/public/emoji/1f471-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471-200d-2642-fe0f.svg b/public/emoji/1f471-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..2c49aa3d5a
--- /dev/null
+++ b/public/emoji/1f471-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f471.png b/public/emoji/1f471.png
deleted file mode 100644
index ad6f01a7dd..0000000000
Binary files a/public/emoji/1f471.png and /dev/null differ
diff --git a/public/emoji/1f471.svg b/public/emoji/1f471.svg
index 2f56b379c9..2c49aa3d5a 100644
--- a/public/emoji/1f471.svg
+++ b/public/emoji/1f471.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f472-1f3fb.png b/public/emoji/1f472-1f3fb.png
deleted file mode 100644
index 5b7b3def19..0000000000
Binary files a/public/emoji/1f472-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f472-1f3fb.svg b/public/emoji/1f472-1f3fb.svg
index f02094dcbe..d3c168207f 100644
--- a/public/emoji/1f472-1f3fb.svg
+++ b/public/emoji/1f472-1f3fb.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f472-1f3fc.png b/public/emoji/1f472-1f3fc.png
deleted file mode 100644
index c8b9cf87f4..0000000000
Binary files a/public/emoji/1f472-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f472-1f3fc.svg b/public/emoji/1f472-1f3fc.svg
index 9933af021d..652c004127 100644
--- a/public/emoji/1f472-1f3fc.svg
+++ b/public/emoji/1f472-1f3fc.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f472-1f3fd.png b/public/emoji/1f472-1f3fd.png
deleted file mode 100644
index effdd0c4c8..0000000000
Binary files a/public/emoji/1f472-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f472-1f3fd.svg b/public/emoji/1f472-1f3fd.svg
index f2884ff0a8..9c8e135cec 100644
--- a/public/emoji/1f472-1f3fd.svg
+++ b/public/emoji/1f472-1f3fd.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f472-1f3fe.png b/public/emoji/1f472-1f3fe.png
deleted file mode 100644
index f885ff46fa..0000000000
Binary files a/public/emoji/1f472-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f472-1f3fe.svg b/public/emoji/1f472-1f3fe.svg
index 6bb5fad55e..2a80ac6263 100644
--- a/public/emoji/1f472-1f3fe.svg
+++ b/public/emoji/1f472-1f3fe.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f472-1f3ff.png b/public/emoji/1f472-1f3ff.png
deleted file mode 100644
index a6d55ca138..0000000000
Binary files a/public/emoji/1f472-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f472-1f3ff.svg b/public/emoji/1f472-1f3ff.svg
index c28a77da85..122e20c2b4 100644
--- a/public/emoji/1f472-1f3ff.svg
+++ b/public/emoji/1f472-1f3ff.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f472.png b/public/emoji/1f472.png
deleted file mode 100644
index 7841e13608..0000000000
Binary files a/public/emoji/1f472.png and /dev/null differ
diff --git a/public/emoji/1f472.svg b/public/emoji/1f472.svg
index 8274a23037..3f059078c0 100644
--- a/public/emoji/1f472.svg
+++ b/public/emoji/1f472.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f473-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f473-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..ffe17f1681
--- /dev/null
+++ b/public/emoji/1f473-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f473-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..9d8c687727
--- /dev/null
+++ b/public/emoji/1f473-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473-1f3fb.png b/public/emoji/1f473-1f3fb.png
deleted file mode 100644
index 1e12ee4b23..0000000000
Binary files a/public/emoji/1f473-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f473-1f3fb.svg b/public/emoji/1f473-1f3fb.svg
index 43c2e9d581..9d8c687727 100644
--- a/public/emoji/1f473-1f3fb.svg
+++ b/public/emoji/1f473-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f473-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f473-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..1487c58f38
--- /dev/null
+++ b/public/emoji/1f473-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f473-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..d08a57f69e
--- /dev/null
+++ b/public/emoji/1f473-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473-1f3fc.png b/public/emoji/1f473-1f3fc.png
deleted file mode 100644
index 37de4cceb2..0000000000
Binary files a/public/emoji/1f473-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f473-1f3fc.svg b/public/emoji/1f473-1f3fc.svg
index 86edb085ff..d08a57f69e 100644
--- a/public/emoji/1f473-1f3fc.svg
+++ b/public/emoji/1f473-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f473-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f473-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..8a5a251465
--- /dev/null
+++ b/public/emoji/1f473-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f473-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1a2a155a35
--- /dev/null
+++ b/public/emoji/1f473-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473-1f3fd.png b/public/emoji/1f473-1f3fd.png
deleted file mode 100644
index f607afd345..0000000000
Binary files a/public/emoji/1f473-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f473-1f3fd.svg b/public/emoji/1f473-1f3fd.svg
index 4567f58000..1a2a155a35 100644
--- a/public/emoji/1f473-1f3fd.svg
+++ b/public/emoji/1f473-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f473-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f473-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..be875ee376
--- /dev/null
+++ b/public/emoji/1f473-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f473-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..bca472d816
--- /dev/null
+++ b/public/emoji/1f473-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473-1f3fe.png b/public/emoji/1f473-1f3fe.png
deleted file mode 100644
index c05695888a..0000000000
Binary files a/public/emoji/1f473-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f473-1f3fe.svg b/public/emoji/1f473-1f3fe.svg
index ddb3d5beb6..bca472d816 100644
--- a/public/emoji/1f473-1f3fe.svg
+++ b/public/emoji/1f473-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f473-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f473-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..a01f89ddad
--- /dev/null
+++ b/public/emoji/1f473-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f473-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ca21b96511
--- /dev/null
+++ b/public/emoji/1f473-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473-1f3ff.png b/public/emoji/1f473-1f3ff.png
deleted file mode 100644
index 4b4ff64720..0000000000
Binary files a/public/emoji/1f473-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f473-1f3ff.svg b/public/emoji/1f473-1f3ff.svg
index 19b2e728f8..ca21b96511 100644
--- a/public/emoji/1f473-1f3ff.svg
+++ b/public/emoji/1f473-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f473-200d-2640-fe0f.svg b/public/emoji/1f473-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..ecd3fb021c
--- /dev/null
+++ b/public/emoji/1f473-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473-200d-2642-fe0f.svg b/public/emoji/1f473-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..627d773214
--- /dev/null
+++ b/public/emoji/1f473-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f473.png b/public/emoji/1f473.png
deleted file mode 100644
index 51cf047f96..0000000000
Binary files a/public/emoji/1f473.png and /dev/null differ
diff --git a/public/emoji/1f473.svg b/public/emoji/1f473.svg
index 5112808128..627d773214 100644
--- a/public/emoji/1f473.svg
+++ b/public/emoji/1f473.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f474-1f3fb.png b/public/emoji/1f474-1f3fb.png
deleted file mode 100644
index ab459baace..0000000000
Binary files a/public/emoji/1f474-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f474-1f3fb.svg b/public/emoji/1f474-1f3fb.svg
index 77aacc5a93..fd2ff9dcf9 100644
--- a/public/emoji/1f474-1f3fb.svg
+++ b/public/emoji/1f474-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f474-1f3fc.png b/public/emoji/1f474-1f3fc.png
deleted file mode 100644
index f4dfc7694e..0000000000
Binary files a/public/emoji/1f474-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f474-1f3fc.svg b/public/emoji/1f474-1f3fc.svg
index 03c13c515a..c4f43282b8 100644
--- a/public/emoji/1f474-1f3fc.svg
+++ b/public/emoji/1f474-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f474-1f3fd.png b/public/emoji/1f474-1f3fd.png
deleted file mode 100644
index 5ffd11792f..0000000000
Binary files a/public/emoji/1f474-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f474-1f3fd.svg b/public/emoji/1f474-1f3fd.svg
index 2a73bef919..4e532e6e25 100644
--- a/public/emoji/1f474-1f3fd.svg
+++ b/public/emoji/1f474-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f474-1f3fe.png b/public/emoji/1f474-1f3fe.png
deleted file mode 100644
index b350a764bf..0000000000
Binary files a/public/emoji/1f474-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f474-1f3fe.svg b/public/emoji/1f474-1f3fe.svg
index 0c9133ecee..1f19763a29 100644
--- a/public/emoji/1f474-1f3fe.svg
+++ b/public/emoji/1f474-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f474-1f3ff.png b/public/emoji/1f474-1f3ff.png
deleted file mode 100644
index 05fe24a170..0000000000
Binary files a/public/emoji/1f474-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f474-1f3ff.svg b/public/emoji/1f474-1f3ff.svg
index 14a6554c36..8d8bc09289 100644
--- a/public/emoji/1f474-1f3ff.svg
+++ b/public/emoji/1f474-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f474.png b/public/emoji/1f474.png
deleted file mode 100644
index 4ace4e6f30..0000000000
Binary files a/public/emoji/1f474.png and /dev/null differ
diff --git a/public/emoji/1f474.svg b/public/emoji/1f474.svg
index 79bd197e15..5f1c83bbc1 100644
--- a/public/emoji/1f474.svg
+++ b/public/emoji/1f474.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f475-1f3fb.png b/public/emoji/1f475-1f3fb.png
deleted file mode 100644
index b49e821402..0000000000
Binary files a/public/emoji/1f475-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f475-1f3fb.svg b/public/emoji/1f475-1f3fb.svg
index 1e1c55669a..86c69bae92 100644
--- a/public/emoji/1f475-1f3fb.svg
+++ b/public/emoji/1f475-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f475-1f3fc.png b/public/emoji/1f475-1f3fc.png
deleted file mode 100644
index e86bf5ab3b..0000000000
Binary files a/public/emoji/1f475-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f475-1f3fc.svg b/public/emoji/1f475-1f3fc.svg
index fd7cea0fc1..7207298c85 100644
--- a/public/emoji/1f475-1f3fc.svg
+++ b/public/emoji/1f475-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f475-1f3fd.png b/public/emoji/1f475-1f3fd.png
deleted file mode 100644
index 83fc14b087..0000000000
Binary files a/public/emoji/1f475-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f475-1f3fd.svg b/public/emoji/1f475-1f3fd.svg
index 121b50ba09..15c14c1447 100644
--- a/public/emoji/1f475-1f3fd.svg
+++ b/public/emoji/1f475-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f475-1f3fe.png b/public/emoji/1f475-1f3fe.png
deleted file mode 100644
index e4aa8a424d..0000000000
Binary files a/public/emoji/1f475-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f475-1f3fe.svg b/public/emoji/1f475-1f3fe.svg
index c1246e568a..e9950c3857 100644
--- a/public/emoji/1f475-1f3fe.svg
+++ b/public/emoji/1f475-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f475-1f3ff.png b/public/emoji/1f475-1f3ff.png
deleted file mode 100644
index 4009012bb0..0000000000
Binary files a/public/emoji/1f475-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f475-1f3ff.svg b/public/emoji/1f475-1f3ff.svg
index b1ae7cd6c5..31cb9f003b 100644
--- a/public/emoji/1f475-1f3ff.svg
+++ b/public/emoji/1f475-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f475.png b/public/emoji/1f475.png
deleted file mode 100644
index 52dc498714..0000000000
Binary files a/public/emoji/1f475.png and /dev/null differ
diff --git a/public/emoji/1f475.svg b/public/emoji/1f475.svg
index a2ac6131e0..a2d61af950 100644
--- a/public/emoji/1f475.svg
+++ b/public/emoji/1f475.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f476-1f3fb.png b/public/emoji/1f476-1f3fb.png
deleted file mode 100644
index d20911d40d..0000000000
Binary files a/public/emoji/1f476-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f476-1f3fb.svg b/public/emoji/1f476-1f3fb.svg
index aa85b9bd05..38e1aa8f68 100644
--- a/public/emoji/1f476-1f3fb.svg
+++ b/public/emoji/1f476-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f476-1f3fc.png b/public/emoji/1f476-1f3fc.png
deleted file mode 100644
index b0a9b30ed1..0000000000
Binary files a/public/emoji/1f476-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f476-1f3fc.svg b/public/emoji/1f476-1f3fc.svg
index 50f5f8c94d..d1fc49a2ca 100644
--- a/public/emoji/1f476-1f3fc.svg
+++ b/public/emoji/1f476-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f476-1f3fd.png b/public/emoji/1f476-1f3fd.png
deleted file mode 100644
index 7de5286fac..0000000000
Binary files a/public/emoji/1f476-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f476-1f3fd.svg b/public/emoji/1f476-1f3fd.svg
index 9d3946dcd5..85b9fa85cd 100644
--- a/public/emoji/1f476-1f3fd.svg
+++ b/public/emoji/1f476-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f476-1f3fe.png b/public/emoji/1f476-1f3fe.png
deleted file mode 100644
index 9b7a86ac61..0000000000
Binary files a/public/emoji/1f476-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f476-1f3fe.svg b/public/emoji/1f476-1f3fe.svg
index 75c1a67471..3905353f8a 100644
--- a/public/emoji/1f476-1f3fe.svg
+++ b/public/emoji/1f476-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f476-1f3ff.png b/public/emoji/1f476-1f3ff.png
deleted file mode 100644
index fe1be34cb8..0000000000
Binary files a/public/emoji/1f476-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f476-1f3ff.svg b/public/emoji/1f476-1f3ff.svg
index 27a4a6d7f9..e4807abad5 100644
--- a/public/emoji/1f476-1f3ff.svg
+++ b/public/emoji/1f476-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f476.png b/public/emoji/1f476.png
deleted file mode 100644
index a4af92c63c..0000000000
Binary files a/public/emoji/1f476.png and /dev/null differ
diff --git a/public/emoji/1f476.svg b/public/emoji/1f476.svg
index 6bbcb0c2ee..1d66193889 100644
--- a/public/emoji/1f476.svg
+++ b/public/emoji/1f476.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f477-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f477-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..46f7d64021
--- /dev/null
+++ b/public/emoji/1f477-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f477-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..759fd81ba0
--- /dev/null
+++ b/public/emoji/1f477-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477-1f3fb.png b/public/emoji/1f477-1f3fb.png
deleted file mode 100644
index 2f24a2bab2..0000000000
Binary files a/public/emoji/1f477-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f477-1f3fb.svg b/public/emoji/1f477-1f3fb.svg
index 1c078948d0..759fd81ba0 100644
--- a/public/emoji/1f477-1f3fb.svg
+++ b/public/emoji/1f477-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f477-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f477-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..12173b62d2
--- /dev/null
+++ b/public/emoji/1f477-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f477-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..6cbec13d82
--- /dev/null
+++ b/public/emoji/1f477-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477-1f3fc.png b/public/emoji/1f477-1f3fc.png
deleted file mode 100644
index 93c8fec5a7..0000000000
Binary files a/public/emoji/1f477-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f477-1f3fc.svg b/public/emoji/1f477-1f3fc.svg
index 2baad92838..6cbec13d82 100644
--- a/public/emoji/1f477-1f3fc.svg
+++ b/public/emoji/1f477-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f477-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f477-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..cef8bb79ca
--- /dev/null
+++ b/public/emoji/1f477-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f477-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..5634fa7e1c
--- /dev/null
+++ b/public/emoji/1f477-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477-1f3fd.png b/public/emoji/1f477-1f3fd.png
deleted file mode 100644
index abc1f2af2e..0000000000
Binary files a/public/emoji/1f477-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f477-1f3fd.svg b/public/emoji/1f477-1f3fd.svg
index 9bd5a803fe..5634fa7e1c 100644
--- a/public/emoji/1f477-1f3fd.svg
+++ b/public/emoji/1f477-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f477-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f477-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..13ef34ba5e
--- /dev/null
+++ b/public/emoji/1f477-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f477-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..902261cc25
--- /dev/null
+++ b/public/emoji/1f477-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477-1f3fe.png b/public/emoji/1f477-1f3fe.png
deleted file mode 100644
index eed83289ae..0000000000
Binary files a/public/emoji/1f477-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f477-1f3fe.svg b/public/emoji/1f477-1f3fe.svg
index ee7b228237..902261cc25 100644
--- a/public/emoji/1f477-1f3fe.svg
+++ b/public/emoji/1f477-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f477-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f477-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..6e9b84dfab
--- /dev/null
+++ b/public/emoji/1f477-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f477-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1fc22a6a88
--- /dev/null
+++ b/public/emoji/1f477-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477-1f3ff.png b/public/emoji/1f477-1f3ff.png
deleted file mode 100644
index acbb220b8b..0000000000
Binary files a/public/emoji/1f477-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f477-1f3ff.svg b/public/emoji/1f477-1f3ff.svg
index 2cfb7cf1b9..1fc22a6a88 100644
--- a/public/emoji/1f477-1f3ff.svg
+++ b/public/emoji/1f477-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f477-200d-2640-fe0f.svg b/public/emoji/1f477-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..1d9d18d314
--- /dev/null
+++ b/public/emoji/1f477-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477-200d-2642-fe0f.svg b/public/emoji/1f477-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..cb161f83aa
--- /dev/null
+++ b/public/emoji/1f477-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f477.png b/public/emoji/1f477.png
deleted file mode 100644
index a9970a8900..0000000000
Binary files a/public/emoji/1f477.png and /dev/null differ
diff --git a/public/emoji/1f477.svg b/public/emoji/1f477.svg
index 56ae64c82c..cb161f83aa 100644
--- a/public/emoji/1f477.svg
+++ b/public/emoji/1f477.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f478-1f3fb.png b/public/emoji/1f478-1f3fb.png
deleted file mode 100644
index c28078cdc3..0000000000
Binary files a/public/emoji/1f478-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f478-1f3fb.svg b/public/emoji/1f478-1f3fb.svg
index ded39faa2e..88cc313912 100644
--- a/public/emoji/1f478-1f3fb.svg
+++ b/public/emoji/1f478-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f478-1f3fc.png b/public/emoji/1f478-1f3fc.png
deleted file mode 100644
index dcd20e6ecd..0000000000
Binary files a/public/emoji/1f478-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f478-1f3fc.svg b/public/emoji/1f478-1f3fc.svg
index e815e485a6..8aed00f803 100644
--- a/public/emoji/1f478-1f3fc.svg
+++ b/public/emoji/1f478-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f478-1f3fd.png b/public/emoji/1f478-1f3fd.png
deleted file mode 100644
index cde6f315c5..0000000000
Binary files a/public/emoji/1f478-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f478-1f3fd.svg b/public/emoji/1f478-1f3fd.svg
index 7d5b77783f..6fdfb919b6 100644
--- a/public/emoji/1f478-1f3fd.svg
+++ b/public/emoji/1f478-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f478-1f3fe.png b/public/emoji/1f478-1f3fe.png
deleted file mode 100644
index c71e69caae..0000000000
Binary files a/public/emoji/1f478-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f478-1f3fe.svg b/public/emoji/1f478-1f3fe.svg
index 18edf0cbc0..f88d49e9f4 100644
--- a/public/emoji/1f478-1f3fe.svg
+++ b/public/emoji/1f478-1f3fe.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f478-1f3ff.png b/public/emoji/1f478-1f3ff.png
deleted file mode 100644
index 063e264591..0000000000
Binary files a/public/emoji/1f478-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f478-1f3ff.svg b/public/emoji/1f478-1f3ff.svg
index 6b8053df1b..19f06ed2f7 100644
--- a/public/emoji/1f478-1f3ff.svg
+++ b/public/emoji/1f478-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f478.png b/public/emoji/1f478.png
deleted file mode 100644
index 879e9fa8c5..0000000000
Binary files a/public/emoji/1f478.png and /dev/null differ
diff --git a/public/emoji/1f478.svg b/public/emoji/1f478.svg
index 939f660d4a..06d437fa6d 100644
--- a/public/emoji/1f478.svg
+++ b/public/emoji/1f478.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f479.png b/public/emoji/1f479.png
deleted file mode 100644
index fe8670fdaf..0000000000
Binary files a/public/emoji/1f479.png and /dev/null differ
diff --git a/public/emoji/1f479.svg b/public/emoji/1f479.svg
index 4aa1df93b5..d085499955 100644
--- a/public/emoji/1f479.svg
+++ b/public/emoji/1f479.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f47a.png b/public/emoji/1f47a.png
deleted file mode 100644
index 515c6a2250..0000000000
Binary files a/public/emoji/1f47a.png and /dev/null differ
diff --git a/public/emoji/1f47a.svg b/public/emoji/1f47a.svg
index a20c6c44e4..81c1ef39da 100644
--- a/public/emoji/1f47a.svg
+++ b/public/emoji/1f47a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f47b.png b/public/emoji/1f47b.png
deleted file mode 100644
index 5650bc0ed1..0000000000
Binary files a/public/emoji/1f47b.png and /dev/null differ
diff --git a/public/emoji/1f47b.svg b/public/emoji/1f47b.svg
index 37f0680391..e5a2ee7394 100644
--- a/public/emoji/1f47b.svg
+++ b/public/emoji/1f47b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f47c-1f3fb.png b/public/emoji/1f47c-1f3fb.png
deleted file mode 100644
index 391694dc07..0000000000
Binary files a/public/emoji/1f47c-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f47c-1f3fb.svg b/public/emoji/1f47c-1f3fb.svg
index b33f37c471..58a4fe2da4 100644
--- a/public/emoji/1f47c-1f3fb.svg
+++ b/public/emoji/1f47c-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f47c-1f3fc.png b/public/emoji/1f47c-1f3fc.png
deleted file mode 100644
index 700cbe6ed2..0000000000
Binary files a/public/emoji/1f47c-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f47c-1f3fc.svg b/public/emoji/1f47c-1f3fc.svg
index 0095920c43..4618465f79 100644
--- a/public/emoji/1f47c-1f3fc.svg
+++ b/public/emoji/1f47c-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f47c-1f3fd.png b/public/emoji/1f47c-1f3fd.png
deleted file mode 100644
index be597437d2..0000000000
Binary files a/public/emoji/1f47c-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f47c-1f3fd.svg b/public/emoji/1f47c-1f3fd.svg
index ce453f4b7c..d6c44bf629 100644
--- a/public/emoji/1f47c-1f3fd.svg
+++ b/public/emoji/1f47c-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f47c-1f3fe.png b/public/emoji/1f47c-1f3fe.png
deleted file mode 100644
index b06d3c853e..0000000000
Binary files a/public/emoji/1f47c-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f47c-1f3fe.svg b/public/emoji/1f47c-1f3fe.svg
index bbff87d413..3b861ff042 100644
--- a/public/emoji/1f47c-1f3fe.svg
+++ b/public/emoji/1f47c-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f47c-1f3ff.png b/public/emoji/1f47c-1f3ff.png
deleted file mode 100644
index 17bd677e33..0000000000
Binary files a/public/emoji/1f47c-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f47c-1f3ff.svg b/public/emoji/1f47c-1f3ff.svg
index 5e7bb9f044..1be099a01f 100644
--- a/public/emoji/1f47c-1f3ff.svg
+++ b/public/emoji/1f47c-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f47c.png b/public/emoji/1f47c.png
deleted file mode 100644
index 66ea97a3b9..0000000000
Binary files a/public/emoji/1f47c.png and /dev/null differ
diff --git a/public/emoji/1f47c.svg b/public/emoji/1f47c.svg
index fd6002a209..f83cb77043 100644
--- a/public/emoji/1f47c.svg
+++ b/public/emoji/1f47c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f47d.png b/public/emoji/1f47d.png
deleted file mode 100644
index 3b90e97433..0000000000
Binary files a/public/emoji/1f47d.png and /dev/null differ
diff --git a/public/emoji/1f47d.svg b/public/emoji/1f47d.svg
index fff8d2f2bb..d58d819120 100644
--- a/public/emoji/1f47d.svg
+++ b/public/emoji/1f47d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f47e.png b/public/emoji/1f47e.png
deleted file mode 100644
index 2e73f5f32e..0000000000
Binary files a/public/emoji/1f47e.png and /dev/null differ
diff --git a/public/emoji/1f47e.svg b/public/emoji/1f47e.svg
index 0d4c47cfea..2ac86c206f 100644
--- a/public/emoji/1f47e.svg
+++ b/public/emoji/1f47e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f47f.png b/public/emoji/1f47f.png
deleted file mode 100644
index 9f9a960553..0000000000
Binary files a/public/emoji/1f47f.png and /dev/null differ
diff --git a/public/emoji/1f47f.svg b/public/emoji/1f47f.svg
index a2bf45a632..3ceaefa4d3 100644
--- a/public/emoji/1f47f.svg
+++ b/public/emoji/1f47f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f480.png b/public/emoji/1f480.png
deleted file mode 100644
index 26abb17296..0000000000
Binary files a/public/emoji/1f480.png and /dev/null differ
diff --git a/public/emoji/1f480.svg b/public/emoji/1f480.svg
index 300fed8885..7097d6ee03 100644
--- a/public/emoji/1f480.svg
+++ b/public/emoji/1f480.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f481-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f481-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..579847c43a
--- /dev/null
+++ b/public/emoji/1f481-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f481-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..9fce17c57e
--- /dev/null
+++ b/public/emoji/1f481-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481-1f3fb.png b/public/emoji/1f481-1f3fb.png
deleted file mode 100644
index 3d9e224794..0000000000
Binary files a/public/emoji/1f481-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f481-1f3fb.svg b/public/emoji/1f481-1f3fb.svg
index 94f0d9fa83..579847c43a 100644
--- a/public/emoji/1f481-1f3fb.svg
+++ b/public/emoji/1f481-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f481-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f481-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..873f4dc5df
--- /dev/null
+++ b/public/emoji/1f481-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f481-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..bcf9e0cd9f
--- /dev/null
+++ b/public/emoji/1f481-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481-1f3fc.png b/public/emoji/1f481-1f3fc.png
deleted file mode 100644
index 879e8b7966..0000000000
Binary files a/public/emoji/1f481-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f481-1f3fc.svg b/public/emoji/1f481-1f3fc.svg
index 4094b088f5..873f4dc5df 100644
--- a/public/emoji/1f481-1f3fc.svg
+++ b/public/emoji/1f481-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f481-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f481-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..f22657d8ac
--- /dev/null
+++ b/public/emoji/1f481-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f481-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ef182a4bdd
--- /dev/null
+++ b/public/emoji/1f481-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481-1f3fd.png b/public/emoji/1f481-1f3fd.png
deleted file mode 100644
index 307514eab6..0000000000
Binary files a/public/emoji/1f481-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f481-1f3fd.svg b/public/emoji/1f481-1f3fd.svg
index 502cf7baae..f22657d8ac 100644
--- a/public/emoji/1f481-1f3fd.svg
+++ b/public/emoji/1f481-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f481-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f481-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..c836fb1d52
--- /dev/null
+++ b/public/emoji/1f481-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f481-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..48e59176e9
--- /dev/null
+++ b/public/emoji/1f481-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481-1f3fe.png b/public/emoji/1f481-1f3fe.png
deleted file mode 100644
index 297395dcb3..0000000000
Binary files a/public/emoji/1f481-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f481-1f3fe.svg b/public/emoji/1f481-1f3fe.svg
index d233832084..c836fb1d52 100644
--- a/public/emoji/1f481-1f3fe.svg
+++ b/public/emoji/1f481-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f481-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f481-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..c93ce31f5a
--- /dev/null
+++ b/public/emoji/1f481-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f481-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1dcc0745c2
--- /dev/null
+++ b/public/emoji/1f481-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481-1f3ff.png b/public/emoji/1f481-1f3ff.png
deleted file mode 100644
index 26f8f22b28..0000000000
Binary files a/public/emoji/1f481-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f481-1f3ff.svg b/public/emoji/1f481-1f3ff.svg
index 64f4c49695..c93ce31f5a 100644
--- a/public/emoji/1f481-1f3ff.svg
+++ b/public/emoji/1f481-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f481-200d-2640-fe0f.svg b/public/emoji/1f481-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..a06e256ad8
--- /dev/null
+++ b/public/emoji/1f481-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481-200d-2642-fe0f.svg b/public/emoji/1f481-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..e97a32a391
--- /dev/null
+++ b/public/emoji/1f481-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f481.png b/public/emoji/1f481.png
deleted file mode 100644
index 55fc6294d2..0000000000
Binary files a/public/emoji/1f481.png and /dev/null differ
diff --git a/public/emoji/1f481.svg b/public/emoji/1f481.svg
index 324606f263..a06e256ad8 100644
--- a/public/emoji/1f481.svg
+++ b/public/emoji/1f481.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f482-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f482-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..2662a46e24
--- /dev/null
+++ b/public/emoji/1f482-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f482-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..95a2c5bdcc
--- /dev/null
+++ b/public/emoji/1f482-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482-1f3fb.png b/public/emoji/1f482-1f3fb.png
deleted file mode 100644
index cea9ba2746..0000000000
Binary files a/public/emoji/1f482-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f482-1f3fb.svg b/public/emoji/1f482-1f3fb.svg
index 12ecea3c44..95a2c5bdcc 100644
--- a/public/emoji/1f482-1f3fb.svg
+++ b/public/emoji/1f482-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f482-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f482-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..1d07ec5af3
--- /dev/null
+++ b/public/emoji/1f482-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f482-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..9459a537bd
--- /dev/null
+++ b/public/emoji/1f482-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482-1f3fc.png b/public/emoji/1f482-1f3fc.png
deleted file mode 100644
index 037464e402..0000000000
Binary files a/public/emoji/1f482-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f482-1f3fc.svg b/public/emoji/1f482-1f3fc.svg
index 0a822b81e6..9459a537bd 100644
--- a/public/emoji/1f482-1f3fc.svg
+++ b/public/emoji/1f482-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f482-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f482-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..21368fe456
--- /dev/null
+++ b/public/emoji/1f482-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f482-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..48eef95564
--- /dev/null
+++ b/public/emoji/1f482-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482-1f3fd.png b/public/emoji/1f482-1f3fd.png
deleted file mode 100644
index 0f6726fbe8..0000000000
Binary files a/public/emoji/1f482-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f482-1f3fd.svg b/public/emoji/1f482-1f3fd.svg
index 3048f05b89..48eef95564 100644
--- a/public/emoji/1f482-1f3fd.svg
+++ b/public/emoji/1f482-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f482-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f482-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..93f02ff998
--- /dev/null
+++ b/public/emoji/1f482-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f482-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..6def55dcf9
--- /dev/null
+++ b/public/emoji/1f482-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482-1f3fe.png b/public/emoji/1f482-1f3fe.png
deleted file mode 100644
index 85fcf9a3b9..0000000000
Binary files a/public/emoji/1f482-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f482-1f3fe.svg b/public/emoji/1f482-1f3fe.svg
index ece9fd37d9..6def55dcf9 100644
--- a/public/emoji/1f482-1f3fe.svg
+++ b/public/emoji/1f482-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f482-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f482-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..9251000275
--- /dev/null
+++ b/public/emoji/1f482-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f482-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..41e80851c8
--- /dev/null
+++ b/public/emoji/1f482-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482-1f3ff.png b/public/emoji/1f482-1f3ff.png
deleted file mode 100644
index e5f9ca7d5a..0000000000
Binary files a/public/emoji/1f482-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f482-1f3ff.svg b/public/emoji/1f482-1f3ff.svg
index c59625be53..41e80851c8 100644
--- a/public/emoji/1f482-1f3ff.svg
+++ b/public/emoji/1f482-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f482-200d-2640-fe0f.svg b/public/emoji/1f482-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..11be3310a6
--- /dev/null
+++ b/public/emoji/1f482-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482-200d-2642-fe0f.svg b/public/emoji/1f482-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..349a3c03cc
--- /dev/null
+++ b/public/emoji/1f482-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f482.png b/public/emoji/1f482.png
deleted file mode 100644
index 8d7ab3c473..0000000000
Binary files a/public/emoji/1f482.png and /dev/null differ
diff --git a/public/emoji/1f482.svg b/public/emoji/1f482.svg
index a2828629ee..349a3c03cc 100644
--- a/public/emoji/1f482.svg
+++ b/public/emoji/1f482.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f483-1f3fb.png b/public/emoji/1f483-1f3fb.png
deleted file mode 100644
index 2c7b11c3a6..0000000000
Binary files a/public/emoji/1f483-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f483-1f3fb.svg b/public/emoji/1f483-1f3fb.svg
index 23026b5a5e..5e28fb0f36 100644
--- a/public/emoji/1f483-1f3fb.svg
+++ b/public/emoji/1f483-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f483-1f3fc.png b/public/emoji/1f483-1f3fc.png
deleted file mode 100644
index cb04b1f907..0000000000
Binary files a/public/emoji/1f483-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f483-1f3fc.svg b/public/emoji/1f483-1f3fc.svg
index df65e02a36..57ded55283 100644
--- a/public/emoji/1f483-1f3fc.svg
+++ b/public/emoji/1f483-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f483-1f3fd.png b/public/emoji/1f483-1f3fd.png
deleted file mode 100644
index 98c5bca7b6..0000000000
Binary files a/public/emoji/1f483-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f483-1f3fd.svg b/public/emoji/1f483-1f3fd.svg
index e4c1d7b9dd..dc1ff5363a 100644
--- a/public/emoji/1f483-1f3fd.svg
+++ b/public/emoji/1f483-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f483-1f3fe.png b/public/emoji/1f483-1f3fe.png
deleted file mode 100644
index fdb1e00cbb..0000000000
Binary files a/public/emoji/1f483-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f483-1f3fe.svg b/public/emoji/1f483-1f3fe.svg
index e163cfbc5b..b80348375a 100644
--- a/public/emoji/1f483-1f3fe.svg
+++ b/public/emoji/1f483-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f483-1f3ff.png b/public/emoji/1f483-1f3ff.png
deleted file mode 100644
index 0e34e0e23f..0000000000
Binary files a/public/emoji/1f483-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f483-1f3ff.svg b/public/emoji/1f483-1f3ff.svg
index bb4dcfe494..80f37167d7 100644
--- a/public/emoji/1f483-1f3ff.svg
+++ b/public/emoji/1f483-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f483.png b/public/emoji/1f483.png
deleted file mode 100644
index 04b166991c..0000000000
Binary files a/public/emoji/1f483.png and /dev/null differ
diff --git a/public/emoji/1f483.svg b/public/emoji/1f483.svg
index 25ff89a2cd..436f9ae58a 100644
--- a/public/emoji/1f483.svg
+++ b/public/emoji/1f483.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f484.png b/public/emoji/1f484.png
deleted file mode 100644
index 61a0c084c9..0000000000
Binary files a/public/emoji/1f484.png and /dev/null differ
diff --git a/public/emoji/1f484.svg b/public/emoji/1f484.svg
index 99bc7908ba..86892d2f29 100644
--- a/public/emoji/1f484.svg
+++ b/public/emoji/1f484.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f485-1f3fb.png b/public/emoji/1f485-1f3fb.png
deleted file mode 100644
index 26e883dd24..0000000000
Binary files a/public/emoji/1f485-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f485-1f3fb.svg b/public/emoji/1f485-1f3fb.svg
index f31a7a2984..0ca21402e4 100644
--- a/public/emoji/1f485-1f3fb.svg
+++ b/public/emoji/1f485-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f485-1f3fc.png b/public/emoji/1f485-1f3fc.png
deleted file mode 100644
index 61257b47ea..0000000000
Binary files a/public/emoji/1f485-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f485-1f3fc.svg b/public/emoji/1f485-1f3fc.svg
index 442102a4bd..e20634f6c3 100644
--- a/public/emoji/1f485-1f3fc.svg
+++ b/public/emoji/1f485-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f485-1f3fd.png b/public/emoji/1f485-1f3fd.png
deleted file mode 100644
index 29871b05f6..0000000000
Binary files a/public/emoji/1f485-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f485-1f3fd.svg b/public/emoji/1f485-1f3fd.svg
index daa1db1997..c2d3ade12b 100644
--- a/public/emoji/1f485-1f3fd.svg
+++ b/public/emoji/1f485-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f485-1f3fe.png b/public/emoji/1f485-1f3fe.png
deleted file mode 100644
index 2881de0b17..0000000000
Binary files a/public/emoji/1f485-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f485-1f3fe.svg b/public/emoji/1f485-1f3fe.svg
index 759366904f..a47022a922 100644
--- a/public/emoji/1f485-1f3fe.svg
+++ b/public/emoji/1f485-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f485-1f3ff.png b/public/emoji/1f485-1f3ff.png
deleted file mode 100644
index a0b7c0a45a..0000000000
Binary files a/public/emoji/1f485-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f485-1f3ff.svg b/public/emoji/1f485-1f3ff.svg
index 36a0f84030..3c6a2a135a 100644
--- a/public/emoji/1f485-1f3ff.svg
+++ b/public/emoji/1f485-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f485.png b/public/emoji/1f485.png
deleted file mode 100644
index aa52af7050..0000000000
Binary files a/public/emoji/1f485.png and /dev/null differ
diff --git a/public/emoji/1f485.svg b/public/emoji/1f485.svg
index 91fd2c51f3..3f956cbd30 100644
--- a/public/emoji/1f485.svg
+++ b/public/emoji/1f485.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f486-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f486-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..9a67284b5a
--- /dev/null
+++ b/public/emoji/1f486-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f486-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..68b072cfcd
--- /dev/null
+++ b/public/emoji/1f486-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486-1f3fb.png b/public/emoji/1f486-1f3fb.png
deleted file mode 100644
index e0f415d318..0000000000
Binary files a/public/emoji/1f486-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f486-1f3fb.svg b/public/emoji/1f486-1f3fb.svg
index dc1aef549a..9a67284b5a 100644
--- a/public/emoji/1f486-1f3fb.svg
+++ b/public/emoji/1f486-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f486-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f486-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..9ebc012da5
--- /dev/null
+++ b/public/emoji/1f486-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f486-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1eaa098c1c
--- /dev/null
+++ b/public/emoji/1f486-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486-1f3fc.png b/public/emoji/1f486-1f3fc.png
deleted file mode 100644
index 0bb244a270..0000000000
Binary files a/public/emoji/1f486-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f486-1f3fc.svg b/public/emoji/1f486-1f3fc.svg
index ccea5085ed..9ebc012da5 100644
--- a/public/emoji/1f486-1f3fc.svg
+++ b/public/emoji/1f486-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f486-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f486-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..52e52636c9
--- /dev/null
+++ b/public/emoji/1f486-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f486-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..8852a1efc3
--- /dev/null
+++ b/public/emoji/1f486-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486-1f3fd.png b/public/emoji/1f486-1f3fd.png
deleted file mode 100644
index a117ee81a2..0000000000
Binary files a/public/emoji/1f486-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f486-1f3fd.svg b/public/emoji/1f486-1f3fd.svg
index 245ca4b6d9..52e52636c9 100644
--- a/public/emoji/1f486-1f3fd.svg
+++ b/public/emoji/1f486-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f486-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f486-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..ad9c254bd8
--- /dev/null
+++ b/public/emoji/1f486-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f486-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..caa12c4796
--- /dev/null
+++ b/public/emoji/1f486-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486-1f3fe.png b/public/emoji/1f486-1f3fe.png
deleted file mode 100644
index 6f42ab017f..0000000000
Binary files a/public/emoji/1f486-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f486-1f3fe.svg b/public/emoji/1f486-1f3fe.svg
index a56ff48dd7..ad9c254bd8 100644
--- a/public/emoji/1f486-1f3fe.svg
+++ b/public/emoji/1f486-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f486-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f486-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..3fb4f84208
--- /dev/null
+++ b/public/emoji/1f486-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f486-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..2242f1b8af
--- /dev/null
+++ b/public/emoji/1f486-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486-1f3ff.png b/public/emoji/1f486-1f3ff.png
deleted file mode 100644
index 6a388c0d0b..0000000000
Binary files a/public/emoji/1f486-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f486-1f3ff.svg b/public/emoji/1f486-1f3ff.svg
index bf24cb0684..3fb4f84208 100644
--- a/public/emoji/1f486-1f3ff.svg
+++ b/public/emoji/1f486-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f486-200d-2640-fe0f.svg b/public/emoji/1f486-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..39ffd8bdcb
--- /dev/null
+++ b/public/emoji/1f486-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486-200d-2642-fe0f.svg b/public/emoji/1f486-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..e9d1cff1d1
--- /dev/null
+++ b/public/emoji/1f486-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f486.png b/public/emoji/1f486.png
deleted file mode 100644
index b91d845e37..0000000000
Binary files a/public/emoji/1f486.png and /dev/null differ
diff --git a/public/emoji/1f486.svg b/public/emoji/1f486.svg
index 04a2727138..39ffd8bdcb 100644
--- a/public/emoji/1f486.svg
+++ b/public/emoji/1f486.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f487-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f487-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..0625e084cf
--- /dev/null
+++ b/public/emoji/1f487-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f487-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..9325536687
--- /dev/null
+++ b/public/emoji/1f487-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487-1f3fb.png b/public/emoji/1f487-1f3fb.png
deleted file mode 100644
index c743b74abe..0000000000
Binary files a/public/emoji/1f487-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f487-1f3fb.svg b/public/emoji/1f487-1f3fb.svg
index 793781e7ee..0625e084cf 100644
--- a/public/emoji/1f487-1f3fb.svg
+++ b/public/emoji/1f487-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f487-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f487-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..9457987a0d
--- /dev/null
+++ b/public/emoji/1f487-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f487-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1e91c663a9
--- /dev/null
+++ b/public/emoji/1f487-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487-1f3fc.png b/public/emoji/1f487-1f3fc.png
deleted file mode 100644
index f144f8e55c..0000000000
Binary files a/public/emoji/1f487-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f487-1f3fc.svg b/public/emoji/1f487-1f3fc.svg
index ac7e41cfc1..9457987a0d 100644
--- a/public/emoji/1f487-1f3fc.svg
+++ b/public/emoji/1f487-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f487-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f487-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..607df1e22a
--- /dev/null
+++ b/public/emoji/1f487-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f487-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..5f32e63385
--- /dev/null
+++ b/public/emoji/1f487-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487-1f3fd.png b/public/emoji/1f487-1f3fd.png
deleted file mode 100644
index d5ad19563a..0000000000
Binary files a/public/emoji/1f487-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f487-1f3fd.svg b/public/emoji/1f487-1f3fd.svg
index b581fe54ab..607df1e22a 100644
--- a/public/emoji/1f487-1f3fd.svg
+++ b/public/emoji/1f487-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f487-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f487-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..d0cccfc8fa
--- /dev/null
+++ b/public/emoji/1f487-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f487-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..6f4de3161a
--- /dev/null
+++ b/public/emoji/1f487-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487-1f3fe.png b/public/emoji/1f487-1f3fe.png
deleted file mode 100644
index 244fd3af00..0000000000
Binary files a/public/emoji/1f487-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f487-1f3fe.svg b/public/emoji/1f487-1f3fe.svg
index 2c2be850cd..d0cccfc8fa 100644
--- a/public/emoji/1f487-1f3fe.svg
+++ b/public/emoji/1f487-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f487-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f487-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..8edd33e3f3
--- /dev/null
+++ b/public/emoji/1f487-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f487-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..4246251e85
--- /dev/null
+++ b/public/emoji/1f487-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487-1f3ff.png b/public/emoji/1f487-1f3ff.png
deleted file mode 100644
index 20a94a8862..0000000000
Binary files a/public/emoji/1f487-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f487-1f3ff.svg b/public/emoji/1f487-1f3ff.svg
index 0d4ee4cb52..8edd33e3f3 100644
--- a/public/emoji/1f487-1f3ff.svg
+++ b/public/emoji/1f487-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f487-200d-2640-fe0f.svg b/public/emoji/1f487-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..f6c2fd7d46
--- /dev/null
+++ b/public/emoji/1f487-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487-200d-2642-fe0f.svg b/public/emoji/1f487-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..257d6d08ce
--- /dev/null
+++ b/public/emoji/1f487-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f487.png b/public/emoji/1f487.png
deleted file mode 100644
index 91266b1293..0000000000
Binary files a/public/emoji/1f487.png and /dev/null differ
diff --git a/public/emoji/1f487.svg b/public/emoji/1f487.svg
index 0d345e70b7..f6c2fd7d46 100644
--- a/public/emoji/1f487.svg
+++ b/public/emoji/1f487.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f488.png b/public/emoji/1f488.png
deleted file mode 100644
index 896f4d716c..0000000000
Binary files a/public/emoji/1f488.png and /dev/null differ
diff --git a/public/emoji/1f488.svg b/public/emoji/1f488.svg
index 8db2bdc7d8..e9ae2255ca 100644
--- a/public/emoji/1f488.svg
+++ b/public/emoji/1f488.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f489.png b/public/emoji/1f489.png
deleted file mode 100644
index 71c1a9528d..0000000000
Binary files a/public/emoji/1f489.png and /dev/null differ
diff --git a/public/emoji/1f489.svg b/public/emoji/1f489.svg
index 0a2fe96675..9c4caf5c1d 100644
--- a/public/emoji/1f489.svg
+++ b/public/emoji/1f489.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f48a.png b/public/emoji/1f48a.png
deleted file mode 100644
index 1d4530e77a..0000000000
Binary files a/public/emoji/1f48a.png and /dev/null differ
diff --git a/public/emoji/1f48a.svg b/public/emoji/1f48a.svg
index ea0a9a8cc8..c7bd668018 100644
--- a/public/emoji/1f48a.svg
+++ b/public/emoji/1f48a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f48b.png b/public/emoji/1f48b.png
deleted file mode 100644
index 85e6dcfc4e..0000000000
Binary files a/public/emoji/1f48b.png and /dev/null differ
diff --git a/public/emoji/1f48b.svg b/public/emoji/1f48b.svg
index a2d76f20de..492398c52b 100644
--- a/public/emoji/1f48b.svg
+++ b/public/emoji/1f48b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f48c.png b/public/emoji/1f48c.png
deleted file mode 100644
index 3c3c767e78..0000000000
Binary files a/public/emoji/1f48c.png and /dev/null differ
diff --git a/public/emoji/1f48c.svg b/public/emoji/1f48c.svg
index ae73beac1f..b2f85697a1 100644
--- a/public/emoji/1f48c.svg
+++ b/public/emoji/1f48c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f48d.png b/public/emoji/1f48d.png
deleted file mode 100644
index 87d227adb7..0000000000
Binary files a/public/emoji/1f48d.png and /dev/null differ
diff --git a/public/emoji/1f48d.svg b/public/emoji/1f48d.svg
index 51da1763cb..8bbab8ac61 100644
--- a/public/emoji/1f48d.svg
+++ b/public/emoji/1f48d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f48e.png b/public/emoji/1f48e.png
deleted file mode 100644
index db122d26a1..0000000000
Binary files a/public/emoji/1f48e.png and /dev/null differ
diff --git a/public/emoji/1f48e.svg b/public/emoji/1f48e.svg
index c7a3719a28..d89d981903 100644
--- a/public/emoji/1f48e.svg
+++ b/public/emoji/1f48e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f48f.png b/public/emoji/1f48f.png
deleted file mode 100644
index 9aa519da9e..0000000000
Binary files a/public/emoji/1f48f.png and /dev/null differ
diff --git a/public/emoji/1f48f.svg b/public/emoji/1f48f.svg
index cd4f66f04d..0bae3004bc 100644
--- a/public/emoji/1f48f.svg
+++ b/public/emoji/1f48f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f490.png b/public/emoji/1f490.png
deleted file mode 100644
index 11455af6df..0000000000
Binary files a/public/emoji/1f490.png and /dev/null differ
diff --git a/public/emoji/1f490.svg b/public/emoji/1f490.svg
index 8f15a96523..79b996eedd 100644
--- a/public/emoji/1f490.svg
+++ b/public/emoji/1f490.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f491.png b/public/emoji/1f491.png
deleted file mode 100644
index 62111601b3..0000000000
Binary files a/public/emoji/1f491.png and /dev/null differ
diff --git a/public/emoji/1f491.svg b/public/emoji/1f491.svg
index 38085503c0..9ec3083f4d 100644
--- a/public/emoji/1f491.svg
+++ b/public/emoji/1f491.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f492.png b/public/emoji/1f492.png
deleted file mode 100644
index d0d8aa0bfa..0000000000
Binary files a/public/emoji/1f492.png and /dev/null differ
diff --git a/public/emoji/1f492.svg b/public/emoji/1f492.svg
index e7008d4232..e2873f71e6 100644
--- a/public/emoji/1f492.svg
+++ b/public/emoji/1f492.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f493.png b/public/emoji/1f493.png
deleted file mode 100644
index 0bcf2d1d56..0000000000
Binary files a/public/emoji/1f493.png and /dev/null differ
diff --git a/public/emoji/1f493.svg b/public/emoji/1f493.svg
index 41388626b9..1a0a8a054b 100644
--- a/public/emoji/1f493.svg
+++ b/public/emoji/1f493.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f494.png b/public/emoji/1f494.png
deleted file mode 100644
index 718e26ee12..0000000000
Binary files a/public/emoji/1f494.png and /dev/null differ
diff --git a/public/emoji/1f494.svg b/public/emoji/1f494.svg
index a8b9e1b05f..5236cebce6 100644
--- a/public/emoji/1f494.svg
+++ b/public/emoji/1f494.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f495.png b/public/emoji/1f495.png
deleted file mode 100644
index 4d8c338604..0000000000
Binary files a/public/emoji/1f495.png and /dev/null differ
diff --git a/public/emoji/1f495.svg b/public/emoji/1f495.svg
index 6f51fbd1ff..b8e0e292be 100644
--- a/public/emoji/1f495.svg
+++ b/public/emoji/1f495.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f496.png b/public/emoji/1f496.png
deleted file mode 100644
index 6709269454..0000000000
Binary files a/public/emoji/1f496.png and /dev/null differ
diff --git a/public/emoji/1f496.svg b/public/emoji/1f496.svg
index 27457d5b78..75a875b3a9 100644
--- a/public/emoji/1f496.svg
+++ b/public/emoji/1f496.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f497.png b/public/emoji/1f497.png
deleted file mode 100644
index d6e694e972..0000000000
Binary files a/public/emoji/1f497.png and /dev/null differ
diff --git a/public/emoji/1f497.svg b/public/emoji/1f497.svg
index a3da17e1f1..1f586cd457 100644
--- a/public/emoji/1f497.svg
+++ b/public/emoji/1f497.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f498.png b/public/emoji/1f498.png
deleted file mode 100644
index 2df0078ddd..0000000000
Binary files a/public/emoji/1f498.png and /dev/null differ
diff --git a/public/emoji/1f498.svg b/public/emoji/1f498.svg
index 66b99f3304..619c6aa24e 100644
--- a/public/emoji/1f498.svg
+++ b/public/emoji/1f498.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f499.png b/public/emoji/1f499.png
deleted file mode 100644
index bdf1287e55..0000000000
Binary files a/public/emoji/1f499.png and /dev/null differ
diff --git a/public/emoji/1f499.svg b/public/emoji/1f499.svg
index 6db134a92d..9d48cbf892 100644
--- a/public/emoji/1f499.svg
+++ b/public/emoji/1f499.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f49a.png b/public/emoji/1f49a.png
deleted file mode 100644
index c52d60a58b..0000000000
Binary files a/public/emoji/1f49a.png and /dev/null differ
diff --git a/public/emoji/1f49a.svg b/public/emoji/1f49a.svg
index 2d718b516b..41990800e5 100644
--- a/public/emoji/1f49a.svg
+++ b/public/emoji/1f49a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f49b.png b/public/emoji/1f49b.png
deleted file mode 100644
index 7901a9d010..0000000000
Binary files a/public/emoji/1f49b.png and /dev/null differ
diff --git a/public/emoji/1f49b.svg b/public/emoji/1f49b.svg
index c642502054..b6e1978628 100644
--- a/public/emoji/1f49b.svg
+++ b/public/emoji/1f49b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f49c.png b/public/emoji/1f49c.png
deleted file mode 100644
index 95c53a9ade..0000000000
Binary files a/public/emoji/1f49c.png and /dev/null differ
diff --git a/public/emoji/1f49c.svg b/public/emoji/1f49c.svg
index 7adf079397..29c4300462 100644
--- a/public/emoji/1f49c.svg
+++ b/public/emoji/1f49c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f49d.png b/public/emoji/1f49d.png
deleted file mode 100644
index 902ceafe4d..0000000000
Binary files a/public/emoji/1f49d.png and /dev/null differ
diff --git a/public/emoji/1f49d.svg b/public/emoji/1f49d.svg
index 2e8a496880..aab714aaf2 100644
--- a/public/emoji/1f49d.svg
+++ b/public/emoji/1f49d.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f49e.png b/public/emoji/1f49e.png
deleted file mode 100644
index 7b9d1948f7..0000000000
Binary files a/public/emoji/1f49e.png and /dev/null differ
diff --git a/public/emoji/1f49e.svg b/public/emoji/1f49e.svg
index f90aae90f7..d25ef6ba9c 100644
--- a/public/emoji/1f49e.svg
+++ b/public/emoji/1f49e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f49f.png b/public/emoji/1f49f.png
deleted file mode 100644
index 5443f60bc6..0000000000
Binary files a/public/emoji/1f49f.png and /dev/null differ
diff --git a/public/emoji/1f49f.svg b/public/emoji/1f49f.svg
index 2c1c7d2701..0276b32a89 100644
--- a/public/emoji/1f49f.svg
+++ b/public/emoji/1f49f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4a0.png b/public/emoji/1f4a0.png
deleted file mode 100644
index 2a22a26d1e..0000000000
Binary files a/public/emoji/1f4a0.png and /dev/null differ
diff --git a/public/emoji/1f4a0.svg b/public/emoji/1f4a0.svg
index 77363d1998..37291c912e 100644
--- a/public/emoji/1f4a0.svg
+++ b/public/emoji/1f4a0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4a1.png b/public/emoji/1f4a1.png
deleted file mode 100644
index 38e32e02d9..0000000000
Binary files a/public/emoji/1f4a1.png and /dev/null differ
diff --git a/public/emoji/1f4a1.svg b/public/emoji/1f4a1.svg
index 7e44d418a6..dc2aa4d218 100644
--- a/public/emoji/1f4a1.svg
+++ b/public/emoji/1f4a1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4a2.png b/public/emoji/1f4a2.png
deleted file mode 100644
index d63c2e000e..0000000000
Binary files a/public/emoji/1f4a2.png and /dev/null differ
diff --git a/public/emoji/1f4a2.svg b/public/emoji/1f4a2.svg
index d816b49346..6ba7cd3a01 100644
--- a/public/emoji/1f4a2.svg
+++ b/public/emoji/1f4a2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4a3.png b/public/emoji/1f4a3.png
deleted file mode 100644
index c7f8f81c93..0000000000
Binary files a/public/emoji/1f4a3.png and /dev/null differ
diff --git a/public/emoji/1f4a3.svg b/public/emoji/1f4a3.svg
index b9a7e0f747..803d57e9e7 100644
--- a/public/emoji/1f4a3.svg
+++ b/public/emoji/1f4a3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4a4.png b/public/emoji/1f4a4.png
deleted file mode 100644
index 9bc72b4469..0000000000
Binary files a/public/emoji/1f4a4.png and /dev/null differ
diff --git a/public/emoji/1f4a4.svg b/public/emoji/1f4a4.svg
index 625c724827..83df1a48d1 100644
--- a/public/emoji/1f4a4.svg
+++ b/public/emoji/1f4a4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4a5.png b/public/emoji/1f4a5.png
deleted file mode 100644
index 9b0f027b1a..0000000000
Binary files a/public/emoji/1f4a5.png and /dev/null differ
diff --git a/public/emoji/1f4a5.svg b/public/emoji/1f4a5.svg
index 5ae4d00dba..f7d71d3eae 100644
--- a/public/emoji/1f4a5.svg
+++ b/public/emoji/1f4a5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4a6.png b/public/emoji/1f4a6.png
deleted file mode 100644
index 4106117ebc..0000000000
Binary files a/public/emoji/1f4a6.png and /dev/null differ
diff --git a/public/emoji/1f4a6.svg b/public/emoji/1f4a6.svg
index d33061edc1..c57213860a 100644
--- a/public/emoji/1f4a6.svg
+++ b/public/emoji/1f4a6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4a7.png b/public/emoji/1f4a7.png
deleted file mode 100644
index 71241ec306..0000000000
Binary files a/public/emoji/1f4a7.png and /dev/null differ
diff --git a/public/emoji/1f4a7.svg b/public/emoji/1f4a7.svg
index e56136fe51..99699f6f0b 100644
--- a/public/emoji/1f4a7.svg
+++ b/public/emoji/1f4a7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4a8.png b/public/emoji/1f4a8.png
deleted file mode 100644
index 064b8525c1..0000000000
Binary files a/public/emoji/1f4a8.png and /dev/null differ
diff --git a/public/emoji/1f4a8.svg b/public/emoji/1f4a8.svg
index 5807909d14..13a086ec5c 100644
--- a/public/emoji/1f4a8.svg
+++ b/public/emoji/1f4a8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4a9.png b/public/emoji/1f4a9.png
deleted file mode 100644
index 10b15e72d5..0000000000
Binary files a/public/emoji/1f4a9.png and /dev/null differ
diff --git a/public/emoji/1f4a9.svg b/public/emoji/1f4a9.svg
index 342ac404bc..ef0d55c1f7 100644
--- a/public/emoji/1f4a9.svg
+++ b/public/emoji/1f4a9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4aa-1f3fb.png b/public/emoji/1f4aa-1f3fb.png
deleted file mode 100644
index 1522942ce5..0000000000
Binary files a/public/emoji/1f4aa-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f4aa-1f3fb.svg b/public/emoji/1f4aa-1f3fb.svg
index 174dc99d27..9781796896 100644
--- a/public/emoji/1f4aa-1f3fb.svg
+++ b/public/emoji/1f4aa-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4aa-1f3fc.png b/public/emoji/1f4aa-1f3fc.png
deleted file mode 100644
index 569c6e832c..0000000000
Binary files a/public/emoji/1f4aa-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f4aa-1f3fc.svg b/public/emoji/1f4aa-1f3fc.svg
index be0b9c70b0..f572f93a02 100644
--- a/public/emoji/1f4aa-1f3fc.svg
+++ b/public/emoji/1f4aa-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4aa-1f3fd.png b/public/emoji/1f4aa-1f3fd.png
deleted file mode 100644
index 0a76b00fa8..0000000000
Binary files a/public/emoji/1f4aa-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f4aa-1f3fd.svg b/public/emoji/1f4aa-1f3fd.svg
index fa50395b98..1d0ca6d95e 100644
--- a/public/emoji/1f4aa-1f3fd.svg
+++ b/public/emoji/1f4aa-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4aa-1f3fe.png b/public/emoji/1f4aa-1f3fe.png
deleted file mode 100644
index f0cf31328e..0000000000
Binary files a/public/emoji/1f4aa-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f4aa-1f3fe.svg b/public/emoji/1f4aa-1f3fe.svg
index 820211811b..ae067f1c42 100644
--- a/public/emoji/1f4aa-1f3fe.svg
+++ b/public/emoji/1f4aa-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4aa-1f3ff.png b/public/emoji/1f4aa-1f3ff.png
deleted file mode 100644
index 4fda92460e..0000000000
Binary files a/public/emoji/1f4aa-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f4aa-1f3ff.svg b/public/emoji/1f4aa-1f3ff.svg
index 109ded67dc..30b3fa6262 100644
--- a/public/emoji/1f4aa-1f3ff.svg
+++ b/public/emoji/1f4aa-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4aa.png b/public/emoji/1f4aa.png
deleted file mode 100644
index 7e67c1880f..0000000000
Binary files a/public/emoji/1f4aa.png and /dev/null differ
diff --git a/public/emoji/1f4aa.svg b/public/emoji/1f4aa.svg
index 772927cc41..dcf6e9ede1 100644
--- a/public/emoji/1f4aa.svg
+++ b/public/emoji/1f4aa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ab.png b/public/emoji/1f4ab.png
deleted file mode 100644
index 85f52efad2..0000000000
Binary files a/public/emoji/1f4ab.png and /dev/null differ
diff --git a/public/emoji/1f4ab.svg b/public/emoji/1f4ab.svg
index 6f4ba8a7b2..9df115d2c2 100644
--- a/public/emoji/1f4ab.svg
+++ b/public/emoji/1f4ab.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ac.png b/public/emoji/1f4ac.png
deleted file mode 100644
index a34ef74173..0000000000
Binary files a/public/emoji/1f4ac.png and /dev/null differ
diff --git a/public/emoji/1f4ac.svg b/public/emoji/1f4ac.svg
index 663533c822..fa87690187 100644
--- a/public/emoji/1f4ac.svg
+++ b/public/emoji/1f4ac.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ad.png b/public/emoji/1f4ad.png
deleted file mode 100644
index 72fe8fa702..0000000000
Binary files a/public/emoji/1f4ad.png and /dev/null differ
diff --git a/public/emoji/1f4ad.svg b/public/emoji/1f4ad.svg
index b9883d63aa..6ff056df19 100644
--- a/public/emoji/1f4ad.svg
+++ b/public/emoji/1f4ad.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ae.png b/public/emoji/1f4ae.png
deleted file mode 100644
index d6af8b6007..0000000000
Binary files a/public/emoji/1f4ae.png and /dev/null differ
diff --git a/public/emoji/1f4ae.svg b/public/emoji/1f4ae.svg
index 3703f53e2e..be4d941926 100644
--- a/public/emoji/1f4ae.svg
+++ b/public/emoji/1f4ae.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4af.png b/public/emoji/1f4af.png
deleted file mode 100644
index 6903ff0304..0000000000
Binary files a/public/emoji/1f4af.png and /dev/null differ
diff --git a/public/emoji/1f4af.svg b/public/emoji/1f4af.svg
index 8bb5a8027d..80a08e0166 100644
--- a/public/emoji/1f4af.svg
+++ b/public/emoji/1f4af.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4b0.png b/public/emoji/1f4b0.png
deleted file mode 100644
index b9296be090..0000000000
Binary files a/public/emoji/1f4b0.png and /dev/null differ
diff --git a/public/emoji/1f4b0.svg b/public/emoji/1f4b0.svg
index 5dcbf7d1cd..a232587328 100644
--- a/public/emoji/1f4b0.svg
+++ b/public/emoji/1f4b0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4b1.png b/public/emoji/1f4b1.png
deleted file mode 100644
index 4d46c6050e..0000000000
Binary files a/public/emoji/1f4b1.png and /dev/null differ
diff --git a/public/emoji/1f4b1.svg b/public/emoji/1f4b1.svg
index 350402b9d6..66cee5e038 100644
--- a/public/emoji/1f4b1.svg
+++ b/public/emoji/1f4b1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4b2.png b/public/emoji/1f4b2.png
deleted file mode 100644
index ef2c2e2059..0000000000
Binary files a/public/emoji/1f4b2.png and /dev/null differ
diff --git a/public/emoji/1f4b2.svg b/public/emoji/1f4b2.svg
index 12419774cb..12abc53234 100644
--- a/public/emoji/1f4b2.svg
+++ b/public/emoji/1f4b2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4b3.png b/public/emoji/1f4b3.png
deleted file mode 100644
index 372777d5c6..0000000000
Binary files a/public/emoji/1f4b3.png and /dev/null differ
diff --git a/public/emoji/1f4b3.svg b/public/emoji/1f4b3.svg
index 289be20ad4..2a7941970e 100644
--- a/public/emoji/1f4b3.svg
+++ b/public/emoji/1f4b3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4b4.png b/public/emoji/1f4b4.png
deleted file mode 100644
index 63ee4799d6..0000000000
Binary files a/public/emoji/1f4b4.png and /dev/null differ
diff --git a/public/emoji/1f4b4.svg b/public/emoji/1f4b4.svg
index 73ada09a2f..6d9d73854d 100644
--- a/public/emoji/1f4b4.svg
+++ b/public/emoji/1f4b4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4b5.png b/public/emoji/1f4b5.png
deleted file mode 100644
index a9904c2829..0000000000
Binary files a/public/emoji/1f4b5.png and /dev/null differ
diff --git a/public/emoji/1f4b5.svg b/public/emoji/1f4b5.svg
index a6723a2be5..1288e2638a 100644
--- a/public/emoji/1f4b5.svg
+++ b/public/emoji/1f4b5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4b6.png b/public/emoji/1f4b6.png
deleted file mode 100644
index a49020820e..0000000000
Binary files a/public/emoji/1f4b6.png and /dev/null differ
diff --git a/public/emoji/1f4b6.svg b/public/emoji/1f4b6.svg
index 4ab37625bf..54ca3194d4 100644
--- a/public/emoji/1f4b6.svg
+++ b/public/emoji/1f4b6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4b7.png b/public/emoji/1f4b7.png
deleted file mode 100644
index a0d4c4099e..0000000000
Binary files a/public/emoji/1f4b7.png and /dev/null differ
diff --git a/public/emoji/1f4b7.svg b/public/emoji/1f4b7.svg
index 59a5f522ac..c619edaad8 100644
--- a/public/emoji/1f4b7.svg
+++ b/public/emoji/1f4b7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4b8.png b/public/emoji/1f4b8.png
deleted file mode 100644
index f022b04b3c..0000000000
Binary files a/public/emoji/1f4b8.png and /dev/null differ
diff --git a/public/emoji/1f4b8.svg b/public/emoji/1f4b8.svg
index 8e90f8e501..f51e8fbb3a 100644
--- a/public/emoji/1f4b8.svg
+++ b/public/emoji/1f4b8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4b9.png b/public/emoji/1f4b9.png
deleted file mode 100644
index 9773f03be2..0000000000
Binary files a/public/emoji/1f4b9.png and /dev/null differ
diff --git a/public/emoji/1f4b9.svg b/public/emoji/1f4b9.svg
index b794bad1cd..eff7d7351a 100644
--- a/public/emoji/1f4b9.svg
+++ b/public/emoji/1f4b9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ba.png b/public/emoji/1f4ba.png
deleted file mode 100644
index a6d72d95ad..0000000000
Binary files a/public/emoji/1f4ba.png and /dev/null differ
diff --git a/public/emoji/1f4ba.svg b/public/emoji/1f4ba.svg
index a961080f26..1ae3854de1 100644
--- a/public/emoji/1f4ba.svg
+++ b/public/emoji/1f4ba.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4bb.png b/public/emoji/1f4bb.png
deleted file mode 100644
index c1fee27e3a..0000000000
Binary files a/public/emoji/1f4bb.png and /dev/null differ
diff --git a/public/emoji/1f4bb.svg b/public/emoji/1f4bb.svg
index de2b1388a8..e995d48561 100644
--- a/public/emoji/1f4bb.svg
+++ b/public/emoji/1f4bb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4bc.png b/public/emoji/1f4bc.png
deleted file mode 100644
index b9912ba214..0000000000
Binary files a/public/emoji/1f4bc.png and /dev/null differ
diff --git a/public/emoji/1f4bc.svg b/public/emoji/1f4bc.svg
index 16fd4d5722..9556a69ecc 100644
--- a/public/emoji/1f4bc.svg
+++ b/public/emoji/1f4bc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4bd.png b/public/emoji/1f4bd.png
deleted file mode 100644
index 9fa94cfbe7..0000000000
Binary files a/public/emoji/1f4bd.png and /dev/null differ
diff --git a/public/emoji/1f4bd.svg b/public/emoji/1f4bd.svg
index f37c1636ce..e02677feeb 100644
--- a/public/emoji/1f4bd.svg
+++ b/public/emoji/1f4bd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4be.png b/public/emoji/1f4be.png
deleted file mode 100644
index 072a76d3c1..0000000000
Binary files a/public/emoji/1f4be.png and /dev/null differ
diff --git a/public/emoji/1f4be.svg b/public/emoji/1f4be.svg
index 9eba4f910a..4a2be4b03b 100644
--- a/public/emoji/1f4be.svg
+++ b/public/emoji/1f4be.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4bf.png b/public/emoji/1f4bf.png
deleted file mode 100644
index e6b01449cd..0000000000
Binary files a/public/emoji/1f4bf.png and /dev/null differ
diff --git a/public/emoji/1f4bf.svg b/public/emoji/1f4bf.svg
index eac0a2aabe..78c4bdafd5 100644
--- a/public/emoji/1f4bf.svg
+++ b/public/emoji/1f4bf.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4c0.png b/public/emoji/1f4c0.png
deleted file mode 100644
index 045a6f7a08..0000000000
Binary files a/public/emoji/1f4c0.png and /dev/null differ
diff --git a/public/emoji/1f4c0.svg b/public/emoji/1f4c0.svg
index 2547f71c1b..341784d8e2 100644
--- a/public/emoji/1f4c0.svg
+++ b/public/emoji/1f4c0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4c1.png b/public/emoji/1f4c1.png
deleted file mode 100644
index addedaf087..0000000000
Binary files a/public/emoji/1f4c1.png and /dev/null differ
diff --git a/public/emoji/1f4c1.svg b/public/emoji/1f4c1.svg
index 8eaf3c99c3..1fd3ac19c6 100644
--- a/public/emoji/1f4c1.svg
+++ b/public/emoji/1f4c1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4c2.png b/public/emoji/1f4c2.png
deleted file mode 100644
index 3993b09222..0000000000
Binary files a/public/emoji/1f4c2.png and /dev/null differ
diff --git a/public/emoji/1f4c2.svg b/public/emoji/1f4c2.svg
index 85fc741489..74498396df 100644
--- a/public/emoji/1f4c2.svg
+++ b/public/emoji/1f4c2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4c3.png b/public/emoji/1f4c3.png
deleted file mode 100644
index 06355319c7..0000000000
Binary files a/public/emoji/1f4c3.png and /dev/null differ
diff --git a/public/emoji/1f4c3.svg b/public/emoji/1f4c3.svg
index 46b14fcc86..a275b27352 100644
--- a/public/emoji/1f4c3.svg
+++ b/public/emoji/1f4c3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4c4.png b/public/emoji/1f4c4.png
deleted file mode 100644
index ba4ed757e0..0000000000
Binary files a/public/emoji/1f4c4.png and /dev/null differ
diff --git a/public/emoji/1f4c4.svg b/public/emoji/1f4c4.svg
index b782c61461..3b2d58b31a 100644
--- a/public/emoji/1f4c4.svg
+++ b/public/emoji/1f4c4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4c5.png b/public/emoji/1f4c5.png
deleted file mode 100644
index f05b3da97b..0000000000
Binary files a/public/emoji/1f4c5.png and /dev/null differ
diff --git a/public/emoji/1f4c5.svg b/public/emoji/1f4c5.svg
index 5b18759b06..2defa94058 100644
--- a/public/emoji/1f4c5.svg
+++ b/public/emoji/1f4c5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4c6.png b/public/emoji/1f4c6.png
deleted file mode 100644
index 47353b7444..0000000000
Binary files a/public/emoji/1f4c6.png and /dev/null differ
diff --git a/public/emoji/1f4c6.svg b/public/emoji/1f4c6.svg
index a82a590856..1356a920e0 100644
--- a/public/emoji/1f4c6.svg
+++ b/public/emoji/1f4c6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4c7.png b/public/emoji/1f4c7.png
deleted file mode 100644
index 151e11cb3b..0000000000
Binary files a/public/emoji/1f4c7.png and /dev/null differ
diff --git a/public/emoji/1f4c7.svg b/public/emoji/1f4c7.svg
index 21c4b7730f..d8f8fb4470 100644
--- a/public/emoji/1f4c7.svg
+++ b/public/emoji/1f4c7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4c8.png b/public/emoji/1f4c8.png
deleted file mode 100644
index f13cfcf995..0000000000
Binary files a/public/emoji/1f4c8.png and /dev/null differ
diff --git a/public/emoji/1f4c8.svg b/public/emoji/1f4c8.svg
index 69c80f6b8f..6500ccbb7c 100644
--- a/public/emoji/1f4c8.svg
+++ b/public/emoji/1f4c8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4c9.png b/public/emoji/1f4c9.png
deleted file mode 100644
index 5222ec72d8..0000000000
Binary files a/public/emoji/1f4c9.png and /dev/null differ
diff --git a/public/emoji/1f4c9.svg b/public/emoji/1f4c9.svg
index 6210970020..1989d48faf 100644
--- a/public/emoji/1f4c9.svg
+++ b/public/emoji/1f4c9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ca.png b/public/emoji/1f4ca.png
deleted file mode 100644
index 53c8945500..0000000000
Binary files a/public/emoji/1f4ca.png and /dev/null differ
diff --git a/public/emoji/1f4ca.svg b/public/emoji/1f4ca.svg
index 619ce84e4d..b7aee13b66 100644
--- a/public/emoji/1f4ca.svg
+++ b/public/emoji/1f4ca.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4cb.png b/public/emoji/1f4cb.png
deleted file mode 100644
index 7edcfc5250..0000000000
Binary files a/public/emoji/1f4cb.png and /dev/null differ
diff --git a/public/emoji/1f4cb.svg b/public/emoji/1f4cb.svg
index 29f1ef7fbf..b2577d99a1 100644
--- a/public/emoji/1f4cb.svg
+++ b/public/emoji/1f4cb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4cc.png b/public/emoji/1f4cc.png
deleted file mode 100644
index 57e07d7f4c..0000000000
Binary files a/public/emoji/1f4cc.png and /dev/null differ
diff --git a/public/emoji/1f4cc.svg b/public/emoji/1f4cc.svg
index 5403772287..ebc2187e45 100644
--- a/public/emoji/1f4cc.svg
+++ b/public/emoji/1f4cc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4cd.png b/public/emoji/1f4cd.png
deleted file mode 100644
index 28b9d72866..0000000000
Binary files a/public/emoji/1f4cd.png and /dev/null differ
diff --git a/public/emoji/1f4cd.svg b/public/emoji/1f4cd.svg
index fa9f105cf8..e86e5d8edb 100644
--- a/public/emoji/1f4cd.svg
+++ b/public/emoji/1f4cd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ce.png b/public/emoji/1f4ce.png
deleted file mode 100644
index 8cd8d4f875..0000000000
Binary files a/public/emoji/1f4ce.png and /dev/null differ
diff --git a/public/emoji/1f4ce.svg b/public/emoji/1f4ce.svg
index 47c8d2c6a0..7d2e463ec2 100644
--- a/public/emoji/1f4ce.svg
+++ b/public/emoji/1f4ce.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4cf.png b/public/emoji/1f4cf.png
deleted file mode 100644
index 1017b7433a..0000000000
Binary files a/public/emoji/1f4cf.png and /dev/null differ
diff --git a/public/emoji/1f4cf.svg b/public/emoji/1f4cf.svg
index 3d66c06746..50062de145 100644
--- a/public/emoji/1f4cf.svg
+++ b/public/emoji/1f4cf.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4d0.png b/public/emoji/1f4d0.png
deleted file mode 100644
index 77dee9ee84..0000000000
Binary files a/public/emoji/1f4d0.png and /dev/null differ
diff --git a/public/emoji/1f4d0.svg b/public/emoji/1f4d0.svg
index 5d4c52db9f..08704eacf1 100644
--- a/public/emoji/1f4d0.svg
+++ b/public/emoji/1f4d0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4d1.png b/public/emoji/1f4d1.png
deleted file mode 100644
index f8d9e01b42..0000000000
Binary files a/public/emoji/1f4d1.png and /dev/null differ
diff --git a/public/emoji/1f4d1.svg b/public/emoji/1f4d1.svg
index b0ff586436..573134838e 100644
--- a/public/emoji/1f4d1.svg
+++ b/public/emoji/1f4d1.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4d2.png b/public/emoji/1f4d2.png
deleted file mode 100644
index 13e7561a4b..0000000000
Binary files a/public/emoji/1f4d2.png and /dev/null differ
diff --git a/public/emoji/1f4d2.svg b/public/emoji/1f4d2.svg
index 93fecc88c6..32f4570648 100644
--- a/public/emoji/1f4d2.svg
+++ b/public/emoji/1f4d2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4d3.png b/public/emoji/1f4d3.png
deleted file mode 100644
index f6c28b4915..0000000000
Binary files a/public/emoji/1f4d3.png and /dev/null differ
diff --git a/public/emoji/1f4d3.svg b/public/emoji/1f4d3.svg
index 604ba14e9f..65c7642c2e 100644
--- a/public/emoji/1f4d3.svg
+++ b/public/emoji/1f4d3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4d4.png b/public/emoji/1f4d4.png
deleted file mode 100644
index 03f566b6d2..0000000000
Binary files a/public/emoji/1f4d4.png and /dev/null differ
diff --git a/public/emoji/1f4d4.svg b/public/emoji/1f4d4.svg
index 211f080c97..9f269a7e41 100644
--- a/public/emoji/1f4d4.svg
+++ b/public/emoji/1f4d4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4d5.png b/public/emoji/1f4d5.png
deleted file mode 100644
index 6395cf2151..0000000000
Binary files a/public/emoji/1f4d5.png and /dev/null differ
diff --git a/public/emoji/1f4d5.svg b/public/emoji/1f4d5.svg
index be6b7fa3cc..821ba57432 100644
--- a/public/emoji/1f4d5.svg
+++ b/public/emoji/1f4d5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4d6.png b/public/emoji/1f4d6.png
deleted file mode 100644
index 0f4447ed39..0000000000
Binary files a/public/emoji/1f4d6.png and /dev/null differ
diff --git a/public/emoji/1f4d6.svg b/public/emoji/1f4d6.svg
index 40a387e31f..47e6ccb63f 100644
--- a/public/emoji/1f4d6.svg
+++ b/public/emoji/1f4d6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4d7.png b/public/emoji/1f4d7.png
deleted file mode 100644
index e5e411cf3b..0000000000
Binary files a/public/emoji/1f4d7.png and /dev/null differ
diff --git a/public/emoji/1f4d7.svg b/public/emoji/1f4d7.svg
index 5ef4524b9a..8c5f2c7f78 100644
--- a/public/emoji/1f4d7.svg
+++ b/public/emoji/1f4d7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4d8.png b/public/emoji/1f4d8.png
deleted file mode 100644
index e1e455401c..0000000000
Binary files a/public/emoji/1f4d8.png and /dev/null differ
diff --git a/public/emoji/1f4d8.svg b/public/emoji/1f4d8.svg
index 3e1ba1c8fa..e20be569c9 100644
--- a/public/emoji/1f4d8.svg
+++ b/public/emoji/1f4d8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4d9.png b/public/emoji/1f4d9.png
deleted file mode 100644
index ab40e6ae6a..0000000000
Binary files a/public/emoji/1f4d9.png and /dev/null differ
diff --git a/public/emoji/1f4d9.svg b/public/emoji/1f4d9.svg
index 0758e63e0b..aa9ac8ac7e 100644
--- a/public/emoji/1f4d9.svg
+++ b/public/emoji/1f4d9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4da.png b/public/emoji/1f4da.png
deleted file mode 100644
index 59a8bafeb0..0000000000
Binary files a/public/emoji/1f4da.png and /dev/null differ
diff --git a/public/emoji/1f4da.svg b/public/emoji/1f4da.svg
index 8469d334ed..fd830ccbab 100644
--- a/public/emoji/1f4da.svg
+++ b/public/emoji/1f4da.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4db.png b/public/emoji/1f4db.png
deleted file mode 100644
index ec5ee213e2..0000000000
Binary files a/public/emoji/1f4db.png and /dev/null differ
diff --git a/public/emoji/1f4db.svg b/public/emoji/1f4db.svg
index 616945d2dd..ad86629b79 100644
--- a/public/emoji/1f4db.svg
+++ b/public/emoji/1f4db.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4dc.png b/public/emoji/1f4dc.png
deleted file mode 100644
index 50ee5dcd4b..0000000000
Binary files a/public/emoji/1f4dc.png and /dev/null differ
diff --git a/public/emoji/1f4dc.svg b/public/emoji/1f4dc.svg
index 6b1d35971c..b29dfd1d58 100644
--- a/public/emoji/1f4dc.svg
+++ b/public/emoji/1f4dc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4dd.png b/public/emoji/1f4dd.png
deleted file mode 100644
index edc6155e16..0000000000
Binary files a/public/emoji/1f4dd.png and /dev/null differ
diff --git a/public/emoji/1f4dd.svg b/public/emoji/1f4dd.svg
index 5e6f46c8b1..583017b87d 100644
--- a/public/emoji/1f4dd.svg
+++ b/public/emoji/1f4dd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4de.png b/public/emoji/1f4de.png
deleted file mode 100644
index 69388316c3..0000000000
Binary files a/public/emoji/1f4de.png and /dev/null differ
diff --git a/public/emoji/1f4de.svg b/public/emoji/1f4de.svg
index a4039435d6..e253cab80f 100644
--- a/public/emoji/1f4de.svg
+++ b/public/emoji/1f4de.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4df.png b/public/emoji/1f4df.png
deleted file mode 100644
index b24b99306a..0000000000
Binary files a/public/emoji/1f4df.png and /dev/null differ
diff --git a/public/emoji/1f4df.svg b/public/emoji/1f4df.svg
index a46aa37d0d..f8a0609f8d 100644
--- a/public/emoji/1f4df.svg
+++ b/public/emoji/1f4df.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4e0.png b/public/emoji/1f4e0.png
deleted file mode 100644
index 6f929e294c..0000000000
Binary files a/public/emoji/1f4e0.png and /dev/null differ
diff --git a/public/emoji/1f4e0.svg b/public/emoji/1f4e0.svg
index 7e52dbfd0e..cf9dfd4f14 100644
--- a/public/emoji/1f4e0.svg
+++ b/public/emoji/1f4e0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4e1.png b/public/emoji/1f4e1.png
deleted file mode 100644
index db0372795f..0000000000
Binary files a/public/emoji/1f4e1.png and /dev/null differ
diff --git a/public/emoji/1f4e1.svg b/public/emoji/1f4e1.svg
index f15cb8a0e3..e345be12db 100644
--- a/public/emoji/1f4e1.svg
+++ b/public/emoji/1f4e1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4e2.png b/public/emoji/1f4e2.png
deleted file mode 100644
index 5fd76a95b8..0000000000
Binary files a/public/emoji/1f4e2.png and /dev/null differ
diff --git a/public/emoji/1f4e2.svg b/public/emoji/1f4e2.svg
index 44179fefca..e6250d2bf3 100644
--- a/public/emoji/1f4e2.svg
+++ b/public/emoji/1f4e2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4e3.png b/public/emoji/1f4e3.png
deleted file mode 100644
index 4e6735188e..0000000000
Binary files a/public/emoji/1f4e3.png and /dev/null differ
diff --git a/public/emoji/1f4e3.svg b/public/emoji/1f4e3.svg
index 0967abab91..e217cdaf27 100644
--- a/public/emoji/1f4e3.svg
+++ b/public/emoji/1f4e3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4e4.png b/public/emoji/1f4e4.png
deleted file mode 100644
index 46493ed5b2..0000000000
Binary files a/public/emoji/1f4e4.png and /dev/null differ
diff --git a/public/emoji/1f4e4.svg b/public/emoji/1f4e4.svg
index b7b006630a..69fce0a9ba 100644
--- a/public/emoji/1f4e4.svg
+++ b/public/emoji/1f4e4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4e5.png b/public/emoji/1f4e5.png
deleted file mode 100644
index 41a6be2b0e..0000000000
Binary files a/public/emoji/1f4e5.png and /dev/null differ
diff --git a/public/emoji/1f4e5.svg b/public/emoji/1f4e5.svg
index 75df61a63b..10c940b95d 100644
--- a/public/emoji/1f4e5.svg
+++ b/public/emoji/1f4e5.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4e6.png b/public/emoji/1f4e6.png
deleted file mode 100644
index 85431756ad..0000000000
Binary files a/public/emoji/1f4e6.png and /dev/null differ
diff --git a/public/emoji/1f4e6.svg b/public/emoji/1f4e6.svg
index 95182fd1bf..d0b8d6d1d4 100644
--- a/public/emoji/1f4e6.svg
+++ b/public/emoji/1f4e6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4e7.png b/public/emoji/1f4e7.png
deleted file mode 100644
index d22e654a20..0000000000
Binary files a/public/emoji/1f4e7.png and /dev/null differ
diff --git a/public/emoji/1f4e7.svg b/public/emoji/1f4e7.svg
index c296f50704..60b6967621 100644
--- a/public/emoji/1f4e7.svg
+++ b/public/emoji/1f4e7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4e8.png b/public/emoji/1f4e8.png
deleted file mode 100644
index fd22e88182..0000000000
Binary files a/public/emoji/1f4e8.png and /dev/null differ
diff --git a/public/emoji/1f4e8.svg b/public/emoji/1f4e8.svg
index 694c04ee94..d2379e22af 100644
--- a/public/emoji/1f4e8.svg
+++ b/public/emoji/1f4e8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4e9.png b/public/emoji/1f4e9.png
deleted file mode 100644
index 7448a6b767..0000000000
Binary files a/public/emoji/1f4e9.png and /dev/null differ
diff --git a/public/emoji/1f4e9.svg b/public/emoji/1f4e9.svg
index 2e5dd66c45..bde5374d42 100644
--- a/public/emoji/1f4e9.svg
+++ b/public/emoji/1f4e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ea.png b/public/emoji/1f4ea.png
deleted file mode 100644
index ddc705db0d..0000000000
Binary files a/public/emoji/1f4ea.png and /dev/null differ
diff --git a/public/emoji/1f4ea.svg b/public/emoji/1f4ea.svg
index b825c02f22..6c7e0d1145 100644
--- a/public/emoji/1f4ea.svg
+++ b/public/emoji/1f4ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4eb.png b/public/emoji/1f4eb.png
deleted file mode 100644
index ef5174e40d..0000000000
Binary files a/public/emoji/1f4eb.png and /dev/null differ
diff --git a/public/emoji/1f4eb.svg b/public/emoji/1f4eb.svg
index fcd20da499..a48e2210e5 100644
--- a/public/emoji/1f4eb.svg
+++ b/public/emoji/1f4eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ec.png b/public/emoji/1f4ec.png
deleted file mode 100644
index 5460616a5b..0000000000
Binary files a/public/emoji/1f4ec.png and /dev/null differ
diff --git a/public/emoji/1f4ec.svg b/public/emoji/1f4ec.svg
index 2393774c73..0ebfec4c59 100644
--- a/public/emoji/1f4ec.svg
+++ b/public/emoji/1f4ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ed.png b/public/emoji/1f4ed.png
deleted file mode 100644
index f9aeee6b15..0000000000
Binary files a/public/emoji/1f4ed.png and /dev/null differ
diff --git a/public/emoji/1f4ed.svg b/public/emoji/1f4ed.svg
index c4fddbace2..ebecab75e0 100644
--- a/public/emoji/1f4ed.svg
+++ b/public/emoji/1f4ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ee.png b/public/emoji/1f4ee.png
deleted file mode 100644
index 07c9c4ab3d..0000000000
Binary files a/public/emoji/1f4ee.png and /dev/null differ
diff --git a/public/emoji/1f4ee.svg b/public/emoji/1f4ee.svg
index 2c53c56e2b..4806b51ff8 100644
--- a/public/emoji/1f4ee.svg
+++ b/public/emoji/1f4ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ef.png b/public/emoji/1f4ef.png
deleted file mode 100644
index c173b8dbd6..0000000000
Binary files a/public/emoji/1f4ef.png and /dev/null differ
diff --git a/public/emoji/1f4ef.svg b/public/emoji/1f4ef.svg
index 6ead0b07b4..e60c3067e4 100644
--- a/public/emoji/1f4ef.svg
+++ b/public/emoji/1f4ef.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4f0.png b/public/emoji/1f4f0.png
deleted file mode 100644
index 2aa8f060bd..0000000000
Binary files a/public/emoji/1f4f0.png and /dev/null differ
diff --git a/public/emoji/1f4f0.svg b/public/emoji/1f4f0.svg
index 51f9f85a07..d5a70ea3c8 100644
--- a/public/emoji/1f4f0.svg
+++ b/public/emoji/1f4f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4f1.png b/public/emoji/1f4f1.png
deleted file mode 100644
index fd377acf87..0000000000
Binary files a/public/emoji/1f4f1.png and /dev/null differ
diff --git a/public/emoji/1f4f1.svg b/public/emoji/1f4f1.svg
index bbb0684ac5..e0387a1c4a 100644
--- a/public/emoji/1f4f1.svg
+++ b/public/emoji/1f4f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4f2.png b/public/emoji/1f4f2.png
deleted file mode 100644
index e2f308f8e4..0000000000
Binary files a/public/emoji/1f4f2.png and /dev/null differ
diff --git a/public/emoji/1f4f2.svg b/public/emoji/1f4f2.svg
index 9f323e496f..95437b263d 100644
--- a/public/emoji/1f4f2.svg
+++ b/public/emoji/1f4f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4f3.png b/public/emoji/1f4f3.png
deleted file mode 100644
index cc46510e48..0000000000
Binary files a/public/emoji/1f4f3.png and /dev/null differ
diff --git a/public/emoji/1f4f3.svg b/public/emoji/1f4f3.svg
index 7f2e947b18..5c2e1a4f50 100644
--- a/public/emoji/1f4f3.svg
+++ b/public/emoji/1f4f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4f4.png b/public/emoji/1f4f4.png
deleted file mode 100644
index 8b661ec1c9..0000000000
Binary files a/public/emoji/1f4f4.png and /dev/null differ
diff --git a/public/emoji/1f4f4.svg b/public/emoji/1f4f4.svg
index 3f7fd7f152..5dc3755689 100644
--- a/public/emoji/1f4f4.svg
+++ b/public/emoji/1f4f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4f5.png b/public/emoji/1f4f5.png
deleted file mode 100644
index 7b1ae6ea57..0000000000
Binary files a/public/emoji/1f4f5.png and /dev/null differ
diff --git a/public/emoji/1f4f5.svg b/public/emoji/1f4f5.svg
index dfeb0985c8..86b5a5df38 100644
--- a/public/emoji/1f4f5.svg
+++ b/public/emoji/1f4f5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4f6.png b/public/emoji/1f4f6.png
deleted file mode 100644
index ee2b5a4b51..0000000000
Binary files a/public/emoji/1f4f6.png and /dev/null differ
diff --git a/public/emoji/1f4f6.svg b/public/emoji/1f4f6.svg
index f6033621b0..b9eee1d413 100644
--- a/public/emoji/1f4f6.svg
+++ b/public/emoji/1f4f6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4f7.png b/public/emoji/1f4f7.png
deleted file mode 100644
index 0a3429f72e..0000000000
Binary files a/public/emoji/1f4f7.png and /dev/null differ
diff --git a/public/emoji/1f4f7.svg b/public/emoji/1f4f7.svg
index ed7884b415..6cc2096bee 100644
--- a/public/emoji/1f4f7.svg
+++ b/public/emoji/1f4f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4f8.png b/public/emoji/1f4f8.png
deleted file mode 100644
index 27471da202..0000000000
Binary files a/public/emoji/1f4f8.png and /dev/null differ
diff --git a/public/emoji/1f4f8.svg b/public/emoji/1f4f8.svg
index 7814bdd929..e9f242d9e6 100644
--- a/public/emoji/1f4f8.svg
+++ b/public/emoji/1f4f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4f9.png b/public/emoji/1f4f9.png
deleted file mode 100644
index 85b300d425..0000000000
Binary files a/public/emoji/1f4f9.png and /dev/null differ
diff --git a/public/emoji/1f4f9.svg b/public/emoji/1f4f9.svg
index 8c71d01a14..c279f12e93 100644
--- a/public/emoji/1f4f9.svg
+++ b/public/emoji/1f4f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4fa.png b/public/emoji/1f4fa.png
deleted file mode 100644
index 999f1fb5c6..0000000000
Binary files a/public/emoji/1f4fa.png and /dev/null differ
diff --git a/public/emoji/1f4fa.svg b/public/emoji/1f4fa.svg
index 3d446fd6e7..b967aef26a 100644
--- a/public/emoji/1f4fa.svg
+++ b/public/emoji/1f4fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4fb.png b/public/emoji/1f4fb.png
deleted file mode 100644
index dec381fa24..0000000000
Binary files a/public/emoji/1f4fb.png and /dev/null differ
diff --git a/public/emoji/1f4fb.svg b/public/emoji/1f4fb.svg
index 4a7bff1725..88b7b95181 100644
--- a/public/emoji/1f4fb.svg
+++ b/public/emoji/1f4fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4fc.png b/public/emoji/1f4fc.png
deleted file mode 100644
index b9eb78ecd9..0000000000
Binary files a/public/emoji/1f4fc.png and /dev/null differ
diff --git a/public/emoji/1f4fc.svg b/public/emoji/1f4fc.svg
index 6b1e3d0c26..991e95f54b 100644
--- a/public/emoji/1f4fc.svg
+++ b/public/emoji/1f4fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4fd.png b/public/emoji/1f4fd.png
deleted file mode 100644
index ce9ab0daa2..0000000000
Binary files a/public/emoji/1f4fd.png and /dev/null differ
diff --git a/public/emoji/1f4fd.svg b/public/emoji/1f4fd.svg
index a440cbfe49..922c71b8d1 100644
--- a/public/emoji/1f4fd.svg
+++ b/public/emoji/1f4fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f4ff.png b/public/emoji/1f4ff.png
deleted file mode 100644
index a4b6dfcc62..0000000000
Binary files a/public/emoji/1f4ff.png and /dev/null differ
diff --git a/public/emoji/1f4ff.svg b/public/emoji/1f4ff.svg
index 1fa2a4abf0..b5adfabe4b 100644
--- a/public/emoji/1f4ff.svg
+++ b/public/emoji/1f4ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f500.png b/public/emoji/1f500.png
deleted file mode 100644
index 5904badde6..0000000000
Binary files a/public/emoji/1f500.png and /dev/null differ
diff --git a/public/emoji/1f500.svg b/public/emoji/1f500.svg
index 81a5389c75..25b1bf27b5 100644
--- a/public/emoji/1f500.svg
+++ b/public/emoji/1f500.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f501.png b/public/emoji/1f501.png
deleted file mode 100644
index 540ce4e0fb..0000000000
Binary files a/public/emoji/1f501.png and /dev/null differ
diff --git a/public/emoji/1f501.svg b/public/emoji/1f501.svg
index fccd8243cf..2b59af7c2f 100644
--- a/public/emoji/1f501.svg
+++ b/public/emoji/1f501.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f502.png b/public/emoji/1f502.png
deleted file mode 100644
index 9567e83337..0000000000
Binary files a/public/emoji/1f502.png and /dev/null differ
diff --git a/public/emoji/1f502.svg b/public/emoji/1f502.svg
index 3372590bd8..7ab33b25f2 100644
--- a/public/emoji/1f502.svg
+++ b/public/emoji/1f502.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f503.png b/public/emoji/1f503.png
deleted file mode 100644
index 26e49c3838..0000000000
Binary files a/public/emoji/1f503.png and /dev/null differ
diff --git a/public/emoji/1f503.svg b/public/emoji/1f503.svg
index 3aa0d63ba6..716355f635 100644
--- a/public/emoji/1f503.svg
+++ b/public/emoji/1f503.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f504.png b/public/emoji/1f504.png
deleted file mode 100644
index 8d06d8e091..0000000000
Binary files a/public/emoji/1f504.png and /dev/null differ
diff --git a/public/emoji/1f504.svg b/public/emoji/1f504.svg
index 2eefda0d3f..61b0c0459f 100644
--- a/public/emoji/1f504.svg
+++ b/public/emoji/1f504.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f505.png b/public/emoji/1f505.png
deleted file mode 100644
index 543011d396..0000000000
Binary files a/public/emoji/1f505.png and /dev/null differ
diff --git a/public/emoji/1f505.svg b/public/emoji/1f505.svg
index 206610ecf2..0609962794 100644
--- a/public/emoji/1f505.svg
+++ b/public/emoji/1f505.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f506.png b/public/emoji/1f506.png
deleted file mode 100644
index c41f2d5fd5..0000000000
Binary files a/public/emoji/1f506.png and /dev/null differ
diff --git a/public/emoji/1f506.svg b/public/emoji/1f506.svg
index dc65b9a6d6..251d4ffa7a 100644
--- a/public/emoji/1f506.svg
+++ b/public/emoji/1f506.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f507.png b/public/emoji/1f507.png
deleted file mode 100644
index 7c1788e507..0000000000
Binary files a/public/emoji/1f507.png and /dev/null differ
diff --git a/public/emoji/1f507.svg b/public/emoji/1f507.svg
index 4d10ceb248..9dc1fe9037 100644
--- a/public/emoji/1f507.svg
+++ b/public/emoji/1f507.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f508.png b/public/emoji/1f508.png
deleted file mode 100644
index 7bcffb8fc4..0000000000
Binary files a/public/emoji/1f508.png and /dev/null differ
diff --git a/public/emoji/1f508.svg b/public/emoji/1f508.svg
index 9eac4a0d00..33b12bddad 100644
--- a/public/emoji/1f508.svg
+++ b/public/emoji/1f508.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f509.png b/public/emoji/1f509.png
deleted file mode 100644
index e75ddca53b..0000000000
Binary files a/public/emoji/1f509.png and /dev/null differ
diff --git a/public/emoji/1f509.svg b/public/emoji/1f509.svg
index 5460d8e986..7566b83e8d 100644
--- a/public/emoji/1f509.svg
+++ b/public/emoji/1f509.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f50a.png b/public/emoji/1f50a.png
deleted file mode 100644
index 8370033a53..0000000000
Binary files a/public/emoji/1f50a.png and /dev/null differ
diff --git a/public/emoji/1f50a.svg b/public/emoji/1f50a.svg
index eb2e94c838..8614d3e92a 100644
--- a/public/emoji/1f50a.svg
+++ b/public/emoji/1f50a.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f50b.png b/public/emoji/1f50b.png
deleted file mode 100644
index f593e2bdb6..0000000000
Binary files a/public/emoji/1f50b.png and /dev/null differ
diff --git a/public/emoji/1f50b.svg b/public/emoji/1f50b.svg
index 370d5cfe0b..d8b375c150 100644
--- a/public/emoji/1f50b.svg
+++ b/public/emoji/1f50b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f50c.png b/public/emoji/1f50c.png
deleted file mode 100644
index 31d1eb215b..0000000000
Binary files a/public/emoji/1f50c.png and /dev/null differ
diff --git a/public/emoji/1f50c.svg b/public/emoji/1f50c.svg
index bbbcf0a5a5..d3ecea9ab8 100644
--- a/public/emoji/1f50c.svg
+++ b/public/emoji/1f50c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f50d.png b/public/emoji/1f50d.png
deleted file mode 100644
index 55487156ac..0000000000
Binary files a/public/emoji/1f50d.png and /dev/null differ
diff --git a/public/emoji/1f50d.svg b/public/emoji/1f50d.svg
index 7f1758d676..098d5e0818 100644
--- a/public/emoji/1f50d.svg
+++ b/public/emoji/1f50d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f50e.png b/public/emoji/1f50e.png
deleted file mode 100644
index 0f4b1bca87..0000000000
Binary files a/public/emoji/1f50e.png and /dev/null differ
diff --git a/public/emoji/1f50e.svg b/public/emoji/1f50e.svg
index a60c2aa113..22c9309059 100644
--- a/public/emoji/1f50e.svg
+++ b/public/emoji/1f50e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f50f.png b/public/emoji/1f50f.png
deleted file mode 100644
index 19a07d162f..0000000000
Binary files a/public/emoji/1f50f.png and /dev/null differ
diff --git a/public/emoji/1f50f.svg b/public/emoji/1f50f.svg
index eb3c3fb477..a6fbfdbf14 100644
--- a/public/emoji/1f50f.svg
+++ b/public/emoji/1f50f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f510.png b/public/emoji/1f510.png
deleted file mode 100644
index 1c1cd5d074..0000000000
Binary files a/public/emoji/1f510.png and /dev/null differ
diff --git a/public/emoji/1f510.svg b/public/emoji/1f510.svg
index 2d9a97df66..0f9f441bfb 100644
--- a/public/emoji/1f510.svg
+++ b/public/emoji/1f510.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f511.png b/public/emoji/1f511.png
deleted file mode 100644
index 319cd1b884..0000000000
Binary files a/public/emoji/1f511.png and /dev/null differ
diff --git a/public/emoji/1f511.svg b/public/emoji/1f511.svg
index 74b38d18c4..9a720cdf4c 100644
--- a/public/emoji/1f511.svg
+++ b/public/emoji/1f511.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f512.png b/public/emoji/1f512.png
deleted file mode 100644
index 5a739c4664..0000000000
Binary files a/public/emoji/1f512.png and /dev/null differ
diff --git a/public/emoji/1f512.svg b/public/emoji/1f512.svg
index fac55a2f0b..f0f1bb1534 100644
--- a/public/emoji/1f512.svg
+++ b/public/emoji/1f512.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f513.png b/public/emoji/1f513.png
deleted file mode 100644
index 4a74a69391..0000000000
Binary files a/public/emoji/1f513.png and /dev/null differ
diff --git a/public/emoji/1f513.svg b/public/emoji/1f513.svg
index 4d650b67e4..4333237220 100644
--- a/public/emoji/1f513.svg
+++ b/public/emoji/1f513.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f514.png b/public/emoji/1f514.png
deleted file mode 100644
index 5b3b046199..0000000000
Binary files a/public/emoji/1f514.png and /dev/null differ
diff --git a/public/emoji/1f514.svg b/public/emoji/1f514.svg
index e64706564c..5210eece67 100644
--- a/public/emoji/1f514.svg
+++ b/public/emoji/1f514.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f515.png b/public/emoji/1f515.png
deleted file mode 100644
index 15cb38dd1e..0000000000
Binary files a/public/emoji/1f515.png and /dev/null differ
diff --git a/public/emoji/1f515.svg b/public/emoji/1f515.svg
index a37acaff3b..f9cd1368bd 100644
--- a/public/emoji/1f515.svg
+++ b/public/emoji/1f515.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f516.png b/public/emoji/1f516.png
deleted file mode 100644
index bbb444611f..0000000000
Binary files a/public/emoji/1f516.png and /dev/null differ
diff --git a/public/emoji/1f516.svg b/public/emoji/1f516.svg
index 555079664e..a8baaeb5c6 100644
--- a/public/emoji/1f516.svg
+++ b/public/emoji/1f516.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f517.png b/public/emoji/1f517.png
deleted file mode 100644
index ae20f0f8ee..0000000000
Binary files a/public/emoji/1f517.png and /dev/null differ
diff --git a/public/emoji/1f517.svg b/public/emoji/1f517.svg
index 777545a172..f34d202583 100644
--- a/public/emoji/1f517.svg
+++ b/public/emoji/1f517.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f518.png b/public/emoji/1f518.png
deleted file mode 100644
index 3a23449d91..0000000000
Binary files a/public/emoji/1f518.png and /dev/null differ
diff --git a/public/emoji/1f518.svg b/public/emoji/1f518.svg
index a894198e86..aa5d9a4290 100644
--- a/public/emoji/1f518.svg
+++ b/public/emoji/1f518.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f519.png b/public/emoji/1f519.png
deleted file mode 100644
index d32c5d4f17..0000000000
Binary files a/public/emoji/1f519.png and /dev/null differ
diff --git a/public/emoji/1f519.svg b/public/emoji/1f519.svg
index b8fe574e26..d723bae402 100644
--- a/public/emoji/1f519.svg
+++ b/public/emoji/1f519.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f51a.png b/public/emoji/1f51a.png
deleted file mode 100644
index ef3ccd5f36..0000000000
Binary files a/public/emoji/1f51a.png and /dev/null differ
diff --git a/public/emoji/1f51a.svg b/public/emoji/1f51a.svg
index 1925646d18..27825d360c 100644
--- a/public/emoji/1f51a.svg
+++ b/public/emoji/1f51a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f51b.png b/public/emoji/1f51b.png
deleted file mode 100644
index a0c371ae21..0000000000
Binary files a/public/emoji/1f51b.png and /dev/null differ
diff --git a/public/emoji/1f51b.svg b/public/emoji/1f51b.svg
index f9bb3d8332..8e41094fef 100644
--- a/public/emoji/1f51b.svg
+++ b/public/emoji/1f51b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f51c.png b/public/emoji/1f51c.png
deleted file mode 100644
index 8cdfd86690..0000000000
Binary files a/public/emoji/1f51c.png and /dev/null differ
diff --git a/public/emoji/1f51c.svg b/public/emoji/1f51c.svg
index 62c2ffb2f7..9e308a4668 100644
--- a/public/emoji/1f51c.svg
+++ b/public/emoji/1f51c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f51d.png b/public/emoji/1f51d.png
deleted file mode 100644
index 49dea8c08b..0000000000
Binary files a/public/emoji/1f51d.png and /dev/null differ
diff --git a/public/emoji/1f51d.svg b/public/emoji/1f51d.svg
index cc4db6763d..0fc2ed653a 100644
--- a/public/emoji/1f51d.svg
+++ b/public/emoji/1f51d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f51e.png b/public/emoji/1f51e.png
deleted file mode 100644
index 6dfe6da51e..0000000000
Binary files a/public/emoji/1f51e.png and /dev/null differ
diff --git a/public/emoji/1f51e.svg b/public/emoji/1f51e.svg
index 19ac9d2bd2..8a7bd20173 100644
--- a/public/emoji/1f51e.svg
+++ b/public/emoji/1f51e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f51f.png b/public/emoji/1f51f.png
deleted file mode 100644
index 782d400496..0000000000
Binary files a/public/emoji/1f51f.png and /dev/null differ
diff --git a/public/emoji/1f51f.svg b/public/emoji/1f51f.svg
index f717fa7f06..40d2560e35 100644
--- a/public/emoji/1f51f.svg
+++ b/public/emoji/1f51f.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f520.png b/public/emoji/1f520.png
deleted file mode 100644
index fe9482d2d8..0000000000
Binary files a/public/emoji/1f520.png and /dev/null differ
diff --git a/public/emoji/1f520.svg b/public/emoji/1f520.svg
index 04d626dcd0..6771c23285 100644
--- a/public/emoji/1f520.svg
+++ b/public/emoji/1f520.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f521.png b/public/emoji/1f521.png
deleted file mode 100644
index 0996a87057..0000000000
Binary files a/public/emoji/1f521.png and /dev/null differ
diff --git a/public/emoji/1f521.svg b/public/emoji/1f521.svg
index a127d19343..4cc64b9e7b 100644
--- a/public/emoji/1f521.svg
+++ b/public/emoji/1f521.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f522.png b/public/emoji/1f522.png
deleted file mode 100644
index 248dc7e55b..0000000000
Binary files a/public/emoji/1f522.png and /dev/null differ
diff --git a/public/emoji/1f522.svg b/public/emoji/1f522.svg
index 5710ed9718..75de7d6daa 100644
--- a/public/emoji/1f522.svg
+++ b/public/emoji/1f522.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f523.png b/public/emoji/1f523.png
deleted file mode 100644
index ac2fc1f358..0000000000
Binary files a/public/emoji/1f523.png and /dev/null differ
diff --git a/public/emoji/1f523.svg b/public/emoji/1f523.svg
index 7de6af1d7d..c30182b501 100644
--- a/public/emoji/1f523.svg
+++ b/public/emoji/1f523.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f524.png b/public/emoji/1f524.png
deleted file mode 100644
index 7688de692a..0000000000
Binary files a/public/emoji/1f524.png and /dev/null differ
diff --git a/public/emoji/1f524.svg b/public/emoji/1f524.svg
index 236a41ce9b..6f9f763f02 100644
--- a/public/emoji/1f524.svg
+++ b/public/emoji/1f524.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f525.png b/public/emoji/1f525.png
deleted file mode 100644
index bd3775a460..0000000000
Binary files a/public/emoji/1f525.png and /dev/null differ
diff --git a/public/emoji/1f525.svg b/public/emoji/1f525.svg
index 23dd30a75d..4c5a36a6f1 100644
--- a/public/emoji/1f525.svg
+++ b/public/emoji/1f525.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f526.png b/public/emoji/1f526.png
deleted file mode 100644
index eee36c2506..0000000000
Binary files a/public/emoji/1f526.png and /dev/null differ
diff --git a/public/emoji/1f526.svg b/public/emoji/1f526.svg
index 1d9dcdfdf9..f934e9d5cc 100644
--- a/public/emoji/1f526.svg
+++ b/public/emoji/1f526.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f527.png b/public/emoji/1f527.png
deleted file mode 100644
index c16b743969..0000000000
Binary files a/public/emoji/1f527.png and /dev/null differ
diff --git a/public/emoji/1f527.svg b/public/emoji/1f527.svg
index 5ca5cf38e2..26775fd0a5 100644
--- a/public/emoji/1f527.svg
+++ b/public/emoji/1f527.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f528.png b/public/emoji/1f528.png
deleted file mode 100644
index 00736cce47..0000000000
Binary files a/public/emoji/1f528.png and /dev/null differ
diff --git a/public/emoji/1f528.svg b/public/emoji/1f528.svg
index 0285e2d1a5..d506977e1c 100644
--- a/public/emoji/1f528.svg
+++ b/public/emoji/1f528.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f529.png b/public/emoji/1f529.png
deleted file mode 100644
index 4b9ae15531..0000000000
Binary files a/public/emoji/1f529.png and /dev/null differ
diff --git a/public/emoji/1f529.svg b/public/emoji/1f529.svg
index b43444715b..3da1ee7381 100644
--- a/public/emoji/1f529.svg
+++ b/public/emoji/1f529.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f52a.png b/public/emoji/1f52a.png
deleted file mode 100644
index 1acb9f3077..0000000000
Binary files a/public/emoji/1f52a.png and /dev/null differ
diff --git a/public/emoji/1f52a.svg b/public/emoji/1f52a.svg
index cbf2319491..d260eaf875 100644
--- a/public/emoji/1f52a.svg
+++ b/public/emoji/1f52a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f52b.png b/public/emoji/1f52b.png
deleted file mode 100644
index 89c5c244c7..0000000000
Binary files a/public/emoji/1f52b.png and /dev/null differ
diff --git a/public/emoji/1f52b.svg b/public/emoji/1f52b.svg
index 7ce6a43f1d..fa4e11d882 100644
--- a/public/emoji/1f52b.svg
+++ b/public/emoji/1f52b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f52c.png b/public/emoji/1f52c.png
deleted file mode 100644
index 90f5acf6a7..0000000000
Binary files a/public/emoji/1f52c.png and /dev/null differ
diff --git a/public/emoji/1f52c.svg b/public/emoji/1f52c.svg
index 149eb3797b..511a102e26 100644
--- a/public/emoji/1f52c.svg
+++ b/public/emoji/1f52c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f52d.png b/public/emoji/1f52d.png
deleted file mode 100644
index d63154614b..0000000000
Binary files a/public/emoji/1f52d.png and /dev/null differ
diff --git a/public/emoji/1f52d.svg b/public/emoji/1f52d.svg
index e4dc0106eb..67df6ece7d 100644
--- a/public/emoji/1f52d.svg
+++ b/public/emoji/1f52d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f52e.png b/public/emoji/1f52e.png
deleted file mode 100644
index 485d5c888f..0000000000
Binary files a/public/emoji/1f52e.png and /dev/null differ
diff --git a/public/emoji/1f52e.svg b/public/emoji/1f52e.svg
index 72eff081e1..1fbcefcb9f 100644
--- a/public/emoji/1f52e.svg
+++ b/public/emoji/1f52e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f52f.png b/public/emoji/1f52f.png
deleted file mode 100644
index 2eb1707458..0000000000
Binary files a/public/emoji/1f52f.png and /dev/null differ
diff --git a/public/emoji/1f52f.svg b/public/emoji/1f52f.svg
index 5783decc39..e31b3e04c4 100644
--- a/public/emoji/1f52f.svg
+++ b/public/emoji/1f52f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f530.png b/public/emoji/1f530.png
deleted file mode 100644
index bc434fb7cb..0000000000
Binary files a/public/emoji/1f530.png and /dev/null differ
diff --git a/public/emoji/1f530.svg b/public/emoji/1f530.svg
index b0677aae78..8ed169ae58 100644
--- a/public/emoji/1f530.svg
+++ b/public/emoji/1f530.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f531.png b/public/emoji/1f531.png
deleted file mode 100644
index 777a1dad12..0000000000
Binary files a/public/emoji/1f531.png and /dev/null differ
diff --git a/public/emoji/1f531.svg b/public/emoji/1f531.svg
index 09cb93cd89..ded2962712 100644
--- a/public/emoji/1f531.svg
+++ b/public/emoji/1f531.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f532.png b/public/emoji/1f532.png
deleted file mode 100644
index a78fc2f6b6..0000000000
Binary files a/public/emoji/1f532.png and /dev/null differ
diff --git a/public/emoji/1f532.svg b/public/emoji/1f532.svg
index 4234050bae..8d17e17576 100644
--- a/public/emoji/1f532.svg
+++ b/public/emoji/1f532.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f533.png b/public/emoji/1f533.png
deleted file mode 100644
index 934b1cedfd..0000000000
Binary files a/public/emoji/1f533.png and /dev/null differ
diff --git a/public/emoji/1f533.svg b/public/emoji/1f533.svg
index 478b8cde77..485afa9208 100644
--- a/public/emoji/1f533.svg
+++ b/public/emoji/1f533.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f534.png b/public/emoji/1f534.png
deleted file mode 100644
index 4bef930d92..0000000000
Binary files a/public/emoji/1f534.png and /dev/null differ
diff --git a/public/emoji/1f534.svg b/public/emoji/1f534.svg
index a8ac9f77dc..fe221ca004 100644
--- a/public/emoji/1f534.svg
+++ b/public/emoji/1f534.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f535.png b/public/emoji/1f535.png
deleted file mode 100644
index 84078ef312..0000000000
Binary files a/public/emoji/1f535.png and /dev/null differ
diff --git a/public/emoji/1f535.svg b/public/emoji/1f535.svg
index 3df8731d3b..fc3f6e9a00 100644
--- a/public/emoji/1f535.svg
+++ b/public/emoji/1f535.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f536.png b/public/emoji/1f536.png
deleted file mode 100644
index 73ff0ac36c..0000000000
Binary files a/public/emoji/1f536.png and /dev/null differ
diff --git a/public/emoji/1f536.svg b/public/emoji/1f536.svg
index 351f0db4e5..fdcbdce96f 100644
--- a/public/emoji/1f536.svg
+++ b/public/emoji/1f536.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f537.png b/public/emoji/1f537.png
deleted file mode 100644
index 416a58bd5a..0000000000
Binary files a/public/emoji/1f537.png and /dev/null differ
diff --git a/public/emoji/1f537.svg b/public/emoji/1f537.svg
index 2d35144486..3ef69732f4 100644
--- a/public/emoji/1f537.svg
+++ b/public/emoji/1f537.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f538.png b/public/emoji/1f538.png
deleted file mode 100644
index e1c6ed9b2f..0000000000
Binary files a/public/emoji/1f538.png and /dev/null differ
diff --git a/public/emoji/1f538.svg b/public/emoji/1f538.svg
index 10ba0449aa..7b78e0bd82 100644
--- a/public/emoji/1f538.svg
+++ b/public/emoji/1f538.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f539.png b/public/emoji/1f539.png
deleted file mode 100644
index b86b5bc4db..0000000000
Binary files a/public/emoji/1f539.png and /dev/null differ
diff --git a/public/emoji/1f539.svg b/public/emoji/1f539.svg
index 344ca59560..9798bdd624 100644
--- a/public/emoji/1f539.svg
+++ b/public/emoji/1f539.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f53a.png b/public/emoji/1f53a.png
deleted file mode 100644
index 785887c195..0000000000
Binary files a/public/emoji/1f53a.png and /dev/null differ
diff --git a/public/emoji/1f53a.svg b/public/emoji/1f53a.svg
index 321041237a..11a872d9e4 100644
--- a/public/emoji/1f53a.svg
+++ b/public/emoji/1f53a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f53b.png b/public/emoji/1f53b.png
deleted file mode 100644
index a83beff191..0000000000
Binary files a/public/emoji/1f53b.png and /dev/null differ
diff --git a/public/emoji/1f53b.svg b/public/emoji/1f53b.svg
index 57d6ad4676..2e6655267e 100644
--- a/public/emoji/1f53b.svg
+++ b/public/emoji/1f53b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f53c.png b/public/emoji/1f53c.png
deleted file mode 100644
index 20a13dcd5c..0000000000
Binary files a/public/emoji/1f53c.png and /dev/null differ
diff --git a/public/emoji/1f53c.svg b/public/emoji/1f53c.svg
index 6836e6e049..08d218b67e 100644
--- a/public/emoji/1f53c.svg
+++ b/public/emoji/1f53c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f53d.png b/public/emoji/1f53d.png
deleted file mode 100644
index 5870b9a224..0000000000
Binary files a/public/emoji/1f53d.png and /dev/null differ
diff --git a/public/emoji/1f53d.svg b/public/emoji/1f53d.svg
index a624cea78e..47ef8e021a 100644
--- a/public/emoji/1f53d.svg
+++ b/public/emoji/1f53d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f549.png b/public/emoji/1f549.png
deleted file mode 100644
index a35c63c459..0000000000
Binary files a/public/emoji/1f549.png and /dev/null differ
diff --git a/public/emoji/1f549.svg b/public/emoji/1f549.svg
index f068cd7397..cb310e3627 100644
--- a/public/emoji/1f549.svg
+++ b/public/emoji/1f549.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f54a.png b/public/emoji/1f54a.png
deleted file mode 100644
index 9580c4917d..0000000000
Binary files a/public/emoji/1f54a.png and /dev/null differ
diff --git a/public/emoji/1f54a.svg b/public/emoji/1f54a.svg
index 37fa3aaf1b..ac560ea662 100644
--- a/public/emoji/1f54a.svg
+++ b/public/emoji/1f54a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f54b.png b/public/emoji/1f54b.png
deleted file mode 100644
index 1778c1138e..0000000000
Binary files a/public/emoji/1f54b.png and /dev/null differ
diff --git a/public/emoji/1f54b.svg b/public/emoji/1f54b.svg
index 687e4d776a..92bc70f83a 100644
--- a/public/emoji/1f54b.svg
+++ b/public/emoji/1f54b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f54c.png b/public/emoji/1f54c.png
deleted file mode 100644
index ef770b26d9..0000000000
Binary files a/public/emoji/1f54c.png and /dev/null differ
diff --git a/public/emoji/1f54c.svg b/public/emoji/1f54c.svg
index 071b498d39..446c3c6f11 100644
--- a/public/emoji/1f54c.svg
+++ b/public/emoji/1f54c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f54d.png b/public/emoji/1f54d.png
deleted file mode 100644
index ee347904c8..0000000000
Binary files a/public/emoji/1f54d.png and /dev/null differ
diff --git a/public/emoji/1f54d.svg b/public/emoji/1f54d.svg
index e334855070..5f33b368b0 100644
--- a/public/emoji/1f54d.svg
+++ b/public/emoji/1f54d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f54e.png b/public/emoji/1f54e.png
deleted file mode 100644
index b429736286..0000000000
Binary files a/public/emoji/1f54e.png and /dev/null differ
diff --git a/public/emoji/1f54e.svg b/public/emoji/1f54e.svg
index 82e1ca3385..aa69dd7e1e 100644
--- a/public/emoji/1f54e.svg
+++ b/public/emoji/1f54e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f550.png b/public/emoji/1f550.png
deleted file mode 100644
index d6e34941f2..0000000000
Binary files a/public/emoji/1f550.png and /dev/null differ
diff --git a/public/emoji/1f550.svg b/public/emoji/1f550.svg
index bd5bb075bd..3b8391d079 100644
--- a/public/emoji/1f550.svg
+++ b/public/emoji/1f550.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f551.png b/public/emoji/1f551.png
deleted file mode 100644
index a54253d7d5..0000000000
Binary files a/public/emoji/1f551.png and /dev/null differ
diff --git a/public/emoji/1f551.svg b/public/emoji/1f551.svg
index 2e55177120..9094bf4ff1 100644
--- a/public/emoji/1f551.svg
+++ b/public/emoji/1f551.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f552.png b/public/emoji/1f552.png
deleted file mode 100644
index 27ec4b1f51..0000000000
Binary files a/public/emoji/1f552.png and /dev/null differ
diff --git a/public/emoji/1f552.svg b/public/emoji/1f552.svg
index 834d2ddc5b..d7627919ef 100644
--- a/public/emoji/1f552.svg
+++ b/public/emoji/1f552.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f553.png b/public/emoji/1f553.png
deleted file mode 100644
index 60a1ef4cc1..0000000000
Binary files a/public/emoji/1f553.png and /dev/null differ
diff --git a/public/emoji/1f553.svg b/public/emoji/1f553.svg
index 9f67b69581..c8825cbab0 100644
--- a/public/emoji/1f553.svg
+++ b/public/emoji/1f553.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f554.png b/public/emoji/1f554.png
deleted file mode 100644
index c9382d1e09..0000000000
Binary files a/public/emoji/1f554.png and /dev/null differ
diff --git a/public/emoji/1f554.svg b/public/emoji/1f554.svg
index 073f85721a..1002512b49 100644
--- a/public/emoji/1f554.svg
+++ b/public/emoji/1f554.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f555.png b/public/emoji/1f555.png
deleted file mode 100644
index 8fd5d3f5bd..0000000000
Binary files a/public/emoji/1f555.png and /dev/null differ
diff --git a/public/emoji/1f555.svg b/public/emoji/1f555.svg
index 0fc34642b9..8f4cf5d8a9 100644
--- a/public/emoji/1f555.svg
+++ b/public/emoji/1f555.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f556.png b/public/emoji/1f556.png
deleted file mode 100644
index 8c7084036f..0000000000
Binary files a/public/emoji/1f556.png and /dev/null differ
diff --git a/public/emoji/1f556.svg b/public/emoji/1f556.svg
index 5289190672..b160ba8dee 100644
--- a/public/emoji/1f556.svg
+++ b/public/emoji/1f556.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f557.png b/public/emoji/1f557.png
deleted file mode 100644
index fcddf722e9..0000000000
Binary files a/public/emoji/1f557.png and /dev/null differ
diff --git a/public/emoji/1f557.svg b/public/emoji/1f557.svg
index f5bc3aff5a..bf351fd081 100644
--- a/public/emoji/1f557.svg
+++ b/public/emoji/1f557.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f558.png b/public/emoji/1f558.png
deleted file mode 100644
index dfbe011798..0000000000
Binary files a/public/emoji/1f558.png and /dev/null differ
diff --git a/public/emoji/1f558.svg b/public/emoji/1f558.svg
index 7e4eda3865..ff38ea75b9 100644
--- a/public/emoji/1f558.svg
+++ b/public/emoji/1f558.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f559.png b/public/emoji/1f559.png
deleted file mode 100644
index e62b245cdb..0000000000
Binary files a/public/emoji/1f559.png and /dev/null differ
diff --git a/public/emoji/1f559.svg b/public/emoji/1f559.svg
index 21e380e625..e341eb5cc1 100644
--- a/public/emoji/1f559.svg
+++ b/public/emoji/1f559.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f55a.png b/public/emoji/1f55a.png
deleted file mode 100644
index 0983345273..0000000000
Binary files a/public/emoji/1f55a.png and /dev/null differ
diff --git a/public/emoji/1f55a.svg b/public/emoji/1f55a.svg
index 6d7a3531c8..0f916d26d0 100644
--- a/public/emoji/1f55a.svg
+++ b/public/emoji/1f55a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f55b.png b/public/emoji/1f55b.png
deleted file mode 100644
index e61caa4b3e..0000000000
Binary files a/public/emoji/1f55b.png and /dev/null differ
diff --git a/public/emoji/1f55b.svg b/public/emoji/1f55b.svg
index 1381b3bc67..1e99036069 100644
--- a/public/emoji/1f55b.svg
+++ b/public/emoji/1f55b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f55c.png b/public/emoji/1f55c.png
deleted file mode 100644
index 86b7689b84..0000000000
Binary files a/public/emoji/1f55c.png and /dev/null differ
diff --git a/public/emoji/1f55c.svg b/public/emoji/1f55c.svg
index 9972f542dd..d98c288848 100644
--- a/public/emoji/1f55c.svg
+++ b/public/emoji/1f55c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f55d.png b/public/emoji/1f55d.png
deleted file mode 100644
index 7a787e018e..0000000000
Binary files a/public/emoji/1f55d.png and /dev/null differ
diff --git a/public/emoji/1f55d.svg b/public/emoji/1f55d.svg
index 86f24116ec..efdbe5ca45 100644
--- a/public/emoji/1f55d.svg
+++ b/public/emoji/1f55d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f55e.png b/public/emoji/1f55e.png
deleted file mode 100644
index c6860395ce..0000000000
Binary files a/public/emoji/1f55e.png and /dev/null differ
diff --git a/public/emoji/1f55e.svg b/public/emoji/1f55e.svg
index da97799684..e8a5b47a84 100644
--- a/public/emoji/1f55e.svg
+++ b/public/emoji/1f55e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f55f.png b/public/emoji/1f55f.png
deleted file mode 100644
index 3c05b36212..0000000000
Binary files a/public/emoji/1f55f.png and /dev/null differ
diff --git a/public/emoji/1f55f.svg b/public/emoji/1f55f.svg
index 8185d206be..46d2f6098d 100644
--- a/public/emoji/1f55f.svg
+++ b/public/emoji/1f55f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f560.png b/public/emoji/1f560.png
deleted file mode 100644
index c21fa926db..0000000000
Binary files a/public/emoji/1f560.png and /dev/null differ
diff --git a/public/emoji/1f560.svg b/public/emoji/1f560.svg
index 54ef72628b..6b1eeabaa7 100644
--- a/public/emoji/1f560.svg
+++ b/public/emoji/1f560.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f561.png b/public/emoji/1f561.png
deleted file mode 100644
index 2aec87fefc..0000000000
Binary files a/public/emoji/1f561.png and /dev/null differ
diff --git a/public/emoji/1f561.svg b/public/emoji/1f561.svg
index fea0cde951..5510c23754 100644
--- a/public/emoji/1f561.svg
+++ b/public/emoji/1f561.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f562.png b/public/emoji/1f562.png
deleted file mode 100644
index f7a1135e03..0000000000
Binary files a/public/emoji/1f562.png and /dev/null differ
diff --git a/public/emoji/1f562.svg b/public/emoji/1f562.svg
index 5cf968fb8c..d600d0e195 100644
--- a/public/emoji/1f562.svg
+++ b/public/emoji/1f562.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f563.png b/public/emoji/1f563.png
deleted file mode 100644
index 799b4aebc0..0000000000
Binary files a/public/emoji/1f563.png and /dev/null differ
diff --git a/public/emoji/1f563.svg b/public/emoji/1f563.svg
index ce973153f5..7b1bf93598 100644
--- a/public/emoji/1f563.svg
+++ b/public/emoji/1f563.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f564.png b/public/emoji/1f564.png
deleted file mode 100644
index 4a2092ee6f..0000000000
Binary files a/public/emoji/1f564.png and /dev/null differ
diff --git a/public/emoji/1f564.svg b/public/emoji/1f564.svg
index d7d214fa1c..1ee190a632 100644
--- a/public/emoji/1f564.svg
+++ b/public/emoji/1f564.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f565.png b/public/emoji/1f565.png
deleted file mode 100644
index 0802b3c65b..0000000000
Binary files a/public/emoji/1f565.png and /dev/null differ
diff --git a/public/emoji/1f565.svg b/public/emoji/1f565.svg
index d7d8b48d14..e68c2eb3ab 100644
--- a/public/emoji/1f565.svg
+++ b/public/emoji/1f565.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f566.png b/public/emoji/1f566.png
deleted file mode 100644
index d970d03b80..0000000000
Binary files a/public/emoji/1f566.png and /dev/null differ
diff --git a/public/emoji/1f566.svg b/public/emoji/1f566.svg
index 77030c048a..67e850cbf8 100644
--- a/public/emoji/1f566.svg
+++ b/public/emoji/1f566.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f567.png b/public/emoji/1f567.png
deleted file mode 100644
index f2b1d26172..0000000000
Binary files a/public/emoji/1f567.png and /dev/null differ
diff --git a/public/emoji/1f567.svg b/public/emoji/1f567.svg
index 02e81326a3..b5bb0e0a69 100644
--- a/public/emoji/1f567.svg
+++ b/public/emoji/1f567.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f56f.png b/public/emoji/1f56f.png
deleted file mode 100644
index 0b56444e35..0000000000
Binary files a/public/emoji/1f56f.png and /dev/null differ
diff --git a/public/emoji/1f56f.svg b/public/emoji/1f56f.svg
index af4c60634a..8264304352 100644
--- a/public/emoji/1f56f.svg
+++ b/public/emoji/1f56f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f570.png b/public/emoji/1f570.png
deleted file mode 100644
index ffdb451e3a..0000000000
Binary files a/public/emoji/1f570.png and /dev/null differ
diff --git a/public/emoji/1f570.svg b/public/emoji/1f570.svg
index c2808cbacc..4086334598 100644
--- a/public/emoji/1f570.svg
+++ b/public/emoji/1f570.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f573.png b/public/emoji/1f573.png
deleted file mode 100644
index 517d2ae0de..0000000000
Binary files a/public/emoji/1f573.png and /dev/null differ
diff --git a/public/emoji/1f573.svg b/public/emoji/1f573.svg
index 4ccc4369f4..d45030a303 100644
--- a/public/emoji/1f573.svg
+++ b/public/emoji/1f573.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f574-1f3fb.svg b/public/emoji/1f574-1f3fb.svg
new file mode 100644
index 0000000000..557e7da46e
--- /dev/null
+++ b/public/emoji/1f574-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f574-1f3fc.svg b/public/emoji/1f574-1f3fc.svg
new file mode 100644
index 0000000000..e7934589d1
--- /dev/null
+++ b/public/emoji/1f574-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f574-1f3fd.svg b/public/emoji/1f574-1f3fd.svg
new file mode 100644
index 0000000000..e0fc839fa6
--- /dev/null
+++ b/public/emoji/1f574-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f574-1f3fe.svg b/public/emoji/1f574-1f3fe.svg
new file mode 100644
index 0000000000..ea17439972
--- /dev/null
+++ b/public/emoji/1f574-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f574-1f3ff.svg b/public/emoji/1f574-1f3ff.svg
new file mode 100644
index 0000000000..bae73e2050
--- /dev/null
+++ b/public/emoji/1f574-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f574.png b/public/emoji/1f574.png
deleted file mode 100644
index 3dc315a3d9..0000000000
Binary files a/public/emoji/1f574.png and /dev/null differ
diff --git a/public/emoji/1f574.svg b/public/emoji/1f574.svg
index cfaf2a7896..cf6aa4b7ee 100644
--- a/public/emoji/1f574.svg
+++ b/public/emoji/1f574.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f575-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f575-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..22d2265a6b
--- /dev/null
+++ b/public/emoji/1f575-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f575-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..87429276e7
--- /dev/null
+++ b/public/emoji/1f575-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575-1f3fb.png b/public/emoji/1f575-1f3fb.png
deleted file mode 100644
index 2d1c022cae..0000000000
Binary files a/public/emoji/1f575-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f575-1f3fb.svg b/public/emoji/1f575-1f3fb.svg
index 9e0d53872e..87429276e7 100644
--- a/public/emoji/1f575-1f3fb.svg
+++ b/public/emoji/1f575-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f575-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f575-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..110603c479
--- /dev/null
+++ b/public/emoji/1f575-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f575-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..a76aeba518
--- /dev/null
+++ b/public/emoji/1f575-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575-1f3fc.png b/public/emoji/1f575-1f3fc.png
deleted file mode 100644
index 548b9c26f5..0000000000
Binary files a/public/emoji/1f575-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f575-1f3fc.svg b/public/emoji/1f575-1f3fc.svg
index 1eb13a65ec..a76aeba518 100644
--- a/public/emoji/1f575-1f3fc.svg
+++ b/public/emoji/1f575-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f575-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f575-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..5ed697977a
--- /dev/null
+++ b/public/emoji/1f575-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f575-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..85821083d5
--- /dev/null
+++ b/public/emoji/1f575-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575-1f3fd.png b/public/emoji/1f575-1f3fd.png
deleted file mode 100644
index b023f4b18e..0000000000
Binary files a/public/emoji/1f575-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f575-1f3fd.svg b/public/emoji/1f575-1f3fd.svg
index 6eaa233c32..85821083d5 100644
--- a/public/emoji/1f575-1f3fd.svg
+++ b/public/emoji/1f575-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f575-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f575-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..4099bdc92a
--- /dev/null
+++ b/public/emoji/1f575-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f575-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..917dc17774
--- /dev/null
+++ b/public/emoji/1f575-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575-1f3fe.png b/public/emoji/1f575-1f3fe.png
deleted file mode 100644
index d8300af492..0000000000
Binary files a/public/emoji/1f575-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f575-1f3fe.svg b/public/emoji/1f575-1f3fe.svg
index f3f11e430f..917dc17774 100644
--- a/public/emoji/1f575-1f3fe.svg
+++ b/public/emoji/1f575-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f575-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f575-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..f1e2b8c5e1
--- /dev/null
+++ b/public/emoji/1f575-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f575-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..04dc79582a
--- /dev/null
+++ b/public/emoji/1f575-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575-1f3ff.png b/public/emoji/1f575-1f3ff.png
deleted file mode 100644
index ca1462595f..0000000000
Binary files a/public/emoji/1f575-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f575-1f3ff.svg b/public/emoji/1f575-1f3ff.svg
index 5fc5575469..04dc79582a 100644
--- a/public/emoji/1f575-1f3ff.svg
+++ b/public/emoji/1f575-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f575-fe0f-200d-2640-fe0f.svg b/public/emoji/1f575-fe0f-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..625c83007b
--- /dev/null
+++ b/public/emoji/1f575-fe0f-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575-fe0f-200d-2642-fe0f.svg b/public/emoji/1f575-fe0f-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..89e86fd2c6
--- /dev/null
+++ b/public/emoji/1f575-fe0f-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f575.png b/public/emoji/1f575.png
deleted file mode 100644
index a729e9584d..0000000000
Binary files a/public/emoji/1f575.png and /dev/null differ
diff --git a/public/emoji/1f575.svg b/public/emoji/1f575.svg
index 9612edafbc..89e86fd2c6 100644
--- a/public/emoji/1f575.svg
+++ b/public/emoji/1f575.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f576.png b/public/emoji/1f576.png
deleted file mode 100644
index b1b6db0acf..0000000000
Binary files a/public/emoji/1f576.png and /dev/null differ
diff --git a/public/emoji/1f576.svg b/public/emoji/1f576.svg
index 3f1075ec43..07dfcf0458 100644
--- a/public/emoji/1f576.svg
+++ b/public/emoji/1f576.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f577.png b/public/emoji/1f577.png
deleted file mode 100644
index 3849fa90b9..0000000000
Binary files a/public/emoji/1f577.png and /dev/null differ
diff --git a/public/emoji/1f577.svg b/public/emoji/1f577.svg
index 21bb089013..35c53883bf 100644
--- a/public/emoji/1f577.svg
+++ b/public/emoji/1f577.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f578.png b/public/emoji/1f578.png
deleted file mode 100644
index ba448ee7fb..0000000000
Binary files a/public/emoji/1f578.png and /dev/null differ
diff --git a/public/emoji/1f578.svg b/public/emoji/1f578.svg
index 8a5a419592..a09fb444aa 100644
--- a/public/emoji/1f578.svg
+++ b/public/emoji/1f578.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f579.png b/public/emoji/1f579.png
deleted file mode 100644
index 1ee1905434..0000000000
Binary files a/public/emoji/1f579.png and /dev/null differ
diff --git a/public/emoji/1f579.svg b/public/emoji/1f579.svg
index b2e6440130..a8290299be 100644
--- a/public/emoji/1f579.svg
+++ b/public/emoji/1f579.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f57a-1f3fb.png b/public/emoji/1f57a-1f3fb.png
deleted file mode 100644
index e0b9f82d90..0000000000
Binary files a/public/emoji/1f57a-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f57a-1f3fb.svg b/public/emoji/1f57a-1f3fb.svg
index fc47b48f68..4e375b9f1d 100644
--- a/public/emoji/1f57a-1f3fb.svg
+++ b/public/emoji/1f57a-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f57a-1f3fc.png b/public/emoji/1f57a-1f3fc.png
deleted file mode 100644
index a5beed56e2..0000000000
Binary files a/public/emoji/1f57a-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f57a-1f3fc.svg b/public/emoji/1f57a-1f3fc.svg
index 289dcb68af..f88efc7512 100644
--- a/public/emoji/1f57a-1f3fc.svg
+++ b/public/emoji/1f57a-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f57a-1f3fd.png b/public/emoji/1f57a-1f3fd.png
deleted file mode 100644
index 2fa20180a6..0000000000
Binary files a/public/emoji/1f57a-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f57a-1f3fd.svg b/public/emoji/1f57a-1f3fd.svg
index 0356c2ac96..b2e430355b 100644
--- a/public/emoji/1f57a-1f3fd.svg
+++ b/public/emoji/1f57a-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f57a-1f3fe.png b/public/emoji/1f57a-1f3fe.png
deleted file mode 100644
index bd3528c83b..0000000000
Binary files a/public/emoji/1f57a-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f57a-1f3fe.svg b/public/emoji/1f57a-1f3fe.svg
index 70bb51fb95..efec3c0e4a 100644
--- a/public/emoji/1f57a-1f3fe.svg
+++ b/public/emoji/1f57a-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f57a-1f3ff.png b/public/emoji/1f57a-1f3ff.png
deleted file mode 100644
index 41fd4f880c..0000000000
Binary files a/public/emoji/1f57a-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f57a-1f3ff.svg b/public/emoji/1f57a-1f3ff.svg
index 61633d21d7..f8b9c9c0fc 100644
--- a/public/emoji/1f57a-1f3ff.svg
+++ b/public/emoji/1f57a-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f57a.png b/public/emoji/1f57a.png
deleted file mode 100644
index ccff3bede5..0000000000
Binary files a/public/emoji/1f57a.png and /dev/null differ
diff --git a/public/emoji/1f57a.svg b/public/emoji/1f57a.svg
index 11d2247c7d..6dd7710058 100644
--- a/public/emoji/1f57a.svg
+++ b/public/emoji/1f57a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f587.png b/public/emoji/1f587.png
deleted file mode 100644
index 76021e8c70..0000000000
Binary files a/public/emoji/1f587.png and /dev/null differ
diff --git a/public/emoji/1f587.svg b/public/emoji/1f587.svg
index b2dafc18b5..8f33de38d6 100644
--- a/public/emoji/1f587.svg
+++ b/public/emoji/1f587.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f58a.png b/public/emoji/1f58a.png
deleted file mode 100644
index 6ef7a34243..0000000000
Binary files a/public/emoji/1f58a.png and /dev/null differ
diff --git a/public/emoji/1f58a.svg b/public/emoji/1f58a.svg
index 1b61284ce0..88dafbf5cb 100644
--- a/public/emoji/1f58a.svg
+++ b/public/emoji/1f58a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f58b.png b/public/emoji/1f58b.png
deleted file mode 100644
index 3ca4bd2c23..0000000000
Binary files a/public/emoji/1f58b.png and /dev/null differ
diff --git a/public/emoji/1f58b.svg b/public/emoji/1f58b.svg
index a15d1aa50e..a73b058839 100644
--- a/public/emoji/1f58b.svg
+++ b/public/emoji/1f58b.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f58c.png b/public/emoji/1f58c.png
deleted file mode 100644
index 28bffbaa3c..0000000000
Binary files a/public/emoji/1f58c.png and /dev/null differ
diff --git a/public/emoji/1f58c.svg b/public/emoji/1f58c.svg
index 25a6916601..ccff7f8f61 100644
--- a/public/emoji/1f58c.svg
+++ b/public/emoji/1f58c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f58d.png b/public/emoji/1f58d.png
deleted file mode 100644
index 8d7b427aaa..0000000000
Binary files a/public/emoji/1f58d.png and /dev/null differ
diff --git a/public/emoji/1f58d.svg b/public/emoji/1f58d.svg
index 5a76528b55..69bc06e759 100644
--- a/public/emoji/1f58d.svg
+++ b/public/emoji/1f58d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f590-1f3fb.png b/public/emoji/1f590-1f3fb.png
deleted file mode 100644
index a7888e6bd2..0000000000
Binary files a/public/emoji/1f590-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f590-1f3fb.svg b/public/emoji/1f590-1f3fb.svg
index 5154c0bb03..bd1bf5aaeb 100644
--- a/public/emoji/1f590-1f3fb.svg
+++ b/public/emoji/1f590-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f590-1f3fc.png b/public/emoji/1f590-1f3fc.png
deleted file mode 100644
index cc10fbc272..0000000000
Binary files a/public/emoji/1f590-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f590-1f3fc.svg b/public/emoji/1f590-1f3fc.svg
index 00e624a29e..9082d2b684 100644
--- a/public/emoji/1f590-1f3fc.svg
+++ b/public/emoji/1f590-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f590-1f3fd.png b/public/emoji/1f590-1f3fd.png
deleted file mode 100644
index 707236ae8a..0000000000
Binary files a/public/emoji/1f590-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f590-1f3fd.svg b/public/emoji/1f590-1f3fd.svg
index 79c9644089..1eaeadc293 100644
--- a/public/emoji/1f590-1f3fd.svg
+++ b/public/emoji/1f590-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f590-1f3fe.png b/public/emoji/1f590-1f3fe.png
deleted file mode 100644
index 1430df9c61..0000000000
Binary files a/public/emoji/1f590-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f590-1f3fe.svg b/public/emoji/1f590-1f3fe.svg
index 1e01c773ba..1fe6d0be70 100644
--- a/public/emoji/1f590-1f3fe.svg
+++ b/public/emoji/1f590-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f590-1f3ff.png b/public/emoji/1f590-1f3ff.png
deleted file mode 100644
index 80bec971b6..0000000000
Binary files a/public/emoji/1f590-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f590-1f3ff.svg b/public/emoji/1f590-1f3ff.svg
index feae919776..5a2ece62ca 100644
--- a/public/emoji/1f590-1f3ff.svg
+++ b/public/emoji/1f590-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f590.png b/public/emoji/1f590.png
deleted file mode 100644
index fb5ae8ebb5..0000000000
Binary files a/public/emoji/1f590.png and /dev/null differ
diff --git a/public/emoji/1f590.svg b/public/emoji/1f590.svg
index daefb13e62..5d7b83f464 100644
--- a/public/emoji/1f590.svg
+++ b/public/emoji/1f590.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f595-1f3fb.png b/public/emoji/1f595-1f3fb.png
deleted file mode 100644
index 61ef12a154..0000000000
Binary files a/public/emoji/1f595-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f595-1f3fb.svg b/public/emoji/1f595-1f3fb.svg
index 74a6b8c401..29cb0ad89c 100644
--- a/public/emoji/1f595-1f3fb.svg
+++ b/public/emoji/1f595-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f595-1f3fc.png b/public/emoji/1f595-1f3fc.png
deleted file mode 100644
index c31a69be9a..0000000000
Binary files a/public/emoji/1f595-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f595-1f3fc.svg b/public/emoji/1f595-1f3fc.svg
index 57bccaa789..b8a18628ed 100644
--- a/public/emoji/1f595-1f3fc.svg
+++ b/public/emoji/1f595-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f595-1f3fd.png b/public/emoji/1f595-1f3fd.png
deleted file mode 100644
index 73ac216ce6..0000000000
Binary files a/public/emoji/1f595-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f595-1f3fd.svg b/public/emoji/1f595-1f3fd.svg
index 8ae95508b3..35a676a204 100644
--- a/public/emoji/1f595-1f3fd.svg
+++ b/public/emoji/1f595-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f595-1f3fe.png b/public/emoji/1f595-1f3fe.png
deleted file mode 100644
index 80b8ab7706..0000000000
Binary files a/public/emoji/1f595-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f595-1f3fe.svg b/public/emoji/1f595-1f3fe.svg
index b571c15532..0f3c877bc8 100644
--- a/public/emoji/1f595-1f3fe.svg
+++ b/public/emoji/1f595-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f595-1f3ff.png b/public/emoji/1f595-1f3ff.png
deleted file mode 100644
index a8826b196e..0000000000
Binary files a/public/emoji/1f595-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f595-1f3ff.svg b/public/emoji/1f595-1f3ff.svg
index 63062da9a4..a5592dda93 100644
--- a/public/emoji/1f595-1f3ff.svg
+++ b/public/emoji/1f595-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f595.png b/public/emoji/1f595.png
deleted file mode 100644
index 697f7a25eb..0000000000
Binary files a/public/emoji/1f595.png and /dev/null differ
diff --git a/public/emoji/1f595.svg b/public/emoji/1f595.svg
index a4247910c9..2ca84e3bae 100644
--- a/public/emoji/1f595.svg
+++ b/public/emoji/1f595.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f596-1f3fb.png b/public/emoji/1f596-1f3fb.png
deleted file mode 100644
index 8aff5d8fa1..0000000000
Binary files a/public/emoji/1f596-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f596-1f3fb.svg b/public/emoji/1f596-1f3fb.svg
index 73de3c32db..1a7d5d6d57 100644
--- a/public/emoji/1f596-1f3fb.svg
+++ b/public/emoji/1f596-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f596-1f3fc.png b/public/emoji/1f596-1f3fc.png
deleted file mode 100644
index 82b7ad519b..0000000000
Binary files a/public/emoji/1f596-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f596-1f3fc.svg b/public/emoji/1f596-1f3fc.svg
index acd4f53b64..da22363826 100644
--- a/public/emoji/1f596-1f3fc.svg
+++ b/public/emoji/1f596-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f596-1f3fd.png b/public/emoji/1f596-1f3fd.png
deleted file mode 100644
index d1400e1dd2..0000000000
Binary files a/public/emoji/1f596-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f596-1f3fd.svg b/public/emoji/1f596-1f3fd.svg
index ab308598ef..c688db96ac 100644
--- a/public/emoji/1f596-1f3fd.svg
+++ b/public/emoji/1f596-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f596-1f3fe.png b/public/emoji/1f596-1f3fe.png
deleted file mode 100644
index 47e2b28014..0000000000
Binary files a/public/emoji/1f596-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f596-1f3fe.svg b/public/emoji/1f596-1f3fe.svg
index 6104d999df..2fc051573e 100644
--- a/public/emoji/1f596-1f3fe.svg
+++ b/public/emoji/1f596-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f596-1f3ff.png b/public/emoji/1f596-1f3ff.png
deleted file mode 100644
index 60b5c6077b..0000000000
Binary files a/public/emoji/1f596-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f596-1f3ff.svg b/public/emoji/1f596-1f3ff.svg
index e936d88aaa..8819883971 100644
--- a/public/emoji/1f596-1f3ff.svg
+++ b/public/emoji/1f596-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f596.png b/public/emoji/1f596.png
deleted file mode 100644
index 54728bcaf5..0000000000
Binary files a/public/emoji/1f596.png and /dev/null differ
diff --git a/public/emoji/1f596.svg b/public/emoji/1f596.svg
index b2fb218f74..8126598d25 100644
--- a/public/emoji/1f596.svg
+++ b/public/emoji/1f596.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5a4.png b/public/emoji/1f5a4.png
deleted file mode 100644
index b4068c3e6e..0000000000
Binary files a/public/emoji/1f5a4.png and /dev/null differ
diff --git a/public/emoji/1f5a4.svg b/public/emoji/1f5a4.svg
index 5cedc5fb2f..8d3556c4eb 100644
--- a/public/emoji/1f5a4.svg
+++ b/public/emoji/1f5a4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5a5.png b/public/emoji/1f5a5.png
deleted file mode 100644
index 909bd42b5e..0000000000
Binary files a/public/emoji/1f5a5.png and /dev/null differ
diff --git a/public/emoji/1f5a5.svg b/public/emoji/1f5a5.svg
index 852287cf99..36b9da1feb 100644
--- a/public/emoji/1f5a5.svg
+++ b/public/emoji/1f5a5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5a8.png b/public/emoji/1f5a8.png
deleted file mode 100644
index 027c830f0f..0000000000
Binary files a/public/emoji/1f5a8.png and /dev/null differ
diff --git a/public/emoji/1f5a8.svg b/public/emoji/1f5a8.svg
index 4eb491f2e3..a34359e13f 100644
--- a/public/emoji/1f5a8.svg
+++ b/public/emoji/1f5a8.svg
@@ -1,3 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5b1.png b/public/emoji/1f5b1.png
deleted file mode 100644
index e84e96ff6e..0000000000
Binary files a/public/emoji/1f5b1.png and /dev/null differ
diff --git a/public/emoji/1f5b1.svg b/public/emoji/1f5b1.svg
index ed83ffe0fa..cbad4fd06c 100644
--- a/public/emoji/1f5b1.svg
+++ b/public/emoji/1f5b1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5b2.png b/public/emoji/1f5b2.png
deleted file mode 100644
index 3bea84ad7c..0000000000
Binary files a/public/emoji/1f5b2.png and /dev/null differ
diff --git a/public/emoji/1f5b2.svg b/public/emoji/1f5b2.svg
index 35468b2c8d..fd464c0964 100644
--- a/public/emoji/1f5b2.svg
+++ b/public/emoji/1f5b2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5bc.png b/public/emoji/1f5bc.png
deleted file mode 100644
index 9fe84607bf..0000000000
Binary files a/public/emoji/1f5bc.png and /dev/null differ
diff --git a/public/emoji/1f5bc.svg b/public/emoji/1f5bc.svg
index a0f89d0d62..8d935157a7 100644
--- a/public/emoji/1f5bc.svg
+++ b/public/emoji/1f5bc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5c2.png b/public/emoji/1f5c2.png
deleted file mode 100644
index 46a7e403f9..0000000000
Binary files a/public/emoji/1f5c2.png and /dev/null differ
diff --git a/public/emoji/1f5c2.svg b/public/emoji/1f5c2.svg
index d2046e806f..b63f3914cf 100644
--- a/public/emoji/1f5c2.svg
+++ b/public/emoji/1f5c2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5c3.png b/public/emoji/1f5c3.png
deleted file mode 100644
index f2e764ce59..0000000000
Binary files a/public/emoji/1f5c3.png and /dev/null differ
diff --git a/public/emoji/1f5c3.svg b/public/emoji/1f5c3.svg
index 4ab8e1b1cf..743f964e64 100644
--- a/public/emoji/1f5c3.svg
+++ b/public/emoji/1f5c3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5c4.png b/public/emoji/1f5c4.png
deleted file mode 100644
index fddc65dde9..0000000000
Binary files a/public/emoji/1f5c4.png and /dev/null differ
diff --git a/public/emoji/1f5c4.svg b/public/emoji/1f5c4.svg
index e27bdf1b3d..d3986817f0 100644
--- a/public/emoji/1f5c4.svg
+++ b/public/emoji/1f5c4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5d1.png b/public/emoji/1f5d1.png
deleted file mode 100644
index 2b3c484b49..0000000000
Binary files a/public/emoji/1f5d1.png and /dev/null differ
diff --git a/public/emoji/1f5d1.svg b/public/emoji/1f5d1.svg
index a83f728e25..d9ea71a060 100644
--- a/public/emoji/1f5d1.svg
+++ b/public/emoji/1f5d1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5d2.png b/public/emoji/1f5d2.png
deleted file mode 100644
index 85faa10d8e..0000000000
Binary files a/public/emoji/1f5d2.png and /dev/null differ
diff --git a/public/emoji/1f5d2.svg b/public/emoji/1f5d2.svg
index edfd8d0e63..61e735eb94 100644
--- a/public/emoji/1f5d2.svg
+++ b/public/emoji/1f5d2.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5d3.png b/public/emoji/1f5d3.png
deleted file mode 100644
index dec8d49bfa..0000000000
Binary files a/public/emoji/1f5d3.png and /dev/null differ
diff --git a/public/emoji/1f5d3.svg b/public/emoji/1f5d3.svg
index abe8a94103..cd3ce27577 100644
--- a/public/emoji/1f5d3.svg
+++ b/public/emoji/1f5d3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5dc.png b/public/emoji/1f5dc.png
deleted file mode 100644
index d7eda7f362..0000000000
Binary files a/public/emoji/1f5dc.png and /dev/null differ
diff --git a/public/emoji/1f5dc.svg b/public/emoji/1f5dc.svg
index 7d7fcab04f..412bf6bf70 100644
--- a/public/emoji/1f5dc.svg
+++ b/public/emoji/1f5dc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5dd.png b/public/emoji/1f5dd.png
deleted file mode 100644
index e11d706c6c..0000000000
Binary files a/public/emoji/1f5dd.png and /dev/null differ
diff --git a/public/emoji/1f5dd.svg b/public/emoji/1f5dd.svg
index 9bbf4f2acd..bd1d995814 100644
--- a/public/emoji/1f5dd.svg
+++ b/public/emoji/1f5dd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5de.png b/public/emoji/1f5de.png
deleted file mode 100644
index f64748df2b..0000000000
Binary files a/public/emoji/1f5de.png and /dev/null differ
diff --git a/public/emoji/1f5de.svg b/public/emoji/1f5de.svg
index fc37886336..f99430638d 100644
--- a/public/emoji/1f5de.svg
+++ b/public/emoji/1f5de.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5e1.png b/public/emoji/1f5e1.png
deleted file mode 100644
index 66e97b0aa2..0000000000
Binary files a/public/emoji/1f5e1.png and /dev/null differ
diff --git a/public/emoji/1f5e1.svg b/public/emoji/1f5e1.svg
index 8802fe08c1..9f4d1b5da1 100644
--- a/public/emoji/1f5e1.svg
+++ b/public/emoji/1f5e1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5e3.png b/public/emoji/1f5e3.png
deleted file mode 100644
index 2df93aaae0..0000000000
Binary files a/public/emoji/1f5e3.png and /dev/null differ
diff --git a/public/emoji/1f5e3.svg b/public/emoji/1f5e3.svg
index 9ba8a6ca6a..ded1caa613 100644
--- a/public/emoji/1f5e3.svg
+++ b/public/emoji/1f5e3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5e8.png b/public/emoji/1f5e8.png
deleted file mode 100644
index 00c05959bc..0000000000
Binary files a/public/emoji/1f5e8.png and /dev/null differ
diff --git a/public/emoji/1f5e8.svg b/public/emoji/1f5e8.svg
index b8c77e4115..d158c6e251 100644
--- a/public/emoji/1f5e8.svg
+++ b/public/emoji/1f5e8.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5ef.png b/public/emoji/1f5ef.png
deleted file mode 100644
index f5c97c4d29..0000000000
Binary files a/public/emoji/1f5ef.png and /dev/null differ
diff --git a/public/emoji/1f5ef.svg b/public/emoji/1f5ef.svg
index ed82900988..f9f4c9be12 100644
--- a/public/emoji/1f5ef.svg
+++ b/public/emoji/1f5ef.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5f3.png b/public/emoji/1f5f3.png
deleted file mode 100644
index 9b6767aea9..0000000000
Binary files a/public/emoji/1f5f3.png and /dev/null differ
diff --git a/public/emoji/1f5f3.svg b/public/emoji/1f5f3.svg
index c0cfc83074..4aa277eb0a 100644
--- a/public/emoji/1f5f3.svg
+++ b/public/emoji/1f5f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5fa.png b/public/emoji/1f5fa.png
deleted file mode 100644
index 15efe32c79..0000000000
Binary files a/public/emoji/1f5fa.png and /dev/null differ
diff --git a/public/emoji/1f5fa.svg b/public/emoji/1f5fa.svg
index 182a68f7f5..b6e48a7c17 100644
--- a/public/emoji/1f5fa.svg
+++ b/public/emoji/1f5fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5fb.png b/public/emoji/1f5fb.png
deleted file mode 100644
index 88a5475245..0000000000
Binary files a/public/emoji/1f5fb.png and /dev/null differ
diff --git a/public/emoji/1f5fb.svg b/public/emoji/1f5fb.svg
index 17545f8cc3..68b542bc1e 100644
--- a/public/emoji/1f5fb.svg
+++ b/public/emoji/1f5fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5fc.png b/public/emoji/1f5fc.png
deleted file mode 100644
index 37df7fc65b..0000000000
Binary files a/public/emoji/1f5fc.png and /dev/null differ
diff --git a/public/emoji/1f5fc.svg b/public/emoji/1f5fc.svg
index cb64daa5f2..40ee1e93bf 100644
--- a/public/emoji/1f5fc.svg
+++ b/public/emoji/1f5fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5fd.png b/public/emoji/1f5fd.png
deleted file mode 100644
index 05df8289b5..0000000000
Binary files a/public/emoji/1f5fd.png and /dev/null differ
diff --git a/public/emoji/1f5fd.svg b/public/emoji/1f5fd.svg
index fc4d834596..bbdd9f727c 100644
--- a/public/emoji/1f5fd.svg
+++ b/public/emoji/1f5fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5fe.png b/public/emoji/1f5fe.png
deleted file mode 100644
index d86d0a59e1..0000000000
Binary files a/public/emoji/1f5fe.png and /dev/null differ
diff --git a/public/emoji/1f5fe.svg b/public/emoji/1f5fe.svg
index 2b86ffcad1..02b5e88d60 100644
--- a/public/emoji/1f5fe.svg
+++ b/public/emoji/1f5fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f5ff.png b/public/emoji/1f5ff.png
deleted file mode 100644
index e6a7779c45..0000000000
Binary files a/public/emoji/1f5ff.png and /dev/null differ
diff --git a/public/emoji/1f5ff.svg b/public/emoji/1f5ff.svg
index 3b6c02afd5..ebe1791929 100644
--- a/public/emoji/1f5ff.svg
+++ b/public/emoji/1f5ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f600.png b/public/emoji/1f600.png
deleted file mode 100644
index 3e8e0dab78..0000000000
Binary files a/public/emoji/1f600.png and /dev/null differ
diff --git a/public/emoji/1f600.svg b/public/emoji/1f600.svg
index 33a476929c..d7e74f2d72 100644
--- a/public/emoji/1f600.svg
+++ b/public/emoji/1f600.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f601.png b/public/emoji/1f601.png
deleted file mode 100644
index 418d94c811..0000000000
Binary files a/public/emoji/1f601.png and /dev/null differ
diff --git a/public/emoji/1f601.svg b/public/emoji/1f601.svg
index e3939db53c..5f3b93ea05 100644
--- a/public/emoji/1f601.svg
+++ b/public/emoji/1f601.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f602.png b/public/emoji/1f602.png
deleted file mode 100644
index 0ba3b1859d..0000000000
Binary files a/public/emoji/1f602.png and /dev/null differ
diff --git a/public/emoji/1f602.svg b/public/emoji/1f602.svg
index ad3522a9d6..09650895a8 100644
--- a/public/emoji/1f602.svg
+++ b/public/emoji/1f602.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f603.png b/public/emoji/1f603.png
deleted file mode 100644
index 30957a6596..0000000000
Binary files a/public/emoji/1f603.png and /dev/null differ
diff --git a/public/emoji/1f603.svg b/public/emoji/1f603.svg
index a526b1541b..3b0f5413f1 100644
--- a/public/emoji/1f603.svg
+++ b/public/emoji/1f603.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f604.png b/public/emoji/1f604.png
deleted file mode 100644
index aa47ffe978..0000000000
Binary files a/public/emoji/1f604.png and /dev/null differ
diff --git a/public/emoji/1f604.svg b/public/emoji/1f604.svg
index 9d3a8409e1..c0d62c68da 100644
--- a/public/emoji/1f604.svg
+++ b/public/emoji/1f604.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f605.png b/public/emoji/1f605.png
deleted file mode 100644
index cb18d9c899..0000000000
Binary files a/public/emoji/1f605.png and /dev/null differ
diff --git a/public/emoji/1f605.svg b/public/emoji/1f605.svg
index da20875452..2d9c1104c7 100644
--- a/public/emoji/1f605.svg
+++ b/public/emoji/1f605.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f606.png b/public/emoji/1f606.png
deleted file mode 100644
index d94e9505ba..0000000000
Binary files a/public/emoji/1f606.png and /dev/null differ
diff --git a/public/emoji/1f606.svg b/public/emoji/1f606.svg
index a16e007eb4..b802bce3e0 100644
--- a/public/emoji/1f606.svg
+++ b/public/emoji/1f606.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f607.png b/public/emoji/1f607.png
deleted file mode 100644
index 57f5151124..0000000000
Binary files a/public/emoji/1f607.png and /dev/null differ
diff --git a/public/emoji/1f607.svg b/public/emoji/1f607.svg
index 7109c83712..c5139cb9de 100644
--- a/public/emoji/1f607.svg
+++ b/public/emoji/1f607.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f608.png b/public/emoji/1f608.png
deleted file mode 100644
index cc2c5f1ec7..0000000000
Binary files a/public/emoji/1f608.png and /dev/null differ
diff --git a/public/emoji/1f608.svg b/public/emoji/1f608.svg
index bdf4236168..770f118d92 100644
--- a/public/emoji/1f608.svg
+++ b/public/emoji/1f608.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f609.png b/public/emoji/1f609.png
deleted file mode 100644
index 7ea7810a37..0000000000
Binary files a/public/emoji/1f609.png and /dev/null differ
diff --git a/public/emoji/1f609.svg b/public/emoji/1f609.svg
index 2e4509e57e..0a7bf7fb81 100644
--- a/public/emoji/1f609.svg
+++ b/public/emoji/1f609.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f60a.png b/public/emoji/1f60a.png
deleted file mode 100644
index aac1a424ad..0000000000
Binary files a/public/emoji/1f60a.png and /dev/null differ
diff --git a/public/emoji/1f60a.svg b/public/emoji/1f60a.svg
index 797c06386d..ad888b5811 100644
--- a/public/emoji/1f60a.svg
+++ b/public/emoji/1f60a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f60b.png b/public/emoji/1f60b.png
deleted file mode 100644
index 2df15753ca..0000000000
Binary files a/public/emoji/1f60b.png and /dev/null differ
diff --git a/public/emoji/1f60b.svg b/public/emoji/1f60b.svg
index 932ca7d7ce..1439ed01e3 100644
--- a/public/emoji/1f60b.svg
+++ b/public/emoji/1f60b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f60c.png b/public/emoji/1f60c.png
deleted file mode 100644
index 715ad0bf53..0000000000
Binary files a/public/emoji/1f60c.png and /dev/null differ
diff --git a/public/emoji/1f60c.svg b/public/emoji/1f60c.svg
index 4af17f1440..bad14b74ff 100644
--- a/public/emoji/1f60c.svg
+++ b/public/emoji/1f60c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f60d.png b/public/emoji/1f60d.png
deleted file mode 100644
index 73fbee29d4..0000000000
Binary files a/public/emoji/1f60d.png and /dev/null differ
diff --git a/public/emoji/1f60d.svg b/public/emoji/1f60d.svg
index 4237d7e3f6..ea5dce36a6 100644
--- a/public/emoji/1f60d.svg
+++ b/public/emoji/1f60d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f60e.png b/public/emoji/1f60e.png
deleted file mode 100644
index 2001173511..0000000000
Binary files a/public/emoji/1f60e.png and /dev/null differ
diff --git a/public/emoji/1f60e.svg b/public/emoji/1f60e.svg
index 945ae68db6..4dfb1d675e 100644
--- a/public/emoji/1f60e.svg
+++ b/public/emoji/1f60e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f60f.png b/public/emoji/1f60f.png
deleted file mode 100644
index 8785210998..0000000000
Binary files a/public/emoji/1f60f.png and /dev/null differ
diff --git a/public/emoji/1f60f.svg b/public/emoji/1f60f.svg
index 68a3db63b7..886ea2e1b4 100644
--- a/public/emoji/1f60f.svg
+++ b/public/emoji/1f60f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f610.png b/public/emoji/1f610.png
deleted file mode 100644
index 065d193afe..0000000000
Binary files a/public/emoji/1f610.png and /dev/null differ
diff --git a/public/emoji/1f610.svg b/public/emoji/1f610.svg
index 23a11f7c55..69a7a3816f 100644
--- a/public/emoji/1f610.svg
+++ b/public/emoji/1f610.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f611.png b/public/emoji/1f611.png
deleted file mode 100644
index 2954017f6c..0000000000
Binary files a/public/emoji/1f611.png and /dev/null differ
diff --git a/public/emoji/1f611.svg b/public/emoji/1f611.svg
index 7938d2c1d8..71a6155a5b 100644
--- a/public/emoji/1f611.svg
+++ b/public/emoji/1f611.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f612.png b/public/emoji/1f612.png
deleted file mode 100644
index 25e3677f2e..0000000000
Binary files a/public/emoji/1f612.png and /dev/null differ
diff --git a/public/emoji/1f612.svg b/public/emoji/1f612.svg
index e557627484..bc67b3aa0b 100644
--- a/public/emoji/1f612.svg
+++ b/public/emoji/1f612.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f613.png b/public/emoji/1f613.png
deleted file mode 100644
index f0dae7b789..0000000000
Binary files a/public/emoji/1f613.png and /dev/null differ
diff --git a/public/emoji/1f613.svg b/public/emoji/1f613.svg
index 607726762c..82838f4198 100644
--- a/public/emoji/1f613.svg
+++ b/public/emoji/1f613.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f614.png b/public/emoji/1f614.png
deleted file mode 100644
index 490fb56695..0000000000
Binary files a/public/emoji/1f614.png and /dev/null differ
diff --git a/public/emoji/1f614.svg b/public/emoji/1f614.svg
index 28de02f248..5125d919a3 100644
--- a/public/emoji/1f614.svg
+++ b/public/emoji/1f614.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f615.png b/public/emoji/1f615.png
deleted file mode 100644
index 502b6bf0e0..0000000000
Binary files a/public/emoji/1f615.png and /dev/null differ
diff --git a/public/emoji/1f615.svg b/public/emoji/1f615.svg
index 534330c3b2..0c29da5c27 100644
--- a/public/emoji/1f615.svg
+++ b/public/emoji/1f615.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f616.png b/public/emoji/1f616.png
deleted file mode 100644
index aa4b29e937..0000000000
Binary files a/public/emoji/1f616.png and /dev/null differ
diff --git a/public/emoji/1f616.svg b/public/emoji/1f616.svg
index 5f038264f7..cbdeaa055d 100644
--- a/public/emoji/1f616.svg
+++ b/public/emoji/1f616.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f617.png b/public/emoji/1f617.png
deleted file mode 100644
index 39d325fd8e..0000000000
Binary files a/public/emoji/1f617.png and /dev/null differ
diff --git a/public/emoji/1f617.svg b/public/emoji/1f617.svg
index be878012b8..4b0b62d8ba 100644
--- a/public/emoji/1f617.svg
+++ b/public/emoji/1f617.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f618.png b/public/emoji/1f618.png
deleted file mode 100644
index 0ff808fd61..0000000000
Binary files a/public/emoji/1f618.png and /dev/null differ
diff --git a/public/emoji/1f618.svg b/public/emoji/1f618.svg
index 983b37b47e..2d920d99f1 100644
--- a/public/emoji/1f618.svg
+++ b/public/emoji/1f618.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f619.png b/public/emoji/1f619.png
deleted file mode 100644
index e181f17099..0000000000
Binary files a/public/emoji/1f619.png and /dev/null differ
diff --git a/public/emoji/1f619.svg b/public/emoji/1f619.svg
index 1ac00e32f9..e265c02f19 100644
--- a/public/emoji/1f619.svg
+++ b/public/emoji/1f619.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f61a.png b/public/emoji/1f61a.png
deleted file mode 100644
index b684d7d4d6..0000000000
Binary files a/public/emoji/1f61a.png and /dev/null differ
diff --git a/public/emoji/1f61a.svg b/public/emoji/1f61a.svg
index 7a3cf76044..414193a78c 100644
--- a/public/emoji/1f61a.svg
+++ b/public/emoji/1f61a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f61b.png b/public/emoji/1f61b.png
deleted file mode 100644
index 25757341f9..0000000000
Binary files a/public/emoji/1f61b.png and /dev/null differ
diff --git a/public/emoji/1f61b.svg b/public/emoji/1f61b.svg
index ccef634ecb..eb39b55261 100644
--- a/public/emoji/1f61b.svg
+++ b/public/emoji/1f61b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f61c.png b/public/emoji/1f61c.png
deleted file mode 100644
index 4817eaa3dc..0000000000
Binary files a/public/emoji/1f61c.png and /dev/null differ
diff --git a/public/emoji/1f61c.svg b/public/emoji/1f61c.svg
index 413c3d2a8c..20dd42d426 100644
--- a/public/emoji/1f61c.svg
+++ b/public/emoji/1f61c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f61d.png b/public/emoji/1f61d.png
deleted file mode 100644
index 5c0401e9b1..0000000000
Binary files a/public/emoji/1f61d.png and /dev/null differ
diff --git a/public/emoji/1f61d.svg b/public/emoji/1f61d.svg
index 5157da9377..8d5e50cc79 100644
--- a/public/emoji/1f61d.svg
+++ b/public/emoji/1f61d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f61e.png b/public/emoji/1f61e.png
deleted file mode 100644
index efe4e67e23..0000000000
Binary files a/public/emoji/1f61e.png and /dev/null differ
diff --git a/public/emoji/1f61e.svg b/public/emoji/1f61e.svg
index 143c2f4319..8ebcdf3983 100644
--- a/public/emoji/1f61e.svg
+++ b/public/emoji/1f61e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f61f.png b/public/emoji/1f61f.png
deleted file mode 100644
index 7074afcf5b..0000000000
Binary files a/public/emoji/1f61f.png and /dev/null differ
diff --git a/public/emoji/1f61f.svg b/public/emoji/1f61f.svg
index a1eec054ec..0ac3e37e1e 100644
--- a/public/emoji/1f61f.svg
+++ b/public/emoji/1f61f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f620.png b/public/emoji/1f620.png
deleted file mode 100644
index cfc4a6ecde..0000000000
Binary files a/public/emoji/1f620.png and /dev/null differ
diff --git a/public/emoji/1f620.svg b/public/emoji/1f620.svg
index a32acbcdd0..70cc96a730 100644
--- a/public/emoji/1f620.svg
+++ b/public/emoji/1f620.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f621.png b/public/emoji/1f621.png
deleted file mode 100644
index 9d739bd40a..0000000000
Binary files a/public/emoji/1f621.png and /dev/null differ
diff --git a/public/emoji/1f621.svg b/public/emoji/1f621.svg
index f7c72270fa..8913846df2 100644
--- a/public/emoji/1f621.svg
+++ b/public/emoji/1f621.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f622.png b/public/emoji/1f622.png
deleted file mode 100644
index b7877f8a17..0000000000
Binary files a/public/emoji/1f622.png and /dev/null differ
diff --git a/public/emoji/1f622.svg b/public/emoji/1f622.svg
index e39209c80e..2d960b5695 100644
--- a/public/emoji/1f622.svg
+++ b/public/emoji/1f622.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f623.png b/public/emoji/1f623.png
deleted file mode 100644
index 646a05fe90..0000000000
Binary files a/public/emoji/1f623.png and /dev/null differ
diff --git a/public/emoji/1f623.svg b/public/emoji/1f623.svg
index 94826839a8..69e670b15a 100644
--- a/public/emoji/1f623.svg
+++ b/public/emoji/1f623.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f624.png b/public/emoji/1f624.png
deleted file mode 100644
index 0be7a50196..0000000000
Binary files a/public/emoji/1f624.png and /dev/null differ
diff --git a/public/emoji/1f624.svg b/public/emoji/1f624.svg
index fe5de95fc9..a3b73f63ef 100644
--- a/public/emoji/1f624.svg
+++ b/public/emoji/1f624.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f625.png b/public/emoji/1f625.png
deleted file mode 100644
index aef864d2b3..0000000000
Binary files a/public/emoji/1f625.png and /dev/null differ
diff --git a/public/emoji/1f625.svg b/public/emoji/1f625.svg
index c52759e691..1d06587ec5 100644
--- a/public/emoji/1f625.svg
+++ b/public/emoji/1f625.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f626.png b/public/emoji/1f626.png
deleted file mode 100644
index 43ab6b0a1c..0000000000
Binary files a/public/emoji/1f626.png and /dev/null differ
diff --git a/public/emoji/1f626.svg b/public/emoji/1f626.svg
index c037c085a4..11a2a0bf67 100644
--- a/public/emoji/1f626.svg
+++ b/public/emoji/1f626.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f627.png b/public/emoji/1f627.png
deleted file mode 100644
index f99026a3bc..0000000000
Binary files a/public/emoji/1f627.png and /dev/null differ
diff --git a/public/emoji/1f627.svg b/public/emoji/1f627.svg
index b97c18b3aa..94aee7d3c1 100644
--- a/public/emoji/1f627.svg
+++ b/public/emoji/1f627.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f628.png b/public/emoji/1f628.png
deleted file mode 100644
index eb8b347cef..0000000000
Binary files a/public/emoji/1f628.png and /dev/null differ
diff --git a/public/emoji/1f628.svg b/public/emoji/1f628.svg
index 38cfe0bb28..d4cc4aa7c3 100644
--- a/public/emoji/1f628.svg
+++ b/public/emoji/1f628.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f629.png b/public/emoji/1f629.png
deleted file mode 100644
index 98bfbd24a1..0000000000
Binary files a/public/emoji/1f629.png and /dev/null differ
diff --git a/public/emoji/1f629.svg b/public/emoji/1f629.svg
index 248da5b2e0..200c69f7da 100644
--- a/public/emoji/1f629.svg
+++ b/public/emoji/1f629.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f62a.png b/public/emoji/1f62a.png
deleted file mode 100644
index 836b410771..0000000000
Binary files a/public/emoji/1f62a.png and /dev/null differ
diff --git a/public/emoji/1f62a.svg b/public/emoji/1f62a.svg
index d2dd9f7b43..26f5e93a3a 100644
--- a/public/emoji/1f62a.svg
+++ b/public/emoji/1f62a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f62b.png b/public/emoji/1f62b.png
deleted file mode 100644
index 4e01eff5b2..0000000000
Binary files a/public/emoji/1f62b.png and /dev/null differ
diff --git a/public/emoji/1f62b.svg b/public/emoji/1f62b.svg
index 3ba1a6c02f..094fd685d5 100644
--- a/public/emoji/1f62b.svg
+++ b/public/emoji/1f62b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f62c.png b/public/emoji/1f62c.png
deleted file mode 100644
index 871b2f071c..0000000000
Binary files a/public/emoji/1f62c.png and /dev/null differ
diff --git a/public/emoji/1f62c.svg b/public/emoji/1f62c.svg
index 75c5b7dcb4..6ef38ff1c4 100644
--- a/public/emoji/1f62c.svg
+++ b/public/emoji/1f62c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f62d.png b/public/emoji/1f62d.png
deleted file mode 100644
index 52e3517a1e..0000000000
Binary files a/public/emoji/1f62d.png and /dev/null differ
diff --git a/public/emoji/1f62d.svg b/public/emoji/1f62d.svg
index 0fb4ba9bd6..87a656b31e 100644
--- a/public/emoji/1f62d.svg
+++ b/public/emoji/1f62d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f62e.png b/public/emoji/1f62e.png
deleted file mode 100644
index a62cd27e14..0000000000
Binary files a/public/emoji/1f62e.png and /dev/null differ
diff --git a/public/emoji/1f62e.svg b/public/emoji/1f62e.svg
index 855b53c66c..4b54e4c742 100644
--- a/public/emoji/1f62e.svg
+++ b/public/emoji/1f62e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f62f.png b/public/emoji/1f62f.png
deleted file mode 100644
index cad0e23132..0000000000
Binary files a/public/emoji/1f62f.png and /dev/null differ
diff --git a/public/emoji/1f62f.svg b/public/emoji/1f62f.svg
index d9b0801f72..192838a675 100644
--- a/public/emoji/1f62f.svg
+++ b/public/emoji/1f62f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f630.png b/public/emoji/1f630.png
deleted file mode 100644
index 85b2231bbf..0000000000
Binary files a/public/emoji/1f630.png and /dev/null differ
diff --git a/public/emoji/1f630.svg b/public/emoji/1f630.svg
index 9ae7444e71..3463630bc3 100644
--- a/public/emoji/1f630.svg
+++ b/public/emoji/1f630.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f631.png b/public/emoji/1f631.png
deleted file mode 100644
index c3bea9f251..0000000000
Binary files a/public/emoji/1f631.png and /dev/null differ
diff --git a/public/emoji/1f631.svg b/public/emoji/1f631.svg
index 686c983555..cd901c7c15 100644
--- a/public/emoji/1f631.svg
+++ b/public/emoji/1f631.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f632.png b/public/emoji/1f632.png
deleted file mode 100644
index bd0ac55ec8..0000000000
Binary files a/public/emoji/1f632.png and /dev/null differ
diff --git a/public/emoji/1f632.svg b/public/emoji/1f632.svg
index 703ddf123d..6c07237f42 100644
--- a/public/emoji/1f632.svg
+++ b/public/emoji/1f632.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f633.png b/public/emoji/1f633.png
deleted file mode 100644
index 829220bc47..0000000000
Binary files a/public/emoji/1f633.png and /dev/null differ
diff --git a/public/emoji/1f633.svg b/public/emoji/1f633.svg
index 8be56d39a9..b4a717fabc 100644
--- a/public/emoji/1f633.svg
+++ b/public/emoji/1f633.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f634.png b/public/emoji/1f634.png
deleted file mode 100644
index 9ecf600d6d..0000000000
Binary files a/public/emoji/1f634.png and /dev/null differ
diff --git a/public/emoji/1f634.svg b/public/emoji/1f634.svg
index 41beef906a..53b486a9df 100644
--- a/public/emoji/1f634.svg
+++ b/public/emoji/1f634.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f635.png b/public/emoji/1f635.png
deleted file mode 100644
index 3120316ab5..0000000000
Binary files a/public/emoji/1f635.png and /dev/null differ
diff --git a/public/emoji/1f635.svg b/public/emoji/1f635.svg
index 6556452471..45a8bbed73 100644
--- a/public/emoji/1f635.svg
+++ b/public/emoji/1f635.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f636.png b/public/emoji/1f636.png
deleted file mode 100644
index b642f6c117..0000000000
Binary files a/public/emoji/1f636.png and /dev/null differ
diff --git a/public/emoji/1f636.svg b/public/emoji/1f636.svg
index 9ad70bc517..3eb385b1dc 100644
--- a/public/emoji/1f636.svg
+++ b/public/emoji/1f636.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f637.png b/public/emoji/1f637.png
deleted file mode 100644
index 1e800acd1c..0000000000
Binary files a/public/emoji/1f637.png and /dev/null differ
diff --git a/public/emoji/1f637.svg b/public/emoji/1f637.svg
index 2fcc6b50f8..c2de94b08d 100644
--- a/public/emoji/1f637.svg
+++ b/public/emoji/1f637.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f638.png b/public/emoji/1f638.png
deleted file mode 100644
index 6f25f11dd3..0000000000
Binary files a/public/emoji/1f638.png and /dev/null differ
diff --git a/public/emoji/1f638.svg b/public/emoji/1f638.svg
index 6e8aa84356..470dd72660 100644
--- a/public/emoji/1f638.svg
+++ b/public/emoji/1f638.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f639.png b/public/emoji/1f639.png
deleted file mode 100644
index aac353179a..0000000000
Binary files a/public/emoji/1f639.png and /dev/null differ
diff --git a/public/emoji/1f639.svg b/public/emoji/1f639.svg
index 1eb62f35c7..4cd1a535a0 100644
--- a/public/emoji/1f639.svg
+++ b/public/emoji/1f639.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f63a.png b/public/emoji/1f63a.png
deleted file mode 100644
index 163b57a342..0000000000
Binary files a/public/emoji/1f63a.png and /dev/null differ
diff --git a/public/emoji/1f63a.svg b/public/emoji/1f63a.svg
index c708d746e0..c5d85658de 100644
--- a/public/emoji/1f63a.svg
+++ b/public/emoji/1f63a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f63b.png b/public/emoji/1f63b.png
deleted file mode 100644
index bc5a833f9a..0000000000
Binary files a/public/emoji/1f63b.png and /dev/null differ
diff --git a/public/emoji/1f63b.svg b/public/emoji/1f63b.svg
index b7388254b8..7fbf39f0b0 100644
--- a/public/emoji/1f63b.svg
+++ b/public/emoji/1f63b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f63c.png b/public/emoji/1f63c.png
deleted file mode 100644
index 9ac5954c19..0000000000
Binary files a/public/emoji/1f63c.png and /dev/null differ
diff --git a/public/emoji/1f63c.svg b/public/emoji/1f63c.svg
index 7cebf3d67c..496d0bfea0 100644
--- a/public/emoji/1f63c.svg
+++ b/public/emoji/1f63c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f63d.png b/public/emoji/1f63d.png
deleted file mode 100644
index 6e0bcc7754..0000000000
Binary files a/public/emoji/1f63d.png and /dev/null differ
diff --git a/public/emoji/1f63d.svg b/public/emoji/1f63d.svg
index 8d029f9605..147c3e5c03 100644
--- a/public/emoji/1f63d.svg
+++ b/public/emoji/1f63d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f63e.png b/public/emoji/1f63e.png
deleted file mode 100644
index 41ddfeab42..0000000000
Binary files a/public/emoji/1f63e.png and /dev/null differ
diff --git a/public/emoji/1f63e.svg b/public/emoji/1f63e.svg
index aa7be0f644..edb262e0f6 100644
--- a/public/emoji/1f63e.svg
+++ b/public/emoji/1f63e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f63f.png b/public/emoji/1f63f.png
deleted file mode 100644
index b4f49715e0..0000000000
Binary files a/public/emoji/1f63f.png and /dev/null differ
diff --git a/public/emoji/1f63f.svg b/public/emoji/1f63f.svg
index 5b17e95238..1a0b5017ee 100644
--- a/public/emoji/1f63f.svg
+++ b/public/emoji/1f63f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f640.png b/public/emoji/1f640.png
deleted file mode 100644
index 15803ad8e6..0000000000
Binary files a/public/emoji/1f640.png and /dev/null differ
diff --git a/public/emoji/1f640.svg b/public/emoji/1f640.svg
index 5c1c25786a..95462021ac 100644
--- a/public/emoji/1f640.svg
+++ b/public/emoji/1f640.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f641.png b/public/emoji/1f641.png
deleted file mode 100644
index b2f1d983d3..0000000000
Binary files a/public/emoji/1f641.png and /dev/null differ
diff --git a/public/emoji/1f641.svg b/public/emoji/1f641.svg
index aeb3b4f24f..af09e8205b 100644
--- a/public/emoji/1f641.svg
+++ b/public/emoji/1f641.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f642.png b/public/emoji/1f642.png
deleted file mode 100644
index ddd7d65dd3..0000000000
Binary files a/public/emoji/1f642.png and /dev/null differ
diff --git a/public/emoji/1f642.svg b/public/emoji/1f642.svg
index 753ef7c23f..0eab08c539 100644
--- a/public/emoji/1f642.svg
+++ b/public/emoji/1f642.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f643.png b/public/emoji/1f643.png
deleted file mode 100644
index 128f31c982..0000000000
Binary files a/public/emoji/1f643.png and /dev/null differ
diff --git a/public/emoji/1f643.svg b/public/emoji/1f643.svg
index bdb24a7e51..b44e813c77 100644
--- a/public/emoji/1f643.svg
+++ b/public/emoji/1f643.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f644.png b/public/emoji/1f644.png
deleted file mode 100644
index 2f77b9fc3b..0000000000
Binary files a/public/emoji/1f644.png and /dev/null differ
diff --git a/public/emoji/1f644.svg b/public/emoji/1f644.svg
index dcb222cefb..0d6bfd3543 100644
--- a/public/emoji/1f644.svg
+++ b/public/emoji/1f644.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f645-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f645-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..74f9b85fdb
--- /dev/null
+++ b/public/emoji/1f645-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f645-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..71db02cbab
--- /dev/null
+++ b/public/emoji/1f645-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645-1f3fb.png b/public/emoji/1f645-1f3fb.png
deleted file mode 100644
index 5c1a3cbb88..0000000000
Binary files a/public/emoji/1f645-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f645-1f3fb.svg b/public/emoji/1f645-1f3fb.svg
index ac2255ef78..74f9b85fdb 100644
--- a/public/emoji/1f645-1f3fb.svg
+++ b/public/emoji/1f645-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f645-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f645-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..af386803ea
--- /dev/null
+++ b/public/emoji/1f645-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f645-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..67aae6cd5e
--- /dev/null
+++ b/public/emoji/1f645-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645-1f3fc.png b/public/emoji/1f645-1f3fc.png
deleted file mode 100644
index 80d8021f8f..0000000000
Binary files a/public/emoji/1f645-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f645-1f3fc.svg b/public/emoji/1f645-1f3fc.svg
index 621160c36d..af386803ea 100644
--- a/public/emoji/1f645-1f3fc.svg
+++ b/public/emoji/1f645-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f645-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f645-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..420a4d3181
--- /dev/null
+++ b/public/emoji/1f645-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f645-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..d6d2b153b4
--- /dev/null
+++ b/public/emoji/1f645-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645-1f3fd.png b/public/emoji/1f645-1f3fd.png
deleted file mode 100644
index 635e6a0081..0000000000
Binary files a/public/emoji/1f645-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f645-1f3fd.svg b/public/emoji/1f645-1f3fd.svg
index 446067544e..420a4d3181 100644
--- a/public/emoji/1f645-1f3fd.svg
+++ b/public/emoji/1f645-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f645-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f645-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..fb7d1118b6
--- /dev/null
+++ b/public/emoji/1f645-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f645-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ee5efbf77f
--- /dev/null
+++ b/public/emoji/1f645-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645-1f3fe.png b/public/emoji/1f645-1f3fe.png
deleted file mode 100644
index b96e412a37..0000000000
Binary files a/public/emoji/1f645-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f645-1f3fe.svg b/public/emoji/1f645-1f3fe.svg
index 2a99eabc2e..fb7d1118b6 100644
--- a/public/emoji/1f645-1f3fe.svg
+++ b/public/emoji/1f645-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f645-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f645-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..4bd472200f
--- /dev/null
+++ b/public/emoji/1f645-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f645-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ff3880c728
--- /dev/null
+++ b/public/emoji/1f645-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645-1f3ff.png b/public/emoji/1f645-1f3ff.png
deleted file mode 100644
index 9a7084afa0..0000000000
Binary files a/public/emoji/1f645-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f645-1f3ff.svg b/public/emoji/1f645-1f3ff.svg
index b32480b4a1..4bd472200f 100644
--- a/public/emoji/1f645-1f3ff.svg
+++ b/public/emoji/1f645-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f645-200d-2640-fe0f.svg b/public/emoji/1f645-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..4d88d71eb4
--- /dev/null
+++ b/public/emoji/1f645-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645-200d-2642-fe0f.svg b/public/emoji/1f645-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..eae7e5fdb6
--- /dev/null
+++ b/public/emoji/1f645-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f645.png b/public/emoji/1f645.png
deleted file mode 100644
index ed57710032..0000000000
Binary files a/public/emoji/1f645.png and /dev/null differ
diff --git a/public/emoji/1f645.svg b/public/emoji/1f645.svg
index d735d25d78..4d88d71eb4 100644
--- a/public/emoji/1f645.svg
+++ b/public/emoji/1f645.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f646-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f646-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..df103cc7a9
--- /dev/null
+++ b/public/emoji/1f646-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f646-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..0838f2dde9
--- /dev/null
+++ b/public/emoji/1f646-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646-1f3fb.png b/public/emoji/1f646-1f3fb.png
deleted file mode 100644
index c99543e785..0000000000
Binary files a/public/emoji/1f646-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f646-1f3fb.svg b/public/emoji/1f646-1f3fb.svg
index b8d8dfddb7..df103cc7a9 100644
--- a/public/emoji/1f646-1f3fb.svg
+++ b/public/emoji/1f646-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f646-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f646-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..271cf8fd0b
--- /dev/null
+++ b/public/emoji/1f646-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f646-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..3a1069e0b8
--- /dev/null
+++ b/public/emoji/1f646-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646-1f3fc.png b/public/emoji/1f646-1f3fc.png
deleted file mode 100644
index ad5fae813d..0000000000
Binary files a/public/emoji/1f646-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f646-1f3fc.svg b/public/emoji/1f646-1f3fc.svg
index f16fa5a953..271cf8fd0b 100644
--- a/public/emoji/1f646-1f3fc.svg
+++ b/public/emoji/1f646-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f646-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f646-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..16995b6a81
--- /dev/null
+++ b/public/emoji/1f646-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f646-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..910658dd27
--- /dev/null
+++ b/public/emoji/1f646-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646-1f3fd.png b/public/emoji/1f646-1f3fd.png
deleted file mode 100644
index 51bf4fab40..0000000000
Binary files a/public/emoji/1f646-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f646-1f3fd.svg b/public/emoji/1f646-1f3fd.svg
index 9bc563c6b5..16995b6a81 100644
--- a/public/emoji/1f646-1f3fd.svg
+++ b/public/emoji/1f646-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f646-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f646-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..7ddb98d58b
--- /dev/null
+++ b/public/emoji/1f646-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f646-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..125caa0c67
--- /dev/null
+++ b/public/emoji/1f646-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646-1f3fe.png b/public/emoji/1f646-1f3fe.png
deleted file mode 100644
index ee3f9dc640..0000000000
Binary files a/public/emoji/1f646-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f646-1f3fe.svg b/public/emoji/1f646-1f3fe.svg
index 5392c73753..7ddb98d58b 100644
--- a/public/emoji/1f646-1f3fe.svg
+++ b/public/emoji/1f646-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f646-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f646-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..2d91be69f8
--- /dev/null
+++ b/public/emoji/1f646-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f646-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..964fa29827
--- /dev/null
+++ b/public/emoji/1f646-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646-1f3ff.png b/public/emoji/1f646-1f3ff.png
deleted file mode 100644
index 62a9d9237f..0000000000
Binary files a/public/emoji/1f646-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f646-1f3ff.svg b/public/emoji/1f646-1f3ff.svg
index 6a43d0b1a5..2d91be69f8 100644
--- a/public/emoji/1f646-1f3ff.svg
+++ b/public/emoji/1f646-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f646-200d-2640-fe0f.svg b/public/emoji/1f646-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..6f357f8e70
--- /dev/null
+++ b/public/emoji/1f646-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646-200d-2642-fe0f.svg b/public/emoji/1f646-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..236602e9fa
--- /dev/null
+++ b/public/emoji/1f646-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f646.png b/public/emoji/1f646.png
deleted file mode 100644
index 90a2c7469c..0000000000
Binary files a/public/emoji/1f646.png and /dev/null differ
diff --git a/public/emoji/1f646.svg b/public/emoji/1f646.svg
index 8a9a9648e4..6f357f8e70 100644
--- a/public/emoji/1f646.svg
+++ b/public/emoji/1f646.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f647-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f647-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..fee297b9cd
--- /dev/null
+++ b/public/emoji/1f647-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f647-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..8b367d523f
--- /dev/null
+++ b/public/emoji/1f647-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647-1f3fb.png b/public/emoji/1f647-1f3fb.png
deleted file mode 100644
index 87afb7b54c..0000000000
Binary files a/public/emoji/1f647-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f647-1f3fb.svg b/public/emoji/1f647-1f3fb.svg
index bce8d4babd..8b367d523f 100644
--- a/public/emoji/1f647-1f3fb.svg
+++ b/public/emoji/1f647-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f647-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f647-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..a6e77cca7a
--- /dev/null
+++ b/public/emoji/1f647-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f647-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..43f2bcb9c5
--- /dev/null
+++ b/public/emoji/1f647-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647-1f3fc.png b/public/emoji/1f647-1f3fc.png
deleted file mode 100644
index 3ccf7dc085..0000000000
Binary files a/public/emoji/1f647-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f647-1f3fc.svg b/public/emoji/1f647-1f3fc.svg
index c492d09783..43f2bcb9c5 100644
--- a/public/emoji/1f647-1f3fc.svg
+++ b/public/emoji/1f647-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f647-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f647-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..8ee53b8167
--- /dev/null
+++ b/public/emoji/1f647-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f647-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..4b07a08827
--- /dev/null
+++ b/public/emoji/1f647-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647-1f3fd.png b/public/emoji/1f647-1f3fd.png
deleted file mode 100644
index 8b9eb64f92..0000000000
Binary files a/public/emoji/1f647-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f647-1f3fd.svg b/public/emoji/1f647-1f3fd.svg
index e615034036..4b07a08827 100644
--- a/public/emoji/1f647-1f3fd.svg
+++ b/public/emoji/1f647-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f647-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f647-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..fc989b227d
--- /dev/null
+++ b/public/emoji/1f647-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f647-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..851dae93d6
--- /dev/null
+++ b/public/emoji/1f647-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647-1f3fe.png b/public/emoji/1f647-1f3fe.png
deleted file mode 100644
index 683795ff40..0000000000
Binary files a/public/emoji/1f647-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f647-1f3fe.svg b/public/emoji/1f647-1f3fe.svg
index 090651faac..851dae93d6 100644
--- a/public/emoji/1f647-1f3fe.svg
+++ b/public/emoji/1f647-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f647-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f647-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..1d3cfa1f1a
--- /dev/null
+++ b/public/emoji/1f647-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f647-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..8fea01051f
--- /dev/null
+++ b/public/emoji/1f647-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647-1f3ff.png b/public/emoji/1f647-1f3ff.png
deleted file mode 100644
index 7969d97175..0000000000
Binary files a/public/emoji/1f647-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f647-1f3ff.svg b/public/emoji/1f647-1f3ff.svg
index f726d47a80..8fea01051f 100644
--- a/public/emoji/1f647-1f3ff.svg
+++ b/public/emoji/1f647-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f647-200d-2640-fe0f.svg b/public/emoji/1f647-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..f4353ee985
--- /dev/null
+++ b/public/emoji/1f647-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647-200d-2642-fe0f.svg b/public/emoji/1f647-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..da2f281d4b
--- /dev/null
+++ b/public/emoji/1f647-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f647.png b/public/emoji/1f647.png
deleted file mode 100644
index d8f793088d..0000000000
Binary files a/public/emoji/1f647.png and /dev/null differ
diff --git a/public/emoji/1f647.svg b/public/emoji/1f647.svg
index e5dedddd30..da2f281d4b 100644
--- a/public/emoji/1f647.svg
+++ b/public/emoji/1f647.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f648.png b/public/emoji/1f648.png
deleted file mode 100644
index 5187e47453..0000000000
Binary files a/public/emoji/1f648.png and /dev/null differ
diff --git a/public/emoji/1f648.svg b/public/emoji/1f648.svg
index b8b51161e4..1d1f0924e3 100644
--- a/public/emoji/1f648.svg
+++ b/public/emoji/1f648.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f649.png b/public/emoji/1f649.png
deleted file mode 100644
index 74b6be0c6c..0000000000
Binary files a/public/emoji/1f649.png and /dev/null differ
diff --git a/public/emoji/1f649.svg b/public/emoji/1f649.svg
index ab6b6844c8..db494cc26d 100644
--- a/public/emoji/1f649.svg
+++ b/public/emoji/1f649.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64a.png b/public/emoji/1f64a.png
deleted file mode 100644
index 9d9e07c974..0000000000
Binary files a/public/emoji/1f64a.png and /dev/null differ
diff --git a/public/emoji/1f64a.svg b/public/emoji/1f64a.svg
index 47df40a8c8..7c87f05eb8 100644
--- a/public/emoji/1f64a.svg
+++ b/public/emoji/1f64a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64b-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f64b-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..231fcade40
--- /dev/null
+++ b/public/emoji/1f64b-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f64b-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ef3c817b00
--- /dev/null
+++ b/public/emoji/1f64b-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b-1f3fb.png b/public/emoji/1f64b-1f3fb.png
deleted file mode 100644
index 1c90e3e268..0000000000
Binary files a/public/emoji/1f64b-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f64b-1f3fb.svg b/public/emoji/1f64b-1f3fb.svg
index e9e7e3b3af..231fcade40 100644
--- a/public/emoji/1f64b-1f3fb.svg
+++ b/public/emoji/1f64b-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64b-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f64b-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..7157d7421d
--- /dev/null
+++ b/public/emoji/1f64b-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f64b-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..a0915c0712
--- /dev/null
+++ b/public/emoji/1f64b-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b-1f3fc.png b/public/emoji/1f64b-1f3fc.png
deleted file mode 100644
index 82c3ef2bfc..0000000000
Binary files a/public/emoji/1f64b-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f64b-1f3fc.svg b/public/emoji/1f64b-1f3fc.svg
index 9e6ac9c2ca..7157d7421d 100644
--- a/public/emoji/1f64b-1f3fc.svg
+++ b/public/emoji/1f64b-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64b-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f64b-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..45eb562ca9
--- /dev/null
+++ b/public/emoji/1f64b-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f64b-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..c9634b8d64
--- /dev/null
+++ b/public/emoji/1f64b-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b-1f3fd.png b/public/emoji/1f64b-1f3fd.png
deleted file mode 100644
index 1b1da2aa0c..0000000000
Binary files a/public/emoji/1f64b-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f64b-1f3fd.svg b/public/emoji/1f64b-1f3fd.svg
index d4e4a75f81..45eb562ca9 100644
--- a/public/emoji/1f64b-1f3fd.svg
+++ b/public/emoji/1f64b-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64b-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f64b-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..7d3b14a387
--- /dev/null
+++ b/public/emoji/1f64b-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f64b-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..7b2c719bd5
--- /dev/null
+++ b/public/emoji/1f64b-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b-1f3fe.png b/public/emoji/1f64b-1f3fe.png
deleted file mode 100644
index e453855c01..0000000000
Binary files a/public/emoji/1f64b-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f64b-1f3fe.svg b/public/emoji/1f64b-1f3fe.svg
index 39a1150008..7d3b14a387 100644
--- a/public/emoji/1f64b-1f3fe.svg
+++ b/public/emoji/1f64b-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64b-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f64b-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..1dd14746a2
--- /dev/null
+++ b/public/emoji/1f64b-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f64b-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ce0d45a1d2
--- /dev/null
+++ b/public/emoji/1f64b-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b-1f3ff.png b/public/emoji/1f64b-1f3ff.png
deleted file mode 100644
index b86200fd84..0000000000
Binary files a/public/emoji/1f64b-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f64b-1f3ff.svg b/public/emoji/1f64b-1f3ff.svg
index f8cb017efd..1dd14746a2 100644
--- a/public/emoji/1f64b-1f3ff.svg
+++ b/public/emoji/1f64b-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64b-200d-2640-fe0f.svg b/public/emoji/1f64b-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..e1a2f19dc7
--- /dev/null
+++ b/public/emoji/1f64b-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b-200d-2642-fe0f.svg b/public/emoji/1f64b-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..9f9aea0bf4
--- /dev/null
+++ b/public/emoji/1f64b-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64b.png b/public/emoji/1f64b.png
deleted file mode 100644
index 2880708c0c..0000000000
Binary files a/public/emoji/1f64b.png and /dev/null differ
diff --git a/public/emoji/1f64b.svg b/public/emoji/1f64b.svg
index d221b1846d..e1a2f19dc7 100644
--- a/public/emoji/1f64b.svg
+++ b/public/emoji/1f64b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64c-1f3fb.png b/public/emoji/1f64c-1f3fb.png
deleted file mode 100644
index 1168b8236b..0000000000
Binary files a/public/emoji/1f64c-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f64c-1f3fb.svg b/public/emoji/1f64c-1f3fb.svg
index 2bec077d90..4a0b194f13 100644
--- a/public/emoji/1f64c-1f3fb.svg
+++ b/public/emoji/1f64c-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64c-1f3fc.png b/public/emoji/1f64c-1f3fc.png
deleted file mode 100644
index 322de62290..0000000000
Binary files a/public/emoji/1f64c-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f64c-1f3fc.svg b/public/emoji/1f64c-1f3fc.svg
index f90b8825c1..077ea85a02 100644
--- a/public/emoji/1f64c-1f3fc.svg
+++ b/public/emoji/1f64c-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64c-1f3fd.png b/public/emoji/1f64c-1f3fd.png
deleted file mode 100644
index 2aa24e05ae..0000000000
Binary files a/public/emoji/1f64c-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f64c-1f3fd.svg b/public/emoji/1f64c-1f3fd.svg
index 0b0ed18ce4..8b2e1e9ebd 100644
--- a/public/emoji/1f64c-1f3fd.svg
+++ b/public/emoji/1f64c-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64c-1f3fe.png b/public/emoji/1f64c-1f3fe.png
deleted file mode 100644
index f31bf0db99..0000000000
Binary files a/public/emoji/1f64c-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f64c-1f3fe.svg b/public/emoji/1f64c-1f3fe.svg
index 413708003b..e5b98fcfca 100644
--- a/public/emoji/1f64c-1f3fe.svg
+++ b/public/emoji/1f64c-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64c-1f3ff.png b/public/emoji/1f64c-1f3ff.png
deleted file mode 100644
index 5e95067f98..0000000000
Binary files a/public/emoji/1f64c-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f64c-1f3ff.svg b/public/emoji/1f64c-1f3ff.svg
index e13a1d7b3b..65e7f1b2dc 100644
--- a/public/emoji/1f64c-1f3ff.svg
+++ b/public/emoji/1f64c-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64c.png b/public/emoji/1f64c.png
deleted file mode 100644
index c0155f728e..0000000000
Binary files a/public/emoji/1f64c.png and /dev/null differ
diff --git a/public/emoji/1f64c.svg b/public/emoji/1f64c.svg
index 0f7f86cfd6..4ff308a9de 100644
--- a/public/emoji/1f64c.svg
+++ b/public/emoji/1f64c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64d-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f64d-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..ba73233300
--- /dev/null
+++ b/public/emoji/1f64d-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f64d-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..174369312a
--- /dev/null
+++ b/public/emoji/1f64d-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d-1f3fb.png b/public/emoji/1f64d-1f3fb.png
deleted file mode 100644
index 21d3bb4392..0000000000
Binary files a/public/emoji/1f64d-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f64d-1f3fb.svg b/public/emoji/1f64d-1f3fb.svg
index 7a858ef2c8..ba73233300 100644
--- a/public/emoji/1f64d-1f3fb.svg
+++ b/public/emoji/1f64d-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64d-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f64d-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..31ad900f61
--- /dev/null
+++ b/public/emoji/1f64d-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f64d-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..461dd9dc17
--- /dev/null
+++ b/public/emoji/1f64d-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d-1f3fc.png b/public/emoji/1f64d-1f3fc.png
deleted file mode 100644
index 973f5fc838..0000000000
Binary files a/public/emoji/1f64d-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f64d-1f3fc.svg b/public/emoji/1f64d-1f3fc.svg
index 10458b13f4..31ad900f61 100644
--- a/public/emoji/1f64d-1f3fc.svg
+++ b/public/emoji/1f64d-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64d-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f64d-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..46f7a8c8d9
--- /dev/null
+++ b/public/emoji/1f64d-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f64d-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..aa1741bc7a
--- /dev/null
+++ b/public/emoji/1f64d-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d-1f3fd.png b/public/emoji/1f64d-1f3fd.png
deleted file mode 100644
index 41fbcc7881..0000000000
Binary files a/public/emoji/1f64d-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f64d-1f3fd.svg b/public/emoji/1f64d-1f3fd.svg
index f9842d0e4c..46f7a8c8d9 100644
--- a/public/emoji/1f64d-1f3fd.svg
+++ b/public/emoji/1f64d-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64d-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f64d-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..5e2e2fb7a8
--- /dev/null
+++ b/public/emoji/1f64d-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f64d-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..2fb851f37a
--- /dev/null
+++ b/public/emoji/1f64d-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d-1f3fe.png b/public/emoji/1f64d-1f3fe.png
deleted file mode 100644
index 5a37c74103..0000000000
Binary files a/public/emoji/1f64d-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f64d-1f3fe.svg b/public/emoji/1f64d-1f3fe.svg
index 57de38b919..5e2e2fb7a8 100644
--- a/public/emoji/1f64d-1f3fe.svg
+++ b/public/emoji/1f64d-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64d-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f64d-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..e6acfa6f62
--- /dev/null
+++ b/public/emoji/1f64d-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f64d-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..3a24ff123b
--- /dev/null
+++ b/public/emoji/1f64d-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d-1f3ff.png b/public/emoji/1f64d-1f3ff.png
deleted file mode 100644
index e08141f3ef..0000000000
Binary files a/public/emoji/1f64d-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f64d-1f3ff.svg b/public/emoji/1f64d-1f3ff.svg
index 64af62a9b6..e6acfa6f62 100644
--- a/public/emoji/1f64d-1f3ff.svg
+++ b/public/emoji/1f64d-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64d-200d-2640-fe0f.svg b/public/emoji/1f64d-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..293e6e48c4
--- /dev/null
+++ b/public/emoji/1f64d-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d-200d-2642-fe0f.svg b/public/emoji/1f64d-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..2ae727a4aa
--- /dev/null
+++ b/public/emoji/1f64d-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64d.png b/public/emoji/1f64d.png
deleted file mode 100644
index 579324959a..0000000000
Binary files a/public/emoji/1f64d.png and /dev/null differ
diff --git a/public/emoji/1f64d.svg b/public/emoji/1f64d.svg
index 6309a63219..293e6e48c4 100644
--- a/public/emoji/1f64d.svg
+++ b/public/emoji/1f64d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64e-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f64e-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..08dd179a04
--- /dev/null
+++ b/public/emoji/1f64e-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f64e-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..262ae3afec
--- /dev/null
+++ b/public/emoji/1f64e-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e-1f3fb.png b/public/emoji/1f64e-1f3fb.png
deleted file mode 100644
index 57e826b75a..0000000000
Binary files a/public/emoji/1f64e-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f64e-1f3fb.svg b/public/emoji/1f64e-1f3fb.svg
index 8d869fd6e4..08dd179a04 100644
--- a/public/emoji/1f64e-1f3fb.svg
+++ b/public/emoji/1f64e-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64e-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f64e-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..497b5f03b6
--- /dev/null
+++ b/public/emoji/1f64e-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f64e-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..b6acfce325
--- /dev/null
+++ b/public/emoji/1f64e-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e-1f3fc.png b/public/emoji/1f64e-1f3fc.png
deleted file mode 100644
index 3f317c0c25..0000000000
Binary files a/public/emoji/1f64e-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f64e-1f3fc.svg b/public/emoji/1f64e-1f3fc.svg
index 2dfd81c70d..497b5f03b6 100644
--- a/public/emoji/1f64e-1f3fc.svg
+++ b/public/emoji/1f64e-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64e-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f64e-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..d034260afc
--- /dev/null
+++ b/public/emoji/1f64e-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f64e-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..206cae502e
--- /dev/null
+++ b/public/emoji/1f64e-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e-1f3fd.png b/public/emoji/1f64e-1f3fd.png
deleted file mode 100644
index d2fbb6c20b..0000000000
Binary files a/public/emoji/1f64e-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f64e-1f3fd.svg b/public/emoji/1f64e-1f3fd.svg
index 7cf16e6813..d034260afc 100644
--- a/public/emoji/1f64e-1f3fd.svg
+++ b/public/emoji/1f64e-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64e-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f64e-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..88f0cbf524
--- /dev/null
+++ b/public/emoji/1f64e-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f64e-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..f66526e39f
--- /dev/null
+++ b/public/emoji/1f64e-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e-1f3fe.png b/public/emoji/1f64e-1f3fe.png
deleted file mode 100644
index 643ceb4a5c..0000000000
Binary files a/public/emoji/1f64e-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f64e-1f3fe.svg b/public/emoji/1f64e-1f3fe.svg
index 84d91ba6a4..88f0cbf524 100644
--- a/public/emoji/1f64e-1f3fe.svg
+++ b/public/emoji/1f64e-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64e-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f64e-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..2adddb911a
--- /dev/null
+++ b/public/emoji/1f64e-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f64e-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..8bc4352d58
--- /dev/null
+++ b/public/emoji/1f64e-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e-1f3ff.png b/public/emoji/1f64e-1f3ff.png
deleted file mode 100644
index b2eb6859c3..0000000000
Binary files a/public/emoji/1f64e-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f64e-1f3ff.svg b/public/emoji/1f64e-1f3ff.svg
index 00882dd2fa..2adddb911a 100644
--- a/public/emoji/1f64e-1f3ff.svg
+++ b/public/emoji/1f64e-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64e-200d-2640-fe0f.svg b/public/emoji/1f64e-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..f63e4da853
--- /dev/null
+++ b/public/emoji/1f64e-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e-200d-2642-fe0f.svg b/public/emoji/1f64e-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..5f5c1e1d9f
--- /dev/null
+++ b/public/emoji/1f64e-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f64e.png b/public/emoji/1f64e.png
deleted file mode 100644
index 10eb057107..0000000000
Binary files a/public/emoji/1f64e.png and /dev/null differ
diff --git a/public/emoji/1f64e.svg b/public/emoji/1f64e.svg
index b23b54491b..f63e4da853 100644
--- a/public/emoji/1f64e.svg
+++ b/public/emoji/1f64e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64f-1f3fb.png b/public/emoji/1f64f-1f3fb.png
deleted file mode 100644
index 060ef25717..0000000000
Binary files a/public/emoji/1f64f-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f64f-1f3fb.svg b/public/emoji/1f64f-1f3fb.svg
index eddfe82f00..15e30c292e 100644
--- a/public/emoji/1f64f-1f3fb.svg
+++ b/public/emoji/1f64f-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64f-1f3fc.png b/public/emoji/1f64f-1f3fc.png
deleted file mode 100644
index 56dc607c07..0000000000
Binary files a/public/emoji/1f64f-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f64f-1f3fc.svg b/public/emoji/1f64f-1f3fc.svg
index 05011796d3..24fc1b4947 100644
--- a/public/emoji/1f64f-1f3fc.svg
+++ b/public/emoji/1f64f-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64f-1f3fd.png b/public/emoji/1f64f-1f3fd.png
deleted file mode 100644
index 0f33b86200..0000000000
Binary files a/public/emoji/1f64f-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f64f-1f3fd.svg b/public/emoji/1f64f-1f3fd.svg
index 40c74cf906..00a919804a 100644
--- a/public/emoji/1f64f-1f3fd.svg
+++ b/public/emoji/1f64f-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64f-1f3fe.png b/public/emoji/1f64f-1f3fe.png
deleted file mode 100644
index 2ea8dc1165..0000000000
Binary files a/public/emoji/1f64f-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f64f-1f3fe.svg b/public/emoji/1f64f-1f3fe.svg
index 1e8149f520..f18b44e140 100644
--- a/public/emoji/1f64f-1f3fe.svg
+++ b/public/emoji/1f64f-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64f-1f3ff.png b/public/emoji/1f64f-1f3ff.png
deleted file mode 100644
index 2128a6c470..0000000000
Binary files a/public/emoji/1f64f-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f64f-1f3ff.svg b/public/emoji/1f64f-1f3ff.svg
index 3c7a1b6cb9..f92564f7fe 100644
--- a/public/emoji/1f64f-1f3ff.svg
+++ b/public/emoji/1f64f-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f64f.png b/public/emoji/1f64f.png
deleted file mode 100644
index 8347f2435b..0000000000
Binary files a/public/emoji/1f64f.png and /dev/null differ
diff --git a/public/emoji/1f64f.svg b/public/emoji/1f64f.svg
index a6b0bca048..085c2c9726 100644
--- a/public/emoji/1f64f.svg
+++ b/public/emoji/1f64f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f680.png b/public/emoji/1f680.png
deleted file mode 100644
index 0d8da089a3..0000000000
Binary files a/public/emoji/1f680.png and /dev/null differ
diff --git a/public/emoji/1f680.svg b/public/emoji/1f680.svg
index 4ba418a05a..b26ded5ccb 100644
--- a/public/emoji/1f680.svg
+++ b/public/emoji/1f680.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f681.png b/public/emoji/1f681.png
deleted file mode 100644
index 7ec5f39a51..0000000000
Binary files a/public/emoji/1f681.png and /dev/null differ
diff --git a/public/emoji/1f681.svg b/public/emoji/1f681.svg
index fa2ce38e44..cf0480df52 100644
--- a/public/emoji/1f681.svg
+++ b/public/emoji/1f681.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f682.png b/public/emoji/1f682.png
deleted file mode 100644
index 9ac0d999c4..0000000000
Binary files a/public/emoji/1f682.png and /dev/null differ
diff --git a/public/emoji/1f682.svg b/public/emoji/1f682.svg
index 829f6e2aa2..2ea090c6f1 100644
--- a/public/emoji/1f682.svg
+++ b/public/emoji/1f682.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f683.png b/public/emoji/1f683.png
deleted file mode 100644
index a9acbf1300..0000000000
Binary files a/public/emoji/1f683.png and /dev/null differ
diff --git a/public/emoji/1f683.svg b/public/emoji/1f683.svg
index 8042882656..30f3c027be 100644
--- a/public/emoji/1f683.svg
+++ b/public/emoji/1f683.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f684.png b/public/emoji/1f684.png
deleted file mode 100644
index ed61c67bf0..0000000000
Binary files a/public/emoji/1f684.png and /dev/null differ
diff --git a/public/emoji/1f684.svg b/public/emoji/1f684.svg
index 291c00a185..e2c14f916f 100644
--- a/public/emoji/1f684.svg
+++ b/public/emoji/1f684.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f685.png b/public/emoji/1f685.png
deleted file mode 100644
index 4f698e056f..0000000000
Binary files a/public/emoji/1f685.png and /dev/null differ
diff --git a/public/emoji/1f685.svg b/public/emoji/1f685.svg
index e6e4a7a6ac..cc80bc4aaa 100644
--- a/public/emoji/1f685.svg
+++ b/public/emoji/1f685.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f686.png b/public/emoji/1f686.png
deleted file mode 100644
index 367c7bc5d3..0000000000
Binary files a/public/emoji/1f686.png and /dev/null differ
diff --git a/public/emoji/1f686.svg b/public/emoji/1f686.svg
index 15d5e1ebbe..647ab08153 100644
--- a/public/emoji/1f686.svg
+++ b/public/emoji/1f686.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f687.png b/public/emoji/1f687.png
deleted file mode 100644
index 1de8f0551f..0000000000
Binary files a/public/emoji/1f687.png and /dev/null differ
diff --git a/public/emoji/1f687.svg b/public/emoji/1f687.svg
index 5f075abdae..60c3d8268b 100644
--- a/public/emoji/1f687.svg
+++ b/public/emoji/1f687.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f688.png b/public/emoji/1f688.png
deleted file mode 100644
index a64829f507..0000000000
Binary files a/public/emoji/1f688.png and /dev/null differ
diff --git a/public/emoji/1f688.svg b/public/emoji/1f688.svg
index f5fc3b02b4..cb6e6d42b3 100644
--- a/public/emoji/1f688.svg
+++ b/public/emoji/1f688.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f689.png b/public/emoji/1f689.png
deleted file mode 100644
index 5c26fee529..0000000000
Binary files a/public/emoji/1f689.png and /dev/null differ
diff --git a/public/emoji/1f689.svg b/public/emoji/1f689.svg
index 6c3953aa30..1c5c465c00 100644
--- a/public/emoji/1f689.svg
+++ b/public/emoji/1f689.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f68a.png b/public/emoji/1f68a.png
deleted file mode 100644
index b6f0e69038..0000000000
Binary files a/public/emoji/1f68a.png and /dev/null differ
diff --git a/public/emoji/1f68a.svg b/public/emoji/1f68a.svg
index e98a079b01..829df7f8d4 100644
--- a/public/emoji/1f68a.svg
+++ b/public/emoji/1f68a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f68b.png b/public/emoji/1f68b.png
deleted file mode 100644
index 3c80321f7e..0000000000
Binary files a/public/emoji/1f68b.png and /dev/null differ
diff --git a/public/emoji/1f68b.svg b/public/emoji/1f68b.svg
index 8c64b51112..5cb3696fd6 100644
--- a/public/emoji/1f68b.svg
+++ b/public/emoji/1f68b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f68c.png b/public/emoji/1f68c.png
deleted file mode 100644
index 641ddc56ca..0000000000
Binary files a/public/emoji/1f68c.png and /dev/null differ
diff --git a/public/emoji/1f68c.svg b/public/emoji/1f68c.svg
index 99862d5116..8b5db4e4b4 100644
--- a/public/emoji/1f68c.svg
+++ b/public/emoji/1f68c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f68d.png b/public/emoji/1f68d.png
deleted file mode 100644
index ad91e256c7..0000000000
Binary files a/public/emoji/1f68d.png and /dev/null differ
diff --git a/public/emoji/1f68d.svg b/public/emoji/1f68d.svg
index d2d2f59c74..7bde4113e3 100644
--- a/public/emoji/1f68d.svg
+++ b/public/emoji/1f68d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f68e.png b/public/emoji/1f68e.png
deleted file mode 100644
index 139a9931b5..0000000000
Binary files a/public/emoji/1f68e.png and /dev/null differ
diff --git a/public/emoji/1f68e.svg b/public/emoji/1f68e.svg
index ec3e927f81..bac04094af 100644
--- a/public/emoji/1f68e.svg
+++ b/public/emoji/1f68e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f68f.png b/public/emoji/1f68f.png
deleted file mode 100644
index b2b62208bf..0000000000
Binary files a/public/emoji/1f68f.png and /dev/null differ
diff --git a/public/emoji/1f68f.svg b/public/emoji/1f68f.svg
index 3e9cb1d116..e224dbc7e7 100644
--- a/public/emoji/1f68f.svg
+++ b/public/emoji/1f68f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f690.png b/public/emoji/1f690.png
deleted file mode 100644
index c60dd8f47a..0000000000
Binary files a/public/emoji/1f690.png and /dev/null differ
diff --git a/public/emoji/1f690.svg b/public/emoji/1f690.svg
index 5357258cc3..b2a3b1cc13 100644
--- a/public/emoji/1f690.svg
+++ b/public/emoji/1f690.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f691.png b/public/emoji/1f691.png
deleted file mode 100644
index 6fb8076d76..0000000000
Binary files a/public/emoji/1f691.png and /dev/null differ
diff --git a/public/emoji/1f691.svg b/public/emoji/1f691.svg
index 2bcbcffa60..7c969bef88 100644
--- a/public/emoji/1f691.svg
+++ b/public/emoji/1f691.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f692.png b/public/emoji/1f692.png
deleted file mode 100644
index 2cd45b7cf7..0000000000
Binary files a/public/emoji/1f692.png and /dev/null differ
diff --git a/public/emoji/1f692.svg b/public/emoji/1f692.svg
index d82b254833..a7672c43df 100644
--- a/public/emoji/1f692.svg
+++ b/public/emoji/1f692.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f693.png b/public/emoji/1f693.png
deleted file mode 100644
index 3da4253de7..0000000000
Binary files a/public/emoji/1f693.png and /dev/null differ
diff --git a/public/emoji/1f693.svg b/public/emoji/1f693.svg
index 7964668dff..3241874c6c 100644
--- a/public/emoji/1f693.svg
+++ b/public/emoji/1f693.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f694.png b/public/emoji/1f694.png
deleted file mode 100644
index c9109c85b5..0000000000
Binary files a/public/emoji/1f694.png and /dev/null differ
diff --git a/public/emoji/1f694.svg b/public/emoji/1f694.svg
index 680a097595..91e5aea9c9 100644
--- a/public/emoji/1f694.svg
+++ b/public/emoji/1f694.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f695.png b/public/emoji/1f695.png
deleted file mode 100644
index 55f4cc8479..0000000000
Binary files a/public/emoji/1f695.png and /dev/null differ
diff --git a/public/emoji/1f695.svg b/public/emoji/1f695.svg
index c6bdad8ba9..0d7a21a7c0 100644
--- a/public/emoji/1f695.svg
+++ b/public/emoji/1f695.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f696.png b/public/emoji/1f696.png
deleted file mode 100644
index fea14e4584..0000000000
Binary files a/public/emoji/1f696.png and /dev/null differ
diff --git a/public/emoji/1f696.svg b/public/emoji/1f696.svg
index 6a02e812fd..da0c6c583f 100644
--- a/public/emoji/1f696.svg
+++ b/public/emoji/1f696.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f697.png b/public/emoji/1f697.png
deleted file mode 100644
index b3e6a774de..0000000000
Binary files a/public/emoji/1f697.png and /dev/null differ
diff --git a/public/emoji/1f697.svg b/public/emoji/1f697.svg
index da85c344d2..03e094c257 100644
--- a/public/emoji/1f697.svg
+++ b/public/emoji/1f697.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f698.png b/public/emoji/1f698.png
deleted file mode 100644
index 3c7e1d52e6..0000000000
Binary files a/public/emoji/1f698.png and /dev/null differ
diff --git a/public/emoji/1f698.svg b/public/emoji/1f698.svg
index cd0a8881ad..9adc06efb3 100644
--- a/public/emoji/1f698.svg
+++ b/public/emoji/1f698.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f699.png b/public/emoji/1f699.png
deleted file mode 100644
index e8ba817d39..0000000000
Binary files a/public/emoji/1f699.png and /dev/null differ
diff --git a/public/emoji/1f699.svg b/public/emoji/1f699.svg
index 12d1b6d10d..18d132b01d 100644
--- a/public/emoji/1f699.svg
+++ b/public/emoji/1f699.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f69a.png b/public/emoji/1f69a.png
deleted file mode 100644
index 130de047f8..0000000000
Binary files a/public/emoji/1f69a.png and /dev/null differ
diff --git a/public/emoji/1f69a.svg b/public/emoji/1f69a.svg
index c543e98625..8a0d04a4ae 100644
--- a/public/emoji/1f69a.svg
+++ b/public/emoji/1f69a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f69b.png b/public/emoji/1f69b.png
deleted file mode 100644
index c821731713..0000000000
Binary files a/public/emoji/1f69b.png and /dev/null differ
diff --git a/public/emoji/1f69b.svg b/public/emoji/1f69b.svg
index 5f0fbc1ca6..b5b3522a34 100644
--- a/public/emoji/1f69b.svg
+++ b/public/emoji/1f69b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f69c.png b/public/emoji/1f69c.png
deleted file mode 100644
index c1bf8cae44..0000000000
Binary files a/public/emoji/1f69c.png and /dev/null differ
diff --git a/public/emoji/1f69c.svg b/public/emoji/1f69c.svg
index 794c2d369e..3c2d4ff5b8 100644
--- a/public/emoji/1f69c.svg
+++ b/public/emoji/1f69c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f69d.png b/public/emoji/1f69d.png
deleted file mode 100644
index 11eb1f574b..0000000000
Binary files a/public/emoji/1f69d.png and /dev/null differ
diff --git a/public/emoji/1f69d.svg b/public/emoji/1f69d.svg
index 4244515a24..f7cd69eea4 100644
--- a/public/emoji/1f69d.svg
+++ b/public/emoji/1f69d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f69e.png b/public/emoji/1f69e.png
deleted file mode 100644
index ade2218e46..0000000000
Binary files a/public/emoji/1f69e.png and /dev/null differ
diff --git a/public/emoji/1f69e.svg b/public/emoji/1f69e.svg
index 2bbbd3a020..edab9bc152 100644
--- a/public/emoji/1f69e.svg
+++ b/public/emoji/1f69e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f69f.png b/public/emoji/1f69f.png
deleted file mode 100644
index a59d5f48c2..0000000000
Binary files a/public/emoji/1f69f.png and /dev/null differ
diff --git a/public/emoji/1f69f.svg b/public/emoji/1f69f.svg
index 9f1974860f..f98920fd2e 100644
--- a/public/emoji/1f69f.svg
+++ b/public/emoji/1f69f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a0.png b/public/emoji/1f6a0.png
deleted file mode 100644
index 1dea73ca53..0000000000
Binary files a/public/emoji/1f6a0.png and /dev/null differ
diff --git a/public/emoji/1f6a0.svg b/public/emoji/1f6a0.svg
index e8eb108975..58ce005cda 100644
--- a/public/emoji/1f6a0.svg
+++ b/public/emoji/1f6a0.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a1.png b/public/emoji/1f6a1.png
deleted file mode 100644
index 3eb4b61bf1..0000000000
Binary files a/public/emoji/1f6a1.png and /dev/null differ
diff --git a/public/emoji/1f6a1.svg b/public/emoji/1f6a1.svg
index 84de8fddf0..c06e2d34a9 100644
--- a/public/emoji/1f6a1.svg
+++ b/public/emoji/1f6a1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a2.png b/public/emoji/1f6a2.png
deleted file mode 100644
index 62d54f7d6c..0000000000
Binary files a/public/emoji/1f6a2.png and /dev/null differ
diff --git a/public/emoji/1f6a2.svg b/public/emoji/1f6a2.svg
index 032a22c98f..015a830cbb 100644
--- a/public/emoji/1f6a2.svg
+++ b/public/emoji/1f6a2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a3-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f6a3-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..dc8b2470e1
--- /dev/null
+++ b/public/emoji/1f6a3-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f6a3-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..373293e11e
--- /dev/null
+++ b/public/emoji/1f6a3-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3-1f3fb.png b/public/emoji/1f6a3-1f3fb.png
deleted file mode 100644
index 5e5d18548c..0000000000
Binary files a/public/emoji/1f6a3-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f6a3-1f3fb.svg b/public/emoji/1f6a3-1f3fb.svg
index a97ed61b21..373293e11e 100644
--- a/public/emoji/1f6a3-1f3fb.svg
+++ b/public/emoji/1f6a3-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a3-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f6a3-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..cbf4088544
--- /dev/null
+++ b/public/emoji/1f6a3-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f6a3-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..afcfc9d112
--- /dev/null
+++ b/public/emoji/1f6a3-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3-1f3fc.png b/public/emoji/1f6a3-1f3fc.png
deleted file mode 100644
index 9b123ef887..0000000000
Binary files a/public/emoji/1f6a3-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f6a3-1f3fc.svg b/public/emoji/1f6a3-1f3fc.svg
index 4579d7f998..afcfc9d112 100644
--- a/public/emoji/1f6a3-1f3fc.svg
+++ b/public/emoji/1f6a3-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a3-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f6a3-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..dfb4cc90c9
--- /dev/null
+++ b/public/emoji/1f6a3-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f6a3-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..a68a297358
--- /dev/null
+++ b/public/emoji/1f6a3-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3-1f3fd.png b/public/emoji/1f6a3-1f3fd.png
deleted file mode 100644
index 8ebd89a55f..0000000000
Binary files a/public/emoji/1f6a3-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f6a3-1f3fd.svg b/public/emoji/1f6a3-1f3fd.svg
index 30f40ace80..a68a297358 100644
--- a/public/emoji/1f6a3-1f3fd.svg
+++ b/public/emoji/1f6a3-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a3-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f6a3-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..b8125596f8
--- /dev/null
+++ b/public/emoji/1f6a3-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f6a3-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..4a0bdc0fd8
--- /dev/null
+++ b/public/emoji/1f6a3-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3-1f3fe.png b/public/emoji/1f6a3-1f3fe.png
deleted file mode 100644
index 2b0d04f872..0000000000
Binary files a/public/emoji/1f6a3-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f6a3-1f3fe.svg b/public/emoji/1f6a3-1f3fe.svg
index 3b64992808..4a0bdc0fd8 100644
--- a/public/emoji/1f6a3-1f3fe.svg
+++ b/public/emoji/1f6a3-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a3-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f6a3-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..ef0025a7fd
--- /dev/null
+++ b/public/emoji/1f6a3-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f6a3-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..11b8650dd1
--- /dev/null
+++ b/public/emoji/1f6a3-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3-1f3ff.png b/public/emoji/1f6a3-1f3ff.png
deleted file mode 100644
index b346f2dfc8..0000000000
Binary files a/public/emoji/1f6a3-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f6a3-1f3ff.svg b/public/emoji/1f6a3-1f3ff.svg
index 57bd8c0feb..11b8650dd1 100644
--- a/public/emoji/1f6a3-1f3ff.svg
+++ b/public/emoji/1f6a3-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a3-200d-2640-fe0f.svg b/public/emoji/1f6a3-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..923ed2b077
--- /dev/null
+++ b/public/emoji/1f6a3-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3-200d-2642-fe0f.svg b/public/emoji/1f6a3-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..fb16b9148c
--- /dev/null
+++ b/public/emoji/1f6a3-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6a3.png b/public/emoji/1f6a3.png
deleted file mode 100644
index dd4dfc095d..0000000000
Binary files a/public/emoji/1f6a3.png and /dev/null differ
diff --git a/public/emoji/1f6a3.svg b/public/emoji/1f6a3.svg
index 89eb387dc9..fb16b9148c 100644
--- a/public/emoji/1f6a3.svg
+++ b/public/emoji/1f6a3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a4.png b/public/emoji/1f6a4.png
deleted file mode 100644
index 74059d12de..0000000000
Binary files a/public/emoji/1f6a4.png and /dev/null differ
diff --git a/public/emoji/1f6a4.svg b/public/emoji/1f6a4.svg
index 70aa1adc20..796817aa3e 100644
--- a/public/emoji/1f6a4.svg
+++ b/public/emoji/1f6a4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a5.png b/public/emoji/1f6a5.png
deleted file mode 100644
index 6b312285b0..0000000000
Binary files a/public/emoji/1f6a5.png and /dev/null differ
diff --git a/public/emoji/1f6a5.svg b/public/emoji/1f6a5.svg
index 30aa0d0923..d720e00434 100644
--- a/public/emoji/1f6a5.svg
+++ b/public/emoji/1f6a5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a6.png b/public/emoji/1f6a6.png
deleted file mode 100644
index 8085973eec..0000000000
Binary files a/public/emoji/1f6a6.png and /dev/null differ
diff --git a/public/emoji/1f6a6.svg b/public/emoji/1f6a6.svg
index 7f6e697b40..9949ca9275 100644
--- a/public/emoji/1f6a6.svg
+++ b/public/emoji/1f6a6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a7.png b/public/emoji/1f6a7.png
deleted file mode 100644
index ef8db5f471..0000000000
Binary files a/public/emoji/1f6a7.png and /dev/null differ
diff --git a/public/emoji/1f6a7.svg b/public/emoji/1f6a7.svg
index c48a759c1e..39dbfd5af3 100644
--- a/public/emoji/1f6a7.svg
+++ b/public/emoji/1f6a7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a8.png b/public/emoji/1f6a8.png
deleted file mode 100644
index cad66b0afe..0000000000
Binary files a/public/emoji/1f6a8.png and /dev/null differ
diff --git a/public/emoji/1f6a8.svg b/public/emoji/1f6a8.svg
index 2a00519110..dce1260baa 100644
--- a/public/emoji/1f6a8.svg
+++ b/public/emoji/1f6a8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6a9.png b/public/emoji/1f6a9.png
deleted file mode 100644
index c12d8b0688..0000000000
Binary files a/public/emoji/1f6a9.png and /dev/null differ
diff --git a/public/emoji/1f6a9.svg b/public/emoji/1f6a9.svg
index d07347b59a..44a68cf207 100644
--- a/public/emoji/1f6a9.svg
+++ b/public/emoji/1f6a9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6aa.png b/public/emoji/1f6aa.png
deleted file mode 100644
index 36ae3e2749..0000000000
Binary files a/public/emoji/1f6aa.png and /dev/null differ
diff --git a/public/emoji/1f6aa.svg b/public/emoji/1f6aa.svg
index ac7fa2f073..6743f42f6a 100644
--- a/public/emoji/1f6aa.svg
+++ b/public/emoji/1f6aa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6ab.png b/public/emoji/1f6ab.png
deleted file mode 100644
index d2efd65e74..0000000000
Binary files a/public/emoji/1f6ab.png and /dev/null differ
diff --git a/public/emoji/1f6ab.svg b/public/emoji/1f6ab.svg
index 1877e1d63d..deecfc9d54 100644
--- a/public/emoji/1f6ab.svg
+++ b/public/emoji/1f6ab.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6ac.png b/public/emoji/1f6ac.png
deleted file mode 100644
index 910f648c8f..0000000000
Binary files a/public/emoji/1f6ac.png and /dev/null differ
diff --git a/public/emoji/1f6ac.svg b/public/emoji/1f6ac.svg
index 2f44e929de..19d8f162db 100644
--- a/public/emoji/1f6ac.svg
+++ b/public/emoji/1f6ac.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6ad.png b/public/emoji/1f6ad.png
deleted file mode 100644
index 586b8d29d0..0000000000
Binary files a/public/emoji/1f6ad.png and /dev/null differ
diff --git a/public/emoji/1f6ad.svg b/public/emoji/1f6ad.svg
index f02dd41b38..504d2aaf38 100644
--- a/public/emoji/1f6ad.svg
+++ b/public/emoji/1f6ad.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6ae.png b/public/emoji/1f6ae.png
deleted file mode 100644
index 82a84f9a37..0000000000
Binary files a/public/emoji/1f6ae.png and /dev/null differ
diff --git a/public/emoji/1f6ae.svg b/public/emoji/1f6ae.svg
index 54cbd381e1..1a5d6ae557 100644
--- a/public/emoji/1f6ae.svg
+++ b/public/emoji/1f6ae.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6af.png b/public/emoji/1f6af.png
deleted file mode 100644
index 341d2575f4..0000000000
Binary files a/public/emoji/1f6af.png and /dev/null differ
diff --git a/public/emoji/1f6af.svg b/public/emoji/1f6af.svg
index bfc991b078..1e311893a1 100644
--- a/public/emoji/1f6af.svg
+++ b/public/emoji/1f6af.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b0.png b/public/emoji/1f6b0.png
deleted file mode 100644
index 2c61004945..0000000000
Binary files a/public/emoji/1f6b0.png and /dev/null differ
diff --git a/public/emoji/1f6b0.svg b/public/emoji/1f6b0.svg
index 504d3cec07..19c4240e90 100644
--- a/public/emoji/1f6b0.svg
+++ b/public/emoji/1f6b0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b1.png b/public/emoji/1f6b1.png
deleted file mode 100644
index 827d4193f4..0000000000
Binary files a/public/emoji/1f6b1.png and /dev/null differ
diff --git a/public/emoji/1f6b1.svg b/public/emoji/1f6b1.svg
index 0eec893e11..de985691e7 100644
--- a/public/emoji/1f6b1.svg
+++ b/public/emoji/1f6b1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b2.png b/public/emoji/1f6b2.png
deleted file mode 100644
index 556ed70f1a..0000000000
Binary files a/public/emoji/1f6b2.png and /dev/null differ
diff --git a/public/emoji/1f6b2.svg b/public/emoji/1f6b2.svg
index 0a4447d6cd..e5638ad79f 100644
--- a/public/emoji/1f6b2.svg
+++ b/public/emoji/1f6b2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b3.png b/public/emoji/1f6b3.png
deleted file mode 100644
index 19c85421ce..0000000000
Binary files a/public/emoji/1f6b3.png and /dev/null differ
diff --git a/public/emoji/1f6b3.svg b/public/emoji/1f6b3.svg
index 320cc23716..0b1eee9703 100644
--- a/public/emoji/1f6b3.svg
+++ b/public/emoji/1f6b3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b4-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f6b4-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..c949abec10
--- /dev/null
+++ b/public/emoji/1f6b4-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f6b4-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..4a6d96ff9c
--- /dev/null
+++ b/public/emoji/1f6b4-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4-1f3fb.png b/public/emoji/1f6b4-1f3fb.png
deleted file mode 100644
index decc2f728f..0000000000
Binary files a/public/emoji/1f6b4-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f6b4-1f3fb.svg b/public/emoji/1f6b4-1f3fb.svg
index 23c64dcb0f..4a6d96ff9c 100644
--- a/public/emoji/1f6b4-1f3fb.svg
+++ b/public/emoji/1f6b4-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b4-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f6b4-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..10144b26f5
--- /dev/null
+++ b/public/emoji/1f6b4-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f6b4-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..0916f96a4b
--- /dev/null
+++ b/public/emoji/1f6b4-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4-1f3fc.png b/public/emoji/1f6b4-1f3fc.png
deleted file mode 100644
index 0067717b80..0000000000
Binary files a/public/emoji/1f6b4-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f6b4-1f3fc.svg b/public/emoji/1f6b4-1f3fc.svg
index 3451fe9ba5..0916f96a4b 100644
--- a/public/emoji/1f6b4-1f3fc.svg
+++ b/public/emoji/1f6b4-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b4-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f6b4-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..a14652605a
--- /dev/null
+++ b/public/emoji/1f6b4-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f6b4-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..488a0859f9
--- /dev/null
+++ b/public/emoji/1f6b4-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4-1f3fd.png b/public/emoji/1f6b4-1f3fd.png
deleted file mode 100644
index a4f7b5e277..0000000000
Binary files a/public/emoji/1f6b4-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f6b4-1f3fd.svg b/public/emoji/1f6b4-1f3fd.svg
index a5b9598664..488a0859f9 100644
--- a/public/emoji/1f6b4-1f3fd.svg
+++ b/public/emoji/1f6b4-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b4-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f6b4-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..f667db53e7
--- /dev/null
+++ b/public/emoji/1f6b4-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f6b4-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..e3989ddb8b
--- /dev/null
+++ b/public/emoji/1f6b4-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4-1f3fe.png b/public/emoji/1f6b4-1f3fe.png
deleted file mode 100644
index a3c8a797db..0000000000
Binary files a/public/emoji/1f6b4-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f6b4-1f3fe.svg b/public/emoji/1f6b4-1f3fe.svg
index 1dcaae8621..e3989ddb8b 100644
--- a/public/emoji/1f6b4-1f3fe.svg
+++ b/public/emoji/1f6b4-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b4-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f6b4-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..d0be70885e
--- /dev/null
+++ b/public/emoji/1f6b4-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f6b4-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1c37cb1107
--- /dev/null
+++ b/public/emoji/1f6b4-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4-1f3ff.png b/public/emoji/1f6b4-1f3ff.png
deleted file mode 100644
index 1606a87405..0000000000
Binary files a/public/emoji/1f6b4-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f6b4-1f3ff.svg b/public/emoji/1f6b4-1f3ff.svg
index 44fc622fed..1c37cb1107 100644
--- a/public/emoji/1f6b4-1f3ff.svg
+++ b/public/emoji/1f6b4-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b4-200d-2640-fe0f.svg b/public/emoji/1f6b4-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..69480c8310
--- /dev/null
+++ b/public/emoji/1f6b4-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4-200d-2642-fe0f.svg b/public/emoji/1f6b4-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..68ec2c479a
--- /dev/null
+++ b/public/emoji/1f6b4-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b4.png b/public/emoji/1f6b4.png
deleted file mode 100644
index 9274da1104..0000000000
Binary files a/public/emoji/1f6b4.png and /dev/null differ
diff --git a/public/emoji/1f6b4.svg b/public/emoji/1f6b4.svg
index d66ad5c6ce..68ec2c479a 100644
--- a/public/emoji/1f6b4.svg
+++ b/public/emoji/1f6b4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b5-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f6b5-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..86185f8508
--- /dev/null
+++ b/public/emoji/1f6b5-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f6b5-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..f65d701a41
--- /dev/null
+++ b/public/emoji/1f6b5-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5-1f3fb.png b/public/emoji/1f6b5-1f3fb.png
deleted file mode 100644
index e9f1daf5e4..0000000000
Binary files a/public/emoji/1f6b5-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f6b5-1f3fb.svg b/public/emoji/1f6b5-1f3fb.svg
index 5ce96f5b24..f65d701a41 100644
--- a/public/emoji/1f6b5-1f3fb.svg
+++ b/public/emoji/1f6b5-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b5-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f6b5-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..f876528ea1
--- /dev/null
+++ b/public/emoji/1f6b5-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f6b5-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..82785c12e1
--- /dev/null
+++ b/public/emoji/1f6b5-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5-1f3fc.png b/public/emoji/1f6b5-1f3fc.png
deleted file mode 100644
index 555b9e29d4..0000000000
Binary files a/public/emoji/1f6b5-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f6b5-1f3fc.svg b/public/emoji/1f6b5-1f3fc.svg
index 9b088b9f7d..82785c12e1 100644
--- a/public/emoji/1f6b5-1f3fc.svg
+++ b/public/emoji/1f6b5-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b5-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f6b5-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..29711f85fb
--- /dev/null
+++ b/public/emoji/1f6b5-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f6b5-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..19f190291c
--- /dev/null
+++ b/public/emoji/1f6b5-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5-1f3fd.png b/public/emoji/1f6b5-1f3fd.png
deleted file mode 100644
index 7df5508ec8..0000000000
Binary files a/public/emoji/1f6b5-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f6b5-1f3fd.svg b/public/emoji/1f6b5-1f3fd.svg
index 561ba2d1cb..19f190291c 100644
--- a/public/emoji/1f6b5-1f3fd.svg
+++ b/public/emoji/1f6b5-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b5-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f6b5-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..89b33acec4
--- /dev/null
+++ b/public/emoji/1f6b5-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f6b5-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..c57df8b116
--- /dev/null
+++ b/public/emoji/1f6b5-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5-1f3fe.png b/public/emoji/1f6b5-1f3fe.png
deleted file mode 100644
index f94b345069..0000000000
Binary files a/public/emoji/1f6b5-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f6b5-1f3fe.svg b/public/emoji/1f6b5-1f3fe.svg
index a1153c343f..c57df8b116 100644
--- a/public/emoji/1f6b5-1f3fe.svg
+++ b/public/emoji/1f6b5-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b5-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f6b5-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..46b9a62069
--- /dev/null
+++ b/public/emoji/1f6b5-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f6b5-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..86402bd907
--- /dev/null
+++ b/public/emoji/1f6b5-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5-1f3ff.png b/public/emoji/1f6b5-1f3ff.png
deleted file mode 100644
index 16a45861e1..0000000000
Binary files a/public/emoji/1f6b5-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f6b5-1f3ff.svg b/public/emoji/1f6b5-1f3ff.svg
index ca9993afc3..86402bd907 100644
--- a/public/emoji/1f6b5-1f3ff.svg
+++ b/public/emoji/1f6b5-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b5-200d-2640-fe0f.svg b/public/emoji/1f6b5-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..fa1a7a3984
--- /dev/null
+++ b/public/emoji/1f6b5-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5-200d-2642-fe0f.svg b/public/emoji/1f6b5-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ec9d2b0e16
--- /dev/null
+++ b/public/emoji/1f6b5-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b5.png b/public/emoji/1f6b5.png
deleted file mode 100644
index 41d3dc3ac6..0000000000
Binary files a/public/emoji/1f6b5.png and /dev/null differ
diff --git a/public/emoji/1f6b5.svg b/public/emoji/1f6b5.svg
index 0d5eb712df..ec9d2b0e16 100644
--- a/public/emoji/1f6b5.svg
+++ b/public/emoji/1f6b5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b6-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f6b6-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..6680792c36
--- /dev/null
+++ b/public/emoji/1f6b6-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f6b6-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..b1ba458912
--- /dev/null
+++ b/public/emoji/1f6b6-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6-1f3fb.png b/public/emoji/1f6b6-1f3fb.png
deleted file mode 100644
index 4e391b45a0..0000000000
Binary files a/public/emoji/1f6b6-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f6b6-1f3fb.svg b/public/emoji/1f6b6-1f3fb.svg
index b4d3ddee2d..b1ba458912 100644
--- a/public/emoji/1f6b6-1f3fb.svg
+++ b/public/emoji/1f6b6-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b6-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f6b6-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..a6d74f765a
--- /dev/null
+++ b/public/emoji/1f6b6-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f6b6-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..5376c07171
--- /dev/null
+++ b/public/emoji/1f6b6-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6-1f3fc.png b/public/emoji/1f6b6-1f3fc.png
deleted file mode 100644
index 31f94a1bce..0000000000
Binary files a/public/emoji/1f6b6-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f6b6-1f3fc.svg b/public/emoji/1f6b6-1f3fc.svg
index 8c15b9be79..5376c07171 100644
--- a/public/emoji/1f6b6-1f3fc.svg
+++ b/public/emoji/1f6b6-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b6-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f6b6-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..cab4ccb79d
--- /dev/null
+++ b/public/emoji/1f6b6-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f6b6-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..0bb556b989
--- /dev/null
+++ b/public/emoji/1f6b6-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6-1f3fd.png b/public/emoji/1f6b6-1f3fd.png
deleted file mode 100644
index f7ed8e39c2..0000000000
Binary files a/public/emoji/1f6b6-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f6b6-1f3fd.svg b/public/emoji/1f6b6-1f3fd.svg
index 69ef31ca4f..0bb556b989 100644
--- a/public/emoji/1f6b6-1f3fd.svg
+++ b/public/emoji/1f6b6-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b6-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f6b6-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..3930cfc730
--- /dev/null
+++ b/public/emoji/1f6b6-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f6b6-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..a1cc9c8222
--- /dev/null
+++ b/public/emoji/1f6b6-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6-1f3fe.png b/public/emoji/1f6b6-1f3fe.png
deleted file mode 100644
index e58dc04c7b..0000000000
Binary files a/public/emoji/1f6b6-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f6b6-1f3fe.svg b/public/emoji/1f6b6-1f3fe.svg
index 82b4e83346..a1cc9c8222 100644
--- a/public/emoji/1f6b6-1f3fe.svg
+++ b/public/emoji/1f6b6-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b6-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f6b6-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..dcc4ea187a
--- /dev/null
+++ b/public/emoji/1f6b6-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f6b6-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..a1b476a853
--- /dev/null
+++ b/public/emoji/1f6b6-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6-1f3ff.png b/public/emoji/1f6b6-1f3ff.png
deleted file mode 100644
index ba4e1b58fc..0000000000
Binary files a/public/emoji/1f6b6-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f6b6-1f3ff.svg b/public/emoji/1f6b6-1f3ff.svg
index 454b2a99d7..a1b476a853 100644
--- a/public/emoji/1f6b6-1f3ff.svg
+++ b/public/emoji/1f6b6-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b6-200d-2640-fe0f.svg b/public/emoji/1f6b6-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..8299d1af04
--- /dev/null
+++ b/public/emoji/1f6b6-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6-200d-2642-fe0f.svg b/public/emoji/1f6b6-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..db08fa81ef
--- /dev/null
+++ b/public/emoji/1f6b6-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6b6.png b/public/emoji/1f6b6.png
deleted file mode 100644
index 06dc169a3f..0000000000
Binary files a/public/emoji/1f6b6.png and /dev/null differ
diff --git a/public/emoji/1f6b6.svg b/public/emoji/1f6b6.svg
index 8ba1d28556..db08fa81ef 100644
--- a/public/emoji/1f6b6.svg
+++ b/public/emoji/1f6b6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b7.png b/public/emoji/1f6b7.png
deleted file mode 100644
index 286aa577a2..0000000000
Binary files a/public/emoji/1f6b7.png and /dev/null differ
diff --git a/public/emoji/1f6b7.svg b/public/emoji/1f6b7.svg
index ff92a91ca0..c857019e42 100644
--- a/public/emoji/1f6b7.svg
+++ b/public/emoji/1f6b7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b8.png b/public/emoji/1f6b8.png
deleted file mode 100644
index fa4c091c7c..0000000000
Binary files a/public/emoji/1f6b8.png and /dev/null differ
diff --git a/public/emoji/1f6b8.svg b/public/emoji/1f6b8.svg
index 8b9b118396..0c007f6138 100644
--- a/public/emoji/1f6b8.svg
+++ b/public/emoji/1f6b8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6b9.png b/public/emoji/1f6b9.png
deleted file mode 100644
index f5a1e1ba0c..0000000000
Binary files a/public/emoji/1f6b9.png and /dev/null differ
diff --git a/public/emoji/1f6b9.svg b/public/emoji/1f6b9.svg
index 962b094007..2cea4e4edd 100644
--- a/public/emoji/1f6b9.svg
+++ b/public/emoji/1f6b9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6ba.png b/public/emoji/1f6ba.png
deleted file mode 100644
index d4ecc22e7b..0000000000
Binary files a/public/emoji/1f6ba.png and /dev/null differ
diff --git a/public/emoji/1f6ba.svg b/public/emoji/1f6ba.svg
index b98439e380..354a204c48 100644
--- a/public/emoji/1f6ba.svg
+++ b/public/emoji/1f6ba.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6bb.png b/public/emoji/1f6bb.png
deleted file mode 100644
index 9588e0f0ef..0000000000
Binary files a/public/emoji/1f6bb.png and /dev/null differ
diff --git a/public/emoji/1f6bb.svg b/public/emoji/1f6bb.svg
index 8ece75fe5b..851ec0cf03 100644
--- a/public/emoji/1f6bb.svg
+++ b/public/emoji/1f6bb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6bc.png b/public/emoji/1f6bc.png
deleted file mode 100644
index 64a10b7171..0000000000
Binary files a/public/emoji/1f6bc.png and /dev/null differ
diff --git a/public/emoji/1f6bc.svg b/public/emoji/1f6bc.svg
index 4741117419..8c6a12e03f 100644
--- a/public/emoji/1f6bc.svg
+++ b/public/emoji/1f6bc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6bd.png b/public/emoji/1f6bd.png
deleted file mode 100644
index 1392f76183..0000000000
Binary files a/public/emoji/1f6bd.png and /dev/null differ
diff --git a/public/emoji/1f6bd.svg b/public/emoji/1f6bd.svg
index 5a108e201c..7caf812079 100644
--- a/public/emoji/1f6bd.svg
+++ b/public/emoji/1f6bd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6be.png b/public/emoji/1f6be.png
deleted file mode 100644
index aa433e84ba..0000000000
Binary files a/public/emoji/1f6be.png and /dev/null differ
diff --git a/public/emoji/1f6be.svg b/public/emoji/1f6be.svg
index 71390fb19f..791c101222 100644
--- a/public/emoji/1f6be.svg
+++ b/public/emoji/1f6be.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6bf.png b/public/emoji/1f6bf.png
deleted file mode 100644
index 156776a2e5..0000000000
Binary files a/public/emoji/1f6bf.png and /dev/null differ
diff --git a/public/emoji/1f6bf.svg b/public/emoji/1f6bf.svg
index dd21474ebd..e4bf5e2236 100644
--- a/public/emoji/1f6bf.svg
+++ b/public/emoji/1f6bf.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6c0-1f3fb.png b/public/emoji/1f6c0-1f3fb.png
deleted file mode 100644
index 2152eabf2f..0000000000
Binary files a/public/emoji/1f6c0-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f6c0-1f3fb.svg b/public/emoji/1f6c0-1f3fb.svg
index fa9921fc40..8f47a3cfaf 100644
--- a/public/emoji/1f6c0-1f3fb.svg
+++ b/public/emoji/1f6c0-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6c0-1f3fc.png b/public/emoji/1f6c0-1f3fc.png
deleted file mode 100644
index 2102e6133e..0000000000
Binary files a/public/emoji/1f6c0-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f6c0-1f3fc.svg b/public/emoji/1f6c0-1f3fc.svg
index 62648e5590..958169f37f 100644
--- a/public/emoji/1f6c0-1f3fc.svg
+++ b/public/emoji/1f6c0-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6c0-1f3fd.png b/public/emoji/1f6c0-1f3fd.png
deleted file mode 100644
index fae66181e9..0000000000
Binary files a/public/emoji/1f6c0-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f6c0-1f3fd.svg b/public/emoji/1f6c0-1f3fd.svg
index 4c4957f24f..2975ade603 100644
--- a/public/emoji/1f6c0-1f3fd.svg
+++ b/public/emoji/1f6c0-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6c0-1f3fe.png b/public/emoji/1f6c0-1f3fe.png
deleted file mode 100644
index 1f8959d0d9..0000000000
Binary files a/public/emoji/1f6c0-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f6c0-1f3fe.svg b/public/emoji/1f6c0-1f3fe.svg
index 43c665f094..30a4a8cd3b 100644
--- a/public/emoji/1f6c0-1f3fe.svg
+++ b/public/emoji/1f6c0-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6c0-1f3ff.png b/public/emoji/1f6c0-1f3ff.png
deleted file mode 100644
index c8a08e84f2..0000000000
Binary files a/public/emoji/1f6c0-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f6c0-1f3ff.svg b/public/emoji/1f6c0-1f3ff.svg
index c03631844c..15ae1a6e42 100644
--- a/public/emoji/1f6c0-1f3ff.svg
+++ b/public/emoji/1f6c0-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6c0.png b/public/emoji/1f6c0.png
deleted file mode 100644
index 43fba5c8a2..0000000000
Binary files a/public/emoji/1f6c0.png and /dev/null differ
diff --git a/public/emoji/1f6c0.svg b/public/emoji/1f6c0.svg
index 6985f1feef..be47a8dda6 100644
--- a/public/emoji/1f6c0.svg
+++ b/public/emoji/1f6c0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6c1.png b/public/emoji/1f6c1.png
deleted file mode 100644
index 9a5f09361e..0000000000
Binary files a/public/emoji/1f6c1.png and /dev/null differ
diff --git a/public/emoji/1f6c1.svg b/public/emoji/1f6c1.svg
index cef7b67c38..baa62d48e2 100644
--- a/public/emoji/1f6c1.svg
+++ b/public/emoji/1f6c1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6c2.png b/public/emoji/1f6c2.png
deleted file mode 100644
index 079e34ee4d..0000000000
Binary files a/public/emoji/1f6c2.png and /dev/null differ
diff --git a/public/emoji/1f6c2.svg b/public/emoji/1f6c2.svg
index f29b9c724a..cb55bd4882 100644
--- a/public/emoji/1f6c2.svg
+++ b/public/emoji/1f6c2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6c3.png b/public/emoji/1f6c3.png
deleted file mode 100644
index 21b7ce2c69..0000000000
Binary files a/public/emoji/1f6c3.png and /dev/null differ
diff --git a/public/emoji/1f6c3.svg b/public/emoji/1f6c3.svg
index 618ee799a0..95062ee873 100644
--- a/public/emoji/1f6c3.svg
+++ b/public/emoji/1f6c3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6c4.png b/public/emoji/1f6c4.png
deleted file mode 100644
index 409b593e78..0000000000
Binary files a/public/emoji/1f6c4.png and /dev/null differ
diff --git a/public/emoji/1f6c4.svg b/public/emoji/1f6c4.svg
index b7c8c1cb53..9a0ce13dd9 100644
--- a/public/emoji/1f6c4.svg
+++ b/public/emoji/1f6c4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6c5.png b/public/emoji/1f6c5.png
deleted file mode 100644
index 887b23f3f2..0000000000
Binary files a/public/emoji/1f6c5.png and /dev/null differ
diff --git a/public/emoji/1f6c5.svg b/public/emoji/1f6c5.svg
index dea7416552..c8396313c1 100644
--- a/public/emoji/1f6c5.svg
+++ b/public/emoji/1f6c5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6cb.png b/public/emoji/1f6cb.png
deleted file mode 100644
index 27b19b13bb..0000000000
Binary files a/public/emoji/1f6cb.png and /dev/null differ
diff --git a/public/emoji/1f6cb.svg b/public/emoji/1f6cb.svg
index a33ada16bb..c452194bcd 100644
--- a/public/emoji/1f6cb.svg
+++ b/public/emoji/1f6cb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6cc-1f3fb.svg b/public/emoji/1f6cc-1f3fb.svg
new file mode 100644
index 0000000000..f1b1641693
--- /dev/null
+++ b/public/emoji/1f6cc-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6cc-1f3fc.svg b/public/emoji/1f6cc-1f3fc.svg
new file mode 100644
index 0000000000..cdae6beb8a
--- /dev/null
+++ b/public/emoji/1f6cc-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6cc-1f3fd.svg b/public/emoji/1f6cc-1f3fd.svg
new file mode 100644
index 0000000000..c13dd711fc
--- /dev/null
+++ b/public/emoji/1f6cc-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6cc-1f3fe.svg b/public/emoji/1f6cc-1f3fe.svg
new file mode 100644
index 0000000000..0bde531d05
--- /dev/null
+++ b/public/emoji/1f6cc-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6cc-1f3ff.svg b/public/emoji/1f6cc-1f3ff.svg
new file mode 100644
index 0000000000..cddf398acc
--- /dev/null
+++ b/public/emoji/1f6cc-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6cc.png b/public/emoji/1f6cc.png
deleted file mode 100644
index c739e7fb69..0000000000
Binary files a/public/emoji/1f6cc.png and /dev/null differ
diff --git a/public/emoji/1f6cc.svg b/public/emoji/1f6cc.svg
index 8446d6d7c9..cf6a9fac9f 100644
--- a/public/emoji/1f6cc.svg
+++ b/public/emoji/1f6cc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6cd.png b/public/emoji/1f6cd.png
deleted file mode 100644
index 99f2a2b13a..0000000000
Binary files a/public/emoji/1f6cd.png and /dev/null differ
diff --git a/public/emoji/1f6cd.svg b/public/emoji/1f6cd.svg
index 1daf857d80..0ca3ece26c 100644
--- a/public/emoji/1f6cd.svg
+++ b/public/emoji/1f6cd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6ce.png b/public/emoji/1f6ce.png
deleted file mode 100644
index 6b3297ceaf..0000000000
Binary files a/public/emoji/1f6ce.png and /dev/null differ
diff --git a/public/emoji/1f6ce.svg b/public/emoji/1f6ce.svg
index 96f9fef0b6..dab1704eef 100644
--- a/public/emoji/1f6ce.svg
+++ b/public/emoji/1f6ce.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6cf.png b/public/emoji/1f6cf.png
deleted file mode 100644
index 86f964e245..0000000000
Binary files a/public/emoji/1f6cf.png and /dev/null differ
diff --git a/public/emoji/1f6cf.svg b/public/emoji/1f6cf.svg
index f2fb4aad66..59bc17175a 100644
--- a/public/emoji/1f6cf.svg
+++ b/public/emoji/1f6cf.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6d0.png b/public/emoji/1f6d0.png
deleted file mode 100644
index 207d59cce8..0000000000
Binary files a/public/emoji/1f6d0.png and /dev/null differ
diff --git a/public/emoji/1f6d0.svg b/public/emoji/1f6d0.svg
index 65314e5f64..0ec8b1a12d 100644
--- a/public/emoji/1f6d0.svg
+++ b/public/emoji/1f6d0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6d1.png b/public/emoji/1f6d1.png
deleted file mode 100644
index 5ed6100404..0000000000
Binary files a/public/emoji/1f6d1.png and /dev/null differ
diff --git a/public/emoji/1f6d1.svg b/public/emoji/1f6d1.svg
index 4107a857f1..96da3bba8b 100644
--- a/public/emoji/1f6d1.svg
+++ b/public/emoji/1f6d1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6d2.png b/public/emoji/1f6d2.png
deleted file mode 100644
index 1086fe6e45..0000000000
Binary files a/public/emoji/1f6d2.png and /dev/null differ
diff --git a/public/emoji/1f6d2.svg b/public/emoji/1f6d2.svg
index b820572d75..fa7ec4adfd 100644
--- a/public/emoji/1f6d2.svg
+++ b/public/emoji/1f6d2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6e0.png b/public/emoji/1f6e0.png
deleted file mode 100644
index 3c6049273a..0000000000
Binary files a/public/emoji/1f6e0.png and /dev/null differ
diff --git a/public/emoji/1f6e0.svg b/public/emoji/1f6e0.svg
index af26bdb17b..f7ac133b59 100644
--- a/public/emoji/1f6e0.svg
+++ b/public/emoji/1f6e0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6e1.png b/public/emoji/1f6e1.png
deleted file mode 100644
index 610bf033ce..0000000000
Binary files a/public/emoji/1f6e1.png and /dev/null differ
diff --git a/public/emoji/1f6e1.svg b/public/emoji/1f6e1.svg
index e9a41aa3a1..1f0c881fb4 100644
--- a/public/emoji/1f6e1.svg
+++ b/public/emoji/1f6e1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6e2.png b/public/emoji/1f6e2.png
deleted file mode 100644
index c4c4d42da8..0000000000
Binary files a/public/emoji/1f6e2.png and /dev/null differ
diff --git a/public/emoji/1f6e2.svg b/public/emoji/1f6e2.svg
index c5a60a82c1..9405fe36d0 100644
--- a/public/emoji/1f6e2.svg
+++ b/public/emoji/1f6e2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6e3.png b/public/emoji/1f6e3.png
deleted file mode 100644
index 8c3d3d03e3..0000000000
Binary files a/public/emoji/1f6e3.png and /dev/null differ
diff --git a/public/emoji/1f6e3.svg b/public/emoji/1f6e3.svg
index 2ccec72c45..69e58f8504 100644
--- a/public/emoji/1f6e3.svg
+++ b/public/emoji/1f6e3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6e4.png b/public/emoji/1f6e4.png
deleted file mode 100644
index e1a7a0d143..0000000000
Binary files a/public/emoji/1f6e4.png and /dev/null differ
diff --git a/public/emoji/1f6e4.svg b/public/emoji/1f6e4.svg
index 4828d4248f..f6a4a6b316 100644
--- a/public/emoji/1f6e4.svg
+++ b/public/emoji/1f6e4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6e5.png b/public/emoji/1f6e5.png
deleted file mode 100644
index 0506db1a40..0000000000
Binary files a/public/emoji/1f6e5.png and /dev/null differ
diff --git a/public/emoji/1f6e5.svg b/public/emoji/1f6e5.svg
index db896dbc98..50e7c3d365 100644
--- a/public/emoji/1f6e5.svg
+++ b/public/emoji/1f6e5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6e9.png b/public/emoji/1f6e9.png
deleted file mode 100644
index b731b15e3a..0000000000
Binary files a/public/emoji/1f6e9.png and /dev/null differ
diff --git a/public/emoji/1f6e9.svg b/public/emoji/1f6e9.svg
index 191a114094..2f42c60bf1 100644
--- a/public/emoji/1f6e9.svg
+++ b/public/emoji/1f6e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6eb.png b/public/emoji/1f6eb.png
deleted file mode 100644
index a5766f9f4a..0000000000
Binary files a/public/emoji/1f6eb.png and /dev/null differ
diff --git a/public/emoji/1f6eb.svg b/public/emoji/1f6eb.svg
index 5220fb3a72..5a76b58c21 100644
--- a/public/emoji/1f6eb.svg
+++ b/public/emoji/1f6eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6ec.png b/public/emoji/1f6ec.png
deleted file mode 100644
index d66841962f..0000000000
Binary files a/public/emoji/1f6ec.png and /dev/null differ
diff --git a/public/emoji/1f6ec.svg b/public/emoji/1f6ec.svg
index c170f90af8..0493a97eb8 100644
--- a/public/emoji/1f6ec.svg
+++ b/public/emoji/1f6ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6f0.png b/public/emoji/1f6f0.png
deleted file mode 100644
index 4ba55d6e29..0000000000
Binary files a/public/emoji/1f6f0.png and /dev/null differ
diff --git a/public/emoji/1f6f0.svg b/public/emoji/1f6f0.svg
index 1d11f7aa78..d3b7ec6d43 100644
--- a/public/emoji/1f6f0.svg
+++ b/public/emoji/1f6f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6f3.png b/public/emoji/1f6f3.png
deleted file mode 100644
index 19d4acbe40..0000000000
Binary files a/public/emoji/1f6f3.png and /dev/null differ
diff --git a/public/emoji/1f6f3.svg b/public/emoji/1f6f3.svg
index 81b10ac490..cede9fbc3d 100644
--- a/public/emoji/1f6f3.svg
+++ b/public/emoji/1f6f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6f4.png b/public/emoji/1f6f4.png
deleted file mode 100644
index 4ab7ef59cd..0000000000
Binary files a/public/emoji/1f6f4.png and /dev/null differ
diff --git a/public/emoji/1f6f4.svg b/public/emoji/1f6f4.svg
index a0f4a49abe..d23b8a0770 100644
--- a/public/emoji/1f6f4.svg
+++ b/public/emoji/1f6f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6f5.png b/public/emoji/1f6f5.png
deleted file mode 100644
index c5afa72d80..0000000000
Binary files a/public/emoji/1f6f5.png and /dev/null differ
diff --git a/public/emoji/1f6f5.svg b/public/emoji/1f6f5.svg
index 7d7f7383b6..d7b49c603f 100644
--- a/public/emoji/1f6f5.svg
+++ b/public/emoji/1f6f5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6f6.png b/public/emoji/1f6f6.png
deleted file mode 100644
index e26cdb9da6..0000000000
Binary files a/public/emoji/1f6f6.png and /dev/null differ
diff --git a/public/emoji/1f6f6.svg b/public/emoji/1f6f6.svg
index 3d86164533..9ec5a06c67 100644
--- a/public/emoji/1f6f6.svg
+++ b/public/emoji/1f6f6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f6f7.svg b/public/emoji/1f6f7.svg
new file mode 100644
index 0000000000..91f5653730
--- /dev/null
+++ b/public/emoji/1f6f7.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f6f8.svg b/public/emoji/1f6f8.svg
new file mode 100644
index 0000000000..5cc00c6a0f
--- /dev/null
+++ b/public/emoji/1f6f8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f910.png b/public/emoji/1f910.png
deleted file mode 100644
index f8ced2502a..0000000000
Binary files a/public/emoji/1f910.png and /dev/null differ
diff --git a/public/emoji/1f910.svg b/public/emoji/1f910.svg
index 51851ff014..0c238b55fe 100644
--- a/public/emoji/1f910.svg
+++ b/public/emoji/1f910.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f911.png b/public/emoji/1f911.png
deleted file mode 100644
index 75fd1e90cb..0000000000
Binary files a/public/emoji/1f911.png and /dev/null differ
diff --git a/public/emoji/1f911.svg b/public/emoji/1f911.svg
index 19404ab8ec..c3c3f6b6f3 100644
--- a/public/emoji/1f911.svg
+++ b/public/emoji/1f911.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f912.png b/public/emoji/1f912.png
deleted file mode 100644
index 8fc5738756..0000000000
Binary files a/public/emoji/1f912.png and /dev/null differ
diff --git a/public/emoji/1f912.svg b/public/emoji/1f912.svg
index 2b9d9b0beb..37e1ee294c 100644
--- a/public/emoji/1f912.svg
+++ b/public/emoji/1f912.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f913.png b/public/emoji/1f913.png
deleted file mode 100644
index 7820bd581d..0000000000
Binary files a/public/emoji/1f913.png and /dev/null differ
diff --git a/public/emoji/1f913.svg b/public/emoji/1f913.svg
index 1dc83d7646..50cbdd2ba5 100644
--- a/public/emoji/1f913.svg
+++ b/public/emoji/1f913.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f914.png b/public/emoji/1f914.png
deleted file mode 100644
index c18f6fd14a..0000000000
Binary files a/public/emoji/1f914.png and /dev/null differ
diff --git a/public/emoji/1f914.svg b/public/emoji/1f914.svg
index 3b5fe136f6..a7a571aa68 100644
--- a/public/emoji/1f914.svg
+++ b/public/emoji/1f914.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f915.png b/public/emoji/1f915.png
deleted file mode 100644
index 0be723085e..0000000000
Binary files a/public/emoji/1f915.png and /dev/null differ
diff --git a/public/emoji/1f915.svg b/public/emoji/1f915.svg
index 26dfd8cf44..16bec115fd 100644
--- a/public/emoji/1f915.svg
+++ b/public/emoji/1f915.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f916.png b/public/emoji/1f916.png
deleted file mode 100644
index 7cc62612c6..0000000000
Binary files a/public/emoji/1f916.png and /dev/null differ
diff --git a/public/emoji/1f916.svg b/public/emoji/1f916.svg
index 047eae18ff..9a9cf4b3ec 100644
--- a/public/emoji/1f916.svg
+++ b/public/emoji/1f916.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f917.png b/public/emoji/1f917.png
deleted file mode 100644
index 5bba6dc6d5..0000000000
Binary files a/public/emoji/1f917.png and /dev/null differ
diff --git a/public/emoji/1f917.svg b/public/emoji/1f917.svg
index 238b5a7825..cc3524873e 100644
--- a/public/emoji/1f917.svg
+++ b/public/emoji/1f917.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f918-1f3fb.png b/public/emoji/1f918-1f3fb.png
deleted file mode 100644
index c080d2addb..0000000000
Binary files a/public/emoji/1f918-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f918-1f3fb.svg b/public/emoji/1f918-1f3fb.svg
index 2ac3beae05..bcc91553a8 100644
--- a/public/emoji/1f918-1f3fb.svg
+++ b/public/emoji/1f918-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f918-1f3fc.png b/public/emoji/1f918-1f3fc.png
deleted file mode 100644
index 12313529bc..0000000000
Binary files a/public/emoji/1f918-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f918-1f3fc.svg b/public/emoji/1f918-1f3fc.svg
index edbd0b2089..25497767f3 100644
--- a/public/emoji/1f918-1f3fc.svg
+++ b/public/emoji/1f918-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f918-1f3fd.png b/public/emoji/1f918-1f3fd.png
deleted file mode 100644
index ca9be6ae67..0000000000
Binary files a/public/emoji/1f918-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f918-1f3fd.svg b/public/emoji/1f918-1f3fd.svg
index 39f8819a5a..4dbb31ef34 100644
--- a/public/emoji/1f918-1f3fd.svg
+++ b/public/emoji/1f918-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f918-1f3fe.png b/public/emoji/1f918-1f3fe.png
deleted file mode 100644
index abe28cbf89..0000000000
Binary files a/public/emoji/1f918-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f918-1f3fe.svg b/public/emoji/1f918-1f3fe.svg
index b8b1f4500a..e74fe32567 100644
--- a/public/emoji/1f918-1f3fe.svg
+++ b/public/emoji/1f918-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f918-1f3ff.png b/public/emoji/1f918-1f3ff.png
deleted file mode 100644
index 0c6b5dd34e..0000000000
Binary files a/public/emoji/1f918-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f918-1f3ff.svg b/public/emoji/1f918-1f3ff.svg
index 1dfaceff89..8727eccb9c 100644
--- a/public/emoji/1f918-1f3ff.svg
+++ b/public/emoji/1f918-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f918.png b/public/emoji/1f918.png
deleted file mode 100644
index 4aa6e7e0a4..0000000000
Binary files a/public/emoji/1f918.png and /dev/null differ
diff --git a/public/emoji/1f918.svg b/public/emoji/1f918.svg
index 125c338544..ba3822b96f 100644
--- a/public/emoji/1f918.svg
+++ b/public/emoji/1f918.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f919-1f3fb.png b/public/emoji/1f919-1f3fb.png
deleted file mode 100644
index 2c93201181..0000000000
Binary files a/public/emoji/1f919-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f919-1f3fb.svg b/public/emoji/1f919-1f3fb.svg
index 6798a545f6..231703d303 100644
--- a/public/emoji/1f919-1f3fb.svg
+++ b/public/emoji/1f919-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f919-1f3fc.png b/public/emoji/1f919-1f3fc.png
deleted file mode 100644
index c39f45a41e..0000000000
Binary files a/public/emoji/1f919-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f919-1f3fc.svg b/public/emoji/1f919-1f3fc.svg
index 1c604faa35..1e096efd4d 100644
--- a/public/emoji/1f919-1f3fc.svg
+++ b/public/emoji/1f919-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f919-1f3fd.png b/public/emoji/1f919-1f3fd.png
deleted file mode 100644
index 83a57f63c2..0000000000
Binary files a/public/emoji/1f919-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f919-1f3fd.svg b/public/emoji/1f919-1f3fd.svg
index 7270638042..ee2567aa0b 100644
--- a/public/emoji/1f919-1f3fd.svg
+++ b/public/emoji/1f919-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f919-1f3fe.png b/public/emoji/1f919-1f3fe.png
deleted file mode 100644
index 65b3468fe4..0000000000
Binary files a/public/emoji/1f919-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f919-1f3fe.svg b/public/emoji/1f919-1f3fe.svg
index c7d9afa184..b6301bf75b 100644
--- a/public/emoji/1f919-1f3fe.svg
+++ b/public/emoji/1f919-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f919-1f3ff.png b/public/emoji/1f919-1f3ff.png
deleted file mode 100644
index 94ef68ff3b..0000000000
Binary files a/public/emoji/1f919-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f919-1f3ff.svg b/public/emoji/1f919-1f3ff.svg
index 7f95819862..a4126d45e0 100644
--- a/public/emoji/1f919-1f3ff.svg
+++ b/public/emoji/1f919-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f919.png b/public/emoji/1f919.png
deleted file mode 100644
index a10c59ba71..0000000000
Binary files a/public/emoji/1f919.png and /dev/null differ
diff --git a/public/emoji/1f919.svg b/public/emoji/1f919.svg
index 84df19cce0..05c6e76d3b 100644
--- a/public/emoji/1f919.svg
+++ b/public/emoji/1f919.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91a-1f3fb.png b/public/emoji/1f91a-1f3fb.png
deleted file mode 100644
index 813d28499b..0000000000
Binary files a/public/emoji/1f91a-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f91a-1f3fb.svg b/public/emoji/1f91a-1f3fb.svg
index 7a7baa8540..d7767b7b58 100644
--- a/public/emoji/1f91a-1f3fb.svg
+++ b/public/emoji/1f91a-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91a-1f3fc.png b/public/emoji/1f91a-1f3fc.png
deleted file mode 100644
index 192ff795e3..0000000000
Binary files a/public/emoji/1f91a-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f91a-1f3fc.svg b/public/emoji/1f91a-1f3fc.svg
index 7343906b1c..beb8fc5d74 100644
--- a/public/emoji/1f91a-1f3fc.svg
+++ b/public/emoji/1f91a-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91a-1f3fd.png b/public/emoji/1f91a-1f3fd.png
deleted file mode 100644
index 61a727abe6..0000000000
Binary files a/public/emoji/1f91a-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f91a-1f3fd.svg b/public/emoji/1f91a-1f3fd.svg
index 55f936d152..1c62d98f58 100644
--- a/public/emoji/1f91a-1f3fd.svg
+++ b/public/emoji/1f91a-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91a-1f3fe.png b/public/emoji/1f91a-1f3fe.png
deleted file mode 100644
index 2e83da511f..0000000000
Binary files a/public/emoji/1f91a-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f91a-1f3fe.svg b/public/emoji/1f91a-1f3fe.svg
index 6dc3b2210d..1026fca8de 100644
--- a/public/emoji/1f91a-1f3fe.svg
+++ b/public/emoji/1f91a-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91a-1f3ff.png b/public/emoji/1f91a-1f3ff.png
deleted file mode 100644
index d7a5b95a02..0000000000
Binary files a/public/emoji/1f91a-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f91a-1f3ff.svg b/public/emoji/1f91a-1f3ff.svg
index d27a387c6d..0a6024a203 100644
--- a/public/emoji/1f91a-1f3ff.svg
+++ b/public/emoji/1f91a-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91a.png b/public/emoji/1f91a.png
deleted file mode 100644
index 479234294b..0000000000
Binary files a/public/emoji/1f91a.png and /dev/null differ
diff --git a/public/emoji/1f91a.svg b/public/emoji/1f91a.svg
index 74d0015f65..8579efff7a 100644
--- a/public/emoji/1f91a.svg
+++ b/public/emoji/1f91a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91b-1f3fb.png b/public/emoji/1f91b-1f3fb.png
deleted file mode 100644
index 1262a6b4b6..0000000000
Binary files a/public/emoji/1f91b-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f91b-1f3fb.svg b/public/emoji/1f91b-1f3fb.svg
index 00f854072d..2eb0c149a0 100644
--- a/public/emoji/1f91b-1f3fb.svg
+++ b/public/emoji/1f91b-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91b-1f3fc.png b/public/emoji/1f91b-1f3fc.png
deleted file mode 100644
index 40bf70b82b..0000000000
Binary files a/public/emoji/1f91b-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f91b-1f3fc.svg b/public/emoji/1f91b-1f3fc.svg
index 92dd89993e..10dd4d02a4 100644
--- a/public/emoji/1f91b-1f3fc.svg
+++ b/public/emoji/1f91b-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91b-1f3fd.png b/public/emoji/1f91b-1f3fd.png
deleted file mode 100644
index 93f5814511..0000000000
Binary files a/public/emoji/1f91b-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f91b-1f3fd.svg b/public/emoji/1f91b-1f3fd.svg
index 6254ca9ae9..3b4cd2153d 100644
--- a/public/emoji/1f91b-1f3fd.svg
+++ b/public/emoji/1f91b-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91b-1f3fe.png b/public/emoji/1f91b-1f3fe.png
deleted file mode 100644
index d82b5ec91f..0000000000
Binary files a/public/emoji/1f91b-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f91b-1f3fe.svg b/public/emoji/1f91b-1f3fe.svg
index 074eca3480..66bccaef20 100644
--- a/public/emoji/1f91b-1f3fe.svg
+++ b/public/emoji/1f91b-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91b-1f3ff.png b/public/emoji/1f91b-1f3ff.png
deleted file mode 100644
index 09ae4cd492..0000000000
Binary files a/public/emoji/1f91b-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f91b-1f3ff.svg b/public/emoji/1f91b-1f3ff.svg
index 163866bbac..2324d4aeee 100644
--- a/public/emoji/1f91b-1f3ff.svg
+++ b/public/emoji/1f91b-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91b.png b/public/emoji/1f91b.png
deleted file mode 100644
index a9d9fd8d59..0000000000
Binary files a/public/emoji/1f91b.png and /dev/null differ
diff --git a/public/emoji/1f91b.svg b/public/emoji/1f91b.svg
index ea97a80a0b..c554fffc59 100644
--- a/public/emoji/1f91b.svg
+++ b/public/emoji/1f91b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91c-1f3fb.png b/public/emoji/1f91c-1f3fb.png
deleted file mode 100644
index 33ded2f61a..0000000000
Binary files a/public/emoji/1f91c-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f91c-1f3fb.svg b/public/emoji/1f91c-1f3fb.svg
index d3c0de370f..3207b4b584 100644
--- a/public/emoji/1f91c-1f3fb.svg
+++ b/public/emoji/1f91c-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91c-1f3fc.png b/public/emoji/1f91c-1f3fc.png
deleted file mode 100644
index 88054e335c..0000000000
Binary files a/public/emoji/1f91c-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f91c-1f3fc.svg b/public/emoji/1f91c-1f3fc.svg
index 9459974002..678d3db735 100644
--- a/public/emoji/1f91c-1f3fc.svg
+++ b/public/emoji/1f91c-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91c-1f3fd.png b/public/emoji/1f91c-1f3fd.png
deleted file mode 100644
index 84b9f5da7f..0000000000
Binary files a/public/emoji/1f91c-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f91c-1f3fd.svg b/public/emoji/1f91c-1f3fd.svg
index c540bb048a..c619612bdc 100644
--- a/public/emoji/1f91c-1f3fd.svg
+++ b/public/emoji/1f91c-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91c-1f3fe.png b/public/emoji/1f91c-1f3fe.png
deleted file mode 100644
index e741cfea68..0000000000
Binary files a/public/emoji/1f91c-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f91c-1f3fe.svg b/public/emoji/1f91c-1f3fe.svg
index c3a410c28c..e1dc9efa9a 100644
--- a/public/emoji/1f91c-1f3fe.svg
+++ b/public/emoji/1f91c-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91c-1f3ff.png b/public/emoji/1f91c-1f3ff.png
deleted file mode 100644
index cf66d760c1..0000000000
Binary files a/public/emoji/1f91c-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f91c-1f3ff.svg b/public/emoji/1f91c-1f3ff.svg
index 1ff1b64f36..a7b1723c05 100644
--- a/public/emoji/1f91c-1f3ff.svg
+++ b/public/emoji/1f91c-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91c.png b/public/emoji/1f91c.png
deleted file mode 100644
index 754ed066d2..0000000000
Binary files a/public/emoji/1f91c.png and /dev/null differ
diff --git a/public/emoji/1f91c.svg b/public/emoji/1f91c.svg
index 80a75c9cde..a320968b29 100644
--- a/public/emoji/1f91c.svg
+++ b/public/emoji/1f91c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91d-1f3fb.png b/public/emoji/1f91d-1f3fb.png
deleted file mode 100644
index 8f8fbb9bdc..0000000000
Binary files a/public/emoji/1f91d-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f91d-1f3fb.svg b/public/emoji/1f91d-1f3fb.svg
deleted file mode 100644
index bc7cf60e8c..0000000000
--- a/public/emoji/1f91d-1f3fb.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f91d-1f3fc.png b/public/emoji/1f91d-1f3fc.png
deleted file mode 100644
index 336a77a6d7..0000000000
Binary files a/public/emoji/1f91d-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f91d-1f3fc.svg b/public/emoji/1f91d-1f3fc.svg
deleted file mode 100644
index c13f18ba6e..0000000000
--- a/public/emoji/1f91d-1f3fc.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f91d-1f3fd.png b/public/emoji/1f91d-1f3fd.png
deleted file mode 100644
index 95f62d4fec..0000000000
Binary files a/public/emoji/1f91d-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f91d-1f3fd.svg b/public/emoji/1f91d-1f3fd.svg
deleted file mode 100644
index 76871fcba7..0000000000
--- a/public/emoji/1f91d-1f3fd.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f91d-1f3fe.png b/public/emoji/1f91d-1f3fe.png
deleted file mode 100644
index 2b0a643388..0000000000
Binary files a/public/emoji/1f91d-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f91d-1f3fe.svg b/public/emoji/1f91d-1f3fe.svg
deleted file mode 100644
index 45a6c8204b..0000000000
--- a/public/emoji/1f91d-1f3fe.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f91d-1f3ff.png b/public/emoji/1f91d-1f3ff.png
deleted file mode 100644
index 40189ee68e..0000000000
Binary files a/public/emoji/1f91d-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f91d-1f3ff.svg b/public/emoji/1f91d-1f3ff.svg
deleted file mode 100644
index 4444426701..0000000000
--- a/public/emoji/1f91d-1f3ff.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f91d.png b/public/emoji/1f91d.png
deleted file mode 100644
index c5d35fd813..0000000000
Binary files a/public/emoji/1f91d.png and /dev/null differ
diff --git a/public/emoji/1f91d.svg b/public/emoji/1f91d.svg
index 185bf3bc70..d6b87a93f6 100644
--- a/public/emoji/1f91d.svg
+++ b/public/emoji/1f91d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91e-1f3fb.png b/public/emoji/1f91e-1f3fb.png
deleted file mode 100644
index dd2384a6cd..0000000000
Binary files a/public/emoji/1f91e-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f91e-1f3fb.svg b/public/emoji/1f91e-1f3fb.svg
index aa4cd73ac1..571240a9ff 100644
--- a/public/emoji/1f91e-1f3fb.svg
+++ b/public/emoji/1f91e-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91e-1f3fc.png b/public/emoji/1f91e-1f3fc.png
deleted file mode 100644
index 6228401bef..0000000000
Binary files a/public/emoji/1f91e-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f91e-1f3fc.svg b/public/emoji/1f91e-1f3fc.svg
index bf4eff677b..b38874554f 100644
--- a/public/emoji/1f91e-1f3fc.svg
+++ b/public/emoji/1f91e-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91e-1f3fd.png b/public/emoji/1f91e-1f3fd.png
deleted file mode 100644
index b1074da15f..0000000000
Binary files a/public/emoji/1f91e-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f91e-1f3fd.svg b/public/emoji/1f91e-1f3fd.svg
index 5562818e40..6afd877e79 100644
--- a/public/emoji/1f91e-1f3fd.svg
+++ b/public/emoji/1f91e-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91e-1f3fe.png b/public/emoji/1f91e-1f3fe.png
deleted file mode 100644
index 75e05e4d33..0000000000
Binary files a/public/emoji/1f91e-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f91e-1f3fe.svg b/public/emoji/1f91e-1f3fe.svg
index 5067aaebaa..62816622dc 100644
--- a/public/emoji/1f91e-1f3fe.svg
+++ b/public/emoji/1f91e-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91e-1f3ff.png b/public/emoji/1f91e-1f3ff.png
deleted file mode 100644
index 761aebdc30..0000000000
Binary files a/public/emoji/1f91e-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f91e-1f3ff.svg b/public/emoji/1f91e-1f3ff.svg
index 741dc66408..00b44e88dd 100644
--- a/public/emoji/1f91e-1f3ff.svg
+++ b/public/emoji/1f91e-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91e.png b/public/emoji/1f91e.png
deleted file mode 100644
index 4cd18514ea..0000000000
Binary files a/public/emoji/1f91e.png and /dev/null differ
diff --git a/public/emoji/1f91e.svg b/public/emoji/1f91e.svg
index 574dcc17f9..ee5f2430d4 100644
--- a/public/emoji/1f91e.svg
+++ b/public/emoji/1f91e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f91f-1f3fb.svg b/public/emoji/1f91f-1f3fb.svg
new file mode 100644
index 0000000000..24b951fc11
--- /dev/null
+++ b/public/emoji/1f91f-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f91f-1f3fc.svg b/public/emoji/1f91f-1f3fc.svg
new file mode 100644
index 0000000000..0dff66ba44
--- /dev/null
+++ b/public/emoji/1f91f-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f91f-1f3fd.svg b/public/emoji/1f91f-1f3fd.svg
new file mode 100644
index 0000000000..0140134559
--- /dev/null
+++ b/public/emoji/1f91f-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f91f-1f3fe.svg b/public/emoji/1f91f-1f3fe.svg
new file mode 100644
index 0000000000..74b318c0c6
--- /dev/null
+++ b/public/emoji/1f91f-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f91f-1f3ff.svg b/public/emoji/1f91f-1f3ff.svg
new file mode 100644
index 0000000000..c059eb6e52
--- /dev/null
+++ b/public/emoji/1f91f-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f91f.svg b/public/emoji/1f91f.svg
new file mode 100644
index 0000000000..8f93518655
--- /dev/null
+++ b/public/emoji/1f91f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f920.png b/public/emoji/1f920.png
deleted file mode 100644
index 70dd5d0d9d..0000000000
Binary files a/public/emoji/1f920.png and /dev/null differ
diff --git a/public/emoji/1f920.svg b/public/emoji/1f920.svg
index 11437ce6dd..a240ae0b50 100644
--- a/public/emoji/1f920.svg
+++ b/public/emoji/1f920.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f921.png b/public/emoji/1f921.png
deleted file mode 100644
index 02b7ff7004..0000000000
Binary files a/public/emoji/1f921.png and /dev/null differ
diff --git a/public/emoji/1f921.svg b/public/emoji/1f921.svg
index 63812e7311..f078661320 100644
--- a/public/emoji/1f921.svg
+++ b/public/emoji/1f921.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f922.png b/public/emoji/1f922.png
deleted file mode 100644
index a566c109c2..0000000000
Binary files a/public/emoji/1f922.png and /dev/null differ
diff --git a/public/emoji/1f922.svg b/public/emoji/1f922.svg
index 893e564de5..1815d4965a 100644
--- a/public/emoji/1f922.svg
+++ b/public/emoji/1f922.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f923.png b/public/emoji/1f923.png
deleted file mode 100644
index b1736fedfe..0000000000
Binary files a/public/emoji/1f923.png and /dev/null differ
diff --git a/public/emoji/1f923.svg b/public/emoji/1f923.svg
index e029257016..1ca89f33ae 100644
--- a/public/emoji/1f923.svg
+++ b/public/emoji/1f923.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f924.png b/public/emoji/1f924.png
deleted file mode 100644
index a546053259..0000000000
Binary files a/public/emoji/1f924.png and /dev/null differ
diff --git a/public/emoji/1f924.svg b/public/emoji/1f924.svg
index 4e30304dfc..c81e62d6c5 100644
--- a/public/emoji/1f924.svg
+++ b/public/emoji/1f924.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f925.png b/public/emoji/1f925.png
deleted file mode 100644
index 02827e2628..0000000000
Binary files a/public/emoji/1f925.png and /dev/null differ
diff --git a/public/emoji/1f925.svg b/public/emoji/1f925.svg
index 7446d3f45f..a78baff89d 100644
--- a/public/emoji/1f925.svg
+++ b/public/emoji/1f925.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f926-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f926-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..61cab88bec
--- /dev/null
+++ b/public/emoji/1f926-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f926-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..45a0c293d4
--- /dev/null
+++ b/public/emoji/1f926-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926-1f3fb.png b/public/emoji/1f926-1f3fb.png
deleted file mode 100644
index 2f4b010bb4..0000000000
Binary files a/public/emoji/1f926-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f926-1f3fb.svg b/public/emoji/1f926-1f3fb.svg
index 60e2089a4b..61cab88bec 100644
--- a/public/emoji/1f926-1f3fb.svg
+++ b/public/emoji/1f926-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f926-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f926-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..9d28aecc95
--- /dev/null
+++ b/public/emoji/1f926-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f926-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..55f32a525a
--- /dev/null
+++ b/public/emoji/1f926-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926-1f3fc.png b/public/emoji/1f926-1f3fc.png
deleted file mode 100644
index 97fb683168..0000000000
Binary files a/public/emoji/1f926-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f926-1f3fc.svg b/public/emoji/1f926-1f3fc.svg
index a5fc0ae04c..9d28aecc95 100644
--- a/public/emoji/1f926-1f3fc.svg
+++ b/public/emoji/1f926-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f926-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f926-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..a23fe91cc1
--- /dev/null
+++ b/public/emoji/1f926-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f926-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..0c349e099c
--- /dev/null
+++ b/public/emoji/1f926-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926-1f3fd.png b/public/emoji/1f926-1f3fd.png
deleted file mode 100644
index b5b5c1e530..0000000000
Binary files a/public/emoji/1f926-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f926-1f3fd.svg b/public/emoji/1f926-1f3fd.svg
index ea86bb8cba..a23fe91cc1 100644
--- a/public/emoji/1f926-1f3fd.svg
+++ b/public/emoji/1f926-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f926-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f926-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..6ec0c9edba
--- /dev/null
+++ b/public/emoji/1f926-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f926-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..af75656a57
--- /dev/null
+++ b/public/emoji/1f926-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926-1f3fe.png b/public/emoji/1f926-1f3fe.png
deleted file mode 100644
index 2840b11348..0000000000
Binary files a/public/emoji/1f926-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f926-1f3fe.svg b/public/emoji/1f926-1f3fe.svg
index 27bb43a42b..6ec0c9edba 100644
--- a/public/emoji/1f926-1f3fe.svg
+++ b/public/emoji/1f926-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f926-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f926-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..e4ba1179b4
--- /dev/null
+++ b/public/emoji/1f926-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f926-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..cc2122284d
--- /dev/null
+++ b/public/emoji/1f926-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926-1f3ff.png b/public/emoji/1f926-1f3ff.png
deleted file mode 100644
index 6f070db98b..0000000000
Binary files a/public/emoji/1f926-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f926-1f3ff.svg b/public/emoji/1f926-1f3ff.svg
index 2f70443759..e4ba1179b4 100644
--- a/public/emoji/1f926-1f3ff.svg
+++ b/public/emoji/1f926-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f926-200d-2640-fe0f.svg b/public/emoji/1f926-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..9e134f05d2
--- /dev/null
+++ b/public/emoji/1f926-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926-200d-2642-fe0f.svg b/public/emoji/1f926-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1e51ec0459
--- /dev/null
+++ b/public/emoji/1f926-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f926.png b/public/emoji/1f926.png
deleted file mode 100644
index defc796cf1..0000000000
Binary files a/public/emoji/1f926.png and /dev/null differ
diff --git a/public/emoji/1f926.svg b/public/emoji/1f926.svg
index bff8effe6b..9e134f05d2 100644
--- a/public/emoji/1f926.svg
+++ b/public/emoji/1f926.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f927.png b/public/emoji/1f927.png
deleted file mode 100644
index ccf07d4b64..0000000000
Binary files a/public/emoji/1f927.png and /dev/null differ
diff --git a/public/emoji/1f927.svg b/public/emoji/1f927.svg
index 1c513dd280..ad0eb94a52 100644
--- a/public/emoji/1f927.svg
+++ b/public/emoji/1f927.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f928.svg b/public/emoji/1f928.svg
new file mode 100644
index 0000000000..5b7fda886f
--- /dev/null
+++ b/public/emoji/1f928.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f929.svg b/public/emoji/1f929.svg
new file mode 100644
index 0000000000..cd16d001e7
--- /dev/null
+++ b/public/emoji/1f929.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f92a.svg b/public/emoji/1f92a.svg
new file mode 100644
index 0000000000..579fb1c9db
--- /dev/null
+++ b/public/emoji/1f92a.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f92b.svg b/public/emoji/1f92b.svg
new file mode 100644
index 0000000000..819a7c792a
--- /dev/null
+++ b/public/emoji/1f92b.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f92c.svg b/public/emoji/1f92c.svg
new file mode 100644
index 0000000000..e19b92f452
--- /dev/null
+++ b/public/emoji/1f92c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f92d.svg b/public/emoji/1f92d.svg
new file mode 100644
index 0000000000..ee9649f89e
--- /dev/null
+++ b/public/emoji/1f92d.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f92e.svg b/public/emoji/1f92e.svg
new file mode 100644
index 0000000000..dbf0ad3ff5
--- /dev/null
+++ b/public/emoji/1f92e.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f92f.svg b/public/emoji/1f92f.svg
new file mode 100644
index 0000000000..03198605d1
--- /dev/null
+++ b/public/emoji/1f92f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f930-1f3fb.png b/public/emoji/1f930-1f3fb.png
deleted file mode 100644
index a78703b33a..0000000000
Binary files a/public/emoji/1f930-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f930-1f3fb.svg b/public/emoji/1f930-1f3fb.svg
index 4b1d23ff29..324864905a 100644
--- a/public/emoji/1f930-1f3fb.svg
+++ b/public/emoji/1f930-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f930-1f3fc.png b/public/emoji/1f930-1f3fc.png
deleted file mode 100644
index 0068c6c4a7..0000000000
Binary files a/public/emoji/1f930-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f930-1f3fc.svg b/public/emoji/1f930-1f3fc.svg
index b168358928..f7771ab08c 100644
--- a/public/emoji/1f930-1f3fc.svg
+++ b/public/emoji/1f930-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f930-1f3fd.png b/public/emoji/1f930-1f3fd.png
deleted file mode 100644
index 3206296b68..0000000000
Binary files a/public/emoji/1f930-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f930-1f3fd.svg b/public/emoji/1f930-1f3fd.svg
index dbb32eac3a..34000f5a24 100644
--- a/public/emoji/1f930-1f3fd.svg
+++ b/public/emoji/1f930-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f930-1f3fe.png b/public/emoji/1f930-1f3fe.png
deleted file mode 100644
index 120fda5cd8..0000000000
Binary files a/public/emoji/1f930-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f930-1f3fe.svg b/public/emoji/1f930-1f3fe.svg
index a3bab2cba4..3a6ac0c1f4 100644
--- a/public/emoji/1f930-1f3fe.svg
+++ b/public/emoji/1f930-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f930-1f3ff.png b/public/emoji/1f930-1f3ff.png
deleted file mode 100644
index 569bfdf05c..0000000000
Binary files a/public/emoji/1f930-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f930-1f3ff.svg b/public/emoji/1f930-1f3ff.svg
index ad37b4b16f..5ca9e492fe 100644
--- a/public/emoji/1f930-1f3ff.svg
+++ b/public/emoji/1f930-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f930.png b/public/emoji/1f930.png
deleted file mode 100644
index 084e83a414..0000000000
Binary files a/public/emoji/1f930.png and /dev/null differ
diff --git a/public/emoji/1f930.svg b/public/emoji/1f930.svg
index 768b902b88..b5820f4f3e 100644
--- a/public/emoji/1f930.svg
+++ b/public/emoji/1f930.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f931-1f3fb.svg b/public/emoji/1f931-1f3fb.svg
new file mode 100644
index 0000000000..988b5d57d5
--- /dev/null
+++ b/public/emoji/1f931-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f931-1f3fc.svg b/public/emoji/1f931-1f3fc.svg
new file mode 100644
index 0000000000..2883d9ef56
--- /dev/null
+++ b/public/emoji/1f931-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f931-1f3fd.svg b/public/emoji/1f931-1f3fd.svg
new file mode 100644
index 0000000000..b42dc9fb5f
--- /dev/null
+++ b/public/emoji/1f931-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f931-1f3fe.svg b/public/emoji/1f931-1f3fe.svg
new file mode 100644
index 0000000000..41c6f1c75e
--- /dev/null
+++ b/public/emoji/1f931-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f931-1f3ff.svg b/public/emoji/1f931-1f3ff.svg
new file mode 100644
index 0000000000..428a21dcb0
--- /dev/null
+++ b/public/emoji/1f931-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f931.svg b/public/emoji/1f931.svg
new file mode 100644
index 0000000000..6533abf711
--- /dev/null
+++ b/public/emoji/1f931.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f932-1f3fb.svg b/public/emoji/1f932-1f3fb.svg
new file mode 100644
index 0000000000..8d826d9751
--- /dev/null
+++ b/public/emoji/1f932-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f932-1f3fc.svg b/public/emoji/1f932-1f3fc.svg
new file mode 100644
index 0000000000..5ab9964ff3
--- /dev/null
+++ b/public/emoji/1f932-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f932-1f3fd.svg b/public/emoji/1f932-1f3fd.svg
new file mode 100644
index 0000000000..e64b1fba47
--- /dev/null
+++ b/public/emoji/1f932-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f932-1f3fe.svg b/public/emoji/1f932-1f3fe.svg
new file mode 100644
index 0000000000..34728c5ab9
--- /dev/null
+++ b/public/emoji/1f932-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f932-1f3ff.svg b/public/emoji/1f932-1f3ff.svg
new file mode 100644
index 0000000000..dff0c8e43e
--- /dev/null
+++ b/public/emoji/1f932-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f932.svg b/public/emoji/1f932.svg
new file mode 100644
index 0000000000..457e04c2c0
--- /dev/null
+++ b/public/emoji/1f932.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f933-1f3fb.png b/public/emoji/1f933-1f3fb.png
deleted file mode 100644
index 290e075b56..0000000000
Binary files a/public/emoji/1f933-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f933-1f3fb.svg b/public/emoji/1f933-1f3fb.svg
index 891ddd1322..1f0bbf5b46 100644
--- a/public/emoji/1f933-1f3fb.svg
+++ b/public/emoji/1f933-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f933-1f3fc.png b/public/emoji/1f933-1f3fc.png
deleted file mode 100644
index fcd9595b64..0000000000
Binary files a/public/emoji/1f933-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f933-1f3fc.svg b/public/emoji/1f933-1f3fc.svg
index 8e9e654444..db84bbe088 100644
--- a/public/emoji/1f933-1f3fc.svg
+++ b/public/emoji/1f933-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f933-1f3fd.png b/public/emoji/1f933-1f3fd.png
deleted file mode 100644
index f3a22fdf43..0000000000
Binary files a/public/emoji/1f933-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f933-1f3fd.svg b/public/emoji/1f933-1f3fd.svg
index d40f5f75d0..34d5842fec 100644
--- a/public/emoji/1f933-1f3fd.svg
+++ b/public/emoji/1f933-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f933-1f3fe.png b/public/emoji/1f933-1f3fe.png
deleted file mode 100644
index cdecf6d9f4..0000000000
Binary files a/public/emoji/1f933-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f933-1f3fe.svg b/public/emoji/1f933-1f3fe.svg
index d19b5ea811..1d313cf183 100644
--- a/public/emoji/1f933-1f3fe.svg
+++ b/public/emoji/1f933-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f933-1f3ff.png b/public/emoji/1f933-1f3ff.png
deleted file mode 100644
index 86acbb6c20..0000000000
Binary files a/public/emoji/1f933-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f933-1f3ff.svg b/public/emoji/1f933-1f3ff.svg
index 3be274394f..8badf905fc 100644
--- a/public/emoji/1f933-1f3ff.svg
+++ b/public/emoji/1f933-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f933.png b/public/emoji/1f933.png
deleted file mode 100644
index 6a1ba75c7e..0000000000
Binary files a/public/emoji/1f933.png and /dev/null differ
diff --git a/public/emoji/1f933.svg b/public/emoji/1f933.svg
index 009221c6ab..c031fc001e 100644
--- a/public/emoji/1f933.svg
+++ b/public/emoji/1f933.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f934-1f3fb.png b/public/emoji/1f934-1f3fb.png
deleted file mode 100644
index 849930c888..0000000000
Binary files a/public/emoji/1f934-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f934-1f3fb.svg b/public/emoji/1f934-1f3fb.svg
index 9688cead97..841a50ec3f 100644
--- a/public/emoji/1f934-1f3fb.svg
+++ b/public/emoji/1f934-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f934-1f3fc.png b/public/emoji/1f934-1f3fc.png
deleted file mode 100644
index 23d8b3b128..0000000000
Binary files a/public/emoji/1f934-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f934-1f3fc.svg b/public/emoji/1f934-1f3fc.svg
index cc27b532de..7624b4dae5 100644
--- a/public/emoji/1f934-1f3fc.svg
+++ b/public/emoji/1f934-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f934-1f3fd.png b/public/emoji/1f934-1f3fd.png
deleted file mode 100644
index db6dfff064..0000000000
Binary files a/public/emoji/1f934-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f934-1f3fd.svg b/public/emoji/1f934-1f3fd.svg
index 44a0524d41..43ee1573ef 100644
--- a/public/emoji/1f934-1f3fd.svg
+++ b/public/emoji/1f934-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f934-1f3fe.png b/public/emoji/1f934-1f3fe.png
deleted file mode 100644
index 8e10f8be6a..0000000000
Binary files a/public/emoji/1f934-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f934-1f3fe.svg b/public/emoji/1f934-1f3fe.svg
index 71c66cb95e..d2d890f828 100644
--- a/public/emoji/1f934-1f3fe.svg
+++ b/public/emoji/1f934-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f934-1f3ff.png b/public/emoji/1f934-1f3ff.png
deleted file mode 100644
index 138d4ea704..0000000000
Binary files a/public/emoji/1f934-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f934-1f3ff.svg b/public/emoji/1f934-1f3ff.svg
index d45a0f05aa..845726b1b0 100644
--- a/public/emoji/1f934-1f3ff.svg
+++ b/public/emoji/1f934-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f934.png b/public/emoji/1f934.png
deleted file mode 100644
index 38d69344c8..0000000000
Binary files a/public/emoji/1f934.png and /dev/null differ
diff --git a/public/emoji/1f934.svg b/public/emoji/1f934.svg
index a075a6b44c..700e4dd8ee 100644
--- a/public/emoji/1f934.svg
+++ b/public/emoji/1f934.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f935-1f3fb.png b/public/emoji/1f935-1f3fb.png
deleted file mode 100644
index 7b6b3acd99..0000000000
Binary files a/public/emoji/1f935-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f935-1f3fb.svg b/public/emoji/1f935-1f3fb.svg
index b5259d659d..76431d58f8 100644
--- a/public/emoji/1f935-1f3fb.svg
+++ b/public/emoji/1f935-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f935-1f3fc.png b/public/emoji/1f935-1f3fc.png
deleted file mode 100644
index 7975191b36..0000000000
Binary files a/public/emoji/1f935-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f935-1f3fc.svg b/public/emoji/1f935-1f3fc.svg
index d57750ac50..af8c199d5b 100644
--- a/public/emoji/1f935-1f3fc.svg
+++ b/public/emoji/1f935-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f935-1f3fd.png b/public/emoji/1f935-1f3fd.png
deleted file mode 100644
index a2816f600a..0000000000
Binary files a/public/emoji/1f935-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f935-1f3fd.svg b/public/emoji/1f935-1f3fd.svg
index 9c816e3033..3d796d873e 100644
--- a/public/emoji/1f935-1f3fd.svg
+++ b/public/emoji/1f935-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f935-1f3fe.png b/public/emoji/1f935-1f3fe.png
deleted file mode 100644
index ea8291760f..0000000000
Binary files a/public/emoji/1f935-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f935-1f3fe.svg b/public/emoji/1f935-1f3fe.svg
index e15d176572..bdfbf85df3 100644
--- a/public/emoji/1f935-1f3fe.svg
+++ b/public/emoji/1f935-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f935-1f3ff.png b/public/emoji/1f935-1f3ff.png
deleted file mode 100644
index c743e05fc5..0000000000
Binary files a/public/emoji/1f935-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f935-1f3ff.svg b/public/emoji/1f935-1f3ff.svg
index f8655dbe7b..da7f013d0d 100644
--- a/public/emoji/1f935-1f3ff.svg
+++ b/public/emoji/1f935-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f935.png b/public/emoji/1f935.png
deleted file mode 100644
index 5f7e9303f8..0000000000
Binary files a/public/emoji/1f935.png and /dev/null differ
diff --git a/public/emoji/1f935.svg b/public/emoji/1f935.svg
index 228b84a0a4..14d2a46ae4 100644
--- a/public/emoji/1f935.svg
+++ b/public/emoji/1f935.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f936-1f3fb.png b/public/emoji/1f936-1f3fb.png
deleted file mode 100644
index d8a695d703..0000000000
Binary files a/public/emoji/1f936-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f936-1f3fb.svg b/public/emoji/1f936-1f3fb.svg
index 42ba4e6339..de4f37f67b 100644
--- a/public/emoji/1f936-1f3fb.svg
+++ b/public/emoji/1f936-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f936-1f3fc.png b/public/emoji/1f936-1f3fc.png
deleted file mode 100644
index 0e17e8c51f..0000000000
Binary files a/public/emoji/1f936-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f936-1f3fc.svg b/public/emoji/1f936-1f3fc.svg
index 039a576614..b1a535d2fc 100644
--- a/public/emoji/1f936-1f3fc.svg
+++ b/public/emoji/1f936-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f936-1f3fd.png b/public/emoji/1f936-1f3fd.png
deleted file mode 100644
index c3ee4d1dfa..0000000000
Binary files a/public/emoji/1f936-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f936-1f3fd.svg b/public/emoji/1f936-1f3fd.svg
index a28a074bba..f99d06457c 100644
--- a/public/emoji/1f936-1f3fd.svg
+++ b/public/emoji/1f936-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f936-1f3fe.png b/public/emoji/1f936-1f3fe.png
deleted file mode 100644
index 68a556da2f..0000000000
Binary files a/public/emoji/1f936-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f936-1f3fe.svg b/public/emoji/1f936-1f3fe.svg
index bac1e4678a..44bbb6b573 100644
--- a/public/emoji/1f936-1f3fe.svg
+++ b/public/emoji/1f936-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f936-1f3ff.png b/public/emoji/1f936-1f3ff.png
deleted file mode 100644
index ccab3c40ff..0000000000
Binary files a/public/emoji/1f936-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f936-1f3ff.svg b/public/emoji/1f936-1f3ff.svg
index bd8eb1babd..b972cf0b23 100644
--- a/public/emoji/1f936-1f3ff.svg
+++ b/public/emoji/1f936-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f936.png b/public/emoji/1f936.png
deleted file mode 100644
index 9cf2458df1..0000000000
Binary files a/public/emoji/1f936.png and /dev/null differ
diff --git a/public/emoji/1f936.svg b/public/emoji/1f936.svg
index c2c0e9862e..aad36267b0 100644
--- a/public/emoji/1f936.svg
+++ b/public/emoji/1f936.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f937-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f937-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..3fb8aa608a
--- /dev/null
+++ b/public/emoji/1f937-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f937-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..6fa8b48608
--- /dev/null
+++ b/public/emoji/1f937-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937-1f3fb.png b/public/emoji/1f937-1f3fb.png
deleted file mode 100644
index 1c895e6446..0000000000
Binary files a/public/emoji/1f937-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f937-1f3fb.svg b/public/emoji/1f937-1f3fb.svg
index e654bcd6a7..3fb8aa608a 100644
--- a/public/emoji/1f937-1f3fb.svg
+++ b/public/emoji/1f937-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f937-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f937-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..df88b238b4
--- /dev/null
+++ b/public/emoji/1f937-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f937-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..9690008e39
--- /dev/null
+++ b/public/emoji/1f937-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937-1f3fc.png b/public/emoji/1f937-1f3fc.png
deleted file mode 100644
index 4e3ca8f8ba..0000000000
Binary files a/public/emoji/1f937-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f937-1f3fc.svg b/public/emoji/1f937-1f3fc.svg
index 8686bdf2bd..df88b238b4 100644
--- a/public/emoji/1f937-1f3fc.svg
+++ b/public/emoji/1f937-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f937-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f937-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..38047209f5
--- /dev/null
+++ b/public/emoji/1f937-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f937-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..7a7807e03b
--- /dev/null
+++ b/public/emoji/1f937-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937-1f3fd.png b/public/emoji/1f937-1f3fd.png
deleted file mode 100644
index d1b16a19bb..0000000000
Binary files a/public/emoji/1f937-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f937-1f3fd.svg b/public/emoji/1f937-1f3fd.svg
index ee50fbbd74..38047209f5 100644
--- a/public/emoji/1f937-1f3fd.svg
+++ b/public/emoji/1f937-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f937-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f937-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..d7c4702e3e
--- /dev/null
+++ b/public/emoji/1f937-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f937-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..8f2eb7f48f
--- /dev/null
+++ b/public/emoji/1f937-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937-1f3fe.png b/public/emoji/1f937-1f3fe.png
deleted file mode 100644
index 5fbef3f225..0000000000
Binary files a/public/emoji/1f937-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f937-1f3fe.svg b/public/emoji/1f937-1f3fe.svg
index 4a7bc965e3..d7c4702e3e 100644
--- a/public/emoji/1f937-1f3fe.svg
+++ b/public/emoji/1f937-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f937-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f937-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..769929c569
--- /dev/null
+++ b/public/emoji/1f937-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f937-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..7384bbb320
--- /dev/null
+++ b/public/emoji/1f937-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937-1f3ff.png b/public/emoji/1f937-1f3ff.png
deleted file mode 100644
index 4af2e28bc5..0000000000
Binary files a/public/emoji/1f937-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f937-1f3ff.svg b/public/emoji/1f937-1f3ff.svg
index 25bfd9ef71..769929c569 100644
--- a/public/emoji/1f937-1f3ff.svg
+++ b/public/emoji/1f937-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f937-200d-2640-fe0f.svg b/public/emoji/1f937-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..4277e9ddb4
--- /dev/null
+++ b/public/emoji/1f937-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937-200d-2642-fe0f.svg b/public/emoji/1f937-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..d202027282
--- /dev/null
+++ b/public/emoji/1f937-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f937.png b/public/emoji/1f937.png
deleted file mode 100644
index 76e63bfac7..0000000000
Binary files a/public/emoji/1f937.png and /dev/null differ
diff --git a/public/emoji/1f937.svg b/public/emoji/1f937.svg
index c2ab59fe01..4277e9ddb4 100644
--- a/public/emoji/1f937.svg
+++ b/public/emoji/1f937.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f938-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f938-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..11c961dfde
--- /dev/null
+++ b/public/emoji/1f938-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f938-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..beb1698b00
--- /dev/null
+++ b/public/emoji/1f938-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938-1f3fb.png b/public/emoji/1f938-1f3fb.png
deleted file mode 100644
index db6d65895f..0000000000
Binary files a/public/emoji/1f938-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f938-1f3fb.svg b/public/emoji/1f938-1f3fb.svg
index 41bb168869..11c961dfde 100644
--- a/public/emoji/1f938-1f3fb.svg
+++ b/public/emoji/1f938-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f938-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f938-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..5e568ea251
--- /dev/null
+++ b/public/emoji/1f938-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f938-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..136338d4ab
--- /dev/null
+++ b/public/emoji/1f938-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938-1f3fc.png b/public/emoji/1f938-1f3fc.png
deleted file mode 100644
index e00ffbc27a..0000000000
Binary files a/public/emoji/1f938-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f938-1f3fc.svg b/public/emoji/1f938-1f3fc.svg
index 17ccde4bb5..5e568ea251 100644
--- a/public/emoji/1f938-1f3fc.svg
+++ b/public/emoji/1f938-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f938-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f938-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..86abb59e3c
--- /dev/null
+++ b/public/emoji/1f938-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f938-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..e580c1f446
--- /dev/null
+++ b/public/emoji/1f938-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938-1f3fd.png b/public/emoji/1f938-1f3fd.png
deleted file mode 100644
index 49321be391..0000000000
Binary files a/public/emoji/1f938-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f938-1f3fd.svg b/public/emoji/1f938-1f3fd.svg
index e76db7a6ea..86abb59e3c 100644
--- a/public/emoji/1f938-1f3fd.svg
+++ b/public/emoji/1f938-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f938-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f938-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..06c5f27ce3
--- /dev/null
+++ b/public/emoji/1f938-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f938-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ee81b8e943
--- /dev/null
+++ b/public/emoji/1f938-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938-1f3fe.png b/public/emoji/1f938-1f3fe.png
deleted file mode 100644
index d4562b5e3d..0000000000
Binary files a/public/emoji/1f938-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f938-1f3fe.svg b/public/emoji/1f938-1f3fe.svg
index 83a3dd3bd7..06c5f27ce3 100644
--- a/public/emoji/1f938-1f3fe.svg
+++ b/public/emoji/1f938-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f938-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f938-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..492866a6d9
--- /dev/null
+++ b/public/emoji/1f938-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f938-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..3846f7e814
--- /dev/null
+++ b/public/emoji/1f938-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938-1f3ff.png b/public/emoji/1f938-1f3ff.png
deleted file mode 100644
index 6e09a87076..0000000000
Binary files a/public/emoji/1f938-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f938-1f3ff.svg b/public/emoji/1f938-1f3ff.svg
index 347df3bc0e..492866a6d9 100644
--- a/public/emoji/1f938-1f3ff.svg
+++ b/public/emoji/1f938-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f938-200d-2640-fe0f.svg b/public/emoji/1f938-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..d4108d7067
--- /dev/null
+++ b/public/emoji/1f938-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938-200d-2642-fe0f.svg b/public/emoji/1f938-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1335d4f0a4
--- /dev/null
+++ b/public/emoji/1f938-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f938.png b/public/emoji/1f938.png
deleted file mode 100644
index cbcaa57825..0000000000
Binary files a/public/emoji/1f938.png and /dev/null differ
diff --git a/public/emoji/1f938.svg b/public/emoji/1f938.svg
index d3c2a1ad83..d4108d7067 100644
--- a/public/emoji/1f938.svg
+++ b/public/emoji/1f938.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f939-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f939-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..ecbe04f58d
--- /dev/null
+++ b/public/emoji/1f939-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f939-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..cc2e8f3dcc
--- /dev/null
+++ b/public/emoji/1f939-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939-1f3fb.png b/public/emoji/1f939-1f3fb.png
deleted file mode 100644
index c18eda4003..0000000000
Binary files a/public/emoji/1f939-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f939-1f3fb.svg b/public/emoji/1f939-1f3fb.svg
index db37b39a0b..cc2e8f3dcc 100644
--- a/public/emoji/1f939-1f3fb.svg
+++ b/public/emoji/1f939-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f939-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f939-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..54b97ed10f
--- /dev/null
+++ b/public/emoji/1f939-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f939-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..883eb1cde9
--- /dev/null
+++ b/public/emoji/1f939-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939-1f3fc.png b/public/emoji/1f939-1f3fc.png
deleted file mode 100644
index de3b7a555b..0000000000
Binary files a/public/emoji/1f939-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f939-1f3fc.svg b/public/emoji/1f939-1f3fc.svg
index bb834f73f8..883eb1cde9 100644
--- a/public/emoji/1f939-1f3fc.svg
+++ b/public/emoji/1f939-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f939-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f939-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..b49b5d176b
--- /dev/null
+++ b/public/emoji/1f939-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f939-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1675762c87
--- /dev/null
+++ b/public/emoji/1f939-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939-1f3fd.png b/public/emoji/1f939-1f3fd.png
deleted file mode 100644
index 74ab6d8545..0000000000
Binary files a/public/emoji/1f939-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f939-1f3fd.svg b/public/emoji/1f939-1f3fd.svg
index 8c2b703d85..1675762c87 100644
--- a/public/emoji/1f939-1f3fd.svg
+++ b/public/emoji/1f939-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f939-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f939-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..9fa47f6ed3
--- /dev/null
+++ b/public/emoji/1f939-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f939-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..fa0ea01556
--- /dev/null
+++ b/public/emoji/1f939-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939-1f3fe.png b/public/emoji/1f939-1f3fe.png
deleted file mode 100644
index 1c57823203..0000000000
Binary files a/public/emoji/1f939-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f939-1f3fe.svg b/public/emoji/1f939-1f3fe.svg
index fcf0992085..fa0ea01556 100644
--- a/public/emoji/1f939-1f3fe.svg
+++ b/public/emoji/1f939-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f939-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f939-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..e2128cc2e1
--- /dev/null
+++ b/public/emoji/1f939-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f939-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ec09828104
--- /dev/null
+++ b/public/emoji/1f939-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939-1f3ff.png b/public/emoji/1f939-1f3ff.png
deleted file mode 100644
index c343d6ee98..0000000000
Binary files a/public/emoji/1f939-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f939-1f3ff.svg b/public/emoji/1f939-1f3ff.svg
index b1d6168a07..ec09828104 100644
--- a/public/emoji/1f939-1f3ff.svg
+++ b/public/emoji/1f939-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f939-200d-2640-fe0f.svg b/public/emoji/1f939-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..c2f071c5be
--- /dev/null
+++ b/public/emoji/1f939-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939-200d-2642-fe0f.svg b/public/emoji/1f939-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..532cd15cf6
--- /dev/null
+++ b/public/emoji/1f939-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f939.png b/public/emoji/1f939.png
deleted file mode 100644
index a37f6224a4..0000000000
Binary files a/public/emoji/1f939.png and /dev/null differ
diff --git a/public/emoji/1f939.svg b/public/emoji/1f939.svg
index 3859ff275f..532cd15cf6 100644
--- a/public/emoji/1f939.svg
+++ b/public/emoji/1f939.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93a.png b/public/emoji/1f93a.png
deleted file mode 100644
index 5288c920eb..0000000000
Binary files a/public/emoji/1f93a.png and /dev/null differ
diff --git a/public/emoji/1f93a.svg b/public/emoji/1f93a.svg
index f566e0605c..663bae152a 100644
--- a/public/emoji/1f93a.svg
+++ b/public/emoji/1f93a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93c-1f3fb.png b/public/emoji/1f93c-1f3fb.png
deleted file mode 100644
index 379070fd03..0000000000
Binary files a/public/emoji/1f93c-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f93c-1f3fb.svg b/public/emoji/1f93c-1f3fb.svg
deleted file mode 100644
index 107ff2667e..0000000000
--- a/public/emoji/1f93c-1f3fb.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f93c-1f3fc.png b/public/emoji/1f93c-1f3fc.png
deleted file mode 100644
index 6863ea9209..0000000000
Binary files a/public/emoji/1f93c-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f93c-1f3fc.svg b/public/emoji/1f93c-1f3fc.svg
deleted file mode 100644
index e417df2d85..0000000000
--- a/public/emoji/1f93c-1f3fc.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f93c-1f3fd.png b/public/emoji/1f93c-1f3fd.png
deleted file mode 100644
index b7e6291012..0000000000
Binary files a/public/emoji/1f93c-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f93c-1f3fd.svg b/public/emoji/1f93c-1f3fd.svg
deleted file mode 100644
index 5b897f9dbb..0000000000
--- a/public/emoji/1f93c-1f3fd.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f93c-1f3fe.png b/public/emoji/1f93c-1f3fe.png
deleted file mode 100644
index 750f958923..0000000000
Binary files a/public/emoji/1f93c-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f93c-1f3fe.svg b/public/emoji/1f93c-1f3fe.svg
deleted file mode 100644
index 7f34250217..0000000000
--- a/public/emoji/1f93c-1f3fe.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f93c-1f3ff.png b/public/emoji/1f93c-1f3ff.png
deleted file mode 100644
index 36ab9bb3f4..0000000000
Binary files a/public/emoji/1f93c-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f93c-1f3ff.svg b/public/emoji/1f93c-1f3ff.svg
deleted file mode 100644
index a4e5ecc507..0000000000
--- a/public/emoji/1f93c-1f3ff.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/emoji/1f93c-200d-2640-fe0f.svg b/public/emoji/1f93c-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..2380abf71e
--- /dev/null
+++ b/public/emoji/1f93c-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93c-200d-2642-fe0f.svg b/public/emoji/1f93c-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..d568b453c0
--- /dev/null
+++ b/public/emoji/1f93c-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93c.png b/public/emoji/1f93c.png
deleted file mode 100644
index 71e67cfad8..0000000000
Binary files a/public/emoji/1f93c.png and /dev/null differ
diff --git a/public/emoji/1f93c.svg b/public/emoji/1f93c.svg
index 694ce76624..d568b453c0 100644
--- a/public/emoji/1f93c.svg
+++ b/public/emoji/1f93c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93d-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f93d-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..c725abbce3
--- /dev/null
+++ b/public/emoji/1f93d-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f93d-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..a7515d5dbc
--- /dev/null
+++ b/public/emoji/1f93d-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d-1f3fb.png b/public/emoji/1f93d-1f3fb.png
deleted file mode 100644
index bed1a908d6..0000000000
Binary files a/public/emoji/1f93d-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f93d-1f3fb.svg b/public/emoji/1f93d-1f3fb.svg
index ab8d140df0..a7515d5dbc 100644
--- a/public/emoji/1f93d-1f3fb.svg
+++ b/public/emoji/1f93d-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93d-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f93d-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..80bc3501b1
--- /dev/null
+++ b/public/emoji/1f93d-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f93d-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..b304277916
--- /dev/null
+++ b/public/emoji/1f93d-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d-1f3fc.png b/public/emoji/1f93d-1f3fc.png
deleted file mode 100644
index ec5a43b4d4..0000000000
Binary files a/public/emoji/1f93d-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f93d-1f3fc.svg b/public/emoji/1f93d-1f3fc.svg
index 85395e007b..b304277916 100644
--- a/public/emoji/1f93d-1f3fc.svg
+++ b/public/emoji/1f93d-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93d-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f93d-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..cf169c961b
--- /dev/null
+++ b/public/emoji/1f93d-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f93d-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..2e55ad5707
--- /dev/null
+++ b/public/emoji/1f93d-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d-1f3fd.png b/public/emoji/1f93d-1f3fd.png
deleted file mode 100644
index b081a4a5a9..0000000000
Binary files a/public/emoji/1f93d-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f93d-1f3fd.svg b/public/emoji/1f93d-1f3fd.svg
index 3977b73773..2e55ad5707 100644
--- a/public/emoji/1f93d-1f3fd.svg
+++ b/public/emoji/1f93d-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93d-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f93d-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..605d328d9b
--- /dev/null
+++ b/public/emoji/1f93d-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f93d-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..5459f0f98b
--- /dev/null
+++ b/public/emoji/1f93d-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d-1f3fe.png b/public/emoji/1f93d-1f3fe.png
deleted file mode 100644
index 82cfbc3b0c..0000000000
Binary files a/public/emoji/1f93d-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f93d-1f3fe.svg b/public/emoji/1f93d-1f3fe.svg
index d25f2bfb0c..5459f0f98b 100644
--- a/public/emoji/1f93d-1f3fe.svg
+++ b/public/emoji/1f93d-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93d-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f93d-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..c01fa423bd
--- /dev/null
+++ b/public/emoji/1f93d-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f93d-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..c84f230dce
--- /dev/null
+++ b/public/emoji/1f93d-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d-1f3ff.png b/public/emoji/1f93d-1f3ff.png
deleted file mode 100644
index bd3366eb06..0000000000
Binary files a/public/emoji/1f93d-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f93d-1f3ff.svg b/public/emoji/1f93d-1f3ff.svg
index 16cd1bbe49..c84f230dce 100644
--- a/public/emoji/1f93d-1f3ff.svg
+++ b/public/emoji/1f93d-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93d-200d-2640-fe0f.svg b/public/emoji/1f93d-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..4f22a638fc
--- /dev/null
+++ b/public/emoji/1f93d-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d-200d-2642-fe0f.svg b/public/emoji/1f93d-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1cbe1e8e38
--- /dev/null
+++ b/public/emoji/1f93d-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93d.png b/public/emoji/1f93d.png
deleted file mode 100644
index cb44576780..0000000000
Binary files a/public/emoji/1f93d.png and /dev/null differ
diff --git a/public/emoji/1f93d.svg b/public/emoji/1f93d.svg
index 1ba0ab89ed..1cbe1e8e38 100644
--- a/public/emoji/1f93d.svg
+++ b/public/emoji/1f93d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93e-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f93e-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..cc9a5e8377
--- /dev/null
+++ b/public/emoji/1f93e-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f93e-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..b7f07e45f9
--- /dev/null
+++ b/public/emoji/1f93e-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e-1f3fb.png b/public/emoji/1f93e-1f3fb.png
deleted file mode 100644
index c26cac2df9..0000000000
Binary files a/public/emoji/1f93e-1f3fb.png and /dev/null differ
diff --git a/public/emoji/1f93e-1f3fb.svg b/public/emoji/1f93e-1f3fb.svg
index 58ad79fadd..cc9a5e8377 100644
--- a/public/emoji/1f93e-1f3fb.svg
+++ b/public/emoji/1f93e-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93e-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f93e-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..8c0d7576f3
--- /dev/null
+++ b/public/emoji/1f93e-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f93e-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..2d25b7a5bd
--- /dev/null
+++ b/public/emoji/1f93e-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e-1f3fc.png b/public/emoji/1f93e-1f3fc.png
deleted file mode 100644
index 7baaf95a9a..0000000000
Binary files a/public/emoji/1f93e-1f3fc.png and /dev/null differ
diff --git a/public/emoji/1f93e-1f3fc.svg b/public/emoji/1f93e-1f3fc.svg
index fb609bac76..8c0d7576f3 100644
--- a/public/emoji/1f93e-1f3fc.svg
+++ b/public/emoji/1f93e-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93e-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f93e-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..1aa9f7d2d2
--- /dev/null
+++ b/public/emoji/1f93e-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f93e-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..e270a92f94
--- /dev/null
+++ b/public/emoji/1f93e-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e-1f3fd.png b/public/emoji/1f93e-1f3fd.png
deleted file mode 100644
index 0e3a37c3d4..0000000000
Binary files a/public/emoji/1f93e-1f3fd.png and /dev/null differ
diff --git a/public/emoji/1f93e-1f3fd.svg b/public/emoji/1f93e-1f3fd.svg
index facf15d779..1aa9f7d2d2 100644
--- a/public/emoji/1f93e-1f3fd.svg
+++ b/public/emoji/1f93e-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93e-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f93e-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..0d46f89068
--- /dev/null
+++ b/public/emoji/1f93e-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f93e-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..5e0c971405
--- /dev/null
+++ b/public/emoji/1f93e-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e-1f3fe.png b/public/emoji/1f93e-1f3fe.png
deleted file mode 100644
index e1233f3826..0000000000
Binary files a/public/emoji/1f93e-1f3fe.png and /dev/null differ
diff --git a/public/emoji/1f93e-1f3fe.svg b/public/emoji/1f93e-1f3fe.svg
index 2b3023fce5..0d46f89068 100644
--- a/public/emoji/1f93e-1f3fe.svg
+++ b/public/emoji/1f93e-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93e-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f93e-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..34be64b016
--- /dev/null
+++ b/public/emoji/1f93e-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f93e-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..a868dcc319
--- /dev/null
+++ b/public/emoji/1f93e-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e-1f3ff.png b/public/emoji/1f93e-1f3ff.png
deleted file mode 100644
index 6b1eb9b64b..0000000000
Binary files a/public/emoji/1f93e-1f3ff.png and /dev/null differ
diff --git a/public/emoji/1f93e-1f3ff.svg b/public/emoji/1f93e-1f3ff.svg
index 65220a5394..34be64b016 100644
--- a/public/emoji/1f93e-1f3ff.svg
+++ b/public/emoji/1f93e-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f93e-200d-2640-fe0f.svg b/public/emoji/1f93e-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..817bb49f59
--- /dev/null
+++ b/public/emoji/1f93e-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e-200d-2642-fe0f.svg b/public/emoji/1f93e-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..4dfcc53762
--- /dev/null
+++ b/public/emoji/1f93e-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f93e.png b/public/emoji/1f93e.png
deleted file mode 100644
index 1152f1344c..0000000000
Binary files a/public/emoji/1f93e.png and /dev/null differ
diff --git a/public/emoji/1f93e.svg b/public/emoji/1f93e.svg
index d3a20ac8a2..817bb49f59 100644
--- a/public/emoji/1f93e.svg
+++ b/public/emoji/1f93e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f940.png b/public/emoji/1f940.png
deleted file mode 100644
index 62412b143a..0000000000
Binary files a/public/emoji/1f940.png and /dev/null differ
diff --git a/public/emoji/1f940.svg b/public/emoji/1f940.svg
index dda76b81bc..08d5986def 100644
--- a/public/emoji/1f940.svg
+++ b/public/emoji/1f940.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f941.png b/public/emoji/1f941.png
deleted file mode 100644
index b038727cc9..0000000000
Binary files a/public/emoji/1f941.png and /dev/null differ
diff --git a/public/emoji/1f941.svg b/public/emoji/1f941.svg
index 3a07224db3..7a7027b7e3 100644
--- a/public/emoji/1f941.svg
+++ b/public/emoji/1f941.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f942.png b/public/emoji/1f942.png
deleted file mode 100644
index 31937ae939..0000000000
Binary files a/public/emoji/1f942.png and /dev/null differ
diff --git a/public/emoji/1f942.svg b/public/emoji/1f942.svg
index 41384a1ac3..1540a6b852 100644
--- a/public/emoji/1f942.svg
+++ b/public/emoji/1f942.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f943.png b/public/emoji/1f943.png
deleted file mode 100644
index 7bf0922987..0000000000
Binary files a/public/emoji/1f943.png and /dev/null differ
diff --git a/public/emoji/1f943.svg b/public/emoji/1f943.svg
index 025cd0b8a3..dc49c48728 100644
--- a/public/emoji/1f943.svg
+++ b/public/emoji/1f943.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f944.png b/public/emoji/1f944.png
deleted file mode 100644
index 3c4da766ae..0000000000
Binary files a/public/emoji/1f944.png and /dev/null differ
diff --git a/public/emoji/1f944.svg b/public/emoji/1f944.svg
index f69528ca7a..d17ec31ca4 100644
--- a/public/emoji/1f944.svg
+++ b/public/emoji/1f944.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f945.png b/public/emoji/1f945.png
deleted file mode 100644
index df3a53da0f..0000000000
Binary files a/public/emoji/1f945.png and /dev/null differ
diff --git a/public/emoji/1f945.svg b/public/emoji/1f945.svg
index 181c852244..6e1648f308 100644
--- a/public/emoji/1f945.svg
+++ b/public/emoji/1f945.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f947.png b/public/emoji/1f947.png
deleted file mode 100644
index 15612b6649..0000000000
Binary files a/public/emoji/1f947.png and /dev/null differ
diff --git a/public/emoji/1f947.svg b/public/emoji/1f947.svg
index abb7620a09..6403a34712 100644
--- a/public/emoji/1f947.svg
+++ b/public/emoji/1f947.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f948.png b/public/emoji/1f948.png
deleted file mode 100644
index 17b011268b..0000000000
Binary files a/public/emoji/1f948.png and /dev/null differ
diff --git a/public/emoji/1f948.svg b/public/emoji/1f948.svg
index 2da21e1386..75283797e1 100644
--- a/public/emoji/1f948.svg
+++ b/public/emoji/1f948.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f949.png b/public/emoji/1f949.png
deleted file mode 100644
index 636e04a595..0000000000
Binary files a/public/emoji/1f949.png and /dev/null differ
diff --git a/public/emoji/1f949.svg b/public/emoji/1f949.svg
index 1322b555fe..d3f5f03f8b 100644
--- a/public/emoji/1f949.svg
+++ b/public/emoji/1f949.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f94a.png b/public/emoji/1f94a.png
deleted file mode 100644
index 9838f24e51..0000000000
Binary files a/public/emoji/1f94a.png and /dev/null differ
diff --git a/public/emoji/1f94a.svg b/public/emoji/1f94a.svg
index 752af12e30..9821f08b97 100644
--- a/public/emoji/1f94a.svg
+++ b/public/emoji/1f94a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f94b.png b/public/emoji/1f94b.png
deleted file mode 100644
index 8d6114761f..0000000000
Binary files a/public/emoji/1f94b.png and /dev/null differ
diff --git a/public/emoji/1f94b.svg b/public/emoji/1f94b.svg
index 44fc92b840..f4c48eaf79 100644
--- a/public/emoji/1f94b.svg
+++ b/public/emoji/1f94b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f94c.svg b/public/emoji/1f94c.svg
new file mode 100644
index 0000000000..1d4067c6af
--- /dev/null
+++ b/public/emoji/1f94c.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f950.png b/public/emoji/1f950.png
deleted file mode 100644
index fb33feb1a3..0000000000
Binary files a/public/emoji/1f950.png and /dev/null differ
diff --git a/public/emoji/1f950.svg b/public/emoji/1f950.svg
index 184e56c466..4c325029a1 100644
--- a/public/emoji/1f950.svg
+++ b/public/emoji/1f950.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f951.png b/public/emoji/1f951.png
deleted file mode 100644
index 06f0d124ae..0000000000
Binary files a/public/emoji/1f951.png and /dev/null differ
diff --git a/public/emoji/1f951.svg b/public/emoji/1f951.svg
index b8c26d2a41..093bf6984d 100644
--- a/public/emoji/1f951.svg
+++ b/public/emoji/1f951.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f952.png b/public/emoji/1f952.png
deleted file mode 100644
index 500807059d..0000000000
Binary files a/public/emoji/1f952.png and /dev/null differ
diff --git a/public/emoji/1f952.svg b/public/emoji/1f952.svg
index d72b1ceba0..72e66de084 100644
--- a/public/emoji/1f952.svg
+++ b/public/emoji/1f952.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f953.png b/public/emoji/1f953.png
deleted file mode 100644
index f38a485fbe..0000000000
Binary files a/public/emoji/1f953.png and /dev/null differ
diff --git a/public/emoji/1f953.svg b/public/emoji/1f953.svg
index d702dc50c4..9617ade964 100644
--- a/public/emoji/1f953.svg
+++ b/public/emoji/1f953.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f954.png b/public/emoji/1f954.png
deleted file mode 100644
index 70350ca2c0..0000000000
Binary files a/public/emoji/1f954.png and /dev/null differ
diff --git a/public/emoji/1f954.svg b/public/emoji/1f954.svg
index 15d99ff471..4f3744519e 100644
--- a/public/emoji/1f954.svg
+++ b/public/emoji/1f954.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f955.png b/public/emoji/1f955.png
deleted file mode 100644
index c68829b58e..0000000000
Binary files a/public/emoji/1f955.png and /dev/null differ
diff --git a/public/emoji/1f955.svg b/public/emoji/1f955.svg
index 468c7a216b..cf125d4f11 100644
--- a/public/emoji/1f955.svg
+++ b/public/emoji/1f955.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f956.png b/public/emoji/1f956.png
deleted file mode 100644
index 4c2c563982..0000000000
Binary files a/public/emoji/1f956.png and /dev/null differ
diff --git a/public/emoji/1f956.svg b/public/emoji/1f956.svg
index dc1e86fc37..4e00b5746f 100644
--- a/public/emoji/1f956.svg
+++ b/public/emoji/1f956.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f957.png b/public/emoji/1f957.png
deleted file mode 100644
index c89f934115..0000000000
Binary files a/public/emoji/1f957.png and /dev/null differ
diff --git a/public/emoji/1f957.svg b/public/emoji/1f957.svg
index e0a2a01edb..6368a14b46 100644
--- a/public/emoji/1f957.svg
+++ b/public/emoji/1f957.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f958.png b/public/emoji/1f958.png
deleted file mode 100644
index 663a1006ac..0000000000
Binary files a/public/emoji/1f958.png and /dev/null differ
diff --git a/public/emoji/1f958.svg b/public/emoji/1f958.svg
index 2062eae7fb..a90551e1c2 100644
--- a/public/emoji/1f958.svg
+++ b/public/emoji/1f958.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f959.png b/public/emoji/1f959.png
deleted file mode 100644
index a2e10df40a..0000000000
Binary files a/public/emoji/1f959.png and /dev/null differ
diff --git a/public/emoji/1f959.svg b/public/emoji/1f959.svg
index 8be63ab158..dcf10698f8 100644
--- a/public/emoji/1f959.svg
+++ b/public/emoji/1f959.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f95a.png b/public/emoji/1f95a.png
deleted file mode 100644
index c171974d99..0000000000
Binary files a/public/emoji/1f95a.png and /dev/null differ
diff --git a/public/emoji/1f95a.svg b/public/emoji/1f95a.svg
index 005e3e6af0..292ed7e8ef 100644
--- a/public/emoji/1f95a.svg
+++ b/public/emoji/1f95a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f95b.png b/public/emoji/1f95b.png
deleted file mode 100644
index e4fcf2e64f..0000000000
Binary files a/public/emoji/1f95b.png and /dev/null differ
diff --git a/public/emoji/1f95b.svg b/public/emoji/1f95b.svg
index 877c0521c6..7157c078b8 100644
--- a/public/emoji/1f95b.svg
+++ b/public/emoji/1f95b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f95c.png b/public/emoji/1f95c.png
deleted file mode 100644
index b64fadad01..0000000000
Binary files a/public/emoji/1f95c.png and /dev/null differ
diff --git a/public/emoji/1f95c.svg b/public/emoji/1f95c.svg
index 3866204ec2..3f8f0244fd 100644
--- a/public/emoji/1f95c.svg
+++ b/public/emoji/1f95c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f95d.png b/public/emoji/1f95d.png
deleted file mode 100644
index dfbd825807..0000000000
Binary files a/public/emoji/1f95d.png and /dev/null differ
diff --git a/public/emoji/1f95d.svg b/public/emoji/1f95d.svg
index d60d50f87e..f25a06289e 100644
--- a/public/emoji/1f95d.svg
+++ b/public/emoji/1f95d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f95e.png b/public/emoji/1f95e.png
deleted file mode 100644
index 6223d1a28e..0000000000
Binary files a/public/emoji/1f95e.png and /dev/null differ
diff --git a/public/emoji/1f95e.svg b/public/emoji/1f95e.svg
index 603a3470d7..1a1769b0c0 100644
--- a/public/emoji/1f95e.svg
+++ b/public/emoji/1f95e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f95f.svg b/public/emoji/1f95f.svg
new file mode 100644
index 0000000000..9044b39980
--- /dev/null
+++ b/public/emoji/1f95f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f960.svg b/public/emoji/1f960.svg
new file mode 100644
index 0000000000..bc2052056f
--- /dev/null
+++ b/public/emoji/1f960.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f961.svg b/public/emoji/1f961.svg
new file mode 100644
index 0000000000..81fbe98f57
--- /dev/null
+++ b/public/emoji/1f961.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f962.svg b/public/emoji/1f962.svg
new file mode 100644
index 0000000000..fc03175484
--- /dev/null
+++ b/public/emoji/1f962.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f963.svg b/public/emoji/1f963.svg
new file mode 100644
index 0000000000..c5d61ee6c9
--- /dev/null
+++ b/public/emoji/1f963.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f964.svg b/public/emoji/1f964.svg
new file mode 100644
index 0000000000..a229dbbcdf
--- /dev/null
+++ b/public/emoji/1f964.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f965.svg b/public/emoji/1f965.svg
new file mode 100644
index 0000000000..d80d0d9f45
--- /dev/null
+++ b/public/emoji/1f965.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f966.svg b/public/emoji/1f966.svg
new file mode 100644
index 0000000000..e0ae9476d2
--- /dev/null
+++ b/public/emoji/1f966.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f967.svg b/public/emoji/1f967.svg
new file mode 100644
index 0000000000..e4c0fc39a7
--- /dev/null
+++ b/public/emoji/1f967.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f968.svg b/public/emoji/1f968.svg
new file mode 100644
index 0000000000..7aaef3251c
--- /dev/null
+++ b/public/emoji/1f968.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f969.svg b/public/emoji/1f969.svg
new file mode 100644
index 0000000000..3b9d7741d5
--- /dev/null
+++ b/public/emoji/1f969.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f96a.svg b/public/emoji/1f96a.svg
new file mode 100644
index 0000000000..c708089af1
--- /dev/null
+++ b/public/emoji/1f96a.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f96b.svg b/public/emoji/1f96b.svg
new file mode 100644
index 0000000000..bef3815b1e
--- /dev/null
+++ b/public/emoji/1f96b.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f980.png b/public/emoji/1f980.png
deleted file mode 100644
index 19f3047ab6..0000000000
Binary files a/public/emoji/1f980.png and /dev/null differ
diff --git a/public/emoji/1f980.svg b/public/emoji/1f980.svg
index 1f7936f4a7..5c98af4a57 100644
--- a/public/emoji/1f980.svg
+++ b/public/emoji/1f980.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f981.png b/public/emoji/1f981.png
deleted file mode 100644
index 5062ab47ec..0000000000
Binary files a/public/emoji/1f981.png and /dev/null differ
diff --git a/public/emoji/1f981.svg b/public/emoji/1f981.svg
index 965e4ef210..51707e184a 100644
--- a/public/emoji/1f981.svg
+++ b/public/emoji/1f981.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f982.png b/public/emoji/1f982.png
deleted file mode 100644
index 449a6b281c..0000000000
Binary files a/public/emoji/1f982.png and /dev/null differ
diff --git a/public/emoji/1f982.svg b/public/emoji/1f982.svg
index a1afc315cd..c6c3fe93ff 100644
--- a/public/emoji/1f982.svg
+++ b/public/emoji/1f982.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f983.png b/public/emoji/1f983.png
deleted file mode 100644
index 344af94c9e..0000000000
Binary files a/public/emoji/1f983.png and /dev/null differ
diff --git a/public/emoji/1f983.svg b/public/emoji/1f983.svg
index 59cc30fe36..c35118cc4a 100644
--- a/public/emoji/1f983.svg
+++ b/public/emoji/1f983.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f984.png b/public/emoji/1f984.png
deleted file mode 100644
index 05a97969f7..0000000000
Binary files a/public/emoji/1f984.png and /dev/null differ
diff --git a/public/emoji/1f984.svg b/public/emoji/1f984.svg
index 507937d7a0..a996b38614 100644
--- a/public/emoji/1f984.svg
+++ b/public/emoji/1f984.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f985.png b/public/emoji/1f985.png
deleted file mode 100644
index 4f277debee..0000000000
Binary files a/public/emoji/1f985.png and /dev/null differ
diff --git a/public/emoji/1f985.svg b/public/emoji/1f985.svg
index afba6f983f..c96b06e7af 100644
--- a/public/emoji/1f985.svg
+++ b/public/emoji/1f985.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f986.png b/public/emoji/1f986.png
deleted file mode 100644
index 74330b77ca..0000000000
Binary files a/public/emoji/1f986.png and /dev/null differ
diff --git a/public/emoji/1f986.svg b/public/emoji/1f986.svg
index ee80f71d87..d047b47cb5 100644
--- a/public/emoji/1f986.svg
+++ b/public/emoji/1f986.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f987.png b/public/emoji/1f987.png
deleted file mode 100644
index 3152c047e0..0000000000
Binary files a/public/emoji/1f987.png and /dev/null differ
diff --git a/public/emoji/1f987.svg b/public/emoji/1f987.svg
index 77c26c9842..2a73047926 100644
--- a/public/emoji/1f987.svg
+++ b/public/emoji/1f987.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f988.png b/public/emoji/1f988.png
deleted file mode 100644
index c75076d57d..0000000000
Binary files a/public/emoji/1f988.png and /dev/null differ
diff --git a/public/emoji/1f988.svg b/public/emoji/1f988.svg
index c1fffcd291..81409bbc4d 100644
--- a/public/emoji/1f988.svg
+++ b/public/emoji/1f988.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f989.png b/public/emoji/1f989.png
deleted file mode 100644
index fa6815480c..0000000000
Binary files a/public/emoji/1f989.png and /dev/null differ
diff --git a/public/emoji/1f989.svg b/public/emoji/1f989.svg
index bde42fe1c9..10a2cbaa25 100644
--- a/public/emoji/1f989.svg
+++ b/public/emoji/1f989.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f98a.png b/public/emoji/1f98a.png
deleted file mode 100644
index 1ab339bf05..0000000000
Binary files a/public/emoji/1f98a.png and /dev/null differ
diff --git a/public/emoji/1f98a.svg b/public/emoji/1f98a.svg
index 28f9072f55..8603d9180e 100644
--- a/public/emoji/1f98a.svg
+++ b/public/emoji/1f98a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f98b.png b/public/emoji/1f98b.png
deleted file mode 100644
index 5631fe9922..0000000000
Binary files a/public/emoji/1f98b.png and /dev/null differ
diff --git a/public/emoji/1f98b.svg b/public/emoji/1f98b.svg
index 794e94d395..457b722a52 100644
--- a/public/emoji/1f98b.svg
+++ b/public/emoji/1f98b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f98c.png b/public/emoji/1f98c.png
deleted file mode 100644
index d8698195ff..0000000000
Binary files a/public/emoji/1f98c.png and /dev/null differ
diff --git a/public/emoji/1f98c.svg b/public/emoji/1f98c.svg
index a70a64169e..5a753e0d1b 100644
--- a/public/emoji/1f98c.svg
+++ b/public/emoji/1f98c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f98d.png b/public/emoji/1f98d.png
deleted file mode 100644
index acc51e1362..0000000000
Binary files a/public/emoji/1f98d.png and /dev/null differ
diff --git a/public/emoji/1f98d.svg b/public/emoji/1f98d.svg
index 2c27214fd6..8cf5a02bba 100644
--- a/public/emoji/1f98d.svg
+++ b/public/emoji/1f98d.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f98e.png b/public/emoji/1f98e.png
deleted file mode 100644
index 8363876050..0000000000
Binary files a/public/emoji/1f98e.png and /dev/null differ
diff --git a/public/emoji/1f98e.svg b/public/emoji/1f98e.svg
index 4f15955dbc..21f1b5d27a 100644
--- a/public/emoji/1f98e.svg
+++ b/public/emoji/1f98e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f98f.png b/public/emoji/1f98f.png
deleted file mode 100644
index 12f4e0d9d9..0000000000
Binary files a/public/emoji/1f98f.png and /dev/null differ
diff --git a/public/emoji/1f98f.svg b/public/emoji/1f98f.svg
index 7329b384e6..cda2c04d03 100644
--- a/public/emoji/1f98f.svg
+++ b/public/emoji/1f98f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f990.png b/public/emoji/1f990.png
deleted file mode 100644
index 49eff28a71..0000000000
Binary files a/public/emoji/1f990.png and /dev/null differ
diff --git a/public/emoji/1f990.svg b/public/emoji/1f990.svg
index 7cf07ad10b..741d889d71 100644
--- a/public/emoji/1f990.svg
+++ b/public/emoji/1f990.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f991.png b/public/emoji/1f991.png
deleted file mode 100644
index d2af223f0c..0000000000
Binary files a/public/emoji/1f991.png and /dev/null differ
diff --git a/public/emoji/1f991.svg b/public/emoji/1f991.svg
index c7e876402e..8ef80f8ff9 100644
--- a/public/emoji/1f991.svg
+++ b/public/emoji/1f991.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f992.svg b/public/emoji/1f992.svg
new file mode 100644
index 0000000000..5e43bb4a8e
--- /dev/null
+++ b/public/emoji/1f992.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f993.svg b/public/emoji/1f993.svg
new file mode 100644
index 0000000000..afec3170d6
--- /dev/null
+++ b/public/emoji/1f993.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f994.svg b/public/emoji/1f994.svg
new file mode 100644
index 0000000000..52361720ce
--- /dev/null
+++ b/public/emoji/1f994.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f995.svg b/public/emoji/1f995.svg
new file mode 100644
index 0000000000..c424c6a2e3
--- /dev/null
+++ b/public/emoji/1f995.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f996.svg b/public/emoji/1f996.svg
new file mode 100644
index 0000000000..71bb2c5f9b
--- /dev/null
+++ b/public/emoji/1f996.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f997.svg b/public/emoji/1f997.svg
new file mode 100644
index 0000000000..91ab418c95
--- /dev/null
+++ b/public/emoji/1f997.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9c0.png b/public/emoji/1f9c0.png
deleted file mode 100644
index 00e9976228..0000000000
Binary files a/public/emoji/1f9c0.png and /dev/null differ
diff --git a/public/emoji/1f9c0.svg b/public/emoji/1f9c0.svg
index 3cbd809688..a9ebf6cccc 100644
--- a/public/emoji/1f9c0.svg
+++ b/public/emoji/1f9c0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/1f9d0.svg b/public/emoji/1f9d0.svg
new file mode 100644
index 0000000000..e07680481b
--- /dev/null
+++ b/public/emoji/1f9d0.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d1-1f3fb.svg b/public/emoji/1f9d1-1f3fb.svg
new file mode 100644
index 0000000000..915e141710
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d1-1f3fc.svg b/public/emoji/1f9d1-1f3fc.svg
new file mode 100644
index 0000000000..9872b9b895
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d1-1f3fd.svg b/public/emoji/1f9d1-1f3fd.svg
new file mode 100644
index 0000000000..87ad5b5329
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d1-1f3fe.svg b/public/emoji/1f9d1-1f3fe.svg
new file mode 100644
index 0000000000..f63bc5a2a2
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d1-1f3ff.svg b/public/emoji/1f9d1-1f3ff.svg
new file mode 100644
index 0000000000..199a8bf447
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d1.svg b/public/emoji/1f9d1.svg
new file mode 100644
index 0000000000..18aae372f5
--- /dev/null
+++ b/public/emoji/1f9d1.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d2-1f3fb.svg b/public/emoji/1f9d2-1f3fb.svg
new file mode 100644
index 0000000000..ee17b4cbed
--- /dev/null
+++ b/public/emoji/1f9d2-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d2-1f3fc.svg b/public/emoji/1f9d2-1f3fc.svg
new file mode 100644
index 0000000000..eb8dc7832b
--- /dev/null
+++ b/public/emoji/1f9d2-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d2-1f3fd.svg b/public/emoji/1f9d2-1f3fd.svg
new file mode 100644
index 0000000000..6a202d60e3
--- /dev/null
+++ b/public/emoji/1f9d2-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d2-1f3fe.svg b/public/emoji/1f9d2-1f3fe.svg
new file mode 100644
index 0000000000..b4cd560c46
--- /dev/null
+++ b/public/emoji/1f9d2-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d2-1f3ff.svg b/public/emoji/1f9d2-1f3ff.svg
new file mode 100644
index 0000000000..b805d80a99
--- /dev/null
+++ b/public/emoji/1f9d2-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d2.svg b/public/emoji/1f9d2.svg
new file mode 100644
index 0000000000..f352b41dda
--- /dev/null
+++ b/public/emoji/1f9d2.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d3-1f3fb.svg b/public/emoji/1f9d3-1f3fb.svg
new file mode 100644
index 0000000000..6721beb4ae
--- /dev/null
+++ b/public/emoji/1f9d3-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d3-1f3fc.svg b/public/emoji/1f9d3-1f3fc.svg
new file mode 100644
index 0000000000..ba61f7f162
--- /dev/null
+++ b/public/emoji/1f9d3-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d3-1f3fd.svg b/public/emoji/1f9d3-1f3fd.svg
new file mode 100644
index 0000000000..78868e3e02
--- /dev/null
+++ b/public/emoji/1f9d3-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d3-1f3fe.svg b/public/emoji/1f9d3-1f3fe.svg
new file mode 100644
index 0000000000..472ee9c7bf
--- /dev/null
+++ b/public/emoji/1f9d3-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d3-1f3ff.svg b/public/emoji/1f9d3-1f3ff.svg
new file mode 100644
index 0000000000..efaff91a81
--- /dev/null
+++ b/public/emoji/1f9d3-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d3.svg b/public/emoji/1f9d3.svg
new file mode 100644
index 0000000000..3576010394
--- /dev/null
+++ b/public/emoji/1f9d3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d4-1f3fb.svg b/public/emoji/1f9d4-1f3fb.svg
new file mode 100644
index 0000000000..f4583cc92d
--- /dev/null
+++ b/public/emoji/1f9d4-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d4-1f3fc.svg b/public/emoji/1f9d4-1f3fc.svg
new file mode 100644
index 0000000000..0b6de72fdb
--- /dev/null
+++ b/public/emoji/1f9d4-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d4-1f3fd.svg b/public/emoji/1f9d4-1f3fd.svg
new file mode 100644
index 0000000000..413b79b825
--- /dev/null
+++ b/public/emoji/1f9d4-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d4-1f3fe.svg b/public/emoji/1f9d4-1f3fe.svg
new file mode 100644
index 0000000000..9f6dbcad71
--- /dev/null
+++ b/public/emoji/1f9d4-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d4-1f3ff.svg b/public/emoji/1f9d4-1f3ff.svg
new file mode 100644
index 0000000000..7da8277651
--- /dev/null
+++ b/public/emoji/1f9d4-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d4.svg b/public/emoji/1f9d4.svg
new file mode 100644
index 0000000000..8dc1733562
--- /dev/null
+++ b/public/emoji/1f9d4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d5-1f3fb.svg b/public/emoji/1f9d5-1f3fb.svg
new file mode 100644
index 0000000000..c41266b7c3
--- /dev/null
+++ b/public/emoji/1f9d5-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d5-1f3fc.svg b/public/emoji/1f9d5-1f3fc.svg
new file mode 100644
index 0000000000..0ee84dfcfd
--- /dev/null
+++ b/public/emoji/1f9d5-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d5-1f3fd.svg b/public/emoji/1f9d5-1f3fd.svg
new file mode 100644
index 0000000000..bc4cac0dc5
--- /dev/null
+++ b/public/emoji/1f9d5-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d5-1f3fe.svg b/public/emoji/1f9d5-1f3fe.svg
new file mode 100644
index 0000000000..aa5081bae4
--- /dev/null
+++ b/public/emoji/1f9d5-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d5-1f3ff.svg b/public/emoji/1f9d5-1f3ff.svg
new file mode 100644
index 0000000000..827bfaf9de
--- /dev/null
+++ b/public/emoji/1f9d5-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d5.svg b/public/emoji/1f9d5.svg
new file mode 100644
index 0000000000..6ddfb5a499
--- /dev/null
+++ b/public/emoji/1f9d5.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f9d6-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..9a65636b36
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f9d6-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..5a623944af
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fb.svg b/public/emoji/1f9d6-1f3fb.svg
new file mode 100644
index 0000000000..9a65636b36
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f9d6-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..435e88fe98
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f9d6-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..d6f1beb07b
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fc.svg b/public/emoji/1f9d6-1f3fc.svg
new file mode 100644
index 0000000000..435e88fe98
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f9d6-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..b7392561aa
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f9d6-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..515cb688dd
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fd.svg b/public/emoji/1f9d6-1f3fd.svg
new file mode 100644
index 0000000000..b7392561aa
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f9d6-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..6d101a5692
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f9d6-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..e43dde27a8
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3fe.svg b/public/emoji/1f9d6-1f3fe.svg
new file mode 100644
index 0000000000..6d101a5692
--- /dev/null
+++ b/public/emoji/1f9d6-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f9d6-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..205eb57472
--- /dev/null
+++ b/public/emoji/1f9d6-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f9d6-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..f271c855f6
--- /dev/null
+++ b/public/emoji/1f9d6-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-1f3ff.svg b/public/emoji/1f9d6-1f3ff.svg
new file mode 100644
index 0000000000..205eb57472
--- /dev/null
+++ b/public/emoji/1f9d6-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-200d-2640-fe0f.svg b/public/emoji/1f9d6-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..fea6a9391e
--- /dev/null
+++ b/public/emoji/1f9d6-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6-200d-2642-fe0f.svg b/public/emoji/1f9d6-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..d9c9c1534b
--- /dev/null
+++ b/public/emoji/1f9d6-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d6.svg b/public/emoji/1f9d6.svg
new file mode 100644
index 0000000000..fea6a9391e
--- /dev/null
+++ b/public/emoji/1f9d6.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f9d7-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..fca1a442ab
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f9d7-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..144d2f4f52
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fb.svg b/public/emoji/1f9d7-1f3fb.svg
new file mode 100644
index 0000000000..144d2f4f52
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f9d7-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..570da6962b
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f9d7-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..fd28bf2f42
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fc.svg b/public/emoji/1f9d7-1f3fc.svg
new file mode 100644
index 0000000000..fd28bf2f42
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f9d7-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..8da25887cc
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f9d7-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..c4a08dab1e
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fd.svg b/public/emoji/1f9d7-1f3fd.svg
new file mode 100644
index 0000000000..c4a08dab1e
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f9d7-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..e0b694853c
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f9d7-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..470762e1f5
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3fe.svg b/public/emoji/1f9d7-1f3fe.svg
new file mode 100644
index 0000000000..470762e1f5
--- /dev/null
+++ b/public/emoji/1f9d7-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f9d7-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..8856dc16e0
--- /dev/null
+++ b/public/emoji/1f9d7-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f9d7-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..4bff510717
--- /dev/null
+++ b/public/emoji/1f9d7-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-1f3ff.svg b/public/emoji/1f9d7-1f3ff.svg
new file mode 100644
index 0000000000..4bff510717
--- /dev/null
+++ b/public/emoji/1f9d7-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-200d-2640-fe0f.svg b/public/emoji/1f9d7-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..36f14c8ccb
--- /dev/null
+++ b/public/emoji/1f9d7-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7-200d-2642-fe0f.svg b/public/emoji/1f9d7-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..95db1647f7
--- /dev/null
+++ b/public/emoji/1f9d7-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d7.svg b/public/emoji/1f9d7.svg
new file mode 100644
index 0000000000..95db1647f7
--- /dev/null
+++ b/public/emoji/1f9d7.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f9d8-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..8bd6178dc1
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f9d8-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..6a65728f4c
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fb.svg b/public/emoji/1f9d8-1f3fb.svg
new file mode 100644
index 0000000000..8bd6178dc1
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f9d8-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..25eb489e3e
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f9d8-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..426c5de953
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fc.svg b/public/emoji/1f9d8-1f3fc.svg
new file mode 100644
index 0000000000..25eb489e3e
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f9d8-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..0f015f02dc
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f9d8-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..8a15c25454
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fd.svg b/public/emoji/1f9d8-1f3fd.svg
new file mode 100644
index 0000000000..0f015f02dc
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f9d8-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..71f6a958d5
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f9d8-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..ea2cd80cf1
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3fe.svg b/public/emoji/1f9d8-1f3fe.svg
new file mode 100644
index 0000000000..71f6a958d5
--- /dev/null
+++ b/public/emoji/1f9d8-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f9d8-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..0fcf4b16b3
--- /dev/null
+++ b/public/emoji/1f9d8-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f9d8-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..bfbf1da807
--- /dev/null
+++ b/public/emoji/1f9d8-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-1f3ff.svg b/public/emoji/1f9d8-1f3ff.svg
new file mode 100644
index 0000000000..0fcf4b16b3
--- /dev/null
+++ b/public/emoji/1f9d8-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-200d-2640-fe0f.svg b/public/emoji/1f9d8-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..344e7ce05c
--- /dev/null
+++ b/public/emoji/1f9d8-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8-200d-2642-fe0f.svg b/public/emoji/1f9d8-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..6e6ffdd620
--- /dev/null
+++ b/public/emoji/1f9d8-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d8.svg b/public/emoji/1f9d8.svg
new file mode 100644
index 0000000000..344e7ce05c
--- /dev/null
+++ b/public/emoji/1f9d8.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f9d9-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..b0960fa6e1
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f9d9-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..4710995116
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fb.svg b/public/emoji/1f9d9-1f3fb.svg
new file mode 100644
index 0000000000..4710995116
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f9d9-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..111b4d80f8
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f9d9-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..d82ff1c2d0
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fc.svg b/public/emoji/1f9d9-1f3fc.svg
new file mode 100644
index 0000000000..d82ff1c2d0
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f9d9-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..0899b523c6
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f9d9-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..05564a9bff
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fd.svg b/public/emoji/1f9d9-1f3fd.svg
new file mode 100644
index 0000000000..05564a9bff
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f9d9-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..6bfe7c68f8
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f9d9-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..9db5339945
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3fe.svg b/public/emoji/1f9d9-1f3fe.svg
new file mode 100644
index 0000000000..9db5339945
--- /dev/null
+++ b/public/emoji/1f9d9-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f9d9-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..4c4a326d02
--- /dev/null
+++ b/public/emoji/1f9d9-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f9d9-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..2967e532fa
--- /dev/null
+++ b/public/emoji/1f9d9-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-1f3ff.svg b/public/emoji/1f9d9-1f3ff.svg
new file mode 100644
index 0000000000..2967e532fa
--- /dev/null
+++ b/public/emoji/1f9d9-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-200d-2640-fe0f.svg b/public/emoji/1f9d9-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..95b8b5f7b1
--- /dev/null
+++ b/public/emoji/1f9d9-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9-200d-2642-fe0f.svg b/public/emoji/1f9d9-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..814783e13c
--- /dev/null
+++ b/public/emoji/1f9d9-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9d9.svg b/public/emoji/1f9d9.svg
new file mode 100644
index 0000000000..814783e13c
--- /dev/null
+++ b/public/emoji/1f9d9.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f9da-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..ca2a9a0218
--- /dev/null
+++ b/public/emoji/1f9da-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f9da-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..a2a8c0ec32
--- /dev/null
+++ b/public/emoji/1f9da-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fb.svg b/public/emoji/1f9da-1f3fb.svg
new file mode 100644
index 0000000000..ca2a9a0218
--- /dev/null
+++ b/public/emoji/1f9da-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f9da-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..e7a2657171
--- /dev/null
+++ b/public/emoji/1f9da-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f9da-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..f832ccb7ad
--- /dev/null
+++ b/public/emoji/1f9da-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fc.svg b/public/emoji/1f9da-1f3fc.svg
new file mode 100644
index 0000000000..e7a2657171
--- /dev/null
+++ b/public/emoji/1f9da-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f9da-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..1cf49450fa
--- /dev/null
+++ b/public/emoji/1f9da-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f9da-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..11393bdf7e
--- /dev/null
+++ b/public/emoji/1f9da-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fd.svg b/public/emoji/1f9da-1f3fd.svg
new file mode 100644
index 0000000000..1cf49450fa
--- /dev/null
+++ b/public/emoji/1f9da-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f9da-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..c79b2ff9c5
--- /dev/null
+++ b/public/emoji/1f9da-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f9da-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..7393eedaa7
--- /dev/null
+++ b/public/emoji/1f9da-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3fe.svg b/public/emoji/1f9da-1f3fe.svg
new file mode 100644
index 0000000000..c79b2ff9c5
--- /dev/null
+++ b/public/emoji/1f9da-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f9da-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..fa73e9e790
--- /dev/null
+++ b/public/emoji/1f9da-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f9da-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..7b23d046ae
--- /dev/null
+++ b/public/emoji/1f9da-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-1f3ff.svg b/public/emoji/1f9da-1f3ff.svg
new file mode 100644
index 0000000000..fa73e9e790
--- /dev/null
+++ b/public/emoji/1f9da-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-200d-2640-fe0f.svg b/public/emoji/1f9da-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..9a0b3b4c50
--- /dev/null
+++ b/public/emoji/1f9da-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da-200d-2642-fe0f.svg b/public/emoji/1f9da-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..3634760fc8
--- /dev/null
+++ b/public/emoji/1f9da-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9da.svg b/public/emoji/1f9da.svg
new file mode 100644
index 0000000000..9a0b3b4c50
--- /dev/null
+++ b/public/emoji/1f9da.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f9db-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..b32bfd5ba4
--- /dev/null
+++ b/public/emoji/1f9db-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f9db-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..6a2e57e6cb
--- /dev/null
+++ b/public/emoji/1f9db-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fb.svg b/public/emoji/1f9db-1f3fb.svg
new file mode 100644
index 0000000000..6a2e57e6cb
--- /dev/null
+++ b/public/emoji/1f9db-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f9db-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..5b45c6a5d6
--- /dev/null
+++ b/public/emoji/1f9db-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f9db-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..977d040202
--- /dev/null
+++ b/public/emoji/1f9db-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fc.svg b/public/emoji/1f9db-1f3fc.svg
new file mode 100644
index 0000000000..977d040202
--- /dev/null
+++ b/public/emoji/1f9db-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f9db-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..f4b3aea671
--- /dev/null
+++ b/public/emoji/1f9db-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f9db-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..97a93aac06
--- /dev/null
+++ b/public/emoji/1f9db-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fd.svg b/public/emoji/1f9db-1f3fd.svg
new file mode 100644
index 0000000000..97a93aac06
--- /dev/null
+++ b/public/emoji/1f9db-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f9db-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..70aa844e99
--- /dev/null
+++ b/public/emoji/1f9db-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f9db-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..6afba45ce8
--- /dev/null
+++ b/public/emoji/1f9db-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3fe.svg b/public/emoji/1f9db-1f3fe.svg
new file mode 100644
index 0000000000..6afba45ce8
--- /dev/null
+++ b/public/emoji/1f9db-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f9db-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..532b32ce16
--- /dev/null
+++ b/public/emoji/1f9db-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f9db-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..30adcd8646
--- /dev/null
+++ b/public/emoji/1f9db-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-1f3ff.svg b/public/emoji/1f9db-1f3ff.svg
new file mode 100644
index 0000000000..30adcd8646
--- /dev/null
+++ b/public/emoji/1f9db-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-200d-2640-fe0f.svg b/public/emoji/1f9db-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..d0aa04d0da
--- /dev/null
+++ b/public/emoji/1f9db-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db-200d-2642-fe0f.svg b/public/emoji/1f9db-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..9719a1de4f
--- /dev/null
+++ b/public/emoji/1f9db-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9db.svg b/public/emoji/1f9db.svg
new file mode 100644
index 0000000000..9719a1de4f
--- /dev/null
+++ b/public/emoji/1f9db.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f9dc-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..e237ae2929
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f9dc-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..c6d8341d51
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fb.svg b/public/emoji/1f9dc-1f3fb.svg
new file mode 100644
index 0000000000..e237ae2929
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f9dc-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..3198168825
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f9dc-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..fd1d1b6ddd
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fc.svg b/public/emoji/1f9dc-1f3fc.svg
new file mode 100644
index 0000000000..3198168825
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f9dc-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..29ae6e9a26
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f9dc-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..c71ebcaf03
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fd.svg b/public/emoji/1f9dc-1f3fd.svg
new file mode 100644
index 0000000000..29ae6e9a26
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f9dc-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..4d74cce5c8
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f9dc-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..33a7228537
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3fe.svg b/public/emoji/1f9dc-1f3fe.svg
new file mode 100644
index 0000000000..4d74cce5c8
--- /dev/null
+++ b/public/emoji/1f9dc-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f9dc-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..abdd82796f
--- /dev/null
+++ b/public/emoji/1f9dc-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f9dc-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..51b1d082e2
--- /dev/null
+++ b/public/emoji/1f9dc-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-1f3ff.svg b/public/emoji/1f9dc-1f3ff.svg
new file mode 100644
index 0000000000..abdd82796f
--- /dev/null
+++ b/public/emoji/1f9dc-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-200d-2640-fe0f.svg b/public/emoji/1f9dc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..ce3976137e
--- /dev/null
+++ b/public/emoji/1f9dc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc-200d-2642-fe0f.svg b/public/emoji/1f9dc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..2fc5df5240
--- /dev/null
+++ b/public/emoji/1f9dc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dc.svg b/public/emoji/1f9dc.svg
new file mode 100644
index 0000000000..ce3976137e
--- /dev/null
+++ b/public/emoji/1f9dc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f9dd-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..5214ac009a
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f9dd-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..84d9dd8f5c
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fb.svg b/public/emoji/1f9dd-1f3fb.svg
new file mode 100644
index 0000000000..84d9dd8f5c
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f9dd-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..fe418bcac5
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f9dd-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..3399fdde42
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fc.svg b/public/emoji/1f9dd-1f3fc.svg
new file mode 100644
index 0000000000..3399fdde42
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f9dd-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..fc11d24c6f
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f9dd-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..181feba5a7
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fd.svg b/public/emoji/1f9dd-1f3fd.svg
new file mode 100644
index 0000000000..181feba5a7
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f9dd-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..5c0123f832
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f9dd-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..f7b2c321e4
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3fe.svg b/public/emoji/1f9dd-1f3fe.svg
new file mode 100644
index 0000000000..f7b2c321e4
--- /dev/null
+++ b/public/emoji/1f9dd-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f9dd-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..9b6f37fb01
--- /dev/null
+++ b/public/emoji/1f9dd-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f9dd-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..c05267d4b5
--- /dev/null
+++ b/public/emoji/1f9dd-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-1f3ff.svg b/public/emoji/1f9dd-1f3ff.svg
new file mode 100644
index 0000000000..c05267d4b5
--- /dev/null
+++ b/public/emoji/1f9dd-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-200d-2640-fe0f.svg b/public/emoji/1f9dd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..49c6a4ba98
--- /dev/null
+++ b/public/emoji/1f9dd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd-200d-2642-fe0f.svg b/public/emoji/1f9dd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..c9714d2a90
--- /dev/null
+++ b/public/emoji/1f9dd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9dd.svg b/public/emoji/1f9dd.svg
new file mode 100644
index 0000000000..c9714d2a90
--- /dev/null
+++ b/public/emoji/1f9dd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9de-200d-2640-fe0f.svg b/public/emoji/1f9de-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..dfcd6d61c4
--- /dev/null
+++ b/public/emoji/1f9de-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9de-200d-2642-fe0f.svg b/public/emoji/1f9de-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..0301523635
--- /dev/null
+++ b/public/emoji/1f9de-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9de.svg b/public/emoji/1f9de.svg
new file mode 100644
index 0000000000..0301523635
--- /dev/null
+++ b/public/emoji/1f9de.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9df-200d-2640-fe0f.svg b/public/emoji/1f9df-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..deb582f562
--- /dev/null
+++ b/public/emoji/1f9df-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9df-200d-2642-fe0f.svg b/public/emoji/1f9df-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..60e086314e
--- /dev/null
+++ b/public/emoji/1f9df-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9df.svg b/public/emoji/1f9df.svg
new file mode 100644
index 0000000000..60e086314e
--- /dev/null
+++ b/public/emoji/1f9df.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9e0.svg b/public/emoji/1f9e0.svg
new file mode 100644
index 0000000000..df291e7405
--- /dev/null
+++ b/public/emoji/1f9e0.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9e1.svg b/public/emoji/1f9e1.svg
new file mode 100644
index 0000000000..2a35e7788c
--- /dev/null
+++ b/public/emoji/1f9e1.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9e2.svg b/public/emoji/1f9e2.svg
new file mode 100644
index 0000000000..68e9079ffe
--- /dev/null
+++ b/public/emoji/1f9e2.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9e3.svg b/public/emoji/1f9e3.svg
new file mode 100644
index 0000000000..09643e41a2
--- /dev/null
+++ b/public/emoji/1f9e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9e4.svg b/public/emoji/1f9e4.svg
new file mode 100644
index 0000000000..4f34ac5650
--- /dev/null
+++ b/public/emoji/1f9e4.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9e5.svg b/public/emoji/1f9e5.svg
new file mode 100644
index 0000000000..778d9dc873
--- /dev/null
+++ b/public/emoji/1f9e5.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/1f9e6.svg b/public/emoji/1f9e6.svg
new file mode 100644
index 0000000000..a9ccf1e848
--- /dev/null
+++ b/public/emoji/1f9e6.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/203c.png b/public/emoji/203c.png
deleted file mode 100644
index 58a9c528fc..0000000000
Binary files a/public/emoji/203c.png and /dev/null differ
diff --git a/public/emoji/203c.svg b/public/emoji/203c.svg
index 7d2d0dfd1d..955e9dc6a4 100644
--- a/public/emoji/203c.svg
+++ b/public/emoji/203c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2049.png b/public/emoji/2049.png
deleted file mode 100644
index 509813e9bb..0000000000
Binary files a/public/emoji/2049.png and /dev/null differ
diff --git a/public/emoji/2049.svg b/public/emoji/2049.svg
index b39038bb0a..457aab8ea4 100644
--- a/public/emoji/2049.svg
+++ b/public/emoji/2049.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2122.png b/public/emoji/2122.png
deleted file mode 100644
index 7a0c44a2c2..0000000000
Binary files a/public/emoji/2122.png and /dev/null differ
diff --git a/public/emoji/2122.svg b/public/emoji/2122.svg
index 321c2026e3..554777689c 100644
--- a/public/emoji/2122.svg
+++ b/public/emoji/2122.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2139.png b/public/emoji/2139.png
deleted file mode 100644
index 871f2db931..0000000000
Binary files a/public/emoji/2139.png and /dev/null differ
diff --git a/public/emoji/2139.svg b/public/emoji/2139.svg
index 93e13a8aaf..cc2df8c695 100644
--- a/public/emoji/2139.svg
+++ b/public/emoji/2139.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2194.png b/public/emoji/2194.png
deleted file mode 100644
index 7937f24f2a..0000000000
Binary files a/public/emoji/2194.png and /dev/null differ
diff --git a/public/emoji/2194.svg b/public/emoji/2194.svg
index 8ffc7d1db7..7f97d90c9c 100644
--- a/public/emoji/2194.svg
+++ b/public/emoji/2194.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2195.png b/public/emoji/2195.png
deleted file mode 100644
index dfa32b9718..0000000000
Binary files a/public/emoji/2195.png and /dev/null differ
diff --git a/public/emoji/2195.svg b/public/emoji/2195.svg
index 803b79d385..afe63739c9 100644
--- a/public/emoji/2195.svg
+++ b/public/emoji/2195.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2196.png b/public/emoji/2196.png
deleted file mode 100644
index f38718fbe3..0000000000
Binary files a/public/emoji/2196.png and /dev/null differ
diff --git a/public/emoji/2196.svg b/public/emoji/2196.svg
index 7049c485f2..9c3ce342cd 100644
--- a/public/emoji/2196.svg
+++ b/public/emoji/2196.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2197.png b/public/emoji/2197.png
deleted file mode 100644
index c43e12d0f6..0000000000
Binary files a/public/emoji/2197.png and /dev/null differ
diff --git a/public/emoji/2197.svg b/public/emoji/2197.svg
index 73cc6a7e5f..4982e3790a 100644
--- a/public/emoji/2197.svg
+++ b/public/emoji/2197.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2198.png b/public/emoji/2198.png
deleted file mode 100644
index 7e807da739..0000000000
Binary files a/public/emoji/2198.png and /dev/null differ
diff --git a/public/emoji/2198.svg b/public/emoji/2198.svg
index 7a5e9677f3..92a8638844 100644
--- a/public/emoji/2198.svg
+++ b/public/emoji/2198.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2199.png b/public/emoji/2199.png
deleted file mode 100644
index 88b3771607..0000000000
Binary files a/public/emoji/2199.png and /dev/null differ
diff --git a/public/emoji/2199.svg b/public/emoji/2199.svg
index 29c9464255..a0753f6be3 100644
--- a/public/emoji/2199.svg
+++ b/public/emoji/2199.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/21a9.png b/public/emoji/21a9.png
deleted file mode 100644
index ba45c2ad9e..0000000000
Binary files a/public/emoji/21a9.png and /dev/null differ
diff --git a/public/emoji/21a9.svg b/public/emoji/21a9.svg
index 03a61def71..b9a5f59915 100644
--- a/public/emoji/21a9.svg
+++ b/public/emoji/21a9.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/21aa.png b/public/emoji/21aa.png
deleted file mode 100644
index e7258ad326..0000000000
Binary files a/public/emoji/21aa.png and /dev/null differ
diff --git a/public/emoji/21aa.svg b/public/emoji/21aa.svg
index fd4773fd23..d7ecd3656c 100644
--- a/public/emoji/21aa.svg
+++ b/public/emoji/21aa.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23-20e3.svg b/public/emoji/23-20e3.svg
new file mode 100644
index 0000000000..6ec3750246
--- /dev/null
+++ b/public/emoji/23-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/231a.png b/public/emoji/231a.png
deleted file mode 100644
index 64819bc6e2..0000000000
Binary files a/public/emoji/231a.png and /dev/null differ
diff --git a/public/emoji/231a.svg b/public/emoji/231a.svg
index 31cbd09c99..2183609011 100644
--- a/public/emoji/231a.svg
+++ b/public/emoji/231a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/231b.png b/public/emoji/231b.png
deleted file mode 100644
index a5db2d1d3f..0000000000
Binary files a/public/emoji/231b.png and /dev/null differ
diff --git a/public/emoji/231b.svg b/public/emoji/231b.svg
index 18acf0a3ec..4c001222d6 100644
--- a/public/emoji/231b.svg
+++ b/public/emoji/231b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2328.png b/public/emoji/2328.png
deleted file mode 100644
index 75027cb9af..0000000000
Binary files a/public/emoji/2328.png and /dev/null differ
diff --git a/public/emoji/2328.svg b/public/emoji/2328.svg
index c282cf73f8..1004347b07 100644
--- a/public/emoji/2328.svg
+++ b/public/emoji/2328.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23cf.png b/public/emoji/23cf.png
deleted file mode 100644
index ec5cfc4897..0000000000
Binary files a/public/emoji/23cf.png and /dev/null differ
diff --git a/public/emoji/23cf.svg b/public/emoji/23cf.svg
index 2229e4437f..c85f114fa5 100644
--- a/public/emoji/23cf.svg
+++ b/public/emoji/23cf.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23e9.png b/public/emoji/23e9.png
deleted file mode 100644
index c406fedfdb..0000000000
Binary files a/public/emoji/23e9.png and /dev/null differ
diff --git a/public/emoji/23e9.svg b/public/emoji/23e9.svg
index 60d4f822a7..9bbfc6fcba 100644
--- a/public/emoji/23e9.svg
+++ b/public/emoji/23e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23ea.png b/public/emoji/23ea.png
deleted file mode 100644
index e22e2bd3da..0000000000
Binary files a/public/emoji/23ea.png and /dev/null differ
diff --git a/public/emoji/23ea.svg b/public/emoji/23ea.svg
index 2530af199c..65c35a904e 100644
--- a/public/emoji/23ea.svg
+++ b/public/emoji/23ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23eb.png b/public/emoji/23eb.png
deleted file mode 100644
index 13543d5eef..0000000000
Binary files a/public/emoji/23eb.png and /dev/null differ
diff --git a/public/emoji/23eb.svg b/public/emoji/23eb.svg
index fcc82a94eb..b045d90352 100644
--- a/public/emoji/23eb.svg
+++ b/public/emoji/23eb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23ec.png b/public/emoji/23ec.png
deleted file mode 100644
index 90193bfcb4..0000000000
Binary files a/public/emoji/23ec.png and /dev/null differ
diff --git a/public/emoji/23ec.svg b/public/emoji/23ec.svg
index 17d697dfe8..8c258ce462 100644
--- a/public/emoji/23ec.svg
+++ b/public/emoji/23ec.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23ed.png b/public/emoji/23ed.png
deleted file mode 100644
index f8880d33ba..0000000000
Binary files a/public/emoji/23ed.png and /dev/null differ
diff --git a/public/emoji/23ed.svg b/public/emoji/23ed.svg
index 4202a012d9..179100aa3b 100644
--- a/public/emoji/23ed.svg
+++ b/public/emoji/23ed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23ee.png b/public/emoji/23ee.png
deleted file mode 100644
index 1ffd0566cf..0000000000
Binary files a/public/emoji/23ee.png and /dev/null differ
diff --git a/public/emoji/23ee.svg b/public/emoji/23ee.svg
index e8d3c4ffe0..7c69b690b8 100644
--- a/public/emoji/23ee.svg
+++ b/public/emoji/23ee.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23ef.png b/public/emoji/23ef.png
deleted file mode 100644
index a9f857139a..0000000000
Binary files a/public/emoji/23ef.png and /dev/null differ
diff --git a/public/emoji/23ef.svg b/public/emoji/23ef.svg
index 2fc2c46d04..bdf3a2f046 100644
--- a/public/emoji/23ef.svg
+++ b/public/emoji/23ef.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23f0.png b/public/emoji/23f0.png
deleted file mode 100644
index cdbc2fbb95..0000000000
Binary files a/public/emoji/23f0.png and /dev/null differ
diff --git a/public/emoji/23f0.svg b/public/emoji/23f0.svg
index fe98612202..5c9c6c9f77 100644
--- a/public/emoji/23f0.svg
+++ b/public/emoji/23f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23f1.png b/public/emoji/23f1.png
deleted file mode 100644
index 8fae1c9a89..0000000000
Binary files a/public/emoji/23f1.png and /dev/null differ
diff --git a/public/emoji/23f1.svg b/public/emoji/23f1.svg
index 051d3d5499..f7bab6c11c 100644
--- a/public/emoji/23f1.svg
+++ b/public/emoji/23f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23f2.png b/public/emoji/23f2.png
deleted file mode 100644
index 8a3be574c2..0000000000
Binary files a/public/emoji/23f2.png and /dev/null differ
diff --git a/public/emoji/23f2.svg b/public/emoji/23f2.svg
index c8f4446e0a..d5fd91b47a 100644
--- a/public/emoji/23f2.svg
+++ b/public/emoji/23f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23f3.png b/public/emoji/23f3.png
deleted file mode 100644
index b93b15ed6d..0000000000
Binary files a/public/emoji/23f3.png and /dev/null differ
diff --git a/public/emoji/23f3.svg b/public/emoji/23f3.svg
index 803f932307..cab22a1f1b 100644
--- a/public/emoji/23f3.svg
+++ b/public/emoji/23f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23f8.png b/public/emoji/23f8.png
deleted file mode 100644
index 4f07e7ebfd..0000000000
Binary files a/public/emoji/23f8.png and /dev/null differ
diff --git a/public/emoji/23f8.svg b/public/emoji/23f8.svg
index 3247d55a89..9e8995e4ce 100644
--- a/public/emoji/23f8.svg
+++ b/public/emoji/23f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23f9.png b/public/emoji/23f9.png
deleted file mode 100644
index cfa99988ac..0000000000
Binary files a/public/emoji/23f9.png and /dev/null differ
diff --git a/public/emoji/23f9.svg b/public/emoji/23f9.svg
index 874ad6dbc2..608fd561fa 100644
--- a/public/emoji/23f9.svg
+++ b/public/emoji/23f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/23fa.png b/public/emoji/23fa.png
deleted file mode 100644
index ada52830fc..0000000000
Binary files a/public/emoji/23fa.png and /dev/null differ
diff --git a/public/emoji/23fa.svg b/public/emoji/23fa.svg
index 668d682890..4583b10da8 100644
--- a/public/emoji/23fa.svg
+++ b/public/emoji/23fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/24c2.png b/public/emoji/24c2.png
deleted file mode 100644
index 8a3506fc1d..0000000000
Binary files a/public/emoji/24c2.png and /dev/null differ
diff --git a/public/emoji/24c2.svg b/public/emoji/24c2.svg
index fbbf6f8eed..bd4ca96a7e 100644
--- a/public/emoji/24c2.svg
+++ b/public/emoji/24c2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/25aa.png b/public/emoji/25aa.png
deleted file mode 100644
index 48595d3e1a..0000000000
Binary files a/public/emoji/25aa.png and /dev/null differ
diff --git a/public/emoji/25aa.svg b/public/emoji/25aa.svg
index 2d0fa0a394..9d8c004aa7 100644
--- a/public/emoji/25aa.svg
+++ b/public/emoji/25aa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/25ab.png b/public/emoji/25ab.png
deleted file mode 100644
index d7ebdb0c0e..0000000000
Binary files a/public/emoji/25ab.png and /dev/null differ
diff --git a/public/emoji/25ab.svg b/public/emoji/25ab.svg
index ab1ec4d2e3..2da27bef38 100644
--- a/public/emoji/25ab.svg
+++ b/public/emoji/25ab.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/25b6.png b/public/emoji/25b6.png
deleted file mode 100644
index 4e2b682857..0000000000
Binary files a/public/emoji/25b6.png and /dev/null differ
diff --git a/public/emoji/25b6.svg b/public/emoji/25b6.svg
index f7ac18377a..a208b0ec8a 100644
--- a/public/emoji/25b6.svg
+++ b/public/emoji/25b6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/25c0.png b/public/emoji/25c0.png
deleted file mode 100644
index ee38e3b038..0000000000
Binary files a/public/emoji/25c0.png and /dev/null differ
diff --git a/public/emoji/25c0.svg b/public/emoji/25c0.svg
index d67bffccfb..99baa87e31 100644
--- a/public/emoji/25c0.svg
+++ b/public/emoji/25c0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/25fb.png b/public/emoji/25fb.png
deleted file mode 100644
index 8daacf5705..0000000000
Binary files a/public/emoji/25fb.png and /dev/null differ
diff --git a/public/emoji/25fb.svg b/public/emoji/25fb.svg
index c3dd9d3f2b..44c97a58fb 100644
--- a/public/emoji/25fb.svg
+++ b/public/emoji/25fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/25fc.png b/public/emoji/25fc.png
deleted file mode 100644
index 05a30a6aa2..0000000000
Binary files a/public/emoji/25fc.png and /dev/null differ
diff --git a/public/emoji/25fc.svg b/public/emoji/25fc.svg
index bf2f030161..b3cbc0ab32 100644
--- a/public/emoji/25fc.svg
+++ b/public/emoji/25fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/25fd.png b/public/emoji/25fd.png
deleted file mode 100644
index ae87412675..0000000000
Binary files a/public/emoji/25fd.png and /dev/null differ
diff --git a/public/emoji/25fd.svg b/public/emoji/25fd.svg
index 5f5ab3f58b..0d86db1716 100644
--- a/public/emoji/25fd.svg
+++ b/public/emoji/25fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/25fe.png b/public/emoji/25fe.png
deleted file mode 100644
index 39765bba61..0000000000
Binary files a/public/emoji/25fe.png and /dev/null differ
diff --git a/public/emoji/25fe.svg b/public/emoji/25fe.svg
index b2a4c8150c..0224ef0aee 100644
--- a/public/emoji/25fe.svg
+++ b/public/emoji/25fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2600.png b/public/emoji/2600.png
deleted file mode 100644
index fd521ae31a..0000000000
Binary files a/public/emoji/2600.png and /dev/null differ
diff --git a/public/emoji/2600.svg b/public/emoji/2600.svg
index aec6212d72..734d6d2341 100644
--- a/public/emoji/2600.svg
+++ b/public/emoji/2600.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2601.png b/public/emoji/2601.png
deleted file mode 100644
index 5b4f57f77b..0000000000
Binary files a/public/emoji/2601.png and /dev/null differ
diff --git a/public/emoji/2601.svg b/public/emoji/2601.svg
index 3df7fa6e30..76dd8ef5bb 100644
--- a/public/emoji/2601.svg
+++ b/public/emoji/2601.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2602.png b/public/emoji/2602.png
deleted file mode 100644
index 97fe859e74..0000000000
Binary files a/public/emoji/2602.png and /dev/null differ
diff --git a/public/emoji/2602.svg b/public/emoji/2602.svg
index 2105cf10ab..6712133473 100644
--- a/public/emoji/2602.svg
+++ b/public/emoji/2602.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2603.png b/public/emoji/2603.png
deleted file mode 100644
index 896f28502a..0000000000
Binary files a/public/emoji/2603.png and /dev/null differ
diff --git a/public/emoji/2603.svg b/public/emoji/2603.svg
index 8bfcae8fe6..0e3ce22606 100644
--- a/public/emoji/2603.svg
+++ b/public/emoji/2603.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2604.png b/public/emoji/2604.png
deleted file mode 100644
index a99751f79b..0000000000
Binary files a/public/emoji/2604.png and /dev/null differ
diff --git a/public/emoji/2604.svg b/public/emoji/2604.svg
index 7ad1c661d5..3d525c4c55 100644
--- a/public/emoji/2604.svg
+++ b/public/emoji/2604.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/260e.png b/public/emoji/260e.png
deleted file mode 100644
index a1e69f566b..0000000000
Binary files a/public/emoji/260e.png and /dev/null differ
diff --git a/public/emoji/260e.svg b/public/emoji/260e.svg
index 2be32eb0aa..f71c5595da 100644
--- a/public/emoji/260e.svg
+++ b/public/emoji/260e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2611.png b/public/emoji/2611.png
deleted file mode 100644
index 284d957384..0000000000
Binary files a/public/emoji/2611.png and /dev/null differ
diff --git a/public/emoji/2611.svg b/public/emoji/2611.svg
index 42ff8d4554..719f46c104 100644
--- a/public/emoji/2611.svg
+++ b/public/emoji/2611.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2614.png b/public/emoji/2614.png
deleted file mode 100644
index 5b35b7ff6a..0000000000
Binary files a/public/emoji/2614.png and /dev/null differ
diff --git a/public/emoji/2614.svg b/public/emoji/2614.svg
index 01ad0ed439..bdeb12e645 100644
--- a/public/emoji/2614.svg
+++ b/public/emoji/2614.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2615.png b/public/emoji/2615.png
deleted file mode 100644
index 553061471b..0000000000
Binary files a/public/emoji/2615.png and /dev/null differ
diff --git a/public/emoji/2615.svg b/public/emoji/2615.svg
index cd98ff4a23..9742612082 100644
--- a/public/emoji/2615.svg
+++ b/public/emoji/2615.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2618.png b/public/emoji/2618.png
deleted file mode 100644
index f202aecfe6..0000000000
Binary files a/public/emoji/2618.png and /dev/null differ
diff --git a/public/emoji/2618.svg b/public/emoji/2618.svg
index d9a9acd471..f4b39ae449 100644
--- a/public/emoji/2618.svg
+++ b/public/emoji/2618.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/261d-1f3fb.png b/public/emoji/261d-1f3fb.png
deleted file mode 100644
index 6a9db21d64..0000000000
Binary files a/public/emoji/261d-1f3fb.png and /dev/null differ
diff --git a/public/emoji/261d-1f3fb.svg b/public/emoji/261d-1f3fb.svg
index 6a8b95a104..52bf74379c 100644
--- a/public/emoji/261d-1f3fb.svg
+++ b/public/emoji/261d-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/261d-1f3fc.png b/public/emoji/261d-1f3fc.png
deleted file mode 100644
index 15aa9ea0e0..0000000000
Binary files a/public/emoji/261d-1f3fc.png and /dev/null differ
diff --git a/public/emoji/261d-1f3fc.svg b/public/emoji/261d-1f3fc.svg
index d43f1a7b3a..1c188d0e37 100644
--- a/public/emoji/261d-1f3fc.svg
+++ b/public/emoji/261d-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/261d-1f3fd.png b/public/emoji/261d-1f3fd.png
deleted file mode 100644
index 652b73a9c5..0000000000
Binary files a/public/emoji/261d-1f3fd.png and /dev/null differ
diff --git a/public/emoji/261d-1f3fd.svg b/public/emoji/261d-1f3fd.svg
index c548d5dbb5..b377f9f81b 100644
--- a/public/emoji/261d-1f3fd.svg
+++ b/public/emoji/261d-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/261d-1f3fe.png b/public/emoji/261d-1f3fe.png
deleted file mode 100644
index 692bad926e..0000000000
Binary files a/public/emoji/261d-1f3fe.png and /dev/null differ
diff --git a/public/emoji/261d-1f3fe.svg b/public/emoji/261d-1f3fe.svg
index 4b63a6b24f..324f88f9cb 100644
--- a/public/emoji/261d-1f3fe.svg
+++ b/public/emoji/261d-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/261d-1f3ff.png b/public/emoji/261d-1f3ff.png
deleted file mode 100644
index 1e1b10fb71..0000000000
Binary files a/public/emoji/261d-1f3ff.png and /dev/null differ
diff --git a/public/emoji/261d-1f3ff.svg b/public/emoji/261d-1f3ff.svg
index e422854ac6..1522274150 100644
--- a/public/emoji/261d-1f3ff.svg
+++ b/public/emoji/261d-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/261d.png b/public/emoji/261d.png
deleted file mode 100644
index f4978ff0f0..0000000000
Binary files a/public/emoji/261d.png and /dev/null differ
diff --git a/public/emoji/261d.svg b/public/emoji/261d.svg
index 2d47296e53..8d0720ac90 100644
--- a/public/emoji/261d.svg
+++ b/public/emoji/261d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2620.png b/public/emoji/2620.png
deleted file mode 100644
index b459df9227..0000000000
Binary files a/public/emoji/2620.png and /dev/null differ
diff --git a/public/emoji/2620.svg b/public/emoji/2620.svg
index c8858de6ef..6275f091d8 100644
--- a/public/emoji/2620.svg
+++ b/public/emoji/2620.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2622.png b/public/emoji/2622.png
deleted file mode 100644
index 3b46199fe3..0000000000
Binary files a/public/emoji/2622.png and /dev/null differ
diff --git a/public/emoji/2622.svg b/public/emoji/2622.svg
index b2068336e1..22fe96a7bf 100644
--- a/public/emoji/2622.svg
+++ b/public/emoji/2622.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2623.png b/public/emoji/2623.png
deleted file mode 100644
index 007b4fc2d8..0000000000
Binary files a/public/emoji/2623.png and /dev/null differ
diff --git a/public/emoji/2623.svg b/public/emoji/2623.svg
index 60a22e51b7..2240cd6d92 100644
--- a/public/emoji/2623.svg
+++ b/public/emoji/2623.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2626.png b/public/emoji/2626.png
deleted file mode 100644
index 0530e33a4d..0000000000
Binary files a/public/emoji/2626.png and /dev/null differ
diff --git a/public/emoji/2626.svg b/public/emoji/2626.svg
index cc62ecdb01..a1fccfed45 100644
--- a/public/emoji/2626.svg
+++ b/public/emoji/2626.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/262a.png b/public/emoji/262a.png
deleted file mode 100644
index e182636457..0000000000
Binary files a/public/emoji/262a.png and /dev/null differ
diff --git a/public/emoji/262a.svg b/public/emoji/262a.svg
index 87fd9c7040..478d46894f 100644
--- a/public/emoji/262a.svg
+++ b/public/emoji/262a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/262e.png b/public/emoji/262e.png
deleted file mode 100644
index 86033faf47..0000000000
Binary files a/public/emoji/262e.png and /dev/null differ
diff --git a/public/emoji/262e.svg b/public/emoji/262e.svg
index 01a035a556..7ff833d39c 100644
--- a/public/emoji/262e.svg
+++ b/public/emoji/262e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/262f.png b/public/emoji/262f.png
deleted file mode 100644
index f2900f6338..0000000000
Binary files a/public/emoji/262f.png and /dev/null differ
diff --git a/public/emoji/262f.svg b/public/emoji/262f.svg
index e232b66922..48aec61aeb 100644
--- a/public/emoji/262f.svg
+++ b/public/emoji/262f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2638.png b/public/emoji/2638.png
deleted file mode 100644
index 3666db0016..0000000000
Binary files a/public/emoji/2638.png and /dev/null differ
diff --git a/public/emoji/2638.svg b/public/emoji/2638.svg
index 8c09aa21ad..c65083aade 100644
--- a/public/emoji/2638.svg
+++ b/public/emoji/2638.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2639.png b/public/emoji/2639.png
deleted file mode 100644
index 6ae71f233b..0000000000
Binary files a/public/emoji/2639.png and /dev/null differ
diff --git a/public/emoji/2639.svg b/public/emoji/2639.svg
index ead0eb5b3b..b6f0b04a26 100644
--- a/public/emoji/2639.svg
+++ b/public/emoji/2639.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/263a.png b/public/emoji/263a.png
deleted file mode 100644
index e9e53c03d4..0000000000
Binary files a/public/emoji/263a.png and /dev/null differ
diff --git a/public/emoji/263a.svg b/public/emoji/263a.svg
index f8a5cb762d..2b358e7dc9 100644
--- a/public/emoji/263a.svg
+++ b/public/emoji/263a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2640.svg b/public/emoji/2640.svg
new file mode 100644
index 0000000000..9605f80234
--- /dev/null
+++ b/public/emoji/2640.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/2642.svg b/public/emoji/2642.svg
new file mode 100644
index 0000000000..2eb7e7fc03
--- /dev/null
+++ b/public/emoji/2642.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/2648.png b/public/emoji/2648.png
deleted file mode 100644
index 21a189d0ed..0000000000
Binary files a/public/emoji/2648.png and /dev/null differ
diff --git a/public/emoji/2648.svg b/public/emoji/2648.svg
index f85279e573..bc556d9f4f 100644
--- a/public/emoji/2648.svg
+++ b/public/emoji/2648.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2649.png b/public/emoji/2649.png
deleted file mode 100644
index b2a370df42..0000000000
Binary files a/public/emoji/2649.png and /dev/null differ
diff --git a/public/emoji/2649.svg b/public/emoji/2649.svg
index a569cb32ba..eca8d4a547 100644
--- a/public/emoji/2649.svg
+++ b/public/emoji/2649.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/264a.png b/public/emoji/264a.png
deleted file mode 100644
index 1a09698cf0..0000000000
Binary files a/public/emoji/264a.png and /dev/null differ
diff --git a/public/emoji/264a.svg b/public/emoji/264a.svg
index f87603f68e..954e211dcd 100644
--- a/public/emoji/264a.svg
+++ b/public/emoji/264a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/264b.png b/public/emoji/264b.png
deleted file mode 100644
index a64af07cb5..0000000000
Binary files a/public/emoji/264b.png and /dev/null differ
diff --git a/public/emoji/264b.svg b/public/emoji/264b.svg
index 703fda7ffe..f8f82b780f 100644
--- a/public/emoji/264b.svg
+++ b/public/emoji/264b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/264c.png b/public/emoji/264c.png
deleted file mode 100644
index 30158d34de..0000000000
Binary files a/public/emoji/264c.png and /dev/null differ
diff --git a/public/emoji/264c.svg b/public/emoji/264c.svg
index e5a2ad1c49..8529aac4e8 100644
--- a/public/emoji/264c.svg
+++ b/public/emoji/264c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/264d.png b/public/emoji/264d.png
deleted file mode 100644
index a6b56c2cb5..0000000000
Binary files a/public/emoji/264d.png and /dev/null differ
diff --git a/public/emoji/264d.svg b/public/emoji/264d.svg
index 24f569cc70..74919add45 100644
--- a/public/emoji/264d.svg
+++ b/public/emoji/264d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/264e.png b/public/emoji/264e.png
deleted file mode 100644
index 8fd133a357..0000000000
Binary files a/public/emoji/264e.png and /dev/null differ
diff --git a/public/emoji/264e.svg b/public/emoji/264e.svg
index a7c8e0a710..3879b8a685 100644
--- a/public/emoji/264e.svg
+++ b/public/emoji/264e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/264f.png b/public/emoji/264f.png
deleted file mode 100644
index c31a992045..0000000000
Binary files a/public/emoji/264f.png and /dev/null differ
diff --git a/public/emoji/264f.svg b/public/emoji/264f.svg
index 78de283a6b..b8a7bf8d67 100644
--- a/public/emoji/264f.svg
+++ b/public/emoji/264f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2650.png b/public/emoji/2650.png
deleted file mode 100644
index f8d94ff292..0000000000
Binary files a/public/emoji/2650.png and /dev/null differ
diff --git a/public/emoji/2650.svg b/public/emoji/2650.svg
index 0e7fcde6e6..a4d391290b 100644
--- a/public/emoji/2650.svg
+++ b/public/emoji/2650.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2651.png b/public/emoji/2651.png
deleted file mode 100644
index 6293d31d4b..0000000000
Binary files a/public/emoji/2651.png and /dev/null differ
diff --git a/public/emoji/2651.svg b/public/emoji/2651.svg
index d632096556..7eabb46aae 100644
--- a/public/emoji/2651.svg
+++ b/public/emoji/2651.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2652.png b/public/emoji/2652.png
deleted file mode 100644
index 641a4f6888..0000000000
Binary files a/public/emoji/2652.png and /dev/null differ
diff --git a/public/emoji/2652.svg b/public/emoji/2652.svg
index 7b262f869d..8644b787e3 100644
--- a/public/emoji/2652.svg
+++ b/public/emoji/2652.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2653.png b/public/emoji/2653.png
deleted file mode 100644
index 7f6f646a95..0000000000
Binary files a/public/emoji/2653.png and /dev/null differ
diff --git a/public/emoji/2653.svg b/public/emoji/2653.svg
index d50acfc893..c529897f80 100644
--- a/public/emoji/2653.svg
+++ b/public/emoji/2653.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2660.png b/public/emoji/2660.png
deleted file mode 100644
index f822f184cb..0000000000
Binary files a/public/emoji/2660.png and /dev/null differ
diff --git a/public/emoji/2660.svg b/public/emoji/2660.svg
index 0d9699bd5f..687a3c1504 100644
--- a/public/emoji/2660.svg
+++ b/public/emoji/2660.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2663.png b/public/emoji/2663.png
deleted file mode 100644
index 4f2abf791c..0000000000
Binary files a/public/emoji/2663.png and /dev/null differ
diff --git a/public/emoji/2663.svg b/public/emoji/2663.svg
index 2ee52dd62f..d1afd90e12 100644
--- a/public/emoji/2663.svg
+++ b/public/emoji/2663.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2665.png b/public/emoji/2665.png
deleted file mode 100644
index 393c3ed526..0000000000
Binary files a/public/emoji/2665.png and /dev/null differ
diff --git a/public/emoji/2665.svg b/public/emoji/2665.svg
index 6659eb13c8..a4d85a5123 100644
--- a/public/emoji/2665.svg
+++ b/public/emoji/2665.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2666.png b/public/emoji/2666.png
deleted file mode 100644
index 1f25f51f97..0000000000
Binary files a/public/emoji/2666.png and /dev/null differ
diff --git a/public/emoji/2666.svg b/public/emoji/2666.svg
index 654b2f4b63..561a85b2f9 100644
--- a/public/emoji/2666.svg
+++ b/public/emoji/2666.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2668.png b/public/emoji/2668.png
deleted file mode 100644
index 3d9df2d947..0000000000
Binary files a/public/emoji/2668.png and /dev/null differ
diff --git a/public/emoji/2668.svg b/public/emoji/2668.svg
index e65cbcb1a0..8aa2f4b6b6 100644
--- a/public/emoji/2668.svg
+++ b/public/emoji/2668.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/267b.png b/public/emoji/267b.png
deleted file mode 100644
index 9221f095c3..0000000000
Binary files a/public/emoji/267b.png and /dev/null differ
diff --git a/public/emoji/267b.svg b/public/emoji/267b.svg
index 7d80b6fe73..118b9a7b97 100644
--- a/public/emoji/267b.svg
+++ b/public/emoji/267b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/267f.png b/public/emoji/267f.png
deleted file mode 100644
index 4e5b2698ea..0000000000
Binary files a/public/emoji/267f.png and /dev/null differ
diff --git a/public/emoji/267f.svg b/public/emoji/267f.svg
index 3ee86eb6ca..a082dbd57b 100644
--- a/public/emoji/267f.svg
+++ b/public/emoji/267f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2692.png b/public/emoji/2692.png
deleted file mode 100644
index 3bee30ec58..0000000000
Binary files a/public/emoji/2692.png and /dev/null differ
diff --git a/public/emoji/2692.svg b/public/emoji/2692.svg
index 10516b7bf5..0bb18a1ab0 100644
--- a/public/emoji/2692.svg
+++ b/public/emoji/2692.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2693.png b/public/emoji/2693.png
deleted file mode 100644
index b036f70a00..0000000000
Binary files a/public/emoji/2693.png and /dev/null differ
diff --git a/public/emoji/2693.svg b/public/emoji/2693.svg
index b5f5418d10..752c9d2427 100644
--- a/public/emoji/2693.svg
+++ b/public/emoji/2693.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2694.png b/public/emoji/2694.png
deleted file mode 100644
index 907e960713..0000000000
Binary files a/public/emoji/2694.png and /dev/null differ
diff --git a/public/emoji/2694.svg b/public/emoji/2694.svg
index 368fdc0541..3fe031fe88 100644
--- a/public/emoji/2694.svg
+++ b/public/emoji/2694.svg
@@ -1,3 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2695.svg b/public/emoji/2695.svg
new file mode 100644
index 0000000000..636f7ed26b
--- /dev/null
+++ b/public/emoji/2695.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/2696.png b/public/emoji/2696.png
deleted file mode 100644
index 0757eda168..0000000000
Binary files a/public/emoji/2696.png and /dev/null differ
diff --git a/public/emoji/2696.svg b/public/emoji/2696.svg
index c8042bbcbc..77d5349aba 100644
--- a/public/emoji/2696.svg
+++ b/public/emoji/2696.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2697.png b/public/emoji/2697.png
deleted file mode 100644
index 307a732424..0000000000
Binary files a/public/emoji/2697.png and /dev/null differ
diff --git a/public/emoji/2697.svg b/public/emoji/2697.svg
index 6e63dacb8f..3e8b73d51d 100644
--- a/public/emoji/2697.svg
+++ b/public/emoji/2697.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2699.png b/public/emoji/2699.png
deleted file mode 100644
index 2a1cc2c0ff..0000000000
Binary files a/public/emoji/2699.png and /dev/null differ
diff --git a/public/emoji/2699.svg b/public/emoji/2699.svg
index 9230ed01a4..616e7960f9 100644
--- a/public/emoji/2699.svg
+++ b/public/emoji/2699.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/269b.png b/public/emoji/269b.png
deleted file mode 100644
index 5f4567aa09..0000000000
Binary files a/public/emoji/269b.png and /dev/null differ
diff --git a/public/emoji/269b.svg b/public/emoji/269b.svg
index 0b02d3cd4c..67f33674f1 100644
--- a/public/emoji/269b.svg
+++ b/public/emoji/269b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/269c.png b/public/emoji/269c.png
deleted file mode 100644
index c9250d27fa..0000000000
Binary files a/public/emoji/269c.png and /dev/null differ
diff --git a/public/emoji/269c.svg b/public/emoji/269c.svg
index ce5bad9515..da380fdb08 100644
--- a/public/emoji/269c.svg
+++ b/public/emoji/269c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26a0.png b/public/emoji/26a0.png
deleted file mode 100644
index 35691c2ed9..0000000000
Binary files a/public/emoji/26a0.png and /dev/null differ
diff --git a/public/emoji/26a0.svg b/public/emoji/26a0.svg
index e6b14203c2..81952f7d5c 100644
--- a/public/emoji/26a0.svg
+++ b/public/emoji/26a0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26a1.png b/public/emoji/26a1.png
deleted file mode 100644
index 47e68e48e4..0000000000
Binary files a/public/emoji/26a1.png and /dev/null differ
diff --git a/public/emoji/26a1.svg b/public/emoji/26a1.svg
index ac811c568c..2e816f4375 100644
--- a/public/emoji/26a1.svg
+++ b/public/emoji/26a1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26aa.png b/public/emoji/26aa.png
deleted file mode 100644
index c19e15684d..0000000000
Binary files a/public/emoji/26aa.png and /dev/null differ
diff --git a/public/emoji/26aa.svg b/public/emoji/26aa.svg
index fb39d3ebbd..edf7f09793 100644
--- a/public/emoji/26aa.svg
+++ b/public/emoji/26aa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26ab.png b/public/emoji/26ab.png
deleted file mode 100644
index b62b87170e..0000000000
Binary files a/public/emoji/26ab.png and /dev/null differ
diff --git a/public/emoji/26ab.svg b/public/emoji/26ab.svg
index 137a56b1f5..c7f93882cb 100644
--- a/public/emoji/26ab.svg
+++ b/public/emoji/26ab.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26b0.png b/public/emoji/26b0.png
deleted file mode 100644
index fb2932aa5f..0000000000
Binary files a/public/emoji/26b0.png and /dev/null differ
diff --git a/public/emoji/26b0.svg b/public/emoji/26b0.svg
index 8fb8eb1177..fb6a252760 100644
--- a/public/emoji/26b0.svg
+++ b/public/emoji/26b0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26b1.png b/public/emoji/26b1.png
deleted file mode 100644
index 6b5b350343..0000000000
Binary files a/public/emoji/26b1.png and /dev/null differ
diff --git a/public/emoji/26b1.svg b/public/emoji/26b1.svg
index a752a31832..2bbe1e997a 100644
--- a/public/emoji/26b1.svg
+++ b/public/emoji/26b1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26bd.png b/public/emoji/26bd.png
deleted file mode 100644
index 28cfa218d6..0000000000
Binary files a/public/emoji/26bd.png and /dev/null differ
diff --git a/public/emoji/26bd.svg b/public/emoji/26bd.svg
index dc2380edd3..5aad1297f3 100644
--- a/public/emoji/26bd.svg
+++ b/public/emoji/26bd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26be.png b/public/emoji/26be.png
deleted file mode 100644
index f8463f1538..0000000000
Binary files a/public/emoji/26be.png and /dev/null differ
diff --git a/public/emoji/26be.svg b/public/emoji/26be.svg
index efe314bc6a..6e7f410280 100644
--- a/public/emoji/26be.svg
+++ b/public/emoji/26be.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26c4.png b/public/emoji/26c4.png
deleted file mode 100644
index 20c177c2af..0000000000
Binary files a/public/emoji/26c4.png and /dev/null differ
diff --git a/public/emoji/26c4.svg b/public/emoji/26c4.svg
index 3d083f6ce6..f202eaea4c 100644
--- a/public/emoji/26c4.svg
+++ b/public/emoji/26c4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26c5.png b/public/emoji/26c5.png
deleted file mode 100644
index a55e59c344..0000000000
Binary files a/public/emoji/26c5.png and /dev/null differ
diff --git a/public/emoji/26c5.svg b/public/emoji/26c5.svg
index ea9730cc16..d8d053b71c 100644
--- a/public/emoji/26c5.svg
+++ b/public/emoji/26c5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26c8.png b/public/emoji/26c8.png
deleted file mode 100644
index 31a26a1b6e..0000000000
Binary files a/public/emoji/26c8.png and /dev/null differ
diff --git a/public/emoji/26c8.svg b/public/emoji/26c8.svg
index 03409bb69c..86e3c01caa 100644
--- a/public/emoji/26c8.svg
+++ b/public/emoji/26c8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26ce.png b/public/emoji/26ce.png
deleted file mode 100644
index 0a780a700d..0000000000
Binary files a/public/emoji/26ce.png and /dev/null differ
diff --git a/public/emoji/26ce.svg b/public/emoji/26ce.svg
index bacb7e3e8a..9fc2d99ce8 100644
--- a/public/emoji/26ce.svg
+++ b/public/emoji/26ce.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26cf.png b/public/emoji/26cf.png
deleted file mode 100644
index 6370fe6d79..0000000000
Binary files a/public/emoji/26cf.png and /dev/null differ
diff --git a/public/emoji/26cf.svg b/public/emoji/26cf.svg
index 3c30f7f3c9..5e434df615 100644
--- a/public/emoji/26cf.svg
+++ b/public/emoji/26cf.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26d1.png b/public/emoji/26d1.png
deleted file mode 100644
index 7140a67603..0000000000
Binary files a/public/emoji/26d1.png and /dev/null differ
diff --git a/public/emoji/26d1.svg b/public/emoji/26d1.svg
index bcdd92d683..3ab886e577 100644
--- a/public/emoji/26d1.svg
+++ b/public/emoji/26d1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26d3.png b/public/emoji/26d3.png
deleted file mode 100644
index 57f46139a0..0000000000
Binary files a/public/emoji/26d3.png and /dev/null differ
diff --git a/public/emoji/26d3.svg b/public/emoji/26d3.svg
index a34973b8c2..636fc4edcc 100644
--- a/public/emoji/26d3.svg
+++ b/public/emoji/26d3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26d4.png b/public/emoji/26d4.png
deleted file mode 100644
index 476800fc5c..0000000000
Binary files a/public/emoji/26d4.png and /dev/null differ
diff --git a/public/emoji/26d4.svg b/public/emoji/26d4.svg
index 61545291b1..433994c942 100644
--- a/public/emoji/26d4.svg
+++ b/public/emoji/26d4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26e9.png b/public/emoji/26e9.png
deleted file mode 100644
index 5a344975bf..0000000000
Binary files a/public/emoji/26e9.png and /dev/null differ
diff --git a/public/emoji/26e9.svg b/public/emoji/26e9.svg
index 570b46d899..28a4e20e44 100644
--- a/public/emoji/26e9.svg
+++ b/public/emoji/26e9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26ea.png b/public/emoji/26ea.png
deleted file mode 100644
index 8242fd272b..0000000000
Binary files a/public/emoji/26ea.png and /dev/null differ
diff --git a/public/emoji/26ea.svg b/public/emoji/26ea.svg
index 6d8236c253..66daae9731 100644
--- a/public/emoji/26ea.svg
+++ b/public/emoji/26ea.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f0.png b/public/emoji/26f0.png
deleted file mode 100644
index 6722ebdd29..0000000000
Binary files a/public/emoji/26f0.png and /dev/null differ
diff --git a/public/emoji/26f0.svg b/public/emoji/26f0.svg
index ae954cfb07..25a3d7608c 100644
--- a/public/emoji/26f0.svg
+++ b/public/emoji/26f0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f1.png b/public/emoji/26f1.png
deleted file mode 100644
index 220a74f813..0000000000
Binary files a/public/emoji/26f1.png and /dev/null differ
diff --git a/public/emoji/26f1.svg b/public/emoji/26f1.svg
index 641b4551d0..582dceb0d1 100644
--- a/public/emoji/26f1.svg
+++ b/public/emoji/26f1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f2.png b/public/emoji/26f2.png
deleted file mode 100644
index 293f5d91c0..0000000000
Binary files a/public/emoji/26f2.png and /dev/null differ
diff --git a/public/emoji/26f2.svg b/public/emoji/26f2.svg
index 377ecf8429..b12362cbf6 100644
--- a/public/emoji/26f2.svg
+++ b/public/emoji/26f2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f3.png b/public/emoji/26f3.png
deleted file mode 100644
index f65a21d8a4..0000000000
Binary files a/public/emoji/26f3.png and /dev/null differ
diff --git a/public/emoji/26f3.svg b/public/emoji/26f3.svg
index cd35a12deb..380db9ad11 100644
--- a/public/emoji/26f3.svg
+++ b/public/emoji/26f3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f4.png b/public/emoji/26f4.png
deleted file mode 100644
index 41816b3ae3..0000000000
Binary files a/public/emoji/26f4.png and /dev/null differ
diff --git a/public/emoji/26f4.svg b/public/emoji/26f4.svg
index 306970ebc3..ecdfb117e7 100644
--- a/public/emoji/26f4.svg
+++ b/public/emoji/26f4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f5.png b/public/emoji/26f5.png
deleted file mode 100644
index 772ef11da5..0000000000
Binary files a/public/emoji/26f5.png and /dev/null differ
diff --git a/public/emoji/26f5.svg b/public/emoji/26f5.svg
index e69f924b9d..7cc9620fdc 100644
--- a/public/emoji/26f5.svg
+++ b/public/emoji/26f5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f7-1f3fb.svg b/public/emoji/26f7-1f3fb.svg
new file mode 100644
index 0000000000..fb061e6143
--- /dev/null
+++ b/public/emoji/26f7-1f3fb.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f7-1f3fc.svg b/public/emoji/26f7-1f3fc.svg
new file mode 100644
index 0000000000..2dd9d8b6a2
--- /dev/null
+++ b/public/emoji/26f7-1f3fc.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f7-1f3fd.svg b/public/emoji/26f7-1f3fd.svg
new file mode 100644
index 0000000000..74313649bb
--- /dev/null
+++ b/public/emoji/26f7-1f3fd.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f7-1f3fe.svg b/public/emoji/26f7-1f3fe.svg
new file mode 100644
index 0000000000..665d80d24c
--- /dev/null
+++ b/public/emoji/26f7-1f3fe.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f7-1f3ff.svg b/public/emoji/26f7-1f3ff.svg
new file mode 100644
index 0000000000..125156eca1
--- /dev/null
+++ b/public/emoji/26f7-1f3ff.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f7.png b/public/emoji/26f7.png
deleted file mode 100644
index 2eb3bdce2a..0000000000
Binary files a/public/emoji/26f7.png and /dev/null differ
diff --git a/public/emoji/26f7.svg b/public/emoji/26f7.svg
index a9fb9b84df..24a5ee2d74 100644
--- a/public/emoji/26f7.svg
+++ b/public/emoji/26f7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f8.png b/public/emoji/26f8.png
deleted file mode 100644
index 8c449b0c03..0000000000
Binary files a/public/emoji/26f8.png and /dev/null differ
diff --git a/public/emoji/26f8.svg b/public/emoji/26f8.svg
index 60adcaf3c6..081c919469 100644
--- a/public/emoji/26f8.svg
+++ b/public/emoji/26f8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f9-1f3fb-200d-2640-fe0f.svg b/public/emoji/26f9-1f3fb-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..aaa5e9b8d3
--- /dev/null
+++ b/public/emoji/26f9-1f3fb-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9-1f3fb-200d-2642-fe0f.svg b/public/emoji/26f9-1f3fb-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..e54effa503
--- /dev/null
+++ b/public/emoji/26f9-1f3fb-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9-1f3fb.png b/public/emoji/26f9-1f3fb.png
deleted file mode 100644
index cd12c7ab9b..0000000000
Binary files a/public/emoji/26f9-1f3fb.png and /dev/null differ
diff --git a/public/emoji/26f9-1f3fb.svg b/public/emoji/26f9-1f3fb.svg
index 480994ca90..e54effa503 100644
--- a/public/emoji/26f9-1f3fb.svg
+++ b/public/emoji/26f9-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f9-1f3fc-200d-2640-fe0f.svg b/public/emoji/26f9-1f3fc-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..dcfff64d7d
--- /dev/null
+++ b/public/emoji/26f9-1f3fc-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9-1f3fc-200d-2642-fe0f.svg b/public/emoji/26f9-1f3fc-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..41e49a818d
--- /dev/null
+++ b/public/emoji/26f9-1f3fc-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9-1f3fc.png b/public/emoji/26f9-1f3fc.png
deleted file mode 100644
index f892fd596d..0000000000
Binary files a/public/emoji/26f9-1f3fc.png and /dev/null differ
diff --git a/public/emoji/26f9-1f3fc.svg b/public/emoji/26f9-1f3fc.svg
index dd18a65d3b..41e49a818d 100644
--- a/public/emoji/26f9-1f3fc.svg
+++ b/public/emoji/26f9-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f9-1f3fd-200d-2640-fe0f.svg b/public/emoji/26f9-1f3fd-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..3c67cdb51a
--- /dev/null
+++ b/public/emoji/26f9-1f3fd-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9-1f3fd-200d-2642-fe0f.svg b/public/emoji/26f9-1f3fd-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..25e93c8b5c
--- /dev/null
+++ b/public/emoji/26f9-1f3fd-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9-1f3fd.png b/public/emoji/26f9-1f3fd.png
deleted file mode 100644
index e109997a91..0000000000
Binary files a/public/emoji/26f9-1f3fd.png and /dev/null differ
diff --git a/public/emoji/26f9-1f3fd.svg b/public/emoji/26f9-1f3fd.svg
index 0af260864d..25e93c8b5c 100644
--- a/public/emoji/26f9-1f3fd.svg
+++ b/public/emoji/26f9-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f9-1f3fe-200d-2640-fe0f.svg b/public/emoji/26f9-1f3fe-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..79ebd4ebaa
--- /dev/null
+++ b/public/emoji/26f9-1f3fe-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9-1f3fe-200d-2642-fe0f.svg b/public/emoji/26f9-1f3fe-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..07ff374472
--- /dev/null
+++ b/public/emoji/26f9-1f3fe-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9-1f3fe.png b/public/emoji/26f9-1f3fe.png
deleted file mode 100644
index 3b90b946af..0000000000
Binary files a/public/emoji/26f9-1f3fe.png and /dev/null differ
diff --git a/public/emoji/26f9-1f3fe.svg b/public/emoji/26f9-1f3fe.svg
index b0b9d36420..07ff374472 100644
--- a/public/emoji/26f9-1f3fe.svg
+++ b/public/emoji/26f9-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f9-1f3ff-200d-2640-fe0f.svg b/public/emoji/26f9-1f3ff-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..8976d8fd8f
--- /dev/null
+++ b/public/emoji/26f9-1f3ff-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9-1f3ff-200d-2642-fe0f.svg b/public/emoji/26f9-1f3ff-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..1e4c967176
--- /dev/null
+++ b/public/emoji/26f9-1f3ff-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9-1f3ff.png b/public/emoji/26f9-1f3ff.png
deleted file mode 100644
index bafed7828a..0000000000
Binary files a/public/emoji/26f9-1f3ff.png and /dev/null differ
diff --git a/public/emoji/26f9-1f3ff.svg b/public/emoji/26f9-1f3ff.svg
index f7ee9300db..1e4c967176 100644
--- a/public/emoji/26f9-1f3ff.svg
+++ b/public/emoji/26f9-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26f9-fe0f-200d-2640-fe0f.svg b/public/emoji/26f9-fe0f-200d-2640-fe0f.svg
new file mode 100644
index 0000000000..72d0a9b234
--- /dev/null
+++ b/public/emoji/26f9-fe0f-200d-2640-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9-fe0f-200d-2642-fe0f.svg b/public/emoji/26f9-fe0f-200d-2642-fe0f.svg
new file mode 100644
index 0000000000..28bef1b8d5
--- /dev/null
+++ b/public/emoji/26f9-fe0f-200d-2642-fe0f.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/26f9.png b/public/emoji/26f9.png
deleted file mode 100644
index 8ce90c5cad..0000000000
Binary files a/public/emoji/26f9.png and /dev/null differ
diff --git a/public/emoji/26f9.svg b/public/emoji/26f9.svg
index ad4502b149..28bef1b8d5 100644
--- a/public/emoji/26f9.svg
+++ b/public/emoji/26f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26fa.png b/public/emoji/26fa.png
deleted file mode 100644
index 3fddcfc56e..0000000000
Binary files a/public/emoji/26fa.png and /dev/null differ
diff --git a/public/emoji/26fa.svg b/public/emoji/26fa.svg
index 73bb5136fd..3fd15c4671 100644
--- a/public/emoji/26fa.svg
+++ b/public/emoji/26fa.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/26fd.png b/public/emoji/26fd.png
deleted file mode 100644
index 05b1879447..0000000000
Binary files a/public/emoji/26fd.png and /dev/null differ
diff --git a/public/emoji/26fd.svg b/public/emoji/26fd.svg
index cfc136ba86..d234f20df1 100644
--- a/public/emoji/26fd.svg
+++ b/public/emoji/26fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2702.png b/public/emoji/2702.png
deleted file mode 100644
index 270571c8cd..0000000000
Binary files a/public/emoji/2702.png and /dev/null differ
diff --git a/public/emoji/2702.svg b/public/emoji/2702.svg
index a5e934da6d..eb14f2d344 100644
--- a/public/emoji/2702.svg
+++ b/public/emoji/2702.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2705.png b/public/emoji/2705.png
deleted file mode 100644
index e55f087e54..0000000000
Binary files a/public/emoji/2705.png and /dev/null differ
diff --git a/public/emoji/2705.svg b/public/emoji/2705.svg
index 4f0474ade5..2aba51916b 100644
--- a/public/emoji/2705.svg
+++ b/public/emoji/2705.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2708.png b/public/emoji/2708.png
deleted file mode 100644
index 268d2ac3c8..0000000000
Binary files a/public/emoji/2708.png and /dev/null differ
diff --git a/public/emoji/2708.svg b/public/emoji/2708.svg
index 92d5f73194..12fb9b5c37 100644
--- a/public/emoji/2708.svg
+++ b/public/emoji/2708.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2709.png b/public/emoji/2709.png
deleted file mode 100644
index ec77ac375a..0000000000
Binary files a/public/emoji/2709.png and /dev/null differ
diff --git a/public/emoji/2709.svg b/public/emoji/2709.svg
index 4337c482eb..0c37fcb8b5 100644
--- a/public/emoji/2709.svg
+++ b/public/emoji/2709.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270a-1f3fb.png b/public/emoji/270a-1f3fb.png
deleted file mode 100644
index 02809e2dd6..0000000000
Binary files a/public/emoji/270a-1f3fb.png and /dev/null differ
diff --git a/public/emoji/270a-1f3fb.svg b/public/emoji/270a-1f3fb.svg
index 425a770958..d15ffb8438 100644
--- a/public/emoji/270a-1f3fb.svg
+++ b/public/emoji/270a-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270a-1f3fc.png b/public/emoji/270a-1f3fc.png
deleted file mode 100644
index 5de3481038..0000000000
Binary files a/public/emoji/270a-1f3fc.png and /dev/null differ
diff --git a/public/emoji/270a-1f3fc.svg b/public/emoji/270a-1f3fc.svg
index 64c091bdab..d3ef802951 100644
--- a/public/emoji/270a-1f3fc.svg
+++ b/public/emoji/270a-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270a-1f3fd.png b/public/emoji/270a-1f3fd.png
deleted file mode 100644
index 0d5240129b..0000000000
Binary files a/public/emoji/270a-1f3fd.png and /dev/null differ
diff --git a/public/emoji/270a-1f3fd.svg b/public/emoji/270a-1f3fd.svg
index ac29bb90cb..658e9d48ab 100644
--- a/public/emoji/270a-1f3fd.svg
+++ b/public/emoji/270a-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270a-1f3fe.png b/public/emoji/270a-1f3fe.png
deleted file mode 100644
index a95c0dd634..0000000000
Binary files a/public/emoji/270a-1f3fe.png and /dev/null differ
diff --git a/public/emoji/270a-1f3fe.svg b/public/emoji/270a-1f3fe.svg
index 6b2ae91c60..dec8e82fed 100644
--- a/public/emoji/270a-1f3fe.svg
+++ b/public/emoji/270a-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270a-1f3ff.png b/public/emoji/270a-1f3ff.png
deleted file mode 100644
index a2f092fd8c..0000000000
Binary files a/public/emoji/270a-1f3ff.png and /dev/null differ
diff --git a/public/emoji/270a-1f3ff.svg b/public/emoji/270a-1f3ff.svg
index ab9f9952ec..5be8afe572 100644
--- a/public/emoji/270a-1f3ff.svg
+++ b/public/emoji/270a-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270a.png b/public/emoji/270a.png
deleted file mode 100644
index de33592bf9..0000000000
Binary files a/public/emoji/270a.png and /dev/null differ
diff --git a/public/emoji/270a.svg b/public/emoji/270a.svg
index 7f6e6cee72..de19462651 100644
--- a/public/emoji/270a.svg
+++ b/public/emoji/270a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270b-1f3fb.png b/public/emoji/270b-1f3fb.png
deleted file mode 100644
index 3b752902c0..0000000000
Binary files a/public/emoji/270b-1f3fb.png and /dev/null differ
diff --git a/public/emoji/270b-1f3fb.svg b/public/emoji/270b-1f3fb.svg
index 5345aea135..0641793ea9 100644
--- a/public/emoji/270b-1f3fb.svg
+++ b/public/emoji/270b-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270b-1f3fc.png b/public/emoji/270b-1f3fc.png
deleted file mode 100644
index 44e2a514c6..0000000000
Binary files a/public/emoji/270b-1f3fc.png and /dev/null differ
diff --git a/public/emoji/270b-1f3fc.svg b/public/emoji/270b-1f3fc.svg
index 99d1359be7..f0352b8da9 100644
--- a/public/emoji/270b-1f3fc.svg
+++ b/public/emoji/270b-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270b-1f3fd.png b/public/emoji/270b-1f3fd.png
deleted file mode 100644
index 5bb62a7528..0000000000
Binary files a/public/emoji/270b-1f3fd.png and /dev/null differ
diff --git a/public/emoji/270b-1f3fd.svg b/public/emoji/270b-1f3fd.svg
index 258c678f94..77154d0704 100644
--- a/public/emoji/270b-1f3fd.svg
+++ b/public/emoji/270b-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270b-1f3fe.png b/public/emoji/270b-1f3fe.png
deleted file mode 100644
index c7f8c9ec27..0000000000
Binary files a/public/emoji/270b-1f3fe.png and /dev/null differ
diff --git a/public/emoji/270b-1f3fe.svg b/public/emoji/270b-1f3fe.svg
index 3b7b55ff50..6d44c9b38b 100644
--- a/public/emoji/270b-1f3fe.svg
+++ b/public/emoji/270b-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270b-1f3ff.png b/public/emoji/270b-1f3ff.png
deleted file mode 100644
index c601b58a73..0000000000
Binary files a/public/emoji/270b-1f3ff.png and /dev/null differ
diff --git a/public/emoji/270b-1f3ff.svg b/public/emoji/270b-1f3ff.svg
index b1e851268a..35e7bb3ec9 100644
--- a/public/emoji/270b-1f3ff.svg
+++ b/public/emoji/270b-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270b.png b/public/emoji/270b.png
deleted file mode 100644
index 6b2954315d..0000000000
Binary files a/public/emoji/270b.png and /dev/null differ
diff --git a/public/emoji/270b.svg b/public/emoji/270b.svg
index 8aca81b82b..8287246378 100644
--- a/public/emoji/270b.svg
+++ b/public/emoji/270b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270c-1f3fb.png b/public/emoji/270c-1f3fb.png
deleted file mode 100644
index 6ac54a745f..0000000000
Binary files a/public/emoji/270c-1f3fb.png and /dev/null differ
diff --git a/public/emoji/270c-1f3fb.svg b/public/emoji/270c-1f3fb.svg
index 2053e46dc4..447137caa3 100644
--- a/public/emoji/270c-1f3fb.svg
+++ b/public/emoji/270c-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270c-1f3fc.png b/public/emoji/270c-1f3fc.png
deleted file mode 100644
index 6dd9669866..0000000000
Binary files a/public/emoji/270c-1f3fc.png and /dev/null differ
diff --git a/public/emoji/270c-1f3fc.svg b/public/emoji/270c-1f3fc.svg
index 7be61714c9..908add91ce 100644
--- a/public/emoji/270c-1f3fc.svg
+++ b/public/emoji/270c-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270c-1f3fd.png b/public/emoji/270c-1f3fd.png
deleted file mode 100644
index a615e53f02..0000000000
Binary files a/public/emoji/270c-1f3fd.png and /dev/null differ
diff --git a/public/emoji/270c-1f3fd.svg b/public/emoji/270c-1f3fd.svg
index fb5387e105..1a814abd83 100644
--- a/public/emoji/270c-1f3fd.svg
+++ b/public/emoji/270c-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270c-1f3fe.png b/public/emoji/270c-1f3fe.png
deleted file mode 100644
index 33a34bd5a7..0000000000
Binary files a/public/emoji/270c-1f3fe.png and /dev/null differ
diff --git a/public/emoji/270c-1f3fe.svg b/public/emoji/270c-1f3fe.svg
index 2b8a95d8e6..a8ee7f0ed5 100644
--- a/public/emoji/270c-1f3fe.svg
+++ b/public/emoji/270c-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270c-1f3ff.png b/public/emoji/270c-1f3ff.png
deleted file mode 100644
index 45ad14b6c9..0000000000
Binary files a/public/emoji/270c-1f3ff.png and /dev/null differ
diff --git a/public/emoji/270c-1f3ff.svg b/public/emoji/270c-1f3ff.svg
index 8d41bbcdc4..bcff574adf 100644
--- a/public/emoji/270c-1f3ff.svg
+++ b/public/emoji/270c-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270c.png b/public/emoji/270c.png
deleted file mode 100644
index 70c5516ffe..0000000000
Binary files a/public/emoji/270c.png and /dev/null differ
diff --git a/public/emoji/270c.svg b/public/emoji/270c.svg
index 78682b572e..0fbd3b5fff 100644
--- a/public/emoji/270c.svg
+++ b/public/emoji/270c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270d-1f3fb.png b/public/emoji/270d-1f3fb.png
deleted file mode 100644
index 7923d8ebb1..0000000000
Binary files a/public/emoji/270d-1f3fb.png and /dev/null differ
diff --git a/public/emoji/270d-1f3fb.svg b/public/emoji/270d-1f3fb.svg
index 438ab1a8ad..4dc08a519f 100644
--- a/public/emoji/270d-1f3fb.svg
+++ b/public/emoji/270d-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270d-1f3fc.png b/public/emoji/270d-1f3fc.png
deleted file mode 100644
index bcb304e15d..0000000000
Binary files a/public/emoji/270d-1f3fc.png and /dev/null differ
diff --git a/public/emoji/270d-1f3fc.svg b/public/emoji/270d-1f3fc.svg
index 3ff16a807c..fdd4d48c60 100644
--- a/public/emoji/270d-1f3fc.svg
+++ b/public/emoji/270d-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270d-1f3fd.png b/public/emoji/270d-1f3fd.png
deleted file mode 100644
index fd885fd2d9..0000000000
Binary files a/public/emoji/270d-1f3fd.png and /dev/null differ
diff --git a/public/emoji/270d-1f3fd.svg b/public/emoji/270d-1f3fd.svg
index 57884c07e5..d47a6f868b 100644
--- a/public/emoji/270d-1f3fd.svg
+++ b/public/emoji/270d-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270d-1f3fe.png b/public/emoji/270d-1f3fe.png
deleted file mode 100644
index d065b8c64a..0000000000
Binary files a/public/emoji/270d-1f3fe.png and /dev/null differ
diff --git a/public/emoji/270d-1f3fe.svg b/public/emoji/270d-1f3fe.svg
index 089e890d5d..dd8efc41e0 100644
--- a/public/emoji/270d-1f3fe.svg
+++ b/public/emoji/270d-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270d-1f3ff.png b/public/emoji/270d-1f3ff.png
deleted file mode 100644
index a44b3dd757..0000000000
Binary files a/public/emoji/270d-1f3ff.png and /dev/null differ
diff --git a/public/emoji/270d-1f3ff.svg b/public/emoji/270d-1f3ff.svg
index 863dbaae55..f92699de14 100644
--- a/public/emoji/270d-1f3ff.svg
+++ b/public/emoji/270d-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270d.png b/public/emoji/270d.png
deleted file mode 100644
index 85639f8ac4..0000000000
Binary files a/public/emoji/270d.png and /dev/null differ
diff --git a/public/emoji/270d.svg b/public/emoji/270d.svg
index 9370c8c390..b452ab986f 100644
--- a/public/emoji/270d.svg
+++ b/public/emoji/270d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/270f.png b/public/emoji/270f.png
deleted file mode 100644
index 3833d590fa..0000000000
Binary files a/public/emoji/270f.png and /dev/null differ
diff --git a/public/emoji/270f.svg b/public/emoji/270f.svg
index 55eec77285..417e2d1f98 100644
--- a/public/emoji/270f.svg
+++ b/public/emoji/270f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2712.png b/public/emoji/2712.png
deleted file mode 100644
index 872d0ae159..0000000000
Binary files a/public/emoji/2712.png and /dev/null differ
diff --git a/public/emoji/2712.svg b/public/emoji/2712.svg
index 28a3968a72..91b747d93e 100644
--- a/public/emoji/2712.svg
+++ b/public/emoji/2712.svg
@@ -1,2 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2714.png b/public/emoji/2714.png
deleted file mode 100644
index 03bd695377..0000000000
Binary files a/public/emoji/2714.png and /dev/null differ
diff --git a/public/emoji/2714.svg b/public/emoji/2714.svg
index 20a0826183..6208932b40 100644
--- a/public/emoji/2714.svg
+++ b/public/emoji/2714.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2716.png b/public/emoji/2716.png
deleted file mode 100644
index e47cc1b685..0000000000
Binary files a/public/emoji/2716.png and /dev/null differ
diff --git a/public/emoji/2716.svg b/public/emoji/2716.svg
index 1117a75958..be81d594f9 100644
--- a/public/emoji/2716.svg
+++ b/public/emoji/2716.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/271d.png b/public/emoji/271d.png
deleted file mode 100644
index 42b10e8225..0000000000
Binary files a/public/emoji/271d.png and /dev/null differ
diff --git a/public/emoji/271d.svg b/public/emoji/271d.svg
index 850e144406..dd13a3b990 100644
--- a/public/emoji/271d.svg
+++ b/public/emoji/271d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2721.png b/public/emoji/2721.png
deleted file mode 100644
index fc59d0dde2..0000000000
Binary files a/public/emoji/2721.png and /dev/null differ
diff --git a/public/emoji/2721.svg b/public/emoji/2721.svg
index 073f604291..6d83966e9a 100644
--- a/public/emoji/2721.svg
+++ b/public/emoji/2721.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2728.png b/public/emoji/2728.png
deleted file mode 100644
index 169bc10b02..0000000000
Binary files a/public/emoji/2728.png and /dev/null differ
diff --git a/public/emoji/2728.svg b/public/emoji/2728.svg
index 37c088090c..3e5591e040 100644
--- a/public/emoji/2728.svg
+++ b/public/emoji/2728.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2733.png b/public/emoji/2733.png
deleted file mode 100644
index 3307ffa62e..0000000000
Binary files a/public/emoji/2733.png and /dev/null differ
diff --git a/public/emoji/2733.svg b/public/emoji/2733.svg
index fc0a0d5cc0..2b133c2b5c 100644
--- a/public/emoji/2733.svg
+++ b/public/emoji/2733.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2734.png b/public/emoji/2734.png
deleted file mode 100644
index 820179bda5..0000000000
Binary files a/public/emoji/2734.png and /dev/null differ
diff --git a/public/emoji/2734.svg b/public/emoji/2734.svg
index c8f50edc76..9f1cefd96b 100644
--- a/public/emoji/2734.svg
+++ b/public/emoji/2734.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2744.png b/public/emoji/2744.png
deleted file mode 100644
index db319a77ec..0000000000
Binary files a/public/emoji/2744.png and /dev/null differ
diff --git a/public/emoji/2744.svg b/public/emoji/2744.svg
index 145818394d..26d6d72ad0 100644
--- a/public/emoji/2744.svg
+++ b/public/emoji/2744.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2747.png b/public/emoji/2747.png
deleted file mode 100644
index 6aa7b6ec9c..0000000000
Binary files a/public/emoji/2747.png and /dev/null differ
diff --git a/public/emoji/2747.svg b/public/emoji/2747.svg
index 9c179d6ea3..812425abc9 100644
--- a/public/emoji/2747.svg
+++ b/public/emoji/2747.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/274c.png b/public/emoji/274c.png
deleted file mode 100644
index 9f9ed0f7ad..0000000000
Binary files a/public/emoji/274c.png and /dev/null differ
diff --git a/public/emoji/274c.svg b/public/emoji/274c.svg
index 5f60701d2a..5aa21e8fd4 100644
--- a/public/emoji/274c.svg
+++ b/public/emoji/274c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/274e.png b/public/emoji/274e.png
deleted file mode 100644
index dae487f1f9..0000000000
Binary files a/public/emoji/274e.png and /dev/null differ
diff --git a/public/emoji/274e.svg b/public/emoji/274e.svg
index b65d3ec9e9..c74d9f134a 100644
--- a/public/emoji/274e.svg
+++ b/public/emoji/274e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2753.png b/public/emoji/2753.png
deleted file mode 100644
index 5a58f3458a..0000000000
Binary files a/public/emoji/2753.png and /dev/null differ
diff --git a/public/emoji/2753.svg b/public/emoji/2753.svg
index d4b28c81cb..9d78e0a433 100644
--- a/public/emoji/2753.svg
+++ b/public/emoji/2753.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2754.png b/public/emoji/2754.png
deleted file mode 100644
index 6e7824c75f..0000000000
Binary files a/public/emoji/2754.png and /dev/null differ
diff --git a/public/emoji/2754.svg b/public/emoji/2754.svg
index d04a83c311..14f5a84308 100644
--- a/public/emoji/2754.svg
+++ b/public/emoji/2754.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2755.png b/public/emoji/2755.png
deleted file mode 100644
index 9b64da8bf7..0000000000
Binary files a/public/emoji/2755.png and /dev/null differ
diff --git a/public/emoji/2755.svg b/public/emoji/2755.svg
index 714e2103ff..9cb804adc5 100644
--- a/public/emoji/2755.svg
+++ b/public/emoji/2755.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2757.png b/public/emoji/2757.png
deleted file mode 100644
index 2c14406422..0000000000
Binary files a/public/emoji/2757.png and /dev/null differ
diff --git a/public/emoji/2757.svg b/public/emoji/2757.svg
index d064e7e125..963356add2 100644
--- a/public/emoji/2757.svg
+++ b/public/emoji/2757.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2763.png b/public/emoji/2763.png
deleted file mode 100644
index 91b520be40..0000000000
Binary files a/public/emoji/2763.png and /dev/null differ
diff --git a/public/emoji/2763.svg b/public/emoji/2763.svg
index df6ebedfb1..e22110bb0c 100644
--- a/public/emoji/2763.svg
+++ b/public/emoji/2763.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2764.png b/public/emoji/2764.png
deleted file mode 100644
index 638cb72dc4..0000000000
Binary files a/public/emoji/2764.png and /dev/null differ
diff --git a/public/emoji/2764.svg b/public/emoji/2764.svg
index 12c6742e25..6dc97e26ce 100644
--- a/public/emoji/2764.svg
+++ b/public/emoji/2764.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2795.png b/public/emoji/2795.png
deleted file mode 100644
index 40799798aa..0000000000
Binary files a/public/emoji/2795.png and /dev/null differ
diff --git a/public/emoji/2795.svg b/public/emoji/2795.svg
index c572fec5c0..cc6c542683 100644
--- a/public/emoji/2795.svg
+++ b/public/emoji/2795.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2796.png b/public/emoji/2796.png
deleted file mode 100644
index 054211caf1..0000000000
Binary files a/public/emoji/2796.png and /dev/null differ
diff --git a/public/emoji/2796.svg b/public/emoji/2796.svg
index 844614dd60..fb069dfe14 100644
--- a/public/emoji/2796.svg
+++ b/public/emoji/2796.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2797.png b/public/emoji/2797.png
deleted file mode 100644
index df32ab21be..0000000000
Binary files a/public/emoji/2797.png and /dev/null differ
diff --git a/public/emoji/2797.svg b/public/emoji/2797.svg
index 8b3945c9c5..0bf64b5070 100644
--- a/public/emoji/2797.svg
+++ b/public/emoji/2797.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/27a1.png b/public/emoji/27a1.png
deleted file mode 100644
index 4755670b5c..0000000000
Binary files a/public/emoji/27a1.png and /dev/null differ
diff --git a/public/emoji/27a1.svg b/public/emoji/27a1.svg
index 125d7d47f5..6eca574543 100644
--- a/public/emoji/27a1.svg
+++ b/public/emoji/27a1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/27b0.png b/public/emoji/27b0.png
deleted file mode 100644
index 440aa56d50..0000000000
Binary files a/public/emoji/27b0.png and /dev/null differ
diff --git a/public/emoji/27b0.svg b/public/emoji/27b0.svg
index 5bf1eac01a..f1c056454f 100644
--- a/public/emoji/27b0.svg
+++ b/public/emoji/27b0.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/27bf.png b/public/emoji/27bf.png
deleted file mode 100644
index 0b82c8fe31..0000000000
Binary files a/public/emoji/27bf.png and /dev/null differ
diff --git a/public/emoji/27bf.svg b/public/emoji/27bf.svg
index 83d211d28b..351493bb8f 100644
--- a/public/emoji/27bf.svg
+++ b/public/emoji/27bf.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2934.png b/public/emoji/2934.png
deleted file mode 100644
index f29bfcfc0d..0000000000
Binary files a/public/emoji/2934.png and /dev/null differ
diff --git a/public/emoji/2934.svg b/public/emoji/2934.svg
index 2d7a211d1f..d40c272528 100644
--- a/public/emoji/2934.svg
+++ b/public/emoji/2934.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2935.png b/public/emoji/2935.png
deleted file mode 100644
index 2d9d24bca8..0000000000
Binary files a/public/emoji/2935.png and /dev/null differ
diff --git a/public/emoji/2935.svg b/public/emoji/2935.svg
index 00a8a92ab3..1db0a9cb24 100644
--- a/public/emoji/2935.svg
+++ b/public/emoji/2935.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2a-20e3.svg b/public/emoji/2a-20e3.svg
new file mode 100644
index 0000000000..e3ace72022
--- /dev/null
+++ b/public/emoji/2a-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/2b05.png b/public/emoji/2b05.png
deleted file mode 100644
index 8c685e0a81..0000000000
Binary files a/public/emoji/2b05.png and /dev/null differ
diff --git a/public/emoji/2b05.svg b/public/emoji/2b05.svg
index 9583aec7fc..b56d8fd84b 100644
--- a/public/emoji/2b05.svg
+++ b/public/emoji/2b05.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2b06.png b/public/emoji/2b06.png
deleted file mode 100644
index af8218a87f..0000000000
Binary files a/public/emoji/2b06.png and /dev/null differ
diff --git a/public/emoji/2b06.svg b/public/emoji/2b06.svg
index efa332284a..f54dcb999e 100644
--- a/public/emoji/2b06.svg
+++ b/public/emoji/2b06.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2b07.png b/public/emoji/2b07.png
deleted file mode 100644
index b8eefd0b19..0000000000
Binary files a/public/emoji/2b07.png and /dev/null differ
diff --git a/public/emoji/2b07.svg b/public/emoji/2b07.svg
index bbd2213f8c..623ea5074f 100644
--- a/public/emoji/2b07.svg
+++ b/public/emoji/2b07.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2b1b.png b/public/emoji/2b1b.png
deleted file mode 100644
index 162f2bb429..0000000000
Binary files a/public/emoji/2b1b.png and /dev/null differ
diff --git a/public/emoji/2b1b.svg b/public/emoji/2b1b.svg
index b908105f3f..75820ed0e2 100644
--- a/public/emoji/2b1b.svg
+++ b/public/emoji/2b1b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2b1c.png b/public/emoji/2b1c.png
deleted file mode 100644
index 6f06c1c79d..0000000000
Binary files a/public/emoji/2b1c.png and /dev/null differ
diff --git a/public/emoji/2b1c.svg b/public/emoji/2b1c.svg
index a58c77bd04..e9ce9710b9 100644
--- a/public/emoji/2b1c.svg
+++ b/public/emoji/2b1c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2b50.png b/public/emoji/2b50.png
deleted file mode 100644
index c930947076..0000000000
Binary files a/public/emoji/2b50.png and /dev/null differ
diff --git a/public/emoji/2b50.svg b/public/emoji/2b50.svg
index 487bf321c6..d2bc202e99 100644
--- a/public/emoji/2b50.svg
+++ b/public/emoji/2b50.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/2b55.png b/public/emoji/2b55.png
deleted file mode 100644
index 3fe75ce467..0000000000
Binary files a/public/emoji/2b55.png and /dev/null differ
diff --git a/public/emoji/2b55.svg b/public/emoji/2b55.svg
index 46265062f1..056ad641a9 100644
--- a/public/emoji/2b55.svg
+++ b/public/emoji/2b55.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/30-20e3.svg b/public/emoji/30-20e3.svg
new file mode 100644
index 0000000000..6b9454e667
--- /dev/null
+++ b/public/emoji/30-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/3030.png b/public/emoji/3030.png
deleted file mode 100644
index 001c8d6e47..0000000000
Binary files a/public/emoji/3030.png and /dev/null differ
diff --git a/public/emoji/3030.svg b/public/emoji/3030.svg
index ce6c005994..85addce189 100644
--- a/public/emoji/3030.svg
+++ b/public/emoji/3030.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/303d.png b/public/emoji/303d.png
deleted file mode 100644
index 70453d4152..0000000000
Binary files a/public/emoji/303d.png and /dev/null differ
diff --git a/public/emoji/303d.svg b/public/emoji/303d.svg
index 3b7e1508aa..8a8b08c0e8 100644
--- a/public/emoji/303d.svg
+++ b/public/emoji/303d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/31-20e3.svg b/public/emoji/31-20e3.svg
new file mode 100644
index 0000000000..d56800d4a8
--- /dev/null
+++ b/public/emoji/31-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/32-20e3.svg b/public/emoji/32-20e3.svg
new file mode 100644
index 0000000000..546488da1f
--- /dev/null
+++ b/public/emoji/32-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/3297.png b/public/emoji/3297.png
deleted file mode 100644
index ba8c89d95e..0000000000
Binary files a/public/emoji/3297.png and /dev/null differ
diff --git a/public/emoji/3297.svg b/public/emoji/3297.svg
index c57b1ab8a4..b525207fbb 100644
--- a/public/emoji/3297.svg
+++ b/public/emoji/3297.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/3299.png b/public/emoji/3299.png
deleted file mode 100644
index 5fd72608e6..0000000000
Binary files a/public/emoji/3299.png and /dev/null differ
diff --git a/public/emoji/3299.svg b/public/emoji/3299.svg
index 3e750322ec..ffe9e7757a 100644
--- a/public/emoji/3299.svg
+++ b/public/emoji/3299.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/public/emoji/33-20e3.svg b/public/emoji/33-20e3.svg
new file mode 100644
index 0000000000..9d70003df3
--- /dev/null
+++ b/public/emoji/33-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/34-20e3.svg b/public/emoji/34-20e3.svg
new file mode 100644
index 0000000000..5fdef5829c
--- /dev/null
+++ b/public/emoji/34-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/35-20e3.svg b/public/emoji/35-20e3.svg
new file mode 100644
index 0000000000..2afa988d6f
--- /dev/null
+++ b/public/emoji/35-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/36-20e3.svg b/public/emoji/36-20e3.svg
new file mode 100644
index 0000000000..153c581d60
--- /dev/null
+++ b/public/emoji/36-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/37-20e3.svg b/public/emoji/37-20e3.svg
new file mode 100644
index 0000000000..abbb8d654b
--- /dev/null
+++ b/public/emoji/37-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/38-20e3.svg b/public/emoji/38-20e3.svg
new file mode 100644
index 0000000000..11e7176503
--- /dev/null
+++ b/public/emoji/38-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/39-20e3.svg b/public/emoji/39-20e3.svg
new file mode 100644
index 0000000000..c82bb1a1b9
--- /dev/null
+++ b/public/emoji/39-20e3.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/a9.svg b/public/emoji/a9.svg
new file mode 100644
index 0000000000..a56a396950
--- /dev/null
+++ b/public/emoji/a9.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/ae.svg b/public/emoji/ae.svg
new file mode 100644
index 0000000000..012e11635e
--- /dev/null
+++ b/public/emoji/ae.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/e50a.svg b/public/emoji/e50a.svg
new file mode 100644
index 0000000000..7c28b8f06a
--- /dev/null
+++ b/public/emoji/e50a.svg
@@ -0,0 +1 @@
+
diff --git a/public/emoji/sheet.png b/public/emoji/sheet.png
new file mode 100644
index 0000000000..e9a3f23f86
Binary files /dev/null and b/public/emoji/sheet.png differ
diff --git a/public/oops.gif b/public/oops.gif
new file mode 100644
index 0000000000..ad19c4e105
Binary files /dev/null and b/public/oops.gif differ
diff --git a/public/oops.png b/public/oops.png
deleted file mode 100644
index 0abddad3e8..0000000000
Binary files a/public/oops.png and /dev/null differ
diff --git a/spec/controllers/api/v1/accounts/relationships_controller_spec.rb b/spec/controllers/api/v1/accounts/relationships_controller_spec.rb
index a9073b197a..431fc21941 100644
--- a/spec/controllers/api/v1/accounts/relationships_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/relationships_controller_spec.rb
@@ -50,14 +50,14 @@ describe Api::V1::Accounts::RelationshipsController do
json = body_as_json
expect(json).to be_a Enumerable
- expect(json.first[:id]).to eq simon.id
+ expect(json.first[:id]).to eq simon.id.to_s
expect(json.first[:following]).to be true
expect(json.first[:followed_by]).to be false
expect(json.first[:muting]).to be false
expect(json.first[:requested]).to be false
expect(json.first[:domain_blocking]).to be false
- expect(json.second[:id]).to eq lewis.id
+ expect(json.second[:id]).to eq lewis.id.to_s
expect(json.second[:following]).to be false
expect(json.second[:followed_by]).to be true
expect(json.second[:muting]).to be false
diff --git a/spec/controllers/api/v1/custom_emojis_controller_spec.rb b/spec/controllers/api/v1/custom_emojis_controller_spec.rb
new file mode 100644
index 0000000000..9f3522812b
--- /dev/null
+++ b/spec/controllers/api/v1/custom_emojis_controller_spec.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Api::V1::CustomEmojisController, type: :controller do
+ render_views
+
+ describe 'GET #index' do
+ before do
+ Fabricate(:custom_emoji)
+ get :index
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(:success)
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/media_controller_spec.rb b/spec/controllers/api/v1/media_controller_spec.rb
index 6bad3f05d8..baa22d7e48 100644
--- a/spec/controllers/api/v1/media_controller_spec.rb
+++ b/spec/controllers/api/v1/media_controller_spec.rb
@@ -53,7 +53,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do
end
it 'returns media ID in JSON' do
- expect(body_as_json[:id]).to eq MediaAttachment.first.id
+ expect(body_as_json[:id]).to eq MediaAttachment.first.id.to_s
end
end
@@ -75,7 +75,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do
end
it 'returns media ID in JSON' do
- expect(body_as_json[:id]).to eq MediaAttachment.first.id
+ expect(body_as_json[:id]).to eq MediaAttachment.first.id.to_s
end
end
@@ -97,7 +97,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do
end
xit 'returns media ID in JSON' do
- expect(body_as_json[:id]).to eq MediaAttachment.first.id
+ expect(body_as_json[:id]).to eq MediaAttachment.first.id.to_s
end
end
end
diff --git a/spec/controllers/api/v1/statuses/favourites_controller_spec.rb b/spec/controllers/api/v1/statuses/favourites_controller_spec.rb
index 2a029230d7..aba7cd4588 100644
--- a/spec/controllers/api/v1/statuses/favourites_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/favourites_controller_spec.rb
@@ -36,7 +36,7 @@ describe Api::V1::Statuses::FavouritesController do
it 'return json with updated attributes' do
hash_body = body_as_json
- expect(hash_body[:id]).to eq status.id
+ expect(hash_body[:id]).to eq status.id.to_s
expect(hash_body[:favourites_count]).to eq 1
expect(hash_body[:favourited]).to be true
end
diff --git a/spec/controllers/api/v1/statuses/pins_controller_spec.rb b/spec/controllers/api/v1/statuses/pins_controller_spec.rb
index 2e170da240..79005c9dec 100644
--- a/spec/controllers/api/v1/statuses/pins_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/pins_controller_spec.rb
@@ -32,7 +32,7 @@ describe Api::V1::Statuses::PinsController do
it 'return json with updated attributes' do
hash_body = body_as_json
- expect(hash_body[:id]).to eq status.id
+ expect(hash_body[:id]).to eq status.id.to_s
expect(hash_body[:pinned]).to be true
end
end
diff --git a/spec/controllers/api/v1/statuses/reblogs_controller_spec.rb b/spec/controllers/api/v1/statuses/reblogs_controller_spec.rb
index d6d36c1b2f..7417ff672f 100644
--- a/spec/controllers/api/v1/statuses/reblogs_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/reblogs_controller_spec.rb
@@ -36,7 +36,7 @@ describe Api::V1::Statuses::ReblogsController do
it 'return json with updated attributes' do
hash_body = body_as_json
- expect(hash_body[:reblog][:id]).to eq status.id
+ expect(hash_body[:reblog][:id]).to eq status.id.to_s
expect(hash_body[:reblog][:reblogs_count]).to eq 1
expect(hash_body[:reblog][:reblogged]).to be true
end
diff --git a/spec/helpers/emoji_helper_spec.rb b/spec/helpers/emoji_helper_spec.rb
deleted file mode 100644
index 6edf7672f7..0000000000
--- a/spec/helpers/emoji_helper_spec.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-require 'rails_helper'
-
-RSpec.describe EmojiHelper, type: :helper do
- describe '#emojify' do
- it 'converts shortcodes to unicode' do
- text = ':book: Book'
- expect(emojify(text)).to eq '📖 Book'
- end
-
- it 'converts composite emoji shortcodes to unicode' do
- text = ':couple_ww:'
- expect(emojify(text)).to eq '👩❤👩'
- end
-
- it 'does not convert shortcodes that are part of a string into unicode' do
- text = ':see_no_evil::hear_no_evil::speak_no_evil:'
- expect(emojify(text)).to eq text
- end
- end
-end
diff --git a/spec/javascript/components/dropdown_menu.test.js b/spec/javascript/components/dropdown_menu.test.js
deleted file mode 100644
index a5af730efe..0000000000
--- a/spec/javascript/components/dropdown_menu.test.js
+++ /dev/null
@@ -1,132 +0,0 @@
-import { expect } from 'chai';
-import { shallow, mount } from 'enzyme';
-import sinon from 'sinon';
-import React from 'react';
-import DropdownMenu from '../../../app/javascript/mastodon/components/dropdown_menu';
-import Dropdown, { DropdownTrigger, DropdownContent } from 'react-simple-dropdown';
-
-const isTrue = () => true;
-
-describe('', () => {
- const icon = 'my-icon';
- const size = 123;
- let items;
- let wrapper;
- let action;
-
- beforeEach(() => {
- action = sinon.spy();
-
- items = [
- { text: 'first item', action: action, href: '/some/url' },
- { text: 'second item', action: 'noop' },
- ];
- wrapper = shallow();
- });
-
- it('contains one ', () => {
- expect(wrapper).to.have.exactly(1).descendants(Dropdown);
- });
-
- it('contains one ', () => {
- expect(wrapper.find(Dropdown)).to.have.exactly(1).descendants(DropdownTrigger);
- });
-
- it('contains one ', () => {
- expect(wrapper.find(Dropdown)).to.have.exactly(1).descendants(DropdownContent);
- });
-
- it('does not contain a if isUserTouching', () => {
- const touchingWrapper = shallow();
- expect(touchingWrapper.find(Dropdown)).to.have.exactly(0).descendants(DropdownContent);
- });
-
- it('does not contain a if isUserTouching', () => {
- const touchingWrapper = shallow();
- expect(touchingWrapper.find(Dropdown)).to.have.exactly(0).descendants(DropdownContent);
- });
-
- it('uses props.size for style values', () => {
- ['font-size', 'width', 'line-height'].map((property) => {
- expect(wrapper.find(DropdownTrigger)).to.have.style(property, `${size}px`);
- });
- });
-
- it('uses props.icon as icon class name', () => {
- expect(wrapper.find(DropdownTrigger).find('i')).to.have.className(`fa-${icon}`);
- });
-
- it('is not expanded by default', () => {
- expect(wrapper.state('expanded')).to.be.equal(false);
- });
-
- it('does not render the list elements if not expanded', () => {
- const lis = wrapper.find(DropdownContent).find('li');
- expect(lis.length).to.be.equal(0);
- });
-
- it('sets expanded to true when clicking the trigger', () => {
- const wrapper = mount();
- wrapper.find(DropdownTrigger).first().simulate('click');
- expect(wrapper.state('expanded')).to.be.equal(true);
- });
-
- it('calls onModalOpen when clicking the trigger if isUserTouching', () => {
- const onModalOpen = sinon.spy();
- const touchingWrapper = mount();
- touchingWrapper.find(DropdownTrigger).first().simulate('click');
- expect(onModalOpen.calledOnce).to.be.equal(true);
- expect(onModalOpen.args[0][0]).to.be.deep.equal({ status: 3.14, actions: items, onClick: touchingWrapper.node.handleClick });
- });
-
- it('calls onModalClose when clicking an action if isUserTouching and isModalOpen', () => {
- const onModalOpen = sinon.spy();
- const onModalClose = sinon.spy();
- const touchingWrapper = mount();
- touchingWrapper.find(DropdownTrigger).first().simulate('click');
- touchingWrapper.node.handleClick({ currentTarget: { getAttribute: () => '0' }, preventDefault: () => null });
- expect(onModalClose.calledOnce).to.be.equal(true);
- });
-
- // Error: ReactWrapper::state() can only be called on the root
- /*it('sets expanded to false when clicking outside', () => {
- const wrapper = mount((
-
-
-
-
- ));
-
- wrapper.find(DropdownTrigger).first().simulate('click');
- expect(wrapper.find(DropdownMenu).first().state('expanded')).to.be.equal(true);
-
- wrapper.find('span').first().simulate('click');
- expect(wrapper.find(DropdownMenu).first().state('expanded')).to.be.equal(false);
- })*/
-
- it('renders list elements for each props.items if expanded', () => {
- const wrapper = mount();
- wrapper.find(DropdownTrigger).first().simulate('click');
- const lis = wrapper.find(DropdownContent).find('li');
- expect(lis.length).to.be.equal(items.length);
- });
-
- it('uses the href passed in via props.items', () => {
- wrapper
- .find(DropdownContent).find('li a')
- .forEach((a, i) => expect(a).to.have.attr('href', items[i].href));
- });
-
- it('uses the text passed in via props.items', () => {
- wrapper
- .find(DropdownContent).find('li a')
- .forEach((a, i) => expect(a).to.have.text(items[i].text));
- });
-
- it('uses the action passed in via props.items as click handler', () => {
- const wrapper = mount();
- wrapper.find(DropdownTrigger).first().simulate('click');
- wrapper.find(DropdownContent).find('li a').first().simulate('click');
- expect(action.calledOnce).to.equal(true);
- });
-});
diff --git a/spec/javascript/components/emojify.test.js b/spec/javascript/components/emojify.test.js
index e165b4519f..6e73c92514 100644
--- a/spec/javascript/components/emojify.test.js
+++ b/spec/javascript/components/emojify.test.js
@@ -22,23 +22,23 @@ describe('emojify', () => {
it('does unicode', () => {
expect(emojify('\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66')).to.equal(
- '');
- expect(emojify('\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67\uD83D\uDC67')).to.equal(
- '');
- expect(emojify('\uD83D\uDC69\uD83D\uDC69\uD83D\uDC66')).to.equal('');
+ '');
+ expect(emojify('👨👩👧👧')).to.equal(
+ '');
+ expect(emojify('👩👩👦')).to.equal('');
expect(emojify('\u2757')).to.equal(
'');
});
it('does multiple unicode', () => {
expect(emojify('\u2757 #\uFE0F\u20E3')).to.equal(
- ' ');
+ ' ');
expect(emojify('\u2757#\uFE0F\u20E3')).to.equal(
- '');
+ '');
expect(emojify('\u2757 #\uFE0F\u20E3 \u2757')).to.equal(
- ' ');
+ ' ');
expect(emojify('foo \u2757 #\uFE0F\u20E3 bar')).to.equal(
- 'foo bar');
+ 'foo bar');
});
it('ignores unicode inside of tags', () => {
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index 1a9520f04a..cdd4991505 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -171,6 +171,26 @@ RSpec.describe ActivityPub::Activity::Create do
end
end
+ context 'with mentions missing href' do
+ let(:object_json) do
+ {
+ id: 'bar',
+ type: 'Note',
+ content: 'Lorem ipsum',
+ tag: [
+ {
+ type: 'Mention',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ end
+ end
+
context 'with media attachments' do
let(:object_json) do
{
@@ -195,6 +215,27 @@ RSpec.describe ActivityPub::Activity::Create do
end
end
+ context 'with media attachments missing url' do
+ let(:object_json) do
+ {
+ id: 'bar',
+ type: 'Note',
+ content: 'Lorem ipsum',
+ attachment: [
+ {
+ type: 'Document',
+ mime_type: 'image/png',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ end
+ end
+
context 'with hashtags' do
let(:object_json) do
{
@@ -219,6 +260,27 @@ RSpec.describe ActivityPub::Activity::Create do
end
end
+ context 'with hashtags missing name' do
+ let(:object_json) do
+ {
+ id: 'bar',
+ type: 'Note',
+ content: 'Lorem ipsum',
+ tag: [
+ {
+ type: 'Hashtag',
+ href: 'http://example.com/blah',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ end
+ end
+
context 'with emojis' do
let(:object_json) do
{
@@ -242,5 +304,47 @@ RSpec.describe ActivityPub::Activity::Create do
expect(status.emojis.map(&:shortcode)).to include('tinking')
end
end
+
+ context 'with emojis missing name' do
+ let(:object_json) do
+ {
+ id: 'bar',
+ type: 'Note',
+ content: 'Lorem ipsum :tinking:',
+ tag: [
+ {
+ type: 'Emoji',
+ href: 'http://example.com/emoji.png',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ end
+ end
+
+ context 'with emojis missing href' do
+ let(:object_json) do
+ {
+ id: 'bar',
+ type: 'Note',
+ content: 'Lorem ipsum :tinking:',
+ tag: [
+ {
+ type: 'Emoji',
+ name: 'tinking',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ end
+ end
end
end
diff --git a/spec/lib/activitypub/tag_manager_spec.rb b/spec/lib/activitypub/tag_manager_spec.rb
index dea8abc655..0d16652169 100644
--- a/spec/lib/activitypub/tag_manager_spec.rb
+++ b/spec/lib/activitypub/tag_manager_spec.rb
@@ -108,7 +108,7 @@ RSpec.describe ActivityPub::TagManager do
it 'returns the local status for OStatus tag: URI' do
status = Fabricate(:status)
- expect(subject.uri_to_resource(::TagManager.instance.uri_for(status), Status)).to eq status
+ expect(subject.uri_to_resource(OStatus::TagManager.instance.uri_for(status), Status)).to eq status
end
it 'returns the local status for OStatus StreamEntry URL' do
diff --git a/spec/lib/emoji_spec.rb b/spec/lib/emoji_spec.rb
deleted file mode 100644
index 04931ccfba..0000000000
--- a/spec/lib/emoji_spec.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require 'rails_helper'
-
-RSpec.describe Emoji do
- describe '#unicode' do
- it 'returns a unicode for a shortcode' do
- expect(Emoji.instance.unicode(':joy:')).to eq '😂'
- end
- end
-
- describe '#names' do
- it 'returns an array' do
- expect(Emoji.instance.names).to be_an Array
- end
- end
-end
diff --git a/spec/lib/ostatus/atom_serializer_spec.rb b/spec/lib/ostatus/atom_serializer_spec.rb
index b2480a53b3..00e6f09dc4 100644
--- a/spec/lib/ostatus/atom_serializer_spec.rb
+++ b/spec/lib/ostatus/atom_serializer_spec.rb
@@ -17,7 +17,7 @@ RSpec.describe OStatus::AtomSerializer do
follow_request_salmon = serialize(follow_request)
object_type = follow_request_salmon.nodes.find { |node| node.name == 'activity:object-type' }
- expect(object_type.text).to eq TagManager::TYPES[:activity]
+ expect(object_type.text).to eq OStatus::TagManager::TYPES[:activity]
end
it 'appends activity:verb element with request_friend type' do
@@ -26,7 +26,7 @@ RSpec.describe OStatus::AtomSerializer do
follow_request_salmon = serialize(follow_request)
verb = follow_request_salmon.nodes.find { |node| node.name == 'activity:verb' }
- expect(verb.text).to eq TagManager::VERBS[:request_friend]
+ expect(verb.text).to eq OStatus::TagManager::VERBS[:request_friend]
end
it 'appends activity:object with target account' do
@@ -44,13 +44,13 @@ RSpec.describe OStatus::AtomSerializer do
it 'adds namespaces' do
element = serialize
- expect(element['xmlns']).to eq TagManager::XMLNS
- expect(element['xmlns:thr']).to eq TagManager::THR_XMLNS
- expect(element['xmlns:activity']).to eq TagManager::AS_XMLNS
- expect(element['xmlns:poco']).to eq TagManager::POCO_XMLNS
- expect(element['xmlns:media']).to eq TagManager::MEDIA_XMLNS
- expect(element['xmlns:ostatus']).to eq TagManager::OS_XMLNS
- expect(element['xmlns:mastodon']).to eq TagManager::MTDN_XMLNS
+ expect(element['xmlns']).to eq OStatus::TagManager::XMLNS
+ expect(element['xmlns:thr']).to eq OStatus::TagManager::THR_XMLNS
+ expect(element['xmlns:activity']).to eq OStatus::TagManager::AS_XMLNS
+ expect(element['xmlns:poco']).to eq OStatus::TagManager::POCO_XMLNS
+ expect(element['xmlns:media']).to eq OStatus::TagManager::MEDIA_XMLNS
+ expect(element['xmlns:ostatus']).to eq OStatus::TagManager::OS_XMLNS
+ expect(element['xmlns:mastodon']).to eq OStatus::TagManager::MTDN_XMLNS
end
end
@@ -98,7 +98,7 @@ RSpec.describe OStatus::AtomSerializer do
mentioned = element.nodes.find do |node|
node.name == 'link' &&
node[:rel] == 'mentioned' &&
- node['ostatus:object-type'] == TagManager::TYPES[:person]
+ node['ostatus:object-type'] == OStatus::TagManager::TYPES[:person]
end
expect(mentioned[:href]).to eq 'https://cb6e6126.ngrok.io/users/username'
@@ -188,7 +188,7 @@ RSpec.describe OStatus::AtomSerializer do
author = OStatus::AtomSerializer.new.author(account)
object_type = author.nodes.find { |node| node.name == 'activity:object-type' }
- expect(object_type.text).to eq TagManager::TYPES[:person]
+ expect(object_type.text).to eq OStatus::TagManager::TYPES[:person]
end
it 'appends email element with username and domain for local account' do
@@ -358,9 +358,9 @@ RSpec.describe OStatus::AtomSerializer do
mentioned_person = entry.nodes.find do |node|
node.name == 'link' &&
node[:rel] == 'mentioned' &&
- node['ostatus:object-type'] == TagManager::TYPES[:collection]
+ node['ostatus:object-type'] == OStatus::TagManager::TYPES[:collection]
end
- expect(mentioned_person[:href]).to eq TagManager::COLLECTIONS[:public]
+ expect(mentioned_person[:href]).to eq OStatus::TagManager::COLLECTIONS[:public]
end
it 'does not append link element for the public collection if status is not publicly visible' do
@@ -371,8 +371,8 @@ RSpec.describe OStatus::AtomSerializer do
entry.nodes.each do |node|
if node.name == 'link' &&
node[:rel] == 'mentioned' &&
- node['ostatus:object-type'] == TagManager::TYPES[:collection]
- expect(mentioned_collection[:href]).not_to eq TagManager::COLLECTIONS[:public]
+ node['ostatus:object-type'] == OStatus::TagManager::TYPES[:collection]
+ expect(mentioned_collection[:href]).not_to eq OStatus::TagManager::COLLECTIONS[:public]
end
end
end
@@ -506,7 +506,7 @@ RSpec.describe OStatus::AtomSerializer do
status = Fabricate(:status)
entry = OStatus::AtomSerializer.new.entry(status.stream_entry)
object_type = entry.nodes.find { |node| node.name == 'activity:object-type' }
- expect(object_type.text).to eq TagManager::TYPES[:note]
+ expect(object_type.text).to eq OStatus::TagManager::TYPES[:note]
end
it 'appends activity:verb element with object type' do
@@ -515,7 +515,7 @@ RSpec.describe OStatus::AtomSerializer do
entry = OStatus::AtomSerializer.new.entry(status.stream_entry)
object_type = entry.nodes.find { |node| node.name == 'activity:verb' }
- expect(object_type.text).to eq TagManager::VERBS[:post]
+ expect(object_type.text).to eq OStatus::TagManager::VERBS[:post]
end
it 'appends activity:object element with target if present' do
@@ -739,8 +739,8 @@ RSpec.describe OStatus::AtomSerializer do
time_after = Time.now
expect(block_salmon.id.text).to(
- eq(TagManager.instance.unique_tag(time_before.utc, block.id, 'Block'))
- .or(eq(TagManager.instance.unique_tag(time_after.utc, block.id, 'Block')))
+ eq(OStatus::TagManager.instance.unique_tag(time_before.utc, block.id, 'Block'))
+ .or(eq(OStatus::TagManager.instance.unique_tag(time_after.utc, block.id, 'Block')))
)
end
@@ -769,7 +769,7 @@ RSpec.describe OStatus::AtomSerializer do
block_salmon = OStatus::AtomSerializer.new.block_salmon(block)
object_type = block_salmon.nodes.find { |node| node.name == 'activity:object-type' }
- expect(object_type.text).to eq TagManager::TYPES[:activity]
+ expect(object_type.text).to eq OStatus::TagManager::TYPES[:activity]
end
it 'appends activity:verb element with block' do
@@ -778,7 +778,7 @@ RSpec.describe OStatus::AtomSerializer do
block_salmon = OStatus::AtomSerializer.new.block_salmon(block)
verb = block_salmon.nodes.find { |node| node.name == 'activity:verb' }
- expect(verb.text).to eq TagManager::VERBS[:block]
+ expect(verb.text).to eq OStatus::TagManager::VERBS[:block]
end
it 'appends activity:object element with target account' do
@@ -826,8 +826,8 @@ RSpec.describe OStatus::AtomSerializer do
time_after = Time.now
expect(unblock_salmon.id.text).to(
- eq(TagManager.instance.unique_tag(time_before.utc, block.id, 'Block'))
- .or(eq(TagManager.instance.unique_tag(time_after.utc, block.id, 'Block')))
+ eq(OStatus::TagManager.instance.unique_tag(time_before.utc, block.id, 'Block'))
+ .or(eq(OStatus::TagManager.instance.unique_tag(time_after.utc, block.id, 'Block')))
)
end
@@ -856,7 +856,7 @@ RSpec.describe OStatus::AtomSerializer do
unblock_salmon = OStatus::AtomSerializer.new.unblock_salmon(block)
object_type = unblock_salmon.nodes.find { |node| node.name == 'activity:object-type' }
- expect(object_type.text).to eq TagManager::TYPES[:activity]
+ expect(object_type.text).to eq OStatus::TagManager::TYPES[:activity]
end
it 'appends activity:verb element with block' do
@@ -865,7 +865,7 @@ RSpec.describe OStatus::AtomSerializer do
unblock_salmon = OStatus::AtomSerializer.new.unblock_salmon(block)
verb = unblock_salmon.nodes.find { |node| node.name == 'activity:verb' }
- expect(verb.text).to eq TagManager::VERBS[:unblock]
+ expect(verb.text).to eq OStatus::TagManager::VERBS[:unblock]
end
it 'appends activity:object element with target account' do
@@ -934,7 +934,7 @@ RSpec.describe OStatus::AtomSerializer do
favourite_salmon = OStatus::AtomSerializer.new.favourite_salmon(favourite)
verb = favourite_salmon.nodes.find { |node| node.name == 'activity:verb' }
- expect(verb.text).to eq TagManager::VERBS[:favorite]
+ expect(verb.text).to eq OStatus::TagManager::VERBS[:favorite]
end
it 'appends activity:object element with status' do
@@ -1005,8 +1005,8 @@ RSpec.describe OStatus::AtomSerializer do
time_after = Time.now
expect(unfavourite_salmon.id.text).to(
- eq(TagManager.instance.unique_tag(time_before.utc, favourite.id, 'Favourite'))
- .or(eq(TagManager.instance.unique_tag(time_after.utc, favourite.id, 'Favourite')))
+ eq(OStatus::TagManager.instance.unique_tag(time_before.utc, favourite.id, 'Favourite'))
+ .or(eq(OStatus::TagManager.instance.unique_tag(time_after.utc, favourite.id, 'Favourite')))
)
end
@@ -1034,7 +1034,7 @@ RSpec.describe OStatus::AtomSerializer do
unfavourite_salmon = OStatus::AtomSerializer.new.unfavourite_salmon(favourite)
verb = unfavourite_salmon.nodes.find { |node| node.name == 'activity:verb' }
- expect(verb.text).to eq TagManager::VERBS[:unfavorite]
+ expect(verb.text).to eq OStatus::TagManager::VERBS[:unfavorite]
end
it 'appends activity:object element with status' do
@@ -1117,7 +1117,7 @@ RSpec.describe OStatus::AtomSerializer do
follow_salmon = OStatus::AtomSerializer.new.follow_salmon(follow)
object_type = follow_salmon.nodes.find { |node| node.name == 'activity:object-type' }
- expect(object_type.text).to eq TagManager::TYPES[:activity]
+ expect(object_type.text).to eq OStatus::TagManager::TYPES[:activity]
end
it 'appends activity:verb element with follow' do
@@ -1126,7 +1126,7 @@ RSpec.describe OStatus::AtomSerializer do
follow_salmon = OStatus::AtomSerializer.new.follow_salmon(follow)
verb = follow_salmon.nodes.find { |node| node.name == 'activity:verb' }
- expect(verb.text).to eq TagManager::VERBS[:follow]
+ expect(verb.text).to eq OStatus::TagManager::VERBS[:follow]
end
it 'appends activity:object element with target account' do
@@ -1190,8 +1190,8 @@ RSpec.describe OStatus::AtomSerializer do
time_after = Time.now
expect(unfollow_salmon.id.text).to(
- eq(TagManager.instance.unique_tag(time_before.utc, follow.id, 'Follow'))
- .or(eq(TagManager.instance.unique_tag(time_after.utc, follow.id, 'Follow')))
+ eq(OStatus::TagManager.instance.unique_tag(time_before.utc, follow.id, 'Follow'))
+ .or(eq(OStatus::TagManager.instance.unique_tag(time_after.utc, follow.id, 'Follow')))
)
end
@@ -1234,7 +1234,7 @@ RSpec.describe OStatus::AtomSerializer do
unfollow_salmon = OStatus::AtomSerializer.new.unfollow_salmon(follow)
object_type = unfollow_salmon.nodes.find { |node| node.name == 'activity:object-type' }
- expect(object_type.text).to eq TagManager::TYPES[:activity]
+ expect(object_type.text).to eq OStatus::TagManager::TYPES[:activity]
end
it 'appends activity:verb element with follow' do
@@ -1244,7 +1244,7 @@ RSpec.describe OStatus::AtomSerializer do
unfollow_salmon = OStatus::AtomSerializer.new.unfollow_salmon(follow)
verb = unfollow_salmon.nodes.find { |node| node.name == 'activity:verb' }
- expect(verb.text).to eq TagManager::VERBS[:unfollow]
+ expect(verb.text).to eq OStatus::TagManager::VERBS[:unfollow]
end
it 'appends activity:object element with target account' do
@@ -1338,8 +1338,8 @@ RSpec.describe OStatus::AtomSerializer do
time_after = Time.now
expect(authorize_follow_request_salmon.id.text).to(
- eq(TagManager.instance.unique_tag(time_before.utc, follow_request.id, 'FollowRequest'))
- .or(eq(TagManager.instance.unique_tag(time_after.utc, follow_request.id, 'FollowRequest')))
+ eq(OStatus::TagManager.instance.unique_tag(time_before.utc, follow_request.id, 'FollowRequest'))
+ .or(eq(OStatus::TagManager.instance.unique_tag(time_after.utc, follow_request.id, 'FollowRequest')))
)
end
@@ -1359,7 +1359,7 @@ RSpec.describe OStatus::AtomSerializer do
authorize_follow_request_salmon = OStatus::AtomSerializer.new.authorize_follow_request_salmon(follow_request)
object_type = authorize_follow_request_salmon.nodes.find { |node| node.name == 'activity:object-type' }
- expect(object_type.text).to eq TagManager::TYPES[:activity]
+ expect(object_type.text).to eq OStatus::TagManager::TYPES[:activity]
end
it 'appends activity:verb element with authorize' do
@@ -1368,7 +1368,7 @@ RSpec.describe OStatus::AtomSerializer do
authorize_follow_request_salmon = OStatus::AtomSerializer.new.authorize_follow_request_salmon(follow_request)
verb = authorize_follow_request_salmon.nodes.find { |node| node.name == 'activity:verb' }
- expect(verb.text).to eq TagManager::VERBS[:authorize]
+ expect(verb.text).to eq OStatus::TagManager::VERBS[:authorize]
end
it 'returns element whose rendered view creates follow from follow request when processed' do
@@ -1407,8 +1407,8 @@ RSpec.describe OStatus::AtomSerializer do
time_after = Time.now
expect(reject_follow_request_salmon.id.text).to(
- eq(TagManager.instance.unique_tag(time_before.utc, follow_request.id, 'FollowRequest'))
- .or(TagManager.instance.unique_tag(time_after.utc, follow_request.id, 'FollowRequest'))
+ eq(OStatus::TagManager.instance.unique_tag(time_before.utc, follow_request.id, 'FollowRequest'))
+ .or(OStatus::TagManager.instance.unique_tag(time_after.utc, follow_request.id, 'FollowRequest'))
)
end
@@ -1424,14 +1424,14 @@ RSpec.describe OStatus::AtomSerializer do
follow_request = Fabricate(:follow_request)
reject_follow_request_salmon = OStatus::AtomSerializer.new.reject_follow_request_salmon(follow_request)
object_type = reject_follow_request_salmon.nodes.find { |node| node.name == 'activity:object-type' }
- expect(object_type.text).to eq TagManager::TYPES[:activity]
+ expect(object_type.text).to eq OStatus::TagManager::TYPES[:activity]
end
it 'appends activity:verb element with authorize' do
follow_request = Fabricate(:follow_request)
reject_follow_request_salmon = OStatus::AtomSerializer.new.reject_follow_request_salmon(follow_request)
verb = reject_follow_request_salmon.nodes.find { |node| node.name == 'activity:verb' }
- expect(verb.text).to eq TagManager::VERBS[:reject]
+ expect(verb.text).to eq OStatus::TagManager::VERBS[:reject]
end
it 'returns element whose rendered view deletes follow request when processed' do
@@ -1503,7 +1503,7 @@ RSpec.describe OStatus::AtomSerializer do
entry = OStatus::AtomSerializer.new.object(status)
object_type = entry.nodes.find { |node| node.name == 'activity:object-type' }
- expect(object_type.text).to eq TagManager::TYPES[:note]
+ expect(object_type.text).to eq OStatus::TagManager::TYPES[:note]
end
it 'appends activity:verb element with verb' do
@@ -1512,7 +1512,7 @@ RSpec.describe OStatus::AtomSerializer do
entry = OStatus::AtomSerializer.new.object(status)
object_type = entry.nodes.find { |node| node.name == 'activity:verb' }
- expect(object_type.text).to eq TagManager::VERBS[:post]
+ expect(object_type.text).to eq OStatus::TagManager::VERBS[:post]
end
it 'appends link element for an alternative' do
diff --git a/spec/lib/ostatus/tag_manager_spec.rb b/spec/lib/ostatus/tag_manager_spec.rb
new file mode 100644
index 0000000000..31195bae21
--- /dev/null
+++ b/spec/lib/ostatus/tag_manager_spec.rb
@@ -0,0 +1,70 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe OStatus::TagManager do
+ describe '#unique_tag' do
+ it 'returns a unique tag' do
+ expect(OStatus::TagManager.instance.unique_tag(Time.utc(2000), 12, 'Status')).to eq 'tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Status'
+ end
+ end
+
+ describe '#unique_tag_to_local_id' do
+ it 'returns the ID part' do
+ expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Status', 'Status')).to eql '12'
+ end
+
+ it 'returns nil if it is not local id' do
+ expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:remote,2000-01-01:objectId=12:objectType=Status', 'Status')).to eq nil
+ end
+
+ it 'returns nil if it is not expected type' do
+ expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Block', 'Status')).to eq nil
+ end
+
+ it 'returns nil if it does not have object ID' do
+ expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectType=Status', 'Status')).to eq nil
+ end
+ end
+
+ describe '#local_id?' do
+ it 'returns true for a local ID' do
+ expect(OStatus::TagManager.instance.local_id?('tag:cb6e6126.ngrok.io;objectId=12:objectType=Status')).to be true
+ end
+
+ it 'returns false for a foreign ID' do
+ expect(OStatus::TagManager.instance.local_id?('tag:foreign.tld;objectId=12:objectType=Status')).to be false
+ end
+ end
+
+ describe '#uri_for' do
+ subject { OStatus::TagManager.instance.uri_for(target) }
+
+ context 'comment object' do
+ let(:target) { Fabricate(:status, created_at: '2000-01-01T00:00:00Z', reply: true) }
+
+ it 'returns the unique tag for status' do
+ expect(target.object_type).to eq :comment
+ is_expected.to eq target.uri
+ end
+ end
+
+ context 'note object' do
+ let(:target) { Fabricate(:status, created_at: '2000-01-01T00:00:00Z', reply: false, thread: nil) }
+
+ it 'returns the unique tag for status' do
+ expect(target.object_type).to eq :note
+ is_expected.to eq target.uri
+ end
+ end
+
+ context 'person object' do
+ let(:target) { Fabricate(:account, username: 'alice') }
+
+ it 'returns the URL for account' do
+ expect(target.object_type).to eq :person
+ is_expected.to eq 'https://cb6e6126.ngrok.io/users/alice'
+ end
+ end
+ end
+end
diff --git a/spec/lib/tag_manager_spec.rb b/spec/lib/tag_manager_spec.rb
index 6c78302319..5427a2929e 100644
--- a/spec/lib/tag_manager_spec.rb
+++ b/spec/lib/tag_manager_spec.rb
@@ -120,71 +120,6 @@ RSpec.describe TagManager do
end
end
- describe '#unique_tag' do
- it 'returns a unique tag' do
- expect(TagManager.instance.unique_tag(Time.utc(2000), 12, 'Status')).to eq 'tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Status'
- end
- end
-
- describe '#unique_tag_to_local_id' do
- it 'returns the ID part' do
- expect(TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Status', 'Status')).to eql '12'
- end
-
- it 'returns nil if it is not local id' do
- expect(TagManager.instance.unique_tag_to_local_id('tag:remote,2000-01-01:objectId=12:objectType=Status', 'Status')).to eq nil
- end
-
- it 'returns nil if it is not expected type' do
- expect(TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Block', 'Status')).to eq nil
- end
-
- it 'returns nil if it does not have object ID' do
- expect(TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectType=Status', 'Status')).to eq nil
- end
- end
-
- describe '#local_id?' do
- it 'returns true for a local ID' do
- expect(TagManager.instance.local_id?('tag:cb6e6126.ngrok.io;objectId=12:objectType=Status')).to be true
- end
-
- it 'returns false for a foreign ID' do
- expect(TagManager.instance.local_id?('tag:foreign.tld;objectId=12:objectType=Status')).to be false
- end
- end
-
- describe '#uri_for' do
- subject { TagManager.instance.uri_for(target) }
-
- context 'comment object' do
- let(:target) { Fabricate(:status, created_at: '2000-01-01T00:00:00Z', reply: true) }
-
- it 'returns the unique tag for status' do
- expect(target.object_type).to eq :comment
- is_expected.to eq target.uri
- end
- end
-
- context 'note object' do
- let(:target) { Fabricate(:status, created_at: '2000-01-01T00:00:00Z', reply: false, thread: nil) }
-
- it 'returns the unique tag for status' do
- expect(target.object_type).to eq :note
- is_expected.to eq target.uri
- end
- end
-
- context 'person object' do
- let(:target) { Fabricate(:account, username: 'alice') }
-
- it 'returns the URL for account' do
- expect(target.object_type).to eq :person
- is_expected.to eq 'https://cb6e6126.ngrok.io/users/alice'
- end
- end
- end
-
describe '#url_for' do
let(:alice) { Fabricate(:account, username: 'alice') }
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index 12efcae617..9cb71d715d 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -173,6 +173,22 @@ RSpec.describe Status, type: :model do
end
end
+ describe '.not_in_filtered_languages' do
+ context 'for accounts with language filters' do
+ let(:user) { Fabricate(:user, filtered_languages: ['en']) }
+
+ it 'does not include statuses in filtered languages' do
+ status = Fabricate(:status, language: 'en')
+ expect(Status.not_in_filtered_languages(user.account)).not_to include status
+ end
+
+ it 'includes status with unknown language' do
+ status = Fabricate(:status, language: nil)
+ expect(Status.not_in_filtered_languages(user.account)).to include status
+ end
+ end
+ end
+
describe '.as_home_timeline' do
let(:account) { Fabricate(:account) }
let(:followed) { Fabricate(:account) }
diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb
index 249b12470e..c1cc22523c 100644
--- a/spec/services/activitypub/process_collection_service_spec.rb
+++ b/spec/services/activitypub/process_collection_service_spec.rb
@@ -1,7 +1,7 @@
require 'rails_helper'
RSpec.describe ActivityPub::ProcessCollectionService do
- let(:actor) { Fabricate(:account) }
+ let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') }
let(:payload) do
{
@@ -24,7 +24,7 @@ RSpec.describe ActivityPub::ProcessCollectionService do
describe '#call' do
context 'when actor is the sender'
context 'when actor differs from sender' do
- let(:forwarder) { Fabricate(:account) }
+ let(:forwarder) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/other_account') }
it 'processes payload with sender if no signature exists' do
expect_any_instance_of(ActivityPub::LinkedDataSignature).not_to receive(:verify_account!)
diff --git a/spec/services/authorize_follow_service_spec.rb b/spec/services/authorize_follow_service_spec.rb
index d74eb41a2c..6ea4d83da3 100644
--- a/spec/services/authorize_follow_service_spec.rb
+++ b/spec/services/authorize_follow_service_spec.rb
@@ -42,7 +42,7 @@ RSpec.describe AuthorizeFollowService do
it 'sends a follow request authorization salmon slap' do
expect(a_request(:post, "http://salmon.example.com/").with { |req|
xml = OStatus2::Salmon.new.unpack(req.body)
- xml.match(TagManager::VERBS[:authorize])
+ xml.match(OStatus::TagManager::VERBS[:authorize])
}).to have_been_made.once
end
end
diff --git a/spec/services/batched_remove_status_service_spec.rb b/spec/services/batched_remove_status_service_spec.rb
index b1e9ac567b..f5c9adfb54 100644
--- a/spec/services/batched_remove_status_service_spec.rb
+++ b/spec/services/batched_remove_status_service_spec.rb
@@ -50,14 +50,14 @@ RSpec.describe BatchedRemoveStatusService do
it 'sends PuSH update to PuSH subscribers' do
expect(a_request(:post, 'http://example.com/push').with { |req|
- matches = req.body.match(TagManager::VERBS[:delete])
+ matches = req.body.match(OStatus::TagManager::VERBS[:delete])
}).to have_been_made.at_least_once
end
it 'sends Salmon slap to previously mentioned users' do
expect(a_request(:post, "http://example.com/salmon").with { |req|
xml = OStatus2::Salmon.new.unpack(req.body)
- xml.match(TagManager::VERBS[:delete])
+ xml.match(OStatus::TagManager::VERBS[:delete])
}).to have_been_made.once
end
diff --git a/spec/services/block_service_spec.rb b/spec/services/block_service_spec.rb
index bd2ab3d53e..c69ff78047 100644
--- a/spec/services/block_service_spec.rb
+++ b/spec/services/block_service_spec.rb
@@ -32,7 +32,7 @@ RSpec.describe BlockService do
it 'sends a block salmon slap' do
expect(a_request(:post, "http://salmon.example.com/").with { |req|
xml = OStatus2::Salmon.new.unpack(req.body)
- xml.match(TagManager::VERBS[:block])
+ xml.match(OStatus::TagManager::VERBS[:block])
}).to have_been_made.once
end
end
diff --git a/spec/services/favourite_service_spec.rb b/spec/services/favourite_service_spec.rb
index 2ab1f32ca2..5bf2c74a91 100644
--- a/spec/services/favourite_service_spec.rb
+++ b/spec/services/favourite_service_spec.rb
@@ -34,7 +34,7 @@ RSpec.describe FavouriteService do
it 'sends a salmon slap' do
expect(a_request(:post, "http://salmon.example.com/").with { |req|
xml = OStatus2::Salmon.new.unpack(req.body)
- xml.match(TagManager::VERBS[:favorite])
+ xml.match(OStatus::TagManager::VERBS[:favorite])
}).to have_been_made.once
end
end
diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb
index 1e23780316..ceb39e5e6e 100644
--- a/spec/services/follow_service_spec.rb
+++ b/spec/services/follow_service_spec.rb
@@ -60,7 +60,7 @@ RSpec.describe FollowService do
it 'sends a follow request salmon slap' do
expect(a_request(:post, "http://salmon.example.com/").with { |req|
xml = OStatus2::Salmon.new.unpack(req.body)
- xml.match(TagManager::VERBS[:request_friend])
+ xml.match(OStatus::TagManager::VERBS[:request_friend])
}).to have_been_made.once
end
end
@@ -81,7 +81,7 @@ RSpec.describe FollowService do
it 'sends a follow salmon slap' do
expect(a_request(:post, "http://salmon.example.com/").with { |req|
xml = OStatus2::Salmon.new.unpack(req.body)
- xml.match(TagManager::VERBS[:follow])
+ xml.match(OStatus::TagManager::VERBS[:follow])
}).to have_been_made.once
end
diff --git a/spec/services/reject_follow_service_spec.rb b/spec/services/reject_follow_service_spec.rb
index 2e06345b36..bf49dd2c94 100644
--- a/spec/services/reject_follow_service_spec.rb
+++ b/spec/services/reject_follow_service_spec.rb
@@ -42,7 +42,7 @@ RSpec.describe RejectFollowService do
it 'sends a follow request rejection salmon slap' do
expect(a_request(:post, "http://salmon.example.com/").with { |req|
xml = OStatus2::Salmon.new.unpack(req.body)
- xml.match(TagManager::VERBS[:reject])
+ xml.match(OStatus::TagManager::VERBS[:reject])
}).to have_been_made.once
end
end
diff --git a/spec/services/remove_status_service_spec.rb b/spec/services/remove_status_service_spec.rb
index 8b34bdb6b6..b60015928b 100644
--- a/spec/services/remove_status_service_spec.rb
+++ b/spec/services/remove_status_service_spec.rb
@@ -34,7 +34,7 @@ RSpec.describe RemoveStatusService do
it 'sends PuSH update to PuSH subscribers' do
expect(a_request(:post, 'http://example.com/push').with { |req|
- req.body.match(TagManager::VERBS[:delete])
+ req.body.match(OStatus::TagManager::VERBS[:delete])
}).to have_been_made
end
@@ -45,7 +45,7 @@ RSpec.describe RemoveStatusService do
it 'sends Salmon slap to previously mentioned users' do
expect(a_request(:post, "http://example.com/salmon").with { |req|
xml = OStatus2::Salmon.new.unpack(req.body)
- xml.match(TagManager::VERBS[:delete])
+ xml.match(OStatus::TagManager::VERBS[:delete])
}).to have_been_made.once
end
diff --git a/spec/services/unblock_service_spec.rb b/spec/services/unblock_service_spec.rb
index def4981e72..ca7a6b77e8 100644
--- a/spec/services/unblock_service_spec.rb
+++ b/spec/services/unblock_service_spec.rb
@@ -34,7 +34,7 @@ RSpec.describe UnblockService do
it 'sends an unblock salmon slap' do
expect(a_request(:post, "http://salmon.example.com/").with { |req|
xml = OStatus2::Salmon.new.unpack(req.body)
- xml.match(TagManager::VERBS[:unblock])
+ xml.match(OStatus::TagManager::VERBS[:unblock])
}).to have_been_made.once
end
end
diff --git a/spec/services/unfollow_service_spec.rb b/spec/services/unfollow_service_spec.rb
index 29040431e5..021e767826 100644
--- a/spec/services/unfollow_service_spec.rb
+++ b/spec/services/unfollow_service_spec.rb
@@ -34,7 +34,7 @@ RSpec.describe UnfollowService do
it 'sends an unfollow salmon slap' do
expect(a_request(:post, "http://salmon.example.com/").with { |req|
xml = OStatus2::Salmon.new.unpack(req.body)
- xml.match(TagManager::VERBS[:unfollow])
+ xml.match(OStatus::TagManager::VERBS[:unfollow])
}).to have_been_made.once
end
end
diff --git a/spec/workers/pubsubhubbub/distribution_worker_spec.rb b/spec/workers/pubsubhubbub/distribution_worker_spec.rb
index 5c22e7fa8e..5844850795 100644
--- a/spec/workers/pubsubhubbub/distribution_worker_spec.rb
+++ b/spec/workers/pubsubhubbub/distribution_worker_spec.rb
@@ -18,48 +18,11 @@ describe Pubsubhubbub::DistributionWorker do
it 'delivers payload to all subscriptions' do
allow(Pubsubhubbub::DeliveryWorker).to receive(:push_bulk)
subject.perform(status.stream_entry.id)
- expect(Pubsubhubbub::DeliveryWorker).to have_received(:push_bulk).with([anonymous_subscription, subscription_with_follower])
- end
- end
-
- context 'when OStatus privacy is used' do
- around do |example|
- before_val = Rails.configuration.x.use_ostatus_privacy
- Rails.configuration.x.use_ostatus_privacy = true
- example.run
- Rails.configuration.x.use_ostatus_privacy = before_val
- end
-
- describe 'with private status' do
- let(:status) { Fabricate(:status, account: alice, text: 'Hello', visibility: :private) }
-
- it 'delivers payload only to subscriptions with followers' do
- allow(Pubsubhubbub::DeliveryWorker).to receive(:push_bulk)
- subject.perform(status.stream_entry.id)
- expect(Pubsubhubbub::DeliveryWorker).to have_received(:push_bulk).with([subscription_with_follower])
- expect(Pubsubhubbub::DeliveryWorker).to_not have_received(:push_bulk).with([anonymous_subscription])
- end
- end
-
- describe 'with direct status' do
- let(:status) { Fabricate(:status, account: alice, text: 'Hello', visibility: :direct) }
-
- it 'does not deliver payload' do
- allow(Pubsubhubbub::DeliveryWorker).to receive(:push_bulk)
- subject.perform(status.stream_entry.id)
- expect(Pubsubhubbub::DeliveryWorker).to_not have_received(:push_bulk)
- end
+ expect(Pubsubhubbub::DeliveryWorker).to have_received(:push_bulk).with([anonymous_subscription.id, subscription_with_follower.id])
end
end
context 'when OStatus privacy is not used' do
- around do |example|
- before_val = Rails.configuration.x.use_ostatus_privacy
- Rails.configuration.x.use_ostatus_privacy = false
- example.run
- Rails.configuration.x.use_ostatus_privacy = before_val
- end
-
describe 'with private status' do
let(:status) { Fabricate(:status, account: alice, text: 'Hello', visibility: :private) }
diff --git a/streaming/index.js b/streaming/index.js
index 3e80c8b308..017073fa11 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -264,7 +264,7 @@ const startWorker = (workerId) => {
const transmit = () => {
const now = new Date().getTime();
const delta = now - queued_at;
- const encodedPayload = typeof payload === 'number' ? payload : JSON.stringify(payload);
+ const encodedPayload = typeof payload === 'object' ? JSON.stringify(payload) : payload;
log.silly(req.requestId, `Transmitting for ${req.accountId}: ${event} ${encodedPayload} Delay: ${delta}ms`);
output(event, encodedPayload);
diff --git a/yarn.lock b/yarn.lock
index c1c27a615c..640d06a102 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -982,6 +982,10 @@ base64-js@^1.0.2:
version "1.2.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
+batch-processor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8"
+
batch@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
@@ -1234,6 +1238,10 @@ chai@^4.1.0:
pathval "^1.0.0"
type-detect "^4.0.0"
+chain-function@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.0.tgz#0d4ab37e7e18ead0bdc47b920764118ce58733dc"
+
chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -1972,7 +1980,7 @@ doctrine@^2.0.0:
esutils "^2.0.2"
isarray "^1.0.0"
-"dom-helpers@^2.4.0 || ^3.0.0", dom-helpers@^3.0.0, dom-helpers@^3.2.1:
+"dom-helpers@^2.4.0 || ^3.0.0", dom-helpers@^3.0.0, dom-helpers@^3.2.0, dom-helpers@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.2.1.tgz#3203e07fed217bd1f424b019735582fc37b2825a"
@@ -2049,6 +2057,12 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.14:
version "1.3.15"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz#08397934891cbcfaebbd18b82a95b5a481138369"
+element-resize-detector@^1.1.12:
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/element-resize-detector/-/element-resize-detector-1.1.12.tgz#8b3fd6eedda17f9c00b360a0ea2df9927ae80ba2"
+ dependencies:
+ batch-processor "^1.0.0"
+
elliptic@^6.0.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
@@ -2061,6 +2075,12 @@ elliptic@^6.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.0"
+emoji-mart@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-1.0.1.tgz#0ef2fd2bf4b6762aab7486c26c574387f034e392"
+ dependencies:
+ measure-scrollbar "^0.1.0"
+
emoji-regex@^6.1.0:
version "6.4.3"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.4.3.tgz#6ac2ac58d4b78def5e39b33fcbf395688af3076c"
@@ -3853,6 +3873,10 @@ mathjs@^3.11.5:
tiny-emitter "2.0.0"
typed-function "0.10.5"
+measure-scrollbar@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/measure-scrollbar/-/measure-scrollbar-0.1.0.tgz#2bbfac6773bcbb98d814e6890554c0b92846fe6f"
+
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -5131,6 +5155,12 @@ promise@^7.1.1:
dependencies:
asap "~2.0.3"
+prop-types-extra@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.0.1.tgz#a57bd4810e82d27a3ff4317ecc1b4ad005f79a82"
+ dependencies:
+ warning "^3.0.0"
+
prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.8:
version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
@@ -5329,6 +5359,17 @@ react-notification@^6.7.1:
dependencies:
prop-types "^15.5.10"
+react-overlays@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.8.1.tgz#26e480003c2fd6f581a4a66c0c86cb3dff17e626"
+ dependencies:
+ classnames "^2.2.5"
+ dom-helpers "^3.2.1"
+ prop-types "^15.5.10"
+ prop-types-extra "^1.0.1"
+ react-transition-group "^2.0.0-beta.0"
+ warning "^3.0.0"
+
react-redux-loading-bar@^2.9.2:
version "2.9.2"
resolved "https://registry.yarnpkg.com/react-redux-loading-bar/-/react-redux-loading-bar-2.9.2.tgz#f0e604ee35af5ecb25addb10bf24ca3d478c95a8"
@@ -5382,6 +5423,14 @@ react-simple-dropdown@^3.0.0:
classnames "^2.1.2"
prop-types "^15.5.8"
+react-sizeme@^2.3.5:
+ version "2.3.5"
+ resolved "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-2.3.5.tgz#f14c0a15f9b24d7b8b6f196871b0af19aa01a422"
+ dependencies:
+ element-resize-detector "^1.1.12"
+ invariant "^2.2.2"
+ lodash "^4.17.4"
+
react-swipeable-views-core@^0.11.1:
version "0.11.1"
resolved "https://registry.yarnpkg.com/react-swipeable-views-core/-/react-swipeable-views-core-0.11.1.tgz#61d046799f90725bbf91a0eb3abcab805c774cac"
@@ -5430,6 +5479,17 @@ react-toggle@^4.0.1:
dependencies:
classnames "^2.2.5"
+react-transition-group@^2.0.0-beta.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.2.0.tgz#793bf8cb15bfe91b3101b24bce1c1d2891659575"
+ dependencies:
+ chain-function "^1.0.0"
+ classnames "^2.2.5"
+ dom-helpers "^3.2.0"
+ loose-envify "^1.3.1"
+ prop-types "^15.5.8"
+ warning "^3.0.0"
+
react-virtualized@^9.7.4:
version "9.9.0"
resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.9.0.tgz#799a6f23819eeb82860d59b82fad33d1d420325e"