RegEx is not working for Some conditions - javascript

I have to validate Name fields in my project and have different validation conditions for it.
Starting Name:
Min. length of 2 chars.
Can be alphabetic chars, blanks and hyphens.
The 1st char must be alphabetic.
Blanks & Hyphens must not be adjacent
My Regex:-
function fname(value){
var fn = new RegExp("([a-zA-Z]{1}[a-zA-Z]*[ -]{0,1}[a-zA-Z])+([ -]{0,1}[a-zA-Z]+)*");
if(fn.test(value)){
return true;
}
else{
return false;
}
}
Last Name:
Can be alphabetic chars, blanks, hyphens and apostrophes.
1st char must be alphabetic.
Blanks, hyphens and apostrophes must not be adjacent.
1 char is acceptable only if that char is O
My Regex:
function fname(value){
var ln = new RegExp("([a-zA-Z]+([a-zA-Z]|([ '][a-zA-Z])|([-][a-zA-Z])){1,}|[O]{1})");
if(ln.test(value)){
return true;
}
else{
return false;
}
}
Both these regex are failing as they are accepting:
Alphanumeric characters are getting acceptable which shouldn't be.
space, hyphen adjacent (in case of starting name) and space, hyphen and apostrophes adjacent (in case of last name) at any position in string.

While this can be done with a single regex, the easiest solution is to just separate the tests:
function is_valid_first_name(str) {
return (
str.length >= 2 &&
/^[a-zA-Z \-]*$/.test(str) &&
/^[a-zA-Z]/.test(str) &&
!/[ \-]{2}/.test(str)
);
}
function is_valid_last_name(str) {
return (
/^[a-zA-Z \-']*$/.test(str) &&
/^[a-zA-Z]/.test(str) &&
!/[ \-']{2}/.test(str) &&
(str.length > 1 || str === 'O')
);
}

At first glance I see you aren't specifying start and end of string boundaries in your regexps so any string conatining a matching substring will validate:
> "Hello".match(/[a-z]+/)
[ 'ello', index: 1, input: 'Hello' ]
> "Hello".match(/^[a-z]+$/)
null
Another ugly thing I see are unescaped hyphens in character classes ([ -]). Even in this case is valid (it will work as you expect) but is ugly because it has special meaning in character classes (depending on context) so minimal and apparently inoffensive changes may break things that were already working:
> "-".match(/[abc-]/);
[ '-', index: 0, input: '-' ]
> "-".match(/[abc-j]/);
null
Answering your question: Ignoring 4th rule it's pretty easy:
> "hello-world as foo".match(/^[a-zA-Z][a-zA-Z\s\-]+$/)
[ 'hello-world as foo', index: 0, input: 'hello-world as foo' ]
First character class ([a-zA-Z]) ensures 2nd rule and is compatible with rules n. 1 and 3 too.
The second character class ([a-zA-Z\s\-]) matches any valid character according rule n. 2.
Following quantifier (+) ensures one or more occurrences which, plus the initial character matched by initial character class sums 2 or more characters (so fits rule n. 1).
Finally, starting and ending ^ and $ boundaries ensures, that matching starts from the really beginning of the string and ends at its end so, as I explained earlier, matching substrings aren't enough to validate if invalid characters are present.
4th rule is a bit more tricky. I think it can be approached by lookbehind and lookahead expressions, but they are not available on all regex engines (even in javascript I think they aren't at least in some ancient versions).
...and, even if available, they are always suboptimal (from the regex engine implementation point of view).
On the other hand, you could rely on grouping instead of character classes combining groups with spaces and groups with hyphens, but that will darken your final expression apart of making it harder to build, understand an test. So, in my opinion it isn't a good solution too.
BUT if you are not forced to use single regular expression it's pretty easy to check apart by an ad hoc expression.
function fname(value){
return !!( // <- (optional) Boolean cast for more consistent return type.
value.match(/^[a-zA-Z][a-zA-Z\s\-]+$/)
&& ! value.match(/\s-|-\s/)
);
}
console.log (fname("hello-world as foo")); // true
console.log (fname("hello- world as foo")); // false
console.log (fname("hello -world as foo")); // false
console.log (fname("-hello-world as foo")); // false (null without "!!" cast).
console.log (fname(" hello-world as foo")); // false (null without "!!" cast).
...as a final note, I used "\s" character class instead of "" for spaces. This matches other spacing characters too (like tabs and, in some conditions, line breaks, etc...) if you don't want to accept those characters, replace all "\s" occurrence by simple spaces.
I preferred to use "\s" in the sake of readability (and because in most cases I like it much more if other spacings are acceptable, but I think in this case it's not).
Last name rules are pretty much the same so required changes are trivial following the same reasoning.

First, both functions have the same name. Maybe that's just a typo.
In any case, I think this does what you want for the first name. It doesn't allow a trailing space or hyphen, but that seems to be implied.
const re_fname = /^[a-zA-Z](?:[- ]?|(?:[a-zA-Z][- ]?)+)$/;
function fname(value){
const res = re_fname.test(value);
console.log("%s: %s", res ? "PASS" : "FAIL", value);
return res;
}
fname("foo-bar");
fname("foobar");
fname("f-");
fname("f--");
fname("foo-bar-");
fname("foo-bar--");
fname("-foo-bar");
fname("foo--bar");
fname("foo bar");
fname("foo bar");
fname("foo- bar");
And the last name, which is nearly identical, only adding the apostrophe to the set, and allowing for a single O match.
const re_lname = /^(?:O|(?:[' -]?|[a-zA-Z](?:[' -]?[a-zA-Z])+)[' -]?)$/;
function lname(value){
const res = re_lname.test(value);
console.log("%s: %s", res ? "PASS" : "FAIL", value);
return res;
}
lname("O");
lname("X");
lname("foobar");
lname("foo-bar");
lname("foo-bar-");
lname("foo-bar-'");
lname("foo-bar'");
lname("-foo-bar");
lname("foo--bar");
lname("foo bar");
lname("foo bar");
lname("foo- bar");
lname("foo'bar");
lname("foo' bar");
lname("foo'- bar");
lname("foo-'bar");

Related

JavaScript regex inline validation for basic calculation string with one operator

I've written a basic 2 operand calculator app (+ - * /) that uses a couple of inline regex validations to filter away invalid characters as they are typed.
An example looks like:
//check if operator is present
if(/[+\-*\/]/.test(display1.textContent)){
//validate the string each time a new character is added
if(!/^\d+\.?\d*[+\-*\/]?\d*\.?\d*$/.test(display1.textContent)){
console.log('invalid')
return false
}
//validate the string character by character before operator
} else {
if(!/^\d+\.?\d*$/.test(display1.textContent)){
console.log('invalid')
return false
}
}
In the above, a valid character doesn't return false:
23.4x0.00025 (no false returned and hence the string is typed out)
But, if an invalid character is typed the function returns false and the input is filtered away:
23.4x0.(x) x at the end returns a false so is filtered (only one operator allowed per calculation)
23.4x0. is typed
It works pretty well but allows for the following which I would like to deal with:
2.+.1
I would prefer 2.0+0.1
My regex would need an if-then-else conditional stating that if the current character is '.' then the next character must be a number else the next char can be number|.|operator. Or if the current character is [+-*/] then the next character must be a number, else the next char can be any char (while following the overall logic).
The tricky part is that the logic must process the string as it is typed character by character and validate at each addition (and be accurate), not at the end when the string is complete.
if-then-else regex is not supported in JavaScript (which I think would satisfy my needs) so I need to use another approach whilst remaining within the JS domain.
Any suggestions about this specific problem would be really helpful.
Thanks
https://github.com/jdineley/Project-calculator
Thanks #trincot for the tips using capturing groups and look around. This helped me write what I needed:
https://regex101.com/r/khUd8H/1
git hub app is updated and works as desired. Now just need to make it pretty!
For ensuring that an operator is not allowed when the preceding number ended in a point, you can insert a positive look behind in your regex that requires the character before an operator to always be a digit: (?<=\d)
Demo:
const validate = s => /^(\d+(\.\d*)?((?<=\d)[+*/-]|$))*$/.test(s);
document.querySelector("input").addEventListener("input", function () {
this.style.backgroundColor = validate(this.value) ? "" : "orange";
});
Input: <input>

Is there any way to validate emojis without using regex with an unicode flag? [duplicate]

I need help for how to detect if an input contains a Japanese emoji/emoticon.
Currently my character set is charset=utf-8. On inputting text, the user can enter Japanese characters/alpanumerics/symbols but if they insert an emoji, onsubmit JavaScript will check if there is an emoji, error message will display.
I can't get this to work because I have no idea on how to detect an emoji in JavaScript?
The answers might work but are terrible because they rely on unicode ranges that are unreadable and somewhat "magic" because it's not always clear where do they come from and why they work, not to mention they're not resilient to new emojis being added to the spec.
Major browsers now support unicode property escape which allows for matching emojis based on their belonging in the Emoji unicode category: \p{Emoji} matches an emoji, \P{Emoji} matches a non-emoji.
Note that officially, 0123456789#* and other characters are emojis too, so the property escape you might want to use is not Emoji but rather Extended_Pictographic which denotes all the characters typically understood as emojis!
Make sure to include the u flag at the end.
console.log(
/\p{Emoji}/u.test('flowers'), // false :)
/\p{Emoji}/u.test('flowers ๐ŸŒผ๐ŸŒบ๐ŸŒธ'), // true :)
/\p{Emoji}/u.test('flowers 123'), // true :(
)
console.log(
/\p{Extended_Pictographic}/u.test('flowers'), // false :)
/\p{Extended_Pictographic}/u.test('flowers ๐ŸŒผ๐ŸŒบ๐ŸŒธ'), // true :)
/\p{Extended_Pictographic}/u.test('flowers 123'), // false :)
)
This works fine for detecting emojis, but if you want to use the same regex to extract them, you might be surprised with its behavior, since some emojis that appear as one character are actually several characters. They're what we call emoji sequences, more about them in this question
const regex = /\p{Extended_Pictographic}/ug
const family = '๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง' // "family
console.log(family.length) // not 1, but 8!
console.log(regex.test(family)) // true, as expected
console.log(family.match(regex)) // not [family], but [man, woman, girl]
You can use the following regex:
/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g
If you just want to remove it from the string, you can do something like this.
function removeEmojis (string) {
var regex = /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g;
return string.replace(regex, '');
}
A simple function that returns true if your string contains one or more emojis.
function isEmoji(str) {
var ranges = [
'(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c[\ude32-\ude3a]|[\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])' // U+1F680 to U+1F6FF
];
if (str.match(ranges.join('|'))) {
return true;
} else {
return false;
}
}
First of all, you cannot rely on ECMAScript 2018+ compliant \p{Emoji} (at least at the time of writing). It really matches some 0123456789#* non-emoji chars (see Nino Filiu's answer). See Why do Unicode emoji property escapes match numbers? for more details.
To test if there are any emoji chars in a string in JavaScript, you can use the following ECMAScript 2018+ compliant solution (mind the u flag):
const regex_emoji = /[\p{Extended_Pictographic}\u{1F3FB}-\u{1F3FF}\u{1F9B0}-\u{1F9B3}]/u;
console.log( regex_emoji.test('flowers 123') ); // => false
console.log( regex_emoji.test('flowers ๐ŸŒผ๐ŸŒบ๐ŸŒธ') ); // => true
You can even extract one or more emoji char sequences using this pattern (note the added g flag to find all occurrences and + to match one or more consecutive occurrences of the character class pattern):
const regex_emoji = /[\p{Extended_Pictographic}\u{1F3FB}-\u{1F3FF}\u{1F9B0}-\u{1F9B3}]+/gu;
console.log( 'flowers 123'.match(regex_emoji) ); // => null
console.log( 'flowers ๐ŸŒผ๐ŸŒบ๐ŸŒธ'.match(regex_emoji) ); // => [ "๐ŸŒผ๐ŸŒบ๐ŸŒธ" ]
In a nutshell, the Extended_Pictographic Unicode category class matches most emoji chars except for some Emoji_Components, that is, light skin to dark skin mode chars (\u{1F3FB}-\u{1F3FF}) and red-haired to white-haired chars (\u{1F9B0}-\u{1F9B3}).
To count, or extract emojis as an array of single chars or consecutive sequences (like in the second code snippet from above) from longer texts and perform other actions on emojis, you can use a custom regex (like in Scott Weaver's answer). It is safer to use the longer, escaped version. However, there are 4702 emoji characters defined in the Emoji Keyboard/Display Test Data for UTR #51 (Version: 14.0) file. Thus, the (ES5 compliant, works even in IE) regex to match a single emoji char is
var EmojiPattern = /[#*0-9]\uFE0F?\u20E3|\u00A9\uFE0F?|[\u00AE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA]\uFE0F?|[\u231A\u231B]|[\u2328\u23CF]\uFE0F?|[\u23E9-\u23EC]|[\u23ED-\u23EF]\uFE0F?|\u23F0|[\u23F1\u23F2]\uFE0F?|\u23F3|[\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC]\uFE0F?|[\u25FD\u25FE]|[\u2600-\u2604\u260E\u2611]\uFE0F?|[\u2614\u2615]|\u2618\uFE0F?|\u261D(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642]\uFE0F?|[\u2648-\u2653]|[\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E]\uFE0F?|\u267F|\u2692\uFE0F?|\u2693|[\u2694-\u2697\u2699\u269B\u269C\u26A0]\uFE0F?|\u26A1|\u26A7\uFE0F?|[\u26AA\u26AB]|[\u26B0\u26B1]\uFE0F?|[\u26BD\u26BE\u26C4\u26C5]|\u26C8\uFE0F?|\u26CE|[\u26CF\u26D1\u26D3]\uFE0F?|\u26D4|\u26E9\uFE0F?|\u26EA|[\u26F0\u26F1]\uFE0F?|[\u26F2\u26F3]|\u26F4\uFE0F?|\u26F5|[\u26F7\u26F8]\uFE0F?|\u26F9(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\uFE0F(?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\u26FA\u26FD]|\u2702\uFE0F?|\u2705|[\u2708\u2709]\uFE0F?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|\u270F\uFE0F?|[\u2712\u2714\u2716\u271D\u2721]\uFE0F?|\u2728|[\u2733\u2734\u2744\u2747]\uFE0F?|[\u274C\u274E\u2753-\u2755\u2757]|\u2763\uFE0F?|\u2764(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uFE0F(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?)?|[\u2795-\u2797]|\u27A1\uFE0F?|[\u27B0\u27BF]|[\u2934\u2935\u2B05-\u2B07]\uFE0F?|[\u2B1B\u2B1C\u2B50\u2B55]|[\u3030\u303D\u3297\u3299]\uFE0F?|\uD83C(?:[\uDC04\uDCCF]|[\uDD70\uDD71\uDD7E\uDD7F]\uFE0F?|[\uDD8E\uDD91-\uDD9A]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDE01|\uDE02\uFE0F?|[\uDE1A\uDE2F\uDE32-\uDE36]|\uDE37\uFE0F?|[\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20]|[\uDF21\uDF24-\uDF2C]\uFE0F?|[\uDF2D-\uDF35]|\uDF36\uFE0F?|[\uDF37-\uDF7C]|\uDF7D\uFE0F?|[\uDF7E-\uDF84]|\uDF85(?:\uD83C[\uDFFB-\uDFFF])?|[\uDF86-\uDF93]|[\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F]\uFE0F?|[\uDFA0-\uDFC1]|\uDFC2(?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDFC5\uDFC6]|\uDFC7(?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC8\uDFC9]|\uDFCA(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDFCB\uDFCC](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\uFE0F(?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDFCD\uDFCE]\uFE0F?|[\uDFCF-\uDFD3]|[\uDFD4-\uDFDF]\uFE0F?|[\uDFE0-\uDFF0]|\uDFF3(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08)|\uFE0F(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?)?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?|[\uDFF5\uDFF7]\uFE0F?|[\uDFF8-\uDFFF])|\uD83D(?:[\uDC00-\uDC07]|\uDC08(?:\u200D\u2B1B)?|[\uDC09-\uDC14]|\uDC15(?:\u200D\uD83E\uDDBA)?|[\uDC16-\uDC3A]|\uDC3B(?:\u200D\u2744\uFE0F?)?|[\uDC3C-\uDC3E]|\uDC3F\uFE0F?|\uDC40|\uDC41(?:\u200D\uD83D\uDDE8\uFE0F?|\uFE0F(?:\u200D\uD83D\uDDE8\uFE0F?)?)?|[\uDC42\uDC43](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC44\uDC45]|[\uDC46-\uDC50](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC51-\uDC65]|[\uDC66\uDC67](?:\uD83C[\uDFFB-\uDFFF])?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|\uDC8B\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|\uDC8B\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|\uDC8B\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|\uDC8B\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|\uDC8B\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?))?|\uDC6A|[\uDC6B-\uDC6D](?:\uD83C[\uDFFB-\uDFFF])?|\uDC6E(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDC70\uDC71](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDC72(?:\uD83C[\uDFFB-\uDFFF])?|\uDC73(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDC74-\uDC76](?:\uD83C[\uDFFB-\uDFFF])?|\uDC77(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDC78(?:\uD83C[\uDFFB-\uDFFF])?|[\uDC79-\uDC7B]|\uDC7C(?:\uD83C[\uDFFB-\uDFFF])?|[\uDC7D-\uDC80]|[\uDC81\uDC82](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDC83(?:\uD83C[\uDFFB-\uDFFF])?|\uDC84|\uDC85(?:\uD83C[\uDFFB-\uDFFF])?|[\uDC86\uDC87](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDC88-\uDC8E]|\uDC8F(?:\uD83C[\uDFFB-\uDFFF])?|\uDC90|\uDC91(?:\uD83C[\uDFFB-\uDFFF])?|[\uDC92-\uDCA9]|\uDCAA(?:\uD83C[\uDFFB-\uDFFF])?|[\uDCAB-\uDCFC]|\uDCFD\uFE0F?|[\uDCFF-\uDD3D]|[\uDD49\uDD4A]\uFE0F?|[\uDD4B-\uDD4E\uDD50-\uDD67]|[\uDD6F\uDD70\uDD73]\uFE0F?|\uDD74(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|\uDD75(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\uFE0F(?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDD76-\uDD79]\uFE0F?|\uDD7A(?:\uD83C[\uDFFB-\uDFFF])?|[\uDD87\uDD8A-\uDD8D]\uFE0F?|\uDD90(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDD95\uDD96](?:\uD83C[\uDFFB-\uDFFF])?|\uDDA4|[\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA]\uFE0F?|[\uDDFB-\uDE2D]|\uDE2E(?:\u200D\uD83D\uDCA8)?|[\uDE2F-\uDE34]|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|[\uDE37-\uDE44]|[\uDE45-\uDE47](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDE48-\uDE4A]|\uDE4B(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDE4C(?:\uD83C[\uDFFB-\uDFFF])?|[\uDE4D\uDE4E](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDE4F(?:\uD83C[\uDFFB-\uDFFF])?|[\uDE80-\uDEA2]|\uDEA3(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDEA4-\uDEB3]|[\uDEB4-\uDEB6](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDEB7-\uDEBF]|\uDEC0(?:\uD83C[\uDFFB-\uDFFF])?|[\uDEC1-\uDEC5]|\uDECB\uFE0F?|\uDECC(?:\uD83C[\uDFFB-\uDFFF])?|[\uDECD-\uDECF]\uFE0F?|[\uDED0-\uDED2\uDED5-\uDED7\uDEDD-\uDEDF]|[\uDEE0-\uDEE5\uDEE9]\uFE0F?|[\uDEEB\uDEEC]|[\uDEF0\uDEF3]\uFE0F?|[\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0])|\uD83E(?:\uDD0C(?:\uD83C[\uDFFB-\uDFFF])?|[\uDD0D\uDD0E]|\uDD0F(?:\uD83C[\uDFFB-\uDFFF])?|[\uDD10-\uDD17]|[\uDD18-\uDD1F](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD20-\uDD25]|\uDD26(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDD27-\uDD2F]|[\uDD30-\uDD34](?:\uD83C[\uDFFB-\uDFFF])?|\uDD35(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDD36(?:\uD83C[\uDFFB-\uDFFF])?|[\uDD37-\uDD39](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDD3A|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD3D\uDD3E](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDD3F-\uDD45\uDD47-\uDD76]|\uDD77(?:\uD83C[\uDFFB-\uDFFF])?|[\uDD78-\uDDB4]|[\uDDB5\uDDB6](?:\uD83C[\uDFFB-\uDFFF])?|\uDDB7|[\uDDB8\uDDB9](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDDBA|\uDDBB(?:\uD83C[\uDFFB-\uDFFF])?|[\uDDBC-\uDDCC]|[\uDDCD-\uDDCF](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDDD0|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1|[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])))?))?|[\uDDD2\uDDD3](?:\uD83C[\uDFFB-\uDFFF])?|\uDDD4(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|\uDDD5(?:\uD83C[\uDFFB-\uDFFF])?|[\uDDD6-\uDDDD](?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC2]|[\uDEC3-\uDEC5](?:\uD83C[\uDFFB-\uDFFF])?|[\uDED0-\uDED9\uDEE0-\uDEE7]|\uDEF0(?:\uD83C[\uDFFB-\uDFFF])?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?|[\uDEF2-\uDEF6](?:\uD83C[\uDFFB-\uDFFF])?)/g;
See the regex demo. The g flag at the end means this regex can match all occurrences in the input string.
The pattern is created dynamically from the list of emojis and contracted using a regex trie.
See this JavaScript demo:
var text = 'flowers ๐ŸŒผ๐ŸŒบ๐ŸŒธ';
// Detecting if there is at least one emoji
console.log( emoji_detection_regex.test(text) ); // => true
// Counting emojis
console.log( (text.match(emoji_count_regex) || []).length ); // => 3
// Extracting one by one, single emoji array
console.log( text.match(emoji_count_regex) ); // => ["๐ŸŒผ","๐ŸŒบ","๐ŸŒธ"]
// Extracting emoji sequences
console.log( text.match(emoji_extract_or_remove_regex) ); // => ["๐ŸŒผ๐ŸŒบ๐ŸŒธ"]
// Removing emojis
console.log( text.replace(emoji_extract_or_remove_regex, '') ); // => 'flowers '
<script src="https://gitcdn.link/repo/stribizhev/Emojis/main/ws_emoji_regex.js"></script>
The emoji regex declarations are available in the https://github.com/stribizhev/Emojis/blob/main/ws_emoji_regex.js file.
We can detect all list of surrogate pairs or the Emoji characters in a specific range.
If the issue related with storing the input string to database like MySQL version before 5.5 we need to detect and remove all the surrogate pairs using the below regex
/([\uD800-\uDBFF][\uDC00-\uDFFF])/g.
Update for 2020: Many of these patterns don't match compound emojis or Modifier Sequences correctly, or are simply outdated and do not match the newer emojis.
Consider this kissing couple: ๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ. It's actually 6 (maybe more) other emojis glued together with the ZWJ zero-width joiner. To match this correctly, you have to actually match that sequence.
Thus, by matching the longer sequences first, this brute-force pattern (too long too paste, but it's a simple alternation and runs fast) correctly parses all 3521 combined emojis as of May 2021:
GitHub link: https://github.com/sweaver2112/Regex-combined-emojis
Edit 5/10/2021: If the size of the Unicode escape version of this regex is off-putting to you, you could actually skip the Unicode escape sequences and just use literal emojis, thereby saving tons of space...well, almost. This character, "*๏ธโƒฃ", which starts with an asterisk, will throw a "nothing to quantify" error. Getting rid of just this guy yields a much shorter, still working, copy/pastable regex that matches 3,520/3,521 Emojis at the present date:
Regex 101 Demo (compact, unsafe literal emoji version)
Regex 101 Demo (long, safe unicode escape version)
The demos' input string includes all characters from
https://unicode.org/emoji/charts/full-emoji-list.html (13.1)
https://unicode.org/emoji/charts-13.1/full-emoji-modifiers.html
Working example using the compact version:
/*the pattern*/
var emojiPattern = String.raw`(?:๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ|๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ|๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ|๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ|๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ|๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ|๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ|๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง|๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง|๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง|๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘|๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘จ|๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ|๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ|๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง|๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง|๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง|๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง|๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง|๐Ÿ‘๏ธโ€๐Ÿ—จ๏ธ|๐Ÿง”๐Ÿปโ€โ™‚๏ธ|๐Ÿง”๐Ÿผโ€โ™‚๏ธ|๐Ÿง”๐Ÿฝโ€โ™‚๏ธ|๐Ÿง”๐Ÿพโ€โ™‚๏ธ|๐Ÿง”๐Ÿฟโ€โ™‚๏ธ|๐Ÿง”๐Ÿปโ€โ™€๏ธ|๐Ÿง”๐Ÿผโ€โ™€๏ธ|๐Ÿง”๐Ÿฝโ€โ™€๏ธ|๐Ÿง”๐Ÿพโ€โ™€๏ธ|๐Ÿง”๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฐ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฐ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฐ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฐ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฐ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฑ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฑ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฑ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฑ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฑ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆณ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆณ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆณ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆณ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆณ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฒ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฒ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฒ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฒ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฒ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฐ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฐ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฐ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฐ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฐ|๐Ÿง‘๐Ÿปโ€๐Ÿฆฐ|๐Ÿง‘๐Ÿผโ€๐Ÿฆฐ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆฐ|๐Ÿง‘๐Ÿพโ€๐Ÿฆฐ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆฐ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฑ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฑ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฑ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฑ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฑ|๐Ÿง‘๐Ÿปโ€๐Ÿฆฑ|๐Ÿง‘๐Ÿผโ€๐Ÿฆฑ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆฑ|๐Ÿง‘๐Ÿพโ€๐Ÿฆฑ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆฑ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆณ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆณ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆณ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆณ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆณ|๐Ÿง‘๐Ÿปโ€๐Ÿฆณ|๐Ÿง‘๐Ÿผโ€๐Ÿฆณ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆณ|๐Ÿง‘๐Ÿพโ€๐Ÿฆณ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆณ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฒ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฒ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฒ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฒ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฒ|๐Ÿง‘๐Ÿปโ€๐Ÿฆฒ|๐Ÿง‘๐Ÿผโ€๐Ÿฆฒ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆฒ|๐Ÿง‘๐Ÿพโ€๐Ÿฆฒ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆฒ|๐Ÿ‘ฑ๐Ÿปโ€โ™€๏ธ|๐Ÿ‘ฑ๐Ÿผโ€โ™€๏ธ|๐Ÿ‘ฑ๐Ÿฝโ€โ™€๏ธ|๐Ÿ‘ฑ๐Ÿพโ€โ™€๏ธ|๐Ÿ‘ฑ๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘ฑ๐Ÿปโ€โ™‚๏ธ|๐Ÿ‘ฑ๐Ÿผโ€โ™‚๏ธ|๐Ÿ‘ฑ๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‘ฑ๐Ÿพโ€โ™‚๏ธ|๐Ÿ‘ฑ๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™๐Ÿปโ€โ™‚๏ธ|๐Ÿ™๐Ÿผโ€โ™‚๏ธ|๐Ÿ™๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™๐Ÿพโ€โ™‚๏ธ|๐Ÿ™๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™๐Ÿปโ€โ™€๏ธ|๐Ÿ™๐Ÿผโ€โ™€๏ธ|๐Ÿ™๐Ÿฝโ€โ™€๏ธ|๐Ÿ™๐Ÿพโ€โ™€๏ธ|๐Ÿ™๐Ÿฟโ€โ™€๏ธ|๐Ÿ™Ž๐Ÿปโ€โ™‚๏ธ|๐Ÿ™Ž๐Ÿผโ€โ™‚๏ธ|๐Ÿ™Ž๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™Ž๐Ÿพโ€โ™‚๏ธ|๐Ÿ™Ž๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™Ž๐Ÿปโ€โ™€๏ธ|๐Ÿ™Ž๐Ÿผโ€โ™€๏ธ|๐Ÿ™Ž๐Ÿฝโ€โ™€๏ธ|๐Ÿ™Ž๐Ÿพโ€โ™€๏ธ|๐Ÿ™Ž๐Ÿฟโ€โ™€๏ธ|๐Ÿ™…๐Ÿปโ€โ™‚๏ธ|๐Ÿ™…๐Ÿผโ€โ™‚๏ธ|๐Ÿ™…๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™…๐Ÿพโ€โ™‚๏ธ|๐Ÿ™…๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™…๐Ÿปโ€โ™€๏ธ|๐Ÿ™…๐Ÿผโ€โ™€๏ธ|๐Ÿ™…๐Ÿฝโ€โ™€๏ธ|๐Ÿ™…๐Ÿพโ€โ™€๏ธ|๐Ÿ™…๐Ÿฟโ€โ™€๏ธ|๐Ÿ™†๐Ÿปโ€โ™‚๏ธ|๐Ÿ™†๐Ÿผโ€โ™‚๏ธ|๐Ÿ™†๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™†๐Ÿพโ€โ™‚๏ธ|๐Ÿ™†๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™†๐Ÿปโ€โ™€๏ธ|๐Ÿ™†๐Ÿผโ€โ™€๏ธ|๐Ÿ™†๐Ÿฝโ€โ™€๏ธ|๐Ÿ™†๐Ÿพโ€โ™€๏ธ|๐Ÿ™†๐Ÿฟโ€โ™€๏ธ|๐Ÿ’๐Ÿปโ€โ™‚๏ธ|๐Ÿ’๐Ÿผโ€โ™‚๏ธ|๐Ÿ’๐Ÿฝโ€โ™‚๏ธ|๐Ÿ’๐Ÿพโ€โ™‚๏ธ|๐Ÿ’๐Ÿฟโ€โ™‚๏ธ|๐Ÿ’๐Ÿปโ€โ™€๏ธ|๐Ÿ’๐Ÿผโ€โ™€๏ธ|๐Ÿ’๐Ÿฝโ€โ™€๏ธ|๐Ÿ’๐Ÿพโ€โ™€๏ธ|๐Ÿ’๐Ÿฟโ€โ™€๏ธ|๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ|๐Ÿ™‹๐Ÿผโ€โ™‚๏ธ|๐Ÿ™‹๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™‹๐Ÿพโ€โ™‚๏ธ|๐Ÿ™‹๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™‹๐Ÿปโ€โ™€๏ธ|๐Ÿ™‹๐Ÿผโ€โ™€๏ธ|๐Ÿ™‹๐Ÿฝโ€โ™€๏ธ|๐Ÿ™‹๐Ÿพโ€โ™€๏ธ|๐Ÿ™‹๐Ÿฟโ€โ™€๏ธ|๐Ÿง๐Ÿปโ€โ™‚๏ธ|๐Ÿง๐Ÿผโ€โ™‚๏ธ|๐Ÿง๐Ÿฝโ€โ™‚๏ธ|๐Ÿง๐Ÿพโ€โ™‚๏ธ|๐Ÿง๐Ÿฟโ€โ™‚๏ธ|๐Ÿง๐Ÿปโ€โ™€๏ธ|๐Ÿง๐Ÿผโ€โ™€๏ธ|๐Ÿง๐Ÿฝโ€โ™€๏ธ|๐Ÿง๐Ÿพโ€โ™€๏ธ|๐Ÿง๐Ÿฟโ€โ™€๏ธ|๐Ÿ™‡๐Ÿปโ€โ™‚๏ธ|๐Ÿ™‡๐Ÿผโ€โ™‚๏ธ|๐Ÿ™‡๐Ÿฝโ€โ™‚๏ธ|๐Ÿ™‡๐Ÿพโ€โ™‚๏ธ|๐Ÿ™‡๐Ÿฟโ€โ™‚๏ธ|๐Ÿ™‡๐Ÿปโ€โ™€๏ธ|๐Ÿ™‡๐Ÿผโ€โ™€๏ธ|๐Ÿ™‡๐Ÿฝโ€โ™€๏ธ|๐Ÿ™‡๐Ÿพโ€โ™€๏ธ|๐Ÿ™‡๐Ÿฟโ€โ™€๏ธ|๐Ÿคฆ๐Ÿปโ€โ™‚๏ธ|๐Ÿคฆ๐Ÿผโ€โ™‚๏ธ|๐Ÿคฆ๐Ÿฝโ€โ™‚๏ธ|๐Ÿคฆ๐Ÿพโ€โ™‚๏ธ|๐Ÿคฆ๐Ÿฟโ€โ™‚๏ธ|๐Ÿคฆ๐Ÿปโ€โ™€๏ธ|๐Ÿคฆ๐Ÿผโ€โ™€๏ธ|๐Ÿคฆ๐Ÿฝโ€โ™€๏ธ|๐Ÿคฆ๐Ÿพโ€โ™€๏ธ|๐Ÿคฆ๐Ÿฟโ€โ™€๏ธ|๐Ÿคท๐Ÿปโ€โ™‚๏ธ|๐Ÿคท๐Ÿผโ€โ™‚๏ธ|๐Ÿคท๐Ÿฝโ€โ™‚๏ธ|๐Ÿคท๐Ÿพโ€โ™‚๏ธ|๐Ÿคท๐Ÿฟโ€โ™‚๏ธ|๐Ÿคท๐Ÿปโ€โ™€๏ธ|๐Ÿคท๐Ÿผโ€โ™€๏ธ|๐Ÿคท๐Ÿฝโ€โ™€๏ธ|๐Ÿคท๐Ÿพโ€โ™€๏ธ|๐Ÿคท๐Ÿฟโ€โ™€๏ธ|๐Ÿง‘๐Ÿปโ€โš•๏ธ|๐Ÿง‘๐Ÿผโ€โš•๏ธ|๐Ÿง‘๐Ÿฝโ€โš•๏ธ|๐Ÿง‘๐Ÿพโ€โš•๏ธ|๐Ÿง‘๐Ÿฟโ€โš•๏ธ|๐Ÿ‘จ๐Ÿปโ€โš•๏ธ|๐Ÿ‘จ๐Ÿผโ€โš•๏ธ|๐Ÿ‘จ๐Ÿฝโ€โš•๏ธ|๐Ÿ‘จ๐Ÿพโ€โš•๏ธ|๐Ÿ‘จ๐Ÿฟโ€โš•๏ธ|๐Ÿ‘ฉ๐Ÿปโ€โš•๏ธ|๐Ÿ‘ฉ๐Ÿผโ€โš•๏ธ|๐Ÿ‘ฉ๐Ÿฝโ€โš•๏ธ|๐Ÿ‘ฉ๐Ÿพโ€โš•๏ธ|๐Ÿ‘ฉ๐Ÿฟโ€โš•๏ธ|๐Ÿง‘๐Ÿปโ€๐ŸŽ“|๐Ÿง‘๐Ÿผโ€๐ŸŽ“|๐Ÿง‘๐Ÿฝโ€๐ŸŽ“|๐Ÿง‘๐Ÿพโ€๐ŸŽ“|๐Ÿง‘๐Ÿฟโ€๐ŸŽ“|๐Ÿ‘จ๐Ÿปโ€๐ŸŽ“|๐Ÿ‘จ๐Ÿผโ€๐ŸŽ“|๐Ÿ‘จ๐Ÿฝโ€๐ŸŽ“|๐Ÿ‘จ๐Ÿพโ€๐ŸŽ“|๐Ÿ‘จ๐Ÿฟโ€๐ŸŽ“|๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽ“|๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽ“|๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽ“|๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽ“|๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽ“|๐Ÿง‘๐Ÿปโ€๐Ÿซ|๐Ÿง‘๐Ÿผโ€๐Ÿซ|๐Ÿง‘๐Ÿฝโ€๐Ÿซ|๐Ÿง‘๐Ÿพโ€๐Ÿซ|๐Ÿง‘๐Ÿฟโ€๐Ÿซ|๐Ÿ‘จ๐Ÿปโ€๐Ÿซ|๐Ÿ‘จ๐Ÿผโ€๐Ÿซ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿซ|๐Ÿ‘จ๐Ÿพโ€๐Ÿซ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿซ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿซ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿซ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿซ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿซ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿซ|๐Ÿง‘๐Ÿปโ€โš–๏ธ|๐Ÿง‘๐Ÿผโ€โš–๏ธ|๐Ÿง‘๐Ÿฝโ€โš–๏ธ|๐Ÿง‘๐Ÿพโ€โš–๏ธ|๐Ÿง‘๐Ÿฟโ€โš–๏ธ|๐Ÿ‘จ๐Ÿปโ€โš–๏ธ|๐Ÿ‘จ๐Ÿผโ€โš–๏ธ|๐Ÿ‘จ๐Ÿฝโ€โš–๏ธ|๐Ÿ‘จ๐Ÿพโ€โš–๏ธ|๐Ÿ‘จ๐Ÿฟโ€โš–๏ธ|๐Ÿ‘ฉ๐Ÿปโ€โš–๏ธ|๐Ÿ‘ฉ๐Ÿผโ€โš–๏ธ|๐Ÿ‘ฉ๐Ÿฝโ€โš–๏ธ|๐Ÿ‘ฉ๐Ÿพโ€โš–๏ธ|๐Ÿ‘ฉ๐Ÿฟโ€โš–๏ธ|๐Ÿง‘๐Ÿปโ€๐ŸŒพ|๐Ÿง‘๐Ÿผโ€๐ŸŒพ|๐Ÿง‘๐Ÿฝโ€๐ŸŒพ|๐Ÿง‘๐Ÿพโ€๐ŸŒพ|๐Ÿง‘๐Ÿฟโ€๐ŸŒพ|๐Ÿ‘จ๐Ÿปโ€๐ŸŒพ|๐Ÿ‘จ๐Ÿผโ€๐ŸŒพ|๐Ÿ‘จ๐Ÿฝโ€๐ŸŒพ|๐Ÿ‘จ๐Ÿพโ€๐ŸŒพ|๐Ÿ‘จ๐Ÿฟโ€๐ŸŒพ|๐Ÿ‘ฉ๐Ÿปโ€๐ŸŒพ|๐Ÿ‘ฉ๐Ÿผโ€๐ŸŒพ|๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŒพ|๐Ÿ‘ฉ๐Ÿพโ€๐ŸŒพ|๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŒพ|๐Ÿง‘๐Ÿปโ€๐Ÿณ|๐Ÿง‘๐Ÿผโ€๐Ÿณ|๐Ÿง‘๐Ÿฝโ€๐Ÿณ|๐Ÿง‘๐Ÿพโ€๐Ÿณ|๐Ÿง‘๐Ÿฟโ€๐Ÿณ|๐Ÿ‘จ๐Ÿปโ€๐Ÿณ|๐Ÿ‘จ๐Ÿผโ€๐Ÿณ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿณ|๐Ÿ‘จ๐Ÿพโ€๐Ÿณ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿณ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿณ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿณ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿณ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿณ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿณ|๐Ÿง‘๐Ÿปโ€๐Ÿ”ง|๐Ÿง‘๐Ÿผโ€๐Ÿ”ง|๐Ÿง‘๐Ÿฝโ€๐Ÿ”ง|๐Ÿง‘๐Ÿพโ€๐Ÿ”ง|๐Ÿง‘๐Ÿฟโ€๐Ÿ”ง|๐Ÿ‘จ๐Ÿปโ€๐Ÿ”ง|๐Ÿ‘จ๐Ÿผโ€๐Ÿ”ง|๐Ÿ‘จ๐Ÿฝโ€๐Ÿ”ง|๐Ÿ‘จ๐Ÿพโ€๐Ÿ”ง|๐Ÿ‘จ๐Ÿฟโ€๐Ÿ”ง|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ง|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ”ง|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ”ง|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ”ง|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ”ง|๐Ÿง‘๐Ÿปโ€๐Ÿญ|๐Ÿง‘๐Ÿผโ€๐Ÿญ|๐Ÿง‘๐Ÿฝโ€๐Ÿญ|๐Ÿง‘๐Ÿพโ€๐Ÿญ|๐Ÿง‘๐Ÿฟโ€๐Ÿญ|๐Ÿ‘จ๐Ÿปโ€๐Ÿญ|๐Ÿ‘จ๐Ÿผโ€๐Ÿญ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿญ|๐Ÿ‘จ๐Ÿพโ€๐Ÿญ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿญ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿญ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿญ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿญ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿญ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿญ|๐Ÿง‘๐Ÿปโ€๐Ÿ’ผ|๐Ÿง‘๐Ÿผโ€๐Ÿ’ผ|๐Ÿง‘๐Ÿฝโ€๐Ÿ’ผ|๐Ÿง‘๐Ÿพโ€๐Ÿ’ผ|๐Ÿง‘๐Ÿฟโ€๐Ÿ’ผ|๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ผ|๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ผ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ผ|๐Ÿ‘จ๐Ÿพโ€๐Ÿ’ผ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ผ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ผ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ผ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ผ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ผ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ’ผ|๐Ÿง‘๐Ÿปโ€๐Ÿ”ฌ|๐Ÿง‘๐Ÿผโ€๐Ÿ”ฌ|๐Ÿง‘๐Ÿฝโ€๐Ÿ”ฌ|๐Ÿง‘๐Ÿพโ€๐Ÿ”ฌ|๐Ÿง‘๐Ÿฟโ€๐Ÿ”ฌ|๐Ÿ‘จ๐Ÿปโ€๐Ÿ”ฌ|๐Ÿ‘จ๐Ÿผโ€๐Ÿ”ฌ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿ”ฌ|๐Ÿ‘จ๐Ÿพโ€๐Ÿ”ฌ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿ”ฌ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ฌ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ”ฌ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ”ฌ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ”ฌ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ”ฌ|๐Ÿง‘๐Ÿปโ€๐Ÿ’ป|๐Ÿง‘๐Ÿผโ€๐Ÿ’ป|๐Ÿง‘๐Ÿฝโ€๐Ÿ’ป|๐Ÿง‘๐Ÿพโ€๐Ÿ’ป|๐Ÿง‘๐Ÿฟโ€๐Ÿ’ป|๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป|๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ป|๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป|๐Ÿ‘จ๐Ÿพโ€๐Ÿ’ป|๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ป|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ป|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ป|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ’ป|๐Ÿง‘๐Ÿปโ€๐ŸŽค|๐Ÿง‘๐Ÿผโ€๐ŸŽค|๐Ÿง‘๐Ÿฝโ€๐ŸŽค|๐Ÿง‘๐Ÿพโ€๐ŸŽค|๐Ÿง‘๐Ÿฟโ€๐ŸŽค|๐Ÿ‘จ๐Ÿปโ€๐ŸŽค|๐Ÿ‘จ๐Ÿผโ€๐ŸŽค|๐Ÿ‘จ๐Ÿฝโ€๐ŸŽค|๐Ÿ‘จ๐Ÿพโ€๐ŸŽค|๐Ÿ‘จ๐Ÿฟโ€๐ŸŽค|๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽค|๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽค|๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽค|๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽค|๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽค|๐Ÿง‘๐Ÿปโ€๐ŸŽจ|๐Ÿง‘๐Ÿผโ€๐ŸŽจ|๐Ÿง‘๐Ÿฝโ€๐ŸŽจ|๐Ÿง‘๐Ÿพโ€๐ŸŽจ|๐Ÿง‘๐Ÿฟโ€๐ŸŽจ|๐Ÿ‘จ๐Ÿปโ€๐ŸŽจ|๐Ÿ‘จ๐Ÿผโ€๐ŸŽจ|๐Ÿ‘จ๐Ÿฝโ€๐ŸŽจ|๐Ÿ‘จ๐Ÿพโ€๐ŸŽจ|๐Ÿ‘จ๐Ÿฟโ€๐ŸŽจ|๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽจ|๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽจ|๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽจ|๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽจ|๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽจ|๐Ÿง‘๐Ÿปโ€โœˆ๏ธ|๐Ÿง‘๐Ÿผโ€โœˆ๏ธ|๐Ÿง‘๐Ÿฝโ€โœˆ๏ธ|๐Ÿง‘๐Ÿพโ€โœˆ๏ธ|๐Ÿง‘๐Ÿฟโ€โœˆ๏ธ|๐Ÿ‘จ๐Ÿปโ€โœˆ๏ธ|๐Ÿ‘จ๐Ÿผโ€โœˆ๏ธ|๐Ÿ‘จ๐Ÿฝโ€โœˆ๏ธ|๐Ÿ‘จ๐Ÿพโ€โœˆ๏ธ|๐Ÿ‘จ๐Ÿฟโ€โœˆ๏ธ|๐Ÿ‘ฉ๐Ÿปโ€โœˆ๏ธ|๐Ÿ‘ฉ๐Ÿผโ€โœˆ๏ธ|๐Ÿ‘ฉ๐Ÿฝโ€โœˆ๏ธ|๐Ÿ‘ฉ๐Ÿพโ€โœˆ๏ธ|๐Ÿ‘ฉ๐Ÿฟโ€โœˆ๏ธ|๐Ÿง‘๐Ÿปโ€๐Ÿš€|๐Ÿง‘๐Ÿผโ€๐Ÿš€|๐Ÿง‘๐Ÿฝโ€๐Ÿš€|๐Ÿง‘๐Ÿพโ€๐Ÿš€|๐Ÿง‘๐Ÿฟโ€๐Ÿš€|๐Ÿ‘จ๐Ÿปโ€๐Ÿš€|๐Ÿ‘จ๐Ÿผโ€๐Ÿš€|๐Ÿ‘จ๐Ÿฝโ€๐Ÿš€|๐Ÿ‘จ๐Ÿพโ€๐Ÿš€|๐Ÿ‘จ๐Ÿฟโ€๐Ÿš€|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿš€|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿš€|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿš€|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿš€|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿš€|๐Ÿง‘๐Ÿปโ€๐Ÿš’|๐Ÿง‘๐Ÿผโ€๐Ÿš’|๐Ÿง‘๐Ÿฝโ€๐Ÿš’|๐Ÿง‘๐Ÿพโ€๐Ÿš’|๐Ÿง‘๐Ÿฟโ€๐Ÿš’|๐Ÿ‘จ๐Ÿปโ€๐Ÿš’|๐Ÿ‘จ๐Ÿผโ€๐Ÿš’|๐Ÿ‘จ๐Ÿฝโ€๐Ÿš’|๐Ÿ‘จ๐Ÿพโ€๐Ÿš’|๐Ÿ‘จ๐Ÿฟโ€๐Ÿš’|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿš’|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿš’|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿš’|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿš’|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿš’|๐Ÿ‘ฎ๐Ÿปโ€โ™‚๏ธ|๐Ÿ‘ฎ๐Ÿผโ€โ™‚๏ธ|๐Ÿ‘ฎ๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‘ฎ๐Ÿพโ€โ™‚๏ธ|๐Ÿ‘ฎ๐Ÿฟโ€โ™‚๏ธ|๐Ÿ‘ฎ๐Ÿปโ€โ™€๏ธ|๐Ÿ‘ฎ๐Ÿผโ€โ™€๏ธ|๐Ÿ‘ฎ๐Ÿฝโ€โ™€๏ธ|๐Ÿ‘ฎ๐Ÿพโ€โ™€๏ธ|๐Ÿ‘ฎ๐Ÿฟโ€โ™€๏ธ|๐Ÿ•ต๐Ÿปโ€โ™‚๏ธ|๐Ÿ•ต๐Ÿผโ€โ™‚๏ธ|๐Ÿ•ต๐Ÿฝโ€โ™‚๏ธ|๐Ÿ•ต๐Ÿพโ€โ™‚๏ธ|๐Ÿ•ต๐Ÿฟโ€โ™‚๏ธ|๐Ÿ•ต๐Ÿปโ€โ™€๏ธ|๐Ÿ•ต๐Ÿผโ€โ™€๏ธ|๐Ÿ•ต๐Ÿฝโ€โ™€๏ธ|๐Ÿ•ต๐Ÿพโ€โ™€๏ธ|๐Ÿ•ต๐Ÿฟโ€โ™€๏ธ|๐Ÿ’‚๐Ÿปโ€โ™‚๏ธ|๐Ÿ’‚๐Ÿผโ€โ™‚๏ธ|๐Ÿ’‚๐Ÿฝโ€โ™‚๏ธ|๐Ÿ’‚๐Ÿพโ€โ™‚๏ธ|๐Ÿ’‚๐Ÿฟโ€โ™‚๏ธ|๐Ÿ’‚๐Ÿปโ€โ™€๏ธ|๐Ÿ’‚๐Ÿผโ€โ™€๏ธ|๐Ÿ’‚๐Ÿฝโ€โ™€๏ธ|๐Ÿ’‚๐Ÿพโ€โ™€๏ธ|๐Ÿ’‚๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘ท๐Ÿปโ€โ™‚๏ธ|๐Ÿ‘ท๐Ÿผโ€โ™‚๏ธ|๐Ÿ‘ท๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‘ท๐Ÿพโ€โ™‚๏ธ|๐Ÿ‘ท๐Ÿฟโ€โ™‚๏ธ|๐Ÿ‘ท๐Ÿปโ€โ™€๏ธ|๐Ÿ‘ท๐Ÿผโ€โ™€๏ธ|๐Ÿ‘ท๐Ÿฝโ€โ™€๏ธ|๐Ÿ‘ท๐Ÿพโ€โ™€๏ธ|๐Ÿ‘ท๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘ณ๐Ÿปโ€โ™‚๏ธ|๐Ÿ‘ณ๐Ÿผโ€โ™‚๏ธ|๐Ÿ‘ณ๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‘ณ๐Ÿพโ€โ™‚๏ธ|๐Ÿ‘ณ๐Ÿฟโ€โ™‚๏ธ|๐Ÿ‘ณ๐Ÿปโ€โ™€๏ธ|๐Ÿ‘ณ๐Ÿผโ€โ™€๏ธ|๐Ÿ‘ณ๐Ÿฝโ€โ™€๏ธ|๐Ÿ‘ณ๐Ÿพโ€โ™€๏ธ|๐Ÿ‘ณ๐Ÿฟโ€โ™€๏ธ|๐Ÿคต๐Ÿปโ€โ™‚๏ธ|๐Ÿคต๐Ÿผโ€โ™‚๏ธ|๐Ÿคต๐Ÿฝโ€โ™‚๏ธ|๐Ÿคต๐Ÿพโ€โ™‚๏ธ|๐Ÿคต๐Ÿฟโ€โ™‚๏ธ|๐Ÿคต๐Ÿปโ€โ™€๏ธ|๐Ÿคต๐Ÿผโ€โ™€๏ธ|๐Ÿคต๐Ÿฝโ€โ™€๏ธ|๐Ÿคต๐Ÿพโ€โ™€๏ธ|๐Ÿคต๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘ฐ๐Ÿปโ€โ™‚๏ธ|๐Ÿ‘ฐ๐Ÿผโ€โ™‚๏ธ|๐Ÿ‘ฐ๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‘ฐ๐Ÿพโ€โ™‚๏ธ|๐Ÿ‘ฐ๐Ÿฟโ€โ™‚๏ธ|๐Ÿ‘ฐ๐Ÿปโ€โ™€๏ธ|๐Ÿ‘ฐ๐Ÿผโ€โ™€๏ธ|๐Ÿ‘ฐ๐Ÿฝโ€โ™€๏ธ|๐Ÿ‘ฐ๐Ÿพโ€โ™€๏ธ|๐Ÿ‘ฐ๐Ÿฟโ€โ™€๏ธ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿผ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿผ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿผ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿผ|๐Ÿ‘จ๐Ÿปโ€๐Ÿผ|๐Ÿ‘จ๐Ÿผโ€๐Ÿผ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿผ|๐Ÿ‘จ๐Ÿพโ€๐Ÿผ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿผ|๐Ÿง‘๐Ÿปโ€๐Ÿผ|๐Ÿง‘๐Ÿผโ€๐Ÿผ|๐Ÿง‘๐Ÿฝโ€๐Ÿผ|๐Ÿง‘๐Ÿพโ€๐Ÿผ|๐Ÿง‘๐Ÿฟโ€๐Ÿผ|๐Ÿง‘๐Ÿปโ€๐ŸŽ„|๐Ÿง‘๐Ÿผโ€๐ŸŽ„|๐Ÿง‘๐Ÿฝโ€๐ŸŽ„|๐Ÿง‘๐Ÿพโ€๐ŸŽ„|๐Ÿง‘๐Ÿฟโ€๐ŸŽ„|๐Ÿฆธ๐Ÿปโ€โ™‚๏ธ|๐Ÿฆธ๐Ÿผโ€โ™‚๏ธ|๐Ÿฆธ๐Ÿฝโ€โ™‚๏ธ|๐Ÿฆธ๐Ÿพโ€โ™‚๏ธ|๐Ÿฆธ๐Ÿฟโ€โ™‚๏ธ|๐Ÿฆธ๐Ÿปโ€โ™€๏ธ|๐Ÿฆธ๐Ÿผโ€โ™€๏ธ|๐Ÿฆธ๐Ÿฝโ€โ™€๏ธ|๐Ÿฆธ๐Ÿพโ€โ™€๏ธ|๐Ÿฆธ๐Ÿฟโ€โ™€๏ธ|๐Ÿฆน๐Ÿปโ€โ™‚๏ธ|๐Ÿฆน๐Ÿผโ€โ™‚๏ธ|๐Ÿฆน๐Ÿฝโ€โ™‚๏ธ|๐Ÿฆน๐Ÿพโ€โ™‚๏ธ|๐Ÿฆน๐Ÿฟโ€โ™‚๏ธ|๐Ÿฆน๐Ÿปโ€โ™€๏ธ|๐Ÿฆน๐Ÿผโ€โ™€๏ธ|๐Ÿฆน๐Ÿฝโ€โ™€๏ธ|๐Ÿฆน๐Ÿพโ€โ™€๏ธ|๐Ÿฆน๐Ÿฟโ€โ™€๏ธ|๐Ÿง™๐Ÿปโ€โ™‚๏ธ|๐Ÿง™๐Ÿผโ€โ™‚๏ธ|๐Ÿง™๐Ÿฝโ€โ™‚๏ธ|๐Ÿง™๐Ÿพโ€โ™‚๏ธ|๐Ÿง™๐Ÿฟโ€โ™‚๏ธ|๐Ÿง™๐Ÿปโ€โ™€๏ธ|๐Ÿง™๐Ÿผโ€โ™€๏ธ|๐Ÿง™๐Ÿฝโ€โ™€๏ธ|๐Ÿง™๐Ÿพโ€โ™€๏ธ|๐Ÿง™๐Ÿฟโ€โ™€๏ธ|๐Ÿงš๐Ÿปโ€โ™‚๏ธ|๐Ÿงš๐Ÿผโ€โ™‚๏ธ|๐Ÿงš๐Ÿฝโ€โ™‚๏ธ|๐Ÿงš๐Ÿพโ€โ™‚๏ธ|๐Ÿงš๐Ÿฟโ€โ™‚๏ธ|๐Ÿงš๐Ÿปโ€โ™€๏ธ|๐Ÿงš๐Ÿผโ€โ™€๏ธ|๐Ÿงš๐Ÿฝโ€โ™€๏ธ|๐Ÿงš๐Ÿพโ€โ™€๏ธ|๐Ÿงš๐Ÿฟโ€โ™€๏ธ|๐Ÿง›๐Ÿปโ€โ™‚๏ธ|๐Ÿง›๐Ÿผโ€โ™‚๏ธ|๐Ÿง›๐Ÿฝโ€โ™‚๏ธ|๐Ÿง›๐Ÿพโ€โ™‚๏ธ|๐Ÿง›๐Ÿฟโ€โ™‚๏ธ|๐Ÿง›๐Ÿปโ€โ™€๏ธ|๐Ÿง›๐Ÿผโ€โ™€๏ธ|๐Ÿง›๐Ÿฝโ€โ™€๏ธ|๐Ÿง›๐Ÿพโ€โ™€๏ธ|๐Ÿง›๐Ÿฟโ€โ™€๏ธ|๐Ÿงœ๐Ÿปโ€โ™‚๏ธ|๐Ÿงœ๐Ÿผโ€โ™‚๏ธ|๐Ÿงœ๐Ÿฝโ€โ™‚๏ธ|๐Ÿงœ๐Ÿพโ€โ™‚๏ธ|๐Ÿงœ๐Ÿฟโ€โ™‚๏ธ|๐Ÿงœ๐Ÿปโ€โ™€๏ธ|๐Ÿงœ๐Ÿผโ€โ™€๏ธ|๐Ÿงœ๐Ÿฝโ€โ™€๏ธ|๐Ÿงœ๐Ÿพโ€โ™€๏ธ|๐Ÿงœ๐Ÿฟโ€โ™€๏ธ|๐Ÿง๐Ÿปโ€โ™‚๏ธ|๐Ÿง๐Ÿผโ€โ™‚๏ธ|๐Ÿง๐Ÿฝโ€โ™‚๏ธ|๐Ÿง๐Ÿพโ€โ™‚๏ธ|๐Ÿง๐Ÿฟโ€โ™‚๏ธ|๐Ÿง๐Ÿปโ€โ™€๏ธ|๐Ÿง๐Ÿผโ€โ™€๏ธ|๐Ÿง๐Ÿฝโ€โ™€๏ธ|๐Ÿง๐Ÿพโ€โ™€๏ธ|๐Ÿง๐Ÿฟโ€โ™€๏ธ|๐Ÿ’†๐Ÿปโ€โ™‚๏ธ|๐Ÿ’†๐Ÿผโ€โ™‚๏ธ|๐Ÿ’†๐Ÿฝโ€โ™‚๏ธ|๐Ÿ’†๐Ÿพโ€โ™‚๏ธ|๐Ÿ’†๐Ÿฟโ€โ™‚๏ธ|๐Ÿ’†๐Ÿปโ€โ™€๏ธ|๐Ÿ’†๐Ÿผโ€โ™€๏ธ|๐Ÿ’†๐Ÿฝโ€โ™€๏ธ|๐Ÿ’†๐Ÿพโ€โ™€๏ธ|๐Ÿ’†๐Ÿฟโ€โ™€๏ธ|๐Ÿ’‡๐Ÿปโ€โ™‚๏ธ|๐Ÿ’‡๐Ÿผโ€โ™‚๏ธ|๐Ÿ’‡๐Ÿฝโ€โ™‚๏ธ|๐Ÿ’‡๐Ÿพโ€โ™‚๏ธ|๐Ÿ’‡๐Ÿฟโ€โ™‚๏ธ|๐Ÿ’‡๐Ÿปโ€โ™€๏ธ|๐Ÿ’‡๐Ÿผโ€โ™€๏ธ|๐Ÿ’‡๐Ÿฝโ€โ™€๏ธ|๐Ÿ’‡๐Ÿพโ€โ™€๏ธ|๐Ÿ’‡๐Ÿฟโ€โ™€๏ธ|๐Ÿšถ๐Ÿปโ€โ™‚๏ธ|๐Ÿšถ๐Ÿผโ€โ™‚๏ธ|๐Ÿšถ๐Ÿฝโ€โ™‚๏ธ|๐Ÿšถ๐Ÿพโ€โ™‚๏ธ|๐Ÿšถ๐Ÿฟโ€โ™‚๏ธ|๐Ÿšถ๐Ÿปโ€โ™€๏ธ|๐Ÿšถ๐Ÿผโ€โ™€๏ธ|๐Ÿšถ๐Ÿฝโ€โ™€๏ธ|๐Ÿšถ๐Ÿพโ€โ™€๏ธ|๐Ÿšถ๐Ÿฟโ€โ™€๏ธ|๐Ÿง๐Ÿปโ€โ™‚๏ธ|๐Ÿง๐Ÿผโ€โ™‚๏ธ|๐Ÿง๐Ÿฝโ€โ™‚๏ธ|๐Ÿง๐Ÿพโ€โ™‚๏ธ|๐Ÿง๐Ÿฟโ€โ™‚๏ธ|๐Ÿง๐Ÿปโ€โ™€๏ธ|๐Ÿง๐Ÿผโ€โ™€๏ธ|๐Ÿง๐Ÿฝโ€โ™€๏ธ|๐Ÿง๐Ÿพโ€โ™€๏ธ|๐Ÿง๐Ÿฟโ€โ™€๏ธ|๐ŸงŽ๐Ÿปโ€โ™‚๏ธ|๐ŸงŽ๐Ÿผโ€โ™‚๏ธ|๐ŸงŽ๐Ÿฝโ€โ™‚๏ธ|๐ŸงŽ๐Ÿพโ€โ™‚๏ธ|๐ŸงŽ๐Ÿฟโ€โ™‚๏ธ|๐ŸงŽ๐Ÿปโ€โ™€๏ธ|๐ŸงŽ๐Ÿผโ€โ™€๏ธ|๐ŸงŽ๐Ÿฝโ€โ™€๏ธ|๐ŸงŽ๐Ÿพโ€โ™€๏ธ|๐ŸงŽ๐Ÿฟโ€โ™€๏ธ|๐Ÿง‘๐Ÿปโ€๐Ÿฆฏ|๐Ÿง‘๐Ÿผโ€๐Ÿฆฏ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆฏ|๐Ÿง‘๐Ÿพโ€๐Ÿฆฏ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆฏ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฏ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฏ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฏ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฏ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฏ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฏ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฏ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฏ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฏ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฏ|๐Ÿง‘๐Ÿปโ€๐Ÿฆผ|๐Ÿง‘๐Ÿผโ€๐Ÿฆผ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆผ|๐Ÿง‘๐Ÿพโ€๐Ÿฆผ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆผ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆผ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆผ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆผ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆผ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆผ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆผ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆผ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆผ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆผ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆผ|๐Ÿง‘๐Ÿปโ€๐Ÿฆฝ|๐Ÿง‘๐Ÿผโ€๐Ÿฆฝ|๐Ÿง‘๐Ÿฝโ€๐Ÿฆฝ|๐Ÿง‘๐Ÿพโ€๐Ÿฆฝ|๐Ÿง‘๐Ÿฟโ€๐Ÿฆฝ|๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฝ|๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฝ|๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฝ|๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฝ|๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฝ|๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฝ|๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฝ|๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฝ|๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฝ|๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฝ|๐Ÿƒ๐Ÿปโ€โ™‚๏ธ|๐Ÿƒ๐Ÿผโ€โ™‚๏ธ|๐Ÿƒ๐Ÿฝโ€โ™‚๏ธ|๐Ÿƒ๐Ÿพโ€โ™‚๏ธ|๐Ÿƒ๐Ÿฟโ€โ™‚๏ธ|๐Ÿƒ๐Ÿปโ€โ™€๏ธ|๐Ÿƒ๐Ÿผโ€โ™€๏ธ|๐Ÿƒ๐Ÿฝโ€โ™€๏ธ|๐Ÿƒ๐Ÿพโ€โ™€๏ธ|๐Ÿƒ๐Ÿฟโ€โ™€๏ธ|๐Ÿง–๐Ÿปโ€โ™‚๏ธ|๐Ÿง–๐Ÿผโ€โ™‚๏ธ|๐Ÿง–๐Ÿฝโ€โ™‚๏ธ|๐Ÿง–๐Ÿพโ€โ™‚๏ธ|๐Ÿง–๐Ÿฟโ€โ™‚๏ธ|๐Ÿง–๐Ÿปโ€โ™€๏ธ|๐Ÿง–๐Ÿผโ€โ™€๏ธ|๐Ÿง–๐Ÿฝโ€โ™€๏ธ|๐Ÿง–๐Ÿพโ€โ™€๏ธ|๐Ÿง–๐Ÿฟโ€โ™€๏ธ|๐Ÿง—๐Ÿปโ€โ™‚๏ธ|๐Ÿง—๐Ÿผโ€โ™‚๏ธ|๐Ÿง—๐Ÿฝโ€โ™‚๏ธ|๐Ÿง—๐Ÿพโ€โ™‚๏ธ|๐Ÿง—๐Ÿฟโ€โ™‚๏ธ|๐Ÿง—๐Ÿปโ€โ™€๏ธ|๐Ÿง—๐Ÿผโ€โ™€๏ธ|๐Ÿง—๐Ÿฝโ€โ™€๏ธ|๐Ÿง—๐Ÿพโ€โ™€๏ธ|๐Ÿง—๐Ÿฟโ€โ™€๏ธ|๐ŸŒ๐Ÿปโ€โ™‚๏ธ|๐ŸŒ๐Ÿผโ€โ™‚๏ธ|๐ŸŒ๐Ÿฝโ€โ™‚๏ธ|๐ŸŒ๐Ÿพโ€โ™‚๏ธ|๐ŸŒ๐Ÿฟโ€โ™‚๏ธ|๐ŸŒ๐Ÿปโ€โ™€๏ธ|๐ŸŒ๐Ÿผโ€โ™€๏ธ|๐ŸŒ๐Ÿฝโ€โ™€๏ธ|๐ŸŒ๐Ÿพโ€โ™€๏ธ|๐ŸŒ๐Ÿฟโ€โ™€๏ธ|๐Ÿ„๐Ÿปโ€โ™‚๏ธ|๐Ÿ„๐Ÿผโ€โ™‚๏ธ|๐Ÿ„๐Ÿฝโ€โ™‚๏ธ|๐Ÿ„๐Ÿพโ€โ™‚๏ธ|๐Ÿ„๐Ÿฟโ€โ™‚๏ธ|๐Ÿ„๐Ÿปโ€โ™€๏ธ|๐Ÿ„๐Ÿผโ€โ™€๏ธ|๐Ÿ„๐Ÿฝโ€โ™€๏ธ|๐Ÿ„๐Ÿพโ€โ™€๏ธ|๐Ÿ„๐Ÿฟโ€โ™€๏ธ|๐Ÿšฃ๐Ÿปโ€โ™‚๏ธ|๐Ÿšฃ๐Ÿผโ€โ™‚๏ธ|๐Ÿšฃ๐Ÿฝโ€โ™‚๏ธ|๐Ÿšฃ๐Ÿพโ€โ™‚๏ธ|๐Ÿšฃ๐Ÿฟโ€โ™‚๏ธ|๐Ÿšฃ๐Ÿปโ€โ™€๏ธ|๐Ÿšฃ๐Ÿผโ€โ™€๏ธ|๐Ÿšฃ๐Ÿฝโ€โ™€๏ธ|๐Ÿšฃ๐Ÿพโ€โ™€๏ธ|๐Ÿšฃ๐Ÿฟโ€โ™€๏ธ|๐ŸŠ๐Ÿปโ€โ™‚๏ธ|๐ŸŠ๐Ÿผโ€โ™‚๏ธ|๐ŸŠ๐Ÿฝโ€โ™‚๏ธ|๐ŸŠ๐Ÿพโ€โ™‚๏ธ|๐ŸŠ๐Ÿฟโ€โ™‚๏ธ|๐ŸŠ๐Ÿปโ€โ™€๏ธ|๐ŸŠ๐Ÿผโ€โ™€๏ธ|๐ŸŠ๐Ÿฝโ€โ™€๏ธ|๐ŸŠ๐Ÿพโ€โ™€๏ธ|๐ŸŠ๐Ÿฟโ€โ™€๏ธ|๐Ÿ‹๐Ÿปโ€โ™‚๏ธ|๐Ÿ‹๐Ÿผโ€โ™‚๏ธ|๐Ÿ‹๐Ÿฝโ€โ™‚๏ธ|๐Ÿ‹๐Ÿพโ€โ™‚๏ธ|๐Ÿ‹๐Ÿฟโ€โ™‚๏ธ|๐Ÿ‹๐Ÿปโ€โ™€๏ธ|๐Ÿ‹๐Ÿผโ€โ™€๏ธ|๐Ÿ‹๐Ÿฝโ€โ™€๏ธ|๐Ÿ‹๐Ÿพโ€โ™€๏ธ|๐Ÿ‹๐Ÿฟโ€โ™€๏ธ|๐Ÿšด๐Ÿปโ€โ™‚๏ธ|๐Ÿšด๐Ÿผโ€โ™‚๏ธ|๐Ÿšด๐Ÿฝโ€โ™‚๏ธ|๐Ÿšด๐Ÿพโ€โ™‚๏ธ|๐Ÿšด๐Ÿฟโ€โ™‚๏ธ|๐Ÿšด๐Ÿปโ€โ™€๏ธ|๐Ÿšด๐Ÿผโ€โ™€๏ธ|๐Ÿšด๐Ÿฝโ€โ™€๏ธ|๐Ÿšด๐Ÿพโ€โ™€๏ธ|๐Ÿšด๐Ÿฟโ€โ™€๏ธ|๐Ÿšต๐Ÿปโ€โ™‚๏ธ|๐Ÿšต๐Ÿผโ€โ™‚๏ธ|๐Ÿšต๐Ÿฝโ€โ™‚๏ธ|๐Ÿšต๐Ÿพโ€โ™‚๏ธ|๐Ÿšต๐Ÿฟโ€โ™‚๏ธ|๐Ÿšต๐Ÿปโ€โ™€๏ธ|๐Ÿšต๐Ÿผโ€โ™€๏ธ|๐Ÿšต๐Ÿฝโ€โ™€๏ธ|๐Ÿšต๐Ÿพโ€โ™€๏ธ|๐Ÿšต๐Ÿฟโ€โ™€๏ธ|๐Ÿคธ๐Ÿปโ€โ™‚๏ธ|๐Ÿคธ๐Ÿผโ€โ™‚๏ธ|๐Ÿคธ๐Ÿฝโ€โ™‚๏ธ|๐Ÿคธ๐Ÿพโ€โ™‚๏ธ|๐Ÿคธ๐Ÿฟโ€โ™‚๏ธ|๐Ÿคธ๐Ÿปโ€โ™€๏ธ|๐Ÿคธ๐Ÿผโ€โ™€๏ธ|๐Ÿคธ๐Ÿฝโ€โ™€๏ธ|๐Ÿคธ๐Ÿพโ€โ™€๏ธ|๐Ÿคธ๐Ÿฟโ€โ™€๏ธ|๐Ÿคฝ๐Ÿปโ€โ™‚๏ธ|๐Ÿคฝ๐Ÿผโ€โ™‚๏ธ|๐Ÿคฝ๐Ÿฝโ€โ™‚๏ธ|๐Ÿคฝ๐Ÿพโ€โ™‚๏ธ|๐Ÿคฝ๐Ÿฟโ€โ™‚๏ธ|๐Ÿคฝ๐Ÿปโ€โ™€๏ธ|๐Ÿคฝ๐Ÿผโ€โ™€๏ธ|๐Ÿคฝ๐Ÿฝโ€โ™€๏ธ|๐Ÿคฝ๐Ÿพโ€โ™€๏ธ|๐Ÿคฝ๐Ÿฟโ€โ™€๏ธ|๐Ÿคพ๐Ÿปโ€โ™‚๏ธ|๐Ÿคพ๐Ÿผโ€โ™‚๏ธ|๐Ÿคพ๐Ÿฝโ€โ™‚๏ธ|๐Ÿคพ๐Ÿพโ€โ™‚๏ธ|๐Ÿคพ๐Ÿฟโ€โ™‚๏ธ|๐Ÿคพ๐Ÿปโ€โ™€๏ธ|๐Ÿคพ๐Ÿผโ€โ™€๏ธ|๐Ÿคพ๐Ÿฝโ€โ™€๏ธ|๐Ÿคพ๐Ÿพโ€โ™€๏ธ|๐Ÿคพ๐Ÿฟโ€โ™€๏ธ|๐Ÿคน๐Ÿปโ€โ™‚๏ธ|๐Ÿคน๐Ÿผโ€โ™‚๏ธ|๐Ÿคน๐Ÿฝโ€โ™‚๏ธ|๐Ÿคน๐Ÿพโ€โ™‚๏ธ|๐Ÿคน๐Ÿฟโ€โ™‚๏ธ|๐Ÿคน๐Ÿปโ€โ™€๏ธ|๐Ÿคน๐Ÿผโ€โ™€๏ธ|๐Ÿคน๐Ÿฝโ€โ™€๏ธ|๐Ÿคน๐Ÿพโ€โ™€๏ธ|๐Ÿคน๐Ÿฟโ€โ™€๏ธ|๐Ÿง˜๐Ÿปโ€โ™‚๏ธ|๐Ÿง˜๐Ÿผโ€โ™‚๏ธ|๐Ÿง˜๐Ÿฝโ€โ™‚๏ธ|๐Ÿง˜๐Ÿพโ€โ™‚๏ธ|๐Ÿง˜๐Ÿฟโ€โ™‚๏ธ|๐Ÿง˜๐Ÿปโ€โ™€๏ธ|๐Ÿง˜๐Ÿผโ€โ™€๏ธ|๐Ÿง˜๐Ÿฝโ€โ™€๏ธ|๐Ÿง˜๐Ÿพโ€โ™€๏ธ|๐Ÿง˜๐Ÿฟโ€โ™€๏ธ|๐Ÿ˜ถโ€๐ŸŒซ๏ธ|๐Ÿ•ต๏ธโ€โ™‚๏ธ|๐Ÿ•ต๏ธโ€โ™€๏ธ|๐ŸŒ๏ธโ€โ™‚๏ธ|๐ŸŒ๏ธโ€โ™€๏ธ|๐Ÿ‹๏ธโ€โ™‚๏ธ|๐Ÿ‹๏ธโ€โ™€๏ธ|๐Ÿณ๏ธโ€๐ŸŒˆ|๐Ÿณ๏ธโ€โšง๏ธ|โ›น๐Ÿปโ€โ™‚๏ธ|โ›น๐Ÿผโ€โ™‚๏ธ|โ›น๐Ÿฝโ€โ™‚๏ธ|โ›น๐Ÿพโ€โ™‚๏ธ|โ›น๐Ÿฟโ€โ™‚๏ธ|โ›น๐Ÿปโ€โ™€๏ธ|โ›น๐Ÿผโ€โ™€๏ธ|โ›น๐Ÿฝโ€โ™€๏ธ|โ›น๐Ÿพโ€โ™€๏ธ|โ›น๐Ÿฟโ€โ™€๏ธ|๐Ÿ˜ฎโ€๐Ÿ’จ|๐Ÿ˜ตโ€๐Ÿ’ซ|โค๏ธโ€๐Ÿ”ฅ|โค๏ธโ€๐Ÿฉน|๐Ÿง”โ€โ™‚๏ธ|๐Ÿง”โ€โ™€๏ธ|๐Ÿ‘จโ€๐Ÿฆฐ|๐Ÿ‘จโ€๐Ÿฆฑ|๐Ÿ‘จโ€๐Ÿฆณ|๐Ÿ‘จโ€๐Ÿฆฒ|๐Ÿ‘ฉโ€๐Ÿฆฐ|๐Ÿง‘โ€๐Ÿฆฐ|๐Ÿ‘ฉโ€๐Ÿฆฑ|๐Ÿง‘โ€๐Ÿฆฑ|๐Ÿ‘ฉโ€๐Ÿฆณ|๐Ÿง‘โ€๐Ÿฆณ|๐Ÿ‘ฉโ€๐Ÿฆฒ|๐Ÿง‘โ€๐Ÿฆฒ|๐Ÿ‘ฑโ€โ™€๏ธ|๐Ÿ‘ฑโ€โ™‚๏ธ|๐Ÿ™โ€โ™‚๏ธ|๐Ÿ™โ€โ™€๏ธ|๐Ÿ™Žโ€โ™‚๏ธ|๐Ÿ™Žโ€โ™€๏ธ|๐Ÿ™…โ€โ™‚๏ธ|๐Ÿ™…โ€โ™€๏ธ|๐Ÿ™†โ€โ™‚๏ธ|๐Ÿ™†โ€โ™€๏ธ|๐Ÿ’โ€โ™‚๏ธ|๐Ÿ’โ€โ™€๏ธ|๐Ÿ™‹โ€โ™‚๏ธ|๐Ÿ™‹โ€โ™€๏ธ|๐Ÿงโ€โ™‚๏ธ|๐Ÿงโ€โ™€๏ธ|๐Ÿ™‡โ€โ™‚๏ธ|๐Ÿ™‡โ€โ™€๏ธ|๐Ÿคฆโ€โ™‚๏ธ|๐Ÿคฆโ€โ™€๏ธ|๐Ÿคทโ€โ™‚๏ธ|๐Ÿคทโ€โ™€๏ธ|๐Ÿง‘โ€โš•๏ธ|๐Ÿ‘จโ€โš•๏ธ|๐Ÿ‘ฉโ€โš•๏ธ|๐Ÿง‘โ€๐ŸŽ“|๐Ÿ‘จโ€๐ŸŽ“|๐Ÿ‘ฉโ€๐ŸŽ“|๐Ÿง‘โ€๐Ÿซ|๐Ÿ‘จโ€๐Ÿซ|๐Ÿ‘ฉโ€๐Ÿซ|๐Ÿง‘โ€โš–๏ธ|๐Ÿ‘จโ€โš–๏ธ|๐Ÿ‘ฉโ€โš–๏ธ|๐Ÿง‘โ€๐ŸŒพ|๐Ÿ‘จโ€๐ŸŒพ|๐Ÿ‘ฉโ€๐ŸŒพ|๐Ÿง‘โ€๐Ÿณ|๐Ÿ‘จโ€๐Ÿณ|๐Ÿ‘ฉโ€๐Ÿณ|๐Ÿง‘โ€๐Ÿ”ง|๐Ÿ‘จโ€๐Ÿ”ง|๐Ÿ‘ฉโ€๐Ÿ”ง|๐Ÿง‘โ€๐Ÿญ|๐Ÿ‘จโ€๐Ÿญ|๐Ÿ‘ฉโ€๐Ÿญ|๐Ÿง‘โ€๐Ÿ’ผ|๐Ÿ‘จโ€๐Ÿ’ผ|๐Ÿ‘ฉโ€๐Ÿ’ผ|๐Ÿง‘โ€๐Ÿ”ฌ|๐Ÿ‘จโ€๐Ÿ”ฌ|๐Ÿ‘ฉโ€๐Ÿ”ฌ|๐Ÿง‘โ€๐Ÿ’ป|๐Ÿ‘จโ€๐Ÿ’ป|๐Ÿ‘ฉโ€๐Ÿ’ป|๐Ÿง‘โ€๐ŸŽค|๐Ÿ‘จโ€๐ŸŽค|๐Ÿ‘ฉโ€๐ŸŽค|๐Ÿง‘โ€๐ŸŽจ|๐Ÿ‘จโ€๐ŸŽจ|๐Ÿ‘ฉโ€๐ŸŽจ|๐Ÿง‘โ€โœˆ๏ธ|๐Ÿ‘จโ€โœˆ๏ธ|๐Ÿ‘ฉโ€โœˆ๏ธ|๐Ÿง‘โ€๐Ÿš€|๐Ÿ‘จโ€๐Ÿš€|๐Ÿ‘ฉโ€๐Ÿš€|๐Ÿง‘โ€๐Ÿš’|๐Ÿ‘จโ€๐Ÿš’|๐Ÿ‘ฉโ€๐Ÿš’|๐Ÿ‘ฎโ€โ™‚๏ธ|๐Ÿ‘ฎโ€โ™€๏ธ|๐Ÿ’‚โ€โ™‚๏ธ|๐Ÿ’‚โ€โ™€๏ธ|๐Ÿ‘ทโ€โ™‚๏ธ|๐Ÿ‘ทโ€โ™€๏ธ|๐Ÿ‘ณโ€โ™‚๏ธ|๐Ÿ‘ณโ€โ™€๏ธ|๐Ÿคตโ€โ™‚๏ธ|๐Ÿคตโ€โ™€๏ธ|๐Ÿ‘ฐโ€โ™‚๏ธ|๐Ÿ‘ฐโ€โ™€๏ธ|๐Ÿ‘ฉโ€๐Ÿผ|๐Ÿ‘จโ€๐Ÿผ|๐Ÿง‘โ€๐Ÿผ|๐Ÿง‘โ€๐ŸŽ„|๐Ÿฆธโ€โ™‚๏ธ|๐Ÿฆธโ€โ™€๏ธ|๐Ÿฆนโ€โ™‚๏ธ|๐Ÿฆนโ€โ™€๏ธ|๐Ÿง™โ€โ™‚๏ธ|๐Ÿง™โ€โ™€๏ธ|๐Ÿงšโ€โ™‚๏ธ|๐Ÿงšโ€โ™€๏ธ|๐Ÿง›โ€โ™‚๏ธ|๐Ÿง›โ€โ™€๏ธ|๐Ÿงœโ€โ™‚๏ธ|๐Ÿงœโ€โ™€๏ธ|๐Ÿงโ€โ™‚๏ธ|๐Ÿงโ€โ™€๏ธ|๐Ÿงžโ€โ™‚๏ธ|๐Ÿงžโ€โ™€๏ธ|๐ŸงŸโ€โ™‚๏ธ|๐ŸงŸโ€โ™€๏ธ|๐Ÿ’†โ€โ™‚๏ธ|๐Ÿ’†โ€โ™€๏ธ|๐Ÿ’‡โ€โ™‚๏ธ|๐Ÿ’‡โ€โ™€๏ธ|๐Ÿšถโ€โ™‚๏ธ|๐Ÿšถโ€โ™€๏ธ|๐Ÿงโ€โ™‚๏ธ|๐Ÿงโ€โ™€๏ธ|๐ŸงŽโ€โ™‚๏ธ|๐ŸงŽโ€โ™€๏ธ|๐Ÿง‘โ€๐Ÿฆฏ|๐Ÿ‘จโ€๐Ÿฆฏ|๐Ÿ‘ฉโ€๐Ÿฆฏ|๐Ÿง‘โ€๐Ÿฆผ|๐Ÿ‘จโ€๐Ÿฆผ|๐Ÿ‘ฉโ€๐Ÿฆผ|๐Ÿง‘โ€๐Ÿฆฝ|๐Ÿ‘จโ€๐Ÿฆฝ|๐Ÿ‘ฉโ€๐Ÿฆฝ|๐Ÿƒโ€โ™‚๏ธ|๐Ÿƒโ€โ™€๏ธ|๐Ÿ‘ฏโ€โ™‚๏ธ|๐Ÿ‘ฏโ€โ™€๏ธ|๐Ÿง–โ€โ™‚๏ธ|๐Ÿง–โ€โ™€๏ธ|๐Ÿง—โ€โ™‚๏ธ|๐Ÿง—โ€โ™€๏ธ|๐Ÿ„โ€โ™‚๏ธ|๐Ÿ„โ€โ™€๏ธ|๐Ÿšฃโ€โ™‚๏ธ|๐Ÿšฃโ€โ™€๏ธ|๐ŸŠโ€โ™‚๏ธ|๐ŸŠโ€โ™€๏ธ|โ›น๏ธโ€โ™‚๏ธ|โ›น๏ธโ€โ™€๏ธ|๐Ÿšดโ€โ™‚๏ธ|๐Ÿšดโ€โ™€๏ธ|๐Ÿšตโ€โ™‚๏ธ|๐Ÿšตโ€โ™€๏ธ|๐Ÿคธโ€โ™‚๏ธ|๐Ÿคธโ€โ™€๏ธ|๐Ÿคผโ€โ™‚๏ธ|๐Ÿคผโ€โ™€๏ธ|๐Ÿคฝโ€โ™‚๏ธ|๐Ÿคฝโ€โ™€๏ธ|๐Ÿคพโ€โ™‚๏ธ|๐Ÿคพโ€โ™€๏ธ|๐Ÿคนโ€โ™‚๏ธ|๐Ÿคนโ€โ™€๏ธ|๐Ÿง˜โ€โ™‚๏ธ|๐Ÿง˜โ€โ™€๏ธ|๐Ÿ‘จโ€๐Ÿ‘ฆ|๐Ÿ‘จโ€๐Ÿ‘ง|๐Ÿ‘ฉโ€๐Ÿ‘ฆ|๐Ÿ‘ฉโ€๐Ÿ‘ง|๐Ÿ•โ€๐Ÿฆบ|๐Ÿปโ€โ„๏ธ|๐Ÿดโ€โ˜ ๏ธ|๐Ÿˆโ€โฌ›|๐Ÿ‡ฆ๐Ÿ‡จ|๐Ÿ‡ฆ๐Ÿ‡ฉ|๐Ÿ‡ฆ๐Ÿ‡ช|๐Ÿ‡ฆ๐Ÿ‡ซ|๐Ÿ‡ฆ๐Ÿ‡ฌ|๐Ÿ‡ฆ๐Ÿ‡ฎ|๐Ÿ‡ฆ๐Ÿ‡ฑ|๐Ÿ‡ฆ๐Ÿ‡ฒ|๐Ÿ‡ฆ๐Ÿ‡ด|๐Ÿ‡ฆ๐Ÿ‡ถ|๐Ÿ‡ฆ๐Ÿ‡ท|๐Ÿ‡ฆ๐Ÿ‡ธ|๐Ÿ‡ฆ๐Ÿ‡น|๐Ÿ‡ฆ๐Ÿ‡บ|๐Ÿ‡ฆ๐Ÿ‡ผ|๐Ÿ‡ฆ๐Ÿ‡ฝ|๐Ÿ‡ฆ๐Ÿ‡ฟ|๐Ÿ‡ง๐Ÿ‡ฆ|๐Ÿ‡ง๐Ÿ‡ง|๐Ÿ‡ง๐Ÿ‡ฉ|๐Ÿ‡ง๐Ÿ‡ช|๐Ÿ‡ง๐Ÿ‡ซ|๐Ÿ‡ง๐Ÿ‡ฌ|๐Ÿ‡ง๐Ÿ‡ญ|๐Ÿ‡ง๐Ÿ‡ฎ|๐Ÿ‡ง๐Ÿ‡ฏ|๐Ÿ‡ง๐Ÿ‡ฑ|๐Ÿ‡ง๐Ÿ‡ฒ|๐Ÿ‡ง๐Ÿ‡ณ|๐Ÿ‡ง๐Ÿ‡ด|๐Ÿ‡ง๐Ÿ‡ถ|๐Ÿ‡ง๐Ÿ‡ท|๐Ÿ‡ง๐Ÿ‡ธ|๐Ÿ‡ง๐Ÿ‡น|๐Ÿ‡ง๐Ÿ‡ป|๐Ÿ‡ง๐Ÿ‡ผ|๐Ÿ‡ง๐Ÿ‡พ|๐Ÿ‡ง๐Ÿ‡ฟ|๐Ÿ‡จ๐Ÿ‡ฆ|๐Ÿ‡จ๐Ÿ‡จ|๐Ÿ‡จ๐Ÿ‡ฉ|๐Ÿ‡จ๐Ÿ‡ซ|๐Ÿ‡จ๐Ÿ‡ฌ|๐Ÿ‡จ๐Ÿ‡ญ|๐Ÿ‡จ๐Ÿ‡ฎ|๐Ÿ‡จ๐Ÿ‡ฐ|๐Ÿ‡จ๐Ÿ‡ฑ|๐Ÿ‡จ๐Ÿ‡ฒ|๐Ÿ‡จ๐Ÿ‡ณ|๐Ÿ‡จ๐Ÿ‡ด|๐Ÿ‡จ๐Ÿ‡ต|๐Ÿ‡จ๐Ÿ‡ท|๐Ÿ‡จ๐Ÿ‡บ|๐Ÿ‡จ๐Ÿ‡ป|๐Ÿ‡จ๐Ÿ‡ผ|๐Ÿ‡จ๐Ÿ‡ฝ|๐Ÿ‡จ๐Ÿ‡พ|๐Ÿ‡จ๐Ÿ‡ฟ|๐Ÿ‡ฉ๐Ÿ‡ช|๐Ÿ‡ฉ๐Ÿ‡ฌ|๐Ÿ‡ฉ๐Ÿ‡ฏ|๐Ÿ‡ฉ๐Ÿ‡ฐ|๐Ÿ‡ฉ๐Ÿ‡ฒ|๐Ÿ‡ฉ๐Ÿ‡ด|๐Ÿ‡ฉ๐Ÿ‡ฟ|๐Ÿ‡ช๐Ÿ‡ฆ|๐Ÿ‡ช๐Ÿ‡จ|๐Ÿ‡ช๐Ÿ‡ช|๐Ÿ‡ช๐Ÿ‡ฌ|๐Ÿ‡ช๐Ÿ‡ญ|๐Ÿ‡ช๐Ÿ‡ท|๐Ÿ‡ช๐Ÿ‡ธ|๐Ÿ‡ช๐Ÿ‡น|๐Ÿ‡ช๐Ÿ‡บ|๐Ÿ‡ซ๐Ÿ‡ฎ|๐Ÿ‡ซ๐Ÿ‡ฏ|๐Ÿ‡ซ๐Ÿ‡ฐ|๐Ÿ‡ซ๐Ÿ‡ฒ|๐Ÿ‡ซ๐Ÿ‡ด|๐Ÿ‡ซ๐Ÿ‡ท|๐Ÿ‡ฌ๐Ÿ‡ฆ|๐Ÿ‡ฌ๐Ÿ‡ง|๐Ÿ‡ฌ๐Ÿ‡ฉ|๐Ÿ‡ฌ๐Ÿ‡ช|๐Ÿ‡ฌ๐Ÿ‡ซ|๐Ÿ‡ฌ๐Ÿ‡ฌ|๐Ÿ‡ฌ๐Ÿ‡ญ|๐Ÿ‡ฌ๐Ÿ‡ฎ|๐Ÿ‡ฌ๐Ÿ‡ฑ|๐Ÿ‡ฌ๐Ÿ‡ฒ|๐Ÿ‡ฌ๐Ÿ‡ณ|๐Ÿ‡ฌ๐Ÿ‡ต|๐Ÿ‡ฌ๐Ÿ‡ถ|๐Ÿ‡ฌ๐Ÿ‡ท|๐Ÿ‡ฌ๐Ÿ‡ธ|๐Ÿ‡ฌ๐Ÿ‡น|๐Ÿ‡ฌ๐Ÿ‡บ|๐Ÿ‡ฌ๐Ÿ‡ผ|๐Ÿ‡ฌ๐Ÿ‡พ|๐Ÿ‡ญ๐Ÿ‡ฐ|๐Ÿ‡ญ๐Ÿ‡ฒ|๐Ÿ‡ญ๐Ÿ‡ณ|๐Ÿ‡ญ๐Ÿ‡ท|๐Ÿ‡ญ๐Ÿ‡น|๐Ÿ‡ญ๐Ÿ‡บ|๐Ÿ‡ฎ๐Ÿ‡จ|๐Ÿ‡ฎ๐Ÿ‡ฉ|๐Ÿ‡ฎ๐Ÿ‡ช|๐Ÿ‡ฎ๐Ÿ‡ฑ|๐Ÿ‡ฎ๐Ÿ‡ฒ|๐Ÿ‡ฎ๐Ÿ‡ณ|๐Ÿ‡ฎ๐Ÿ‡ด|๐Ÿ‡ฎ๐Ÿ‡ถ|๐Ÿ‡ฎ๐Ÿ‡ท|๐Ÿ‡ฎ๐Ÿ‡ธ|๐Ÿ‡ฎ๐Ÿ‡น|๐Ÿ‡ฏ๐Ÿ‡ช|๐Ÿ‡ฏ๐Ÿ‡ฒ|๐Ÿ‡ฏ๐Ÿ‡ด|๐Ÿ‡ฏ๐Ÿ‡ต|๐Ÿ‡ฐ๐Ÿ‡ช|๐Ÿ‡ฐ๐Ÿ‡ฌ|๐Ÿ‡ฐ๐Ÿ‡ญ|๐Ÿ‡ฐ๐Ÿ‡ฎ|๐Ÿ‡ฐ๐Ÿ‡ฒ|๐Ÿ‡ฐ๐Ÿ‡ณ|๐Ÿ‡ฐ๐Ÿ‡ต|๐Ÿ‡ฐ๐Ÿ‡ท|๐Ÿ‡ฐ๐Ÿ‡ผ|๐Ÿ‡ฐ๐Ÿ‡พ|๐Ÿ‡ฐ๐Ÿ‡ฟ|๐Ÿ‡ฑ๐Ÿ‡ฆ|๐Ÿ‡ฑ๐Ÿ‡ง|๐Ÿ‡ฑ๐Ÿ‡จ|๐Ÿ‡ฑ๐Ÿ‡ฎ|๐Ÿ‡ฑ๐Ÿ‡ฐ|๐Ÿ‡ฑ๐Ÿ‡ท|๐Ÿ‡ฑ๐Ÿ‡ธ|๐Ÿ‡ฑ๐Ÿ‡น|๐Ÿ‡ฑ๐Ÿ‡บ|๐Ÿ‡ฑ๐Ÿ‡ป|๐Ÿ‡ฑ๐Ÿ‡พ|๐Ÿ‡ฒ๐Ÿ‡ฆ|๐Ÿ‡ฒ๐Ÿ‡จ|๐Ÿ‡ฒ๐Ÿ‡ฉ|๐Ÿ‡ฒ๐Ÿ‡ช|๐Ÿ‡ฒ๐Ÿ‡ซ|๐Ÿ‡ฒ๐Ÿ‡ฌ|๐Ÿ‡ฒ๐Ÿ‡ญ|๐Ÿ‡ฒ๐Ÿ‡ฐ|๐Ÿ‡ฒ๐Ÿ‡ฑ|๐Ÿ‡ฒ๐Ÿ‡ฒ|๐Ÿ‡ฒ๐Ÿ‡ณ|๐Ÿ‡ฒ๐Ÿ‡ด|๐Ÿ‡ฒ๐Ÿ‡ต|๐Ÿ‡ฒ๐Ÿ‡ถ|๐Ÿ‡ฒ๐Ÿ‡ท|๐Ÿ‡ฒ๐Ÿ‡ธ|๐Ÿ‡ฒ๐Ÿ‡น|๐Ÿ‡ฒ๐Ÿ‡บ|๐Ÿ‡ฒ๐Ÿ‡ป|๐Ÿ‡ฒ๐Ÿ‡ผ|๐Ÿ‡ฒ๐Ÿ‡ฝ|๐Ÿ‡ฒ๐Ÿ‡พ|๐Ÿ‡ฒ๐Ÿ‡ฟ|๐Ÿ‡ณ๐Ÿ‡ฆ|๐Ÿ‡ณ๐Ÿ‡จ|๐Ÿ‡ณ๐Ÿ‡ช|๐Ÿ‡ณ๐Ÿ‡ซ|๐Ÿ‡ณ๐Ÿ‡ฌ|๐Ÿ‡ณ๐Ÿ‡ฎ|๐Ÿ‡ณ๐Ÿ‡ฑ|๐Ÿ‡ณ๐Ÿ‡ด|๐Ÿ‡ณ๐Ÿ‡ต|๐Ÿ‡ณ๐Ÿ‡ท|๐Ÿ‡ณ๐Ÿ‡บ|๐Ÿ‡ณ๐Ÿ‡ฟ|๐Ÿ‡ด๐Ÿ‡ฒ|๐Ÿ‡ต๐Ÿ‡ฆ|๐Ÿ‡ต๐Ÿ‡ช|๐Ÿ‡ต๐Ÿ‡ซ|๐Ÿ‡ต๐Ÿ‡ฌ|๐Ÿ‡ต๐Ÿ‡ญ|๐Ÿ‡ต๐Ÿ‡ฐ|๐Ÿ‡ต๐Ÿ‡ฑ|๐Ÿ‡ต๐Ÿ‡ฒ|๐Ÿ‡ต๐Ÿ‡ณ|๐Ÿ‡ต๐Ÿ‡ท|๐Ÿ‡ต๐Ÿ‡ธ|๐Ÿ‡ต๐Ÿ‡น|๐Ÿ‡ต๐Ÿ‡ผ|๐Ÿ‡ต๐Ÿ‡พ|๐Ÿ‡ถ๐Ÿ‡ฆ|๐Ÿ‡ท๐Ÿ‡ช|๐Ÿ‡ท๐Ÿ‡ด|๐Ÿ‡ท๐Ÿ‡ธ|๐Ÿ‡ท๐Ÿ‡บ|๐Ÿ‡ท๐Ÿ‡ผ|๐Ÿ‡ธ๐Ÿ‡ฆ|๐Ÿ‡ธ๐Ÿ‡ง|๐Ÿ‡ธ๐Ÿ‡จ|๐Ÿ‡ธ๐Ÿ‡ฉ|๐Ÿ‡ธ๐Ÿ‡ช|๐Ÿ‡ธ๐Ÿ‡ฌ|๐Ÿ‡ธ๐Ÿ‡ญ|๐Ÿ‡ธ๐Ÿ‡ฎ|๐Ÿ‡ธ๐Ÿ‡ฏ|๐Ÿ‡ธ๐Ÿ‡ฐ|๐Ÿ‡ธ๐Ÿ‡ฑ|๐Ÿ‡ธ๐Ÿ‡ฒ|๐Ÿ‡ธ๐Ÿ‡ณ|๐Ÿ‡ธ๐Ÿ‡ด|๐Ÿ‡ธ๐Ÿ‡ท|๐Ÿ‡ธ๐Ÿ‡ธ|๐Ÿ‡ธ๐Ÿ‡น|๐Ÿ‡ธ๐Ÿ‡ป|๐Ÿ‡ธ๐Ÿ‡ฝ|๐Ÿ‡ธ๐Ÿ‡พ|๐Ÿ‡ธ๐Ÿ‡ฟ|๐Ÿ‡น๐Ÿ‡ฆ|๐Ÿ‡น๐Ÿ‡จ|๐Ÿ‡น๐Ÿ‡ฉ|๐Ÿ‡น๐Ÿ‡ซ|๐Ÿ‡น๐Ÿ‡ฌ|๐Ÿ‡น๐Ÿ‡ญ|๐Ÿ‡น๐Ÿ‡ฏ|๐Ÿ‡น๐Ÿ‡ฐ|๐Ÿ‡น๐Ÿ‡ฑ|๐Ÿ‡น๐Ÿ‡ฒ|๐Ÿ‡น๐Ÿ‡ณ|๐Ÿ‡น๐Ÿ‡ด|๐Ÿ‡น๐Ÿ‡ท|๐Ÿ‡น๐Ÿ‡น|๐Ÿ‡น๐Ÿ‡ป|๐Ÿ‡น๐Ÿ‡ผ|๐Ÿ‡น๐Ÿ‡ฟ|๐Ÿ‡บ๐Ÿ‡ฆ|๐Ÿ‡บ๐Ÿ‡ฌ|๐Ÿ‡บ๐Ÿ‡ฒ|๐Ÿ‡บ๐Ÿ‡ณ|๐Ÿ‡บ๐Ÿ‡ธ|๐Ÿ‡บ๐Ÿ‡พ|๐Ÿ‡บ๐Ÿ‡ฟ|๐Ÿ‡ป๐Ÿ‡ฆ|๐Ÿ‡ป๐Ÿ‡จ|๐Ÿ‡ป๐Ÿ‡ช|๐Ÿ‡ป๐Ÿ‡ฌ|๐Ÿ‡ป๐Ÿ‡ฎ|๐Ÿ‡ป๐Ÿ‡ณ|๐Ÿ‡ป๐Ÿ‡บ|๐Ÿ‡ผ๐Ÿ‡ซ|๐Ÿ‡ผ๐Ÿ‡ธ|๐Ÿ‡ฝ๐Ÿ‡ฐ|๐Ÿ‡พ๐Ÿ‡ช|๐Ÿ‡พ๐Ÿ‡น|๐Ÿ‡ฟ๐Ÿ‡ฆ|๐Ÿ‡ฟ๐Ÿ‡ฒ|๐Ÿ‡ฟ๐Ÿ‡ผ|๐Ÿ‘‹๐Ÿป|๐Ÿ‘‹๐Ÿผ|๐Ÿ‘‹๐Ÿฝ|๐Ÿ‘‹๐Ÿพ|๐Ÿ‘‹๐Ÿฟ|๐Ÿคš๐Ÿป|๐Ÿคš๐Ÿผ|๐Ÿคš๐Ÿฝ|๐Ÿคš๐Ÿพ|๐Ÿคš๐Ÿฟ|๐Ÿ–๐Ÿป|๐Ÿ–๐Ÿผ|๐Ÿ–๐Ÿฝ|๐Ÿ–๐Ÿพ|๐Ÿ–๐Ÿฟ|๐Ÿ––๐Ÿป|๐Ÿ––๐Ÿผ|๐Ÿ––๐Ÿฝ|๐Ÿ––๐Ÿพ|๐Ÿ––๐Ÿฟ|๐Ÿ‘Œ๐Ÿป|๐Ÿ‘Œ๐Ÿผ|๐Ÿ‘Œ๐Ÿฝ|๐Ÿ‘Œ๐Ÿพ|๐Ÿ‘Œ๐Ÿฟ|๐ŸคŒ๐Ÿป|๐ŸคŒ๐Ÿผ|๐ŸคŒ๐Ÿฝ|๐ŸคŒ๐Ÿพ|๐ŸคŒ๐Ÿฟ|๐Ÿค๐Ÿป|๐Ÿค๐Ÿผ|๐Ÿค๐Ÿฝ|๐Ÿค๐Ÿพ|๐Ÿค๐Ÿฟ|๐Ÿคž๐Ÿป|๐Ÿคž๐Ÿผ|๐Ÿคž๐Ÿฝ|๐Ÿคž๐Ÿพ|๐Ÿคž๐Ÿฟ|๐ŸคŸ๐Ÿป|๐ŸคŸ๐Ÿผ|๐ŸคŸ๐Ÿฝ|๐ŸคŸ๐Ÿพ|๐ŸคŸ๐Ÿฟ|๐Ÿค˜๐Ÿป|๐Ÿค˜๐Ÿผ|๐Ÿค˜๐Ÿฝ|๐Ÿค˜๐Ÿพ|๐Ÿค˜๐Ÿฟ|๐Ÿค™๐Ÿป|๐Ÿค™๐Ÿผ|๐Ÿค™๐Ÿฝ|๐Ÿค™๐Ÿพ|๐Ÿค™๐Ÿฟ|๐Ÿ‘ˆ๐Ÿป|๐Ÿ‘ˆ๐Ÿผ|๐Ÿ‘ˆ๐Ÿฝ|๐Ÿ‘ˆ๐Ÿพ|๐Ÿ‘ˆ๐Ÿฟ|๐Ÿ‘‰๐Ÿป|๐Ÿ‘‰๐Ÿผ|๐Ÿ‘‰๐Ÿฝ|๐Ÿ‘‰๐Ÿพ|๐Ÿ‘‰๐Ÿฟ|๐Ÿ‘†๐Ÿป|๐Ÿ‘†๐Ÿผ|๐Ÿ‘†๐Ÿฝ|๐Ÿ‘†๐Ÿพ|๐Ÿ‘†๐Ÿฟ|๐Ÿ–•๐Ÿป|๐Ÿ–•๐Ÿผ|๐Ÿ–•๐Ÿฝ|๐Ÿ–•๐Ÿพ|๐Ÿ–•๐Ÿฟ|๐Ÿ‘‡๐Ÿป|๐Ÿ‘‡๐Ÿผ|๐Ÿ‘‡๐Ÿฝ|๐Ÿ‘‡๐Ÿพ|๐Ÿ‘‡๐Ÿฟ|๐Ÿ‘๐Ÿป|๐Ÿ‘๐Ÿผ|๐Ÿ‘๐Ÿฝ|๐Ÿ‘๐Ÿพ|๐Ÿ‘๐Ÿฟ|๐Ÿ‘Ž๐Ÿป|๐Ÿ‘Ž๐Ÿผ|๐Ÿ‘Ž๐Ÿฝ|๐Ÿ‘Ž๐Ÿพ|๐Ÿ‘Ž๐Ÿฟ|๐Ÿ‘Š๐Ÿป|๐Ÿ‘Š๐Ÿผ|๐Ÿ‘Š๐Ÿฝ|๐Ÿ‘Š๐Ÿพ|๐Ÿ‘Š๐Ÿฟ|๐Ÿค›๐Ÿป|๐Ÿค›๐Ÿผ|๐Ÿค›๐Ÿฝ|๐Ÿค›๐Ÿพ|๐Ÿค›๐Ÿฟ|๐Ÿคœ๐Ÿป|๐Ÿคœ๐Ÿผ|๐Ÿคœ๐Ÿฝ|๐Ÿคœ๐Ÿพ|๐Ÿคœ๐Ÿฟ|๐Ÿ‘๐Ÿป|๐Ÿ‘๐Ÿผ|๐Ÿ‘๐Ÿฝ|๐Ÿ‘๐Ÿพ|๐Ÿ‘๐Ÿฟ|๐Ÿ™Œ๐Ÿป|๐Ÿ™Œ๐Ÿผ|๐Ÿ™Œ๐Ÿฝ|๐Ÿ™Œ๐Ÿพ|๐Ÿ™Œ๐Ÿฟ|๐Ÿ‘๐Ÿป|๐Ÿ‘๐Ÿผ|๐Ÿ‘๐Ÿฝ|๐Ÿ‘๐Ÿพ|๐Ÿ‘๐Ÿฟ|๐Ÿคฒ๐Ÿป|๐Ÿคฒ๐Ÿผ|๐Ÿคฒ๐Ÿฝ|๐Ÿคฒ๐Ÿพ|๐Ÿคฒ๐Ÿฟ|๐Ÿ™๐Ÿป|๐Ÿ™๐Ÿผ|๐Ÿ™๐Ÿฝ|๐Ÿ™๐Ÿพ|๐Ÿ™๐Ÿฟ|๐Ÿ’…๐Ÿป|๐Ÿ’…๐Ÿผ|๐Ÿ’…๐Ÿฝ|๐Ÿ’…๐Ÿพ|๐Ÿ’…๐Ÿฟ|๐Ÿคณ๐Ÿป|๐Ÿคณ๐Ÿผ|๐Ÿคณ๐Ÿฝ|๐Ÿคณ๐Ÿพ|๐Ÿคณ๐Ÿฟ|๐Ÿ’ช๐Ÿป|๐Ÿ’ช๐Ÿผ|๐Ÿ’ช๐Ÿฝ|๐Ÿ’ช๐Ÿพ|๐Ÿ’ช๐Ÿฟ|๐Ÿฆต๐Ÿป|๐Ÿฆต๐Ÿผ|๐Ÿฆต๐Ÿฝ|๐Ÿฆต๐Ÿพ|๐Ÿฆต๐Ÿฟ|๐Ÿฆถ๐Ÿป|๐Ÿฆถ๐Ÿผ|๐Ÿฆถ๐Ÿฝ|๐Ÿฆถ๐Ÿพ|๐Ÿฆถ๐Ÿฟ|๐Ÿ‘‚๐Ÿป|๐Ÿ‘‚๐Ÿผ|๐Ÿ‘‚๐Ÿฝ|๐Ÿ‘‚๐Ÿพ|๐Ÿ‘‚๐Ÿฟ|๐Ÿฆป๐Ÿป|๐Ÿฆป๐Ÿผ|๐Ÿฆป๐Ÿฝ|๐Ÿฆป๐Ÿพ|๐Ÿฆป๐Ÿฟ|๐Ÿ‘ƒ๐Ÿป|๐Ÿ‘ƒ๐Ÿผ|๐Ÿ‘ƒ๐Ÿฝ|๐Ÿ‘ƒ๐Ÿพ|๐Ÿ‘ƒ๐Ÿฟ|๐Ÿ‘ถ๐Ÿป|๐Ÿ‘ถ๐Ÿผ|๐Ÿ‘ถ๐Ÿฝ|๐Ÿ‘ถ๐Ÿพ|๐Ÿ‘ถ๐Ÿฟ|๐Ÿง’๐Ÿป|๐Ÿง’๐Ÿผ|๐Ÿง’๐Ÿฝ|๐Ÿง’๐Ÿพ|๐Ÿง’๐Ÿฟ|๐Ÿ‘ฆ๐Ÿป|๐Ÿ‘ฆ๐Ÿผ|๐Ÿ‘ฆ๐Ÿฝ|๐Ÿ‘ฆ๐Ÿพ|๐Ÿ‘ฆ๐Ÿฟ|๐Ÿ‘ง๐Ÿป|๐Ÿ‘ง๐Ÿผ|๐Ÿ‘ง๐Ÿฝ|๐Ÿ‘ง๐Ÿพ|๐Ÿ‘ง๐Ÿฟ|๐Ÿง‘๐Ÿป|๐Ÿง‘๐Ÿผ|๐Ÿง‘๐Ÿฝ|๐Ÿง‘๐Ÿพ|๐Ÿง‘๐Ÿฟ|๐Ÿ‘ฑ๐Ÿป|๐Ÿ‘ฑ๐Ÿผ|๐Ÿ‘ฑ๐Ÿฝ|๐Ÿ‘ฑ๐Ÿพ|๐Ÿ‘ฑ๐Ÿฟ|๐Ÿ‘จ๐Ÿป|๐Ÿ‘จ๐Ÿผ|๐Ÿ‘จ๐Ÿฝ|๐Ÿ‘จ๐Ÿพ|๐Ÿ‘จ๐Ÿฟ|๐Ÿง”๐Ÿป|๐Ÿง”๐Ÿผ|๐Ÿง”๐Ÿฝ|๐Ÿง”๐Ÿพ|๐Ÿง”๐Ÿฟ|๐Ÿ‘ฉ๐Ÿป|๐Ÿ‘ฉ๐Ÿผ|๐Ÿ‘ฉ๐Ÿฝ|๐Ÿ‘ฉ๐Ÿพ|๐Ÿ‘ฉ๐Ÿฟ|๐Ÿง“๐Ÿป|๐Ÿง“๐Ÿผ|๐Ÿง“๐Ÿฝ|๐Ÿง“๐Ÿพ|๐Ÿง“๐Ÿฟ|๐Ÿ‘ด๐Ÿป|๐Ÿ‘ด๐Ÿผ|๐Ÿ‘ด๐Ÿฝ|๐Ÿ‘ด๐Ÿพ|๐Ÿ‘ด๐Ÿฟ|๐Ÿ‘ต๐Ÿป|๐Ÿ‘ต๐Ÿผ|๐Ÿ‘ต๐Ÿฝ|๐Ÿ‘ต๐Ÿพ|๐Ÿ‘ต๐Ÿฟ|๐Ÿ™๐Ÿป|๐Ÿ™๐Ÿผ|๐Ÿ™๐Ÿฝ|๐Ÿ™๐Ÿพ|๐Ÿ™๐Ÿฟ|๐Ÿ™Ž๐Ÿป|๐Ÿ™Ž๐Ÿผ|๐Ÿ™Ž๐Ÿฝ|๐Ÿ™Ž๐Ÿพ|๐Ÿ™Ž๐Ÿฟ|๐Ÿ™…๐Ÿป|๐Ÿ™…๐Ÿผ|๐Ÿ™…๐Ÿฝ|๐Ÿ™…๐Ÿพ|๐Ÿ™…๐Ÿฟ|๐Ÿ™†๐Ÿป|๐Ÿ™†๐Ÿผ|๐Ÿ™†๐Ÿฝ|๐Ÿ™†๐Ÿพ|๐Ÿ™†๐Ÿฟ|๐Ÿ’๐Ÿป|๐Ÿ’๐Ÿผ|๐Ÿ’๐Ÿฝ|๐Ÿ’๐Ÿพ|๐Ÿ’๐Ÿฟ|๐Ÿ™‹๐Ÿป|๐Ÿ™‹๐Ÿผ|๐Ÿ™‹๐Ÿฝ|๐Ÿ™‹๐Ÿพ|๐Ÿ™‹๐Ÿฟ|๐Ÿง๐Ÿป|๐Ÿง๐Ÿผ|๐Ÿง๐Ÿฝ|๐Ÿง๐Ÿพ|๐Ÿง๐Ÿฟ|๐Ÿ™‡๐Ÿป|๐Ÿ™‡๐Ÿผ|๐Ÿ™‡๐Ÿฝ|๐Ÿ™‡๐Ÿพ|๐Ÿ™‡๐Ÿฟ|๐Ÿคฆ๐Ÿป|๐Ÿคฆ๐Ÿผ|๐Ÿคฆ๐Ÿฝ|๐Ÿคฆ๐Ÿพ|๐Ÿคฆ๐Ÿฟ|๐Ÿคท๐Ÿป|๐Ÿคท๐Ÿผ|๐Ÿคท๐Ÿฝ|๐Ÿคท๐Ÿพ|๐Ÿคท๐Ÿฟ|๐Ÿ‘ฎ๐Ÿป|๐Ÿ‘ฎ๐Ÿผ|๐Ÿ‘ฎ๐Ÿฝ|๐Ÿ‘ฎ๐Ÿพ|๐Ÿ‘ฎ๐Ÿฟ|๐Ÿ•ต๐Ÿป|๐Ÿ•ต๐Ÿผ|๐Ÿ•ต๐Ÿฝ|๐Ÿ•ต๐Ÿพ|๐Ÿ•ต๐Ÿฟ|๐Ÿ’‚๐Ÿป|๐Ÿ’‚๐Ÿผ|๐Ÿ’‚๐Ÿฝ|๐Ÿ’‚๐Ÿพ|๐Ÿ’‚๐Ÿฟ|๐Ÿฅท๐Ÿป|๐Ÿฅท๐Ÿผ|๐Ÿฅท๐Ÿฝ|๐Ÿฅท๐Ÿพ|๐Ÿฅท๐Ÿฟ|๐Ÿ‘ท๐Ÿป|๐Ÿ‘ท๐Ÿผ|๐Ÿ‘ท๐Ÿฝ|๐Ÿ‘ท๐Ÿพ|๐Ÿ‘ท๐Ÿฟ|๐Ÿคด๐Ÿป|๐Ÿคด๐Ÿผ|๐Ÿคด๐Ÿฝ|๐Ÿคด๐Ÿพ|๐Ÿคด๐Ÿฟ|๐Ÿ‘ธ๐Ÿป|๐Ÿ‘ธ๐Ÿผ|๐Ÿ‘ธ๐Ÿฝ|๐Ÿ‘ธ๐Ÿพ|๐Ÿ‘ธ๐Ÿฟ|๐Ÿ‘ณ๐Ÿป|๐Ÿ‘ณ๐Ÿผ|๐Ÿ‘ณ๐Ÿฝ|๐Ÿ‘ณ๐Ÿพ|๐Ÿ‘ณ๐Ÿฟ|๐Ÿ‘ฒ๐Ÿป|๐Ÿ‘ฒ๐Ÿผ|๐Ÿ‘ฒ๐Ÿฝ|๐Ÿ‘ฒ๐Ÿพ|๐Ÿ‘ฒ๐Ÿฟ|๐Ÿง•๐Ÿป|๐Ÿง•๐Ÿผ|๐Ÿง•๐Ÿฝ|๐Ÿง•๐Ÿพ|๐Ÿง•๐Ÿฟ|๐Ÿคต๐Ÿป|๐Ÿคต๐Ÿผ|๐Ÿคต๐Ÿฝ|๐Ÿคต๐Ÿพ|๐Ÿคต๐Ÿฟ|๐Ÿ‘ฐ๐Ÿป|๐Ÿ‘ฐ๐Ÿผ|๐Ÿ‘ฐ๐Ÿฝ|๐Ÿ‘ฐ๐Ÿพ|๐Ÿ‘ฐ๐Ÿฟ|๐Ÿคฐ๐Ÿป|๐Ÿคฐ๐Ÿผ|๐Ÿคฐ๐Ÿฝ|๐Ÿคฐ๐Ÿพ|๐Ÿคฐ๐Ÿฟ|๐Ÿคฑ๐Ÿป|๐Ÿคฑ๐Ÿผ|๐Ÿคฑ๐Ÿฝ|๐Ÿคฑ๐Ÿพ|๐Ÿคฑ๐Ÿฟ|๐Ÿ‘ผ๐Ÿป|๐Ÿ‘ผ๐Ÿผ|๐Ÿ‘ผ๐Ÿฝ|๐Ÿ‘ผ๐Ÿพ|๐Ÿ‘ผ๐Ÿฟ|๐ŸŽ…๐Ÿป|๐ŸŽ…๐Ÿผ|๐ŸŽ…๐Ÿฝ|๐ŸŽ…๐Ÿพ|๐ŸŽ…๐Ÿฟ|๐Ÿคถ๐Ÿป|๐Ÿคถ๐Ÿผ|๐Ÿคถ๐Ÿฝ|๐Ÿคถ๐Ÿพ|๐Ÿคถ๐Ÿฟ|๐Ÿฆธ๐Ÿป|๐Ÿฆธ๐Ÿผ|๐Ÿฆธ๐Ÿฝ|๐Ÿฆธ๐Ÿพ|๐Ÿฆธ๐Ÿฟ|๐Ÿฆน๐Ÿป|๐Ÿฆน๐Ÿผ|๐Ÿฆน๐Ÿฝ|๐Ÿฆน๐Ÿพ|๐Ÿฆน๐Ÿฟ|๐Ÿง™๐Ÿป|๐Ÿง™๐Ÿผ|๐Ÿง™๐Ÿฝ|๐Ÿง™๐Ÿพ|๐Ÿง™๐Ÿฟ|๐Ÿงš๐Ÿป|๐Ÿงš๐Ÿผ|๐Ÿงš๐Ÿฝ|๐Ÿงš๐Ÿพ|๐Ÿงš๐Ÿฟ|๐Ÿง›๐Ÿป|๐Ÿง›๐Ÿผ|๐Ÿง›๐Ÿฝ|๐Ÿง›๐Ÿพ|๐Ÿง›๐Ÿฟ|๐Ÿงœ๐Ÿป|๐Ÿงœ๐Ÿผ|๐Ÿงœ๐Ÿฝ|๐Ÿงœ๐Ÿพ|๐Ÿงœ๐Ÿฟ|๐Ÿง๐Ÿป|๐Ÿง๐Ÿผ|๐Ÿง๐Ÿฝ|๐Ÿง๐Ÿพ|๐Ÿง๐Ÿฟ|๐Ÿ’†๐Ÿป|๐Ÿ’†๐Ÿผ|๐Ÿ’†๐Ÿฝ|๐Ÿ’†๐Ÿพ|๐Ÿ’†๐Ÿฟ|๐Ÿ’‡๐Ÿป|๐Ÿ’‡๐Ÿผ|๐Ÿ’‡๐Ÿฝ|๐Ÿ’‡๐Ÿพ|๐Ÿ’‡๐Ÿฟ|๐Ÿšถ๐Ÿป|๐Ÿšถ๐Ÿผ|๐Ÿšถ๐Ÿฝ|๐Ÿšถ๐Ÿพ|๐Ÿšถ๐Ÿฟ|๐Ÿง๐Ÿป|๐Ÿง๐Ÿผ|๐Ÿง๐Ÿฝ|๐Ÿง๐Ÿพ|๐Ÿง๐Ÿฟ|๐ŸงŽ๐Ÿป|๐ŸงŽ๐Ÿผ|๐ŸงŽ๐Ÿฝ|๐ŸงŽ๐Ÿพ|๐ŸงŽ๐Ÿฟ|๐Ÿƒ๐Ÿป|๐Ÿƒ๐Ÿผ|๐Ÿƒ๐Ÿฝ|๐Ÿƒ๐Ÿพ|๐Ÿƒ๐Ÿฟ|๐Ÿ’ƒ๐Ÿป|๐Ÿ’ƒ๐Ÿผ|๐Ÿ’ƒ๐Ÿฝ|๐Ÿ’ƒ๐Ÿพ|๐Ÿ’ƒ๐Ÿฟ|๐Ÿ•บ๐Ÿป|๐Ÿ•บ๐Ÿผ|๐Ÿ•บ๐Ÿฝ|๐Ÿ•บ๐Ÿพ|๐Ÿ•บ๐Ÿฟ|๐Ÿ•ด๐Ÿป|๐Ÿ•ด๐Ÿผ|๐Ÿ•ด๐Ÿฝ|๐Ÿ•ด๐Ÿพ|๐Ÿ•ด๐Ÿฟ|๐Ÿง–๐Ÿป|๐Ÿง–๐Ÿผ|๐Ÿง–๐Ÿฝ|๐Ÿง–๐Ÿพ|๐Ÿง–๐Ÿฟ|๐Ÿง—๐Ÿป|๐Ÿง—๐Ÿผ|๐Ÿง—๐Ÿฝ|๐Ÿง—๐Ÿพ|๐Ÿง—๐Ÿฟ|๐Ÿ‡๐Ÿป|๐Ÿ‡๐Ÿผ|๐Ÿ‡๐Ÿฝ|๐Ÿ‡๐Ÿพ|๐Ÿ‡๐Ÿฟ|๐Ÿ‚๐Ÿป|๐Ÿ‚๐Ÿผ|๐Ÿ‚๐Ÿฝ|๐Ÿ‚๐Ÿพ|๐Ÿ‚๐Ÿฟ|๐ŸŒ๐Ÿป|๐ŸŒ๐Ÿผ|๐ŸŒ๐Ÿฝ|๐ŸŒ๐Ÿพ|๐ŸŒ๐Ÿฟ|๐Ÿ„๐Ÿป|๐Ÿ„๐Ÿผ|๐Ÿ„๐Ÿฝ|๐Ÿ„๐Ÿพ|๐Ÿ„๐Ÿฟ|๐Ÿšฃ๐Ÿป|๐Ÿšฃ๐Ÿผ|๐Ÿšฃ๐Ÿฝ|๐Ÿšฃ๐Ÿพ|๐Ÿšฃ๐Ÿฟ|๐ŸŠ๐Ÿป|๐ŸŠ๐Ÿผ|๐ŸŠ๐Ÿฝ|๐ŸŠ๐Ÿพ|๐ŸŠ๐Ÿฟ|๐Ÿ‹๐Ÿป|๐Ÿ‹๐Ÿผ|๐Ÿ‹๐Ÿฝ|๐Ÿ‹๐Ÿพ|๐Ÿ‹๐Ÿฟ|๐Ÿšด๐Ÿป|๐Ÿšด๐Ÿผ|๐Ÿšด๐Ÿฝ|๐Ÿšด๐Ÿพ|๐Ÿšด๐Ÿฟ|๐Ÿšต๐Ÿป|๐Ÿšต๐Ÿผ|๐Ÿšต๐Ÿฝ|๐Ÿšต๐Ÿพ|๐Ÿšต๐Ÿฟ|๐Ÿคธ๐Ÿป|๐Ÿคธ๐Ÿผ|๐Ÿคธ๐Ÿฝ|๐Ÿคธ๐Ÿพ|๐Ÿคธ๐Ÿฟ|๐Ÿคฝ๐Ÿป|๐Ÿคฝ๐Ÿผ|๐Ÿคฝ๐Ÿฝ|๐Ÿคฝ๐Ÿพ|๐Ÿคฝ๐Ÿฟ|๐Ÿคพ๐Ÿป|๐Ÿคพ๐Ÿผ|๐Ÿคพ๐Ÿฝ|๐Ÿคพ๐Ÿพ|๐Ÿคพ๐Ÿฟ|๐Ÿคน๐Ÿป|๐Ÿคน๐Ÿผ|๐Ÿคน๐Ÿฝ|๐Ÿคน๐Ÿพ|๐Ÿคน๐Ÿฟ|๐Ÿง˜๐Ÿป|๐Ÿง˜๐Ÿผ|๐Ÿง˜๐Ÿฝ|๐Ÿง˜๐Ÿพ|๐Ÿง˜๐Ÿฟ|๐Ÿ›€๐Ÿป|๐Ÿ›€๐Ÿผ|๐Ÿ›€๐Ÿฝ|๐Ÿ›€๐Ÿพ|๐Ÿ›€๐Ÿฟ|๐Ÿ›Œ๐Ÿป|๐Ÿ›Œ๐Ÿผ|๐Ÿ›Œ๐Ÿฝ|๐Ÿ›Œ๐Ÿพ|๐Ÿ›Œ๐Ÿฟ|๐Ÿ‘ญ๐Ÿป|๐Ÿ‘ญ๐Ÿผ|๐Ÿ‘ญ๐Ÿฝ|๐Ÿ‘ญ๐Ÿพ|๐Ÿ‘ญ๐Ÿฟ|๐Ÿ‘ซ๐Ÿป|๐Ÿ‘ซ๐Ÿผ|๐Ÿ‘ซ๐Ÿฝ|๐Ÿ‘ซ๐Ÿพ|๐Ÿ‘ซ๐Ÿฟ|๐Ÿ‘ฌ๐Ÿป|๐Ÿ‘ฌ๐Ÿผ|๐Ÿ‘ฌ๐Ÿฝ|๐Ÿ‘ฌ๐Ÿพ|๐Ÿ‘ฌ๐Ÿฟ|๐Ÿ’๐Ÿป|๐Ÿ’๐Ÿผ|๐Ÿ’๐Ÿฝ|๐Ÿ’๐Ÿพ|๐Ÿ’๐Ÿฟ|๐Ÿ’‘๐Ÿป|๐Ÿ’‘๐Ÿผ|๐Ÿ’‘๐Ÿฝ|๐Ÿ’‘๐Ÿพ|๐Ÿ’‘๐Ÿฟ|#๏ธโƒฃ|0๏ธโƒฃ|1๏ธโƒฃ|2๏ธโƒฃ|3๏ธโƒฃ|4๏ธโƒฃ|5๏ธโƒฃ|6๏ธโƒฃ|7๏ธโƒฃ|8๏ธโƒฃ|9๏ธโƒฃ|โœ‹๐Ÿป|โœ‹๐Ÿผ|โœ‹๐Ÿฝ|โœ‹๐Ÿพ|โœ‹๐Ÿฟ|โœŒ๐Ÿป|โœŒ๐Ÿผ|โœŒ๐Ÿฝ|โœŒ๐Ÿพ|โœŒ๐Ÿฟ|โ˜๐Ÿป|โ˜๐Ÿผ|โ˜๐Ÿฝ|โ˜๐Ÿพ|โ˜๐Ÿฟ|โœŠ๐Ÿป|โœŠ๐Ÿผ|โœŠ๐Ÿฝ|โœŠ๐Ÿพ|โœŠ๐Ÿฟ|โœ๐Ÿป|โœ๐Ÿผ|โœ๐Ÿฝ|โœ๐Ÿพ|โœ๐Ÿฟ|โ›น๐Ÿป|โ›น๐Ÿผ|โ›น๐Ÿฝ|โ›น๐Ÿพ|โ›น๐Ÿฟ|๐Ÿ˜€|๐Ÿ˜ƒ|๐Ÿ˜„|๐Ÿ˜|๐Ÿ˜†|๐Ÿ˜…|๐Ÿคฃ|๐Ÿ˜‚|๐Ÿ™‚|๐Ÿ™ƒ|๐Ÿ˜‰|๐Ÿ˜Š|๐Ÿ˜‡|๐Ÿฅฐ|๐Ÿ˜|๐Ÿคฉ|๐Ÿ˜˜|๐Ÿ˜—|๐Ÿ˜š|๐Ÿ˜™|๐Ÿฅฒ|๐Ÿ˜‹|๐Ÿ˜›|๐Ÿ˜œ|๐Ÿคช|๐Ÿ˜|๐Ÿค‘|๐Ÿค—|๐Ÿคญ|๐Ÿคซ|๐Ÿค”|๐Ÿค|๐Ÿคจ|๐Ÿ˜|๐Ÿ˜‘|๐Ÿ˜ถ|๐Ÿ˜|๐Ÿ˜’|๐Ÿ™„|๐Ÿ˜ฌ|๐Ÿคฅ|๐Ÿ˜Œ|๐Ÿ˜”|๐Ÿ˜ช|๐Ÿคค|๐Ÿ˜ด|๐Ÿ˜ท|๐Ÿค’|๐Ÿค•|๐Ÿคข|๐Ÿคฎ|๐Ÿคง|๐Ÿฅต|๐Ÿฅถ|๐Ÿฅด|๐Ÿ˜ต|๐Ÿคฏ|๐Ÿค |๐Ÿฅณ|๐Ÿฅธ|๐Ÿ˜Ž|๐Ÿค“|๐Ÿง|๐Ÿ˜•|๐Ÿ˜Ÿ|๐Ÿ™|๐Ÿ˜ฎ|๐Ÿ˜ฏ|๐Ÿ˜ฒ|๐Ÿ˜ณ|๐Ÿฅบ|๐Ÿ˜ฆ|๐Ÿ˜ง|๐Ÿ˜จ|๐Ÿ˜ฐ|๐Ÿ˜ฅ|๐Ÿ˜ข|๐Ÿ˜ญ|๐Ÿ˜ฑ|๐Ÿ˜–|๐Ÿ˜ฃ|๐Ÿ˜ž|๐Ÿ˜“|๐Ÿ˜ฉ|๐Ÿ˜ซ|๐Ÿฅฑ|๐Ÿ˜ค|๐Ÿ˜ก|๐Ÿ˜ |๐Ÿคฌ|๐Ÿ˜ˆ|๐Ÿ‘ฟ|๐Ÿ’€|๐Ÿ’ฉ|๐Ÿคก|๐Ÿ‘น|๐Ÿ‘บ|๐Ÿ‘ป|๐Ÿ‘ฝ|๐Ÿ‘พ|๐Ÿค–|๐Ÿ˜บ|๐Ÿ˜ธ|๐Ÿ˜น|๐Ÿ˜ป|๐Ÿ˜ผ|๐Ÿ˜ฝ|๐Ÿ™€|๐Ÿ˜ฟ|๐Ÿ˜พ|๐Ÿ™ˆ|๐Ÿ™‰|๐Ÿ™Š|๐Ÿ’‹|๐Ÿ’Œ|๐Ÿ’˜|๐Ÿ’|๐Ÿ’–|๐Ÿ’—|๐Ÿ’“|๐Ÿ’ž|๐Ÿ’•|๐Ÿ’Ÿ|๐Ÿ’”|๐Ÿงก|๐Ÿ’›|๐Ÿ’š|๐Ÿ’™|๐Ÿ’œ|๐ŸคŽ|๐Ÿ–ค|๐Ÿค|๐Ÿ’ฏ|๐Ÿ’ข|๐Ÿ’ฅ|๐Ÿ’ซ|๐Ÿ’ฆ|๐Ÿ’จ|๐Ÿ•ณ|๐Ÿ’ฃ|๐Ÿ’ฌ|๐Ÿ—จ|๐Ÿ—ฏ|๐Ÿ’ญ|๐Ÿ’ค|๐Ÿ‘‹|๐Ÿคš|๐Ÿ–|๐Ÿ––|๐Ÿ‘Œ|๐ŸคŒ|๐Ÿค|๐Ÿคž|๐ŸคŸ|๐Ÿค˜|๐Ÿค™|๐Ÿ‘ˆ|๐Ÿ‘‰|๐Ÿ‘†|๐Ÿ–•|๐Ÿ‘‡|๐Ÿ‘|๐Ÿ‘Ž|๐Ÿ‘Š|๐Ÿค›|๐Ÿคœ|๐Ÿ‘|๐Ÿ™Œ|๐Ÿ‘|๐Ÿคฒ|๐Ÿค|๐Ÿ™|๐Ÿ’…|๐Ÿคณ|๐Ÿ’ช|๐Ÿฆพ|๐Ÿฆฟ|๐Ÿฆต|๐Ÿฆถ|๐Ÿ‘‚|๐Ÿฆป|๐Ÿ‘ƒ|๐Ÿง |๐Ÿซ€|๐Ÿซ|๐Ÿฆท|๐Ÿฆด|๐Ÿ‘€|๐Ÿ‘|๐Ÿ‘…|๐Ÿ‘„|๐Ÿ‘ถ|๐Ÿง’|๐Ÿ‘ฆ|๐Ÿ‘ง|๐Ÿง‘|๐Ÿ‘ฑ|๐Ÿ‘จ|๐Ÿง”|๐Ÿ‘ฉ|๐Ÿง“|๐Ÿ‘ด|๐Ÿ‘ต|๐Ÿ™|๐Ÿ™Ž|๐Ÿ™…|๐Ÿ™†|๐Ÿ’|๐Ÿ™‹|๐Ÿง|๐Ÿ™‡|๐Ÿคฆ|๐Ÿคท|๐Ÿ‘ฎ|๐Ÿ•ต|๐Ÿ’‚|๐Ÿฅท|๐Ÿ‘ท|๐Ÿคด|๐Ÿ‘ธ|๐Ÿ‘ณ|๐Ÿ‘ฒ|๐Ÿง•|๐Ÿคต|๐Ÿ‘ฐ|๐Ÿคฐ|๐Ÿคฑ|๐Ÿ‘ผ|๐ŸŽ…|๐Ÿคถ|๐Ÿฆธ|๐Ÿฆน|๐Ÿง™|๐Ÿงš|๐Ÿง›|๐Ÿงœ|๐Ÿง|๐Ÿงž|๐ŸงŸ|๐Ÿ’†|๐Ÿ’‡|๐Ÿšถ|๐Ÿง|๐ŸงŽ|๐Ÿƒ|๐Ÿ’ƒ|๐Ÿ•บ|๐Ÿ•ด|๐Ÿ‘ฏ|๐Ÿง–|๐Ÿง—|๐Ÿคบ|๐Ÿ‡|๐Ÿ‚|๐ŸŒ|๐Ÿ„|๐Ÿšฃ|๐ŸŠ|๐Ÿ‹|๐Ÿšด|๐Ÿšต|๐Ÿคธ|๐Ÿคผ|๐Ÿคฝ|๐Ÿคพ|๐Ÿคน|๐Ÿง˜|๐Ÿ›€|๐Ÿ›Œ|๐Ÿ‘ญ|๐Ÿ‘ซ|๐Ÿ‘ฌ|๐Ÿ’|๐Ÿ’‘|๐Ÿ‘ช|๐Ÿ—ฃ|๐Ÿ‘ค|๐Ÿ‘ฅ|๐Ÿซ‚|๐Ÿ‘ฃ|๐Ÿฆฐ|๐Ÿฆฑ|๐Ÿฆณ|๐Ÿฆฒ|๐Ÿต|๐Ÿ’|๐Ÿฆ|๐Ÿฆง|๐Ÿถ|๐Ÿ•|๐Ÿฆฎ|๐Ÿฉ|๐Ÿบ|๐ŸฆŠ|๐Ÿฆ|๐Ÿฑ|๐Ÿˆ|๐Ÿฆ|๐Ÿฏ|๐Ÿ…|๐Ÿ†|๐Ÿด|๐ŸŽ|๐Ÿฆ„|๐Ÿฆ“|๐ŸฆŒ|๐Ÿฆฌ|๐Ÿฎ|๐Ÿ‚|๐Ÿƒ|๐Ÿ„|๐Ÿท|๐Ÿ–|๐Ÿ—|๐Ÿฝ|๐Ÿ|๐Ÿ‘|๐Ÿ|๐Ÿช|๐Ÿซ|๐Ÿฆ™|๐Ÿฆ’|๐Ÿ˜|๐Ÿฆฃ|๐Ÿฆ|๐Ÿฆ›|๐Ÿญ|๐Ÿ|๐Ÿ€|๐Ÿน|๐Ÿฐ|๐Ÿ‡|๐Ÿฟ|๐Ÿฆซ|๐Ÿฆ”|๐Ÿฆ‡|๐Ÿป|๐Ÿจ|๐Ÿผ|๐Ÿฆฅ|๐Ÿฆฆ|๐Ÿฆจ|๐Ÿฆ˜|๐Ÿฆก|๐Ÿพ|๐Ÿฆƒ|๐Ÿ”|๐Ÿ“|๐Ÿฃ|๐Ÿค|๐Ÿฅ|๐Ÿฆ|๐Ÿง|๐Ÿ•Š|๐Ÿฆ…|๐Ÿฆ†|๐Ÿฆข|๐Ÿฆ‰|๐Ÿฆค|๐Ÿชถ|๐Ÿฆฉ|๐Ÿฆš|๐Ÿฆœ|๐Ÿธ|๐ŸŠ|๐Ÿข|๐ŸฆŽ|๐Ÿ|๐Ÿฒ|๐Ÿ‰|๐Ÿฆ•|๐Ÿฆ–|๐Ÿณ|๐Ÿ‹|๐Ÿฌ|๐Ÿฆญ|๐ŸŸ|๐Ÿ |๐Ÿก|๐Ÿฆˆ|๐Ÿ™|๐Ÿš|๐ŸŒ|๐Ÿฆ‹|๐Ÿ›|๐Ÿœ|๐Ÿ|๐Ÿชฒ|๐Ÿž|๐Ÿฆ—|๐Ÿชณ|๐Ÿ•ท|๐Ÿ•ธ|๐Ÿฆ‚|๐ŸฆŸ|๐Ÿชฐ|๐Ÿชฑ|๐Ÿฆ |๐Ÿ’|๐ŸŒธ|๐Ÿ’ฎ|๐Ÿต|๐ŸŒน|๐Ÿฅ€|๐ŸŒบ|๐ŸŒป|๐ŸŒผ|๐ŸŒท|๐ŸŒฑ|๐Ÿชด|๐ŸŒฒ|๐ŸŒณ|๐ŸŒด|๐ŸŒต|๐ŸŒพ|๐ŸŒฟ|๐Ÿ€|๐Ÿ|๐Ÿ‚|๐Ÿƒ|๐Ÿ‡|๐Ÿˆ|๐Ÿ‰|๐ŸŠ|๐Ÿ‹|๐ŸŒ|๐Ÿ|๐Ÿฅญ|๐ŸŽ|๐Ÿ|๐Ÿ|๐Ÿ‘|๐Ÿ’|๐Ÿ“|๐Ÿซ|๐Ÿฅ|๐Ÿ…|๐Ÿซ’|๐Ÿฅฅ|๐Ÿฅ‘|๐Ÿ†|๐Ÿฅ”|๐Ÿฅ•|๐ŸŒฝ|๐ŸŒถ|๐Ÿซ‘|๐Ÿฅ’|๐Ÿฅฌ|๐Ÿฅฆ|๐Ÿง„|๐Ÿง…|๐Ÿ„|๐Ÿฅœ|๐ŸŒฐ|๐Ÿž|๐Ÿฅ|๐Ÿฅ–|๐Ÿซ“|๐Ÿฅจ|๐Ÿฅฏ|๐Ÿฅž|๐Ÿง‡|๐Ÿง€|๐Ÿ–|๐Ÿ—|๐Ÿฅฉ|๐Ÿฅ“|๐Ÿ”|๐ŸŸ|๐Ÿ•|๐ŸŒญ|๐Ÿฅช|๐ŸŒฎ|๐ŸŒฏ|๐Ÿซ”|๐Ÿฅ™|๐Ÿง†|๐Ÿฅš|๐Ÿณ|๐Ÿฅ˜|๐Ÿฒ|๐Ÿซ•|๐Ÿฅฃ|๐Ÿฅ—|๐Ÿฟ|๐Ÿงˆ|๐Ÿง‚|๐Ÿฅซ|๐Ÿฑ|๐Ÿ˜|๐Ÿ™|๐Ÿš|๐Ÿ›|๐Ÿœ|๐Ÿ|๐Ÿ |๐Ÿข|๐Ÿฃ|๐Ÿค|๐Ÿฅ|๐Ÿฅฎ|๐Ÿก|๐ŸฅŸ|๐Ÿฅ |๐Ÿฅก|๐Ÿฆ€|๐Ÿฆž|๐Ÿฆ|๐Ÿฆ‘|๐Ÿฆช|๐Ÿฆ|๐Ÿง|๐Ÿจ|๐Ÿฉ|๐Ÿช|๐ŸŽ‚|๐Ÿฐ|๐Ÿง|๐Ÿฅง|๐Ÿซ|๐Ÿฌ|๐Ÿญ|๐Ÿฎ|๐Ÿฏ|๐Ÿผ|๐Ÿฅ›|๐Ÿซ–|๐Ÿต|๐Ÿถ|๐Ÿพ|๐Ÿท|๐Ÿธ|๐Ÿน|๐Ÿบ|๐Ÿป|๐Ÿฅ‚|๐Ÿฅƒ|๐Ÿฅค|๐Ÿง‹|๐Ÿงƒ|๐Ÿง‰|๐ŸงŠ|๐Ÿฅข|๐Ÿฝ|๐Ÿด|๐Ÿฅ„|๐Ÿ”ช|๐Ÿบ|๐ŸŒ|๐ŸŒŽ|๐ŸŒ|๐ŸŒ|๐Ÿ—บ|๐Ÿ—พ|๐Ÿงญ|๐Ÿ”|๐ŸŒ‹|๐Ÿ—ป|๐Ÿ•|๐Ÿ–|๐Ÿœ|๐Ÿ|๐Ÿž|๐ŸŸ|๐Ÿ›|๐Ÿ—|๐Ÿงฑ|๐Ÿชจ|๐Ÿชต|๐Ÿ›–|๐Ÿ˜|๐Ÿš|๐Ÿ |๐Ÿก|๐Ÿข|๐Ÿฃ|๐Ÿค|๐Ÿฅ|๐Ÿฆ|๐Ÿจ|๐Ÿฉ|๐Ÿช|๐Ÿซ|๐Ÿฌ|๐Ÿญ|๐Ÿฏ|๐Ÿฐ|๐Ÿ’’|๐Ÿ—ผ|๐Ÿ—ฝ|๐Ÿ•Œ|๐Ÿ›•|๐Ÿ•|๐Ÿ•‹|๐ŸŒ|๐ŸŒƒ|๐Ÿ™|๐ŸŒ„|๐ŸŒ…|๐ŸŒ†|๐ŸŒ‡|๐ŸŒ‰|๐ŸŽ |๐ŸŽก|๐ŸŽข|๐Ÿ’ˆ|๐ŸŽช|๐Ÿš‚|๐Ÿšƒ|๐Ÿš„|๐Ÿš…|๐Ÿš†|๐Ÿš‡|๐Ÿšˆ|๐Ÿš‰|๐ŸšŠ|๐Ÿš|๐Ÿšž|๐Ÿš‹|๐ŸšŒ|๐Ÿš|๐ŸšŽ|๐Ÿš|๐Ÿš‘|๐Ÿš’|๐Ÿš“|๐Ÿš”|๐Ÿš•|๐Ÿš–|๐Ÿš—|๐Ÿš˜|๐Ÿš™|๐Ÿ›ป|๐Ÿšš|๐Ÿš›|๐Ÿšœ|๐ŸŽ|๐Ÿ|๐Ÿ›ต|๐Ÿฆฝ|๐Ÿฆผ|๐Ÿ›บ|๐Ÿšฒ|๐Ÿ›ด|๐Ÿ›น|๐Ÿ›ผ|๐Ÿš|๐Ÿ›ฃ|๐Ÿ›ค|๐Ÿ›ข|๐Ÿšจ|๐Ÿšฅ|๐Ÿšฆ|๐Ÿ›‘|๐Ÿšง|๐Ÿ›ถ|๐Ÿšค|๐Ÿ›ณ|๐Ÿ›ฅ|๐Ÿšข|๐Ÿ›ฉ|๐Ÿ›ซ|๐Ÿ›ฌ|๐Ÿช‚|๐Ÿ’บ|๐Ÿš|๐ŸšŸ|๐Ÿš |๐Ÿšก|๐Ÿ›ฐ|๐Ÿš€|๐Ÿ›ธ|๐Ÿ›Ž|๐Ÿงณ|๐Ÿ•ฐ|๐Ÿ•›|๐Ÿ•ง|๐Ÿ•|๐Ÿ•œ|๐Ÿ•‘|๐Ÿ•|๐Ÿ•’|๐Ÿ•ž|๐Ÿ•“|๐Ÿ•Ÿ|๐Ÿ•”|๐Ÿ• |๐Ÿ••|๐Ÿ•ก|๐Ÿ•–|๐Ÿ•ข|๐Ÿ•—|๐Ÿ•ฃ|๐Ÿ•˜|๐Ÿ•ค|๐Ÿ•™|๐Ÿ•ฅ|๐Ÿ•š|๐Ÿ•ฆ|๐ŸŒ‘|๐ŸŒ’|๐ŸŒ“|๐ŸŒ”|๐ŸŒ•|๐ŸŒ–|๐ŸŒ—|๐ŸŒ˜|๐ŸŒ™|๐ŸŒš|๐ŸŒ›|๐ŸŒœ|๐ŸŒก|๐ŸŒ|๐ŸŒž|๐Ÿช|๐ŸŒŸ|๐ŸŒ |๐ŸŒŒ|๐ŸŒค|๐ŸŒฅ|๐ŸŒฆ|๐ŸŒง|๐ŸŒจ|๐ŸŒฉ|๐ŸŒช|๐ŸŒซ|๐ŸŒฌ|๐ŸŒ€|๐ŸŒˆ|๐ŸŒ‚|๐Ÿ”ฅ|๐Ÿ’ง|๐ŸŒŠ|๐ŸŽƒ|๐ŸŽ„|๐ŸŽ†|๐ŸŽ‡|๐Ÿงจ|๐ŸŽˆ|๐ŸŽ‰|๐ŸŽŠ|๐ŸŽ‹|๐ŸŽ|๐ŸŽŽ|๐ŸŽ|๐ŸŽ|๐ŸŽ‘|๐Ÿงง|๐ŸŽ€|๐ŸŽ|๐ŸŽ—|๐ŸŽŸ|๐ŸŽซ|๐ŸŽ–|๐Ÿ†|๐Ÿ…|๐Ÿฅ‡|๐Ÿฅˆ|๐Ÿฅ‰|๐ŸฅŽ|๐Ÿ€|๐Ÿ|๐Ÿˆ|๐Ÿ‰|๐ŸŽพ|๐Ÿฅ|๐ŸŽณ|๐Ÿ|๐Ÿ‘|๐Ÿ’|๐Ÿฅ|๐Ÿ“|๐Ÿธ|๐ŸฅŠ|๐Ÿฅ‹|๐Ÿฅ…|๐ŸŽฃ|๐Ÿคฟ|๐ŸŽฝ|๐ŸŽฟ|๐Ÿ›ท|๐ŸฅŒ|๐ŸŽฏ|๐Ÿช€|๐Ÿช|๐ŸŽฑ|๐Ÿ”ฎ|๐Ÿช„|๐Ÿงฟ|๐ŸŽฎ|๐Ÿ•น|๐ŸŽฐ|๐ŸŽฒ|๐Ÿงฉ|๐Ÿงธ|๐Ÿช…|๐Ÿช†|๐Ÿƒ|๐Ÿ€„|๐ŸŽด|๐ŸŽญ|๐Ÿ–ผ|๐ŸŽจ|๐Ÿงต|๐Ÿชก|๐Ÿงถ|๐Ÿชข|๐Ÿ‘“|๐Ÿ•ถ|๐Ÿฅฝ|๐Ÿฅผ|๐Ÿฆบ|๐Ÿ‘”|๐Ÿ‘•|๐Ÿ‘–|๐Ÿงฃ|๐Ÿงค|๐Ÿงฅ|๐Ÿงฆ|๐Ÿ‘—|๐Ÿ‘˜|๐Ÿฅป|๐Ÿฉฑ|๐Ÿฉฒ|๐Ÿฉณ|๐Ÿ‘™|๐Ÿ‘š|๐Ÿ‘›|๐Ÿ‘œ|๐Ÿ‘|๐Ÿ›|๐ŸŽ’|๐Ÿฉด|๐Ÿ‘ž|๐Ÿ‘Ÿ|๐Ÿฅพ|๐Ÿฅฟ|๐Ÿ‘ |๐Ÿ‘ก|๐Ÿฉฐ|๐Ÿ‘ข|๐Ÿ‘‘|๐Ÿ‘’|๐ŸŽฉ|๐ŸŽ“|๐Ÿงข|๐Ÿช–|๐Ÿ“ฟ|๐Ÿ’„|๐Ÿ’|๐Ÿ’Ž|๐Ÿ”‡|๐Ÿ”ˆ|๐Ÿ”‰|๐Ÿ”Š|๐Ÿ“ข|๐Ÿ“ฃ|๐Ÿ“ฏ|๐Ÿ””|๐Ÿ”•|๐ŸŽผ|๐ŸŽต|๐ŸŽถ|๐ŸŽ™|๐ŸŽš|๐ŸŽ›|๐ŸŽค|๐ŸŽง|๐Ÿ“ป|๐ŸŽท|๐Ÿช—|๐ŸŽธ|๐ŸŽน|๐ŸŽบ|๐ŸŽป|๐Ÿช•|๐Ÿฅ|๐Ÿช˜|๐Ÿ“ฑ|๐Ÿ“ฒ|๐Ÿ“ž|๐Ÿ“Ÿ|๐Ÿ“ |๐Ÿ”‹|๐Ÿ”Œ|๐Ÿ’ป|๐Ÿ–ฅ|๐Ÿ–จ|๐Ÿ–ฑ|๐Ÿ–ฒ|๐Ÿ’ฝ|๐Ÿ’พ|๐Ÿ’ฟ|๐Ÿ“€|๐Ÿงฎ|๐ŸŽฅ|๐ŸŽž|๐Ÿ“ฝ|๐ŸŽฌ|๐Ÿ“บ|๐Ÿ“ท|๐Ÿ“ธ|๐Ÿ“น|๐Ÿ“ผ|๐Ÿ”|๐Ÿ”Ž|๐Ÿ•ฏ|๐Ÿ’ก|๐Ÿ”ฆ|๐Ÿฎ|๐Ÿช”|๐Ÿ“”|๐Ÿ“•|๐Ÿ“–|๐Ÿ“—|๐Ÿ“˜|๐Ÿ“™|๐Ÿ“š|๐Ÿ““|๐Ÿ“’|๐Ÿ“ƒ|๐Ÿ“œ|๐Ÿ“„|๐Ÿ“ฐ|๐Ÿ—ž|๐Ÿ“‘|๐Ÿ”–|๐Ÿท|๐Ÿ’ฐ|๐Ÿช™|๐Ÿ’ด|๐Ÿ’ต|๐Ÿ’ถ|๐Ÿ’ท|๐Ÿ’ธ|๐Ÿ’ณ|๐Ÿงพ|๐Ÿ’น|๐Ÿ“ง|๐Ÿ“จ|๐Ÿ“ฉ|๐Ÿ“ค|๐Ÿ“ฅ|๐Ÿ“ฆ|๐Ÿ“ซ|๐Ÿ“ช|๐Ÿ“ฌ|๐Ÿ“ญ|๐Ÿ“ฎ|๐Ÿ—ณ|๐Ÿ–‹|๐Ÿ–Š|๐Ÿ–Œ|๐Ÿ–|๐Ÿ“|๐Ÿ’ผ|๐Ÿ“|๐Ÿ“‚|๐Ÿ—‚|๐Ÿ“…|๐Ÿ“†|๐Ÿ—’|๐Ÿ—“|๐Ÿ“‡|๐Ÿ“ˆ|๐Ÿ“‰|๐Ÿ“Š|๐Ÿ“‹|๐Ÿ“Œ|๐Ÿ“|๐Ÿ“Ž|๐Ÿ–‡|๐Ÿ“|๐Ÿ“|๐Ÿ—ƒ|๐Ÿ—„|๐Ÿ—‘|๐Ÿ”’|๐Ÿ”“|๐Ÿ”|๐Ÿ”|๐Ÿ”‘|๐Ÿ—|๐Ÿ”จ|๐Ÿช“|๐Ÿ› |๐Ÿ—ก|๐Ÿ”ซ|๐Ÿชƒ|๐Ÿน|๐Ÿ›ก|๐Ÿชš|๐Ÿ”ง|๐Ÿช›|๐Ÿ”ฉ|๐Ÿ—œ|๐Ÿฆฏ|๐Ÿ”—|๐Ÿช|๐Ÿงฐ|๐Ÿงฒ|๐Ÿชœ|๐Ÿงช|๐Ÿงซ|๐Ÿงฌ|๐Ÿ”ฌ|๐Ÿ”ญ|๐Ÿ“ก|๐Ÿ’‰|๐Ÿฉธ|๐Ÿ’Š|๐Ÿฉน|๐Ÿฉบ|๐Ÿšช|๐Ÿ›—|๐Ÿชž|๐ŸชŸ|๐Ÿ›|๐Ÿ›‹|๐Ÿช‘|๐Ÿšฝ|๐Ÿช |๐Ÿšฟ|๐Ÿ›|๐Ÿชค|๐Ÿช’|๐Ÿงด|๐Ÿงท|๐Ÿงน|๐Ÿงบ|๐Ÿงป|๐Ÿชฃ|๐Ÿงผ|๐Ÿชฅ|๐Ÿงฝ|๐Ÿงฏ|๐Ÿ›’|๐Ÿšฌ|๐Ÿชฆ|๐Ÿ—ฟ|๐Ÿชง|๐Ÿง|๐Ÿšฎ|๐Ÿšฐ|๐Ÿšน|๐Ÿšบ|๐Ÿšป|๐Ÿšผ|๐Ÿšพ|๐Ÿ›‚|๐Ÿ›ƒ|๐Ÿ›„|๐Ÿ›…|๐Ÿšธ|๐Ÿšซ|๐Ÿšณ|๐Ÿšญ|๐Ÿšฏ|๐Ÿšฑ|๐Ÿšท|๐Ÿ“ต|๐Ÿ”ž|๐Ÿ”ƒ|๐Ÿ”„|๐Ÿ”™|๐Ÿ”š|๐Ÿ”›|๐Ÿ”œ|๐Ÿ”|๐Ÿ›|๐Ÿ•‰|๐Ÿ•Ž|๐Ÿ”ฏ|๐Ÿ”€|๐Ÿ”|๐Ÿ”‚|๐Ÿ”ผ|๐Ÿ”ฝ|๐ŸŽฆ|๐Ÿ”…|๐Ÿ”†|๐Ÿ“ถ|๐Ÿ“ณ|๐Ÿ“ด|๐Ÿ’ฑ|๐Ÿ’ฒ|๐Ÿ”ฑ|๐Ÿ“›|๐Ÿ”ฐ|๐Ÿ”Ÿ|๐Ÿ” |๐Ÿ”ก|๐Ÿ”ข|๐Ÿ”ฃ|๐Ÿ”ค|๐Ÿ…ฐ|๐Ÿ†Ž|๐Ÿ…ฑ|๐Ÿ†‘|๐Ÿ†’|๐Ÿ†“|๐Ÿ†”|๐Ÿ†•|๐Ÿ†–|๐Ÿ…พ|๐Ÿ†—|๐Ÿ…ฟ|๐Ÿ†˜|๐Ÿ†™|๐Ÿ†š|๐Ÿˆ|๐Ÿˆ‚|๐Ÿˆท|๐Ÿˆถ|๐Ÿˆฏ|๐Ÿ‰|๐Ÿˆน|๐Ÿˆš|๐Ÿˆฒ|๐Ÿ‰‘|๐Ÿˆธ|๐Ÿˆด|๐Ÿˆณ|๐Ÿˆบ|๐Ÿˆต|๐Ÿ”ด|๐ŸŸ |๐ŸŸก|๐ŸŸข|๐Ÿ”ต|๐ŸŸฃ|๐ŸŸค|๐ŸŸฅ|๐ŸŸง|๐ŸŸจ|๐ŸŸฉ|๐ŸŸฆ|๐ŸŸช|๐ŸŸซ|๐Ÿ”ถ|๐Ÿ”ท|๐Ÿ”ธ|๐Ÿ”น|๐Ÿ”บ|๐Ÿ”ป|๐Ÿ’ |๐Ÿ”˜|๐Ÿ”ณ|๐Ÿ”ฒ|๐Ÿ|๐Ÿšฉ|๐ŸŽŒ|๐Ÿด|๐Ÿณ|๐Ÿป|๐Ÿผ|๐Ÿฝ|๐Ÿพ|๐Ÿฟ|โ˜บ|โ˜น|โ˜ |โฃ|โค|โœ‹|โœŒ|โ˜|โœŠ|โœ|โ›ท|โ›น|โ˜˜|โ˜•|โ›ฐ|โ›ช|โ›ฉ|โ›ฒ|โ›บ|โ™จ|โ›ฝ|โš“|โ›ต|โ›ด|โœˆ|โŒ›|โณ|โŒš|โฐ|โฑ|โฒ|โ˜€|โญ|โ˜|โ›…|โ›ˆ|โ˜‚|โ˜”|โ›ฑ|โšก|โ„|โ˜ƒ|โ›„|โ˜„|โœจ|โšฝ|โšพ|โ›ณ|โ›ธ|โ™ |โ™ฅ|โ™ฆ|โ™ฃ|โ™Ÿ|โ›‘|โ˜Ž|โŒจ|โœ‰|โœ|โœ’|โœ‚|โ›|โš’|โš”|โš™|โš–|โ›“|โš—|โšฐ|โšฑ|โ™ฟ|โš |โ›”|โ˜ข|โ˜ฃ|โฌ†|โ†—|โžก|โ†˜|โฌ‡|โ†™|โฌ…|โ†–|โ†•|โ†”|โ†ฉ|โ†ช|โคด|โคต|โš›|โœก|โ˜ธ|โ˜ฏ|โœ|โ˜ฆ|โ˜ช|โ˜ฎ|โ™ˆ|โ™‰|โ™Š|โ™‹|โ™Œ|โ™|โ™Ž|โ™|โ™|โ™‘|โ™’|โ™“|โ›Ž|โ–ถ|โฉ|โญ|โฏ|โ—€|โช|โฎ|โซ|โฌ|โธ|โน|โบ|โ|โ™€|โ™‚|โšง|โœ–|โž•|โž–|โž—|โ™พ|โ€ผ|โ‰|โ“|โ”|โ•|โ—|ใ€ฐ|โš•|โ™ป|โšœ|โญ•|โœ…|โ˜‘|โœ”|โŒ|โŽ|โžฐ|โžฟ|ใ€ฝ|โœณ|โœด|โ‡|ยฉ|ยฎ|โ„ข|โ„น|โ“‚|ใŠ—|ใŠ™|โšซ|โšช|โฌ›|โฌœ|โ—ผ|โ—ป|โ—พ|โ—ฝ|โ–ช|โ–ซ)`
/*compile the pattern string into a regex*/
let emoRegex = new RegExp(emojiPattern, "g")
/*extracting the emojis*/
let emojis = [..."This ๐Ÿ˜€๐Ÿ‘ฉโ€โš–๏ธis the ๐Ÿง—โ€โ™€๏ธtext๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ.".matchAll(emoRegex)];
console.log(emojis)
/*count of emojis*/
let emoCount = [..."This ๐Ÿ˜€๐Ÿ‘ฉโ€โš–๏ธis the ๐Ÿง—โ€โ™€๏ธtext๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ.".matchAll(emoRegex)].length
console.log(emoCount)
/*strip emojis from text*/
let stripped = "This ๐Ÿ˜€๐Ÿ‘ฉโ€โš–๏ธis the ๐Ÿง—โ€โ™€๏ธtext๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ.".replaceAll(emoRegex, "")
console.log(stripped)
/*use the pattern string to build a custom regex*/
let customRegex = new RegExp(".*"+emojiPattern+"{3}$") //match a string ending in 3 emojis
console.log(customRegex.test("yep three here ๐Ÿ˜€๐Ÿ‘ฉโ€โš–๏ธ๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ")) //true
console.log(customRegex.test("nope ๐Ÿฅฃ๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ")) //false
You can use regular expression to detect it in input text:
/([\uE000-\uF8FF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF])/g
I wrote the following function: containsEmojis(input, includeBasic=true), which checks an input string for emojis according to the list of emojis defined in the Unicode specification version 13 (see https://unicode.org/Public/emoji/13.0/emoji-sequences.txt), and allows to ignore "basic" emojis that can be represented with only 3 bytes.
The snippet below defines the function and runs a few test cases:
/**
* iterates over the code points of an input string and returns true if an emoji is found.
*
* an emoji is found if the hex code for the character is 5 characters starting with "1F",
* or if #includeBasic is true, the character is 4 and starts with one of the prefixes of
* a basic emoji as defined in the Unicode specification version 13
* see https://unicode.org/Public/emoji/13.0/emoji-sequences.txt
*
* #input the string to check
* #includeBasic include also the basic emojis that only take 3 characters
*/
function containsEmojis(input, includeBasic) {
if (typeof includeBasic == "undefined")
includeBasic = true;
for (var c of input) {
var cHex = ("" + c).codePointAt(0).toString(16);
var lHex = cHex.length;
if (lHex > 3) {
var prefix = cHex.substring(0, 2);
if (lHex == 5 && prefix == "1f") {
return true;
}
if (includeBasic && lHex == 4) {
if (["20", "21", "23", "24", "25", "26", "27", "2B", "29", "30", "32"].indexOf(prefix) > -1)
return true;
}
}
}
return false;
}
// can be tested as follows:
var input;
input = "Hello World!";
console.log(input, containsEmojis(input));
input = "Hello ๐ŸŒŽ!";
console.log(input, containsEmojis(input));
console.log(input, containsEmojis(input, false));
// now try a basic emoji
input = "It sparkles โœจ yay!";
console.log(input, containsEmojis(input));
// pass false for includeBasic
console.log(input, containsEmojis(input, false));
another solution I found that worked for me:
const example = '๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ๐Ÿชฒ';
const regexpEmojiPresentation = /\p{Emoji_Presentation}/gu;
console.log(example.match(regexpEmojiPresentation));
check the emoji like bellow ways
function getEmojiChars(text) {
console.log(text.match(/\ud83c[\udf00-\udfff]|\ud83d[\udc00-\ude4f]|\ud83d[\ude80-\udeff]/g)) ;
}
you will get the array of emoji in the text

What value does a substring have if it doesn't exist?

I have a string, msg. I want to check if the third character in the string exists or not.
I've tried if (msg.substring(3, 4) == undefined) { ... } but this doesn't work. What would the substring be equal to if it does not exist?
The third character of the string exists if the string has three characters, so the check you are looking for is
msg.length >= 3
As to your question about a non-existent substring, you get the empty string, which you can test in a console:
> "dog".substring(8, 13)
''
It's generally worth a mention that indexing and taking the length of characters is fraught with Unicode-related difficulties, because what JavaScript thinks of as a character is not really a character, but a UTF-16 character code. So watch out for:
> "๐Ÿ˜ฌ๐Ÿค”".length
4
> "๐Ÿ˜ฌ๐Ÿค”"[1]
'๏ฟฝ'
> "๐Ÿ˜ฌ๐Ÿค”"[2]
'๏ฟฝ'
> [..."๐Ÿ˜ฌ๐Ÿค”"][1]
'๐Ÿค”'
So if you are looking for better characters do:
[...msg].length >= 3
That will still not work with Unicode grapheme clusters, but it is at least better than taking the actual length of string, which is broken in JavaScript (unless you are dealing with what they call BMP characters).
From the documentation:
Any argument value that is less than 0 or greater than stringName.length is treated as if it were 0 and stringName.length, respectively.
This isn't super intuitive but your example will be an empty string "" (or if the first position has a character and you've added a larger gap, it will be a string that is shorter than the space between indexStart and indexEnd:
const str = 'hi';
console.log(str.substring(1, 4)); // is "i"
You could take a standard property accessor for getting a character or undefined.
const
string0 = '',
string1 = 'a',
string2 = 'ab',
string3 = 'abc',
string4 = 'abcd';
console.log(string0[2]); // undefined
console.log(string1[2]); // undefined
console.log(string2[2]); // undefined
console.log(string3[2]); // c
console.log(string4[2]); // c
If string doesn't contains enough letters substrings doesn't returns nothing. You can try use string as array which return undefined if index doesn't exist.
if ( msg[2] !== undefined ) {}

Regular expression to match certain string pattern

I have string patterns like name1|value1, name1|value1,name2|value2, name1| and name1|value1,. I have to have Regular expression to find the given pattern is true or false
Input and output would be
"name1|value1" -> true
"name1|value1,name2|value2" -> true
"name1|" -> false
"name1|value1," -> false
"name1|value1,name2" -> false
"name1|value1,name2|" -> false
Pretty simple: ^\w+\|\w+(,\w+\|\w+)*$
The first portion, ^\w+\|\w+ looks to make sure the string starts with at least 1 completed name|value pair.
Then the second portion, (,\w+\|\w+)* says that same pattern may repeat infinitely as long as there is a comma between the first pair and all subsequent pairs. (Although, the asterisk quantifies that the second portion of the pattern may not occur at all.)
Finally the $ says that the string must end matching this pattern. (I.e., this pattern cannot only match part of the string. It must match the entire string because of the ^ and $.)
To format this pattern for javascript, simply throw a forward slashes on both ends, so: /^\w+\|\w+(,\w+\|\w+)*$/ The pattern should not require any flags.
It is worth noting, if you need to match more complex names/values that are outside the character range of \w, then you should replace all \ws with [Some Character Set(s)].
If your have multiple pairs to check, you can apply your regex on splitted string elements with an every function:
isValidPairs = function(str) {
return str.split(',').every(function(elt) {
return /^\w+\|\w+$/.test(elt);
});
}
pairsArr = ["nam1|val1", "nam1|val1,name2|val2", "nam1|", "nam1|val1,", "nam1|val1,name", "nam1|val1,name|"];
pairsArr.forEach(function(str) {
console.log('%s: %s:', str, isValidPairs(str));
});

Faster way match characters between strings than Regex?

The use case is I want to compare a query string of characters to an array of words, and return the matches. A match is when a word contains all the characters in the query string, order doesn't matter, repeated characters are okay. Regex seems like it may be too powerful (a sledgehammer where only a hammer is needed). I've written a solution that compares the characters by looping through them and using indexOf, but it seems consistently slower. (http://jsperf.com/indexof-vs-regex-inside-a-loop/10) Is Regex the fastest option for this type of operation? Are there ways to make my alternate solution faster?
var query = "word",
words = ['word', 'wwoorrddss', 'words', 'argument', 'sass', 'sword', 'carp', 'drowns'],
reStoredMatches = [],
indexOfMatches = [];
function match(word, query) {
var len = word.length,
charMatches = [],
charMatch,
char;
while (len--) {
char = word[len];
charMatch = query.indexOf(char);
if (charMatch !== -1) {
charMatches.push(char);
}
}
return charMatches.length === query.length;
}
function linearIndexOf(words, query) {
var wordsLen = words.length,
wordMatch,
word;
while (wordsLen--) {
word = words[wordsLen];
wordMatch = match(word, query);
if (wordMatch) {
indexOfMatches.push(word);
}
}
}
function linearRegexStored(words, query) {
var wordsLen = words.length,
re = new RegExp('[' + query + ']', 'g'),
match,
word;
while (wordsLen--) {
word = words[wordsLen];
match = word.match(re);
if (match !== null) {
if (match.length >= query.length) {
reStoredMatches.push(word);
}
}
}
}
Note that your regex is wrong, that's most certainly why it goes so fast.
Right now, if your query is "word" (as in your example), the regex is going to be:
/[word]/g
This means look for one of the characters: 'w', 'o', 'r', or 'd'. If one matches, then match() returns true. Done. Definitively a lot faster than the most certainly more correct indexOf(). (i.e. in case of a simple match() call the 'g' flag is ignored since if any one thing matches, the function returns true.)
Also, you mention the idea/concept of any number of characters, I suppose as shown here:
'word', 'wwoorrddss'
The indexOf() will definitively not catch that properly if you really mean "any number" for each and every character. Because you should match an infinite number of cases. Something like this as a regex:
/w+o+r+d+s+/g
That you will certainly have a hard time to write the right code in plain JavaScript rather than use a regex. However, either way, that's going to be somewhat slow.
From the comment below, all the letters of the word are required, in order to do that, you have to have 3! tests (3 factorial) for a 3 letter word:
/(a.*b.*c)|(a.*c.*b)|(b.*a.*c)|(b.*c.*a)|(c.*a.*b)|(c.*b.*a)/
Obviously, a factorial is going to very quickly grow your number of possibilities and blow away your memory in a super long regex (although you can simplify if a word has the same letter multiple times, you do not have to test that letter more than once).
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
...
That's probably why your properly written test in plain JavaScript is much slower.
Also, in your case you should write the words nearly as done in Scrabble dictionaries: all letters once in alphabetical order (Scrabble keeps duplicates). So the word "word" would be "dorw". And as you shown in your example, the word "wwoorrddss" would be "dorsw". You can have some backend tool to generate your table of words (so you still write them as "word" and "words", and your tool massage those and convert them to "dorw" and "dorsw".) Then you can sort the letters of the words you are testing in alphabetical order and the result is that you do not need a silly factorial for the regex, you can simply do this:
/d.*o.*r.*w/
And that will match any word that includes the word "word" such as "password".
One easy way to sort the letters will be to split your word in an array of letters, and then sort the array. You may still get duplicates, it will depend on the sort capabilities. (I don't think that the default JavaScript sort will remove duplicates automatically.)
One more detail, if you test is supposed to be case insensitive, then you want to transform your strings to lowercase before running the test. So something like:
query = query.toLowerCase();
early on in your top function.
You are trying to speed up the algorithm "chars in word are a subset of the chars of query." You can short circuit this check and avoid some assignments (that are more readable but not strictly needed). Try the following version of match
function match(word, query) {
var len = word.length;
while (len--) {
if (query.indexOf(word[len]) === -1) { // found a missing char
return false;
}
}
return true; // couldn't find any missing chars
}
This gives a 4-5X improvement
Depending on the application you could try presorting words and presorting each word in words as another optimization.
The regexp match algorithm constructs a finite state automaton and makes its decisions on the current state and character read from left to right. This involves reading each character once and make a decision.
For static strings (to look a fixed string on a couple of text) you have better algorithms, like Knuth-Morris that allow you to go faster than one character at a time, but you must understand that this algorithm is not for matching regular expressions, just plain strings.
if you are interested in Knuth-Morris (there are several other algorithms) just have a round in wikipedia. http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm
A good thing you can do is to investigate if you regexp match routines do it with an DFA or a NDFA, as NDFAs occupy less memory and are easier to compute, but DFAs do it faster, but with some compilation penalties and more memory occupied.
Knuth-Morris algorithm also needs to compile the string into an automaton before working, so perhaps it doesn't apply to your problem if you are using it just to find one word in some string.

Categories

Resources