diff options
author | Tuowen Zhao <ztuowen@gmail.com> | 2022-01-01 02:26:11 -0600 |
---|---|---|
committer | Tuowen Zhao <ztuowen@gmail.com> | 2022-01-01 02:26:11 -0600 |
commit | 49edbf438ed690c76e6b2af80368c59404cf0167 (patch) | |
tree | 129b3adb2f5f39a1329a426a3b7d51ed2c2290c1 | |
parent | 1bc186dabe12b3d01b2257e82f3a104c48b8b3c7 (diff) | |
parent | 78c91ccbf99c77bd4d9cdb74279a40776721f66d (diff) | |
download | zsh-49edbf438ed690c76e6b2af80368c59404cf0167.tar.gz zsh-49edbf438ed690c76e6b2af80368c59404cf0167.tar.bz2 zsh-49edbf438ed690c76e6b2af80368c59404cf0167.zip |
Merge remote-tracking branch 'origin/master'
130 files changed, 36100 insertions, 4799 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6c3eac6e7..0cb9410fc 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,6 +5,7 @@ plugins/genpass/ @atoponce plugins/git-lfs/ @hellovietduc plugins/gitfast/ @felipec plugins/sdk/ @rgoldberg +plugins/shell-proxy/ @septs plugins/universalarchive/ @Konfekt plugins/wp-cli/ @joshmedeski plugins/zoxide/ @ajeetdsouza diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt index 65215c6c3..5c5a04ff1 100644 --- a/.github/actions/spelling/expect.txt +++ b/.github/actions/spelling/expect.txt @@ -22,8 +22,8 @@ acr acroread acs acsc -acss acsp +acss actionformats Adamantium adb @@ -312,6 +312,7 @@ bisd bitboxer bitbucket bitswap +bitwarden blkio blockprofile blockprofilerate @@ -3119,6 +3120,7 @@ rbenv rbenvdirs rbfu RBUFFER +rbw rcfile Rchive rcs @@ -4442,8 +4444,8 @@ zrr zrs zscore zse -zsh'ed zsh +zsh'ed zshaddhistory zshcmd zshcommands diff --git a/lib/cli.zsh b/lib/cli.zsh index 4917bc354..8cf8368e6 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -276,9 +276,10 @@ multi == 1 && length(\$0) > 0 { { print \$0 } " - awk "$awk_script" ~/.zshrc > ~/.zshrc.new \ - && command mv -f ~/.zshrc ~/.zshrc.bck \ - && command mv -f ~/.zshrc.new ~/.zshrc + local zdot="${ZDOTDIR:-$HOME}" + awk "$awk_script" "$zdot/.zshrc" > "$zdot/.zshrc.new" \ + && command mv -f "$zdot/.zshrc" "$zdot/.zshrc.bck" \ + && command mv -f "$zdot/.zshrc.new" "$zdot/.zshrc" # Exit if the new .zshrc file wasn't created correctly [[ $? -eq 0 ]] || { @@ -288,10 +289,10 @@ multi == 1 && length(\$0) > 0 { } # Exit if the new .zshrc file has syntax errors - if ! zsh -n ~/.zshrc; then - _omz::log error "broken syntax in ~/.zshrc. Rolling back changes..." - command mv -f ~/.zshrc ~/.zshrc.new - command mv -f ~/.zshrc.bck ~/.zshrc + if ! zsh -n "$zdot/.zshrc"; then + _omz::log error "broken syntax in '"${zdot/#$HOME/\~}/.zshrc"'. Rolling back changes..." + command mv -f "$zdot/.zshrc" "$zdot/.zshrc.new" + command mv -f "$zdot/.zshrc.bck" "$zdot/.zshrc" return 1 fi @@ -351,9 +352,10 @@ multi == 1 && /^[^#]*\)/ { { print \$0 } " - awk "$awk_script" ~/.zshrc > ~/.zshrc.new \ - && command mv -f ~/.zshrc ~/.zshrc.bck \ - && command mv -f ~/.zshrc.new ~/.zshrc + local zdot="${ZDOTDIR:-$HOME}" + awk "$awk_script" "$zdot/.zshrc" > "$zdot/.zshrc.new" \ + && command mv -f "$zdot/.zshrc" "$zdot/.zshrc.bck" \ + && command mv -f "$zdot/.zshrc.new" "$zdot/.zshrc" # Exit if the new .zshrc file wasn't created correctly [[ $? -eq 0 ]] || { @@ -363,10 +365,10 @@ multi == 1 && /^[^#]*\)/ { } # Exit if the new .zshrc file has syntax errors - if ! zsh -n ~/.zshrc; then - _omz::log error "broken syntax in ~/.zshrc. Rolling back changes..." - command mv -f ~/.zshrc ~/.zshrc.new - command mv -f ~/.zshrc.bck ~/.zshrc + if ! zsh -n "$zdot/.zshrc"; then + _omz::log error "broken syntax in '"${zdot/#$HOME/\~}/.zshrc"'. Rolling back changes..." + command mv -f "$zdot/.zshrc" "$zdot/.zshrc.new" + command mv -f "$zdot/.zshrc.bck" "$zdot/.zshrc" return 1 fi @@ -698,17 +700,18 @@ END { } ' - awk "$awk_script" ~/.zshrc > ~/.zshrc.new \ + local zdot="${ZDOTDIR:-$HOME}" + awk "$awk_script" "$zdot/.zshrc" > "$zdot/.zshrc.new" \ || { # Prepend ZSH_THEME= line to .zshrc if it doesn't exist cat <<EOF ZSH_THEME="$1" # set by \`omz\` EOF - cat ~/.zshrc - } > ~/.zshrc.new \ - && command mv -f ~/.zshrc ~/.zshrc.bck \ - && command mv -f ~/.zshrc.new ~/.zshrc + cat "$zdot/.zshrc" + } > "$zdot/.zshrc.new" \ + && command mv -f "$zdot/.zshrc" "$zdot/.zshrc.bck" \ + && command mv -f "$zdot/.zshrc.new" "$zdot/.zshrc" # Exit if the new .zshrc file wasn't created correctly [[ $? -eq 0 ]] || { @@ -718,10 +721,10 @@ EOF } # Exit if the new .zshrc file has syntax errors - if ! zsh -n ~/.zshrc; then - _omz::log error "broken syntax in ~/.zshrc. Rolling back changes..." - command mv -f ~/.zshrc ~/.zshrc.new - command mv -f ~/.zshrc.bck ~/.zshrc + if ! zsh -n "$zdot/.zshrc"; then + _omz::log error "broken syntax in '"${zdot/#$HOME/\~}/.zshrc"'. Rolling back changes..." + command mv -f "$zdot/.zshrc" "$zdot/.zshrc.new" + command mv -f "$zdot/.zshrc.bck" "$zdot/.zshrc" return 1 fi diff --git a/plugins/aliases/.gitignore b/plugins/aliases/.gitignore new file mode 100644 index 000000000..bee8a64b7 --- /dev/null +++ b/plugins/aliases/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/plugins/aliases/README.md b/plugins/aliases/README.md index 481c1bd4e..bfb6ab8c4 100644 --- a/plugins/aliases/README.md +++ b/plugins/aliases/README.md @@ -1,21 +1,22 @@ -## Aliases Cheatsheet +# Aliases cheatsheet **Maintainer:** [@hqingyi](https://github.com/hqingyi) With lots of 3rd-party amazing aliases installed, this plugin helps list the shortcuts that are currently available based on the plugins you have enabled. -Enable this plugin by adding it to your `plugins` definition in `~/.zshrc`. +To use it, add `aliases` to the plugins array in your zshrc file: - ``` - plugins=(aliases) - ``` +```zsh +plugins=(aliases) +``` Requirements: Python needs to be installed. -### Usage +## Usage -``` - acs: group all alias - acs $keywordquickly filter alias & highlight -``` +- `acs`: show all aliases by group. + +- `acs <keyword>`: filter aliases by `<keyword>` and highlight. + + ![screenshot](https://cloud.githubusercontent.com/assets/3602957/11581913/cb54fb8a-9a82-11e5-846b-5a67f67ad9ad.png) diff --git a/plugins/aliases/aliases.plugin.zsh b/plugins/aliases/aliases.plugin.zsh index 28d8fba24..b3d9340f0 100644 --- a/plugins/aliases/aliases.plugin.zsh +++ b/plugins/aliases/aliases.plugin.zsh @@ -2,9 +2,10 @@ # # - acs: alias cheatsheet # group alias by command, pass addition argv to grep. -ALIASES_PLUGIN_ROOT=$(cd `dirname $0` && pwd) function acs(){ - which python >>/dev/null - [[ $? -eq 1 ]] && echo "[error]no python executable detected!" && return - alias | python $ALIASES_PLUGIN_ROOT/cheatsheet.py $@ + (( $+commands[python] )) || { + echo "[error] No python executable detected" + return + } + alias | python ${functions_source[$0]:h}/cheatsheet.py $@ } diff --git a/plugins/ant/README.md b/plugins/ant/README.md index 5f88984ac..571237223 100644 --- a/plugins/ant/README.md +++ b/plugins/ant/README.md @@ -2,9 +2,9 @@ This plugin provides completion for [Ant](https://ant.apache.org/). -To use it add ant to the plugins array in your zshrc file. +To use it, add `ant` to the plugins array in your zshrc file: -```bash +```zsh plugins=(... ant) ``` diff --git a/plugins/ant/_ant b/plugins/ant/_ant new file mode 100644 index 000000000..24a8e3667 --- /dev/null +++ b/plugins/ant/_ant @@ -0,0 +1,22 @@ +#compdef ant + +_ant_does_target_list_need_generating () { + [[ ! -f .ant_targets ]] && return 0 + [[ build.xml -nt .ant_targets ]] && return 0 + return 1 +} + +_ant () { + if [[ ! -f build.xml ]]; then + return + fi + + if ! _ant_does_target_list_need_generating; then + return + fi + + ant -p | awk -F " " 'NR > 5 { print lastTarget } { lastTarget = $1 }' >| .ant_targets + compadd -- "$(cat .ant_targets)" +} + +_ant "$@" diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh index 0b738c94f..5f6382521 100644 --- a/plugins/ant/ant.plugin.zsh +++ b/plugins/ant/ant.plugin.zsh @@ -1,16 +1,2 @@ -_ant_does_target_list_need_generating () { - [ ! -f .ant_targets ] && return 0; - [ build.xml -nt .ant_targets ] && return 0; - return 1; -} - -_ant () { - if [ -f build.xml ]; then - if _ant_does_target_list_need_generating; then - ant -p | awk -F " " 'NR > 5 { print lastTarget }{lastTarget = $1}' > .ant_targets - fi - compadd -- `cat .ant_targets` - fi -} - -compdef _ant ant +# Default to colored output +export ANT_ARGS='-logger org.apache.tools.ant.listener.AnsiColorLogger' diff --git a/plugins/arcanist/README.md b/plugins/arcanist/README.md index f49e4344b..07e766977 100644 --- a/plugins/arcanist/README.md +++ b/plugins/arcanist/README.md @@ -14,6 +14,7 @@ plugins=(... arcanist) | ------- | ---------------------------------- | | ara | `arc amend` | | arb | `arc branch` | +| arbl | `arc bland` | | arco | `arc cover` | | arci | `arc commit` | | ard | `arc diff` | @@ -24,6 +25,7 @@ plugins=(... arcanist) | ardpc | `arc diff --plan-changes` | | are | `arc export` | | arh | `arc help` | +| arho | `arc hotfix` | | arl | `arc land` | | arli | `arc lint` | | arls | `arc list` | diff --git a/plugins/arcanist/arcanist.plugin.zsh b/plugins/arcanist/arcanist.plugin.zsh index 88e6713e4..380eede75 100644 --- a/plugins/arcanist/arcanist.plugin.zsh +++ b/plugins/arcanist/arcanist.plugin.zsh @@ -5,6 +5,7 @@ alias ara='arc amend' alias arb='arc branch' +alias arbl='arc bland' alias arco='arc cover' alias arci='arc commit' @@ -17,6 +18,7 @@ alias ardp='arc diff --preview' # creates a new diff in the phab interface alias are='arc export' alias arh='arc help' +alias arho='arc hotfix' alias arl='arc land' alias arli='arc lint' alias arls='arc list' diff --git a/plugins/asdf/asdf.plugin.zsh b/plugins/asdf/asdf.plugin.zsh index c386d57ed..3016282c6 100644 --- a/plugins/asdf/asdf.plugin.zsh +++ b/plugins/asdf/asdf.plugin.zsh @@ -2,18 +2,26 @@ ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}" ASDF_COMPLETIONS="$ASDF_DIR/completions" +# If not found, check for archlinux/AUR package (/opt/asdf-vm/) +if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/asdf.bash" ]] && [[ -f "/opt/asdf-vm/asdf.sh" ]]; then + ASDF_DIR="/opt/asdf-vm" + ASDF_COMPLETIONS="$ASDF_DIR" +fi + # If not found, check for Homebrew package if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/asdf.bash" ]] && (( $+commands[brew] )); then - ASDF_DIR="$(brew --prefix asdf)" - ASDF_COMPLETIONS="$ASDF_DIR/etc/bash_completion.d" + brew_prefix="$(brew --prefix asdf)" + ASDF_DIR="${brew_prefix}/libexec" + ASDF_COMPLETIONS="${brew_prefix}/etc/bash_completion.d" + unset brew_prefix fi # Load command if [[ -f "$ASDF_DIR/asdf.sh" ]]; then - . "$ASDF_DIR/asdf.sh" + . "$ASDF_DIR/asdf.sh" - # Load completions - if [[ -f "$ASDF_COMPLETIONS/asdf.bash" ]]; then - . "$ASDF_COMPLETIONS/asdf.bash" - fi + # Load completions + if [[ -f "$ASDF_COMPLETIONS/asdf.bash" ]]; then + . "$ASDF_COMPLETIONS/asdf.bash" + fi fi diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 3117c6da4..8593353b2 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -8,6 +8,7 @@ autojump_paths=( /etc/profile.d/autojump.zsh # manual installation /etc/profile.d/autojump.sh # Gentoo installation /usr/local/share/autojump/autojump.zsh # FreeBSD installation + /usr/pkg/share/autojump/autojump.zsh # NetBSD installation /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) diff --git a/plugins/bazel/_bazel b/plugins/bazel/_bazel index 827ce545c..c34c572b0 100644 --- a/plugins/bazel/_bazel +++ b/plugins/bazel/_bazel @@ -164,7 +164,7 @@ _get_build_targets() { ;; esac completions=(${$(_bazel_b query "kind(\"${rule_re}\", ${pkg}:all)" 2>/dev/null)##*:}) - if ( (( ${#completions} > 0 )) && [[ $target_type != run ]] ); then + if ( (( ${#completions} > 0 )) && [[ $target_type != bin ]] ); then completions+=(all) fi echo ${completions[*]} diff --git a/plugins/bundler/_bundler b/plugins/bundler/_bundler index ba647ab80..51678dd7c 100644 --- a/plugins/bundler/_bundler +++ b/plugins/bundler/_bundler @@ -18,6 +18,7 @@ case $state in "check[Determine whether the requirements for your application are installed]" \ "list[Show all of the gems in the current bundle]" \ "show[Show the source location of a particular gem in the bundle]" \ + "info[Show details of a particular gem in the bundle]" \ "outdated[Show all of the outdated gems in the current bundle]" \ "console[Start an IRB session in the context of the current bundle]" \ "open[Open an installed gem in the editor]" \ @@ -84,7 +85,7 @@ case $state in '(--verbose)--verbose[Enable verbose output mode]' ret=0 ;; - (open|show) + (open|show|info) _gems=( $(bundle show 2> /dev/null | sed -e '/^ \*/!d; s/^ \* \([^ ]*\) .*/\1/') ) if [[ $_gems != "" ]]; then _values 'gems' $_gems && ret=0 diff --git a/plugins/cargo/README.md b/plugins/cargo/README.md index 31bae4efe..93e69ae7f 100644 --- a/plugins/cargo/README.md +++ b/plugins/cargo/README.md @@ -1,11 +1,3 @@ # cargo -This plugin adds completion for the Rust build tool [`Cargo`](https://github.com/rust-lang/cargo). - -To use it, add `cargo` to the plugins array in your zshrc file: - -```zsh -plugins=(... cargo) -``` - -Updated on March 3rd, 2019, from [Cargo 0.34.0](https://github.com/rust-lang/cargo/releases/tag/0.34.0). +**Deprecated: use the [`rust`](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/rust) plugin instead.** diff --git a/plugins/cargo/cargo.plugin.zsh b/plugins/cargo/cargo.plugin.zsh index 7082d2d55..e4b338207 100644 --- a/plugins/cargo/cargo.plugin.zsh +++ b/plugins/cargo/cargo.plugin.zsh @@ -1,23 +1,15 @@ -if (( $+commands[rustup] && $+commands[cargo] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_cargo" - - # generate new completion file - ver="$(cargo --version)" - ver_file="$ZSH_CACHE_DIR/cargo_version" - comp_file="$ZSH_CACHE_DIR/completions/_cargo" - - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) - - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - rustup completions zsh cargo >| "$comp_file" - echo "$ver" >| "$ver_file" - fi - - declare -A _comps - autoload -Uz _cargo - _comps[cargo]=_cargo - - unset ver ver_file comp_file -fi +print ${(%):-'%F{yellow}The `cargo` plugin is deprecated and has been moved to the `rust` plugin.'} +print ${(%):-'Please update your .zshrc to use the `%Brust%b` plugin instead.%f'} + +# TODO: 2021-12-28: remove this block +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" +# Remove old generated completion file +command rm -f "${0:A:h}/_cargo" "$ZSH_CACHE_DIR/cargo_version" + +(( ${fpath[(Ie)$ZSH/plugins/rust]} )) || { + fpath=("$ZSH/plugins/rust" $fpath) + source "$ZSH/plugins/rust/rust.plugin.zsh" +} diff --git a/plugins/colemak/colemak.plugin.zsh b/plugins/colemak/colemak.plugin.zsh index 8d3393c44..e6a46f296 100644 --- a/plugins/colemak/colemak.plugin.zsh +++ b/plugins/colemak/colemak.plugin.zsh @@ -19,6 +19,11 @@ bindkey -a 'N' vi-join bindkey -a 'j' vi-forward-word-end bindkey -a 'J' vi-forward-blank-word-end +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + # New less versions will read this file directly export LESSKEYIN="${0:h:A}/colemak-less" diff --git a/plugins/colored-man-pages/colored-man-pages.plugin.zsh b/plugins/colored-man-pages/colored-man-pages.plugin.zsh index 37faed672..087ddce97 100644 --- a/plugins/colored-man-pages/colored-man-pages.plugin.zsh +++ b/plugins/colored-man-pages/colored-man-pages.plugin.zsh @@ -16,6 +16,11 @@ less_termcap[se]="${reset_color}" less_termcap[us]="${fg_bold[green]}" less_termcap[ue]="${reset_color}" +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + # Absolute path to this file's directory. typeset __colored_man_pages_dir="${0:A:h}" diff --git a/plugins/common-aliases/README.md b/plugins/common-aliases/README.md index b6f34cb54..0354c7a3f 100644 --- a/plugins/common-aliases/README.md +++ b/plugins/common-aliases/README.md @@ -12,51 +12,53 @@ plugins=(... common-aliases) ### ls command -| Alias | Command | Description | -|-------|---------------|--------------------------------------------------------------------------------| -| l | `ls -lFh` | List files as a long list, show size, type, human-readable | -| la | `ls -lAFh` | List almost all files as a long list show size, type, human-readable | -| lr | `ls -tRFh` | List files recursively sorted by date, show type, human-readable | -| lt | `ls -ltFh` | List files as a long list sorted by date, show type, human-readable | -| ll | `ls -l` | List files as a long list | -| ldot | `ls -ld .*` | List dot files as a long list | -| lS | `ls -1FSsh` | List files showing only size and name sorted by size | -| lart | `ls -1Fcart` | List all files sorted in reverse of create/modification time (oldest first) | -| lrt | `ls -1Fcrt` | List files sorted in reverse of create/modification time(oldest first) | +| Alias | Command | Description | +| ----- | ------------ | --------------------------------------------------------------------------- | +| l | `ls -lFh` | List files as a long list, show size, type, human-readable | +| la | `ls -lAFh` | List almost all files as a long list show size, type, human-readable | +| lr | `ls -tRFh` | List files recursively sorted by date, show type, human-readable | +| lt | `ls -ltFh` | List files as a long list sorted by date, show type, human-readable | +| ll | `ls -l` | List files as a long list | +| ldot | `ls -ld .*` | List dot files as a long list | +| lS | `ls -1FSsh` | List files showing only size and name sorted by size | +| lart | `ls -1Fcart` | List all files sorted in reverse of create/modification time (oldest first) | +| lrt | `ls -1Fcrt` | List files sorted in reverse of create/modification time(oldest first) | +| lsr | `ls -lARFh` | List all files and directories recursively | +| lsn | `ls -1` | List files and directories in a single column | ### File handling -| Alias | Command | Description | -|-------|-----------------------|------------------------------------------------------------------------------------| -| rm | `rm -i` | Remove a file | -| cp | `cp -i` | Copy a file | -| mv | `mv -i` | Move a file | -| zshrc | `${=EDITOR} ~/.zshrc` | Quickly access the ~/.zshrc file | -| dud | `du -d 1 -h` | Display the size of files at depth 1 in current location in human-readable form | -| duf | `du -sh` | Display the size of files in current location in human-readable form | -| t | `tail -f` | Shorthand for tail which outputs the last part of a file | +| Alias | Command | Description | +| ----- | --------------------- | ------------------------------------------------------------------------------- | +| rm | `rm -i` | Remove a file | +| cp | `cp -i` | Copy a file | +| mv | `mv -i` | Move a file | +| zshrc | `${=EDITOR} ~/.zshrc` | Quickly access the ~/.zshrc file | +| dud | `du -d 1 -h` | Display the size of files at depth 1 in current location in human-readable form | +| duf | `du -sh` | Display the size of files in current location in human-readable form | +| t | `tail -f` | Shorthand for tail which outputs the last part of a file | ### find and grep -| Alias | Command | Description | -|-------|-----------------------------------------------------|-----------------------------------------| -| fd\* | `find . -type d -name` | Find a directory with the given name | -| ff | `find . -type f -name` | Find a file with the given name | -| grep | `grep --color` | Searches for a query string | -| sgrep | `grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS}` | Useful for searching within files | +| Alias | Command | Description | +| ----- | -------------------------------------------------- | ------------------------------------ | +| fd\* | `find . -type d -name` | Find a directory with the given name | +| ff | `find . -type f -name` | Find a file with the given name | +| grep | `grep --color` | Searches for a query string | +| sgrep | `grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS}` | Useful for searching within files | \* Only if the [`fd`](https://github.com/sharkdp/fd) command isn't installed. ### Other Aliases -| Alias | Command | Description | -|-----------|---------------------|-------------------------------------------------------------| -| h | `history` | Lists all recently used commands | -| hgrep | `fc -El 0 \| grep` | Searches for a word in the list of previously used commands | -| help | `man` | Opens up the man page for a command | -| p | `ps -f` | Displays currently executing processes | -| sortnr | `sort -n -r` | Used to sort the lines of a text file | -| unexport | `unset` | Used to unset an environment variable | +| Alias | Command | Description | +| -------- | ------------------ | ----------------------------------------------------------- | +| h | `history` | Lists all recently used commands | +| hgrep | `fc -El 0 \| grep` | Searches for a word in the list of previously used commands | +| help | `man` | Opens up the man page for a command | +| p | `ps -f` | Displays currently executing processes | +| sortnr | `sort -n -r` | Used to sort the lines of a text file | +| unexport | `unset` | Used to unset an environment variable | ## Global aliases @@ -77,7 +79,7 @@ $ find . -type f 2>/dev/null ``` | Alias | Command | Description | -|-------|-----------------------------|-------------------------------------------------------------| +| ----- | --------------------------- | ----------------------------------------------------------- | | H | `\| head` | Pipes output to head which outputs the first part of a file | | T | `\| tail` | Pipes output to tail which outputs the last part of a file | | G | `\| grep` | Pipes output to grep to search for some word | @@ -97,23 +99,23 @@ that file will be open with `acroread`. ### Reading Docs -| Alias | Command | Description | -|-------|-------------|-------------------------------------| -| pdf | `acroread` | Opens up a document using acroread | -| ps | `gv` | Opens up a .ps file using gv | -| dvi | `xdvi` | Opens up a .dvi file using xdvi | -| chm | `xchm` | Opens up a .chm file using xchm | -| djvu | `djview` | Opens up a .djvu file using djview | +| Alias | Command | Description | +| ----- | ---------- | ---------------------------------- | +| pdf | `acroread` | Opens up a document using acroread | +| ps | `gv` | Opens up a .ps file using gv | +| dvi | `xdvi` | Opens up a .dvi file using xdvi | +| chm | `xchm` | Opens up a .chm file using xchm | +| djvu | `djview` | Opens up a .djvu file using djview | ### Listing files inside a packed file -| Alias | Command | Description | -|---------|-------------|-------------------------------------| -| zip | `unzip -l` | Lists files inside a .zip file | -| rar | `unrar l` | Lists files inside a .rar file | -| tar | `tar tf` | Lists files inside a .tar file | -| tar.gz | `echo` | Lists files inside a .tar.gz file | -| ace | `unace l` | Lists files inside a .ace file | +| Alias | Command | Description | +| ------ | ---------- | --------------------------------- | +| zip | `unzip -l` | Lists files inside a .zip file | +| rar | `unrar l` | Lists files inside a .rar file | +| tar | `tar tf` | Lists files inside a .tar file | +| tar.gz | `echo` | Lists files inside a .tar.gz file | +| ace | `unace l` | Lists files inside a .ace file | ### Some other features diff --git a/plugins/common-aliases/common-aliases.plugin.zsh b/plugins/common-aliases/common-aliases.plugin.zsh index 4e5ff848f..8b58b6310 100644 --- a/plugins/common-aliases/common-aliases.plugin.zsh +++ b/plugins/common-aliases/common-aliases.plugin.zsh @@ -12,6 +12,8 @@ alias ldot='ls -ld .*' alias lS='ls -1FSsh' alias lart='ls -1Fcart' alias lrt='ls -1Fcrt' +alias lsr='ls -lARFh' #Recursive list of files and directories +alias lsn='ls -1' #A column contains name of files and directories alias zshrc='${=EDITOR} ${ZDOTDIR:-$HOME}/.zshrc' # Quick access to the .zshrc file diff --git a/plugins/composer/README.md b/plugins/composer/README.md index 7a5f7256e..ad6ed24bc 100644 --- a/plugins/composer/README.md +++ b/plugins/composer/README.md @@ -10,22 +10,26 @@ To use it add `composer` to the plugins array in your zshrc file. plugins=(... composer) ``` +Original author: Daniel Gomes <me@danielcsgomes.com> + ## Aliases -| Alias | Command | Description | -| ------ | ------------------------------------------- | --------------------------------------------------------------------------------------- | -| `c` | `composer` | Starts composer | -| `csu` | `composer self-update` | Updates composer to the latest version | -| `cu` | `composer update` | Updates composer dependencies and `composer.lock` file | -| `cr` | `composer require` | Adds new packages to `composer.json` | -| `crm` | `composer remove` | Removes packages from `composer.json` | -| `ci` | `composer install` | Resolves and installs dependencies from `composer.json` | -| `ccp` | `composer create-project` | Create new project from an existing package | -| `cdu` | `composer dump-autoload` | Updates the autoloader | -| `cdo` | `composer dump-autoload -o` | Converts PSR-0/4 autoloading to classmap for a faster autoloader (good for production) | -| `cgu` | `composer global update` | Allows update command to run on COMPOSER_HOME directory | -| `cgr` | `composer global require` | Allows require command to run on COMPOSER_HOME directory | -| `cgrm` | `composer global remove` | Allows remove command to run on COMPOSER_HOME directory | -| `cget` | `curl -s https://getcomposer.org/installer` | Installs composer in the current directory | -| `co` | `composer outdated` | Shows a list of installed packages with available updates | -| `cod` | `composer outdated --direct` | Shows a list of installed packages with available updates which are direct dependencies | +| Alias | Command | Description | +| ------ | ---------------------------------- | --------------------------------------------------------------------------------------- | +| `c` | `composer` | Starts composer | +| `ccp` | `composer create-project` | Create new project from an existing package | +| `cdo` | `composer dump-autoload -o` | Converts PSR-0/4 autoloading to classmap for a faster autoloader (good for production) | +| `cdu` | `composer dump-autoload` | Updates the autoloader | +| `cget` | `curl -s <installer> \| php` | Installs composer in the current directory | +| `cgr` | `composer global require` | Allows require command to run on COMPOSER_HOME directory | +| `cgrm` | `composer global remove` | Allows remove command to run on COMPOSER_HOME directory | +| `cgu` | `composer global update` | Allows update command to run on COMPOSER_HOME directory | +| `ci` | `composer install` | Resolves and installs dependencies from `composer.json` | +| `co` | `composer outdated` | Shows a list of installed packages with available updates | +| `cod` | `composer outdated --direct` | Shows a list of installed packages with available updates which are direct dependencies | +| `cr` | `composer require` | Adds new packages to `composer.json` | +| `crm` | `composer remove` | Removes packages from `composer.json` | +| `cs` | `composer show` | Lists available packages, with optional filtering | +| `csu` | `composer self-update` | Updates composer to the latest version | +| `cu` | `composer update` | Updates composer dependencies and `composer.lock` file | +| `cuh` | `composer update -d <config-home>` | Updates globally installed packages | diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index 218a13e5f..dd0b18e27 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -1,70 +1,76 @@ -# ------------------------------------------------------------------------------ -# FILE: composer.plugin.zsh -# DESCRIPTION: oh-my-zsh composer plugin file. -# AUTHOR: Daniel Gomes (me@danielcsgomes.com) -# VERSION: 1.0.0 -# ------------------------------------------------------------------------------ - -# Composer basic command completion -_composer_get_command_list () { - $_comp_command1 --no-ansi 2>/dev/null | sed "1,/Available commands/d" | awk '/^[ \t]*[a-z]+/ { print $1 }' -} - -_composer_get_required_list () { - $_comp_command1 show -s --no-ansi 2>/dev/null | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }' -} - -_composer () { +## Basic Composer command completion +# Since Zsh 5.7, an improved composer command completion is provided +if ! is-at-least 5.7; then + _composer () { local curcontext="$curcontext" state line typeset -A opt_args - _arguments \ - '*:: :->subcmds' + _arguments '*:: :->subcmds' - if (( CURRENT == 1 )) || ( ((CURRENT == 2)) && [ "$words[1]" = "global" ] ) ; then - compadd $(_composer_get_command_list) + if (( CURRENT == 1 )) || ( (( CURRENT == 2 )) && [[ "$words[1]" = "global" ]] ); then + # Command list + local -a subcmds + subcmds=("${(@f)"$($_comp_command1 --no-ansi 2>/dev/null | awk ' + /Available commands/{ r=1 } + r == 1 && /^[ \t]*[a-z]+/{ + gsub(/^[ \t]+/, "") + gsub(/ +/, ":") + print $0 + } + ')"}") + _describe -t commands 'composer command' subcmds else - compadd $(_composer_get_required_list) + # Required list + compadd $($_comp_command1 show -s --no-ansi 2>/dev/null \ + | sed '1,/requires/d' \ + | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }') fi -} + } -compdef _composer composer -compdef _composer composer.phar + compdef _composer composer + compdef _composer composer.phar +fi -# Aliases + +## Aliases alias c='composer' -alias csu='composer self-update' -alias cu='composer update' -alias cr='composer require' -alias crm='composer remove' -alias ci='composer install' alias ccp='composer create-project' -alias cdu='composer dump-autoload' alias cdo='composer dump-autoload -o' -alias cgu='composer global update' +alias cdu='composer dump-autoload' +alias cget='curl -s https://getcomposer.org/installer | php' alias cgr='composer global require' alias cgrm='composer global remove' +alias cgu='composer global update' +alias ci='composer install' alias co='composer outdated' alias cod='composer outdated --direct' +alias cr='composer require' +alias crm='composer remove' +alias cs='composer show' +alias csu='composer self-update' +alias cu='composer update' +alias cuh='composer update --working-dir=$(composer config -g home)' -# install composer in the current directory -alias cget='curl -s https://getcomposer.org/installer | php' -# Add Composer's global binaries to PATH, using Composer if available. -if (( $+commands[composer] )); then - autoload -Uz _store_cache _retrieve_cache _cache_invalid +## If Composer not found, try to add known directories to $PATH +if (( ! $+commands[composer] )); then + [[ -d "$HOME/.composer/vendor/bin" ]] && export PATH="$PATH:$HOME/.composer/vendor/bin" + [[ -d "$HOME/.config/composer/vendor/bin" ]] && export PATH="$PATH:$HOME/.config/composer/vendor/bin" - _retrieve_cache composer + # If still not found, don't do the rest of the script + (( $+commands[composer] )) || return 0 +fi - if [[ -z $__composer_bin_dir ]]; then - __composer_bin_dir=$(composer global config bin-dir --absolute 2>/dev/null) - _store_cache composer __composer_bin_dir - fi - # Add Composer's global binaries to PATH - export PATH="$PATH:$__composer_bin_dir" +## Add Composer's global binaries to PATH +autoload -Uz _store_cache _retrieve_cache _cache_invalid +_retrieve_cache composer - unset __composer_bin_dir -else - [ -d $HOME/.composer/vendor/bin ] && export PATH=$PATH:$HOME/.composer/vendor/bin - [ -d $HOME/.config/composer/vendor/bin ] && export PATH=$PATH:$HOME/.config/composer/vendor/bin +if [[ -z $__composer_bin_dir ]]; then + __composer_bin_dir=$(composer global config bin-dir --absolute 2>/dev/null) + _store_cache composer __composer_bin_dir fi + +# Add Composer's global binaries to PATH +export PATH="$PATH:$__composer_bin_dir" + +unset __composer_bin_dir diff --git a/plugins/debian/README.md b/plugins/debian/README.md index 922d68cb3..2ce206cfb 100644 --- a/plugins/debian/README.md +++ b/plugins/debian/README.md @@ -33,20 +33,22 @@ Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh | Alias | Command | Description | | -------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | | `aac` | `sudo $apt_pref autoclean` | Clears out the local repository of retrieved package files | +| `aar` | `sudo $apt_pref autoremove` | Removes packages installed automatically that are no longer needed | | `abd` | `sudo $apt_pref build-dep` | Installs all dependencies for building packages | | `ac` | `sudo $apt_pref clean` | Clears out the local repository of retrieved package files except lock files | | `ad` | `sudo $apt_pref update` | Updates the package lists for upgrades for packages | | `adg` | `sudo $apt_pref update && sudo $apt_pref $apt_upgr` | Update and upgrade packages | +| `ads` | `sudo apt-get dselect-upgrade` | Installs packages from list and removes all not in the list | | `adu` | `sudo $apt_pref update && sudo $apt_pref dist-upgrade` | Smart upgrade that handles dependencies | | `afu` | `sudo apt-file update` | Update the files in packages | -| `au` | `sudo $apt_pref $apt_upgr` | Install package upgrades | | `ai` | `sudo $apt_pref install` | Command-line tool to install package | | `ail` | `sed -e 's/ */ /g' -e 's/ *//' \| cut -s -d ' ' -f 1 \| xargs sudo $apt_pref install` | Install all packages given on the command line while using only the first word of each line | +| `alu` | `sudo apt update && apt list -u && sudo apt upgrade` | Update, list and upgrade packages | | `ap` | `sudo $apt_pref purge` | Removes packages along with configuration files | | `ar` | `sudo $apt_pref remove` | Removes packages, keeps the configuration files | -| `ads` | `sudo apt-get dselect-upgrade` | Installs packages from list and removes all not in the list | -| `dia` | `sudo dpkg -i ./*.deb` | Install all .deb files in the current directory | +| `au` | `sudo $apt_pref $apt_upgr` | Install package upgrades | | `di` | `sudo dpkg -i` | Install all .deb files in the current directory | +| `dia` | `sudo dpkg -i ./*.deb` | Install all .deb files in the current directory | | `kclean` | `sudo aptitude remove -P ?and(~i~nlinux-(ima\|hea) ?not(~n$(uname -r)))` | Remove ALL kernel images and headers EXCEPT the one in use | ## Aliases - Commands using `su` @@ -54,6 +56,7 @@ Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh | Alias | Command | | ----- | --------------------------------------------------------- | | `aac` | `su -ls "$apt_pref autoclean" root` | +| `aar` | `su -ls "$apt_pref autoremove" root` | | `ac` | `su -ls "$apt_pref clean" root` | | `ad` | `su -lc "$apt_pref update" root` | | `adg` | `su -lc "$apt_pref update && aptitude $apt_upgr" root` | @@ -75,8 +78,8 @@ Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh | ------------------- | --------------------------------------------------------------- | | `apt-copy` | Create a simple script that can be used to 'duplicate' a system | | `apt-history` | Displays apt history for a command | -| `kerndeb` | Builds kernel packages | | `apt-list-packages` | List packages by size | +| `kerndeb` | Builds kernel packages | ## Authors diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index bde97cd30..e4db8fe33 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -52,13 +52,18 @@ if [[ $use_sudo -eq 1 ]]; then alias ai="sudo $apt_pref install" # Install all packages given on the command line while using only the first word of each line: # acs ... | ail + alias ail="sed -e 's/ */ /g' -e 's/ *//' | cut -s -d ' ' -f 1 | xargs sudo $apt_pref install" alias ap="sudo $apt_pref purge" alias ar="sudo $apt_pref remove" + alias aar="sudo $apt_pref autoremove" # apt-get only alias ads="sudo apt-get dselect-upgrade" + # apt only + alias alu="sudo apt update && apt list -u && sudo apt upgrade" + # Install all .deb files in the current directory. # Warning: you will need to put the glob in single quotes if you use: # glob_subst @@ -98,7 +103,11 @@ else print "$cmd" eval "$cmd" } - + function aar() { + cmd="su -lc '$apt_pref -P autoremove $@' root" + print "$cmd" + eval "$cmd" + } # Install all .deb files in the current directory # Assumes glob_subst is off alias dia='su -lc "dpkg -i ./*.deb" root' @@ -139,6 +148,7 @@ apt_pref_compdef ai "install" apt_pref_compdef ail "install" apt_pref_compdef ap "purge" apt_pref_compdef ar "remove" +apt_pref_compdef aar "autoremove" apt_pref_compdef ads "dselect-upgrade" # Misc. ##################################################################### diff --git a/plugins/deno/deno.plugin.zsh b/plugins/deno/deno.plugin.zsh index eb7191971..77c2125d2 100644 --- a/plugins/deno/deno.plugin.zsh +++ b/plugins/deno/deno.plugin.zsh @@ -12,25 +12,29 @@ alias dts='deno test' alias dup='deno upgrade' # COMPLETION FUNCTION -if (( $+commands[deno] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_deno" - - ver="$(deno --version)" - ver_file="$ZSH_CACHE_DIR/deno_version" - comp_file="$ZSH_CACHE_DIR/completions/_deno" +if (( ! $+commands[deno] )); then + return +fi - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) +# TODO: 2021-12-28: remove this block +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" +# Remove old generated files +command rm -f "${0:A:h}/_deno" "$ZSH_CACHE_DIR/deno_version" - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - deno completions zsh >| "$comp_file" - echo "$ver" >| "$ver_file" - fi +# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh +# Add completions folder in $ZSH_CACHE_DIR +command mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `deno`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_deno" ]]; then declare -A _comps autoload -Uz _deno _comps[deno]=_deno - - unset ver ver_file comp_file fi + +deno completions zsh >| "$ZSH_CACHE_DIR/completions/_deno" &| diff --git a/plugins/dirhistory/dirhistory.plugin.zsh b/plugins/dirhistory/dirhistory.plugin.zsh index 8268147f6..7021fc03a 100644 --- a/plugins/dirhistory/dirhistory.plugin.zsh +++ b/plugins/dirhistory/dirhistory.plugin.zsh @@ -121,31 +121,39 @@ function dirhistory_zle_dirhistory_future() { } zle -N dirhistory_zle_dirhistory_back -bindkey "\e[3D" dirhistory_zle_dirhistory_back # xterm in normal mode -bindkey "\e[1;3D" dirhistory_zle_dirhistory_back # xterm in normal mode -bindkey "\e\e[D" dirhistory_zle_dirhistory_back # Putty -bindkey "\eO3D" dirhistory_zle_dirhistory_back # GNU screen -case "$TERM_PROGRAM" in -iTerm.app) bindkey "^[^[[D" dirhistory_zle_dirhistory_back ;; # iTerm2 -Apple_Terminal) bindkey "^[b" dirhistory_zle_dirhistory_back ;; # Terminal.app -esac -if (( ${+terminfo[kcub1]} )); then - bindkey "^[${terminfo[kcub1]}" dirhistory_zle_dirhistory_back # urxvt -fi - zle -N dirhistory_zle_dirhistory_future -bindkey "\e[3C" dirhistory_zle_dirhistory_future # xterm in normal mode -bindkey "\e[1;3C" dirhistory_zle_dirhistory_future # xterm in normal mode -bindkey "\e\e[C" dirhistory_zle_dirhistory_future # Putty -bindkey "\eO3C" dirhistory_zle_dirhistory_future # GNU screen -case "$TERM_PROGRAM" in -iTerm.app) bindkey "^[^[[C" dirhistory_zle_dirhistory_future ;; # iTerm2 -Apple_Terminal) bindkey "^[f" dirhistory_zle_dirhistory_future ;; # Terminal.app -esac -if (( ${+terminfo[kcuf1]} )); then - bindkey "^[${terminfo[kcuf1]}" dirhistory_zle_dirhistory_future # urxvt -fi +for keymap in emacs vicmd viins; do + # dirhistory_back + bindkey -M $keymap "\e[3D" dirhistory_zle_dirhistory_back # xterm in normal mode + bindkey -M $keymap "\e[1;3D" dirhistory_zle_dirhistory_back # xterm in normal mode + bindkey -M $keymap "\e\e[D" dirhistory_zle_dirhistory_back # Putty + bindkey -M $keymap "\eO3D" dirhistory_zle_dirhistory_back # GNU screen + + case "$TERM_PROGRAM" in + Apple_Terminal) bindkey -M $keymap "^[b" dirhistory_zle_dirhistory_back ;; # Terminal.app + iTerm.app) bindkey -M $keymap "^[^[[D" dirhistory_zle_dirhistory_back ;; # iTerm2 + esac + + if (( ${+terminfo[kcub1]} )); then + bindkey -M $keymap "^[${terminfo[kcub1]}" dirhistory_zle_dirhistory_back # urxvt + fi + + # dirhistory_future + bindkey -M $keymap "\e[3C" dirhistory_zle_dirhistory_future # xterm in normal mode + bindkey -M $keymap "\e[1;3C" dirhistory_zle_dirhistory_future # xterm in normal mode + bindkey -M $keymap "\e\e[C" dirhistory_zle_dirhistory_future # Putty + bindkey -M $keymap "\eO3C" dirhistory_zle_dirhistory_future # GNU screen + + case "$TERM_PROGRAM" in + Apple_Terminal) bindkey -M $keymap "^[f" dirhistory_zle_dirhistory_future ;; # Terminal.app + iTerm.app) bindkey -M $keymap "^[^[[C" dirhistory_zle_dirhistory_future ;; # iTerm2 + esac + + if (( ${+terminfo[kcuf1]} )); then + bindkey -M $keymap "^[${terminfo[kcuf1]}" dirhistory_zle_dirhistory_future # urxvt + fi +done # # HIERARCHY Implemented in this section, in case someone wants to split it to another plugin if it clashes bindings @@ -176,27 +184,38 @@ function dirhistory_zle_dirhistory_down() { } zle -N dirhistory_zle_dirhistory_up -bindkey "\e[3A" dirhistory_zle_dirhistory_up # xterm in normal mode -bindkey "\e[1;3A" dirhistory_zle_dirhistory_up # xterm in normal mode -bindkey "\e\e[A" dirhistory_zle_dirhistory_up # Putty -bindkey "\eO3A" dirhistory_zle_dirhistory_up # GNU screen -case "$TERM_PROGRAM" in -iTerm.app) bindkey "^[^[[A" dirhistory_zle_dirhistory_up ;; # iTerm2 -Apple_Terminal) bindkey "^[[A" dirhistory_zle_dirhistory_up ;; # Terminal.app -esac -if (( ${+terminfo[kcuu1]} )); then - bindkey "^[${terminfo[kcuu1]}" dirhistory_zle_dirhistory_up # urxvt -fi - zle -N dirhistory_zle_dirhistory_down -bindkey "\e[3B" dirhistory_zle_dirhistory_down # xterm in normal mode -bindkey "\e[1;3B" dirhistory_zle_dirhistory_down # xterm in normal mode -bindkey "\e\e[B" dirhistory_zle_dirhistory_down # Putty -bindkey "\eO3B" dirhistory_zle_dirhistory_down # GNU screen -case "$TERM_PROGRAM" in -iTerm.app) bindkey "^[^[[B" dirhistory_zle_dirhistory_down ;; # iTerm2 -Apple_Terminal) bindkey "^[[B" dirhistory_zle_dirhistory_down ;; # Terminal.app -esac -if (( ${+terminfo[kcud1]} )); then - bindkey "^[${terminfo[kcud1]}" dirhistory_zle_dirhistory_down # urxvt -fi + +for keymap in emacs vicmd viins; do + # dirhistory_up + bindkey -M $keymap "\e[3A" dirhistory_zle_dirhistory_up # xterm in normal mode + bindkey -M $keymap "\e[1;3A" dirhistory_zle_dirhistory_up # xterm in normal mode + bindkey -M $keymap "\e\e[A" dirhistory_zle_dirhistory_up # Putty + bindkey -M $keymap "\eO3A" dirhistory_zle_dirhistory_up # GNU screen + + case "$TERM_PROGRAM" in + Apple_Terminal) bindkey -M $keymap "^[[A" dirhistory_zle_dirhistory_up ;; # Terminal.app + iTerm.app) bindkey -M $keymap "^[^[[A" dirhistory_zle_dirhistory_up ;; # iTerm2 + esac + + if (( ${+terminfo[kcuu1]} )); then + bindkey -M $keymap "^[${terminfo[kcuu1]}" dirhistory_zle_dirhistory_up # urxvt + fi + + # dirhistory_down + bindkey -M $keymap "\e[3B" dirhistory_zle_dirhistory_down # xterm in normal mode + bindkey -M $keymap "\e[1;3B" dirhistory_zle_dirhistory_down # xterm in normal mode + bindkey -M $keymap "\e\e[B" dirhistory_zle_dirhistory_down # Putty + bindkey -M $keymap "\eO3B" dirhistory_zle_dirhistory_down # GNU screen + + case "$TERM_PROGRAM" in + Apple_Terminal) bindkey -M $keymap "^[[B" dirhistory_zle_dirhistory_down ;; # Terminal.app + iTerm.app) bindkey -M $keymap "^[^[[B" dirhistory_zle_dirhistory_down ;; # iTerm2 + esac + + if (( ${+terminfo[kcud1]} )); then + bindkey -M $keymap "^[${terminfo[kcud1]}" dirhistory_zle_dirhistory_down # urxvt + fi +done + +unset keymap diff --git a/plugins/drush/README.md b/plugins/drush/README.md index df7b82bdd..29b429e3b 100644 --- a/plugins/drush/README.md +++ b/plugins/drush/README.md @@ -1,83 +1,66 @@ # Drush -## Description -This plugin offers aliases and functions to make the work with drush easier and more productive. +This plugin adds aliases and functions for [Drush](https://www.drush.org), a command-line shell +and Unix scripting interface for Drupal. It also adds completion for the `drush` command. -To enable it, add the `drush` to your `plugins` array in `~/.zshrc`: +To enable it, add `drush` to the plugins array in zshrc file: -``` +```zsh plugins=(... drush) ``` ## Aliases -| Alias | Description | Command | -|-------|-----------------------------------------------------------------------|-----------------------------| -| dr | Display drush help | drush | -| drca | Clear all drupal caches. | drush cc all | -| drcb | Clear block cache. | drush cc block | -| drcg | Clear registry cache. | drush cc registry | -| drcj | Clear css-js cache. | drush cc css-js | -| drcm | Clear menu cache. | drush cc menu | -| drcml | Clear module-list cache. | drush cc module-list | -| drcr | Run all cron hooks in all active modules for specified site. | drush core-cron | -| drct | Clear theme-registry cache. | drush cc theme-registry | -| drcv | Clear views cache. (Make sure that the views module is enabled) | drush cc views | -| drdmp | Backup database in a new dump.sql file | drush drush sql-dump --ordered-dump --result-file=dump.sql| -| drf | Display features status | drush features | -| drfr | Revert a feature module on your site. | drush features-revert -y | -| drfu | Update a feature module on your site. | drush features-update -y | -| drfra | Revert all enabled feature module on your site. | drush features-revert-all | -| drif | Flush all derived images. | drush image-flush --all | -| drpm | Show a list of available modules. | drush pm-list --type=module | -| drst | Provides a birds-eye view of the current Drupal installation, if any. | drush core-status | -| drup | Apply any database updates required (as with running update.php). | drush updatedb | -| drups | List any pending database updates. | drush updatedb-status | -| drv | Show drush version. | drush version | -| drvd | Delete a variable. | drush variable-del | -| drvg | Get a list of some or all site variables and values. | drush variable-get | -| drvs | Set a variable. | drush variable-set | - -## Functions -### dren -Download and enable one or more extensions (modules or themes). -Must be invoked with one or more parameters. e.g.: -`dren devel` or `dren devel module_filter views` +| Alias | Command | Description | +| ------- | ----------------------------------------------------------- | -------------------------------------------------------------------- | +| `dr` | `drush` | Display drush help | +| `drca` | `drush cc all` | _(Deprecated in Drush 8)_ Clear all drupal caches | +| `drcb` | `drush cc block` | _(Deprecated in Drush 8)_ Clear block cache | +| `drcex` | `drush config:export -y` | Export Drupal configuration to a directory | +| `drcg` | `drush cc registry` | _(Deprecated in Drush 8)_ Clear registry cache | +| `drcim` | `drush config:import -y` | Import config from a config directory | +| `drcj` | `drush cc css-js` | Clear css-js cache | +| `drcm` | `drush cc menu` | Clear menu cache | +| `drcml` | `drush cc module-list` | Clear module-list cache | +| `drcr` | `drush core-cron` | Run all cron hooks in all active modules for specified site | +| `drct` | `drush cc theme-registry` | Clear theme-registry cache | +| `drcv` | `drush cc views` | Clear views cache _(make sure that the views module is enabled)_ | +| `drdmp` | `drush drush sql-dump --ordered-dump --result-file=dumpsql` | Backup database in a new dump.sql file | +| `drf` | `drush features` | Display features status | +| `drfr` | `drush features-revert -y` | Revert a feature module on your site | +| `drfra` | `drush features-revert-all` | Revert all enabled feature module on your site | +| `drfu` | `drush features-update -y` | Update a feature module on your site | +| `drif` | `drush image-flush --all` | Flush all derived images | +| `drpm` | `drush pm-list --type=module` | Show a list of available modules | +| `drst` | `drush core-status` | Provides a birds-eye view of the current Drupal installation, if any | +| `druli` | `drush user:login` | Display a one time login link for user ID 1, or another user | +| `drup` | `drush updatedb` | Apply any database updates required (as with running update.php) | +| `drups` | `drush updatedb-status` | List any pending database updates | +| `drv` | `drush version` | Show drush version | +| `drvd` | `drush variable-del` | Delete a variable | +| `drvg` | `drush variable-get` | Get a list of some or all site variables and values | +| `drvs` | `drush variable-set` | Set a variable | +| `drws` | `drush watchdog:show` | Show watchdog messages | +| `drwse` | `drush watchdog:show --extended` | Show watchdog messages with extended information | +| `drwst` | `drush watchdog:tail` | Tail watchdog messages | -### drf -Edit drushrc, site alias, and Drupal settings.php files. -Can be invoked with one or without parameters. e.g.: -`drf 1` +## Functions -### dris -Disable one or more extensions (modules or themes) -Must be invoked with one or more parameters. e.g.: -`dris devel` or `dris devel module_filter views` +- `dren`: download and enable one or more extensions (modules or themes). Must be + invoked with one or more parameters, e.g.: `dren devel` or `dren devel module_filter views`. -### drpu -Uninstall one or more modules. -Must be invoked with one or more parameters. e.g.: -`drpu devel` or `drpu devel module_filter views` +- `drf`: edit drushrc, site alias, and Drupal settings.php files. + Can be invoked with one or without parameters, e.g.: `drf 1`. -### drnew -Creates a brand new drupal website. -Note: As soon as the installation is complete, drush will print a username and a random password into the terminal: -``` -Installation complete. User name: admin User password: cf7t8yqNEm -``` +- `dris`: disable one or more extensions (modules or themes). Must be invoked with + one or more parameters, e.g.: `dris devel` or `dris devel module_filter views`. -## Additional features +- `drpu`: uninstall one or more modules. Must be invoked with one or more + parameters, e.g.: `drpu devel` or `drpu devel module_filter views`. -### Autocomplete -The [completion script for drush](https://github.com/drush-ops/drush/blob/8.0.1/drush.complete.sh) comes enabled with this plugin. -So, it is possible to type a command: -``` -drush sql -``` +- `drnew`: creates a brand new drupal website. Note: as soon as the installation + is complete, `drush` will print a username and a random password into the terminal: -And as soon as the tab key is pressed, the script will display the available commands: -``` -drush sql -sqlc sql-conf sql-create sql-dump sql-query sql-sanitize -sql-cli sql-connect sql-drop sqlq sqlsan sql-sync -``` + ```text + Installation complete. User name: admin User password: cf7t8yqNEm + ``` diff --git a/plugins/drush/drush.plugin.zsh b/plugins/drush/drush.plugin.zsh index 8a20d79f2..48e8ddb1e 100644 --- a/plugins/drush/drush.plugin.zsh +++ b/plugins/drush/drush.plugin.zsh @@ -1,19 +1,18 @@ -# Drush support. - +# Functions function dren() { - drush en $@ -y + drush en "$@" -y } function dris() { - drush pm-disable $@ -y + drush pm-disable "$@" -y } function drpu() { - drush pm-uninstall $@ -y + drush pm-uninstall "$@" -y } function drf() { - if [[ $1 == "" ]] then + if [[ -z "$1" ]] then drush core-config else drush core-config --choice=$1 @@ -21,62 +20,62 @@ function drf() { } function drfi() { - if [[ $1 == "fields" ]]; then - drush field-info fields - elif [[ $1 == "types" ]]; then - drush field-info types - else - drush field-info - fi + case "$1" in + fields) drush field-info fields ;; + types) drush field-info types ;; + *) drush field-info ;; + esac } function drnew() { + ( + cd + echo "Website's name: " + read WEBSITE_NAME - cd ~ - echo "Website's name: " - read WEBSITE_NAME + HOST=http://$(hostname -i)/ - HOST=http://$(hostname -i)/ + if [[ $WEBSITE_NAME == "" ]] then + MINUTES=$(date +%M:%S) + WEBSITE_NAME="Drupal-$MINUTES" + echo "Your website will be named: $WEBSITE_NAME" + fi - if [[ $WEBSITE_NAME == "" ]] then - MINUTES=$(date +%M:%S) - WEBSITE_NAME="Drupal-$MINUTES" - echo "Your website will be named: $WEBSITE_NAME" - fi + drush dl drupal --drupal-project-rename=$WEBSITE_NAME - drush dl drupal --drupal-project-rename=$WEBSITE_NAME + echo "Type your localhost directory: (Leave empty for /var/www/html/)" + read DIRECTORY - echo "Type your localhost directory: (Leave empty for /var/www/html/)" - read DIRECTORY + if [[ $DIRECTORY == "" ]] then + DIRECTORY="/var/www/html/" + fi - if [[ $DIRECTORY == "" ]] then - DIRECTORY="/var/www/html/" - fi + echo "Moving to $DIRECTORY$WEBSITE_NAME" + sudo mv $WEBSITE_NAME $DIRECTORY + cd $DIRECTORY$WEBSITE_NAME - echo "Moving to $DIRECTORY$WEBSITE_NAME" - sudo mv $WEBSITE_NAME $DIRECTORY - cd $DIRECTORY$WEBSITE_NAME + echo "Database's user: " + read DATABASE_USR + echo "Database's password: " + read -s DATABASE_PWD + echo "Database's name for your project: " + read DATABASE - echo "Database's user: " - read DATABASE_USR - echo "Database's password: " - read -s DATABASE_PWD - echo "Database's name for your project: " - read DATABASE - - DB_URL="mysql://$DATABASE_USR:$DATABASE_PWD@localhost/$DATABASE" - drush site-install standard --db-url=$DB_URL --site-name=$WEBSITE_NAME - - open_command $HOST$WEBSITE_NAME - echo "Done" + DB_URL="mysql://$DATABASE_USR:$DATABASE_PWD@localhost/$DATABASE" + drush site-install standard --db-url=$DB_URL --site-name=$WEBSITE_NAME + open_command $HOST$WEBSITE_NAME + echo "Done" + ) } -# Aliases, sorted alphabetically. +# Aliases alias dr="drush" alias drca="drush cc all" # Deprecated for Drush 8 alias drcb="drush cc block" # Deprecated for Drush 8 +alias drcex="drush config:export -y" alias drcg="drush cc registry" # Deprecated for Drush 8 +alias drcim="drush config:import -y" alias drcj="drush cc css-js" alias drcm="drush cc menu" alias drcml="drush cc module-list" @@ -86,17 +85,21 @@ alias drcv="drush cc views" alias drdmp="drush sql-dump --ordered-dump --result-file=dump.sql" alias drf="drush features" alias drfr="drush features-revert -y" -alias drfu="drush features-update -y" alias drfra="drush features-revert-all" +alias drfu="drush features-update -y" alias drif="drush image-flush --all" alias drpm="drush pm-list --type=module" alias drst="drush core-status" +alias druli="drush user:login" alias drup="drush updatedb" alias drups="drush updatedb-status" alias drv="drush version" alias drvd="drush variable-del" alias drvg="drush variable-get" alias drvs="drush variable-set" +alias drws="drush watchdog:show" +alias drwse="drush watchdog:show --extended" +alias drwst="drush watchdog:tail" # Enable drush autocomplete support autoload bashcompinit diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index 027c7550f..fede5b0c4 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -13,6 +13,11 @@ autoload -Uz is-at-least is-at-least 24 "${${(Az)"$(emacsclient --version 2>/dev/null)"}[2]}" || return 0 +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + # Path to custom emacsclient launcher export EMACS_PLUGIN_LAUNCHER="${0:A:h}/emacsclient.sh" diff --git a/plugins/ember-cli/README.md b/plugins/ember-cli/README.md index b46373619..419704ade 100644 --- a/plugins/ember-cli/README.md +++ b/plugins/ember-cli/README.md @@ -1,22 +1,33 @@ # Ember CLI -**Maintainers:** [BilalBudhani](https://github.com/BilalBudhani), [eubenesa](https://github.com/eubenesa), [scottkidder](https://github.com/scottkidder] +This plugin adds completion and aliases for using [`ember-cli`](https://cli.emberjs.com/). -Ember CLI (https://www.ember-cli.com/) +To use it, add `ember-cli` to the plugins array in your zshrc file: -### List of Aliases +```zsh +plugins=(... ember-cli) +``` -Alias | Ember-CLI command ------ | ----------------- -**es** | *ember serve* -**ea** | *ember addon* -**eb** | *ember build* -**ed** | *ember destroy* -**eg** | *ember generate* -**eh** | *ember help* -**ein** | *ember init* -**ei** | *ember install* -**et** | *ember test* -**ets** | *ember test --serve* -**eu** | *ember update* -**ev** | *ember version* +## Aliases + +| Alias | Command | +| ----- | -------------------- | +| `ea` | `ember addon` | +| `eb` | `ember build` | +| `ed` | `ember destroy` | +| `eg` | `ember generate` | +| `eh` | `ember help` | +| `ei` | `ember install` | +| `ein` | `ember init` | +| `es` | `ember serve` | +| `et` | `ember test` | +| `ets` | `ember test --serve` | +| `eu` | `ember update` | +| `ev` | `ember version` | + +## Maintainers + +- [BilalBudhani](https://github.com/BilalBudhani) +- [eubenesa](https://github.com/eubenesa) +- [scottkidder](https://github.com/scottkidder] +- [t-sauer](https://www.github.com/t-sauer) diff --git a/plugins/ember-cli/_ember-cli b/plugins/ember-cli/_ember-cli new file mode 100644 index 000000000..41c3c1fd4 --- /dev/null +++ b/plugins/ember-cli/_ember-cli @@ -0,0 +1,189 @@ +#compdef ember + +local curcontext="$curcontext" state line ret=1 + +_arguments -C -A "--version" -A "--help" \ + '(- 1 *)--help' \ + '(- 1 *)--version' \ + '1: :->cmds' \ + '*:: :->args' && ret=0 + +case $state in + cmds) + _values "ember command" \ + "addon[Generates a new folder structure for building an addon, complete with test harness]" \ + "asset-sizes[Shows the sizes of your asset files]" \ + "build[Builds your app and places it into the output path (dist/ by default)]" \ + "destroy[Destroys code generated by generate command]" \ + "generate[Generates new code from blueprints]" \ + "help[Outputs the usage instructions for all commands or the provided command]" \ + "init[Creates a new ember-cli project in the current folder]" \ + "install[Installs an ember-cli addon from npm]" \ + "new[Creates a new directory and runs ember init in it]" \ + "serve[Builds and serves your app, rebuilding on file changes]" \ + "test[Runs your app's test suite]" \ + "version[outputs ember-cli version]" + ret=0 + ;; + args) + case $line[1] in + help) + _values 'commands' \ + 'addon' \ + 'asset-sizes' \ + 'build' \ + 'destroy' \ + 'generate' \ + 'help' \ + 'init' \ + 'install' \ + 'new' \ + 'serve' \ + 'test' \ + 'vesion' && ret=0 + ;; + addon) + _arguments \ + '(--blueprint)--blueprint=-' \ + '(--directory)--directory=-' \ + '(--dry-run)--dry-run' \ + '(--skip-bower)--skip-bower' \ + '(--skip-git)--skip-git' \ + '(--skip-npm)--skip-npm' \ + '(--verbose)--verbose' + ;; + asset-sizes) + _arguments \ + '(--output-path)--output-path=-' + ;; + build) + _arguments \ + '(--environment)--environment=-' \ + '(--output-path)--output-path=-' \ + '(--output-path)--suppress-sizes' \ + '(--watch)--watch' \ + '(--watcher)--watcher=-' \ + '(-dev)-dev' \ + '(-prod)-prod' + ;; + destroy|generate) + _values 'arguments' \ + '(--classic)--classic' \ + '(--dry-run)--dry-run' \ + '(--dummy)--dummy' \ + '(--in-repo-addon)--in-repo-addon-=' \ + '(--pod)--pod' \ + '(--verbose)--verbose' && ret=0 + _values 'blueprints' \ + 'acceptance-test' \ + 'adapter' \ + 'adapter-test' \ + 'component' \ + 'component-addon' \ + 'component-test' \ + 'controller' \ + 'controller-test' \ + 'helper' \ + 'helper-addon' \ + 'helper-test' \ + 'initializer' \ + 'initializer-addon' \ + 'initializer-test' \ + 'instance-initializer' \ + 'instance-initializer-addon' \ + 'instance-initializer-test' \ + 'mixin' \ + 'mixin-test' \ + 'model' \ + 'model-test' \ + 'resource' \ + 'route' \ + 'route-addon' \ + 'route-test' \ + 'serializer' \ + 'serializer-test' \ + 'service' \ + 'service-test' \ + 'template' \ + 'test-helper' \ + 'transform' \ + 'transform-test' \ + 'util' \ + 'util-test' \ + 'view' \ + 'view-test' \ + 'addon' \ + 'addon-import' \ + 'app' \ + 'blueprint' \ + 'http-mock' \ + 'http-proxy' \ + 'in-repo-addon' \ + 'lib' \ + 'server' \ + 'vendor-shim' && ret=0 + ;; + init) + _arguments \ + '(--blueprint)--blueprint=-' \ + '(--name)--name=-' \ + '(--dry-run)--dry-run' \ + '(--skip-bower)--skip-bower' \ + '(--skip-npm)--skip-npm' \ + '(--verbose)--verbose' + ;; + install) + _arguments \ + '(--save-dev)--save-dev' \ + '(--save)--save' + ;; + new) + _arguments \ + '(--blueprint)--blueprint=-' \ + '(--directory)--directory=-' \ + '(--dry-run)--dry-run' \ + '(--skip-bower)--skip-bower' \ + '(--skip-git)--skip-git' \ + '(--skip-npm)--skip-npm' \ + '(--verbose)--verbose' + ;; + serve) + _arguments \ + '(--port)--port=-[To use a port different than 4200. Pass 0 to automatically pick an available port.]' \ + '(--host)--host=-[Listens on all interfaces by default]' \ + '(--proxy)--proxy=-' \ + '(--secure-proxy)--secure-proxy[Set to false to proxy self-signed SSL certificates]' \ + '(--transparent-proxy)--transparent-proxy[Set to false to omit x-forwarded-* headers when proxying]' \ + '(--watcher)--watcher=-' \ + '(--live-reload)--live-reload' \ + '(--live-reload-host)--live-reload-host=-[Defaults to host]' \ + '(--live-reload-base-url)--live-reload-base-url=-[Defaults to baseURL]' \ + '(--live-reload-port)--live-reload-port=-[Defaults to port number within \[49152...65535\]]' \ + '(--environment)--environment=-' \ + '(--output-path)--output-path=-' \ + '(--ssl)--ssl' \ + '(--ssl-key)--ssl-key=-' \ + '(--ssl-cert)--ssl-cert=-' + ;; + test) + _arguments \ + '(--environment)--environment=-' \ + '(--config-file)--config-file=-' \ + '(--server)--server' \ + '(--host)--host=-' \ + '(--test-port)--test-port=-[The test port to use when running with --server.]' \ + '(--filter)--filter=-[A string to filter tests to run]' \ + '(--module)--module=-[The name of a test module to run]' \ + '(--watcher)--watcher=-' \ + '(--launch)--launch=-[A comma separated list of browsers to launch for tests.]' \ + '(--reporter)--reporter=-[Test reporter to use \[tap|dot|xunit\] (default: tap)]' \ + '(--silent)--silent[Suppress any output except for the test report]' \ + '(--test-page)--test-page=-[Test page to invoke]' \ + '(--path)--path=-[Reuse an existing build at given path.]' \ + '(--query)--query=-[A query string to append to the test page URL.]' + ;; + esac + ;; +esac + +return ret diff --git a/plugins/ember-cli/ember-cli.plugin.zsh b/plugins/ember-cli/ember-cli.plugin.zsh index 67842c120..de46b9827 100644 --- a/plugins/ember-cli/ember-cli.plugin.zsh +++ b/plugins/ember-cli/ember-cli.plugin.zsh @@ -1,17 +1,12 @@ -# Ember CLI -# Visit https://www.ember-cli.com/ to view user guide - -alias es='ember serve' alias ea='ember addon' alias eb='ember build' alias ed='ember destroy' alias eg='ember generate' alias eh='ember help' -alias ein='ember init' alias ei='ember install' +alias ein='ember init' +alias es='ember serve' alias et='ember test' alias ets='ember test --serve' alias eu='ember update' - -# version alias ev='ember version' diff --git a/plugins/emoji/README.md b/plugins/emoji/README.md index 8b8860a86..4154ea0dc 100644 --- a/plugins/emoji/README.md +++ b/plugins/emoji/README.md @@ -10,7 +10,7 @@ This plugin provides support for working with Unicode emoji characters in `zsh` Variable | Description ----------------- | -------------------------------- - $emoji | Maps emoji names to characters + $emoji | Maps emoji names to characters (except flags) $emoji_flags | Maps country names to flag characters (using region indicators) $emoji_groups | Named groups of emoji. Keys are group names; values are whitespace-separated lists of character names @@ -55,10 +55,8 @@ The defined group names can be found with `echo ${(k)emoji_groups}`. To list all available emoji with their names, use: ``` $> display_emoji -$> display_emoji fruits -$> display_emoji animals -$> display_emoji vehicles $> display_emoji faces +$> display_emoji people ``` To use emoji in a prompt: @@ -73,13 +71,13 @@ PROMPT="$surfer > " The emoji names and codes are sourced from Unicode Technical Report \#51, which provides information on emoji support in Unicode. It can be found at https://www.unicode.org/reports/tr51/index.html. -The group definitions are added by this OMZ plugin. They are not based on external definitions. (As far as I can tell. -apjanke) +The group definitions are added by this OMZ plugin. They are not based on external definitions. The values in the `$emoji*` maps are the emoji characters themselves, not escape sequences or other forms that require interpretation. They can be used in any context and do not require escape sequence support from commands like `echo` or `print`. The emoji in the main `$emoji` map are standalone character sequences which can all be output on their own, without worrying about combining characters. The values may actually be multi-code-point sequences, instead of a single code point, and may include combining characters in those sequences. But they're arranged so their effects do not extend beyond that sequence. -The exception to this is the skin tone variation selectors. These are included in the main `$emoji` map because they can be displayed on their own, as well as used as combining characters. (If they follow a character that is not one of the emoji characters they combine with, they are displayed as color swatches.) +The exception to this is the skin tone / hair style variation selectors. These are included in the main `$emoji` map because they can be displayed on their own, as well as used as combining characters. (If they follow a character that is not one of the emoji characters they combine with, they are displayed as color swatches.) ## Experimental Features @@ -90,7 +88,6 @@ Variables: Variable | Description ----------------- | -------------------------------- - $emoji2 | Auxiliary and combining characters $emoji_skintone | Skin tone modifiers (from Unicode 8.0) @@ -105,31 +102,26 @@ The "variation selectors" are combining characters which change the appearance o The `$emoji_skintone` associative array maps skin tone IDs to the variation selector characters. To use one, output it immediately following a smiley or other human emoji. ``` -echo "$emoji[smiling_face_with_open_mouth]$emoji_skintone[4]" +echo $emoji[waving_hand]$emoji_skintone[5] ``` Note that `$emoji_skintone` is an associative array, and its keys are the *names* of "Fitzpatrick Skin Type" groups, not linear indexes into a normal array. The names are `1_2`, `3`, `4`, `5`, and `6`. (Types 1 and 2 are combined into a single color.) See the [Diversity section in Unicode TR 51](https://www.unicode.org/reports/tr51/index.html#Diversity) for details. -## TODO - -These are things that could be enhanced in future revisions of the plugin. - -* Incorporate CLDR data for ordering and groupings -* Short :bracket: style names (from gemoji) -* Incorporate `gemoji` data -* Country codes for flags -* ZWJ combining function? - #### Gemoji support -The [gemoji project](https://github.com/github/gemoji) seems to be the de facto main source for short names and other emoji-related metadata that isn't included in the official Unicode reports. (I'm saying this just from looking at the google results for "emoji short names" and related searches. -apjanke) +The [gemoji project](https://github.com/github/gemoji) seems to be the de facto main source for short names and other emoji-related metadata that isn't included in the official Unicode reports. So, our list of emojis incorporates some of their aliases to make your life more convenient: -If this plugin is updated to provide short names, CLDR sorting data, and similar stuff, it should probably be changed to use the Gemoji project, and the `update_emoji.pl` script be rewritten in Ruby so it can use the Gemoji library directly instead of parsing its data files. +``` +echo $emoji[grinning_face_with_smiling_eyes] +echo $emoji[smile] +``` -This does *not* mean that it should use Gemoji at run time. None of the `zsh` plugin stuff should call Gemoji or Ruby code. Rather, the "build time" `update_emoji.pl` script should be rewritten to use Gemoji to generate a pure-native-`zsh` character definition file which would be checked in to the repo and can be called by OMZ users without having Gemoji installed. +These two commands yield the same emoji (😄). The first name is the official one, in the Unicode reference, and the second one is the alias that was in Gemoji's database. -#### ZWJ combining function +## TODO -One of the newer features of Unicode emoji is the ability to use the "Zero-Width Joiner" character to compose multiple emoji characters in to a single "emoji ligature" glyph. For example, this is [how Apple supports "family" emoji with various genders and skin tones](https://www.unicode.org/reports/tr51/index.html#ZWJ_Sequences). +These are things that could be enhanced in future revisions of the plugin. -These are a pain to write out (and probably worse to read), and it might be convenient to have a couple functions for concisely composing them, if wider support for them appears. +* Incorporate CLDR data for ordering and groupings +* Short :bracket: style names (from gemoji) +* ZWJ combining function?
\ No newline at end of file diff --git a/plugins/emoji/emoji-char-definitions.zsh b/plugins/emoji/emoji-char-definitions.zsh index 04693da05..b37c142a1 100644 --- a/plugins/emoji/emoji-char-definitions.zsh +++ b/plugins/emoji/emoji-char-definitions.zsh @@ -1,11 +1,18 @@ -# emoji-char-definitions.zsh - Emoji character definitions for oh-my-zsh emoji plugin +# emoji-char-definitions.zsh - Emoji definitions for oh-my-zsh emoji plugin # -# This file is auto-generated by update_emoji.pl. Do not edit it manually. +# This file is auto-generated by update_emoji.py. Do not edit it manually. # # This contains the definition for: # $emoji - which maps character names to Unicode characters -# $emoji_flags - maps country names to Unicode flag characters using region indicators +# $emoji_flags - maps country names to Unicode flag characters using region +# indicators +# $emoji_mod - maps modifier components to Unicode characters +# $emoji_groups - a single associative array to avoid cluttering up the +# global namespace, and to allow adding additional group +# definitions at run time. The keys are the group names, and +# the values are whitespace-separated lists of emoji +# character names. # Main emoji typeset -gAH emoji @@ -13,1291 +20,7255 @@ typeset -gAH emoji typeset -gAH emoji_flags # Combining modifiers typeset -gAH emoji_mod - -emoji[copyright_sign]=$'\U00A9' -emoji[registered_sign]=$'\U00AE' -emoji[double_exclamation_mark]=$'\U203C' -emoji[exclamation_question_mark]=$'\U2049' -emoji[trade_mark_sign]=$'\U2122' -emoji[information_source]=$'\U2139' -emoji[left_right_arrow]=$'\U2194' -emoji[up_down_arrow]=$'\U2195' -emoji[north_west_arrow]=$'\U2196' -emoji[north_east_arrow]=$'\U2197' -emoji[south_east_arrow]=$'\U2198' -emoji[south_west_arrow]=$'\U2199' -emoji[leftwards_arrow_with_hook]=$'\U21A9' -emoji[rightwards_arrow_with_hook]=$'\U21AA' -emoji[watch]=$'\U231A' -emoji[hourglass]=$'\U231B' -emoji[keyboard]=$'\U2328' -emoji[eject_symbol]=$'\U23CF' -emoji[black_right_pointing_double_triangle]=$'\U23E9' -emoji[black_left_pointing_double_triangle]=$'\U23EA' -emoji[black_up_pointing_double_triangle]=$'\U23EB' -emoji[black_down_pointing_double_triangle]=$'\U23EC' -emoji[black_right_pointing_double_triangle_with_vertical_bar]=$'\U23ED' -emoji[black_left_pointing_double_triangle_with_vertical_bar]=$'\U23EE' -emoji[black_right_pointing_triangle_with_double_vertical_bar]=$'\U23EF' -emoji[alarm_clock]=$'\U23F0' -emoji[stopwatch]=$'\U23F1' -emoji[timer_clock]=$'\U23F2' -emoji[hourglass_with_flowing_sand]=$'\U23F3' -emoji[double_vertical_bar]=$'\U23F8' -emoji[black_square_for_stop]=$'\U23F9' -emoji[black_circle_for_record]=$'\U23FA' -emoji[circled_latin_capital_letter_m]=$'\U24C2' -emoji[black_small_square]=$'\U25AA' -emoji[white_small_square]=$'\U25AB' -emoji[black_right_pointing_triangle]=$'\U25B6' -emoji[black_left_pointing_triangle]=$'\U25C0' -emoji[white_medium_square]=$'\U25FB' -emoji[black_medium_square]=$'\U25FC' -emoji[white_medium_small_square]=$'\U25FD' -emoji[black_medium_small_square]=$'\U25FE' -emoji[black_sun_with_rays]=$'\U2600' -emoji[cloud]=$'\U2601' -emoji[umbrella]=$'\U2602' -emoji[snowman]=$'\U2603' -emoji[comet]=$'\U2604' -emoji[black_telephone]=$'\U260E' -emoji[ballot_box_with_check]=$'\U2611' -emoji[umbrella_with_rain_drops]=$'\U2614' -emoji[hot_beverage]=$'\U2615' -emoji[shamrock]=$'\U2618' -emoji[white_up_pointing_index]=$'\U261D' -emoji[skull_and_crossbones]=$'\U2620' -emoji[radioactive_sign]=$'\U2622' -emoji[biohazard_sign]=$'\U2623' -emoji[orthodox_cross]=$'\U2626' -emoji[star_and_crescent]=$'\U262A' -emoji[peace_symbol]=$'\U262E' -emoji[yin_yang]=$'\U262F' -emoji[wheel_of_dharma]=$'\U2638' -emoji[white_frowning_face]=$'\U2639' -emoji[white_smiling_face]=$'\U263A' -emoji[aries]=$'\U2648' -emoji[taurus]=$'\U2649' -emoji[gemini]=$'\U264A' -emoji[cancer]=$'\U264B' -emoji[leo]=$'\U264C' -emoji[virgo]=$'\U264D' -emoji[libra]=$'\U264E' -emoji[scorpius]=$'\U264F' -emoji[sagittarius]=$'\U2650' -emoji[capricorn]=$'\U2651' -emoji[aquarius]=$'\U2652' -emoji[pisces]=$'\U2653' -emoji[black_spade_suit]=$'\U2660' -emoji[black_club_suit]=$'\U2663' -emoji[black_heart_suit]=$'\U2665' -emoji[black_diamond_suit]=$'\U2666' -emoji[hot_springs]=$'\U2668' -emoji[black_universal_recycling_symbol]=$'\U267B' -emoji[wheelchair_symbol]=$'\U267F' -emoji[hammer_and_pick]=$'\U2692' -emoji[anchor]=$'\U2693' -emoji[crossed_swords]=$'\U2694' -emoji[scales]=$'\U2696' -emoji[alembic]=$'\U2697' -emoji[gear]=$'\U2699' -emoji[atom_symbol]=$'\U269B' -emoji[fleur_de_lis]=$'\U269C' -emoji[warning_sign]=$'\U26A0' -emoji[high_voltage_sign]=$'\U26A1' -emoji[medium_white_circle]=$'\U26AA' -emoji[medium_black_circle]=$'\U26AB' -emoji[coffin]=$'\U26B0' -emoji[funeral_urn]=$'\U26B1' -emoji[soccer_ball]=$'\U26BD' -emoji[baseball]=$'\U26BE' -emoji[snowman_without_snow]=$'\U26C4' -emoji[sun_behind_cloud]=$'\U26C5' -emoji[thunder_cloud_and_rain]=$'\U26C8' -emoji[ophiuchus]=$'\U26CE' -emoji[pick]=$'\U26CF' -emoji[helmet_with_white_cross]=$'\U26D1' -emoji[chains]=$'\U26D3' -emoji[no_entry]=$'\U26D4' -emoji[shinto_shrine]=$'\U26E9' -emoji[church]=$'\U26EA' -emoji[mountain]=$'\U26F0' -emoji[umbrella_on_ground]=$'\U26F1' -emoji[fountain]=$'\U26F2' -emoji[flag_in_hole]=$'\U26F3' -emoji[ferry]=$'\U26F4' -emoji[sailboat]=$'\U26F5' -emoji[skier]=$'\U26F7' -emoji[ice_skate]=$'\U26F8' -emoji[person_with_ball]=$'\U26F9' -emoji[tent]=$'\U26FA' -emoji[fuel_pump]=$'\U26FD' -emoji[black_scissors]=$'\U2702' -emoji[white_heavy_check_mark]=$'\U2705' -emoji[airplane]=$'\U2708' -emoji[envelope]=$'\U2709' -emoji[raised_fist]=$'\U270A' +# Emoji groups +typeset -gAH emoji_groups +emoji[grinning_face]=$'\U1F600' +emoji[grinning]=$'\U1F600' +emoji[grinning_face_with_big_eyes]=$'\U1F603' +emoji[smiley]=$'\U1F603' +emoji[grinning_face_with_smiling_eyes]=$'\U1F604' +emoji[smile]=$'\U1F604' +emoji[beaming_face_with_smiling_eyes]=$'\U1F601' +emoji[grin]=$'\U1F601' +emoji[grinning_squinting_face]=$'\U1F606' +emoji[laughing]=$'\U1F606' +emoji[satisfied]=$'\U1F606' +emoji[grinning_face_with_sweat]=$'\U1F605' +emoji[sweat_smile]=$'\U1F605' +emoji[rolling_on_the_floor_laughing]=$'\U1F923' +emoji[rofl]=$'\U1F923' +emoji[face_with_tears_of_joy]=$'\U1F602' +emoji[joy]=$'\U1F602' +emoji[slightly_smiling_face]=$'\U1F642' +emoji[upside_down_face]=$'\U1F643' +emoji[winking_face]=$'\U1F609' +emoji[wink]=$'\U1F609' +emoji[smiling_face_with_smiling_eyes]=$'\U1F60A' +emoji[blush]=$'\U1F60A' +emoji[smiling_face_with_halo]=$'\U1F607' +emoji[innocent]=$'\U1F607' +emoji[smiling_face_with_hearts]=$'\U1F970' +emoji[smiling_face_with_three_hearts]=$'\U1F970' +emoji[smiling_face_with_heart_eyes]=$'\U1F60D' +emoji[heart_eyes]=$'\U1F60D' +emoji[star_struck]=$'\U1F929' +emoji[face_blowing_a_kiss]=$'\U1F618' +emoji[kissing_heart]=$'\U1F618' +emoji[kissing_face]=$'\U1F617' +emoji[kissing]=$'\U1F617' +emoji[smiling_face]=$'\U263A\UFE0F' +emoji[relaxed]=$'\U263A\UFE0F' +emoji[smiling_face_unqualified]=$'\U263A' +emoji[kissing_face_with_closed_eyes]=$'\U1F61A' +emoji[kissing_closed_eyes]=$'\U1F61A' +emoji[kissing_face_with_smiling_eyes]=$'\U1F619' +emoji[kissing_smiling_eyes]=$'\U1F619' +emoji[face_savoring_food]=$'\U1F60B' +emoji[yum]=$'\U1F60B' +emoji[face_with_tongue]=$'\U1F61B' +emoji[stuck_out_tongue]=$'\U1F61B' +emoji[winking_face_with_tongue]=$'\U1F61C' +emoji[stuck_out_tongue_winking_eye]=$'\U1F61C' +emoji[zany_face]=$'\U1F92A' +emoji[squinting_face_with_tongue]=$'\U1F61D' +emoji[stuck_out_tongue_closed_eyes]=$'\U1F61D' +emoji[money_mouth_face]=$'\U1F911' +emoji[hugging_face]=$'\U1F917' +emoji[hugs]=$'\U1F917' +emoji[face_with_hand_over_mouth]=$'\U1F92D' +emoji[hand_over_mouth]=$'\U1F92D' +emoji[shushing_face]=$'\U1F92B' +emoji[thinking_face]=$'\U1F914' +emoji[thinking]=$'\U1F914' +emoji[zipper_mouth_face]=$'\U1F910' +emoji[face_with_raised_eyebrow]=$'\U1F928' +emoji[raised_eyebrow]=$'\U1F928' +emoji[neutral_face]=$'\U1F610' +emoji[expressionless_face]=$'\U1F611' +emoji[expressionless]=$'\U1F611' +emoji[face_without_mouth]=$'\U1F636' +emoji[no_mouth]=$'\U1F636' +emoji[smirking_face]=$'\U1F60F' +emoji[smirk]=$'\U1F60F' +emoji[unamused_face]=$'\U1F612' +emoji[unamused]=$'\U1F612' +emoji[face_with_rolling_eyes]=$'\U1F644' +emoji[roll_eyes]=$'\U1F644' +emoji[grimacing_face]=$'\U1F62C' +emoji[grimacing]=$'\U1F62C' +emoji[lying_face]=$'\U1F925' +emoji[relieved_face]=$'\U1F60C' +emoji[relieved]=$'\U1F60C' +emoji[pensive_face]=$'\U1F614' +emoji[pensive]=$'\U1F614' +emoji[sleepy_face]=$'\U1F62A' +emoji[sleepy]=$'\U1F62A' +emoji[drooling_face]=$'\U1F924' +emoji[sleeping_face]=$'\U1F634' +emoji[sleeping]=$'\U1F634' +emoji[face_with_medical_mask]=$'\U1F637' +emoji[mask]=$'\U1F637' +emoji[face_with_thermometer]=$'\U1F912' +emoji[face_with_head_bandage]=$'\U1F915' +emoji[nauseated_face]=$'\U1F922' +emoji[face_vomiting]=$'\U1F92E' +emoji[vomiting_face]=$'\U1F92E' +emoji[sneezing_face]=$'\U1F927' +emoji[hot_face]=$'\U1F975' +emoji[cold_face]=$'\U1F976' +emoji[woozy_face]=$'\U1F974' +emoji[dizzy_face]=$'\U1F635' +emoji[exploding_head]=$'\U1F92F' +emoji[cowboy_hat_face]=$'\U1F920' +emoji[partying_face]=$'\U1F973' +emoji[smiling_face_with_sunglasses]=$'\U1F60E' +emoji[nerd_face]=$'\U1F913' +emoji[face_with_monocle]=$'\U1F9D0' +emoji[monocle_face]=$'\U1F9D0' +emoji[confused_face]=$'\U1F615' +emoji[confused]=$'\U1F615' +emoji[worried_face]=$'\U1F61F' +emoji[worried]=$'\U1F61F' +emoji[slightly_frowning_face]=$'\U1F641' +emoji[slightly_frowning_face_1]=$'\U2639\UFE0F' +emoji[frowning_face_unqualified]=$'\U2639' +emoji[frowning_face]=$'\U2639' +emoji[face_with_open_mouth]=$'\U1F62E' +emoji[open_mouth]=$'\U1F62E' +emoji[hushed_face]=$'\U1F62F' +emoji[hushed]=$'\U1F62F' +emoji[astonished_face]=$'\U1F632' +emoji[astonished]=$'\U1F632' +emoji[flushed_face]=$'\U1F633' +emoji[flushed]=$'\U1F633' +emoji[pleading_face]=$'\U1F97A' +emoji[frowning_face_with_open_mouth]=$'\U1F626' +emoji[frowning]=$'\U1F626' +emoji[anguished_face]=$'\U1F627' +emoji[anguished]=$'\U1F627' +emoji[fearful_face]=$'\U1F628' +emoji[fearful]=$'\U1F628' +emoji[anxious_face_with_sweat]=$'\U1F630' +emoji[cold_sweat]=$'\U1F630' +emoji[sad_but_relieved_face]=$'\U1F625' +emoji[disappointed_relieved]=$'\U1F625' +emoji[crying_face]=$'\U1F622' +emoji[cry]=$'\U1F622' +emoji[loudly_crying_face]=$'\U1F62D' +emoji[sob]=$'\U1F62D' +emoji[face_screaming_in_fear]=$'\U1F631' +emoji[scream]=$'\U1F631' +emoji[confounded_face]=$'\U1F616' +emoji[confounded]=$'\U1F616' +emoji[persevering_face]=$'\U1F623' +emoji[persevere]=$'\U1F623' +emoji[disappointed_face]=$'\U1F61E' +emoji[disappointed]=$'\U1F61E' +emoji[downcast_face_with_sweat]=$'\U1F613' +emoji[sweat]=$'\U1F613' +emoji[weary_face]=$'\U1F629' +emoji[weary]=$'\U1F629' +emoji[tired_face]=$'\U1F62B' +emoji[yawning_face]=$'\U1F971' +emoji[face_with_steam_from_nose]=$'\U1F624' +emoji[triumph]=$'\U1F624' +emoji[pouting_face]=$'\U1F621' +emoji[rage]=$'\U1F621' +emoji[pout]=$'\U1F621' +emoji[angry_face]=$'\U1F620' +emoji[angry]=$'\U1F620' +emoji[face_with_symbols_on_mouth]=$'\U1F92C' +emoji[cursing_face]=$'\U1F92C' +emoji[smiling_face_with_horns]=$'\U1F608' +emoji[smiling_imp]=$'\U1F608' +emoji[angry_face_with_horns]=$'\U1F47F' +emoji[imp]=$'\U1F47F' +emoji[skull]=$'\U1F480' +emoji[skull_and_crossbones]=$'\U2620\UFE0F' +emoji[skull_and_crossbones_unqualified]=$'\U2620' +emoji[pile_of_poo]=$'\U1F4A9' +emoji[hankey]=$'\U1F4A9' +emoji[poop]=$'\U1F4A9' +emoji[shit]=$'\U1F4A9' +emoji[clown_face]=$'\U1F921' +emoji[ogre]=$'\U1F479' +emoji[japanese_ogre]=$'\U1F479' +emoji[goblin]=$'\U1F47A' +emoji[japanese_goblin]=$'\U1F47A' +emoji[ghost]=$'\U1F47B' +emoji[alien]=$'\U1F47D' +emoji[alien_monster]=$'\U1F47E' +emoji[space_invader]=$'\U1F47E' +emoji[robot]=$'\U1F916' +emoji[grinning_cat]=$'\U1F63A' +emoji[smiley_cat]=$'\U1F63A' +emoji[grinning_cat_with_smiling_eyes]=$'\U1F638' +emoji[smile_cat]=$'\U1F638' +emoji[cat_with_tears_of_joy]=$'\U1F639' +emoji[joy_cat]=$'\U1F639' +emoji[smiling_cat_with_heart_eyes]=$'\U1F63B' +emoji[heart_eyes_cat]=$'\U1F63B' +emoji[cat_with_wry_smile]=$'\U1F63C' +emoji[smirk_cat]=$'\U1F63C' +emoji[kissing_cat]=$'\U1F63D' +emoji[weary_cat]=$'\U1F640' +emoji[scream_cat]=$'\U1F640' +emoji[crying_cat]=$'\U1F63F' +emoji[crying_cat_face]=$'\U1F63F' +emoji[pouting_cat]=$'\U1F63E' +emoji[see_no_evil_monkey]=$'\U1F648' +emoji[see_no_evil]=$'\U1F648' +emoji[hear_no_evil_monkey]=$'\U1F649' +emoji[hear_no_evil]=$'\U1F649' +emoji[speak_no_evil_monkey]=$'\U1F64A' +emoji[speak_no_evil]=$'\U1F64A' +emoji[kiss_mark]=$'\U1F48B' +emoji[love_letter]=$'\U1F48C' +emoji[heart_with_arrow]=$'\U1F498' +emoji[cupid]=$'\U1F498' +emoji[heart_with_ribbon]=$'\U1F49D' +emoji[gift_heart]=$'\U1F49D' +emoji[sparkling_heart]=$'\U1F496' +emoji[growing_heart]=$'\U1F497' +emoji[heartpulse]=$'\U1F497' +emoji[beating_heart]=$'\U1F493' +emoji[heartbeat]=$'\U1F493' +emoji[revolving_hearts]=$'\U1F49E' +emoji[two_hearts]=$'\U1F495' +emoji[heart_decoration]=$'\U1F49F' +emoji[heart_exclamation]=$'\U2763\UFE0F' +emoji[heavy_heart_exclamation]=$'\U2763\UFE0F' +emoji[heart_exclamation_unqualified]=$'\U2763' +emoji[broken_heart]=$'\U1F494' +emoji[red_heart]=$'\U2764\UFE0F' +emoji[heart]=$'\U2764\UFE0F' +emoji[red_heart_unqualified]=$'\U2764' +emoji[orange_heart]=$'\U1F9E1' +emoji[yellow_heart]=$'\U1F49B' +emoji[green_heart]=$'\U1F49A' +emoji[blue_heart]=$'\U1F499' +emoji[purple_heart]=$'\U1F49C' +emoji[brown_heart]=$'\U1F90E' +emoji[black_heart]=$'\U1F5A4' +emoji[white_heart]=$'\U1F90D' +emoji[hundred_points]=$'\U1F4AF' +emoji[100]=$'\U1F4AF' +emoji[anger_symbol]=$'\U1F4A2' +emoji[anger]=$'\U1F4A2' +emoji[collision]=$'\U1F4A5' +emoji[boom]=$'\U1F4A5' +emoji[dizzy]=$'\U1F4AB' +emoji[sweat_droplets]=$'\U1F4A6' +emoji[sweat_drops]=$'\U1F4A6' +emoji[dashing_away]=$'\U1F4A8' +emoji[dash]=$'\U1F4A8' +emoji[hole]=$'\U1F573\UFE0F' +emoji[hole_unqualified]=$'\U1F573' +emoji[bomb]=$'\U1F4A3' +emoji[speech_balloon]=$'\U1F4AC' +emoji[eye_in_speech_bubble]=$'\U1F441\UFE0F\U200D\U1F5E8\UFE0F' +emoji[eye_speech_bubble]=$'\U1F441\UFE0F\U200D\U1F5E8\UFE0F' +emoji[eye_in_speech_bubble_unqualified]=$'\U1F441\U200D\U1F5E8\UFE0F' +emoji[eye_in_speech_bubble_unqualified_1]=$'\U1F441\UFE0F\U200D\U1F5E8' +emoji[eye_in_speech_bubble_unqualified_2]=$'\U1F441\U200D\U1F5E8' +emoji[left_speech_bubble]=$'\U1F5E8\UFE0F' +emoji[left_speech_bubble_unqualified]=$'\U1F5E8' +emoji[right_anger_bubble]=$'\U1F5EF\UFE0F' +emoji[right_anger_bubble_unqualified]=$'\U1F5EF' +emoji[thought_balloon]=$'\U1F4AD' +emoji[zzz]=$'\U1F4A4' +emoji[waving_hand]=$'\U1F44B' +emoji[wave]=$'\U1F44B' +emoji[waving_hand_light_skin_tone]=$'\U1F44B\U1F3FB' +emoji[waving_hand_medium_light_skin_tone]=$'\U1F44B\U1F3FC' +emoji[waving_hand_medium_skin_tone]=$'\U1F44B\U1F3FD' +emoji[waving_hand_medium_dark_skin_tone]=$'\U1F44B\U1F3FE' +emoji[waving_hand_dark_skin_tone]=$'\U1F44B\U1F3FF' +emoji[raised_back_of_hand]=$'\U1F91A' +emoji[raised_back_of_hand_light_skin_tone]=$'\U1F91A\U1F3FB' +emoji[raised_back_of_hand_medium_light_skin_tone]=$'\U1F91A\U1F3FC' +emoji[raised_back_of_hand_medium_skin_tone]=$'\U1F91A\U1F3FD' +emoji[raised_back_of_hand_medium_dark_skin_tone]=$'\U1F91A\U1F3FE' +emoji[raised_back_of_hand_dark_skin_tone]=$'\U1F91A\U1F3FF' +emoji[hand_with_fingers_splayed]=$'\U1F590\UFE0F' +emoji[hand_with_fingers_splayed_unqualified]=$'\U1F590' +emoji[raised_hand_with_fingers_splayed]=$'\U1F590' +emoji[hand_with_fingers_splayed_light_skin_tone]=$'\U1F590\U1F3FB' +emoji[hand_with_fingers_splayed_medium_light_skin_tone]=$'\U1F590\U1F3FC' +emoji[hand_with_fingers_splayed_medium_skin_tone]=$'\U1F590\U1F3FD' +emoji[hand_with_fingers_splayed_medium_dark_skin_tone]=$'\U1F590\U1F3FE' +emoji[hand_with_fingers_splayed_dark_skin_tone]=$'\U1F590\U1F3FF' emoji[raised_hand]=$'\U270B' -emoji[victory_hand]=$'\U270C' -emoji[writing_hand]=$'\U270D' -emoji[pencil]=$'\U270F' -emoji[black_nib]=$'\U2712' -emoji[heavy_check_mark]=$'\U2714' -emoji[heavy_multiplication_x]=$'\U2716' -emoji[latin_cross]=$'\U271D' -emoji[star_of_david]=$'\U2721' -emoji[sparkles]=$'\U2728' -emoji[eight_spoked_asterisk]=$'\U2733' -emoji[eight_pointed_black_star]=$'\U2734' -emoji[snowflake]=$'\U2744' -emoji[sparkle]=$'\U2747' -emoji[cross_mark]=$'\U274C' -emoji[negative_squared_cross_mark]=$'\U274E' -emoji[black_question_mark_ornament]=$'\U2753' -emoji[white_question_mark_ornament]=$'\U2754' -emoji[white_exclamation_mark_ornament]=$'\U2755' -emoji[heavy_exclamation_mark_symbol]=$'\U2757' -emoji[heavy_heart_exclamation_mark_ornament]=$'\U2763' -emoji[heavy_black_heart]=$'\U2764' -emoji[heavy_plus_sign]=$'\U2795' -emoji[heavy_minus_sign]=$'\U2796' -emoji[heavy_division_sign]=$'\U2797' -emoji[black_rightwards_arrow]=$'\U27A1' -emoji[curly_loop]=$'\U27B0' -emoji[double_curly_loop]=$'\U27BF' -emoji[arrow_pointing_rightwards_then_curving_upwards]=$'\U2934' -emoji[arrow_pointing_rightwards_then_curving_downwards]=$'\U2935' -emoji[leftwards_black_arrow]=$'\U2B05' -emoji[upwards_black_arrow]=$'\U2B06' -emoji[downwards_black_arrow]=$'\U2B07' -emoji[black_large_square]=$'\U2B1B' -emoji[white_large_square]=$'\U2B1C' -emoji[white_medium_star]=$'\U2B50' -emoji[heavy_large_circle]=$'\U2B55' -emoji[wavy_dash]=$'\U3030' -emoji[part_alternation_mark]=$'\U303D' -emoji[circled_ideograph_congratulation]=$'\U3297' -emoji[circled_ideograph_secret]=$'\U3299' -emoji[mahjong_tile_red_dragon]=$'\U1F004' -emoji[playing_card_black_joker]=$'\U1F0CF' -emoji[negative_squared_latin_capital_letter_a]=$'\U1F170' -emoji[negative_squared_latin_capital_letter_b]=$'\U1F171' -emoji[negative_squared_latin_capital_letter_o]=$'\U1F17E' -emoji[negative_squared_latin_capital_letter_p]=$'\U1F17F' -emoji[negative_squared_ab]=$'\U1F18E' -emoji[squared_cl]=$'\U1F191' -emoji[squared_cool]=$'\U1F192' -emoji[squared_free]=$'\U1F193' -emoji[squared_id]=$'\U1F194' -emoji[squared_new]=$'\U1F195' -emoji[squared_ng]=$'\U1F196' -emoji[squared_ok]=$'\U1F197' -emoji[squared_sos]=$'\U1F198' -emoji[squared_up_with_exclamation_mark]=$'\U1F199' -emoji[squared_vs]=$'\U1F19A' -emoji[squared_katakana_koko]=$'\U1F201' -emoji[squared_katakana_sa]=$'\U1F202' -emoji[squared_cjk_unified_ideograph_7121]=$'\U1F21A' -emoji[squared_cjk_unified_ideograph_6307]=$'\U1F22F' -emoji[squared_cjk_unified_ideograph_7981]=$'\U1F232' -emoji[squared_cjk_unified_ideograph_7a7a]=$'\U1F233' -emoji[squared_cjk_unified_ideograph_5408]=$'\U1F234' -emoji[squared_cjk_unified_ideograph_6e80]=$'\U1F235' -emoji[squared_cjk_unified_ideograph_6709]=$'\U1F236' -emoji[squared_cjk_unified_ideograph_6708]=$'\U1F237' -emoji[squared_cjk_unified_ideograph_7533]=$'\U1F238' -emoji[squared_cjk_unified_ideograph_5272]=$'\U1F239' -emoji[squared_cjk_unified_ideograph_55b6]=$'\U1F23A' -emoji[circled_ideograph_advantage]=$'\U1F250' -emoji[circled_ideograph_accept]=$'\U1F251' -emoji[cyclone]=$'\U1F300' -emoji[foggy]=$'\U1F301' -emoji[closed_umbrella]=$'\U1F302' -emoji[night_with_stars]=$'\U1F303' -emoji[sunrise_over_mountains]=$'\U1F304' -emoji[sunrise]=$'\U1F305' -emoji[cityscape_at_dusk]=$'\U1F306' -emoji[sunset_over_buildings]=$'\U1F307' -emoji[rainbow]=$'\U1F308' -emoji[bridge_at_night]=$'\U1F309' -emoji[water_wave]=$'\U1F30A' -emoji[volcano]=$'\U1F30B' -emoji[milky_way]=$'\U1F30C' -emoji[earth_globe_europe_africa]=$'\U1F30D' -emoji[earth_globe_americas]=$'\U1F30E' -emoji[earth_globe_asia_australia]=$'\U1F30F' -emoji[globe_with_meridians]=$'\U1F310' -emoji[new_moon_symbol]=$'\U1F311' -emoji[waxing_crescent_moon_symbol]=$'\U1F312' -emoji[first_quarter_moon_symbol]=$'\U1F313' -emoji[waxing_gibbous_moon_symbol]=$'\U1F314' -emoji[full_moon_symbol]=$'\U1F315' -emoji[waning_gibbous_moon_symbol]=$'\U1F316' -emoji[last_quarter_moon_symbol]=$'\U1F317' -emoji[waning_crescent_moon_symbol]=$'\U1F318' -emoji[crescent_moon]=$'\U1F319' -emoji[new_moon_with_face]=$'\U1F31A' -emoji[first_quarter_moon_with_face]=$'\U1F31B' -emoji[last_quarter_moon_with_face]=$'\U1F31C' -emoji[full_moon_with_face]=$'\U1F31D' -emoji[sun_with_face]=$'\U1F31E' -emoji[glowing_star]=$'\U1F31F' -emoji[shooting_star]=$'\U1F320' -emoji[thermometer]=$'\U1F321' -emoji[white_sun_with_small_cloud]=$'\U1F324' -emoji[white_sun_behind_cloud]=$'\U1F325' -emoji[white_sun_behind_cloud_with_rain]=$'\U1F326' -emoji[cloud_with_rain]=$'\U1F327' -emoji[cloud_with_snow]=$'\U1F328' -emoji[cloud_with_lightning]=$'\U1F329' -emoji[cloud_with_tornado]=$'\U1F32A' -emoji[fog]=$'\U1F32B' -emoji[wind_blowing_face]=$'\U1F32C' -emoji[hot_dog]=$'\U1F32D' -emoji[taco]=$'\U1F32E' -emoji[burrito]=$'\U1F32F' -emoji[chestnut]=$'\U1F330' -emoji[seedling]=$'\U1F331' -emoji[evergreen_tree]=$'\U1F332' -emoji[deciduous_tree]=$'\U1F333' -emoji[palm_tree]=$'\U1F334' -emoji[cactus]=$'\U1F335' -emoji[hot_pepper]=$'\U1F336' -emoji[tulip]=$'\U1F337' +emoji[hand]=$'\U270B' +emoji[raised_hand_light_skin_tone]=$'\U270B\U1F3FB' +emoji[raised_hand_medium_light_skin_tone]=$'\U270B\U1F3FC' +emoji[raised_hand_medium_skin_tone]=$'\U270B\U1F3FD' +emoji[raised_hand_medium_dark_skin_tone]=$'\U270B\U1F3FE' +emoji[raised_hand_dark_skin_tone]=$'\U270B\U1F3FF' +emoji[vulcan_salute]=$'\U1F596' +emoji[vulcan_salute_light_skin_tone]=$'\U1F596\U1F3FB' +emoji[vulcan_salute_medium_light_skin_tone]=$'\U1F596\U1F3FC' +emoji[vulcan_salute_medium_skin_tone]=$'\U1F596\U1F3FD' +emoji[vulcan_salute_medium_dark_skin_tone]=$'\U1F596\U1F3FE' +emoji[vulcan_salute_dark_skin_tone]=$'\U1F596\U1F3FF' +emoji[OK_hand]=$'\U1F44C' +emoji[ok_hand]=$'\U1F44C' +emoji[OK_hand_light_skin_tone]=$'\U1F44C\U1F3FB' +emoji[OK_hand_medium_light_skin_tone]=$'\U1F44C\U1F3FC' +emoji[OK_hand_medium_skin_tone]=$'\U1F44C\U1F3FD' +emoji[OK_hand_medium_dark_skin_tone]=$'\U1F44C\U1F3FE' +emoji[OK_hand_dark_skin_tone]=$'\U1F44C\U1F3FF' +emoji[pinching_hand]=$'\U1F90F' +emoji[pinching_hand_light_skin_tone]=$'\U1F90F\U1F3FB' +emoji[pinching_hand_medium_light_skin_tone]=$'\U1F90F\U1F3FC' +emoji[pinching_hand_medium_skin_tone]=$'\U1F90F\U1F3FD' +emoji[pinching_hand_medium_dark_skin_tone]=$'\U1F90F\U1F3FE' +emoji[pinching_hand_dark_skin_tone]=$'\U1F90F\U1F3FF' +emoji[victory_hand]=$'\U270C\UFE0F' +emoji[v]=$'\U270C\UFE0F' +emoji[victory_hand_unqualified]=$'\U270C' +emoji[victory_hand_light_skin_tone]=$'\U270C\U1F3FB' +emoji[victory_hand_medium_light_skin_tone]=$'\U270C\U1F3FC' +emoji[victory_hand_medium_skin_tone]=$'\U270C\U1F3FD' +emoji[victory_hand_medium_dark_skin_tone]=$'\U270C\U1F3FE' +emoji[victory_hand_dark_skin_tone]=$'\U270C\U1F3FF' +emoji[crossed_fingers]=$'\U1F91E' +emoji[crossed_fingers_light_skin_tone]=$'\U1F91E\U1F3FB' +emoji[crossed_fingers_medium_light_skin_tone]=$'\U1F91E\U1F3FC' +emoji[crossed_fingers_medium_skin_tone]=$'\U1F91E\U1F3FD' +emoji[crossed_fingers_medium_dark_skin_tone]=$'\U1F91E\U1F3FE' +emoji[crossed_fingers_dark_skin_tone]=$'\U1F91E\U1F3FF' +emoji[love_you_gesture]=$'\U1F91F' +emoji[love_you_gesture_light_skin_tone]=$'\U1F91F\U1F3FB' +emoji[love_you_gesture_medium_light_skin_tone]=$'\U1F91F\U1F3FC' +emoji[love_you_gesture_medium_skin_tone]=$'\U1F91F\U1F3FD' +emoji[love_you_gesture_medium_dark_skin_tone]=$'\U1F91F\U1F3FE' +emoji[love_you_gesture_dark_skin_tone]=$'\U1F91F\U1F3FF' +emoji[sign_of_the_horns]=$'\U1F918' +emoji[metal]=$'\U1F918' +emoji[sign_of_the_horns_light_skin_tone]=$'\U1F918\U1F3FB' +emoji[sign_of_the_horns_medium_light_skin_tone]=$'\U1F918\U1F3FC' +emoji[sign_of_the_horns_medium_skin_tone]=$'\U1F918\U1F3FD' +emoji[sign_of_the_horns_medium_dark_skin_tone]=$'\U1F918\U1F3FE' +emoji[sign_of_the_horns_dark_skin_tone]=$'\U1F918\U1F3FF' +emoji[call_me_hand]=$'\U1F919' +emoji[call_me_hand_light_skin_tone]=$'\U1F919\U1F3FB' +emoji[call_me_hand_medium_light_skin_tone]=$'\U1F919\U1F3FC' +emoji[call_me_hand_medium_skin_tone]=$'\U1F919\U1F3FD' +emoji[call_me_hand_medium_dark_skin_tone]=$'\U1F919\U1F3FE' +emoji[call_me_hand_dark_skin_tone]=$'\U1F919\U1F3FF' +emoji[backhand_index_pointing_left]=$'\U1F448' +emoji[point_left]=$'\U1F448' +emoji[backhand_index_pointing_left_light_skin_tone]=$'\U1F448\U1F3FB' +emoji[backhand_index_pointing_left_medium_light_skin_tone]=$'\U1F448\U1F3FC' +emoji[backhand_index_pointing_left_medium_skin_tone]=$'\U1F448\U1F3FD' +emoji[backhand_index_pointing_left_medium_dark_skin_tone]=$'\U1F448\U1F3FE' +emoji[backhand_index_pointing_left_dark_skin_tone]=$'\U1F448\U1F3FF' +emoji[backhand_index_pointing_right]=$'\U1F449' +emoji[point_right]=$'\U1F449' +emoji[backhand_index_pointing_right_light_skin_tone]=$'\U1F449\U1F3FB' +emoji[backhand_index_pointing_right_medium_light_skin_tone]=$'\U1F449\U1F3FC' +emoji[backhand_index_pointing_right_medium_skin_tone]=$'\U1F449\U1F3FD' +emoji[backhand_index_pointing_right_medium_dark_skin_tone]=$'\U1F449\U1F3FE' +emoji[backhand_index_pointing_right_dark_skin_tone]=$'\U1F449\U1F3FF' +emoji[backhand_index_pointing_up]=$'\U1F446' +emoji[point_up_2]=$'\U1F446' +emoji[backhand_index_pointing_up_light_skin_tone]=$'\U1F446\U1F3FB' +emoji[backhand_index_pointing_up_medium_light_skin_tone]=$'\U1F446\U1F3FC' +emoji[backhand_index_pointing_up_medium_skin_tone]=$'\U1F446\U1F3FD' +emoji[backhand_index_pointing_up_medium_dark_skin_tone]=$'\U1F446\U1F3FE' +emoji[backhand_index_pointing_up_dark_skin_tone]=$'\U1F446\U1F3FF' +emoji[middle_finger]=$'\U1F595' +emoji[fu]=$'\U1F595' +emoji[middle_finger_light_skin_tone]=$'\U1F595\U1F3FB' +emoji[middle_finger_medium_light_skin_tone]=$'\U1F595\U1F3FC' +emoji[middle_finger_medium_skin_tone]=$'\U1F595\U1F3FD' +emoji[middle_finger_medium_dark_skin_tone]=$'\U1F595\U1F3FE' +emoji[middle_finger_dark_skin_tone]=$'\U1F595\U1F3FF' +emoji[backhand_index_pointing_down]=$'\U1F447' +emoji[point_down]=$'\U1F447' +emoji[backhand_index_pointing_down_light_skin_tone]=$'\U1F447\U1F3FB' +emoji[backhand_index_pointing_down_medium_light_skin_tone]=$'\U1F447\U1F3FC' +emoji[backhand_index_pointing_down_medium_skin_tone]=$'\U1F447\U1F3FD' +emoji[backhand_index_pointing_down_medium_dark_skin_tone]=$'\U1F447\U1F3FE' +emoji[backhand_index_pointing_down_dark_skin_tone]=$'\U1F447\U1F3FF' +emoji[index_pointing_up]=$'\U261D\UFE0F' +emoji[point_up]=$'\U261D\UFE0F' +emoji[index_pointing_up_unqualified]=$'\U261D' +emoji[index_pointing_up_light_skin_tone]=$'\U261D\U1F3FB' +emoji[index_pointing_up_medium_light_skin_tone]=$'\U261D\U1F3FC' +emoji[index_pointing_up_medium_skin_tone]=$'\U261D\U1F3FD' +emoji[index_pointing_up_medium_dark_skin_tone]=$'\U261D\U1F3FE' +emoji[index_pointing_up_dark_skin_tone]=$'\U261D\U1F3FF' +emoji[thumbs_up]=$'\U1F44D' +emoji[+1]=$'\U1F44D' +emoji[thumbsup]=$'\U1F44D' +emoji[thumbs_up_light_skin_tone]=$'\U1F44D\U1F3FB' +emoji[thumbs_up_medium_light_skin_tone]=$'\U1F44D\U1F3FC' +emoji[thumbs_up_medium_skin_tone]=$'\U1F44D\U1F3FD' +emoji[thumbs_up_medium_dark_skin_tone]=$'\U1F44D\U1F3FE' +emoji[thumbs_up_dark_skin_tone]=$'\U1F44D\U1F3FF' +emoji[thumbs_down]=$'\U1F44E' +emoji[-1]=$'\U1F44E' +emoji[thumbsdown]=$'\U1F44E' +emoji[thumbs_down_light_skin_tone]=$'\U1F44E\U1F3FB' +emoji[thumbs_down_medium_light_skin_tone]=$'\U1F44E\U1F3FC' +emoji[thumbs_down_medium_skin_tone]=$'\U1F44E\U1F3FD' +emoji[thumbs_down_medium_dark_skin_tone]=$'\U1F44E\U1F3FE' +emoji[thumbs_down_dark_skin_tone]=$'\U1F44E\U1F3FF' +emoji[raised_fist]=$'\U270A' +emoji[fist_raised]=$'\U270A' +emoji[fist]=$'\U270A' +emoji[raised_fist_light_skin_tone]=$'\U270A\U1F3FB' +emoji[raised_fist_medium_light_skin_tone]=$'\U270A\U1F3FC' +emoji[raised_fist_medium_skin_tone]=$'\U270A\U1F3FD' +emoji[raised_fist_medium_dark_skin_tone]=$'\U270A\U1F3FE' +emoji[raised_fist_dark_skin_tone]=$'\U270A\U1F3FF' +emoji[oncoming_fist]=$'\U1F44A' +emoji[fist_oncoming]=$'\U1F44A' +emoji[facepunch]=$'\U1F44A' +emoji[punch]=$'\U1F44A' +emoji[oncoming_fist_light_skin_tone]=$'\U1F44A\U1F3FB' +emoji[oncoming_fist_medium_light_skin_tone]=$'\U1F44A\U1F3FC' +emoji[oncoming_fist_medium_skin_tone]=$'\U1F44A\U1F3FD' +emoji[oncoming_fist_medium_dark_skin_tone]=$'\U1F44A\U1F3FE' +emoji[oncoming_fist_dark_skin_tone]=$'\U1F44A\U1F3FF' +emoji[left_facing_fist]=$'\U1F91B' +emoji[fist_left]=$'\U1F91B' +emoji[left_facing_fist_light_skin_tone]=$'\U1F91B\U1F3FB' +emoji[left_facing_fist_medium_light_skin_tone]=$'\U1F91B\U1F3FC' +emoji[left_facing_fist_medium_skin_tone]=$'\U1F91B\U1F3FD' +emoji[left_facing_fist_medium_dark_skin_tone]=$'\U1F91B\U1F3FE' +emoji[left_facing_fist_dark_skin_tone]=$'\U1F91B\U1F3FF' +emoji[right_facing_fist]=$'\U1F91C' +emoji[fist_right]=$'\U1F91C' +emoji[right_facing_fist_light_skin_tone]=$'\U1F91C\U1F3FB' +emoji[right_facing_fist_medium_light_skin_tone]=$'\U1F91C\U1F3FC' +emoji[right_facing_fist_medium_skin_tone]=$'\U1F91C\U1F3FD' +emoji[right_facing_fist_medium_dark_skin_tone]=$'\U1F91C\U1F3FE' +emoji[right_facing_fist_dark_skin_tone]=$'\U1F91C\U1F3FF' +emoji[clapping_hands]=$'\U1F44F' +emoji[clap]=$'\U1F44F' +emoji[clapping_hands_light_skin_tone]=$'\U1F44F\U1F3FB' +emoji[clapping_hands_medium_light_skin_tone]=$'\U1F44F\U1F3FC' +emoji[clapping_hands_medium_skin_tone]=$'\U1F44F\U1F3FD' +emoji[clapping_hands_medium_dark_skin_tone]=$'\U1F44F\U1F3FE' +emoji[clapping_hands_dark_skin_tone]=$'\U1F44F\U1F3FF' +emoji[raising_hands]=$'\U1F64C' +emoji[raised_hands]=$'\U1F64C' +emoji[raising_hands_light_skin_tone]=$'\U1F64C\U1F3FB' +emoji[raising_hands_medium_light_skin_tone]=$'\U1F64C\U1F3FC' +emoji[raising_hands_medium_skin_tone]=$'\U1F64C\U1F3FD' +emoji[raising_hands_medium_dark_skin_tone]=$'\U1F64C\U1F3FE' +emoji[raising_hands_dark_skin_tone]=$'\U1F64C\U1F3FF' +emoji[open_hands]=$'\U1F450' +emoji[open_hands_light_skin_tone]=$'\U1F450\U1F3FB' +emoji[open_hands_medium_light_skin_tone]=$'\U1F450\U1F3FC' +emoji[open_hands_medium_skin_tone]=$'\U1F450\U1F3FD' +emoji[open_hands_medium_dark_skin_tone]=$'\U1F450\U1F3FE' +emoji[open_hands_dark_skin_tone]=$'\U1F450\U1F3FF' +emoji[palms_up_together]=$'\U1F932' +emoji[palms_up_together_light_skin_tone]=$'\U1F932\U1F3FB' +emoji[palms_up_together_medium_light_skin_tone]=$'\U1F932\U1F3FC' +emoji[palms_up_together_medium_skin_tone]=$'\U1F932\U1F3FD' +emoji[palms_up_together_medium_dark_skin_tone]=$'\U1F932\U1F3FE' +emoji[palms_up_together_dark_skin_tone]=$'\U1F932\U1F3FF' +emoji[handshake]=$'\U1F91D' +emoji[folded_hands]=$'\U1F64F' +emoji[pray]=$'\U1F64F' +emoji[folded_hands_light_skin_tone]=$'\U1F64F\U1F3FB' +emoji[folded_hands_medium_light_skin_tone]=$'\U1F64F\U1F3FC' +emoji[folded_hands_medium_skin_tone]=$'\U1F64F\U1F3FD' +emoji[folded_hands_medium_dark_skin_tone]=$'\U1F64F\U1F3FE' +emoji[folded_hands_dark_skin_tone]=$'\U1F64F\U1F3FF' +emoji[writing_hand]=$'\U270D\UFE0F' +emoji[writing_hand_unqualified]=$'\U270D' +emoji[writing_hand_light_skin_tone]=$'\U270D\U1F3FB' +emoji[writing_hand_medium_light_skin_tone]=$'\U270D\U1F3FC' +emoji[writing_hand_medium_skin_tone]=$'\U270D\U1F3FD' +emoji[writing_hand_medium_dark_skin_tone]=$'\U270D\U1F3FE' +emoji[writing_hand_dark_skin_tone]=$'\U270D\U1F3FF' +emoji[nail_polish]=$'\U1F485' +emoji[nail_care]=$'\U1F485' +emoji[nail_polish_light_skin_tone]=$'\U1F485\U1F3FB' +emoji[nail_polish_medium_light_skin_tone]=$'\U1F485\U1F3FC' +emoji[nail_polish_medium_skin_tone]=$'\U1F485\U1F3FD' +emoji[nail_polish_medium_dark_skin_tone]=$'\U1F485\U1F3FE' +emoji[nail_polish_dark_skin_tone]=$'\U1F485\U1F3FF' +emoji[selfie]=$'\U1F933' +emoji[selfie_light_skin_tone]=$'\U1F933\U1F3FB' +emoji[selfie_medium_light_skin_tone]=$'\U1F933\U1F3FC' +emoji[selfie_medium_skin_tone]=$'\U1F933\U1F3FD' +emoji[selfie_medium_dark_skin_tone]=$'\U1F933\U1F3FE' +emoji[selfie_dark_skin_tone]=$'\U1F933\U1F3FF' +emoji[flexed_biceps]=$'\U1F4AA' +emoji[muscle]=$'\U1F4AA' +emoji[flexed_biceps_light_skin_tone]=$'\U1F4AA\U1F3FB' +emoji[flexed_biceps_medium_light_skin_tone]=$'\U1F4AA\U1F3FC' +emoji[flexed_biceps_medium_skin_tone]=$'\U1F4AA\U1F3FD' +emoji[flexed_biceps_medium_dark_skin_tone]=$'\U1F4AA\U1F3FE' +emoji[flexed_biceps_dark_skin_tone]=$'\U1F4AA\U1F3FF' +emoji[mechanical_arm]=$'\U1F9BE' +emoji[mechanical_leg]=$'\U1F9BF' +emoji[mechanical_leg_1]=$'\U1F9B5' +emoji[leg]=$'\U1F9B5' +emoji[leg_light_skin_tone]=$'\U1F9B5\U1F3FB' +emoji[leg_medium_light_skin_tone]=$'\U1F9B5\U1F3FC' +emoji[leg_medium_skin_tone]=$'\U1F9B5\U1F3FD' +emoji[leg_medium_dark_skin_tone]=$'\U1F9B5\U1F3FE' +emoji[leg_dark_skin_tone]=$'\U1F9B5\U1F3FF' +emoji[foot]=$'\U1F9B6' +emoji[foot_light_skin_tone]=$'\U1F9B6\U1F3FB' +emoji[foot_medium_light_skin_tone]=$'\U1F9B6\U1F3FC' +emoji[foot_medium_skin_tone]=$'\U1F9B6\U1F3FD' +emoji[foot_medium_dark_skin_tone]=$'\U1F9B6\U1F3FE' +emoji[foot_dark_skin_tone]=$'\U1F9B6\U1F3FF' +emoji[ear]=$'\U1F442' +emoji[ear_light_skin_tone]=$'\U1F442\U1F3FB' +emoji[ear_medium_light_skin_tone]=$'\U1F442\U1F3FC' +emoji[ear_medium_skin_tone]=$'\U1F442\U1F3FD' +emoji[ear_medium_dark_skin_tone]=$'\U1F442\U1F3FE' +emoji[ear_dark_skin_tone]=$'\U1F442\U1F3FF' +emoji[ear_with_hearing_aid]=$'\U1F9BB' +emoji[ear_with_hearing_aid_light_skin_tone]=$'\U1F9BB\U1F3FB' +emoji[ear_with_hearing_aid_medium_light_skin_tone]=$'\U1F9BB\U1F3FC' +emoji[ear_with_hearing_aid_medium_skin_tone]=$'\U1F9BB\U1F3FD' +emoji[ear_with_hearing_aid_medium_dark_skin_tone]=$'\U1F9BB\U1F3FE' +emoji[ear_with_hearing_aid_dark_skin_tone]=$'\U1F9BB\U1F3FF' +emoji[nose]=$'\U1F443' +emoji[nose_light_skin_tone]=$'\U1F443\U1F3FB' +emoji[nose_medium_light_skin_tone]=$'\U1F443\U1F3FC' +emoji[nose_medium_skin_tone]=$'\U1F443\U1F3FD' +emoji[nose_medium_dark_skin_tone]=$'\U1F443\U1F3FE' +emoji[nose_dark_skin_tone]=$'\U1F443\U1F3FF' +emoji[brain]=$'\U1F9E0' +emoji[tooth]=$'\U1F9B7' +emoji[bone]=$'\U1F9B4' +emoji[eyes]=$'\U1F440' +emoji[eyes_1]=$'\U1F441\UFE0F' +emoji[eye_unqualified]=$'\U1F441' +emoji[eye]=$'\U1F441' +emoji[tongue]=$'\U1F445' +emoji[mouth]=$'\U1F444' +emoji[lips]=$'\U1F444' +emoji[baby]=$'\U1F476' +emoji[baby_light_skin_tone]=$'\U1F476\U1F3FB' +emoji[baby_medium_light_skin_tone]=$'\U1F476\U1F3FC' +emoji[baby_medium_skin_tone]=$'\U1F476\U1F3FD' +emoji[baby_medium_dark_skin_tone]=$'\U1F476\U1F3FE' +emoji[baby_dark_skin_tone]=$'\U1F476\U1F3FF' +emoji[child]=$'\U1F9D2' +emoji[child_light_skin_tone]=$'\U1F9D2\U1F3FB' +emoji[child_medium_light_skin_tone]=$'\U1F9D2\U1F3FC' +emoji[child_medium_skin_tone]=$'\U1F9D2\U1F3FD' +emoji[child_medium_dark_skin_tone]=$'\U1F9D2\U1F3FE' +emoji[child_dark_skin_tone]=$'\U1F9D2\U1F3FF' +emoji[boy]=$'\U1F466' +emoji[boy_light_skin_tone]=$'\U1F466\U1F3FB' +emoji[boy_medium_light_skin_tone]=$'\U1F466\U1F3FC' +emoji[boy_medium_skin_tone]=$'\U1F466\U1F3FD' +emoji[boy_medium_dark_skin_tone]=$'\U1F466\U1F3FE' +emoji[boy_dark_skin_tone]=$'\U1F466\U1F3FF' +emoji[girl]=$'\U1F467' +emoji[girl_light_skin_tone]=$'\U1F467\U1F3FB' +emoji[girl_medium_light_skin_tone]=$'\U1F467\U1F3FC' +emoji[girl_medium_skin_tone]=$'\U1F467\U1F3FD' +emoji[girl_medium_dark_skin_tone]=$'\U1F467\U1F3FE' +emoji[girl_dark_skin_tone]=$'\U1F467\U1F3FF' +emoji[person]=$'\U1F9D1' +emoji[adult]=$'\U1F9D1' +emoji[person_light_skin_tone]=$'\U1F9D1\U1F3FB' +emoji[person_medium_light_skin_tone]=$'\U1F9D1\U1F3FC' +emoji[person_medium_skin_tone]=$'\U1F9D1\U1F3FD' +emoji[person_medium_dark_skin_tone]=$'\U1F9D1\U1F3FE' +emoji[person_dark_skin_tone]=$'\U1F9D1\U1F3FF' +emoji[person_blond_hair]=$'\U1F471' +emoji[blond_haired_person]=$'\U1F471' +emoji[person_light_skin_tone_blond_hair]=$'\U1F471\U1F3FB' +emoji[person_medium_light_skin_tone_blond_hair]=$'\U1F471\U1F3FC' +emoji[person_medium_skin_tone_blond_hair]=$'\U1F471\U1F3FD' +emoji[person_medium_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FE' +emoji[person_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FF' +emoji[man]=$'\U1F468' +emoji[man_light_skin_tone]=$'\U1F468\U1F3FB' +emoji[man_medium_light_skin_tone]=$'\U1F468\U1F3FC' +emoji[man_medium_skin_tone]=$'\U1F468\U1F3FD' +emoji[man_medium_dark_skin_tone]=$'\U1F468\U1F3FE' +emoji[man_dark_skin_tone]=$'\U1F468\U1F3FF' +emoji[man_beard]=$'\U1F9D4' +emoji[bearded_person]=$'\U1F9D4' +emoji[man_light_skin_tone_beard]=$'\U1F9D4\U1F3FB' +emoji[man_medium_light_skin_tone_beard]=$'\U1F9D4\U1F3FC' +emoji[man_medium_skin_tone_beard]=$'\U1F9D4\U1F3FD' +emoji[man_medium_dark_skin_tone_beard]=$'\U1F9D4\U1F3FE' +emoji[man_dark_skin_tone_beard]=$'\U1F9D4\U1F3FF' +emoji[man_blond_hair]=$'\U1F471\U200D\U2642\UFE0F' +emoji[man_blond_hair_minimally]=$'\U1F471\U200D\U2642' +emoji[blond_haired_man]=$'\U1F471\U200D\U2642' +emoji[man_light_skin_tone_blond_hair]=$'\U1F471\U1F3FB\U200D\U2642\UFE0F' +emoji[man_light_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FB\U200D\U2642' +emoji[man_medium_light_skin_tone_blond_hair]=$'\U1F471\U1F3FC\U200D\U2642\UFE0F' +emoji[man_medium_light_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FC\U200D\U2642' +emoji[man_medium_skin_tone_blond_hair]=$'\U1F471\U1F3FD\U200D\U2642\UFE0F' +emoji[man_medium_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FD\U200D\U2642' +emoji[man_medium_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FE\U200D\U2642\UFE0F' +emoji[man_medium_dark_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FE\U200D\U2642' +emoji[man_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FF\U200D\U2642\UFE0F' +emoji[man_dark_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FF\U200D\U2642' +emoji[man_red_hair]=$'\U1F468\U200D\U1F9B0' +emoji[red_haired_man]=$'\U1F468\U200D\U1F9B0' +emoji[man_light_skin_tone_red_hair]=$'\U1F468\U1F3FB\U200D\U1F9B0' +emoji[man_medium_light_skin_tone_red_hair]=$'\U1F468\U1F3FC\U200D\U1F9B0' +emoji[man_medium_skin_tone_red_hair]=$'\U1F468\U1F3FD\U200D\U1F9B0' +emoji[man_medium_dark_skin_tone_red_hair]=$'\U1F468\U1F3FE\U200D\U1F9B0' +emoji[man_dark_skin_tone_red_hair]=$'\U1F468\U1F3FF\U200D\U1F9B0' +emoji[man_curly_hair]=$'\U1F468\U200D\U1F9B1' +emoji[curly_haired_man]=$'\U1F468\U200D\U1F9B1' +emoji[man_light_skin_tone_curly_hair]=$'\U1F468\U1F3FB\U200D\U1F9B1' +emoji[man_medium_light_skin_tone_curly_hair]=$'\U1F468\U1F3FC\U200D\U1F9B1' +emoji[man_medium_skin_tone_curly_hair]=$'\U1F468\U1F3FD\U200D\U1F9B1' +emoji[man_medium_dark_skin_tone_curly_hair]=$'\U1F468\U1F3FE\U200D\U1F9B1' +emoji[man_dark_skin_tone_curly_hair]=$'\U1F468\U1F3FF\U200D\U1F9B1' +emoji[man_white_hair]=$'\U1F468\U200D\U1F9B3' +emoji[white_haired_man]=$'\U1F468\U200D\U1F9B3' +emoji[man_light_skin_tone_white_hair]=$'\U1F468\U1F3FB\U200D\U1F9B3' +emoji[man_medium_light_skin_tone_white_hair]=$'\U1F468\U1F3FC\U200D\U1F9B3' +emoji[man_medium_skin_tone_white_hair]=$'\U1F468\U1F3FD\U200D\U1F9B3' +emoji[man_medium_dark_skin_tone_white_hair]=$'\U1F468\U1F3FE\U200D\U1F9B3' +emoji[man_dark_skin_tone_white_hair]=$'\U1F468\U1F3FF\U200D\U1F9B3' +emoji[man_bald]=$'\U1F468\U200D\U1F9B2' +emoji[bald_man]=$'\U1F468\U200D\U1F9B2' +emoji[man_light_skin_tone_bald]=$'\U1F468\U1F3FB\U200D\U1F9B2' +emoji[man_medium_light_skin_tone_bald]=$'\U1F468\U1F3FC\U200D\U1F9B2' +emoji[man_medium_skin_tone_bald]=$'\U1F468\U1F3FD\U200D\U1F9B2' +emoji[man_medium_dark_skin_tone_bald]=$'\U1F468\U1F3FE\U200D\U1F9B2' +emoji[man_dark_skin_tone_bald]=$'\U1F468\U1F3FF\U200D\U1F9B2' +emoji[woman]=$'\U1F469' +emoji[woman_light_skin_tone]=$'\U1F469\U1F3FB' +emoji[woman_medium_light_skin_tone]=$'\U1F469\U1F3FC' +emoji[woman_medium_skin_tone]=$'\U1F469\U1F3FD' +emoji[woman_medium_dark_skin_tone]=$'\U1F469\U1F3FE' +emoji[woman_dark_skin_tone]=$'\U1F469\U1F3FF' +emoji[woman_blond_hair]=$'\U1F471\U200D\U2640\UFE0F' +emoji[woman_blond_hair_minimally]=$'\U1F471\U200D\U2640' +emoji[blond_haired_woman]=$'\U1F471\U200D\U2640' +emoji[blonde_woman]=$'\U1F471\U200D\U2640' +emoji[woman_light_skin_tone_blond_hair]=$'\U1F471\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_light_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FB\U200D\U2640' +emoji[woman_medium_light_skin_tone_blond_hair]=$'\U1F471\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_medium_light_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FC\U200D\U2640' +emoji[woman_medium_skin_tone_blond_hair]=$'\U1F471\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_medium_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FD\U200D\U2640' +emoji[woman_medium_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_medium_dark_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FE\U200D\U2640' +emoji[woman_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_dark_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FF\U200D\U2640' +emoji[woman_red_hair]=$'\U1F469\U200D\U1F9B0' +emoji[red_haired_woman]=$'\U1F469\U200D\U1F9B0' +emoji[woman_light_skin_tone_red_hair]=$'\U1F469\U1F3FB\U200D\U1F9B0' +emoji[woman_medium_light_skin_tone_red_hair]=$'\U1F469\U1F3FC\U200D\U1F9B0' +emoji[woman_medium_skin_tone_red_hair]=$'\U1F469\U1F3FD\U200D\U1F9B0' +emoji[woman_medium_dark_skin_tone_red_hair]=$'\U1F469\U1F3FE\U200D\U1F9B0' +emoji[woman_dark_skin_tone_red_hair]=$'\U1F469\U1F3FF\U200D\U1F9B0' +emoji[woman_curly_hair]=$'\U1F469\U200D\U1F9B1' +emoji[curly_haired_woman]=$'\U1F469\U200D\U1F9B1' +emoji[woman_light_skin_tone_curly_hair]=$'\U1F469\U1F3FB\U200D\U1F9B1' +emoji[woman_medium_light_skin_tone_curly_hair]=$'\U1F469\U1F3FC\U200D\U1F9B1' +emoji[woman_medium_skin_tone_curly_hair]=$'\U1F469\U1F3FD\U200D\U1F9B1' +emoji[woman_medium_dark_skin_tone_curly_hair]=$'\U1F469\U1F3FE\U200D\U1F9B1' +emoji[woman_dark_skin_tone_curly_hair]=$'\U1F469\U1F3FF\U200D\U1F9B1' +emoji[woman_white_hair]=$'\U1F469\U200D\U1F9B3' +emoji[white_haired_woman]=$'\U1F469\U200D\U1F9B3' +emoji[woman_light_skin_tone_white_hair]=$'\U1F469\U1F3FB\U200D\U1F9B3' +emoji[woman_medium_light_skin_tone_white_hair]=$'\U1F469\U1F3FC\U200D\U1F9B3' +emoji[woman_medium_skin_tone_white_hair]=$'\U1F469\U1F3FD\U200D\U1F9B3' +emoji[woman_medium_dark_skin_tone_white_hair]=$'\U1F469\U1F3FE\U200D\U1F9B3' +emoji[woman_dark_skin_tone_white_hair]=$'\U1F469\U1F3FF\U200D\U1F9B3' +emoji[woman_bald]=$'\U1F469\U200D\U1F9B2' +emoji[bald_woman]=$'\U1F469\U200D\U1F9B2' +emoji[woman_light_skin_tone_bald]=$'\U1F469\U1F3FB\U200D\U1F9B2' +emoji[woman_medium_light_skin_tone_bald]=$'\U1F469\U1F3FC\U200D\U1F9B2' +emoji[woman_medium_skin_tone_bald]=$'\U1F469\U1F3FD\U200D\U1F9B2' +emoji[woman_medium_dark_skin_tone_bald]=$'\U1F469\U1F3FE\U200D\U1F9B2' +emoji[woman_dark_skin_tone_bald]=$'\U1F469\U1F3FF\U200D\U1F9B2' +emoji[older_person]=$'\U1F9D3' +emoji[older_adult]=$'\U1F9D3' +emoji[older_person_light_skin_tone]=$'\U1F9D3\U1F3FB' +emoji[older_person_medium_light_skin_tone]=$'\U1F9D3\U1F3FC' +emoji[older_person_medium_skin_tone]=$'\U1F9D3\U1F3FD' +emoji[older_person_medium_dark_skin_tone]=$'\U1F9D3\U1F3FE' +emoji[older_person_dark_skin_tone]=$'\U1F9D3\U1F3FF' +emoji[old_man]=$'\U1F474' +emoji[older_man]=$'\U1F474' +emoji[old_man_light_skin_tone]=$'\U1F474\U1F3FB' +emoji[old_man_medium_light_skin_tone]=$'\U1F474\U1F3FC' +emoji[old_man_medium_skin_tone]=$'\U1F474\U1F3FD' +emoji[old_man_medium_dark_skin_tone]=$'\U1F474\U1F3FE' +emoji[old_man_dark_skin_tone]=$'\U1F474\U1F3FF' +emoji[old_woman]=$'\U1F475' +emoji[older_woman]=$'\U1F475' +emoji[old_woman_light_skin_tone]=$'\U1F475\U1F3FB' +emoji[old_woman_medium_light_skin_tone]=$'\U1F475\U1F3FC' +emoji[old_woman_medium_skin_tone]=$'\U1F475\U1F3FD' +emoji[old_woman_medium_dark_skin_tone]=$'\U1F475\U1F3FE' +emoji[old_woman_dark_skin_tone]=$'\U1F475\U1F3FF' +emoji[person_frowning]=$'\U1F64D' +emoji[frowning_person]=$'\U1F64D' +emoji[person_frowning_light_skin_tone]=$'\U1F64D\U1F3FB' +emoji[person_frowning_medium_light_skin_tone]=$'\U1F64D\U1F3FC' +emoji[person_frowning_medium_skin_tone]=$'\U1F64D\U1F3FD' +emoji[person_frowning_medium_dark_skin_tone]=$'\U1F64D\U1F3FE' +emoji[person_frowning_dark_skin_tone]=$'\U1F64D\U1F3FF' +emoji[man_frowning]=$'\U1F64D\U200D\U2642\UFE0F' +emoji[man_frowning_minimally]=$'\U1F64D\U200D\U2642' +emoji[frowning_man]=$'\U1F64D\U200D\U2642' +emoji[man_frowning_light_skin_tone]=$'\U1F64D\U1F3FB\U200D\U2642\UFE0F' +emoji[man_frowning_light_skin_tone_minimally]=$'\U1F64D\U1F3FB\U200D\U2642' +emoji[man_frowning_medium_light_skin_tone]=$'\U1F64D\U1F3FC\U200D\U2642\UFE0F' +emoji[man_frowning_medium_light_skin_tone_minimally]=$'\U1F64D\U1F3FC\U200D\U2642' +emoji[man_frowning_medium_skin_tone]=$'\U1F64D\U1F3FD\U200D\U2642\UFE0F' +emoji[man_frowning_medium_skin_tone_minimally]=$'\U1F64D\U1F3FD\U200D\U2642' +emoji[man_frowning_medium_dark_skin_tone]=$'\U1F64D\U1F3FE\U200D\U2642\UFE0F' +emoji[man_frowning_medium_dark_skin_tone_minimally]=$'\U1F64D\U1F3FE\U200D\U2642' +emoji[man_frowning_dark_skin_tone]=$'\U1F64D\U1F3FF\U200D\U2642\UFE0F' +emoji[man_frowning_dark_skin_tone_minimally]=$'\U1F64D\U1F3FF\U200D\U2642' +emoji[woman_frowning]=$'\U1F64D\U200D\U2640\UFE0F' +emoji[woman_frowning_minimally]=$'\U1F64D\U200D\U2640' +emoji[frowning_woman]=$'\U1F64D\U200D\U2640' +emoji[woman_frowning_light_skin_tone]=$'\U1F64D\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_frowning_light_skin_tone_minimally]=$'\U1F64D\U1F3FB\U200D\U2640' +emoji[woman_frowning_medium_light_skin_tone]=$'\U1F64D\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_frowning_medium_light_skin_tone_minimally]=$'\U1F64D\U1F3FC\U200D\U2640' +emoji[woman_frowning_medium_skin_tone]=$'\U1F64D\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_frowning_medium_skin_tone_minimally]=$'\U1F64D\U1F3FD\U200D\U2640' +emoji[woman_frowning_medium_dark_skin_tone]=$'\U1F64D\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_frowning_medium_dark_skin_tone_minimally]=$'\U1F64D\U1F3FE\U200D\U2640' +emoji[woman_frowning_dark_skin_tone]=$'\U1F64D\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_frowning_dark_skin_tone_minimally]=$'\U1F64D\U1F3FF\U200D\U2640' +emoji[person_pouting]=$'\U1F64E' +emoji[person_pouting_light_skin_tone]=$'\U1F64E\U1F3FB' +emoji[person_pouting_medium_light_skin_tone]=$'\U1F64E\U1F3FC' +emoji[person_pouting_medium_skin_tone]=$'\U1F64E\U1F3FD' +emoji[person_pouting_medium_dark_skin_tone]=$'\U1F64E\U1F3FE' +emoji[person_pouting_dark_skin_tone]=$'\U1F64E\U1F3FF' +emoji[man_pouting]=$'\U1F64E\U200D\U2642\UFE0F' +emoji[man_pouting_minimally]=$'\U1F64E\U200D\U2642' +emoji[pouting_man]=$'\U1F64E\U200D\U2642' +emoji[man_pouting_light_skin_tone]=$'\U1F64E\U1F3FB\U200D\U2642\UFE0F' +emoji[man_pouting_light_skin_tone_minimally]=$'\U1F64E\U1F3FB\U200D\U2642' +emoji[man_pouting_medium_light_skin_tone]=$'\U1F64E\U1F3FC\U200D\U2642\UFE0F' +emoji[man_pouting_medium_light_skin_tone_minimally]=$'\U1F64E\U1F3FC\U200D\U2642' +emoji[man_pouting_medium_skin_tone]=$'\U1F64E\U1F3FD\U200D\U2642\UFE0F' +emoji[man_pouting_medium_skin_tone_minimally]=$'\U1F64E\U1F3FD\U200D\U2642' +emoji[man_pouting_medium_dark_skin_tone]=$'\U1F64E\U1F3FE\U200D\U2642\UFE0F' +emoji[man_pouting_medium_dark_skin_tone_minimally]=$'\U1F64E\U1F3FE\U200D\U2642' +emoji[man_pouting_dark_skin_tone]=$'\U1F64E\U1F3FF\U200D\U2642\UFE0F' +emoji[man_pouting_dark_skin_tone_minimally]=$'\U1F64E\U1F3FF\U200D\U2642' +emoji[woman_pouting]=$'\U1F64E\U200D\U2640\UFE0F' +emoji[woman_pouting_minimally]=$'\U1F64E\U200D\U2640' +emoji[pouting_woman]=$'\U1F64E\U200D\U2640' +emoji[woman_pouting_light_skin_tone]=$'\U1F64E\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_pouting_light_skin_tone_minimally]=$'\U1F64E\U1F3FB\U200D\U2640' +emoji[woman_pouting_medium_light_skin_tone]=$'\U1F64E\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_pouting_medium_light_skin_tone_minimally]=$'\U1F64E\U1F3FC\U200D\U2640' +emoji[woman_pouting_medium_skin_tone]=$'\U1F64E\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_pouting_medium_skin_tone_minimally]=$'\U1F64E\U1F3FD\U200D\U2640' +emoji[woman_pouting_medium_dark_skin_tone]=$'\U1F64E\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_pouting_medium_dark_skin_tone_minimally]=$'\U1F64E\U1F3FE\U200D\U2640' +emoji[woman_pouting_dark_skin_tone]=$'\U1F64E\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_pouting_dark_skin_tone_minimally]=$'\U1F64E\U1F3FF\U200D\U2640' +emoji[person_gesturing_NO]=$'\U1F645' +emoji[no_good]=$'\U1F645' +emoji[person_gesturing_NO_light_skin_tone]=$'\U1F645\U1F3FB' +emoji[person_gesturing_NO_medium_light_skin_tone]=$'\U1F645\U1F3FC' +emoji[person_gesturing_NO_medium_skin_tone]=$'\U1F645\U1F3FD' +emoji[person_gesturing_NO_medium_dark_skin_tone]=$'\U1F645\U1F3FE' +emoji[person_gesturing_NO_dark_skin_tone]=$'\U1F645\U1F3FF' +emoji[man_gesturing_NO]=$'\U1F645\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_minimally]=$'\U1F645\U200D\U2642' +emoji[no_good_man]=$'\U1F645\U200D\U2642' +emoji[ng_man]=$'\U1F645\U200D\U2642' +emoji[man_gesturing_NO_light_skin_tone]=$'\U1F645\U1F3FB\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_light_skin_tone_minimally]=$'\U1F645\U1F3FB\U200D\U2642' +emoji[man_gesturing_NO_medium_light_skin_tone]=$'\U1F645\U1F3FC\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_medium_light_skin_tone_minimally]=$'\U1F645\U1F3FC\U200D\U2642' +emoji[man_gesturing_NO_medium_skin_tone]=$'\U1F645\U1F3FD\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_medium_skin_tone_minimally]=$'\U1F645\U1F3FD\U200D\U2642' +emoji[man_gesturing_NO_medium_dark_skin_tone]=$'\U1F645\U1F3FE\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_medium_dark_skin_tone_minimally]=$'\U1F645\U1F3FE\U200D\U2642' +emoji[man_gesturing_NO_dark_skin_tone]=$'\U1F645\U1F3FF\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_dark_skin_tone_minimally]=$'\U1F645\U1F3FF\U200D\U2642' +emoji[woman_gesturing_NO]=$'\U1F645\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_minimally]=$'\U1F645\U200D\U2640' +emoji[no_good_woman]=$'\U1F645\U200D\U2640' +emoji[ng_woman]=$'\U1F645\U200D\U2640' +emoji[woman_gesturing_NO_light_skin_tone]=$'\U1F645\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_light_skin_tone_minimally]=$'\U1F645\U1F3FB\U200D\U2640' +emoji[woman_gesturing_NO_medium_light_skin_tone]=$'\U1F645\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_medium_light_skin_tone_minimally]=$'\U1F645\U1F3FC\U200D\U2640' +emoji[woman_gesturing_NO_medium_skin_tone]=$'\U1F645\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_medium_skin_tone_minimally]=$'\U1F645\U1F3FD\U200D\U2640' +emoji[woman_gesturing_NO_medium_dark_skin_tone]=$'\U1F645\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_medium_dark_skin_tone_minimally]=$'\U1F645\U1F3FE\U200D\U2640' +emoji[woman_gesturing_NO_dark_skin_tone]=$'\U1F645\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_dark_skin_tone_minimally]=$'\U1F645\U1F3FF\U200D\U2640' +emoji[person_gesturing_OK]=$'\U1F646' +emoji[ok_person]=$'\U1F646' +emoji[person_gesturing_OK_light_skin_tone]=$'\U1F646\U1F3FB' +emoji[person_gesturing_OK_medium_light_skin_tone]=$'\U1F646\U1F3FC' +emoji[person_gesturing_OK_medium_skin_tone]=$'\U1F646\U1F3FD' +emoji[person_gesturing_OK_medium_dark_skin_tone]=$'\U1F646\U1F3FE' +emoji[person_gesturing_OK_dark_skin_tone]=$'\U1F646\U1F3FF' +emoji[man_gesturing_OK]=$'\U1F646\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_minimally]=$'\U1F646\U200D\U2642' +emoji[ok_man]=$'\U1F646\U200D\U2642' +emoji[man_gesturing_OK_light_skin_tone]=$'\U1F646\U1F3FB\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_light_skin_tone_minimally]=$'\U1F646\U1F3FB\U200D\U2642' +emoji[man_gesturing_OK_medium_light_skin_tone]=$'\U1F646\U1F3FC\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_medium_light_skin_tone_minimally]=$'\U1F646\U1F3FC\U200D\U2642' +emoji[man_gesturing_OK_medium_skin_tone]=$'\U1F646\U1F3FD\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_medium_skin_tone_minimally]=$'\U1F646\U1F3FD\U200D\U2642' +emoji[man_gesturing_OK_medium_dark_skin_tone]=$'\U1F646\U1F3FE\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_medium_dark_skin_tone_minimally]=$'\U1F646\U1F3FE\U200D\U2642' +emoji[man_gesturing_OK_dark_skin_tone]=$'\U1F646\U1F3FF\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_dark_skin_tone_minimally]=$'\U1F646\U1F3FF\U200D\U2642' +emoji[woman_gesturing_OK]=$'\U1F646\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_minimally]=$'\U1F646\U200D\U2640' +emoji[ok_woman]=$'\U1F646\U200D\U2640' +emoji[woman_gesturing_OK_light_skin_tone]=$'\U1F646\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_light_skin_tone_minimally]=$'\U1F646\U1F3FB\U200D\U2640' +emoji[woman_gesturing_OK_medium_light_skin_tone]=$'\U1F646\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_medium_light_skin_tone_minimally]=$'\U1F646\U1F3FC\U200D\U2640' +emoji[woman_gesturing_OK_medium_skin_tone]=$'\U1F646\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_medium_skin_tone_minimally]=$'\U1F646\U1F3FD\U200D\U2640' +emoji[woman_gesturing_OK_medium_dark_skin_tone]=$'\U1F646\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_medium_dark_skin_tone_minimally]=$'\U1F646\U1F3FE\U200D\U2640' +emoji[woman_gesturing_OK_dark_skin_tone]=$'\U1F646\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_dark_skin_tone_minimally]=$'\U1F646\U1F3FF\U200D\U2640' +emoji[person_tipping_hand]=$'\U1F481' +emoji[tipping_hand_person]=$'\U1F481' +emoji[information_desk_person]=$'\U1F481' +emoji[person_tipping_hand_light_skin_tone]=$'\U1F481\U1F3FB' +emoji[person_tipping_hand_medium_light_skin_tone]=$'\U1F481\U1F3FC' +emoji[person_tipping_hand_medium_skin_tone]=$'\U1F481\U1F3FD' +emoji[person_tipping_hand_medium_dark_skin_tone]=$'\U1F481\U1F3FE' +emoji[person_tipping_hand_dark_skin_tone]=$'\U1F481\U1F3FF' +emoji[man_tipping_hand]=$'\U1F481\U200D\U2642\UFE0F' +emoji[man_tipping_hand_minimally]=$'\U1F481\U200D\U2642' +emoji[tipping_hand_man]=$'\U1F481\U200D\U2642' +emoji[sassy_man]=$'\U1F481\U200D\U2642' +emoji[man_tipping_hand_light_skin_tone]=$'\U1F481\U1F3FB\U200D\U2642\UFE0F' +emoji[man_tipping_hand_light_skin_tone_minimally]=$'\U1F481\U1F3FB\U200D\U2642' +emoji[man_tipping_hand_medium_light_skin_tone]=$'\U1F481\U1F3FC\U200D\U2642\UFE0F' +emoji[man_tipping_hand_medium_light_skin_tone_minimally]=$'\U1F481\U1F3FC\U200D\U2642' +emoji[man_tipping_hand_medium_skin_tone]=$'\U1F481\U1F3FD\U200D\U2642\UFE0F' +emoji[man_tipping_hand_medium_skin_tone_minimally]=$'\U1F481\U1F3FD\U200D\U2642' +emoji[man_tipping_hand_medium_dark_skin_tone]=$'\U1F481\U1F3FE\U200D\U2642\UFE0F' +emoji[man_tipping_hand_medium_dark_skin_tone_minimally]=$'\U1F481\U1F3FE\U200D\U2642' +emoji[man_tipping_hand_dark_skin_tone]=$'\U1F481\U1F3FF\U200D\U2642\UFE0F' +emoji[man_tipping_hand_dark_skin_tone_minimally]=$'\U1F481\U1F3FF\U200D\U2642' +emoji[woman_tipping_hand]=$'\U1F481\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_minimally]=$'\U1F481\U200D\U2640' +emoji[tipping_hand_woman]=$'\U1F481\U200D\U2640' +emoji[sassy_woman]=$'\U1F481\U200D\U2640' +emoji[woman_tipping_hand_light_skin_tone]=$'\U1F481\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_light_skin_tone_minimally]=$'\U1F481\U1F3FB\U200D\U2640' +emoji[woman_tipping_hand_medium_light_skin_tone]=$'\U1F481\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_medium_light_skin_tone_minimally]=$'\U1F481\U1F3FC\U200D\U2640' +emoji[woman_tipping_hand_medium_skin_tone]=$'\U1F481\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_medium_skin_tone_minimally]=$'\U1F481\U1F3FD\U200D\U2640' +emoji[woman_tipping_hand_medium_dark_skin_tone]=$'\U1F481\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_medium_dark_skin_tone_minimally]=$'\U1F481\U1F3FE\U200D\U2640' +emoji[woman_tipping_hand_dark_skin_tone]=$'\U1F481\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_dark_skin_tone_minimally]=$'\U1F481\U1F3FF\U200D\U2640' +emoji[person_raising_hand]=$'\U1F64B' +emoji[raising_hand]=$'\U1F64B' +emoji[person_raising_hand_light_skin_tone]=$'\U1F64B\U1F3FB' +emoji[person_raising_hand_medium_light_skin_tone]=$'\U1F64B\U1F3FC' +emoji[person_raising_hand_medium_skin_tone]=$'\U1F64B\U1F3FD' +emoji[person_raising_hand_medium_dark_skin_tone]=$'\U1F64B\U1F3FE' +emoji[person_raising_hand_dark_skin_tone]=$'\U1F64B\U1F3FF' +emoji[man_raising_hand]=$'\U1F64B\U200D\U2642\UFE0F' +emoji[man_raising_hand_minimally]=$'\U1F64B\U200D\U2642' +emoji[raising_hand_man]=$'\U1F64B\U200D\U2642' +emoji[man_raising_hand_light_skin_tone]=$'\U1F64B\U1F3FB\U200D\U2642\UFE0F' +emoji[man_raising_hand_light_skin_tone_minimally]=$'\U1F64B\U1F3FB\U200D\U2642' +emoji[man_raising_hand_medium_light_skin_tone]=$'\U1F64B\U1F3FC\U200D\U2642\UFE0F' +emoji[man_raising_hand_medium_light_skin_tone_minimally]=$'\U1F64B\U1F3FC\U200D\U2642' +emoji[man_raising_hand_medium_skin_tone]=$'\U1F64B\U1F3FD\U200D\U2642\UFE0F' +emoji[man_raising_hand_medium_skin_tone_minimally]=$'\U1F64B\U1F3FD\U200D\U2642' +emoji[man_raising_hand_medium_dark_skin_tone]=$'\U1F64B\U1F3FE\U200D\U2642\UFE0F' +emoji[man_raising_hand_medium_dark_skin_tone_minimally]=$'\U1F64B\U1F3FE\U200D\U2642' +emoji[man_raising_hand_dark_skin_tone]=$'\U1F64B\U1F3FF\U200D\U2642\UFE0F' +emoji[man_raising_hand_dark_skin_tone_minimally]=$'\U1F64B\U1F3FF\U200D\U2642' +emoji[woman_raising_hand]=$'\U1F64B\U200D\U2640\UFE0F' +emoji[woman_raising_hand_minimally]=$'\U1F64B\U200D\U2640' +emoji[raising_hand_woman]=$'\U1F64B\U200D\U2640' +emoji[woman_raising_hand_light_skin_tone]=$'\U1F64B\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_raising_hand_light_skin_tone_minimally]=$'\U1F64B\U1F3FB\U200D\U2640' +emoji[woman_raising_hand_medium_light_skin_tone]=$'\U1F64B\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_raising_hand_medium_light_skin_tone_minimally]=$'\U1F64B\U1F3FC\U200D\U2640' +emoji[woman_raising_hand_medium_skin_tone]=$'\U1F64B\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_raising_hand_medium_skin_tone_minimally]=$'\U1F64B\U1F3FD\U200D\U2640' +emoji[woman_raising_hand_medium_dark_skin_tone]=$'\U1F64B\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_raising_hand_medium_dark_skin_tone_minimally]=$'\U1F64B\U1F3FE\U200D\U2640' +emoji[woman_raising_hand_dark_skin_tone]=$'\U1F64B\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_raising_hand_dark_skin_tone_minimally]=$'\U1F64B\U1F3FF\U200D\U2640' +emoji[deaf_person]=$'\U1F9CF' +emoji[deaf_person_light_skin_tone]=$'\U1F9CF\U1F3FB' +emoji[deaf_person_medium_light_skin_tone]=$'\U1F9CF\U1F3FC' +emoji[deaf_person_medium_skin_tone]=$'\U1F9CF\U1F3FD' +emoji[deaf_person_medium_dark_skin_tone]=$'\U1F9CF\U1F3FE' +emoji[deaf_person_dark_skin_tone]=$'\U1F9CF\U1F3FF' +emoji[deaf_man]=$'\U1F9CF\U200D\U2642\UFE0F' +emoji[deaf_man_minimally]=$'\U1F9CF\U200D\U2642' +emoji[deaf_man_light_skin_tone]=$'\U1F9CF\U1F3FB\U200D\U2642\UFE0F' +emoji[deaf_man_light_skin_tone_minimally]=$'\U1F9CF\U1F3FB\U200D\U2642' +emoji[deaf_man_medium_light_skin_tone]=$'\U1F9CF\U1F3FC\U200D\U2642\UFE0F' +emoji[deaf_man_medium_light_skin_tone_minimally]=$'\U1F9CF\U1F3FC\U200D\U2642' +emoji[deaf_man_medium_skin_tone]=$'\U1F9CF\U1F3FD\U200D\U2642\UFE0F' +emoji[deaf_man_medium_skin_tone_minimally]=$'\U1F9CF\U1F3FD\U200D\U2642' +emoji[deaf_man_medium_dark_skin_tone]=$'\U1F9CF\U1F3FE\U200D\U2642\UFE0F' +emoji[deaf_man_medium_dark_skin_tone_minimally]=$'\U1F9CF\U1F3FE\U200D\U2642' +emoji[deaf_man_dark_skin_tone]=$'\U1F9CF\U1F3FF\U200D\U2642\UFE0F' +emoji[deaf_man_dark_skin_tone_minimally]=$'\U1F9CF\U1F3FF\U200D\U2642' +emoji[deaf_woman]=$'\U1F9CF\U200D\U2640\UFE0F' +emoji[deaf_woman_minimally]=$'\U1F9CF\U200D\U2640' +emoji[deaf_woman_light_skin_tone]=$'\U1F9CF\U1F3FB\U200D\U2640\UFE0F' +emoji[deaf_woman_light_skin_tone_minimally]=$'\U1F9CF\U1F3FB\U200D\U2640' +emoji[deaf_woman_medium_light_skin_tone]=$'\U1F9CF\U1F3FC\U200D\U2640\UFE0F' +emoji[deaf_woman_medium_light_skin_tone_minimally]=$'\U1F9CF\U1F3FC\U200D\U2640' +emoji[deaf_woman_medium_skin_tone]=$'\U1F9CF\U1F3FD\U200D\U2640\UFE0F' +emoji[deaf_woman_medium_skin_tone_minimally]=$'\U1F9CF\U1F3FD\U200D\U2640' +emoji[deaf_woman_medium_dark_skin_tone]=$'\U1F9CF\U1F3FE\U200D\U2640\UFE0F' +emoji[deaf_woman_medium_dark_skin_tone_minimally]=$'\U1F9CF\U1F3FE\U200D\U2640' +emoji[deaf_woman_dark_skin_tone]=$'\U1F9CF\U1F3FF\U200D\U2640\UFE0F' +emoji[deaf_woman_dark_skin_tone_minimally]=$'\U1F9CF\U1F3FF\U200D\U2640' +emoji[person_bowing]=$'\U1F647' +emoji[bow]=$'\U1F647' +emoji[person_bowing_light_skin_tone]=$'\U1F647\U1F3FB' +emoji[person_bowing_medium_light_skin_tone]=$'\U1F647\U1F3FC' +emoji[person_bowing_medium_skin_tone]=$'\U1F647\U1F3FD' +emoji[person_bowing_medium_dark_skin_tone]=$'\U1F647\U1F3FE' +emoji[person_bowing_dark_skin_tone]=$'\U1F647\U1F3FF' +emoji[man_bowing]=$'\U1F647\U200D\U2642\UFE0F' +emoji[man_bowing_minimally]=$'\U1F647\U200D\U2642' +emoji[bowing_man]=$'\U1F647\U200D\U2642' +emoji[man_bowing_light_skin_tone]=$'\U1F647\U1F3FB\U200D\U2642\UFE0F' +emoji[man_bowing_light_skin_tone_minimally]=$'\U1F647\U1F3FB\U200D\U2642' +emoji[man_bowing_medium_light_skin_tone]=$'\U1F647\U1F3FC\U200D\U2642\UFE0F' +emoji[man_bowing_medium_light_skin_tone_minimally]=$'\U1F647\U1F3FC\U200D\U2642' +emoji[man_bowing_medium_skin_tone]=$'\U1F647\U1F3FD\U200D\U2642\UFE0F' +emoji[man_bowing_medium_skin_tone_minimally]=$'\U1F647\U1F3FD\U200D\U2642' +emoji[man_bowing_medium_dark_skin_tone]=$'\U1F647\U1F3FE\U200D\U2642\UFE0F' +emoji[man_bowing_medium_dark_skin_tone_minimally]=$'\U1F647\U1F3FE\U200D\U2642' +emoji[man_bowing_dark_skin_tone]=$'\U1F647\U1F3FF\U200D\U2642\UFE0F' +emoji[man_bowing_dark_skin_tone_minimally]=$'\U1F647\U1F3FF\U200D\U2642' +emoji[woman_bowing]=$'\U1F647\U200D\U2640\UFE0F' +emoji[woman_bowing_minimally]=$'\U1F647\U200D\U2640' +emoji[bowing_woman]=$'\U1F647\U200D\U2640' +emoji[woman_bowing_light_skin_tone]=$'\U1F647\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_bowing_light_skin_tone_minimally]=$'\U1F647\U1F3FB\U200D\U2640' +emoji[woman_bowing_medium_light_skin_tone]=$'\U1F647\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_bowing_medium_light_skin_tone_minimally]=$'\U1F647\U1F3FC\U200D\U2640' +emoji[woman_bowing_medium_skin_tone]=$'\U1F647\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_bowing_medium_skin_tone_minimally]=$'\U1F647\U1F3FD\U200D\U2640' +emoji[woman_bowing_medium_dark_skin_tone]=$'\U1F647\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_bowing_medium_dark_skin_tone_minimally]=$'\U1F647\U1F3FE\U200D\U2640' +emoji[woman_bowing_dark_skin_tone]=$'\U1F647\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_bowing_dark_skin_tone_minimally]=$'\U1F647\U1F3FF\U200D\U2640' +emoji[person_facepalming]=$'\U1F926' +emoji[facepalm]=$'\U1F926' +emoji[person_facepalming_light_skin_tone]=$'\U1F926\U1F3FB' +emoji[person_facepalming_medium_light_skin_tone]=$'\U1F926\U1F3FC' +emoji[person_facepalming_medium_skin_tone]=$'\U1F926\U1F3FD' +emoji[person_facepalming_medium_dark_skin_tone]=$'\U1F926\U1F3FE' +emoji[person_facepalming_dark_skin_tone]=$'\U1F926\U1F3FF' +emoji[man_facepalming]=$'\U1F926\U200D\U2642\UFE0F' +emoji[man_facepalming_minimally]=$'\U1F926\U200D\U2642' +emoji[man_facepalming_light_skin_tone]=$'\U1F926\U1F3FB\U200D\U2642\UFE0F' +emoji[man_facepalming_light_skin_tone_minimally]=$'\U1F926\U1F3FB\U200D\U2642' +emoji[man_facepalming_medium_light_skin_tone]=$'\U1F926\U1F3FC\U200D\U2642\UFE0F' +emoji[man_facepalming_medium_light_skin_tone_minimally]=$'\U1F926\U1F3FC\U200D\U2642' +emoji[man_facepalming_medium_skin_tone]=$'\U1F926\U1F3FD\U200D\U2642\UFE0F' +emoji[man_facepalming_medium_skin_tone_minimally]=$'\U1F926\U1F3FD\U200D\U2642' +emoji[man_facepalming_medium_dark_skin_tone]=$'\U1F926\U1F3FE\U200D\U2642\UFE0F' +emoji[man_facepalming_medium_dark_skin_tone_minimally]=$'\U1F926\U1F3FE\U200D\U2642' +emoji[man_facepalming_dark_skin_tone]=$'\U1F926\U1F3FF\U200D\U2642\UFE0F' +emoji[man_facepalming_dark_skin_tone_minimally]=$'\U1F926\U1F3FF\U200D\U2642' +emoji[woman_facepalming]=$'\U1F926\U200D\U2640\UFE0F' +emoji[woman_facepalming_minimally]=$'\U1F926\U200D\U2640' +emoji[woman_facepalming_light_skin_tone]=$'\U1F926\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_facepalming_light_skin_tone_minimally]=$'\U1F926\U1F3FB\U200D\U2640' +emoji[woman_facepalming_medium_light_skin_tone]=$'\U1F926\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_facepalming_medium_light_skin_tone_minimally]=$'\U1F926\U1F3FC\U200D\U2640' +emoji[woman_facepalming_medium_skin_tone]=$'\U1F926\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_facepalming_medium_skin_tone_minimally]=$'\U1F926\U1F3FD\U200D\U2640' +emoji[woman_facepalming_medium_dark_skin_tone]=$'\U1F926\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_facepalming_medium_dark_skin_tone_minimally]=$'\U1F926\U1F3FE\U200D\U2640' +emoji[woman_facepalming_dark_skin_tone]=$'\U1F926\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_facepalming_dark_skin_tone_minimally]=$'\U1F926\U1F3FF\U200D\U2640' +emoji[person_shrugging]=$'\U1F937' +emoji[shrug]=$'\U1F937' +emoji[person_shrugging_light_skin_tone]=$'\U1F937\U1F3FB' +emoji[person_shrugging_medium_light_skin_tone]=$'\U1F937\U1F3FC' +emoji[person_shrugging_medium_skin_tone]=$'\U1F937\U1F3FD' +emoji[person_shrugging_medium_dark_skin_tone]=$'\U1F937\U1F3FE' +emoji[person_shrugging_dark_skin_tone]=$'\U1F937\U1F3FF' +emoji[man_shrugging]=$'\U1F937\U200D\U2642\UFE0F' +emoji[man_shrugging_minimally]=$'\U1F937\U200D\U2642' +emoji[man_shrugging_light_skin_tone]=$'\U1F937\U1F3FB\U200D\U2642\UFE0F' +emoji[man_shrugging_light_skin_tone_minimally]=$'\U1F937\U1F3FB\U200D\U2642' +emoji[man_shrugging_medium_light_skin_tone]=$'\U1F937\U1F3FC\U200D\U2642\UFE0F' +emoji[man_shrugging_medium_light_skin_tone_minimally]=$'\U1F937\U1F3FC\U200D\U2642' +emoji[man_shrugging_medium_skin_tone]=$'\U1F937\U1F3FD\U200D\U2642\UFE0F' +emoji[man_shrugging_medium_skin_tone_minimally]=$'\U1F937\U1F3FD\U200D\U2642' +emoji[man_shrugging_medium_dark_skin_tone]=$'\U1F937\U1F3FE\U200D\U2642\UFE0F' +emoji[man_shrugging_medium_dark_skin_tone_minimally]=$'\U1F937\U1F3FE\U200D\U2642' +emoji[man_shrugging_dark_skin_tone]=$'\U1F937\U1F3FF\U200D\U2642\UFE0F' +emoji[man_shrugging_dark_skin_tone_minimally]=$'\U1F937\U1F3FF\U200D\U2642' +emoji[woman_shrugging]=$'\U1F937\U200D\U2640\UFE0F' +emoji[woman_shrugging_minimally]=$'\U1F937\U200D\U2640' +emoji[woman_shrugging_light_skin_tone]=$'\U1F937\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_shrugging_light_skin_tone_minimally]=$'\U1F937\U1F3FB\U200D\U2640' +emoji[woman_shrugging_medium_light_skin_tone]=$'\U1F937\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_shrugging_medium_light_skin_tone_minimally]=$'\U1F937\U1F3FC\U200D\U2640' +emoji[woman_shrugging_medium_skin_tone]=$'\U1F937\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_shrugging_medium_skin_tone_minimally]=$'\U1F937\U1F3FD\U200D\U2640' +emoji[woman_shrugging_medium_dark_skin_tone]=$'\U1F937\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_shrugging_medium_dark_skin_tone_minimally]=$'\U1F937\U1F3FE\U200D\U2640' +emoji[woman_shrugging_dark_skin_tone]=$'\U1F937\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_shrugging_dark_skin_tone_minimally]=$'\U1F937\U1F3FF\U200D\U2640' +emoji[man_health_worker]=$'\U1F468\U200D\U2695\UFE0F' +emoji[man_health_worker_minimally]=$'\U1F468\U200D\U2695' +emoji[man_health_worker_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U2695\UFE0F' +emoji[man_health_worker_light_skin_tone_minimally]=$'\U1F468\U1F3FB\U200D\U2695' +emoji[man_health_worker_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U2695\UFE0F' +emoji[man_health_worker_medium_light_skin_tone_minimally]=$'\U1F468\U1F3FC\U200D\U2695' +emoji[man_health_worker_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U2695\UFE0F' +emoji[man_health_worker_medium_skin_tone_minimally]=$'\U1F468\U1F3FD\U200D\U2695' +emoji[man_health_worker_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U2695\UFE0F' +emoji[man_health_worker_medium_dark_skin_tone_minimally]=$'\U1F468\U1F3FE\U200D\U2695' +emoji[man_health_worker_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U2695\UFE0F' +emoji[man_health_worker_dark_skin_tone_minimally]=$'\U1F468\U1F3FF\U200D\U2695' +emoji[woman_health_worker]=$'\U1F469\U200D\U2695\UFE0F' +emoji[woman_health_worker_minimally]=$'\U1F469\U200D\U2695' +emoji[woman_health_worker_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U2695\UFE0F' +emoji[woman_health_worker_light_skin_tone_minimally]=$'\U1F469\U1F3FB\U200D\U2695' +emoji[woman_health_worker_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U2695\UFE0F' +emoji[woman_health_worker_medium_light_skin_tone_minimally]=$'\U1F469\U1F3FC\U200D\U2695' +emoji[woman_health_worker_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U2695\UFE0F' +emoji[woman_health_worker_medium_skin_tone_minimally]=$'\U1F469\U1F3FD\U200D\U2695' +emoji[woman_health_worker_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U2695\UFE0F' +emoji[woman_health_worker_medium_dark_skin_tone_minimally]=$'\U1F469\U1F3FE\U200D\U2695' +emoji[woman_health_worker_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U2695\UFE0F' +emoji[woman_health_worker_dark_skin_tone_minimally]=$'\U1F469\U1F3FF\U200D\U2695' +emoji[man_student]=$'\U1F468\U200D\U1F393' +emoji[man_student_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F393' +emoji[man_student_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F393' +emoji[man_student_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F393' +emoji[man_student_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F393' +emoji[man_student_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F393' +emoji[woman_student]=$'\U1F469\U200D\U1F393' +emoji[woman_student_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F393' +emoji[woman_student_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F393' +emoji[woman_student_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F393' +emoji[woman_student_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F393' +emoji[woman_student_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F393' +emoji[man_teacher]=$'\U1F468\U200D\U1F3EB' +emoji[man_teacher_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F3EB' +emoji[man_teacher_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F3EB' +emoji[man_teacher_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F3EB' +emoji[man_teacher_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F3EB' +emoji[man_teacher_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F3EB' +emoji[woman_teacher]=$'\U1F469\U200D\U1F3EB' +emoji[woman_teacher_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F3EB' +emoji[woman_teacher_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F3EB' +emoji[woman_teacher_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F3EB' +emoji[woman_teacher_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F3EB' +emoji[woman_teacher_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F3EB' +emoji[man_judge]=$'\U1F468\U200D\U2696\UFE0F' +emoji[man_judge_minimally]=$'\U1F468\U200D\U2696' +emoji[man_judge_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U2696\UFE0F' +emoji[man_judge_light_skin_tone_minimally]=$'\U1F468\U1F3FB\U200D\U2696' +emoji[man_judge_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U2696\UFE0F' +emoji[man_judge_medium_light_skin_tone_minimally]=$'\U1F468\U1F3FC\U200D\U2696' +emoji[man_judge_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U2696\UFE0F' +emoji[man_judge_medium_skin_tone_minimally]=$'\U1F468\U1F3FD\U200D\U2696' +emoji[man_judge_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U2696\UFE0F' +emoji[man_judge_medium_dark_skin_tone_minimally]=$'\U1F468\U1F3FE\U200D\U2696' +emoji[man_judge_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U2696\UFE0F' +emoji[man_judge_dark_skin_tone_minimally]=$'\U1F468\U1F3FF\U200D\U2696' +emoji[woman_judge]=$'\U1F469\U200D\U2696\UFE0F' +emoji[woman_judge_minimally]=$'\U1F469\U200D\U2696' +emoji[woman_judge_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U2696\UFE0F' +emoji[woman_judge_light_skin_tone_minimally]=$'\U1F469\U1F3FB\U200D\U2696' +emoji[woman_judge_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U2696\UFE0F' +emoji[woman_judge_medium_light_skin_tone_minimally]=$'\U1F469\U1F3FC\U200D\U2696' +emoji[woman_judge_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U2696\UFE0F' +emoji[woman_judge_medium_skin_tone_minimally]=$'\U1F469\U1F3FD\U200D\U2696' +emoji[woman_judge_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U2696\UFE0F' +emoji[woman_judge_medium_dark_skin_tone_minimally]=$'\U1F469\U1F3FE\U200D\U2696' +emoji[woman_judge_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U2696\UFE0F' +emoji[woman_judge_dark_skin_tone_minimally]=$'\U1F469\U1F3FF\U200D\U2696' +emoji[man_farmer]=$'\U1F468\U200D\U1F33E' +emoji[man_farmer_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F33E' +emoji[man_farmer_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F33E' +emoji[man_farmer_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F33E' +emoji[man_farmer_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F33E' +emoji[man_farmer_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F33E' +emoji[woman_farmer]=$'\U1F469\U200D\U1F33E' +emoji[woman_farmer_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F33E' +emoji[woman_farmer_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F33E' +emoji[woman_farmer_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F33E' +emoji[woman_farmer_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F33E' +emoji[woman_farmer_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F33E' +emoji[man_cook]=$'\U1F468\U200D\U1F373' +emoji[man_cook_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F373' +emoji[man_cook_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F373' +emoji[man_cook_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F373' +emoji[man_cook_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F373' +emoji[man_cook_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F373' +emoji[woman_cook]=$'\U1F469\U200D\U1F373' +emoji[woman_cook_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F373' +emoji[woman_cook_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F373' +emoji[woman_cook_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F373' +emoji[woman_cook_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F373' +emoji[woman_cook_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F373' +emoji[man_mechanic]=$'\U1F468\U200D\U1F527' +emoji[man_mechanic_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F527' +emoji[man_mechanic_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F527' +emoji[man_mechanic_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F527' +emoji[man_mechanic_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F527' +emoji[man_mechanic_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F527' +emoji[woman_mechanic]=$'\U1F469\U200D\U1F527' +emoji[woman_mechanic_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F527' +emoji[woman_mechanic_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F527' +emoji[woman_mechanic_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F527' +emoji[woman_mechanic_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F527' +emoji[woman_mechanic_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F527' +emoji[man_factory_worker]=$'\U1F468\U200D\U1F3ED' +emoji[man_factory_worker_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F3ED' +emoji[man_factory_worker_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F3ED' +emoji[man_factory_worker_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F3ED' +emoji[man_factory_worker_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F3ED' +emoji[man_factory_worker_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F3ED' +emoji[woman_factory_worker]=$'\U1F469\U200D\U1F3ED' +emoji[woman_factory_worker_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F3ED' +emoji[woman_factory_worker_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F3ED' +emoji[woman_factory_worker_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F3ED' +emoji[woman_factory_worker_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F3ED' +emoji[woman_factory_worker_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F3ED' +emoji[man_office_worker]=$'\U1F468\U200D\U1F4BC' +emoji[man_office_worker_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F4BC' +emoji[man_office_worker_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F4BC' +emoji[man_office_worker_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F4BC' +emoji[man_office_worker_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F4BC' +emoji[man_office_worker_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F4BC' +emoji[woman_office_worker]=$'\U1F469\U200D\U1F4BC' +emoji[woman_office_worker_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F4BC' +emoji[woman_office_worker_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F4BC' +emoji[woman_office_worker_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F4BC' +emoji[woman_office_worker_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F4BC' +emoji[woman_office_worker_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F4BC' +emoji[man_scientist]=$'\U1F468\U200D\U1F52C' +emoji[man_scientist_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F52C' +emoji[man_scientist_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F52C' +emoji[man_scientist_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F52C' +emoji[man_scientist_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F52C' +emoji[man_scientist_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F52C' +emoji[woman_scientist]=$'\U1F469\U200D\U1F52C' +emoji[woman_scientist_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F52C' +emoji[woman_scientist_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F52C' +emoji[woman_scientist_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F52C' +emoji[woman_scientist_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F52C' +emoji[woman_scientist_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F52C' +emoji[man_technologist]=$'\U1F468\U200D\U1F4BB' +emoji[man_technologist_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F4BB' +emoji[man_technologist_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F4BB' +emoji[man_technologist_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F4BB' +emoji[man_technologist_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F4BB' +emoji[man_technologist_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F4BB' +emoji[woman_technologist]=$'\U1F469\U200D\U1F4BB' +emoji[woman_technologist_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F4BB' +emoji[woman_technologist_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F4BB' +emoji[woman_technologist_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F4BB' +emoji[woman_technologist_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F4BB' +emoji[woman_technologist_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F4BB' +emoji[man_singer]=$'\U1F468\U200D\U1F3A4' +emoji[man_singer_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F3A4' +emoji[man_singer_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F3A4' +emoji[man_singer_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F3A4' +emoji[man_singer_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F3A4' +emoji[man_singer_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F3A4' +emoji[woman_singer]=$'\U1F469\U200D\U1F3A4' +emoji[woman_singer_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F3A4' +emoji[woman_singer_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F3A4' +emoji[woman_singer_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F3A4' +emoji[woman_singer_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F3A4' +emoji[woman_singer_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F3A4' +emoji[man_artist]=$'\U1F468\U200D\U1F3A8' +emoji[man_artist_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F3A8' +emoji[man_artist_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F3A8' +emoji[man_artist_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F3A8' +emoji[man_artist_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F3A8' +emoji[man_artist_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F3A8' +emoji[woman_artist]=$'\U1F469\U200D\U1F3A8' +emoji[woman_artist_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F3A8' +emoji[woman_artist_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F3A8' +emoji[woman_artist_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F3A8' +emoji[woman_artist_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F3A8' +emoji[woman_artist_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F3A8' +emoji[man_pilot]=$'\U1F468\U200D\U2708\UFE0F' +emoji[man_pilot_minimally]=$'\U1F468\U200D\U2708' +emoji[man_pilot_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U2708\UFE0F' +emoji[man_pilot_light_skin_tone_minimally]=$'\U1F468\U1F3FB\U200D\U2708' +emoji[man_pilot_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U2708\UFE0F' +emoji[man_pilot_medium_light_skin_tone_minimally]=$'\U1F468\U1F3FC\U200D\U2708' +emoji[man_pilot_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U2708\UFE0F' +emoji[man_pilot_medium_skin_tone_minimally]=$'\U1F468\U1F3FD\U200D\U2708' +emoji[man_pilot_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U2708\UFE0F' +emoji[man_pilot_medium_dark_skin_tone_minimally]=$'\U1F468\U1F3FE\U200D\U2708' +emoji[man_pilot_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U2708\UFE0F' +emoji[man_pilot_dark_skin_tone_minimally]=$'\U1F468\U1F3FF\U200D\U2708' +emoji[woman_pilot]=$'\U1F469\U200D\U2708\UFE0F' +emoji[woman_pilot_minimally]=$'\U1F469\U200D\U2708' +emoji[woman_pilot_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U2708\UFE0F' +emoji[woman_pilot_light_skin_tone_minimally]=$'\U1F469\U1F3FB\U200D\U2708' +emoji[woman_pilot_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U2708\UFE0F' +emoji[woman_pilot_medium_light_skin_tone_minimally]=$'\U1F469\U1F3FC\U200D\U2708' +emoji[woman_pilot_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U2708\UFE0F' +emoji[woman_pilot_medium_skin_tone_minimally]=$'\U1F469\U1F3FD\U200D\U2708' +emoji[woman_pilot_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U2708\UFE0F' +emoji[woman_pilot_medium_dark_skin_tone_minimally]=$'\U1F469\U1F3FE\U200D\U2708' +emoji[woman_pilot_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U2708\UFE0F' +emoji[woman_pilot_dark_skin_tone_minimally]=$'\U1F469\U1F3FF\U200D\U2708' +emoji[man_astronaut]=$'\U1F468\U200D\U1F680' +emoji[man_astronaut_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F680' +emoji[man_astronaut_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F680' +emoji[man_astronaut_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F680' +emoji[man_astronaut_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F680' +emoji[man_astronaut_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F680' +emoji[woman_astronaut]=$'\U1F469\U200D\U1F680' +emoji[woman_astronaut_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F680' +emoji[woman_astronaut_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F680' +emoji[woman_astronaut_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F680' +emoji[woman_astronaut_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F680' +emoji[woman_astronaut_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F680' +emoji[man_firefighter]=$'\U1F468\U200D\U1F692' +emoji[man_firefighter_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F692' +emoji[man_firefighter_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F692' +emoji[man_firefighter_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F692' +emoji[man_firefighter_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F692' +emoji[man_firefighter_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F692' +emoji[woman_firefighter]=$'\U1F469\U200D\U1F692' +emoji[woman_firefighter_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F692' +emoji[woman_firefighter_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F692' +emoji[woman_firefighter_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F692' +emoji[woman_firefighter_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F692' +emoji[woman_firefighter_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F692' +emoji[police_officer]=$'\U1F46E' +emoji[cop]=$'\U1F46E' +emoji[police_officer_light_skin_tone]=$'\U1F46E\U1F3FB' +emoji[police_officer_medium_light_skin_tone]=$'\U1F46E\U1F3FC' +emoji[police_officer_medium_skin_tone]=$'\U1F46E\U1F3FD' +emoji[police_officer_medium_dark_skin_tone]=$'\U1F46E\U1F3FE' +emoji[police_officer_dark_skin_tone]=$'\U1F46E\U1F3FF' +emoji[man_police_officer]=$'\U1F46E\U200D\U2642\UFE0F' +emoji[man_police_officer_minimally]=$'\U1F46E\U200D\U2642' +emoji[policeman]=$'\U1F46E\U200D\U2642' +emoji[man_police_officer_light_skin_tone]=$'\U1F46E\U1F3FB\U200D\U2642\UFE0F' +emoji[man_police_officer_light_skin_tone_minimally]=$'\U1F46E\U1F3FB\U200D\U2642' +emoji[man_police_officer_medium_light_skin_tone]=$'\U1F46E\U1F3FC\U200D\U2642\UFE0F' +emoji[man_police_officer_medium_light_skin_tone_minimally]=$'\U1F46E\U1F3FC\U200D\U2642' +emoji[man_police_officer_medium_skin_tone]=$'\U1F46E\U1F3FD\U200D\U2642\UFE0F' +emoji[man_police_officer_medium_skin_tone_minimally]=$'\U1F46E\U1F3FD\U200D\U2642' +emoji[man_police_officer_medium_dark_skin_tone]=$'\U1F46E\U1F3FE\U200D\U2642\UFE0F' +emoji[man_police_officer_medium_dark_skin_tone_minimally]=$'\U1F46E\U1F3FE\U200D\U2642' +emoji[man_police_officer_dark_skin_tone]=$'\U1F46E\U1F3FF\U200D\U2642\UFE0F' +emoji[man_police_officer_dark_skin_tone_minimally]=$'\U1F46E\U1F3FF\U200D\U2642' +emoji[woman_police_officer]=$'\U1F46E\U200D\U2640\UFE0F' +emoji[woman_police_officer_minimally]=$'\U1F46E\U200D\U2640' +emoji[policewoman]=$'\U1F46E\U200D\U2640' +emoji[woman_police_officer_light_skin_tone]=$'\U1F46E\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_police_officer_light_skin_tone_minimally]=$'\U1F46E\U1F3FB\U200D\U2640' +emoji[woman_police_officer_medium_light_skin_tone]=$'\U1F46E\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_police_officer_medium_light_skin_tone_minimally]=$'\U1F46E\U1F3FC\U200D\U2640' +emoji[woman_police_officer_medium_skin_tone]=$'\U1F46E\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_police_officer_medium_skin_tone_minimally]=$'\U1F46E\U1F3FD\U200D\U2640' +emoji[woman_police_officer_medium_dark_skin_tone]=$'\U1F46E\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_police_officer_medium_dark_skin_tone_minimally]=$'\U1F46E\U1F3FE\U200D\U2640' +emoji[woman_police_officer_dark_skin_tone]=$'\U1F46E\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_police_officer_dark_skin_tone_minimally]=$'\U1F46E\U1F3FF\U200D\U2640' +emoji[detective]=$'\U1F575\UFE0F' +emoji[detective_unqualified]=$'\U1F575' +emoji[detective_light_skin_tone]=$'\U1F575\U1F3FB' +emoji[detective_medium_light_skin_tone]=$'\U1F575\U1F3FC' +emoji[detective_medium_skin_tone]=$'\U1F575\U1F3FD' +emoji[detective_medium_dark_skin_tone]=$'\U1F575\U1F3FE' +emoji[detective_dark_skin_tone]=$'\U1F575\U1F3FF' +emoji[man_detective]=$'\U1F575\UFE0F\U200D\U2642\UFE0F' +emoji[male_detective]=$'\U1F575\UFE0F\U200D\U2642\UFE0F' +emoji[man_detective_unqualified]=$'\U1F575\U200D\U2642\UFE0F' +emoji[man_detective_unqualified_1]=$'\U1F575\UFE0F\U200D\U2642' +emoji[man_detective_unqualified_2]=$'\U1F575\U200D\U2642' +emoji[man_detective_light_skin_tone]=$'\U1F575\U1F3FB\U200D\U2642\UFE0F' +emoji[man_detective_light_skin_tone_minimally]=$'\U1F575\U1F3FB\U200D\U2642' +emoji[man_detective_medium_light_skin_tone]=$'\U1F575\U1F3FC\U200D\U2642\UFE0F' +emoji[man_detective_medium_light_skin_tone_minimally]=$'\U1F575\U1F3FC\U200D\U2642' +emoji[man_detective_medium_skin_tone]=$'\U1F575\U1F3FD\U200D\U2642\UFE0F' +emoji[man_detective_medium_skin_tone_minimally]=$'\U1F575\U1F3FD\U200D\U2642' +emoji[man_detective_medium_dark_skin_tone]=$'\U1F575\U1F3FE\U200D\U2642\UFE0F' +emoji[man_detective_medium_dark_skin_tone_minimally]=$'\U1F575\U1F3FE\U200D\U2642' +emoji[man_detective_dark_skin_tone]=$'\U1F575\U1F3FF\U200D\U2642\UFE0F' +emoji[man_detective_dark_skin_tone_minimally]=$'\U1F575\U1F3FF\U200D\U2642' +emoji[woman_detective]=$'\U1F575\UFE0F\U200D\U2640\UFE0F' +emoji[female_detective]=$'\U1F575\UFE0F\U200D\U2640\UFE0F' +emoji[woman_detective_unqualified]=$'\U1F575\U200D\U2640\UFE0F' +emoji[woman_detective_unqualified_1]=$'\U1F575\UFE0F\U200D\U2640' +emoji[woman_detective_unqualified_2]=$'\U1F575\U200D\U2640' +emoji[woman_detective_light_skin_tone]=$'\U1F575\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_detective_light_skin_tone_minimally]=$'\U1F575\U1F3FB\U200D\U2640' +emoji[woman_detective_medium_light_skin_tone]=$'\U1F575\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_detective_medium_light_skin_tone_minimally]=$'\U1F575\U1F3FC\U200D\U2640' +emoji[woman_detective_medium_skin_tone]=$'\U1F575\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_detective_medium_skin_tone_minimally]=$'\U1F575\U1F3FD\U200D\U2640' +emoji[woman_detective_medium_dark_skin_tone]=$'\U1F575\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_detective_medium_dark_skin_tone_minimally]=$'\U1F575\U1F3FE\U200D\U2640' +emoji[woman_detective_dark_skin_tone]=$'\U1F575\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_detective_dark_skin_tone_minimally]=$'\U1F575\U1F3FF\U200D\U2640' +emoji[guard]=$'\U1F482' +emoji[guard_light_skin_tone]=$'\U1F482\U1F3FB' +emoji[guard_medium_light_skin_tone]=$'\U1F482\U1F3FC' +emoji[guard_medium_skin_tone]=$'\U1F482\U1F3FD' +emoji[guard_medium_dark_skin_tone]=$'\U1F482\U1F3FE' +emoji[guard_dark_skin_tone]=$'\U1F482\U1F3FF' +emoji[man_guard]=$'\U1F482\U200D\U2642\UFE0F' +emoji[man_guard_minimally]=$'\U1F482\U200D\U2642' +emoji[guardsman]=$'\U1F482\U200D\U2642' +emoji[man_guard_light_skin_tone]=$'\U1F482\U1F3FB\U200D\U2642\UFE0F' +emoji[man_guard_light_skin_tone_minimally]=$'\U1F482\U1F3FB\U200D\U2642' +emoji[man_guard_medium_light_skin_tone]=$'\U1F482\U1F3FC\U200D\U2642\UFE0F' +emoji[man_guard_medium_light_skin_tone_minimally]=$'\U1F482\U1F3FC\U200D\U2642' +emoji[man_guard_medium_skin_tone]=$'\U1F482\U1F3FD\U200D\U2642\UFE0F' +emoji[man_guard_medium_skin_tone_minimally]=$'\U1F482\U1F3FD\U200D\U2642' +emoji[man_guard_medium_dark_skin_tone]=$'\U1F482\U1F3FE\U200D\U2642\UFE0F' +emoji[man_guard_medium_dark_skin_tone_minimally]=$'\U1F482\U1F3FE\U200D\U2642' +emoji[man_guard_dark_skin_tone]=$'\U1F482\U1F3FF\U200D\U2642\UFE0F' +emoji[man_guard_dark_skin_tone_minimally]=$'\U1F482\U1F3FF\U200D\U2642' +emoji[woman_guard]=$'\U1F482\U200D\U2640\UFE0F' +emoji[woman_guard_minimally]=$'\U1F482\U200D\U2640' +emoji[guardswoman]=$'\U1F482\U200D\U2640' +emoji[woman_guard_light_skin_tone]=$'\U1F482\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_guard_light_skin_tone_minimally]=$'\U1F482\U1F3FB\U200D\U2640' +emoji[woman_guard_medium_light_skin_tone]=$'\U1F482\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_guard_medium_light_skin_tone_minimally]=$'\U1F482\U1F3FC\U200D\U2640' +emoji[woman_guard_medium_skin_tone]=$'\U1F482\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_guard_medium_skin_tone_minimally]=$'\U1F482\U1F3FD\U200D\U2640' +emoji[woman_guard_medium_dark_skin_tone]=$'\U1F482\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_guard_medium_dark_skin_tone_minimally]=$'\U1F482\U1F3FE\U200D\U2640' +emoji[woman_guard_dark_skin_tone]=$'\U1F482\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_guard_dark_skin_tone_minimally]=$'\U1F482\U1F3FF\U200D\U2640' +emoji[construction_worker]=$'\U1F477' +emoji[construction_worker_light_skin_tone]=$'\U1F477\U1F3FB' +emoji[construction_worker_medium_light_skin_tone]=$'\U1F477\U1F3FC' +emoji[construction_worker_medium_skin_tone]=$'\U1F477\U1F3FD' +emoji[construction_worker_medium_dark_skin_tone]=$'\U1F477\U1F3FE' +emoji[construction_worker_dark_skin_tone]=$'\U1F477\U1F3FF' +emoji[man_construction_worker]=$'\U1F477\U200D\U2642\UFE0F' +emoji[man_construction_worker_minimally]=$'\U1F477\U200D\U2642' +emoji[construction_worker_man]=$'\U1F477\U200D\U2642' +emoji[man_construction_worker_light_skin_tone]=$'\U1F477\U1F3FB\U200D\U2642\UFE0F' +emoji[man_construction_worker_light_skin_tone_minimally]=$'\U1F477\U1F3FB\U200D\U2642' +emoji[man_construction_worker_medium_light_skin_tone]=$'\U1F477\U1F3FC\U200D\U2642\UFE0F' +emoji[man_construction_worker_medium_light_skin_tone_minimally]=$'\U1F477\U1F3FC\U200D\U2642' +emoji[man_construction_worker_medium_skin_tone]=$'\U1F477\U1F3FD\U200D\U2642\UFE0F' +emoji[man_construction_worker_medium_skin_tone_minimally]=$'\U1F477\U1F3FD\U200D\U2642' +emoji[man_construction_worker_medium_dark_skin_tone]=$'\U1F477\U1F3FE\U200D\U2642\UFE0F' +emoji[man_construction_worker_medium_dark_skin_tone_minimally]=$'\U1F477\U1F3FE\U200D\U2642' +emoji[man_construction_worker_dark_skin_tone]=$'\U1F477\U1F3FF\U200D\U2642\UFE0F' +emoji[man_construction_worker_dark_skin_tone_minimally]=$'\U1F477\U1F3FF\U200D\U2642' +emoji[woman_construction_worker]=$'\U1F477\U200D\U2640\UFE0F' +emoji[woman_construction_worker_minimally]=$'\U1F477\U200D\U2640' +emoji[construction_worker_woman]=$'\U1F477\U200D\U2640' +emoji[woman_construction_worker_light_skin_tone]=$'\U1F477\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_construction_worker_light_skin_tone_minimally]=$'\U1F477\U1F3FB\U200D\U2640' +emoji[woman_construction_worker_medium_light_skin_tone]=$'\U1F477\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_construction_worker_medium_light_skin_tone_minimally]=$'\U1F477\U1F3FC\U200D\U2640' +emoji[woman_construction_worker_medium_skin_tone]=$'\U1F477\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_construction_worker_medium_skin_tone_minimally]=$'\U1F477\U1F3FD\U200D\U2640' +emoji[woman_construction_worker_medium_dark_skin_tone]=$'\U1F477\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_construction_worker_medium_dark_skin_tone_minimally]=$'\U1F477\U1F3FE\U200D\U2640' +emoji[woman_construction_worker_dark_skin_tone]=$'\U1F477\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_construction_worker_dark_skin_tone_minimally]=$'\U1F477\U1F3FF\U200D\U2640' +emoji[prince]=$'\U1F934' +emoji[prince_light_skin_tone]=$'\U1F934\U1F3FB' +emoji[prince_medium_light_skin_tone]=$'\U1F934\U1F3FC' +emoji[prince_medium_skin_tone]=$'\U1F934\U1F3FD' +emoji[prince_medium_dark_skin_tone]=$'\U1F934\U1F3FE' +emoji[prince_dark_skin_tone]=$'\U1F934\U1F3FF' +emoji[princess]=$'\U1F478' +emoji[princess_light_skin_tone]=$'\U1F478\U1F3FB' +emoji[princess_medium_light_skin_tone]=$'\U1F478\U1F3FC' +emoji[princess_medium_skin_tone]=$'\U1F478\U1F3FD' +emoji[princess_medium_dark_skin_tone]=$'\U1F478\U1F3FE' +emoji[princess_dark_skin_tone]=$'\U1F478\U1F3FF' +emoji[person_wearing_turban]=$'\U1F473' +emoji[person_with_turban]=$'\U1F473' +emoji[person_wearing_turban_light_skin_tone]=$'\U1F473\U1F3FB' +emoji[person_wearing_turban_medium_light_skin_tone]=$'\U1F473\U1F3FC' +emoji[person_wearing_turban_medium_skin_tone]=$'\U1F473\U1F3FD' +emoji[person_wearing_turban_medium_dark_skin_tone]=$'\U1F473\U1F3FE' +emoji[person_wearing_turban_dark_skin_tone]=$'\U1F473\U1F3FF' +emoji[man_wearing_turban]=$'\U1F473\U200D\U2642\UFE0F' +emoji[man_wearing_turban_minimally]=$'\U1F473\U200D\U2642' +emoji[man_with_turban]=$'\U1F473\U200D\U2642' +emoji[man_wearing_turban_light_skin_tone]=$'\U1F473\U1F3FB\U200D\U2642\UFE0F' +emoji[man_wearing_turban_light_skin_tone_minimally]=$'\U1F473\U1F3FB\U200D\U2642' +emoji[man_wearing_turban_medium_light_skin_tone]=$'\U1F473\U1F3FC\U200D\U2642\UFE0F' +emoji[man_wearing_turban_medium_light_skin_tone_minimally]=$'\U1F473\U1F3FC\U200D\U2642' +emoji[man_wearing_turban_medium_skin_tone]=$'\U1F473\U1F3FD\U200D\U2642\UFE0F' +emoji[man_wearing_turban_medium_skin_tone_minimally]=$'\U1F473\U1F3FD\U200D\U2642' +emoji[man_wearing_turban_medium_dark_skin_tone]=$'\U1F473\U1F3FE\U200D\U2642\UFE0F' +emoji[man_wearing_turban_medium_dark_skin_tone_minimally]=$'\U1F473\U1F3FE\U200D\U2642' +emoji[man_wearing_turban_dark_skin_tone]=$'\U1F473\U1F3FF\U200D\U2642\UFE0F' +emoji[man_wearing_turban_dark_skin_tone_minimally]=$'\U1F473\U1F3FF\U200D\U2642' +emoji[woman_wearing_turban]=$'\U1F473\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_minimally]=$'\U1F473\U200D\U2640' +emoji[woman_with_turban]=$'\U1F473\U200D\U2640' +emoji[woman_wearing_turban_light_skin_tone]=$'\U1F473\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_light_skin_tone_minimally]=$'\U1F473\U1F3FB\U200D\U2640' +emoji[woman_wearing_turban_medium_light_skin_tone]=$'\U1F473\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_medium_light_skin_tone_minimally]=$'\U1F473\U1F3FC\U200D\U2640' +emoji[woman_wearing_turban_medium_skin_tone]=$'\U1F473\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_medium_skin_tone_minimally]=$'\U1F473\U1F3FD\U200D\U2640' +emoji[woman_wearing_turban_medium_dark_skin_tone]=$'\U1F473\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_medium_dark_skin_tone_minimally]=$'\U1F473\U1F3FE\U200D\U2640' +emoji[woman_wearing_turban_dark_skin_tone]=$'\U1F473\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_dark_skin_tone_minimally]=$'\U1F473\U1F3FF\U200D\U2640' +emoji[man_with_Chinese_cap]=$'\U1F472' +emoji[man_with_gua_pi_mao]=$'\U1F472' +emoji[man_with_Chinese_cap_light_skin_tone]=$'\U1F472\U1F3FB' +emoji[man_with_Chinese_cap_medium_light_skin_tone]=$'\U1F472\U1F3FC' +emoji[man_with_Chinese_cap_medium_skin_tone]=$'\U1F472\U1F3FD' +emoji[man_with_Chinese_cap_medium_dark_skin_tone]=$'\U1F472\U1F3FE' +emoji[man_with_Chinese_cap_dark_skin_tone]=$'\U1F472\U1F3FF' +emoji[woman_with_headscarf]=$'\U1F9D5' +emoji[woman_with_headscarf_light_skin_tone]=$'\U1F9D5\U1F3FB' +emoji[woman_with_headscarf_medium_light_skin_tone]=$'\U1F9D5\U1F3FC' +emoji[woman_with_headscarf_medium_skin_tone]=$'\U1F9D5\U1F3FD' +emoji[woman_with_headscarf_medium_dark_skin_tone]=$'\U1F9D5\U1F3FE' +emoji[woman_with_headscarf_dark_skin_tone]=$'\U1F9D5\U1F3FF' +emoji[man_in_tuxedo]=$'\U1F935' +emoji[man_in_tuxedo_light_skin_tone]=$'\U1F935\U1F3FB' +emoji[man_in_tuxedo_medium_light_skin_tone]=$'\U1F935\U1F3FC' +emoji[man_in_tuxedo_medium_skin_tone]=$'\U1F935\U1F3FD' +emoji[man_in_tuxedo_medium_dark_skin_tone]=$'\U1F935\U1F3FE' +emoji[man_in_tuxedo_dark_skin_tone]=$'\U1F935\U1F3FF' +emoji[bride_with_veil]=$'\U1F470' +emoji[bride_with_veil_light_skin_tone]=$'\U1F470\U1F3FB' +emoji[bride_with_veil_medium_light_skin_tone]=$'\U1F470\U1F3FC' +emoji[bride_with_veil_medium_skin_tone]=$'\U1F470\U1F3FD' +emoji[bride_with_veil_medium_dark_skin_tone]=$'\U1F470\U1F3FE' +emoji[bride_with_veil_dark_skin_tone]=$'\U1F470\U1F3FF' +emoji[pregnant_woman]=$'\U1F930' +emoji[pregnant_woman_light_skin_tone]=$'\U1F930\U1F3FB' +emoji[pregnant_woman_medium_light_skin_tone]=$'\U1F930\U1F3FC' +emoji[pregnant_woman_medium_skin_tone]=$'\U1F930\U1F3FD' +emoji[pregnant_woman_medium_dark_skin_tone]=$'\U1F930\U1F3FE' +emoji[pregnant_woman_dark_skin_tone]=$'\U1F930\U1F3FF' +emoji[breast_feeding]=$'\U1F931' +emoji[breast_feeding_light_skin_tone]=$'\U1F931\U1F3FB' +emoji[breast_feeding_medium_light_skin_tone]=$'\U1F931\U1F3FC' +emoji[breast_feeding_medium_skin_tone]=$'\U1F931\U1F3FD' +emoji[breast_feeding_medium_dark_skin_tone]=$'\U1F931\U1F3FE' +emoji[breast_feeding_dark_skin_tone]=$'\U1F931\U1F3FF' +emoji[baby_angel]=$'\U1F47C' +emoji[angel]=$'\U1F47C' +emoji[baby_angel_light_skin_tone]=$'\U1F47C\U1F3FB' +emoji[baby_angel_medium_light_skin_tone]=$'\U1F47C\U1F3FC' +emoji[baby_angel_medium_skin_tone]=$'\U1F47C\U1F3FD' +emoji[baby_angel_medium_dark_skin_tone]=$'\U1F47C\U1F3FE' +emoji[baby_angel_dark_skin_tone]=$'\U1F47C\U1F3FF' +emoji[Santa_Claus]=$'\U1F385' +emoji[santa]=$'\U1F385' +emoji[Santa_Claus_light_skin_tone]=$'\U1F385\U1F3FB' +emoji[Santa_Claus_medium_light_skin_tone]=$'\U1F385\U1F3FC' +emoji[Santa_Claus_medium_skin_tone]=$'\U1F385\U1F3FD' +emoji[Santa_Claus_medium_dark_skin_tone]=$'\U1F385\U1F3FE' +emoji[Santa_Claus_dark_skin_tone]=$'\U1F385\U1F3FF' +emoji[Mrs_Claus]=$'\U1F936' +emoji[mrs_claus]=$'\U1F936' +emoji[Mrs_Claus_light_skin_tone]=$'\U1F936\U1F3FB' +emoji[Mrs_Claus_medium_light_skin_tone]=$'\U1F936\U1F3FC' +emoji[Mrs_Claus_medium_skin_tone]=$'\U1F936\U1F3FD' +emoji[Mrs_Claus_medium_dark_skin_tone]=$'\U1F936\U1F3FE' +emoji[Mrs_Claus_dark_skin_tone]=$'\U1F936\U1F3FF' +emoji[superhero]=$'\U1F9B8' +emoji[superhero_light_skin_tone]=$'\U1F9B8\U1F3FB' +emoji[superhero_medium_light_skin_tone]=$'\U1F9B8\U1F3FC' +emoji[superhero_medium_skin_tone]=$'\U1F9B8\U1F3FD' +emoji[superhero_medium_dark_skin_tone]=$'\U1F9B8\U1F3FE' +emoji[superhero_dark_skin_tone]=$'\U1F9B8\U1F3FF' +emoji[man_superhero]=$'\U1F9B8\U200D\U2642\UFE0F' +emoji[man_superhero_minimally]=$'\U1F9B8\U200D\U2642' +emoji[superhero_man]=$'\U1F9B8\U200D\U2642' +emoji[man_superhero_light_skin_tone]=$'\U1F9B8\U1F3FB\U200D\U2642\UFE0F' +emoji[man_superhero_light_skin_tone_minimally]=$'\U1F9B8\U1F3FB\U200D\U2642' +emoji[man_superhero_medium_light_skin_tone]=$'\U1F9B8\U1F3FC\U200D\U2642\UFE0F' +emoji[man_superhero_medium_light_skin_tone_minimally]=$'\U1F9B8\U1F3FC\U200D\U2642' +emoji[man_superhero_medium_skin_tone]=$'\U1F9B8\U1F3FD\U200D\U2642\UFE0F' +emoji[man_superhero_medium_skin_tone_minimally]=$'\U1F9B8\U1F3FD\U200D\U2642' +emoji[man_superhero_medium_dark_skin_tone]=$'\U1F9B8\U1F3FE\U200D\U2642\UFE0F' +emoji[man_superhero_medium_dark_skin_tone_minimally]=$'\U1F9B8\U1F3FE\U200D\U2642' +emoji[man_superhero_dark_skin_tone]=$'\U1F9B8\U1F3FF\U200D\U2642\UFE0F' +emoji[man_superhero_dark_skin_tone_minimally]=$'\U1F9B8\U1F3FF\U200D\U2642' +emoji[woman_superhero]=$'\U1F9B8\U200D\U2640\UFE0F' +emoji[woman_superhero_minimally]=$'\U1F9B8\U200D\U2640' +emoji[superhero_woman]=$'\U1F9B8\U200D\U2640' +emoji[woman_superhero_light_skin_tone]=$'\U1F9B8\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_superhero_light_skin_tone_minimally]=$'\U1F9B8\U1F3FB\U200D\U2640' +emoji[woman_superhero_medium_light_skin_tone]=$'\U1F9B8\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_superhero_medium_light_skin_tone_minimally]=$'\U1F9B8\U1F3FC\U200D\U2640' +emoji[woman_superhero_medium_skin_tone]=$'\U1F9B8\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_superhero_medium_skin_tone_minimally]=$'\U1F9B8\U1F3FD\U200D\U2640' +emoji[woman_superhero_medium_dark_skin_tone]=$'\U1F9B8\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_superhero_medium_dark_skin_tone_minimally]=$'\U1F9B8\U1F3FE\U200D\U2640' +emoji[woman_superhero_dark_skin_tone]=$'\U1F9B8\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_superhero_dark_skin_tone_minimally]=$'\U1F9B8\U1F3FF\U200D\U2640' +emoji[supervillain]=$'\U1F9B9' +emoji[supervillain_light_skin_tone]=$'\U1F9B9\U1F3FB' +emoji[supervillain_medium_light_skin_tone]=$'\U1F9B9\U1F3FC' +emoji[supervillain_medium_skin_tone]=$'\U1F9B9\U1F3FD' +emoji[supervillain_medium_dark_skin_tone]=$'\U1F9B9\U1F3FE' +emoji[supervillain_dark_skin_tone]=$'\U1F9B9\U1F3FF' +emoji[man_supervillain]=$'\U1F9B9\U200D\U2642\UFE0F' +emoji[man_supervillain_minimally]=$'\U1F9B9\U200D\U2642' +emoji[supervillain_man]=$'\U1F9B9\U200D\U2642' +emoji[man_supervillain_light_skin_tone]=$'\U1F9B9\U1F3FB\U200D\U2642\UFE0F' +emoji[man_supervillain_light_skin_tone_minimally]=$'\U1F9B9\U1F3FB\U200D\U2642' +emoji[man_supervillain_medium_light_skin_tone]=$'\U1F9B9\U1F3FC\U200D\U2642\UFE0F' +emoji[man_supervillain_medium_light_skin_tone_minimally]=$'\U1F9B9\U1F3FC\U200D\U2642' +emoji[man_supervillain_medium_skin_tone]=$'\U1F9B9\U1F3FD\U200D\U2642\UFE0F' +emoji[man_supervillain_medium_skin_tone_minimally]=$'\U1F9B9\U1F3FD\U200D\U2642' +emoji[man_supervillain_medium_dark_skin_tone]=$'\U1F9B9\U1F3FE\U200D\U2642\UFE0F' +emoji[man_supervillain_medium_dark_skin_tone_minimally]=$'\U1F9B9\U1F3FE\U200D\U2642' +emoji[man_supervillain_dark_skin_tone]=$'\U1F9B9\U1F3FF\U200D\U2642\UFE0F' +emoji[man_supervillain_dark_skin_tone_minimally]=$'\U1F9B9\U1F3FF\U200D\U2642' +emoji[woman_supervillain]=$'\U1F9B9\U200D\U2640\UFE0F' +emoji[woman_supervillain_minimally]=$'\U1F9B9\U200D\U2640' +emoji[supervillain_woman]=$'\U1F9B9\U200D\U2640' +emoji[woman_supervillain_light_skin_tone]=$'\U1F9B9\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_supervillain_light_skin_tone_minimally]=$'\U1F9B9\U1F3FB\U200D\U2640' +emoji[woman_supervillain_medium_light_skin_tone]=$'\U1F9B9\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_supervillain_medium_light_skin_tone_minimally]=$'\U1F9B9\U1F3FC\U200D\U2640' +emoji[woman_supervillain_medium_skin_tone]=$'\U1F9B9\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_supervillain_medium_skin_tone_minimally]=$'\U1F9B9\U1F3FD\U200D\U2640' +emoji[woman_supervillain_medium_dark_skin_tone]=$'\U1F9B9\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_supervillain_medium_dark_skin_tone_minimally]=$'\U1F9B9\U1F3FE\U200D\U2640' +emoji[woman_supervillain_dark_skin_tone]=$'\U1F9B9\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_supervillain_dark_skin_tone_minimally]=$'\U1F9B9\U1F3FF\U200D\U2640' +emoji[mage]=$'\U1F9D9' +emoji[mage_light_skin_tone]=$'\U1F9D9\U1F3FB' +emoji[mage_medium_light_skin_tone]=$'\U1F9D9\U1F3FC' +emoji[mage_medium_skin_tone]=$'\U1F9D9\U1F3FD' +emoji[mage_medium_dark_skin_tone]=$'\U1F9D9\U1F3FE' +emoji[mage_dark_skin_tone]=$'\U1F9D9\U1F3FF' +emoji[man_mage]=$'\U1F9D9\U200D\U2642\UFE0F' +emoji[man_mage_minimally]=$'\U1F9D9\U200D\U2642' +emoji[mage_man]=$'\U1F9D9\U200D\U2642' +emoji[man_mage_light_skin_tone]=$'\U1F9D9\U1F3FB\U200D\U2642\UFE0F' +emoji[man_mage_light_skin_tone_minimally]=$'\U1F9D9\U1F3FB\U200D\U2642' +emoji[man_mage_medium_light_skin_tone]=$'\U1F9D9\U1F3FC\U200D\U2642\UFE0F' +emoji[man_mage_medium_light_skin_tone_minimally]=$'\U1F9D9\U1F3FC\U200D\U2642' +emoji[man_mage_medium_skin_tone]=$'\U1F9D9\U1F3FD\U200D\U2642\UFE0F' +emoji[man_mage_medium_skin_tone_minimally]=$'\U1F9D9\U1F3FD\U200D\U2642' +emoji[man_mage_medium_dark_skin_tone]=$'\U1F9D9\U1F3FE\U200D\U2642\UFE0F' +emoji[man_mage_medium_dark_skin_tone_minimally]=$'\U1F9D9\U1F3FE\U200D\U2642' +emoji[man_mage_dark_skin_tone]=$'\U1F9D9\U1F3FF\U200D\U2642\UFE0F' +emoji[man_mage_dark_skin_tone_minimally]=$'\U1F9D9\U1F3FF\U200D\U2642' +emoji[woman_mage]=$'\U1F9D9\U200D\U2640\UFE0F' +emoji[woman_mage_minimally]=$'\U1F9D9\U200D\U2640' +emoji[mage_woman]=$'\U1F9D9\U200D\U2640' +emoji[woman_mage_light_skin_tone]=$'\U1F9D9\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_mage_light_skin_tone_minimally]=$'\U1F9D9\U1F3FB\U200D\U2640' +emoji[woman_mage_medium_light_skin_tone]=$'\U1F9D9\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_mage_medium_light_skin_tone_minimally]=$'\U1F9D9\U1F3FC\U200D\U2640' +emoji[woman_mage_medium_skin_tone]=$'\U1F9D9\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_mage_medium_skin_tone_minimally]=$'\U1F9D9\U1F3FD\U200D\U2640' +emoji[woman_mage_medium_dark_skin_tone]=$'\U1F9D9\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_mage_medium_dark_skin_tone_minimally]=$'\U1F9D9\U1F3FE\U200D\U2640' +emoji[woman_mage_dark_skin_tone]=$'\U1F9D9\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_mage_dark_skin_tone_minimally]=$'\U1F9D9\U1F3FF\U200D\U2640' +emoji[fairy]=$'\U1F9DA' +emoji[fairy_light_skin_tone]=$'\U1F9DA\U1F3FB' +emoji[fairy_medium_light_skin_tone]=$'\U1F9DA\U1F3FC' +emoji[fairy_medium_skin_tone]=$'\U1F9DA\U1F3FD' +emoji[fairy_medium_dark_skin_tone]=$'\U1F9DA\U1F3FE' +emoji[fairy_dark_skin_tone]=$'\U1F9DA\U1F3FF' +emoji[man_fairy]=$'\U1F9DA\U200D\U2642\UFE0F' +emoji[man_fairy_minimally]=$'\U1F9DA\U200D\U2642' +emoji[fairy_man]=$'\U1F9DA\U200D\U2642' +emoji[man_fairy_light_skin_tone]=$'\U1F9DA\U1F3FB\U200D\U2642\UFE0F' +emoji[man_fairy_light_skin_tone_minimally]=$'\U1F9DA\U1F3FB\U200D\U2642' +emoji[man_fairy_medium_light_skin_tone]=$'\U1F9DA\U1F3FC\U200D\U2642\UFE0F' +emoji[man_fairy_medium_light_skin_tone_minimally]=$'\U1F9DA\U1F3FC\U200D\U2642' +emoji[man_fairy_medium_skin_tone]=$'\U1F9DA\U1F3FD\U200D\U2642\UFE0F' +emoji[man_fairy_medium_skin_tone_minimally]=$'\U1F9DA\U1F3FD\U200D\U2642' +emoji[man_fairy_medium_dark_skin_tone]=$'\U1F9DA\U1F3FE\U200D\U2642\UFE0F' +emoji[man_fairy_medium_dark_skin_tone_minimally]=$'\U1F9DA\U1F3FE\U200D\U2642' +emoji[man_fairy_dark_skin_tone]=$'\U1F9DA\U1F3FF\U200D\U2642\UFE0F' +emoji[man_fairy_dark_skin_tone_minimally]=$'\U1F9DA\U1F3FF\U200D\U2642' +emoji[woman_fairy]=$'\U1F9DA\U200D\U2640\UFE0F' +emoji[woman_fairy_minimally]=$'\U1F9DA\U200D\U2640' +emoji[fairy_woman]=$'\U1F9DA\U200D\U2640' +emoji[woman_fairy_light_skin_tone]=$'\U1F9DA\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_fairy_light_skin_tone_minimally]=$'\U1F9DA\U1F3FB\U200D\U2640' +emoji[woman_fairy_medium_light_skin_tone]=$'\U1F9DA\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_fairy_medium_light_skin_tone_minimally]=$'\U1F9DA\U1F3FC\U200D\U2640' +emoji[woman_fairy_medium_skin_tone]=$'\U1F9DA\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_fairy_medium_skin_tone_minimally]=$'\U1F9DA\U1F3FD\U200D\U2640' +emoji[woman_fairy_medium_dark_skin_tone]=$'\U1F9DA\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_fairy_medium_dark_skin_tone_minimally]=$'\U1F9DA\U1F3FE\U200D\U2640' +emoji[woman_fairy_dark_skin_tone]=$'\U1F9DA\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_fairy_dark_skin_tone_minimally]=$'\U1F9DA\U1F3FF\U200D\U2640' +emoji[vampire]=$'\U1F9DB' +emoji[vampire_light_skin_tone]=$'\U1F9DB\U1F3FB' +emoji[vampire_medium_light_skin_tone]=$'\U1F9DB\U1F3FC' +emoji[vampire_medium_skin_tone]=$'\U1F9DB\U1F3FD' +emoji[vampire_medium_dark_skin_tone]=$'\U1F9DB\U1F3FE' +emoji[vampire_dark_skin_tone]=$'\U1F9DB\U1F3FF' +emoji[man_vampire]=$'\U1F9DB\U200D\U2642\UFE0F' +emoji[man_vampire_minimally]=$'\U1F9DB\U200D\U2642' +emoji[vampire_man]=$'\U1F9DB\U200D\U2642' +emoji[man_vampire_light_skin_tone]=$'\U1F9DB\U1F3FB\U200D\U2642\UFE0F' +emoji[man_vampire_light_skin_tone_minimally]=$'\U1F9DB\U1F3FB\U200D\U2642' +emoji[man_vampire_medium_light_skin_tone]=$'\U1F9DB\U1F3FC\U200D\U2642\UFE0F' +emoji[man_vampire_medium_light_skin_tone_minimally]=$'\U1F9DB\U1F3FC\U200D\U2642' +emoji[man_vampire_medium_skin_tone]=$'\U1F9DB\U1F3FD\U200D\U2642\UFE0F' +emoji[man_vampire_medium_skin_tone_minimally]=$'\U1F9DB\U1F3FD\U200D\U2642' +emoji[man_vampire_medium_dark_skin_tone]=$'\U1F9DB\U1F3FE\U200D\U2642\UFE0F' +emoji[man_vampire_medium_dark_skin_tone_minimally]=$'\U1F9DB\U1F3FE\U200D\U2642' +emoji[man_vampire_dark_skin_tone]=$'\U1F9DB\U1F3FF\U200D\U2642\UFE0F' +emoji[man_vampire_dark_skin_tone_minimally]=$'\U1F9DB\U1F3FF\U200D\U2642' +emoji[woman_vampire]=$'\U1F9DB\U200D\U2640\UFE0F' +emoji[woman_vampire_minimally]=$'\U1F9DB\U200D\U2640' +emoji[vampire_woman]=$'\U1F9DB\U200D\U2640' +emoji[woman_vampire_light_skin_tone]=$'\U1F9DB\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_vampire_light_skin_tone_minimally]=$'\U1F9DB\U1F3FB\U200D\U2640' +emoji[woman_vampire_medium_light_skin_tone]=$'\U1F9DB\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_vampire_medium_light_skin_tone_minimally]=$'\U1F9DB\U1F3FC\U200D\U2640' +emoji[woman_vampire_medium_skin_tone]=$'\U1F9DB\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_vampire_medium_skin_tone_minimally]=$'\U1F9DB\U1F3FD\U200D\U2640' +emoji[woman_vampire_medium_dark_skin_tone]=$'\U1F9DB\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_vampire_medium_dark_skin_tone_minimally]=$'\U1F9DB\U1F3FE\U200D\U2640' +emoji[woman_vampire_dark_skin_tone]=$'\U1F9DB\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_vampire_dark_skin_tone_minimally]=$'\U1F9DB\U1F3FF\U200D\U2640' +emoji[merperson]=$'\U1F9DC' +emoji[merperson_light_skin_tone]=$'\U1F9DC\U1F3FB' +emoji[merperson_medium_light_skin_tone]=$'\U1F9DC\U1F3FC' +emoji[merperson_medium_skin_tone]=$'\U1F9DC\U1F3FD' +emoji[merperson_medium_dark_skin_tone]=$'\U1F9DC\U1F3FE' +emoji[merperson_dark_skin_tone]=$'\U1F9DC\U1F3FF' +emoji[merman]=$'\U1F9DC\U200D\U2642\UFE0F' +emoji[merman_minimally]=$'\U1F9DC\U200D\U2642' +emoji[merman_light_skin_tone]=$'\U1F9DC\U1F3FB\U200D\U2642\UFE0F' +emoji[merman_light_skin_tone_minimally]=$'\U1F9DC\U1F3FB\U200D\U2642' +emoji[merman_medium_light_skin_tone]=$'\U1F9DC\U1F3FC\U200D\U2642\UFE0F' +emoji[merman_medium_light_skin_tone_minimally]=$'\U1F9DC\U1F3FC\U200D\U2642' +emoji[merman_medium_skin_tone]=$'\U1F9DC\U1F3FD\U200D\U2642\UFE0F' +emoji[merman_medium_skin_tone_minimally]=$'\U1F9DC\U1F3FD\U200D\U2642' +emoji[merman_medium_dark_skin_tone]=$'\U1F9DC\U1F3FE\U200D\U2642\UFE0F' +emoji[merman_medium_dark_skin_tone_minimally]=$'\U1F9DC\U1F3FE\U200D\U2642' +emoji[merman_dark_skin_tone]=$'\U1F9DC\U1F3FF\U200D\U2642\UFE0F' +emoji[merman_dark_skin_tone_minimally]=$'\U1F9DC\U1F3FF\U200D\U2642' +emoji[mermaid]=$'\U1F9DC\U200D\U2640\UFE0F' +emoji[mermaid_minimally]=$'\U1F9DC\U200D\U2640' +emoji[mermaid_light_skin_tone]=$'\U1F9DC\U1F3FB\U200D\U2640\UFE0F' +emoji[mermaid_light_skin_tone_minimally]=$'\U1F9DC\U1F3FB\U200D\U2640' +emoji[mermaid_medium_light_skin_tone]=$'\U1F9DC\U1F3FC\U200D\U2640\UFE0F' +emoji[mermaid_medium_light_skin_tone_minimally]=$'\U1F9DC\U1F3FC\U200D\U2640' +emoji[mermaid_medium_skin_tone]=$'\U1F9DC\U1F3FD\U200D\U2640\UFE0F' +emoji[mermaid_medium_skin_tone_minimally]=$'\U1F9DC\U1F3FD\U200D\U2640' +emoji[mermaid_medium_dark_skin_tone]=$'\U1F9DC\U1F3FE\U200D\U2640\UFE0F' +emoji[mermaid_medium_dark_skin_tone_minimally]=$'\U1F9DC\U1F3FE\U200D\U2640' +emoji[mermaid_dark_skin_tone]=$'\U1F9DC\U1F3FF\U200D\U2640\UFE0F' +emoji[mermaid_dark_skin_tone_minimally]=$'\U1F9DC\U1F3FF\U200D\U2640' +emoji[elf]=$'\U1F9DD' +emoji[elf_light_skin_tone]=$'\U1F9DD\U1F3FB' +emoji[elf_medium_light_skin_tone]=$'\U1F9DD\U1F3FC' +emoji[elf_medium_skin_tone]=$'\U1F9DD\U1F3FD' +emoji[elf_medium_dark_skin_tone]=$'\U1F9DD\U1F3FE' +emoji[elf_dark_skin_tone]=$'\U1F9DD\U1F3FF' +emoji[man_elf]=$'\U1F9DD\U200D\U2642\UFE0F' +emoji[man_elf_minimally]=$'\U1F9DD\U200D\U2642' +emoji[elf_man]=$'\U1F9DD\U200D\U2642' +emoji[man_elf_light_skin_tone]=$'\U1F9DD\U1F3FB\U200D\U2642\UFE0F' +emoji[man_elf_light_skin_tone_minimally]=$'\U1F9DD\U1F3FB\U200D\U2642' +emoji[man_elf_medium_light_skin_tone]=$'\U1F9DD\U1F3FC\U200D\U2642\UFE0F' +emoji[man_elf_medium_light_skin_tone_minimally]=$'\U1F9DD\U1F3FC\U200D\U2642' +emoji[man_elf_medium_skin_tone]=$'\U1F9DD\U1F3FD\U200D\U2642\UFE0F' +emoji[man_elf_medium_skin_tone_minimally]=$'\U1F9DD\U1F3FD\U200D\U2642' +emoji[man_elf_medium_dark_skin_tone]=$'\U1F9DD\U1F3FE\U200D\U2642\UFE0F' +emoji[man_elf_medium_dark_skin_tone_minimally]=$'\U1F9DD\U1F3FE\U200D\U2642' +emoji[man_elf_dark_skin_tone]=$'\U1F9DD\U1F3FF\U200D\U2642\UFE0F' +emoji[man_elf_dark_skin_tone_minimally]=$'\U1F9DD\U1F3FF\U200D\U2642' +emoji[woman_elf]=$'\U1F9DD\U200D\U2640\UFE0F' +emoji[woman_elf_minimally]=$'\U1F9DD\U200D\U2640' +emoji[elf_woman]=$'\U1F9DD\U200D\U2640' +emoji[woman_elf_light_skin_tone]=$'\U1F9DD\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_elf_light_skin_tone_minimally]=$'\U1F9DD\U1F3FB\U200D\U2640' +emoji[woman_elf_medium_light_skin_tone]=$'\U1F9DD\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_elf_medium_light_skin_tone_minimally]=$'\U1F9DD\U1F3FC\U200D\U2640' +emoji[woman_elf_medium_skin_tone]=$'\U1F9DD\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_elf_medium_skin_tone_minimally]=$'\U1F9DD\U1F3FD\U200D\U2640' +emoji[woman_elf_medium_dark_skin_tone]=$'\U1F9DD\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_elf_medium_dark_skin_tone_minimally]=$'\U1F9DD\U1F3FE\U200D\U2640' +emoji[woman_elf_dark_skin_tone]=$'\U1F9DD\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_elf_dark_skin_tone_minimally]=$'\U1F9DD\U1F3FF\U200D\U2640' +emoji[genie]=$'\U1F9DE' +emoji[man_genie]=$'\U1F9DE\U200D\U2642\UFE0F' +emoji[man_genie_minimally]=$'\U1F9DE\U200D\U2642' +emoji[genie_man]=$'\U1F9DE\U200D\U2642' +emoji[woman_genie]=$'\U1F9DE\U200D\U2640\UFE0F' +emoji[woman_genie_minimally]=$'\U1F9DE\U200D\U2640' +emoji[genie_woman]=$'\U1F9DE\U200D\U2640' +emoji[zombie]=$'\U1F9DF' +emoji[man_zombie]=$'\U1F9DF\U200D\U2642\UFE0F' +emoji[man_zombie_minimally]=$'\U1F9DF\U200D\U2642' +emoji[zombie_man]=$'\U1F9DF\U200D\U2642' +emoji[woman_zombie]=$'\U1F9DF\U200D\U2640\UFE0F' +emoji[woman_zombie_minimally]=$'\U1F9DF\U200D\U2640' +emoji[zombie_woman]=$'\U1F9DF\U200D\U2640' +emoji[person_getting_massage]=$'\U1F486' +emoji[massage]=$'\U1F486' +emoji[person_getting_massage_light_skin_tone]=$'\U1F486\U1F3FB' +emoji[person_getting_massage_medium_light_skin_tone]=$'\U1F486\U1F3FC' +emoji[person_getting_massage_medium_skin_tone]=$'\U1F486\U1F3FD' +emoji[person_getting_massage_medium_dark_skin_tone]=$'\U1F486\U1F3FE' +emoji[person_getting_massage_dark_skin_tone]=$'\U1F486\U1F3FF' +emoji[man_getting_massage]=$'\U1F486\U200D\U2642\UFE0F' +emoji[man_getting_massage_minimally]=$'\U1F486\U200D\U2642' +emoji[massage_man]=$'\U1F486\U200D\U2642' +emoji[man_getting_massage_light_skin_tone]=$'\U1F486\U1F3FB\U200D\U2642\UFE0F' +emoji[man_getting_massage_light_skin_tone_minimally]=$'\U1F486\U1F3FB\U200D\U2642' +emoji[man_getting_massage_medium_light_skin_tone]=$'\U1F486\U1F3FC\U200D\U2642\UFE0F' +emoji[man_getting_massage_medium_light_skin_tone_minimally]=$'\U1F486\U1F3FC\U200D\U2642' +emoji[man_getting_massage_medium_skin_tone]=$'\U1F486\U1F3FD\U200D\U2642\UFE0F' +emoji[man_getting_massage_medium_skin_tone_minimally]=$'\U1F486\U1F3FD\U200D\U2642' +emoji[man_getting_massage_medium_dark_skin_tone]=$'\U1F486\U1F3FE\U200D\U2642\UFE0F' +emoji[man_getting_massage_medium_dark_skin_tone_minimally]=$'\U1F486\U1F3FE\U200D\U2642' +emoji[man_getting_massage_dark_skin_tone]=$'\U1F486\U1F3FF\U200D\U2642\UFE0F' +emoji[man_getting_massage_dark_skin_tone_minimally]=$'\U1F486\U1F3FF\U200D\U2642' +emoji[woman_getting_massage]=$'\U1F486\U200D\U2640\UFE0F' +emoji[woman_getting_massage_minimally]=$'\U1F486\U200D\U2640' +emoji[massage_woman]=$'\U1F486\U200D\U2640' +emoji[woman_getting_massage_light_skin_tone]=$'\U1F486\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_getting_massage_light_skin_tone_minimally]=$'\U1F486\U1F3FB\U200D\U2640' +emoji[woman_getting_massage_medium_light_skin_tone]=$'\U1F486\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_getting_massage_medium_light_skin_tone_minimally]=$'\U1F486\U1F3FC\U200D\U2640' +emoji[woman_getting_massage_medium_skin_tone]=$'\U1F486\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_getting_massage_medium_skin_tone_minimally]=$'\U1F486\U1F3FD\U200D\U2640' +emoji[woman_getting_massage_medium_dark_skin_tone]=$'\U1F486\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_getting_massage_medium_dark_skin_tone_minimally]=$'\U1F486\U1F3FE\U200D\U2640' +emoji[woman_getting_massage_dark_skin_tone]=$'\U1F486\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_getting_massage_dark_skin_tone_minimally]=$'\U1F486\U1F3FF\U200D\U2640' +emoji[person_getting_haircut]=$'\U1F487' +emoji[haircut]=$'\U1F487' +emoji[person_getting_haircut_light_skin_tone]=$'\U1F487\U1F3FB' +emoji[person_getting_haircut_medium_light_skin_tone]=$'\U1F487\U1F3FC' +emoji[person_getting_haircut_medium_skin_tone]=$'\U1F487\U1F3FD' +emoji[person_getting_haircut_medium_dark_skin_tone]=$'\U1F487\U1F3FE' +emoji[person_getting_haircut_dark_skin_tone]=$'\U1F487\U1F3FF' +emoji[man_getting_haircut]=$'\U1F487\U200D\U2642\UFE0F' +emoji[man_getting_haircut_minimally]=$'\U1F487\U200D\U2642' +emoji[haircut_man]=$'\U1F487\U200D\U2642' +emoji[man_getting_haircut_light_skin_tone]=$'\U1F487\U1F3FB\U200D\U2642\UFE0F' +emoji[man_getting_haircut_light_skin_tone_minimally]=$'\U1F487\U1F3FB\U200D\U2642' +emoji[man_getting_haircut_medium_light_skin_tone]=$'\U1F487\U1F3FC\U200D\U2642\UFE0F' +emoji[man_getting_haircut_medium_light_skin_tone_minimally]=$'\U1F487\U1F3FC\U200D\U2642' +emoji[man_getting_haircut_medium_skin_tone]=$'\U1F487\U1F3FD\U200D\U2642\UFE0F' +emoji[man_getting_haircut_medium_skin_tone_minimally]=$'\U1F487\U1F3FD\U200D\U2642' +emoji[man_getting_haircut_medium_dark_skin_tone]=$'\U1F487\U1F3FE\U200D\U2642\UFE0F' +emoji[man_getting_haircut_medium_dark_skin_tone_minimally]=$'\U1F487\U1F3FE\U200D\U2642' +emoji[man_getting_haircut_dark_skin_tone]=$'\U1F487\U1F3FF\U200D\U2642\UFE0F' +emoji[man_getting_haircut_dark_skin_tone_minimally]=$'\U1F487\U1F3FF\U200D\U2642' +emoji[woman_getting_haircut]=$'\U1F487\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_minimally]=$'\U1F487\U200D\U2640' +emoji[haircut_woman]=$'\U1F487\U200D\U2640' +emoji[woman_getting_haircut_light_skin_tone]=$'\U1F487\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_light_skin_tone_minimally]=$'\U1F487\U1F3FB\U200D\U2640' +emoji[woman_getting_haircut_medium_light_skin_tone]=$'\U1F487\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_medium_light_skin_tone_minimally]=$'\U1F487\U1F3FC\U200D\U2640' +emoji[woman_getting_haircut_medium_skin_tone]=$'\U1F487\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_medium_skin_tone_minimally]=$'\U1F487\U1F3FD\U200D\U2640' +emoji[woman_getting_haircut_medium_dark_skin_tone]=$'\U1F487\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_medium_dark_skin_tone_minimally]=$'\U1F487\U1F3FE\U200D\U2640' +emoji[woman_getting_haircut_dark_skin_tone]=$'\U1F487\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_dark_skin_tone_minimally]=$'\U1F487\U1F3FF\U200D\U2640' +emoji[person_walking]=$'\U1F6B6' +emoji[walking]=$'\U1F6B6' +emoji[person_walking_light_skin_tone]=$'\U1F6B6\U1F3FB' +emoji[person_walking_medium_light_skin_tone]=$'\U1F6B6\U1F3FC' +emoji[person_walking_medium_skin_tone]=$'\U1F6B6\U1F3FD' +emoji[person_walking_medium_dark_skin_tone]=$'\U1F6B6\U1F3FE' +emoji[person_walking_dark_skin_tone]=$'\U1F6B6\U1F3FF' +emoji[man_walking]=$'\U1F6B6\U200D\U2642\UFE0F' +emoji[man_walking_minimally]=$'\U1F6B6\U200D\U2642' +emoji[walking_man]=$'\U1F6B6\U200D\U2642' +emoji[man_walking_light_skin_tone]=$'\U1F6B6\U1F3FB\U200D\U2642\UFE0F' +emoji[man_walking_light_skin_tone_minimally]=$'\U1F6B6\U1F3FB\U200D\U2642' +emoji[man_walking_medium_light_skin_tone]=$'\U1F6B6\U1F3FC\U200D\U2642\UFE0F' +emoji[man_walking_medium_light_skin_tone_minimally]=$'\U1F6B6\U1F3FC\U200D\U2642' +emoji[man_walking_medium_skin_tone]=$'\U1F6B6\U1F3FD\U200D\U2642\UFE0F' +emoji[man_walking_medium_skin_tone_minimally]=$'\U1F6B6\U1F3FD\U200D\U2642' +emoji[man_walking_medium_dark_skin_tone]=$'\U1F6B6\U1F3FE\U200D\U2642\UFE0F' +emoji[man_walking_medium_dark_skin_tone_minimally]=$'\U1F6B6\U1F3FE\U200D\U2642' +emoji[man_walking_dark_skin_tone]=$'\U1F6B6\U1F3FF\U200D\U2642\UFE0F' +emoji[man_walking_dark_skin_tone_minimally]=$'\U1F6B6\U1F3FF\U200D\U2642' +emoji[woman_walking]=$'\U1F6B6\U200D\U2640\UFE0F' +emoji[woman_walking_minimally]=$'\U1F6B6\U200D\U2640' +emoji[walking_woman]=$'\U1F6B6\U200D\U2640' +emoji[woman_walking_light_skin_tone]=$'\U1F6B6\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_walking_light_skin_tone_minimally]=$'\U1F6B6\U1F3FB\U200D\U2640' +emoji[woman_walking_medium_light_skin_tone]=$'\U1F6B6\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_walking_medium_light_skin_tone_minimally]=$'\U1F6B6\U1F3FC\U200D\U2640' +emoji[woman_walking_medium_skin_tone]=$'\U1F6B6\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_walking_medium_skin_tone_minimally]=$'\U1F6B6\U1F3FD\U200D\U2640' +emoji[woman_walking_medium_dark_skin_tone]=$'\U1F6B6\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_walking_medium_dark_skin_tone_minimally]=$'\U1F6B6\U1F3FE\U200D\U2640' +emoji[woman_walking_dark_skin_tone]=$'\U1F6B6\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_walking_dark_skin_tone_minimally]=$'\U1F6B6\U1F3FF\U200D\U2640' +emoji[person_standing]=$'\U1F9CD' +emoji[standing_person]=$'\U1F9CD' +emoji[person_standing_light_skin_tone]=$'\U1F9CD\U1F3FB' +emoji[person_standing_medium_light_skin_tone]=$'\U1F9CD\U1F3FC' +emoji[person_standing_medium_skin_tone]=$'\U1F9CD\U1F3FD' +emoji[person_standing_medium_dark_skin_tone]=$'\U1F9CD\U1F3FE' +emoji[person_standing_dark_skin_tone]=$'\U1F9CD\U1F3FF' +emoji[man_standing]=$'\U1F9CD\U200D\U2642\UFE0F' +emoji[man_standing_minimally]=$'\U1F9CD\U200D\U2642' +emoji[standing_man]=$'\U1F9CD\U200D\U2642' +emoji[man_standing_light_skin_tone]=$'\U1F9CD\U1F3FB\U200D\U2642\UFE0F' +emoji[man_standing_light_skin_tone_minimally]=$'\U1F9CD\U1F3FB\U200D\U2642' +emoji[man_standing_medium_light_skin_tone]=$'\U1F9CD\U1F3FC\U200D\U2642\UFE0F' +emoji[man_standing_medium_light_skin_tone_minimally]=$'\U1F9CD\U1F3FC\U200D\U2642' +emoji[man_standing_medium_skin_tone]=$'\U1F9CD\U1F3FD\U200D\U2642\UFE0F' +emoji[man_standing_medium_skin_tone_minimally]=$'\U1F9CD\U1F3FD\U200D\U2642' +emoji[man_standing_medium_dark_skin_tone]=$'\U1F9CD\U1F3FE\U200D\U2642\UFE0F' +emoji[man_standing_medium_dark_skin_tone_minimally]=$'\U1F9CD\U1F3FE\U200D\U2642' +emoji[man_standing_dark_skin_tone]=$'\U1F9CD\U1F3FF\U200D\U2642\UFE0F' +emoji[man_standing_dark_skin_tone_minimally]=$'\U1F9CD\U1F3FF\U200D\U2642' +emoji[woman_standing]=$'\U1F9CD\U200D\U2640\UFE0F' +emoji[woman_standing_minimally]=$'\U1F9CD\U200D\U2640' +emoji[standing_woman]=$'\U1F9CD\U200D\U2640' +emoji[woman_standing_light_skin_tone]=$'\U1F9CD\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_standing_light_skin_tone_minimally]=$'\U1F9CD\U1F3FB\U200D\U2640' +emoji[woman_standing_medium_light_skin_tone]=$'\U1F9CD\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_standing_medium_light_skin_tone_minimally]=$'\U1F9CD\U1F3FC\U200D\U2640' +emoji[woman_standing_medium_skin_tone]=$'\U1F9CD\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_standing_medium_skin_tone_minimally]=$'\U1F9CD\U1F3FD\U200D\U2640' +emoji[woman_standing_medium_dark_skin_tone]=$'\U1F9CD\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_standing_medium_dark_skin_tone_minimally]=$'\U1F9CD\U1F3FE\U200D\U2640' +emoji[woman_standing_dark_skin_tone]=$'\U1F9CD\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_standing_dark_skin_tone_minimally]=$'\U1F9CD\U1F3FF\U200D\U2640' +emoji[person_kneeling]=$'\U1F9CE' +emoji[kneeling_person]=$'\U1F9CE' +emoji[person_kneeling_light_skin_tone]=$'\U1F9CE\U1F3FB' +emoji[person_kneeling_medium_light_skin_tone]=$'\U1F9CE\U1F3FC' +emoji[person_kneeling_medium_skin_tone]=$'\U1F9CE\U1F3FD' +emoji[person_kneeling_medium_dark_skin_tone]=$'\U1F9CE\U1F3FE' +emoji[person_kneeling_dark_skin_tone]=$'\U1F9CE\U1F3FF' +emoji[man_kneeling]=$'\U1F9CE\U200D\U2642\UFE0F' +emoji[man_kneeling_minimally]=$'\U1F9CE\U200D\U2642' +emoji[kneeling_man]=$'\U1F9CE\U200D\U2642' +emoji[man_kneeling_light_skin_tone]=$'\U1F9CE\U1F3FB\U200D\U2642\UFE0F' +emoji[man_kneeling_light_skin_tone_minimally]=$'\U1F9CE\U1F3FB\U200D\U2642' +emoji[man_kneeling_medium_light_skin_tone]=$'\U1F9CE\U1F3FC\U200D\U2642\UFE0F' +emoji[man_kneeling_medium_light_skin_tone_minimally]=$'\U1F9CE\U1F3FC\U200D\U2642' +emoji[man_kneeling_medium_skin_tone]=$'\U1F9CE\U1F3FD\U200D\U2642\UFE0F' +emoji[man_kneeling_medium_skin_tone_minimally]=$'\U1F9CE\U1F3FD\U200D\U2642' +emoji[man_kneeling_medium_dark_skin_tone]=$'\U1F9CE\U1F3FE\U200D\U2642\UFE0F' +emoji[man_kneeling_medium_dark_skin_tone_minimally]=$'\U1F9CE\U1F3FE\U200D\U2642' +emoji[man_kneeling_dark_skin_tone]=$'\U1F9CE\U1F3FF\U200D\U2642\UFE0F' +emoji[man_kneeling_dark_skin_tone_minimally]=$'\U1F9CE\U1F3FF\U200D\U2642' +emoji[woman_kneeling]=$'\U1F9CE\U200D\U2640\UFE0F' +emoji[woman_kneeling_minimally]=$'\U1F9CE\U200D\U2640' +emoji[kneeling_woman]=$'\U1F9CE\U200D\U2640' +emoji[woman_kneeling_light_skin_tone]=$'\U1F9CE\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_kneeling_light_skin_tone_minimally]=$'\U1F9CE\U1F3FB\U200D\U2640' +emoji[woman_kneeling_medium_light_skin_tone]=$'\U1F9CE\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_kneeling_medium_light_skin_tone_minimally]=$'\U1F9CE\U1F3FC\U200D\U2640' +emoji[woman_kneeling_medium_skin_tone]=$'\U1F9CE\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_kneeling_medium_skin_tone_minimally]=$'\U1F9CE\U1F3FD\U200D\U2640' +emoji[woman_kneeling_medium_dark_skin_tone]=$'\U1F9CE\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_kneeling_medium_dark_skin_tone_minimally]=$'\U1F9CE\U1F3FE\U200D\U2640' +emoji[woman_kneeling_dark_skin_tone]=$'\U1F9CE\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_kneeling_dark_skin_tone_minimally]=$'\U1F9CE\U1F3FF\U200D\U2640' +emoji[man_with_probing_cane]=$'\U1F468\U200D\U1F9AF' +emoji[man_with_probing_cane_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F9AF' +emoji[man_with_probing_cane_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F9AF' +emoji[man_with_probing_cane_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F9AF' +emoji[man_with_probing_cane_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F9AF' +emoji[man_with_probing_cane_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F9AF' +emoji[woman_with_probing_cane]=$'\U1F469\U200D\U1F9AF' +emoji[woman_with_probing_cane_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F9AF' +emoji[woman_with_probing_cane_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F9AF' +emoji[woman_with_probing_cane_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F9AF' +emoji[woman_with_probing_cane_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F9AF' +emoji[woman_with_probing_cane_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F9AF' +emoji[man_in_motorized_wheelchair]=$'\U1F468\U200D\U1F9BC' +emoji[man_in_motorized_wheelchair_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F9BC' +emoji[man_in_motorized_wheelchair_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F9BC' +emoji[man_in_motorized_wheelchair_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F9BC' +emoji[man_in_motorized_wheelchair_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F9BC' +emoji[man_in_motorized_wheelchair_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair]=$'\U1F469\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F9BC' +emoji[man_in_manual_wheelchair]=$'\U1F468\U200D\U1F9BD' +emoji[man_in_manual_wheelchair_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F9BD' +emoji[man_in_manual_wheelchair_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F9BD' +emoji[man_in_manual_wheelchair_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F9BD' +emoji[man_in_manual_wheelchair_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F9BD' +emoji[man_in_manual_wheelchair_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair]=$'\U1F469\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F9BD' +emoji[person_running]=$'\U1F3C3' +emoji[runner]=$'\U1F3C3' +emoji[running]=$'\U1F3C3' +emoji[person_running_light_skin_tone]=$'\U1F3C3\U1F3FB' +emoji[person_running_medium_light_skin_tone]=$'\U1F3C3\U1F3FC' +emoji[person_running_medium_skin_tone]=$'\U1F3C3\U1F3FD' +emoji[person_running_medium_dark_skin_tone]=$'\U1F3C3\U1F3FE' +emoji[person_running_dark_skin_tone]=$'\U1F3C3\U1F3FF' +emoji[man_running]=$'\U1F3C3\U200D\U2642\UFE0F' +emoji[man_running_minimally]=$'\U1F3C3\U200D\U2642' +emoji[running_man]=$'\U1F3C3\U200D\U2642' +emoji[man_running_light_skin_tone]=$'\U1F3C3\U1F3FB\U200D\U2642\UFE0F' +emoji[man_running_light_skin_tone_minimally]=$'\U1F3C3\U1F3FB\U200D\U2642' +emoji[man_running_medium_light_skin_tone]=$'\U1F3C3\U1F3FC\U200D\U2642\UFE0F' +emoji[man_running_medium_light_skin_tone_minimally]=$'\U1F3C3\U1F3FC\U200D\U2642' +emoji[man_running_medium_skin_tone]=$'\U1F3C3\U1F3FD\U200D\U2642\UFE0F' +emoji[man_running_medium_skin_tone_minimally]=$'\U1F3C3\U1F3FD\U200D\U2642' +emoji[man_running_medium_dark_skin_tone]=$'\U1F3C3\U1F3FE\U200D\U2642\UFE0F' +emoji[man_running_medium_dark_skin_tone_minimally]=$'\U1F3C3\U1F3FE\U200D\U2642' +emoji[man_running_dark_skin_tone]=$'\U1F3C3\U1F3FF\U200D\U2642\UFE0F' +emoji[man_running_dark_skin_tone_minimally]=$'\U1F3C3\U1F3FF\U200D\U2642' +emoji[woman_running]=$'\U1F3C3\U200D\U2640\UFE0F' +emoji[woman_running_minimally]=$'\U1F3C3\U200D\U2640' +emoji[running_woman]=$'\U1F3C3\U200D\U2640' +emoji[woman_running_light_skin_tone]=$'\U1F3C3\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_running_light_skin_tone_minimally]=$'\U1F3C3\U1F3FB\U200D\U2640' +emoji[woman_running_medium_light_skin_tone]=$'\U1F3C3\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_running_medium_light_skin_tone_minimally]=$'\U1F3C3\U1F3FC\U200D\U2640' +emoji[woman_running_medium_skin_tone]=$'\U1F3C3\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_running_medium_skin_tone_minimally]=$'\U1F3C3\U1F3FD\U200D\U2640' +emoji[woman_running_medium_dark_skin_tone]=$'\U1F3C3\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_running_medium_dark_skin_tone_minimally]=$'\U1F3C3\U1F3FE\U200D\U2640' +emoji[woman_running_dark_skin_tone]=$'\U1F3C3\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_running_dark_skin_tone_minimally]=$'\U1F3C3\U1F3FF\U200D\U2640' +emoji[woman_dancing]=$'\U1F483' +emoji[dancer]=$'\U1F483' +emoji[woman_dancing_light_skin_tone]=$'\U1F483\U1F3FB' +emoji[woman_dancing_medium_light_skin_tone]=$'\U1F483\U1F3FC' +emoji[woman_dancing_medium_skin_tone]=$'\U1F483\U1F3FD' +emoji[woman_dancing_medium_dark_skin_tone]=$'\U1F483\U1F3FE' +emoji[woman_dancing_dark_skin_tone]=$'\U1F483\U1F3FF' +emoji[woman_dancing_dark_skin_tone_1]=$'\U1F57A' +emoji[man_dancing]=$'\U1F57A' +emoji[man_dancing_light_skin_tone]=$'\U1F57A\U1F3FB' +emoji[man_dancing_medium_light_skin_tone]=$'\U1F57A\U1F3FC' +emoji[man_dancing_medium_skin_tone]=$'\U1F57A\U1F3FD' +emoji[man_dancing_medium_dark_skin_tone]=$'\U1F57A\U1F3FE' +emoji[man_dancing_dark_skin_tone]=$'\U1F57A\U1F3FF' +emoji[man_in_suit_levitating]=$'\U1F574\UFE0F' +emoji[man_in_suit_levitating_unqualified]=$'\U1F574' +emoji[business_suit_levitating]=$'\U1F574' +emoji[man_in_suit_levitating_light_skin_tone]=$'\U1F574\U1F3FB' +emoji[man_in_suit_levitating_medium_light_skin_tone]=$'\U1F574\U1F3FC' +emoji[man_in_suit_levitating_medium_skin_tone]=$'\U1F574\U1F3FD' +emoji[man_in_suit_levitating_medium_dark_skin_tone]=$'\U1F574\U1F3FE' +emoji[man_in_suit_levitating_dark_skin_tone]=$'\U1F574\U1F3FF' +emoji[people_with_bunny_ears]=$'\U1F46F' +emoji[dancers]=$'\U1F46F' +emoji[men_with_bunny_ears]=$'\U1F46F\U200D\U2642\UFE0F' +emoji[men_with_bunny_ears_minimally]=$'\U1F46F\U200D\U2642' +emoji[dancing_men]=$'\U1F46F\U200D\U2642' +emoji[women_with_bunny_ears]=$'\U1F46F\U200D\U2640\UFE0F' +emoji[women_with_bunny_ears_minimally]=$'\U1F46F\U200D\U2640' +emoji[dancing_women]=$'\U1F46F\U200D\U2640' +emoji[person_in_steamy_room]=$'\U1F9D6' +emoji[sauna_person]=$'\U1F9D6' +emoji[person_in_steamy_room_light_skin_tone]=$'\U1F9D6\U1F3FB' +emoji[person_in_steamy_room_medium_light_skin_tone]=$'\U1F9D6\U1F3FC' +emoji[person_in_steamy_room_medium_skin_tone]=$'\U1F9D6\U1F3FD' +emoji[person_in_steamy_room_medium_dark_skin_tone]=$'\U1F9D6\U1F3FE' +emoji[person_in_steamy_room_dark_skin_tone]=$'\U1F9D6\U1F3FF' +emoji[man_in_steamy_room]=$'\U1F9D6\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_minimally]=$'\U1F9D6\U200D\U2642' +emoji[sauna_man]=$'\U1F9D6\U200D\U2642' +emoji[man_in_steamy_room_light_skin_tone]=$'\U1F9D6\U1F3FB\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_light_skin_tone_minimally]=$'\U1F9D6\U1F3FB\U200D\U2642' +emoji[man_in_steamy_room_medium_light_skin_tone]=$'\U1F9D6\U1F3FC\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_medium_light_skin_tone_minimally]=$'\U1F9D6\U1F3FC\U200D\U2642' +emoji[man_in_steamy_room_medium_skin_tone]=$'\U1F9D6\U1F3FD\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_medium_skin_tone_minimally]=$'\U1F9D6\U1F3FD\U200D\U2642' +emoji[man_in_steamy_room_medium_dark_skin_tone]=$'\U1F9D6\U1F3FE\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_medium_dark_skin_tone_minimally]=$'\U1F9D6\U1F3FE\U200D\U2642' +emoji[man_in_steamy_room_dark_skin_tone]=$'\U1F9D6\U1F3FF\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_dark_skin_tone_minimally]=$'\U1F9D6\U1F3FF\U200D\U2642' +emoji[woman_in_steamy_room]=$'\U1F9D6\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_minimally]=$'\U1F9D6\U200D\U2640' +emoji[sauna_woman]=$'\U1F9D6\U200D\U2640' +emoji[woman_in_steamy_room_light_skin_tone]=$'\U1F9D6\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_light_skin_tone_minimally]=$'\U1F9D6\U1F3FB\U200D\U2640' +emoji[woman_in_steamy_room_medium_light_skin_tone]=$'\U1F9D6\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_medium_light_skin_tone_minimally]=$'\U1F9D6\U1F3FC\U200D\U2640' +emoji[woman_in_steamy_room_medium_skin_tone]=$'\U1F9D6\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_medium_skin_tone_minimally]=$'\U1F9D6\U1F3FD\U200D\U2640' +emoji[woman_in_steamy_room_medium_dark_skin_tone]=$'\U1F9D6\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_medium_dark_skin_tone_minimally]=$'\U1F9D6\U1F3FE\U200D\U2640' +emoji[woman_in_steamy_room_dark_skin_tone]=$'\U1F9D6\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_dark_skin_tone_minimally]=$'\U1F9D6\U1F3FF\U200D\U2640' +emoji[person_climbing]=$'\U1F9D7' +emoji[climbing]=$'\U1F9D7' +emoji[person_climbing_light_skin_tone]=$'\U1F9D7\U1F3FB' +emoji[person_climbing_medium_light_skin_tone]=$'\U1F9D7\U1F3FC' +emoji[person_climbing_medium_skin_tone]=$'\U1F9D7\U1F3FD' +emoji[person_climbing_medium_dark_skin_tone]=$'\U1F9D7\U1F3FE' +emoji[person_climbing_dark_skin_tone]=$'\U1F9D7\U1F3FF' +emoji[man_climbing]=$'\U1F9D7\U200D\U2642\UFE0F' +emoji[man_climbing_minimally]=$'\U1F9D7\U200D\U2642' +emoji[climbing_man]=$'\U1F9D7\U200D\U2642' +emoji[man_climbing_light_skin_tone]=$'\U1F9D7\U1F3FB\U200D\U2642\UFE0F' +emoji[man_climbing_light_skin_tone_minimally]=$'\U1F9D7\U1F3FB\U200D\U2642' +emoji[man_climbing_medium_light_skin_tone]=$'\U1F9D7\U1F3FC\U200D\U2642\UFE0F' +emoji[man_climbing_medium_light_skin_tone_minimally]=$'\U1F9D7\U1F3FC\U200D\U2642' +emoji[man_climbing_medium_skin_tone]=$'\U1F9D7\U1F3FD\U200D\U2642\UFE0F' +emoji[man_climbing_medium_skin_tone_minimally]=$'\U1F9D7\U1F3FD\U200D\U2642' +emoji[man_climbing_medium_dark_skin_tone]=$'\U1F9D7\U1F3FE\U200D\U2642\UFE0F' +emoji[man_climbing_medium_dark_skin_tone_minimally]=$'\U1F9D7\U1F3FE\U200D\U2642' +emoji[man_climbing_dark_skin_tone]=$'\U1F9D7\U1F3FF\U200D\U2642\UFE0F' +emoji[man_climbing_dark_skin_tone_minimally]=$'\U1F9D7\U1F3FF\U200D\U2642' +emoji[woman_climbing]=$'\U1F9D7\U200D\U2640\UFE0F' +emoji[woman_climbing_minimally]=$'\U1F9D7\U200D\U2640' +emoji[climbing_woman]=$'\U1F9D7\U200D\U2640' +emoji[woman_climbing_light_skin_tone]=$'\U1F9D7\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_climbing_light_skin_tone_minimally]=$'\U1F9D7\U1F3FB\U200D\U2640' +emoji[woman_climbing_medium_light_skin_tone]=$'\U1F9D7\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_climbing_medium_light_skin_tone_minimally]=$'\U1F9D7\U1F3FC\U200D\U2640' +emoji[woman_climbing_medium_skin_tone]=$'\U1F9D7\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_climbing_medium_skin_tone_minimally]=$'\U1F9D7\U1F3FD\U200D\U2640' +emoji[woman_climbing_medium_dark_skin_tone]=$'\U1F9D7\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_climbing_medium_dark_skin_tone_minimally]=$'\U1F9D7\U1F3FE\U200D\U2640' +emoji[woman_climbing_dark_skin_tone]=$'\U1F9D7\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_climbing_dark_skin_tone_minimally]=$'\U1F9D7\U1F3FF\U200D\U2640' +emoji[person_fencing]=$'\U1F93A' +emoji[horse_racing]=$'\U1F3C7' +emoji[horse_racing_light_skin_tone]=$'\U1F3C7\U1F3FB' +emoji[horse_racing_medium_light_skin_tone]=$'\U1F3C7\U1F3FC' +emoji[horse_racing_medium_skin_tone]=$'\U1F3C7\U1F3FD' +emoji[horse_racing_medium_dark_skin_tone]=$'\U1F3C7\U1F3FE' +emoji[horse_racing_dark_skin_tone]=$'\U1F3C7\U1F3FF' +emoji[skier]=$'\U26F7\UFE0F' +emoji[skier_unqualified]=$'\U26F7' +emoji[snowboarder]=$'\U1F3C2' +emoji[snowboarder_light_skin_tone]=$'\U1F3C2\U1F3FB' +emoji[snowboarder_medium_light_skin_tone]=$'\U1F3C2\U1F3FC' +emoji[snowboarder_medium_skin_tone]=$'\U1F3C2\U1F3FD' +emoji[snowboarder_medium_dark_skin_tone]=$'\U1F3C2\U1F3FE' +emoji[snowboarder_dark_skin_tone]=$'\U1F3C2\U1F3FF' +emoji[person_golfing]=$'\U1F3CC\UFE0F' +emoji[person_golfing_unqualified]=$'\U1F3CC' +emoji[golfing]=$'\U1F3CC' +emoji[person_golfing_light_skin_tone]=$'\U1F3CC\U1F3FB' +emoji[person_golfing_medium_light_skin_tone]=$'\U1F3CC\U1F3FC' +emoji[person_golfing_medium_skin_tone]=$'\U1F3CC\U1F3FD' +emoji[person_golfing_medium_dark_skin_tone]=$'\U1F3CC\U1F3FE' +emoji[person_golfing_dark_skin_tone]=$'\U1F3CC\U1F3FF' +emoji[man_golfing]=$'\U1F3CC\UFE0F\U200D\U2642\UFE0F' +emoji[golfing_man]=$'\U1F3CC\UFE0F\U200D\U2642\UFE0F' +emoji[man_golfing_unqualified]=$'\U1F3CC\U200D\U2642\UFE0F' +emoji[man_golfing_unqualified_1]=$'\U1F3CC\UFE0F\U200D\U2642' +emoji[man_golfing_unqualified_2]=$'\U1F3CC\U200D\U2642' +emoji[man_golfing_light_skin_tone]=$'\U1F3CC\U1F3FB\U200D\U2642\UFE0F' +emoji[man_golfing_light_skin_tone_minimally]=$'\U1F3CC\U1F3FB\U200D\U2642' +emoji[man_golfing_medium_light_skin_tone]=$'\U1F3CC\U1F3FC\U200D\U2642\UFE0F' +emoji[man_golfing_medium_light_skin_tone_minimally]=$'\U1F3CC\U1F3FC\U200D\U2642' +emoji[man_golfing_medium_skin_tone]=$'\U1F3CC\U1F3FD\U200D\U2642\UFE0F' +emoji[man_golfing_medium_skin_tone_minimally]=$'\U1F3CC\U1F3FD\U200D\U2642' +emoji[man_golfing_medium_dark_skin_tone]=$'\U1F3CC\U1F3FE\U200D\U2642\UFE0F' +emoji[man_golfing_medium_dark_skin_tone_minimally]=$'\U1F3CC\U1F3FE\U200D\U2642' +emoji[man_golfing_dark_skin_tone]=$'\U1F3CC\U1F3FF\U200D\U2642\UFE0F' +emoji[man_golfing_dark_skin_tone_minimally]=$'\U1F3CC\U1F3FF\U200D\U2642' +emoji[woman_golfing]=$'\U1F3CC\UFE0F\U200D\U2640\UFE0F' +emoji[golfing_woman]=$'\U1F3CC\UFE0F\U200D\U2640\UFE0F' +emoji[woman_golfing_unqualified]=$'\U1F3CC\U200D\U2640\UFE0F' +emoji[woman_golfing_unqualified_1]=$'\U1F3CC\UFE0F\U200D\U2640' +emoji[woman_golfing_unqualified_2]=$'\U1F3CC\U200D\U2640' +emoji[woman_golfing_light_skin_tone]=$'\U1F3CC\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_golfing_light_skin_tone_minimally]=$'\U1F3CC\U1F3FB\U200D\U2640' +emoji[woman_golfing_medium_light_skin_tone]=$'\U1F3CC\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_golfing_medium_light_skin_tone_minimally]=$'\U1F3CC\U1F3FC\U200D\U2640' +emoji[woman_golfing_medium_skin_tone]=$'\U1F3CC\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_golfing_medium_skin_tone_minimally]=$'\U1F3CC\U1F3FD\U200D\U2640' +emoji[woman_golfing_medium_dark_skin_tone]=$'\U1F3CC\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_golfing_medium_dark_skin_tone_minimally]=$'\U1F3CC\U1F3FE\U200D\U2640' +emoji[woman_golfing_dark_skin_tone]=$'\U1F3CC\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_golfing_dark_skin_tone_minimally]=$'\U1F3CC\U1F3FF\U200D\U2640' +emoji[person_surfing]=$'\U1F3C4' +emoji[surfer]=$'\U1F3C4' +emoji[person_surfing_light_skin_tone]=$'\U1F3C4\U1F3FB' +emoji[person_surfing_medium_light_skin_tone]=$'\U1F3C4\U1F3FC' +emoji[person_surfing_medium_skin_tone]=$'\U1F3C4\U1F3FD' +emoji[person_surfing_medium_dark_skin_tone]=$'\U1F3C4\U1F3FE' +emoji[person_surfing_dark_skin_tone]=$'\U1F3C4\U1F3FF' +emoji[man_surfing]=$'\U1F3C4\U200D\U2642\UFE0F' +emoji[man_surfing_minimally]=$'\U1F3C4\U200D\U2642' +emoji[surfing_man]=$'\U1F3C4\U200D\U2642' +emoji[man_surfing_light_skin_tone]=$'\U1F3C4\U1F3FB\U200D\U2642\UFE0F' +emoji[man_surfing_light_skin_tone_minimally]=$'\U1F3C4\U1F3FB\U200D\U2642' +emoji[man_surfing_medium_light_skin_tone]=$'\U1F3C4\U1F3FC\U200D\U2642\UFE0F' +emoji[man_surfing_medium_light_skin_tone_minimally]=$'\U1F3C4\U1F3FC\U200D\U2642' +emoji[man_surfing_medium_skin_tone]=$'\U1F3C4\U1F3FD\U200D\U2642\UFE0F' +emoji[man_surfing_medium_skin_tone_minimally]=$'\U1F3C4\U1F3FD\U200D\U2642' +emoji[man_surfing_medium_dark_skin_tone]=$'\U1F3C4\U1F3FE\U200D\U2642\UFE0F' +emoji[man_surfing_medium_dark_skin_tone_minimally]=$'\U1F3C4\U1F3FE\U200D\U2642' +emoji[man_surfing_dark_skin_tone]=$'\U1F3C4\U1F3FF\U200D\U2642\UFE0F' +emoji[man_surfing_dark_skin_tone_minimally]=$'\U1F3C4\U1F3FF\U200D\U2642' +emoji[woman_surfing]=$'\U1F3C4\U200D\U2640\UFE0F' +emoji[woman_surfing_minimally]=$'\U1F3C4\U200D\U2640' +emoji[surfing_woman]=$'\U1F3C4\U200D\U2640' +emoji[woman_surfing_light_skin_tone]=$'\U1F3C4\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_surfing_light_skin_tone_minimally]=$'\U1F3C4\U1F3FB\U200D\U2640' +emoji[woman_surfing_medium_light_skin_tone]=$'\U1F3C4\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_surfing_medium_light_skin_tone_minimally]=$'\U1F3C4\U1F3FC\U200D\U2640' +emoji[woman_surfing_medium_skin_tone]=$'\U1F3C4\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_surfing_medium_skin_tone_minimally]=$'\U1F3C4\U1F3FD\U200D\U2640' +emoji[woman_surfing_medium_dark_skin_tone]=$'\U1F3C4\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_surfing_medium_dark_skin_tone_minimally]=$'\U1F3C4\U1F3FE\U200D\U2640' +emoji[woman_surfing_dark_skin_tone]=$'\U1F3C4\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_surfing_dark_skin_tone_minimally]=$'\U1F3C4\U1F3FF\U200D\U2640' +emoji[person_rowing_boat]=$'\U1F6A3' +emoji[rowboat]=$'\U1F6A3' +emoji[person_rowing_boat_light_skin_tone]=$'\U1F6A3\U1F3FB' +emoji[person_rowing_boat_medium_light_skin_tone]=$'\U1F6A3\U1F3FC' +emoji[person_rowing_boat_medium_skin_tone]=$'\U1F6A3\U1F3FD' +emoji[person_rowing_boat_medium_dark_skin_tone]=$'\U1F6A3\U1F3FE' +emoji[person_rowing_boat_dark_skin_tone]=$'\U1F6A3\U1F3FF' +emoji[man_rowing_boat]=$'\U1F6A3\U200D\U2642\UFE0F' +emoji[man_rowing_boat_minimally]=$'\U1F6A3\U200D\U2642' +emoji[rowing_man]=$'\U1F6A3\U200D\U2642' +emoji[man_rowing_boat_light_skin_tone]=$'\U1F6A3\U1F3FB\U200D\U2642\UFE0F' +emoji[man_rowing_boat_light_skin_tone_minimally]=$'\U1F6A3\U1F3FB\U200D\U2642' +emoji[man_rowing_boat_medium_light_skin_tone]=$'\U1F6A3\U1F3FC\U200D\U2642\UFE0F' +emoji[man_rowing_boat_medium_light_skin_tone_minimally]=$'\U1F6A3\U1F3FC\U200D\U2642' +emoji[man_rowing_boat_medium_skin_tone]=$'\U1F6A3\U1F3FD\U200D\U2642\UFE0F' +emoji[man_rowing_boat_medium_skin_tone_minimally]=$'\U1F6A3\U1F3FD\U200D\U2642' +emoji[man_rowing_boat_medium_dark_skin_tone]=$'\U1F6A3\U1F3FE\U200D\U2642\UFE0F' +emoji[man_rowing_boat_medium_dark_skin_tone_minimally]=$'\U1F6A3\U1F3FE\U200D\U2642' +emoji[man_rowing_boat_dark_skin_tone]=$'\U1F6A3\U1F3FF\U200D\U2642\UFE0F' +emoji[man_rowing_boat_dark_skin_tone_minimally]=$'\U1F6A3\U1F3FF\U200D\U2642' +emoji[woman_rowing_boat]=$'\U1F6A3\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_minimally]=$'\U1F6A3\U200D\U2640' +emoji[rowing_woman]=$'\U1F6A3\U200D\U2640' +emoji[woman_rowing_boat_light_skin_tone]=$'\U1F6A3\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_light_skin_tone_minimally]=$'\U1F6A3\U1F3FB\U200D\U2640' +emoji[woman_rowing_boat_medium_light_skin_tone]=$'\U1F6A3\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_medium_light_skin_tone_minimally]=$'\U1F6A3\U1F3FC\U200D\U2640' +emoji[woman_rowing_boat_medium_skin_tone]=$'\U1F6A3\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_medium_skin_tone_minimally]=$'\U1F6A3\U1F3FD\U200D\U2640' +emoji[woman_rowing_boat_medium_dark_skin_tone]=$'\U1F6A3\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_medium_dark_skin_tone_minimally]=$'\U1F6A3\U1F3FE\U200D\U2640' +emoji[woman_rowing_boat_dark_skin_tone]=$'\U1F6A3\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_dark_skin_tone_minimally]=$'\U1F6A3\U1F3FF\U200D\U2640' +emoji[person_swimming]=$'\U1F3CA' +emoji[swimmer]=$'\U1F3CA' +emoji[person_swimming_light_skin_tone]=$'\U1F3CA\U1F3FB' +emoji[person_swimming_medium_light_skin_tone]=$'\U1F3CA\U1F3FC' +emoji[person_swimming_medium_skin_tone]=$'\U1F3CA\U1F3FD' +emoji[person_swimming_medium_dark_skin_tone]=$'\U1F3CA\U1F3FE' +emoji[person_swimming_dark_skin_tone]=$'\U1F3CA\U1F3FF' +emoji[man_swimming]=$'\U1F3CA\U200D\U2642\UFE0F' +emoji[man_swimming_minimally]=$'\U1F3CA\U200D\U2642' +emoji[swimming_man]=$'\U1F3CA\U200D\U2642' +emoji[man_swimming_light_skin_tone]=$'\U1F3CA\U1F3FB\U200D\U2642\UFE0F' +emoji[man_swimming_light_skin_tone_minimally]=$'\U1F3CA\U1F3FB\U200D\U2642' +emoji[man_swimming_medium_light_skin_tone]=$'\U1F3CA\U1F3FC\U200D\U2642\UFE0F' +emoji[man_swimming_medium_light_skin_tone_minimally]=$'\U1F3CA\U1F3FC\U200D\U2642' +emoji[man_swimming_medium_skin_tone]=$'\U1F3CA\U1F3FD\U200D\U2642\UFE0F' +emoji[man_swimming_medium_skin_tone_minimally]=$'\U1F3CA\U1F3FD\U200D\U2642' +emoji[man_swimming_medium_dark_skin_tone]=$'\U1F3CA\U1F3FE\U200D\U2642\UFE0F' +emoji[man_swimming_medium_dark_skin_tone_minimally]=$'\U1F3CA\U1F3FE\U200D\U2642' +emoji[man_swimming_dark_skin_tone]=$'\U1F3CA\U1F3FF\U200D\U2642\UFE0F' +emoji[man_swimming_dark_skin_tone_minimally]=$'\U1F3CA\U1F3FF\U200D\U2642' +emoji[woman_swimming]=$'\U1F3CA\U200D\U2640\UFE0F' +emoji[woman_swimming_minimally]=$'\U1F3CA\U200D\U2640' +emoji[swimming_woman]=$'\U1F3CA\U200D\U2640' +emoji[woman_swimming_light_skin_tone]=$'\U1F3CA\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_swimming_light_skin_tone_minimally]=$'\U1F3CA\U1F3FB\U200D\U2640' +emoji[woman_swimming_medium_light_skin_tone]=$'\U1F3CA\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_swimming_medium_light_skin_tone_minimally]=$'\U1F3CA\U1F3FC\U200D\U2640' +emoji[woman_swimming_medium_skin_tone]=$'\U1F3CA\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_swimming_medium_skin_tone_minimally]=$'\U1F3CA\U1F3FD\U200D\U2640' +emoji[woman_swimming_medium_dark_skin_tone]=$'\U1F3CA\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_swimming_medium_dark_skin_tone_minimally]=$'\U1F3CA\U1F3FE\U200D\U2640' +emoji[woman_swimming_dark_skin_tone]=$'\U1F3CA\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_swimming_dark_skin_tone_minimally]=$'\U1F3CA\U1F3FF\U200D\U2640' +emoji[person_bouncing_ball]=$'\U26F9\UFE0F' +emoji[person_bouncing_ball_unqualified]=$'\U26F9' +emoji[bouncing_ball_person]=$'\U26F9' +emoji[person_bouncing_ball_light_skin_tone]=$'\U26F9\U1F3FB' +emoji[person_bouncing_ball_medium_light_skin_tone]=$'\U26F9\U1F3FC' +emoji[person_bouncing_ball_medium_skin_tone]=$'\U26F9\U1F3FD' +emoji[person_bouncing_ball_medium_dark_skin_tone]=$'\U26F9\U1F3FE' +emoji[person_bouncing_ball_dark_skin_tone]=$'\U26F9\U1F3FF' +emoji[man_bouncing_ball]=$'\U26F9\UFE0F\U200D\U2642\UFE0F' +emoji[bouncing_ball_man]=$'\U26F9\UFE0F\U200D\U2642\UFE0F' +emoji[basketball_man]=$'\U26F9\UFE0F\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_unqualified]=$'\U26F9\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_unqualified_1]=$'\U26F9\UFE0F\U200D\U2642' +emoji[man_bouncing_ball_unqualified_2]=$'\U26F9\U200D\U2642' +emoji[man_bouncing_ball_light_skin_tone]=$'\U26F9\U1F3FB\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_light_skin_tone_minimally]=$'\U26F9\U1F3FB\U200D\U2642' +emoji[man_bouncing_ball_medium_light_skin_tone]=$'\U26F9\U1F3FC\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_medium_light_skin_tone_minimally]=$'\U26F9\U1F3FC\U200D\U2642' +emoji[man_bouncing_ball_medium_skin_tone]=$'\U26F9\U1F3FD\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_medium_skin_tone_minimally]=$'\U26F9\U1F3FD\U200D\U2642' +emoji[man_bouncing_ball_medium_dark_skin_tone]=$'\U26F9\U1F3FE\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_medium_dark_skin_tone_minimally]=$'\U26F9\U1F3FE\U200D\U2642' +emoji[man_bouncing_ball_dark_skin_tone]=$'\U26F9\U1F3FF\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_dark_skin_tone_minimally]=$'\U26F9\U1F3FF\U200D\U2642' +emoji[woman_bouncing_ball]=$'\U26F9\UFE0F\U200D\U2640\UFE0F' +emoji[bouncing_ball_woman]=$'\U26F9\UFE0F\U200D\U2640\UFE0F' +emoji[basketball_woman]=$'\U26F9\UFE0F\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_unqualified]=$'\U26F9\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_unqualified_1]=$'\U26F9\UFE0F\U200D\U2640' +emoji[woman_bouncing_ball_unqualified_2]=$'\U26F9\U200D\U2640' +emoji[woman_bouncing_ball_light_skin_tone]=$'\U26F9\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_light_skin_tone_minimally]=$'\U26F9\U1F3FB\U200D\U2640' +emoji[woman_bouncing_ball_medium_light_skin_tone]=$'\U26F9\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_medium_light_skin_tone_minimally]=$'\U26F9\U1F3FC\U200D\U2640' +emoji[woman_bouncing_ball_medium_skin_tone]=$'\U26F9\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_medium_skin_tone_minimally]=$'\U26F9\U1F3FD\U200D\U2640' +emoji[woman_bouncing_ball_medium_dark_skin_tone]=$'\U26F9\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_medium_dark_skin_tone_minimally]=$'\U26F9\U1F3FE\U200D\U2640' +emoji[woman_bouncing_ball_dark_skin_tone]=$'\U26F9\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_dark_skin_tone_minimally]=$'\U26F9\U1F3FF\U200D\U2640' +emoji[person_lifting_weights]=$'\U1F3CB\UFE0F' +emoji[person_lifting_weights_unqualified]=$'\U1F3CB' +emoji[weight_lifting]=$'\U1F3CB' +emoji[person_lifting_weights_light_skin_tone]=$'\U1F3CB\U1F3FB' +emoji[person_lifting_weights_medium_light_skin_tone]=$'\U1F3CB\U1F3FC' +emoji[person_lifting_weights_medium_skin_tone]=$'\U1F3CB\U1F3FD' +emoji[person_lifting_weights_medium_dark_skin_tone]=$'\U1F3CB\U1F3FE' +emoji[person_lifting_weights_dark_skin_tone]=$'\U1F3CB\U1F3FF' +emoji[man_lifting_weights]=$'\U1F3CB\UFE0F\U200D\U2642\UFE0F' +emoji[weight_lifting_man]=$'\U1F3CB\UFE0F\U200D\U2642\UFE0F' +emoji[man_lifting_weights_unqualified]=$'\U1F3CB\U200D\U2642\UFE0F' +emoji[man_lifting_weights_unqualified_1]=$'\U1F3CB\UFE0F\U200D\U2642' +emoji[man_lifting_weights_unqualified_2]=$'\U1F3CB\U200D\U2642' +emoji[man_lifting_weights_light_skin_tone]=$'\U1F3CB\U1F3FB\U200D\U2642\UFE0F' +emoji[man_lifting_weights_light_skin_tone_minimally]=$'\U1F3CB\U1F3FB\U200D\U2642' +emoji[man_lifting_weights_medium_light_skin_tone]=$'\U1F3CB\U1F3FC\U200D\U2642\UFE0F' +emoji[man_lifting_weights_medium_light_skin_tone_minimally]=$'\U1F3CB\U1F3FC\U200D\U2642' +emoji[man_lifting_weights_medium_skin_tone]=$'\U1F3CB\U1F3FD\U200D\U2642\UFE0F' +emoji[man_lifting_weights_medium_skin_tone_minimally]=$'\U1F3CB\U1F3FD\U200D\U2642' +emoji[man_lifting_weights_medium_dark_skin_tone]=$'\U1F3CB\U1F3FE\U200D\U2642\UFE0F' +emoji[man_lifting_weights_medium_dark_skin_tone_minimally]=$'\U1F3CB\U1F3FE\U200D\U2642' +emoji[man_lifting_weights_dark_skin_tone]=$'\U1F3CB\U1F3FF\U200D\U2642\UFE0F' +emoji[man_lifting_weights_dark_skin_tone_minimally]=$'\U1F3CB\U1F3FF\U200D\U2642' +emoji[woman_lifting_weights]=$'\U1F3CB\UFE0F\U200D\U2640\UFE0F' +emoji[weight_lifting_woman]=$'\U1F3CB\UFE0F\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_unqualified]=$'\U1F3CB\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_unqualified_1]=$'\U1F3CB\UFE0F\U200D\U2640' +emoji[woman_lifting_weights_unqualified_2]=$'\U1F3CB\U200D\U2640' +emoji[woman_lifting_weights_light_skin_tone]=$'\U1F3CB\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_light_skin_tone_minimally]=$'\U1F3CB\U1F3FB\U200D\U2640' +emoji[woman_lifting_weights_medium_light_skin_tone]=$'\U1F3CB\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_medium_light_skin_tone_minimally]=$'\U1F3CB\U1F3FC\U200D\U2640' +emoji[woman_lifting_weights_medium_skin_tone]=$'\U1F3CB\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_medium_skin_tone_minimally]=$'\U1F3CB\U1F3FD\U200D\U2640' +emoji[woman_lifting_weights_medium_dark_skin_tone]=$'\U1F3CB\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_medium_dark_skin_tone_minimally]=$'\U1F3CB\U1F3FE\U200D\U2640' +emoji[woman_lifting_weights_dark_skin_tone]=$'\U1F3CB\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_dark_skin_tone_minimally]=$'\U1F3CB\U1F3FF\U200D\U2640' +emoji[person_biking]=$'\U1F6B4' +emoji[bicyclist]=$'\U1F6B4' +emoji[person_biking_light_skin_tone]=$'\U1F6B4\U1F3FB' +emoji[person_biking_medium_light_skin_tone]=$'\U1F6B4\U1F3FC' +emoji[person_biking_medium_skin_tone]=$'\U1F6B4\U1F3FD' +emoji[person_biking_medium_dark_skin_tone]=$'\U1F6B4\U1F3FE' +emoji[person_biking_dark_skin_tone]=$'\U1F6B4\U1F3FF' +emoji[man_biking]=$'\U1F6B4\U200D\U2642\UFE0F' +emoji[man_biking_minimally]=$'\U1F6B4\U200D\U2642' +emoji[biking_man]=$'\U1F6B4\U200D\U2642' +emoji[man_biking_light_skin_tone]=$'\U1F6B4\U1F3FB\U200D\U2642\UFE0F' +emoji[man_biking_light_skin_tone_minimally]=$'\U1F6B4\U1F3FB\U200D\U2642' +emoji[man_biking_medium_light_skin_tone]=$'\U1F6B4\U1F3FC\U200D\U2642\UFE0F' +emoji[man_biking_medium_light_skin_tone_minimally]=$'\U1F6B4\U1F3FC\U200D\U2642' +emoji[man_biking_medium_skin_tone]=$'\U1F6B4\U1F3FD\U200D\U2642\UFE0F' +emoji[man_biking_medium_skin_tone_minimally]=$'\U1F6B4\U1F3FD\U200D\U2642' +emoji[man_biking_medium_dark_skin_tone]=$'\U1F6B4\U1F3FE\U200D\U2642\UFE0F' +emoji[man_biking_medium_dark_skin_tone_minimally]=$'\U1F6B4\U1F3FE\U200D\U2642' +emoji[man_biking_dark_skin_tone]=$'\U1F6B4\U1F3FF\U200D\U2642\UFE0F' +emoji[man_biking_dark_skin_tone_minimally]=$'\U1F6B4\U1F3FF\U200D\U2642' +emoji[woman_biking]=$'\U1F6B4\U200D\U2640\UFE0F' +emoji[woman_biking_minimally]=$'\U1F6B4\U200D\U2640' +emoji[biking_woman]=$'\U1F6B4\U200D\U2640' +emoji[woman_biking_light_skin_tone]=$'\U1F6B4\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_biking_light_skin_tone_minimally]=$'\U1F6B4\U1F3FB\U200D\U2640' +emoji[woman_biking_medium_light_skin_tone]=$'\U1F6B4\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_biking_medium_light_skin_tone_minimally]=$'\U1F6B4\U1F3FC\U200D\U2640' +emoji[woman_biking_medium_skin_tone]=$'\U1F6B4\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_biking_medium_skin_tone_minimally]=$'\U1F6B4\U1F3FD\U200D\U2640' +emoji[woman_biking_medium_dark_skin_tone]=$'\U1F6B4\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_biking_medium_dark_skin_tone_minimally]=$'\U1F6B4\U1F3FE\U200D\U2640' +emoji[woman_biking_dark_skin_tone]=$'\U1F6B4\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_biking_dark_skin_tone_minimally]=$'\U1F6B4\U1F3FF\U200D\U2640' +emoji[person_mountain_biking]=$'\U1F6B5' +emoji[mountain_bicyclist]=$'\U1F6B5' +emoji[person_mountain_biking_light_skin_tone]=$'\U1F6B5\U1F3FB' +emoji[person_mountain_biking_medium_light_skin_tone]=$'\U1F6B5\U1F3FC' +emoji[person_mountain_biking_medium_skin_tone]=$'\U1F6B5\U1F3FD' +emoji[person_mountain_biking_medium_dark_skin_tone]=$'\U1F6B5\U1F3FE' +emoji[person_mountain_biking_dark_skin_tone]=$'\U1F6B5\U1F3FF' +emoji[man_mountain_biking]=$'\U1F6B5\U200D\U2642\UFE0F' +emoji[man_mountain_biking_minimally]=$'\U1F6B5\U200D\U2642' +emoji[mountain_biking_man]=$'\U1F6B5\U200D\U2642' +emoji[man_mountain_biking_light_skin_tone]=$'\U1F6B5\U1F3FB\U200D\U2642\UFE0F' +emoji[man_mountain_biking_light_skin_tone_minimally]=$'\U1F6B5\U1F3FB\U200D\U2642' +emoji[man_mountain_biking_medium_light_skin_tone]=$'\U1F6B5\U1F3FC\U200D\U2642\UFE0F' +emoji[man_mountain_biking_medium_light_skin_tone_minimally]=$'\U1F6B5\U1F3FC\U200D\U2642' +emoji[man_mountain_biking_medium_skin_tone]=$'\U1F6B5\U1F3FD\U200D\U2642\UFE0F' +emoji[man_mountain_biking_medium_skin_tone_minimally]=$'\U1F6B5\U1F3FD\U200D\U2642' +emoji[man_mountain_biking_medium_dark_skin_tone]=$'\U1F6B5\U1F3FE\U200D\U2642\UFE0F' +emoji[man_mountain_biking_medium_dark_skin_tone_minimally]=$'\U1F6B5\U1F3FE\U200D\U2642' +emoji[man_mountain_biking_dark_skin_tone]=$'\U1F6B5\U1F3FF\U200D\U2642\UFE0F' +emoji[man_mountain_biking_dark_skin_tone_minimally]=$'\U1F6B5\U1F3FF\U200D\U2642' +emoji[woman_mountain_biking]=$'\U1F6B5\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_minimally]=$'\U1F6B5\U200D\U2640' +emoji[mountain_biking_woman]=$'\U1F6B5\U200D\U2640' +emoji[woman_mountain_biking_light_skin_tone]=$'\U1F6B5\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_light_skin_tone_minimally]=$'\U1F6B5\U1F3FB\U200D\U2640' +emoji[woman_mountain_biking_medium_light_skin_tone]=$'\U1F6B5\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_medium_light_skin_tone_minimally]=$'\U1F6B5\U1F3FC\U200D\U2640' +emoji[woman_mountain_biking_medium_skin_tone]=$'\U1F6B5\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_medium_skin_tone_minimally]=$'\U1F6B5\U1F3FD\U200D\U2640' +emoji[woman_mountain_biking_medium_dark_skin_tone]=$'\U1F6B5\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_medium_dark_skin_tone_minimally]=$'\U1F6B5\U1F3FE\U200D\U2640' +emoji[woman_mountain_biking_dark_skin_tone]=$'\U1F6B5\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_dark_skin_tone_minimally]=$'\U1F6B5\U1F3FF\U200D\U2640' +emoji[person_cartwheeling]=$'\U1F938' +emoji[cartwheeling]=$'\U1F938' +emoji[person_cartwheeling_light_skin_tone]=$'\U1F938\U1F3FB' +emoji[person_cartwheeling_medium_light_skin_tone]=$'\U1F938\U1F3FC' +emoji[person_cartwheeling_medium_skin_tone]=$'\U1F938\U1F3FD' +emoji[person_cartwheeling_medium_dark_skin_tone]=$'\U1F938\U1F3FE' +emoji[person_cartwheeling_dark_skin_tone]=$'\U1F938\U1F3FF' +emoji[man_cartwheeling]=$'\U1F938\U200D\U2642\UFE0F' +emoji[man_cartwheeling_minimally]=$'\U1F938\U200D\U2642' +emoji[man_cartwheeling_light_skin_tone]=$'\U1F938\U1F3FB\U200D\U2642\UFE0F' +emoji[man_cartwheeling_light_skin_tone_minimally]=$'\U1F938\U1F3FB\U200D\U2642' +emoji[man_cartwheeling_medium_light_skin_tone]=$'\U1F938\U1F3FC\U200D\U2642\UFE0F' +emoji[man_cartwheeling_medium_light_skin_tone_minimally]=$'\U1F938\U1F3FC\U200D\U2642' +emoji[man_cartwheeling_medium_skin_tone]=$'\U1F938\U1F3FD\U200D\U2642\UFE0F' +emoji[man_cartwheeling_medium_skin_tone_minimally]=$'\U1F938\U1F3FD\U200D\U2642' +emoji[man_cartwheeling_medium_dark_skin_tone]=$'\U1F938\U1F3FE\U200D\U2642\UFE0F' +emoji[man_cartwheeling_medium_dark_skin_tone_minimally]=$'\U1F938\U1F3FE\U200D\U2642' +emoji[man_cartwheeling_dark_skin_tone]=$'\U1F938\U1F3FF\U200D\U2642\UFE0F' +emoji[man_cartwheeling_dark_skin_tone_minimally]=$'\U1F938\U1F3FF\U200D\U2642' +emoji[woman_cartwheeling]=$'\U1F938\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_minimally]=$'\U1F938\U200D\U2640' +emoji[woman_cartwheeling_light_skin_tone]=$'\U1F938\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_light_skin_tone_minimally]=$'\U1F938\U1F3FB\U200D\U2640' +emoji[woman_cartwheeling_medium_light_skin_tone]=$'\U1F938\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_medium_light_skin_tone_minimally]=$'\U1F938\U1F3FC\U200D\U2640' +emoji[woman_cartwheeling_medium_skin_tone]=$'\U1F938\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_medium_skin_tone_minimally]=$'\U1F938\U1F3FD\U200D\U2640' +emoji[woman_cartwheeling_medium_dark_skin_tone]=$'\U1F938\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_medium_dark_skin_tone_minimally]=$'\U1F938\U1F3FE\U200D\U2640' +emoji[woman_cartwheeling_dark_skin_tone]=$'\U1F938\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_dark_skin_tone_minimally]=$'\U1F938\U1F3FF\U200D\U2640' +emoji[people_wrestling]=$'\U1F93C' +emoji[wrestling]=$'\U1F93C' +emoji[men_wrestling]=$'\U1F93C\U200D\U2642\UFE0F' +emoji[men_wrestling_minimally]=$'\U1F93C\U200D\U2642' +emoji[women_wrestling]=$'\U1F93C\U200D\U2640\UFE0F' +emoji[women_wrestling_minimally]=$'\U1F93C\U200D\U2640' +emoji[person_playing_water_polo]=$'\U1F93D' +emoji[water_polo]=$'\U1F93D' +emoji[person_playing_water_polo_light_skin_tone]=$'\U1F93D\U1F3FB' +emoji[person_playing_water_polo_medium_light_skin_tone]=$'\U1F93D\U1F3FC' +emoji[person_playing_water_polo_medium_skin_tone]=$'\U1F93D\U1F3FD' +emoji[person_playing_water_polo_medium_dark_skin_tone]=$'\U1F93D\U1F3FE' +emoji[person_playing_water_polo_dark_skin_tone]=$'\U1F93D\U1F3FF' +emoji[man_playing_water_polo]=$'\U1F93D\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_minimally]=$'\U1F93D\U200D\U2642' +emoji[man_playing_water_polo_light_skin_tone]=$'\U1F93D\U1F3FB\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_light_skin_tone_minimally]=$'\U1F93D\U1F3FB\U200D\U2642' +emoji[man_playing_water_polo_medium_light_skin_tone]=$'\U1F93D\U1F3FC\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_medium_light_skin_tone_minimally]=$'\U1F93D\U1F3FC\U200D\U2642' +emoji[man_playing_water_polo_medium_skin_tone]=$'\U1F93D\U1F3FD\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_medium_skin_tone_minimally]=$'\U1F93D\U1F3FD\U200D\U2642' +emoji[man_playing_water_polo_medium_dark_skin_tone]=$'\U1F93D\U1F3FE\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_medium_dark_skin_tone_minimally]=$'\U1F93D\U1F3FE\U200D\U2642' +emoji[man_playing_water_polo_dark_skin_tone]=$'\U1F93D\U1F3FF\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_dark_skin_tone_minimally]=$'\U1F93D\U1F3FF\U200D\U2642' +emoji[woman_playing_water_polo]=$'\U1F93D\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_minimally]=$'\U1F93D\U200D\U2640' +emoji[woman_playing_water_polo_light_skin_tone]=$'\U1F93D\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_light_skin_tone_minimally]=$'\U1F93D\U1F3FB\U200D\U2640' +emoji[woman_playing_water_polo_medium_light_skin_tone]=$'\U1F93D\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_medium_light_skin_tone_minimally]=$'\U1F93D\U1F3FC\U200D\U2640' +emoji[woman_playing_water_polo_medium_skin_tone]=$'\U1F93D\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_medium_skin_tone_minimally]=$'\U1F93D\U1F3FD\U200D\U2640' +emoji[woman_playing_water_polo_medium_dark_skin_tone]=$'\U1F93D\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_medium_dark_skin_tone_minimally]=$'\U1F93D\U1F3FE\U200D\U2640' +emoji[woman_playing_water_polo_dark_skin_tone]=$'\U1F93D\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_dark_skin_tone_minimally]=$'\U1F93D\U1F3FF\U200D\U2640' +emoji[person_playing_handball]=$'\U1F93E' +emoji[handball_person]=$'\U1F93E' +emoji[person_playing_handball_light_skin_tone]=$'\U1F93E\U1F3FB' +emoji[person_playing_handball_medium_light_skin_tone]=$'\U1F93E\U1F3FC' +emoji[person_playing_handball_medium_skin_tone]=$'\U1F93E\U1F3FD' +emoji[person_playing_handball_medium_dark_skin_tone]=$'\U1F93E\U1F3FE' +emoji[person_playing_handball_dark_skin_tone]=$'\U1F93E\U1F3FF' +emoji[man_playing_handball]=$'\U1F93E\U200D\U2642\UFE0F' +emoji[man_playing_handball_minimally]=$'\U1F93E\U200D\U2642' +emoji[man_playing_handball_light_skin_tone]=$'\U1F93E\U1F3FB\U200D\U2642\UFE0F' +emoji[man_playing_handball_light_skin_tone_minimally]=$'\U1F93E\U1F3FB\U200D\U2642' +emoji[man_playing_handball_medium_light_skin_tone]=$'\U1F93E\U1F3FC\U200D\U2642\UFE0F' +emoji[man_playing_handball_medium_light_skin_tone_minimally]=$'\U1F93E\U1F3FC\U200D\U2642' +emoji[man_playing_handball_medium_skin_tone]=$'\U1F93E\U1F3FD\U200D\U2642\UFE0F' +emoji[man_playing_handball_medium_skin_tone_minimally]=$'\U1F93E\U1F3FD\U200D\U2642' +emoji[man_playing_handball_medium_dark_skin_tone]=$'\U1F93E\U1F3FE\U200D\U2642\UFE0F' +emoji[man_playing_handball_medium_dark_skin_tone_minimally]=$'\U1F93E\U1F3FE\U200D\U2642' +emoji[man_playing_handball_dark_skin_tone]=$'\U1F93E\U1F3FF\U200D\U2642\UFE0F' +emoji[man_playing_handball_dark_skin_tone_minimally]=$'\U1F93E\U1F3FF\U200D\U2642' +emoji[woman_playing_handball]=$'\U1F93E\U200D\U2640\UFE0F' +emoji[woman_playing_handball_minimally]=$'\U1F93E\U200D\U2640' +emoji[woman_playing_handball_light_skin_tone]=$'\U1F93E\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_playing_handball_light_skin_tone_minimally]=$'\U1F93E\U1F3FB\U200D\U2640' +emoji[woman_playing_handball_medium_light_skin_tone]=$'\U1F93E\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_playing_handball_medium_light_skin_tone_minimally]=$'\U1F93E\U1F3FC\U200D\U2640' +emoji[woman_playing_handball_medium_skin_tone]=$'\U1F93E\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_playing_handball_medium_skin_tone_minimally]=$'\U1F93E\U1F3FD\U200D\U2640' +emoji[woman_playing_handball_medium_dark_skin_tone]=$'\U1F93E\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_playing_handball_medium_dark_skin_tone_minimally]=$'\U1F93E\U1F3FE\U200D\U2640' +emoji[woman_playing_handball_dark_skin_tone]=$'\U1F93E\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_playing_handball_dark_skin_tone_minimally]=$'\U1F93E\U1F3FF\U200D\U2640' +emoji[person_juggling]=$'\U1F939' +emoji[juggling_person]=$'\U1F939' +emoji[person_juggling_light_skin_tone]=$'\U1F939\U1F3FB' +emoji[person_juggling_medium_light_skin_tone]=$'\U1F939\U1F3FC' +emoji[person_juggling_medium_skin_tone]=$'\U1F939\U1F3FD' +emoji[person_juggling_medium_dark_skin_tone]=$'\U1F939\U1F3FE' +emoji[person_juggling_dark_skin_tone]=$'\U1F939\U1F3FF' +emoji[man_juggling]=$'\U1F939\U200D\U2642\UFE0F' +emoji[man_juggling_minimally]=$'\U1F939\U200D\U2642' +emoji[man_juggling_light_skin_tone]=$'\U1F939\U1F3FB\U200D\U2642\UFE0F' +emoji[man_juggling_light_skin_tone_minimally]=$'\U1F939\U1F3FB\U200D\U2642' +emoji[man_juggling_medium_light_skin_tone]=$'\U1F939\U1F3FC\U200D\U2642\UFE0F' +emoji[man_juggling_medium_light_skin_tone_minimally]=$'\U1F939\U1F3FC\U200D\U2642' +emoji[man_juggling_medium_skin_tone]=$'\U1F939\U1F3FD\U200D\U2642\UFE0F' +emoji[man_juggling_medium_skin_tone_minimally]=$'\U1F939\U1F3FD\U200D\U2642' +emoji[man_juggling_medium_dark_skin_tone]=$'\U1F939\U1F3FE\U200D\U2642\UFE0F' +emoji[man_juggling_medium_dark_skin_tone_minimally]=$'\U1F939\U1F3FE\U200D\U2642' +emoji[man_juggling_dark_skin_tone]=$'\U1F939\U1F3FF\U200D\U2642\UFE0F' +emoji[man_juggling_dark_skin_tone_minimally]=$'\U1F939\U1F3FF\U200D\U2642' +emoji[woman_juggling]=$'\U1F939\U200D\U2640\UFE0F' +emoji[woman_juggling_minimally]=$'\U1F939\U200D\U2640' +emoji[woman_juggling_light_skin_tone]=$'\U1F939\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_juggling_light_skin_tone_minimally]=$'\U1F939\U1F3FB\U200D\U2640' +emoji[woman_juggling_medium_light_skin_tone]=$'\U1F939\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_juggling_medium_light_skin_tone_minimally]=$'\U1F939\U1F3FC\U200D\U2640' +emoji[woman_juggling_medium_skin_tone]=$'\U1F939\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_juggling_medium_skin_tone_minimally]=$'\U1F939\U1F3FD\U200D\U2640' +emoji[woman_juggling_medium_dark_skin_tone]=$'\U1F939\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_juggling_medium_dark_skin_tone_minimally]=$'\U1F939\U1F3FE\U200D\U2640' +emoji[woman_juggling_dark_skin_tone]=$'\U1F939\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_juggling_dark_skin_tone_minimally]=$'\U1F939\U1F3FF\U200D\U2640' +emoji[person_in_lotus_position]=$'\U1F9D8' +emoji[lotus_position]=$'\U1F9D8' +emoji[person_in_lotus_position_light_skin_tone]=$'\U1F9D8\U1F3FB' +emoji[person_in_lotus_position_medium_light_skin_tone]=$'\U1F9D8\U1F3FC' +emoji[person_in_lotus_position_medium_skin_tone]=$'\U1F9D8\U1F3FD' +emoji[person_in_lotus_position_medium_dark_skin_tone]=$'\U1F9D8\U1F3FE' +emoji[person_in_lotus_position_dark_skin_tone]=$'\U1F9D8\U1F3FF' +emoji[man_in_lotus_position]=$'\U1F9D8\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_minimally]=$'\U1F9D8\U200D\U2642' +emoji[lotus_position_man]=$'\U1F9D8\U200D\U2642' +emoji[man_in_lotus_position_light_skin_tone]=$'\U1F9D8\U1F3FB\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_light_skin_tone_minimally]=$'\U1F9D8\U1F3FB\U200D\U2642' +emoji[man_in_lotus_position_medium_light_skin_tone]=$'\U1F9D8\U1F3FC\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_medium_light_skin_tone_minimally]=$'\U1F9D8\U1F3FC\U200D\U2642' +emoji[man_in_lotus_position_medium_skin_tone]=$'\U1F9D8\U1F3FD\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_medium_skin_tone_minimally]=$'\U1F9D8\U1F3FD\U200D\U2642' +emoji[man_in_lotus_position_medium_dark_skin_tone]=$'\U1F9D8\U1F3FE\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_medium_dark_skin_tone_minimally]=$'\U1F9D8\U1F3FE\U200D\U2642' +emoji[man_in_lotus_position_dark_skin_tone]=$'\U1F9D8\U1F3FF\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_dark_skin_tone_minimally]=$'\U1F9D8\U1F3FF\U200D\U2642' +emoji[woman_in_lotus_position]=$'\U1F9D8\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_minimally]=$'\U1F9D8\U200D\U2640' +emoji[lotus_position_woman]=$'\U1F9D8\U200D\U2640' +emoji[woman_in_lotus_position_light_skin_tone]=$'\U1F9D8\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_light_skin_tone_minimally]=$'\U1F9D8\U1F3FB\U200D\U2640' +emoji[woman_in_lotus_position_medium_light_skin_tone]=$'\U1F9D8\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_medium_light_skin_tone_minimally]=$'\U1F9D8\U1F3FC\U200D\U2640' +emoji[woman_in_lotus_position_medium_skin_tone]=$'\U1F9D8\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_medium_skin_tone_minimally]=$'\U1F9D8\U1F3FD\U200D\U2640' +emoji[woman_in_lotus_position_medium_dark_skin_tone]=$'\U1F9D8\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_medium_dark_skin_tone_minimally]=$'\U1F9D8\U1F3FE\U200D\U2640' +emoji[woman_in_lotus_position_dark_skin_tone]=$'\U1F9D8\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_dark_skin_tone_minimally]=$'\U1F9D8\U1F3FF\U200D\U2640' +emoji[person_taking_bath]=$'\U1F6C0' +emoji[bath]=$'\U1F6C0' +emoji[person_taking_bath_light_skin_tone]=$'\U1F6C0\U1F3FB' +emoji[person_taking_bath_medium_light_skin_tone]=$'\U1F6C0\U1F3FC' +emoji[person_taking_bath_medium_skin_tone]=$'\U1F6C0\U1F3FD' +emoji[person_taking_bath_medium_dark_skin_tone]=$'\U1F6C0\U1F3FE' +emoji[person_taking_bath_dark_skin_tone]=$'\U1F6C0\U1F3FF' +emoji[person_in_bed]=$'\U1F6CC' +emoji[sleeping_bed]=$'\U1F6CC' +emoji[person_in_bed_light_skin_tone]=$'\U1F6CC\U1F3FB' +emoji[person_in_bed_medium_light_skin_tone]=$'\U1F6CC\U1F3FC' +emoji[person_in_bed_medium_skin_tone]=$'\U1F6CC\U1F3FD' +emoji[person_in_bed_medium_dark_skin_tone]=$'\U1F6CC\U1F3FE' +emoji[person_in_bed_dark_skin_tone]=$'\U1F6CC\U1F3FF' +emoji[people_holding_hands]=$'\U1F9D1\U200D\U1F91D\U200D\U1F9D1' +emoji[people_holding_hands_light_skin_tone]=$'\U1F9D1\U1F3FB\U200D\U1F91D\U200D\U1F9D1\U1F3FB' +emoji[people_holding_hands_medium_light_skin_tone_light_skin_tone]=$'\U1F9D1\U1F3FC\U200D\U1F91D\U200D\U1F9D1\U1F3FB' +emoji[people_holding_hands_medium_light_skin_tone_light_skin_tone_1]=$'\U1F9D1\U1F3FC\U200D\U1F91D\U200D\U1F9D1\U1F3FC' +emoji[people_holding_hands_medium_skin_tone_light_skin_tone]=$'\U1F9D1\U1F3FD\U200D\U1F91D\U200D\U1F9D1\U1F3FB' +emoji[people_holding_hands_medium_skin_tone_medium_light_skin_tone]=$'\U1F9D1\U1F3FD\U200D\U1F91D\U200D\U1F9D1\U1F3FC' +emoji[people_holding_hands_medium_skin_tone_medium_light_skin_tone_1]=$'\U1F9D1\U1F3FD\U200D\U1F91D\U200D\U1F9D1\U1F3FD' +emoji[people_holding_hands_medium_dark_skin_tone_light_skin_tone]=$'\U1F9D1\U1F3FE\U200D\U1F91D\U200D\U1F9D1\U1F3FB' +emoji[people_holding_hands_medium_dark_skin_tone_medium_light_skin_tone]=$'\U1F9D1\U1F3FE\U200D\U1F91D\U200D\U1F9D1\U1F3FC' +emoji[people_holding_hands_medium_dark_skin_tone_medium_skin_tone]=$'\U1F9D1\U1F3FE\U200D\U1F91D\U200D\U1F9D1\U1F3FD' +emoji[people_holding_hands_medium_dark_skin_tone_medium_skin_tone_1]=$'\U1F9D1\U1F3FE\U200D\U1F91D\U200D\U1F9D1\U1F3FE' +emoji[people_holding_hands_dark_skin_tone_light_skin_tone]=$'\U1F9D1\U1F3FF\U200D\U1F91D\U200D\U1F9D1\U1F3FB' +emoji[people_holding_hands_dark_skin_tone_medium_light_skin_tone]=$'\U1F9D1\U1F3FF\U200D\U1F91D\U200D\U1F9D1\U1F3FC' +emoji[people_holding_hands_dark_skin_tone_medium_skin_tone]=$'\U1F9D1\U1F3FF\U200D\U1F91D\U200D\U1F9D1\U1F3FD' +emoji[people_holding_hands_dark_skin_tone_medium_dark_skin_tone]=$'\U1F9D1\U1F3FF\U200D\U1F91D\U200D\U1F9D1\U1F3FE' +emoji[people_holding_hands_dark_skin_tone_medium_dark_skin_tone_1]=$'\U1F9D1\U1F3FF\U200D\U1F91D\U200D\U1F9D1\U1F3FF' +emoji[women_holding_hands]=$'\U1F46D' +emoji[two_women_holding_hands]=$'\U1F46D' +emoji[women_holding_hands_light_skin_tone]=$'\U1F46D\U1F3FB' +emoji[women_holding_hands_medium_light_skin_tone_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F91D\U200D\U1F469\U1F3FB' +emoji[women_holding_hands_medium_light_skin_tone_light_skin_tone_1]=$'\U1F46D\U1F3FC' +emoji[women_holding_hands_medium_skin_tone_light_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F469\U1F3FB' +emoji[women_holding_hands_medium_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F469\U1F3FC' +emoji[women_holding_hands_medium_skin_tone_medium_light_skin_tone_1]=$'\U1F46D\U1F3FD' +emoji[women_holding_hands_medium_dark_skin_tone_light_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F469\U1F3FB' +emoji[women_holding_hands_medium_dark_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F469\U1F3FC' +emoji[women_holding_hands_medium_dark_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F469\U1F3FD' +emoji[women_holding_hands_medium_dark_skin_tone_medium_skin_tone_1]=$'\U1F46D\U1F3FE' +emoji[women_holding_hands_dark_skin_tone_light_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F469\U1F3FB' +emoji[women_holding_hands_dark_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F469\U1F3FC' +emoji[women_holding_hands_dark_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F469\U1F3FD' +emoji[women_holding_hands_dark_skin_tone_medium_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F469\U1F3FE' +emoji[women_holding_hands_dark_skin_tone_medium_dark_skin_tone_1]=$'\U1F46D\U1F3FF' +emoji[woman_and_man_holding_hands]=$'\U1F46B' +emoji[couple]=$'\U1F46B' +emoji[woman_and_man_holding_hands_light_skin_tone]=$'\U1F46B\U1F3FB' +emoji[woman_and_man_holding_hands_light_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[woman_and_man_holding_hands_light_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[woman_and_man_holding_hands_light_skin_tone_medium_dark_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F91D\U200D\U1F468\U1F3FE' +emoji[woman_and_man_holding_hands_light_skin_tone_dark_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F91D\U200D\U1F468\U1F3FF' +emoji[woman_and_man_holding_hands_medium_light_skin_tone_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[woman_and_man_holding_hands_medium_light_skin_tone_light_skin_tone_1]=$'\U1F46B\U1F3FC' +emoji[woman_and_man_holding_hands_medium_light_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[woman_and_man_holding_hands_medium_light_skin_tone_medium_dark_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F91D\U200D\U1F468\U1F3FE' +emoji[woman_and_man_holding_hands_medium_light_skin_tone_dark_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F91D\U200D\U1F468\U1F3FF' +emoji[woman_and_man_holding_hands_medium_skin_tone_light_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[woman_and_man_holding_hands_medium_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[woman_and_man_holding_hands_medium_skin_tone_medium_light_skin_tone_1]=$'\U1F46B\U1F3FD' +emoji[woman_and_man_holding_hands_medium_skin_tone_medium_dark_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FE' +emoji[woman_and_man_holding_hands_medium_skin_tone_dark_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FF' +emoji[woman_and_man_holding_hands_medium_dark_skin_tone_light_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[woman_and_man_holding_hands_medium_dark_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[woman_and_man_holding_hands_medium_dark_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[woman_and_man_holding_hands_medium_dark_skin_tone_medium_skin_tone_1]=$'\U1F46B\U1F3FE' +emoji[woman_and_man_holding_hands_medium_dark_skin_tone_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FF' +emoji[woman_and_man_holding_hands_dark_skin_tone_light_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[woman_and_man_holding_hands_dark_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[woman_and_man_holding_hands_dark_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[woman_and_man_holding_hands_dark_skin_tone_medium_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FE' +emoji[woman_and_man_holding_hands_dark_skin_tone_medium_dark_skin_tone_1]=$'\U1F46B\U1F3FF' +emoji[men_holding_hands]=$'\U1F46C' +emoji[two_men_holding_hands]=$'\U1F46C' +emoji[men_holding_hands_light_skin_tone]=$'\U1F46C\U1F3FB' +emoji[men_holding_hands_medium_light_skin_tone_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[men_holding_hands_medium_light_skin_tone_light_skin_tone_1]=$'\U1F46C\U1F3FC' +emoji[men_holding_hands_medium_skin_tone_light_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[men_holding_hands_medium_skin_tone_medium_light_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[men_holding_hands_medium_skin_tone_medium_light_skin_tone_1]=$'\U1F46C\U1F3FD' +emoji[men_holding_hands_medium_dark_skin_tone_light_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[men_holding_hands_medium_dark_skin_tone_medium_light_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[men_holding_hands_medium_dark_skin_tone_medium_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[men_holding_hands_medium_dark_skin_tone_medium_skin_tone_1]=$'\U1F46C\U1F3FE' +emoji[men_holding_hands_dark_skin_tone_light_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[men_holding_hands_dark_skin_tone_medium_light_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[men_holding_hands_dark_skin_tone_medium_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[men_holding_hands_dark_skin_tone_medium_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FE' +emoji[men_holding_hands_dark_skin_tone_medium_dark_skin_tone_1]=$'\U1F46C\U1F3FF' +emoji[kiss]=$'\U1F48F' +emoji[couplekiss]=$'\U1F48F' +emoji[kiss_woman_man]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F468' +emoji[couplekiss_man_woman]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F468' +emoji[kiss_woman_man_minimally]=$'\U1F469\U200D\U2764\U200D\U1F48B\U200D\U1F468' +emoji[kiss_man_man]=$'\U1F468\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F468' +emoji[couplekiss_man_man]=$'\U1F468\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F468' +emoji[kiss_man_man_minimally]=$'\U1F468\U200D\U2764\U200D\U1F48B\U200D\U1F468' +emoji[kiss_woman_woman]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F469' +emoji[couplekiss_woman_woman]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F469' +emoji[kiss_woman_woman_minimally]=$'\U1F469\U200D\U2764\U200D\U1F48B\U200D\U1F469' +emoji[couple_with_heart]=$'\U1F491' +emoji[couple_with_heart_woman_man]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F468' +emoji[couple_with_heart_woman_man_minimally]=$'\U1F469\U200D\U2764\U200D\U1F468' +emoji[couple_with_heart_man_man]=$'\U1F468\U200D\U2764\UFE0F\U200D\U1F468' +emoji[couple_with_heart_man_man_minimally]=$'\U1F468\U200D\U2764\U200D\U1F468' +emoji[couple_with_heart_woman_woman]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F469' +emoji[couple_with_heart_woman_woman_minimally]=$'\U1F469\U200D\U2764\U200D\U1F469' +emoji[family]=$'\U1F46A' +emoji[family_man_woman_boy]=$'\U1F468\U200D\U1F469\U200D\U1F466' +emoji[family_man_woman_girl]=$'\U1F468\U200D\U1F469\U200D\U1F467' +emoji[family_man_woman_girl_boy]=$'\U1F468\U200D\U1F469\U200D\U1F467\U200D\U1F466' +emoji[family_man_woman_boy_boy]=$'\U1F468\U200D\U1F469\U200D\U1F466\U200D\U1F466' +emoji[family_man_woman_girl_girl]=$'\U1F468\U200D\U1F469\U200D\U1F467\U200D\U1F467' +emoji[family_man_man_boy]=$'\U1F468\U200D\U1F468\U200D\U1F466' +emoji[family_man_man_girl]=$'\U1F468\U200D\U1F468\U200D\U1F467' +emoji[family_man_man_girl_boy]=$'\U1F468\U200D\U1F468\U200D\U1F467\U200D\U1F466' +emoji[family_man_man_boy_boy]=$'\U1F468\U200D\U1F468\U200D\U1F466\U200D\U1F466' +emoji[family_man_man_girl_girl]=$'\U1F468\U200D\U1F468\U200D\U1F467\U200D\U1F467' +emoji[family_woman_woman_boy]=$'\U1F469\U200D\U1F469\U200D\U1F466' +emoji[family_woman_woman_girl]=$'\U1F469\U200D\U1F469\U200D\U1F467' +emoji[family_woman_woman_girl_boy]=$'\U1F469\U200D\U1F469\U200D\U1F467\U200D\U1F466' +emoji[family_woman_woman_boy_boy]=$'\U1F469\U200D\U1F469\U200D\U1F466\U200D\U1F466' +emoji[family_woman_woman_girl_girl]=$'\U1F469\U200D\U1F469\U200D\U1F467\U200D\U1F467' +emoji[family_man_boy]=$'\U1F468\U200D\U1F466' +emoji[family_man_boy_boy]=$'\U1F468\U200D\U1F466\U200D\U1F466' +emoji[family_man_girl]=$'\U1F468\U200D\U1F467' +emoji[family_man_girl_boy]=$'\U1F468\U200D\U1F467\U200D\U1F466' +emoji[family_man_girl_girl]=$'\U1F468\U200D\U1F467\U200D\U1F467' +emoji[family_woman_boy]=$'\U1F469\U200D\U1F466' +emoji[family_woman_boy_boy]=$'\U1F469\U200D\U1F466\U200D\U1F466' +emoji[family_woman_girl]=$'\U1F469\U200D\U1F467' +emoji[family_woman_girl_boy]=$'\U1F469\U200D\U1F467\U200D\U1F466' +emoji[family_woman_girl_girl]=$'\U1F469\U200D\U1F467\U200D\U1F467' +emoji[speaking_head]=$'\U1F5E3\UFE0F' +emoji[speaking_head_unqualified]=$'\U1F5E3' +emoji[bust_in_silhouette]=$'\U1F464' +emoji[busts_in_silhouette]=$'\U1F465' +emoji[footprints]=$'\U1F463' +emoji_mod[light_skin_tone]=$'\U1F3FB' +emoji_mod[medium_light_skin_tone]=$'\U1F3FC' +emoji_mod[medium_skin_tone]=$'\U1F3FD' +emoji_mod[medium_dark_skin_tone]=$'\U1F3FE' +emoji_mod[medium_dark_skin_tone_1]=$'\U1F3FF' +emoji_mod[red_hair]=$'\U1F9B0' +emoji_mod[curly_hair]=$'\U1F9B1' +emoji_mod[white_hair]=$'\U1F9B3' +emoji_mod[bald]=$'\U1F9B2' +emoji[monkey_face]=$'\U1F435' +emoji[monkey_face_1]=$'\U1F412' +emoji[monkey]=$'\U1F412' +emoji[gorilla]=$'\U1F98D' +emoji[orangutan]=$'\U1F9A7' +emoji[dog_face]=$'\U1F436' +emoji[dog]=$'\U1F436' +emoji[dog_face_1]=$'\U1F415' +emoji[dog2]=$'\U1F415' +emoji[guide_dog]=$'\U1F9AE' +emoji[service_dog]=$'\U1F415\U200D\U1F9BA' +emoji[poodle]=$'\U1F429' +emoji[wolf]=$'\U1F43A' +emoji[fox]=$'\U1F98A' +emoji[fox_face]=$'\U1F98A' +emoji[raccoon]=$'\U1F99D' +emoji[cat_face]=$'\U1F431' +emoji[cat]=$'\U1F431' +emoji[cat_face_1]=$'\U1F408' +emoji[cat2]=$'\U1F408' +emoji[lion]=$'\U1F981' +emoji[tiger_face]=$'\U1F42F' +emoji[tiger]=$'\U1F42F' +emoji[tiger_face_1]=$'\U1F405' +emoji[tiger2]=$'\U1F405' +emoji[leopard]=$'\U1F406' +emoji[horse_face]=$'\U1F434' +emoji[horse]=$'\U1F434' +emoji[horse_face_1]=$'\U1F40E' +emoji[racehorse]=$'\U1F40E' +emoji[unicorn]=$'\U1F984' +emoji[zebra]=$'\U1F993' +emoji[deer]=$'\U1F98C' +emoji[cow_face]=$'\U1F42E' +emoji[ox]=$'\U1F402' +emoji[water_buffalo]=$'\U1F403' +emoji[cow]=$'\U1F404' +emoji[cow2]=$'\U1F404' +emoji[pig_face]=$'\U1F437' +emoji[pig]=$'\U1F437' +emoji[pig_face_1]=$'\U1F416' +emoji[pig2]=$'\U1F416' +emoji[boar]=$'\U1F417' +emoji[pig_nose]=$'\U1F43D' +emoji[ram]=$'\U1F40F' +emoji[ewe]=$'\U1F411' +emoji[sheep]=$'\U1F411' +emoji[goat]=$'\U1F410' +emoji[camel]=$'\U1F42A' +emoji[dromedary_camel]=$'\U1F42A' +emoji[two_hump_camel]=$'\U1F42B' +emoji[llama]=$'\U1F999' +emoji[giraffe]=$'\U1F992' +emoji[elephant]=$'\U1F418' +emoji[rhinoceros]=$'\U1F98F' +emoji[hippopotamus]=$'\U1F99B' +emoji[mouse_face]=$'\U1F42D' +emoji[mouse]=$'\U1F42D' +emoji[mouse_face_1]=$'\U1F401' +emoji[mouse2]=$'\U1F401' +emoji[rat]=$'\U1F400' +emoji[hamster]=$'\U1F439' +emoji[rabbit_face]=$'\U1F430' +emoji[rabbit]=$'\U1F430' +emoji[rabbit_face_1]=$'\U1F407' +emoji[rabbit2]=$'\U1F407' +emoji[chipmunk]=$'\U1F43F\UFE0F' +emoji[chipmunk_unqualified]=$'\U1F43F' +emoji[hedgehog]=$'\U1F994' +emoji[bat]=$'\U1F987' +emoji[bear]=$'\U1F43B' +emoji[koala]=$'\U1F428' +emoji[panda]=$'\U1F43C' +emoji[panda_face]=$'\U1F43C' +emoji[sloth]=$'\U1F9A5' +emoji[otter]=$'\U1F9A6' +emoji[skunk]=$'\U1F9A8' +emoji[kangaroo]=$'\U1F998' +emoji[badger]=$'\U1F9A1' +emoji[paw_prints]=$'\U1F43E' +emoji[feet]=$'\U1F43E' +emoji[turkey]=$'\U1F983' +emoji[chicken]=$'\U1F414' +emoji[rooster]=$'\U1F413' +emoji[hatching_chick]=$'\U1F423' +emoji[baby_chick]=$'\U1F424' +emoji[front_facing_baby_chick]=$'\U1F425' +emoji[hatched_chick]=$'\U1F425' +emoji[bird]=$'\U1F426' +emoji[penguin]=$'\U1F427' +emoji[dove]=$'\U1F54A\UFE0F' +emoji[dove_unqualified]=$'\U1F54A' +emoji[eagle]=$'\U1F985' +emoji[duck]=$'\U1F986' +emoji[swan]=$'\U1F9A2' +emoji[owl]=$'\U1F989' +emoji[flamingo]=$'\U1F9A9' +emoji[peacock]=$'\U1F99A' +emoji[parrot]=$'\U1F99C' +emoji[frog]=$'\U1F438' +emoji[crocodile]=$'\U1F40A' +emoji[turtle]=$'\U1F422' +emoji[lizard]=$'\U1F98E' +emoji[snake]=$'\U1F40D' +emoji[dragon_face]=$'\U1F432' +emoji[dragon_face_1]=$'\U1F409' +emoji[dragon]=$'\U1F409' +emoji[sauropod]=$'\U1F995' +emoji[T_Rex]=$'\U1F996' +emoji[t-rex]=$'\U1F996' +emoji[spouting_whale]=$'\U1F433' +emoji[whale]=$'\U1F433' +emoji[spouting_whale_1]=$'\U1F40B' +emoji[whale2]=$'\U1F40B' +emoji[dolphin]=$'\U1F42C' +emoji[flipper]=$'\U1F42C' +emoji[fish]=$'\U1F41F' +emoji[tropical_fish]=$'\U1F420' +emoji[blowfish]=$'\U1F421' +emoji[shark]=$'\U1F988' +emoji[octopus]=$'\U1F419' +emoji[spiral_shell]=$'\U1F41A' +emoji[shell]=$'\U1F41A' +emoji[snail]=$'\U1F40C' +emoji[butterfly]=$'\U1F98B' +emoji[bug]=$'\U1F41B' +emoji[ant]=$'\U1F41C' +emoji[honeybee]=$'\U1F41D' +emoji[bee]=$'\U1F41D' +emoji[lady_beetle]=$'\U1F41E' +emoji[beetle]=$'\U1F41E' +emoji[cricket]=$'\U1F997' +emoji[spider]=$'\U1F577\UFE0F' +emoji[spider_unqualified]=$'\U1F577' +emoji[spider_web]=$'\U1F578\UFE0F' +emoji[spider_web_unqualified]=$'\U1F578' +emoji[scorpion]=$'\U1F982' +emoji[mosquito]=$'\U1F99F' +emoji[microbe]=$'\U1F9A0' +emoji[bouquet]=$'\U1F490' emoji[cherry_blossom]=$'\U1F338' +emoji[white_flower]=$'\U1F4AE' +emoji[rosette]=$'\U1F3F5\UFE0F' +emoji[rosette_unqualified]=$'\U1F3F5' +emoji[rosette_unqualified_1]=$'\U1F339' emoji[rose]=$'\U1F339' +emoji[wilted_flower]=$'\U1F940' emoji[hibiscus]=$'\U1F33A' emoji[sunflower]=$'\U1F33B' emoji[blossom]=$'\U1F33C' -emoji[ear_of_maize]=$'\U1F33D' +emoji[tulip]=$'\U1F337' +emoji[seedling]=$'\U1F331' +emoji[evergreen_tree]=$'\U1F332' +emoji[deciduous_tree]=$'\U1F333' +emoji[palm_tree]=$'\U1F334' +emoji[cactus]=$'\U1F335' +emoji[sheaf_of_rice]=$'\U1F33E' emoji[ear_of_rice]=$'\U1F33E' emoji[herb]=$'\U1F33F' +emoji[shamrock]=$'\U2618\UFE0F' +emoji[shamrock_unqualified]=$'\U2618' emoji[four_leaf_clover]=$'\U1F340' emoji[maple_leaf]=$'\U1F341' emoji[fallen_leaf]=$'\U1F342' emoji[leaf_fluttering_in_wind]=$'\U1F343' -emoji[mushroom]=$'\U1F344' -emoji[tomato]=$'\U1F345' -emoji[aubergine]=$'\U1F346' +emoji[leaves]=$'\U1F343' emoji[grapes]=$'\U1F347' emoji[melon]=$'\U1F348' emoji[watermelon]=$'\U1F349' emoji[tangerine]=$'\U1F34A' +emoji[orange]=$'\U1F34A' +emoji[mandarin]=$'\U1F34A' emoji[lemon]=$'\U1F34B' emoji[banana]=$'\U1F34C' emoji[pineapple]=$'\U1F34D' +emoji[mango]=$'\U1F96D' emoji[red_apple]=$'\U1F34E' +emoji[apple]=$'\U1F34E' emoji[green_apple]=$'\U1F34F' emoji[pear]=$'\U1F350' emoji[peach]=$'\U1F351' emoji[cherries]=$'\U1F352' emoji[strawberry]=$'\U1F353' -emoji[hamburger]=$'\U1F354' -emoji[slice_of_pizza]=$'\U1F355' +emoji[kiwi_fruit]=$'\U1F95D' +emoji[tomato]=$'\U1F345' +emoji[coconut]=$'\U1F965' +emoji[avocado]=$'\U1F951' +emoji[eggplant]=$'\U1F346' +emoji[potato]=$'\U1F954' +emoji[carrot]=$'\U1F955' +emoji[ear_of_corn]=$'\U1F33D' +emoji[corn]=$'\U1F33D' +emoji[hot_pepper]=$'\U1F336\UFE0F' +emoji[hot_pepper_unqualified]=$'\U1F336' +emoji[cucumber]=$'\U1F952' +emoji[leafy_green]=$'\U1F96C' +emoji[broccoli]=$'\U1F966' +emoji[garlic]=$'\U1F9C4' +emoji[onion]=$'\U1F9C5' +emoji[mushroom]=$'\U1F344' +emoji[peanuts]=$'\U1F95C' +emoji[chestnut]=$'\U1F330' +emoji[bread]=$'\U1F35E' +emoji[croissant]=$'\U1F950' +emoji[baguette_bread]=$'\U1F956' +emoji[pretzel]=$'\U1F968' +emoji[bagel]=$'\U1F96F' +emoji[pancakes]=$'\U1F95E' +emoji[waffle]=$'\U1F9C7' +emoji[cheese_wedge]=$'\U1F9C0' +emoji[cheese]=$'\U1F9C0' emoji[meat_on_bone]=$'\U1F356' emoji[poultry_leg]=$'\U1F357' +emoji[cut_of_meat]=$'\U1F969' +emoji[bacon]=$'\U1F953' +emoji[hamburger]=$'\U1F354' +emoji[french_fries]=$'\U1F35F' +emoji[fries]=$'\U1F35F' +emoji[pizza]=$'\U1F355' +emoji[hot_dog]=$'\U1F32D' +emoji[hotdog]=$'\U1F32D' +emoji[sandwich]=$'\U1F96A' +emoji[taco]=$'\U1F32E' +emoji[burrito]=$'\U1F32F' +emoji[stuffed_flatbread]=$'\U1F959' +emoji[falafel]=$'\U1F9C6' +emoji[egg]=$'\U1F95A' +emoji[cooking]=$'\U1F373' +emoji[fried_egg]=$'\U1F373' +emoji[shallow_pan_of_food]=$'\U1F958' +emoji[pot_of_food]=$'\U1F372' +emoji[stew]=$'\U1F372' +emoji[bowl_with_spoon]=$'\U1F963' +emoji[green_salad]=$'\U1F957' +emoji[popcorn]=$'\U1F37F' +emoji[butter]=$'\U1F9C8' +emoji[salt]=$'\U1F9C2' +emoji[canned_food]=$'\U1F96B' +emoji[bento_box]=$'\U1F371' +emoji[bento]=$'\U1F371' emoji[rice_cracker]=$'\U1F358' emoji[rice_ball]=$'\U1F359' emoji[cooked_rice]=$'\U1F35A' -emoji[curry_and_rice]=$'\U1F35B' +emoji[rice]=$'\U1F35A' +emoji[curry_rice]=$'\U1F35B' +emoji[curry]=$'\U1F35B' emoji[steaming_bowl]=$'\U1F35C' +emoji[ramen]=$'\U1F35C' emoji[spaghetti]=$'\U1F35D' -emoji[bread]=$'\U1F35E' -emoji[french_fries]=$'\U1F35F' emoji[roasted_sweet_potato]=$'\U1F360' -emoji[dango]=$'\U1F361' +emoji[sweet_potato]=$'\U1F360' emoji[oden]=$'\U1F362' emoji[sushi]=$'\U1F363' emoji[fried_shrimp]=$'\U1F364' -emoji[fish_cake_with_swirl_design]=$'\U1F365' +emoji[fish_cake_with_swirl]=$'\U1F365' +emoji[fish_cake]=$'\U1F365' +emoji[moon_cake]=$'\U1F96E' +emoji[dango]=$'\U1F361' +emoji[dumpling]=$'\U1F95F' +emoji[fortune_cookie]=$'\U1F960' +emoji[takeout_box]=$'\U1F961' +emoji[crab]=$'\U1F980' +emoji[lobster]=$'\U1F99E' +emoji[shrimp]=$'\U1F990' +emoji[squid]=$'\U1F991' +emoji[oyster]=$'\U1F9AA' emoji[soft_ice_cream]=$'\U1F366' +emoji[icecream]=$'\U1F366' emoji[shaved_ice]=$'\U1F367' emoji[ice_cream]=$'\U1F368' emoji[doughnut]=$'\U1F369' emoji[cookie]=$'\U1F36A' +emoji[birthday_cake]=$'\U1F382' +emoji[birthday]=$'\U1F382' +emoji[shortcake]=$'\U1F370' +emoji[cake]=$'\U1F370' +emoji[cupcake]=$'\U1F9C1' +emoji[pie]=$'\U1F967' emoji[chocolate_bar]=$'\U1F36B' emoji[candy]=$'\U1F36C' emoji[lollipop]=$'\U1F36D' emoji[custard]=$'\U1F36E' emoji[honey_pot]=$'\U1F36F' -emoji[shortcake]=$'\U1F370' -emoji[bento_box]=$'\U1F371' -emoji[pot_of_food]=$'\U1F372' -emoji[cooking]=$'\U1F373' -emoji[fork_and_knife]=$'\U1F374' +emoji[baby_bottle]=$'\U1F37C' +emoji[glass_of_milk]=$'\U1F95B' +emoji[milk_glass]=$'\U1F95B' +emoji[hot_beverage]=$'\U2615' +emoji[coffee]=$'\U2615' emoji[teacup_without_handle]=$'\U1F375' -emoji[sake_bottle_and_cup]=$'\U1F376' +emoji[tea]=$'\U1F375' +emoji[sake]=$'\U1F376' +emoji[bottle_with_popping_cork]=$'\U1F37E' +emoji[champagne]=$'\U1F37E' emoji[wine_glass]=$'\U1F377' emoji[cocktail_glass]=$'\U1F378' +emoji[cocktail]=$'\U1F378' emoji[tropical_drink]=$'\U1F379' emoji[beer_mug]=$'\U1F37A' +emoji[beer]=$'\U1F37A' emoji[clinking_beer_mugs]=$'\U1F37B' -emoji[baby_bottle]=$'\U1F37C' -emoji[fork_and_knife_with_plate]=$'\U1F37D' -emoji[bottle_with_popping_cork]=$'\U1F37E' -emoji[popcorn]=$'\U1F37F' -emoji[ribbon]=$'\U1F380' -emoji[wrapped_present]=$'\U1F381' -emoji[birthday_cake]=$'\U1F382' +emoji[beers]=$'\U1F37B' +emoji[clinking_glasses]=$'\U1F942' +emoji[tumbler_glass]=$'\U1F943' +emoji[cup_with_straw]=$'\U1F964' +emoji[beverage_box]=$'\U1F9C3' +emoji[mate]=$'\U1F9C9' +emoji[ice_cube]=$'\U1F9CA' +emoji[chopsticks]=$'\U1F962' +emoji[fork_and_knife_with_plate]=$'\U1F37D\UFE0F' +emoji[fork_and_knife_with_plate_unqualified]=$'\U1F37D' +emoji[plate_with_cutlery]=$'\U1F37D' +emoji[fork_and_knife_with_plate_unqualified_1]=$'\U1F374' +emoji[fork_and_knife]=$'\U1F374' +emoji[spoon]=$'\U1F944' +emoji[kitchen_knife]=$'\U1F52A' +emoji[hocho]=$'\U1F52A' +emoji[knife]=$'\U1F52A' +emoji[amphora]=$'\U1F3FA' +emoji[globe_showing_Europe_Africa]=$'\U1F30D' +emoji[earth_africa]=$'\U1F30D' +emoji[globe_showing_Americas]=$'\U1F30E' +emoji[earth_americas]=$'\U1F30E' +emoji[globe_showing_Asia_Australia]=$'\U1F30F' +emoji[earth_asia]=$'\U1F30F' +emoji[globe_with_meridians]=$'\U1F310' +emoji[world_map]=$'\U1F5FA\UFE0F' +emoji[world_map_unqualified]=$'\U1F5FA' +emoji[map_of_Japan]=$'\U1F5FE' +emoji[japan]=$'\U1F5FE' +emoji[compass]=$'\U1F9ED' +emoji[snow_capped_mountain]=$'\U1F3D4\UFE0F' +emoji[snow_capped_mountain_unqualified]=$'\U1F3D4' +emoji[mountain_snow]=$'\U1F3D4' +emoji[snow_capped_mountain_unqualified_1]=$'\U26F0\UFE0F' +emoji[snow_capped_mountain_unqualified_2]=$'\U26F0' +emoji[mountain]=$'\U26F0' +emoji[volcano]=$'\U1F30B' +emoji[mount_fuji]=$'\U1F5FB' +emoji[camping]=$'\U1F3D5\UFE0F' +emoji[camping_unqualified]=$'\U1F3D5' +emoji[beach_with_umbrella]=$'\U1F3D6\UFE0F' +emoji[beach_with_umbrella_unqualified]=$'\U1F3D6' +emoji[beach_umbrella]=$'\U1F3D6' +emoji[desert]=$'\U1F3DC\UFE0F' +emoji[desert_unqualified]=$'\U1F3DC' +emoji[desert_island]=$'\U1F3DD\UFE0F' +emoji[desert_island_unqualified]=$'\U1F3DD' +emoji[national_park]=$'\U1F3DE\UFE0F' +emoji[national_park_unqualified]=$'\U1F3DE' +emoji[stadium]=$'\U1F3DF\UFE0F' +emoji[stadium_unqualified]=$'\U1F3DF' +emoji[classical_building]=$'\U1F3DB\UFE0F' +emoji[classical_building_unqualified]=$'\U1F3DB' +emoji[building_construction]=$'\U1F3D7\UFE0F' +emoji[building_construction_unqualified]=$'\U1F3D7' +emoji[brick]=$'\U1F9F1' +emoji[bricks]=$'\U1F9F1' +emoji[houses]=$'\U1F3D8\UFE0F' +emoji[houses_unqualified]=$'\U1F3D8' +emoji[derelict_house]=$'\U1F3DA\UFE0F' +emoji[derelict_house_unqualified]=$'\U1F3DA' +emoji[derelict_house_unqualified_1]=$'\U1F3E0' +emoji[house]=$'\U1F3E0' +emoji[house_with_garden]=$'\U1F3E1' +emoji[office_building]=$'\U1F3E2' +emoji[office]=$'\U1F3E2' +emoji[Japanese_post_office]=$'\U1F3E3' +emoji[post_office]=$'\U1F3E3' +emoji[Japanese_post_office_1]=$'\U1F3E4' +emoji[european_post_office]=$'\U1F3E4' +emoji[hospital]=$'\U1F3E5' +emoji[bank]=$'\U1F3E6' +emoji[hotel]=$'\U1F3E8' +emoji[love_hotel]=$'\U1F3E9' +emoji[convenience_store]=$'\U1F3EA' +emoji[school]=$'\U1F3EB' +emoji[department_store]=$'\U1F3EC' +emoji[factory]=$'\U1F3ED' +emoji[Japanese_castle]=$'\U1F3EF' +emoji[japanese_castle]=$'\U1F3EF' +emoji[Japanese_castle_1]=$'\U1F3F0' +emoji[european_castle]=$'\U1F3F0' +emoji[wedding]=$'\U1F492' +emoji[Tokyo_tower]=$'\U1F5FC' +emoji[tokyo_tower]=$'\U1F5FC' +emoji[Statue_of_Liberty]=$'\U1F5FD' +emoji[statue_of_liberty]=$'\U1F5FD' +emoji[church]=$'\U26EA' +emoji[mosque]=$'\U1F54C' +emoji[hindu_temple]=$'\U1F6D5' +emoji[synagogue]=$'\U1F54D' +emoji[shinto_shrine]=$'\U26E9\UFE0F' +emoji[shinto_shrine_unqualified]=$'\U26E9' +emoji[kaaba]=$'\U1F54B' +emoji[fountain]=$'\U26F2' +emoji[tent]=$'\U26FA' +emoji[foggy]=$'\U1F301' +emoji[night_with_stars]=$'\U1F303' +emoji[cityscape]=$'\U1F3D9\UFE0F' +emoji[cityscape_unqualified]=$'\U1F3D9' +emoji[sunrise_over_mountains]=$'\U1F304' +emoji[sunrise_over_mountains_1]=$'\U1F305' +emoji[sunrise]=$'\U1F305' +emoji[cityscape_at_dusk]=$'\U1F306' +emoji[city_sunset]=$'\U1F306' +emoji[sunset]=$'\U1F307' +emoji[city_sunrise]=$'\U1F307' +emoji[bridge_at_night]=$'\U1F309' +emoji[hot_springs]=$'\U2668\UFE0F' +emoji[hotsprings]=$'\U2668\UFE0F' +emoji[hot_springs_unqualified]=$'\U2668' +emoji[carousel_horse]=$'\U1F3A0' +emoji[ferris_wheel]=$'\U1F3A1' +emoji[roller_coaster]=$'\U1F3A2' +emoji[barber_pole]=$'\U1F488' +emoji[barber]=$'\U1F488' +emoji[circus_tent]=$'\U1F3AA' +emoji[locomotive]=$'\U1F682' +emoji[steam_locomotive]=$'\U1F682' +emoji[railway_car]=$'\U1F683' +emoji[high_speed_train]=$'\U1F684' +emoji[bullettrain_side]=$'\U1F684' +emoji[bullet_train]=$'\U1F685' +emoji[bullettrain_front]=$'\U1F685' +emoji[bullet_train_1]=$'\U1F686' +emoji[train2]=$'\U1F686' +emoji[metro]=$'\U1F687' +emoji[light_rail]=$'\U1F688' +emoji[station]=$'\U1F689' +emoji[tram]=$'\U1F68A' +emoji[monorail]=$'\U1F69D' +emoji[mountain_railway]=$'\U1F69E' +emoji[tram_car]=$'\U1F68B' +emoji[train]=$'\U1F68B' +emoji[bus]=$'\U1F68C' +emoji[oncoming_bus]=$'\U1F68D' +emoji[trolleybus]=$'\U1F68E' +emoji[minibus]=$'\U1F690' +emoji[ambulance]=$'\U1F691' +emoji[fire_engine]=$'\U1F692' +emoji[police_car]=$'\U1F693' +emoji[oncoming_police_car]=$'\U1F694' +emoji[taxi]=$'\U1F695' +emoji[oncoming_taxi]=$'\U1F696' +emoji[automobile]=$'\U1F697' +emoji[car]=$'\U1F697' +emoji[red_car]=$'\U1F697' +emoji[oncoming_automobile]=$'\U1F698' +emoji[sport_utility_vehicle]=$'\U1F699' +emoji[blue_car]=$'\U1F699' +emoji[delivery_truck]=$'\U1F69A' +emoji[truck]=$'\U1F69A' +emoji[articulated_lorry]=$'\U1F69B' +emoji[tractor]=$'\U1F69C' +emoji[racing_car]=$'\U1F3CE\UFE0F' +emoji[racing_car_unqualified]=$'\U1F3CE' +emoji[motorcycle]=$'\U1F3CD\UFE0F' +emoji[motorcycle_unqualified]=$'\U1F3CD' +emoji[motor_scooter]=$'\U1F6F5' +emoji[manual_wheelchair]=$'\U1F9BD' +emoji[motorized_wheelchair]=$'\U1F9BC' +emoji[auto_rickshaw]=$'\U1F6FA' +emoji[bicycle]=$'\U1F6B2' +emoji[bike]=$'\U1F6B2' +emoji[kick_scooter]=$'\U1F6F4' +emoji[skateboard]=$'\U1F6F9' +emoji[bus_stop]=$'\U1F68F' +emoji[busstop]=$'\U1F68F' +emoji[motorway]=$'\U1F6E3\UFE0F' +emoji[motorway_unqualified]=$'\U1F6E3' +emoji[railway_track]=$'\U1F6E4\UFE0F' +emoji[railway_track_unqualified]=$'\U1F6E4' +emoji[oil_drum]=$'\U1F6E2\UFE0F' +emoji[oil_drum_unqualified]=$'\U1F6E2' +emoji[fuel_pump]=$'\U26FD' +emoji[fuelpump]=$'\U26FD' +emoji[police_car_light]=$'\U1F6A8' +emoji[rotating_light]=$'\U1F6A8' +emoji[horizontal_traffic_light]=$'\U1F6A5' +emoji[traffic_light]=$'\U1F6A5' +emoji[vertical_traffic_light]=$'\U1F6A6' +emoji[stop_sign]=$'\U1F6D1' +emoji[construction]=$'\U1F6A7' +emoji[anchor]=$'\U2693' +emoji[sailboat]=$'\U26F5' +emoji[boat]=$'\U26F5' +emoji[canoe]=$'\U1F6F6' +emoji[speedboat]=$'\U1F6A4' +emoji[passenger_ship]=$'\U1F6F3\UFE0F' +emoji[passenger_ship_unqualified]=$'\U1F6F3' +emoji[ferry]=$'\U26F4\UFE0F' +emoji[ferry_unqualified]=$'\U26F4' +emoji[motor_boat]=$'\U1F6E5\UFE0F' +emoji[motor_boat_unqualified]=$'\U1F6E5' +emoji[ship]=$'\U1F6A2' +emoji[airplane]=$'\U2708\UFE0F' +emoji[airplane_unqualified]=$'\U2708' +emoji[small_airplane]=$'\U1F6E9\UFE0F' +emoji[small_airplane_unqualified]=$'\U1F6E9' +emoji[airplane_departure]=$'\U1F6EB' +emoji[flight_departure]=$'\U1F6EB' +emoji[airplane_arrival]=$'\U1F6EC' +emoji[flight_arrival]=$'\U1F6EC' +emoji[parachute]=$'\U1FA82' +emoji[seat]=$'\U1F4BA' +emoji[helicopter]=$'\U1F681' +emoji[suspension_railway]=$'\U1F69F' +emoji[mountain_cableway]=$'\U1F6A0' +emoji[aerial_tramway]=$'\U1F6A1' +emoji[satellite]=$'\U1F6F0\UFE0F' +emoji[satellite_unqualified]=$'\U1F6F0' +emoji[artificial_satellite]=$'\U1F6F0' +emoji[rocket]=$'\U1F680' +emoji[flying_saucer]=$'\U1F6F8' +emoji[bellhop_bell]=$'\U1F6CE\UFE0F' +emoji[bellhop_bell_unqualified]=$'\U1F6CE' +emoji[luggage]=$'\U1F9F3' +emoji[hourglass_done]=$'\U231B' +emoji[hourglass]=$'\U231B' +emoji[hourglass_not_done]=$'\U23F3' +emoji[hourglass_flowing_sand]=$'\U23F3' +emoji[watch]=$'\U231A' +emoji[alarm_clock]=$'\U23F0' +emoji[stopwatch]=$'\U23F1\UFE0F' +emoji[stopwatch_unqualified]=$'\U23F1' +emoji[timer_clock]=$'\U23F2\UFE0F' +emoji[timer_clock_unqualified]=$'\U23F2' +emoji[mantelpiece_clock]=$'\U1F570\UFE0F' +emoji[mantelpiece_clock_unqualified]=$'\U1F570' +emoji[twelve_o_clock]=$'\U1F55B' +emoji[clock12]=$'\U1F55B' +emoji[twelve_thirty]=$'\U1F567' +emoji[clock1230]=$'\U1F567' +emoji[one_o_clock]=$'\U1F550' +emoji[clock1]=$'\U1F550' +emoji[one_thirty]=$'\U1F55C' +emoji[clock130]=$'\U1F55C' +emoji[two_o_clock]=$'\U1F551' +emoji[clock2]=$'\U1F551' +emoji[two_thirty]=$'\U1F55D' +emoji[clock230]=$'\U1F55D' +emoji[three_o_clock]=$'\U1F552' +emoji[clock3]=$'\U1F552' +emoji[three_thirty]=$'\U1F55E' +emoji[clock330]=$'\U1F55E' +emoji[four_o_clock]=$'\U1F553' +emoji[clock4]=$'\U1F553' +emoji[four_thirty]=$'\U1F55F' +emoji[clock430]=$'\U1F55F' +emoji[five_o_clock]=$'\U1F554' +emoji[clock5]=$'\U1F554' +emoji[five_thirty]=$'\U1F560' +emoji[clock530]=$'\U1F560' +emoji[six_o_clock]=$'\U1F555' +emoji[clock6]=$'\U1F555' +emoji[six_thirty]=$'\U1F561' +emoji[clock630]=$'\U1F561' +emoji[seven_o_clock]=$'\U1F556' +emoji[clock7]=$'\U1F556' +emoji[seven_thirty]=$'\U1F562' +emoji[clock730]=$'\U1F562' +emoji[eight_o_clock]=$'\U1F557' +emoji[clock8]=$'\U1F557' +emoji[eight_thirty]=$'\U1F563' +emoji[clock830]=$'\U1F563' +emoji[nine_o_clock]=$'\U1F558' +emoji[clock9]=$'\U1F558' +emoji[nine_thirty]=$'\U1F564' +emoji[clock930]=$'\U1F564' +emoji[ten_o_clock]=$'\U1F559' +emoji[clock10]=$'\U1F559' +emoji[ten_thirty]=$'\U1F565' +emoji[clock1030]=$'\U1F565' +emoji[eleven_o_clock]=$'\U1F55A' +emoji[clock11]=$'\U1F55A' +emoji[eleven_thirty]=$'\U1F566' +emoji[clock1130]=$'\U1F566' +emoji[new_moon]=$'\U1F311' +emoji[waxing_crescent_moon]=$'\U1F312' +emoji[first_quarter_moon]=$'\U1F313' +emoji[waxing_gibbous_moon]=$'\U1F314' +emoji[moon]=$'\U1F314' +emoji[full_moon]=$'\U1F315' +emoji[waning_gibbous_moon]=$'\U1F316' +emoji[last_quarter_moon]=$'\U1F317' +emoji[waning_crescent_moon]=$'\U1F318' +emoji[waning_crescent_moon_1]=$'\U1F319' +emoji[crescent_moon]=$'\U1F319' +emoji[new_moon_face]=$'\U1F31A' +emoji[new_moon_with_face]=$'\U1F31A' +emoji[first_quarter_moon_face]=$'\U1F31B' +emoji[first_quarter_moon_with_face]=$'\U1F31B' +emoji[last_quarter_moon_face]=$'\U1F31C' +emoji[last_quarter_moon_with_face]=$'\U1F31C' +emoji[thermometer]=$'\U1F321\UFE0F' +emoji[thermometer_unqualified]=$'\U1F321' +emoji[sun]=$'\U2600\UFE0F' +emoji[sunny]=$'\U2600\UFE0F' +emoji[sun_unqualified]=$'\U2600' +emoji[full_moon_face]=$'\U1F31D' +emoji[full_moon_with_face]=$'\U1F31D' +emoji[sun_with_face]=$'\U1F31E' +emoji[ringed_planet]=$'\U1FA90' +emoji[star]=$'\U2B50' +emoji[glowing_star]=$'\U1F31F' +emoji[star2]=$'\U1F31F' +emoji[shooting_star]=$'\U1F320' +emoji[stars]=$'\U1F320' +emoji[milky_way]=$'\U1F30C' +emoji[cloud]=$'\U2601\UFE0F' +emoji[cloud_unqualified]=$'\U2601' +emoji[sun_behind_cloud]=$'\U26C5' +emoji[partly_sunny]=$'\U26C5' +emoji[cloud_with_lightning_and_rain]=$'\U26C8\UFE0F' +emoji[cloud_with_lightning_and_rain_unqualified]=$'\U26C8' +emoji[sun_behind_small_cloud]=$'\U1F324\UFE0F' +emoji[sun_behind_small_cloud_unqualified]=$'\U1F324' +emoji[sun_behind_large_cloud]=$'\U1F325\UFE0F' +emoji[sun_behind_large_cloud_unqualified]=$'\U1F325' +emoji[sun_behind_rain_cloud]=$'\U1F326\UFE0F' +emoji[sun_behind_rain_cloud_unqualified]=$'\U1F326' +emoji[cloud_with_rain]=$'\U1F327\UFE0F' +emoji[cloud_with_rain_unqualified]=$'\U1F327' +emoji[cloud_with_snow]=$'\U1F328\UFE0F' +emoji[cloud_with_snow_unqualified]=$'\U1F328' +emoji[cloud_with_lightning]=$'\U1F329\UFE0F' +emoji[cloud_with_lightning_unqualified]=$'\U1F329' +emoji[tornado]=$'\U1F32A\UFE0F' +emoji[tornado_unqualified]=$'\U1F32A' +emoji[fog]=$'\U1F32B\UFE0F' +emoji[fog_unqualified]=$'\U1F32B' +emoji[wind_face]=$'\U1F32C\UFE0F' +emoji[wind_face_unqualified]=$'\U1F32C' +emoji[cyclone]=$'\U1F300' +emoji[rainbow]=$'\U1F308' +emoji[closed_umbrella]=$'\U1F302' +emoji[closed_umbrella_1]=$'\U2602\UFE0F' +emoji[open_umbrella]=$'\U2602\UFE0F' +emoji[umbrella_unqualified]=$'\U2602' +emoji[umbrella_with_rain_drops]=$'\U2614' +emoji[umbrella]=$'\U2614' +emoji[umbrella_on_ground]=$'\U26F1\UFE0F' +emoji[umbrella_on_ground_unqualified]=$'\U26F1' +emoji[parasol_on_ground]=$'\U26F1' +emoji[high_voltage]=$'\U26A1' +emoji[zap]=$'\U26A1' +emoji[snowflake]=$'\U2744\UFE0F' +emoji[snowflake_unqualified]=$'\U2744' +emoji[snowman]=$'\U2603\UFE0F' +emoji[snowman_with_snow]=$'\U2603\UFE0F' +emoji[snowman_unqualified]=$'\U2603' +emoji[snowman_without_snow]=$'\U26C4' +emoji[comet]=$'\U2604\UFE0F' +emoji[comet_unqualified]=$'\U2604' +emoji[fire]=$'\U1F525' +emoji[droplet]=$'\U1F4A7' +emoji[water_wave]=$'\U1F30A' +emoji[ocean]=$'\U1F30A' emoji[jack_o_lantern]=$'\U1F383' +emoji[Christmas_tree]=$'\U1F384' emoji[christmas_tree]=$'\U1F384' -emoji[father_christmas]=$'\U1F385' emoji[fireworks]=$'\U1F386' -emoji[firework_sparkler]=$'\U1F387' +emoji[sparkler]=$'\U1F387' +emoji[firecracker]=$'\U1F9E8' +emoji[sparkles]=$'\U2728' emoji[balloon]=$'\U1F388' emoji[party_popper]=$'\U1F389' +emoji[tada]=$'\U1F389' emoji[confetti_ball]=$'\U1F38A' emoji[tanabata_tree]=$'\U1F38B' -emoji[crossed_flags]=$'\U1F38C' emoji[pine_decoration]=$'\U1F38D' -emoji[japanese_dolls]=$'\U1F38E' +emoji[bamboo]=$'\U1F38D' +emoji[Japanese_dolls]=$'\U1F38E' +emoji[dolls]=$'\U1F38E' emoji[carp_streamer]=$'\U1F38F' +emoji[flags]=$'\U1F38F' emoji[wind_chime]=$'\U1F390' emoji[moon_viewing_ceremony]=$'\U1F391' -emoji[school_satchel]=$'\U1F392' -emoji[graduation_cap]=$'\U1F393' -emoji[military_medal]=$'\U1F396' -emoji[reminder_ribbon]=$'\U1F397' -emoji[studio_microphone]=$'\U1F399' -emoji[level_slider]=$'\U1F39A' -emoji[control_knobs]=$'\U1F39B' -emoji[film_frames]=$'\U1F39E' -emoji[admission_tickets]=$'\U1F39F' -emoji[carousel_horse]=$'\U1F3A0' -emoji[ferris_wheel]=$'\U1F3A1' -emoji[roller_coaster]=$'\U1F3A2' -emoji[fishing_pole_and_fish]=$'\U1F3A3' -emoji[microphone]=$'\U1F3A4' -emoji[movie_camera]=$'\U1F3A5' -emoji[cinema]=$'\U1F3A6' -emoji[headphone]=$'\U1F3A7' -emoji[artist_palette]=$'\U1F3A8' -emoji[top_hat]=$'\U1F3A9' -emoji[circus_tent]=$'\U1F3AA' +emoji[rice_scene]=$'\U1F391' +emoji[red_envelope]=$'\U1F9E7' +emoji[ribbon]=$'\U1F380' +emoji[wrapped_gift]=$'\U1F381' +emoji[gift]=$'\U1F381' +emoji[reminder_ribbon]=$'\U1F397\UFE0F' +emoji[reminder_ribbon_unqualified]=$'\U1F397' +emoji[admission_tickets]=$'\U1F39F\UFE0F' +emoji[admission_tickets_unqualified]=$'\U1F39F' +emoji[tickets]=$'\U1F39F' +emoji[admission_tickets_unqualified_1]=$'\U1F3AB' emoji[ticket]=$'\U1F3AB' -emoji[clapper_board]=$'\U1F3AC' -emoji[performing_arts]=$'\U1F3AD' -emoji[video_game]=$'\U1F3AE' +emoji[military_medal]=$'\U1F396\UFE0F' +emoji[military_medal_unqualified]=$'\U1F396' +emoji[medal_military]=$'\U1F396' +emoji[trophy]=$'\U1F3C6' +emoji[sports_medal]=$'\U1F3C5' +emoji[medal_sports]=$'\U1F3C5' +emoji[1st_place_medal]=$'\U1F947' +emoji[2nd_place_medal]=$'\U1F948' +emoji[3rd_place_medal]=$'\U1F949' +emoji[soccer_ball]=$'\U26BD' +emoji[soccer]=$'\U26BD' +emoji[baseball]=$'\U26BE' +emoji[softball]=$'\U1F94E' +emoji[basketball]=$'\U1F3C0' +emoji[volleyball]=$'\U1F3D0' +emoji[american_football]=$'\U1F3C8' +emoji[football]=$'\U1F3C8' +emoji[rugby_football]=$'\U1F3C9' +emoji[tennis]=$'\U1F3BE' +emoji[flying_disc]=$'\U1F94F' +emoji[bowling]=$'\U1F3B3' +emoji[cricket_game]=$'\U1F3CF' +emoji[field_hockey]=$'\U1F3D1' +emoji[ice_hockey]=$'\U1F3D2' +emoji[lacrosse]=$'\U1F94D' +emoji[ping_pong]=$'\U1F3D3' +emoji[badminton]=$'\U1F3F8' +emoji[boxing_glove]=$'\U1F94A' +emoji[martial_arts_uniform]=$'\U1F94B' +emoji[goal_net]=$'\U1F945' +emoji[flag_in_hole]=$'\U26F3' +emoji[golf]=$'\U26F3' +emoji[ice_skate]=$'\U26F8\UFE0F' +emoji[ice_skate_unqualified]=$'\U26F8' +emoji[fishing_pole]=$'\U1F3A3' +emoji[fishing_pole_and_fish]=$'\U1F3A3' +emoji[diving_mask]=$'\U1F93F' +emoji[running_shirt]=$'\U1F3BD' +emoji[running_shirt_with_sash]=$'\U1F3BD' +emoji[skis]=$'\U1F3BF' +emoji[ski]=$'\U1F3BF' +emoji[sled]=$'\U1F6F7' +emoji[curling_stone]=$'\U1F94C' emoji[direct_hit]=$'\U1F3AF' +emoji[dart]=$'\U1F3AF' +emoji[yo_yo]=$'\U1FA80' +emoji[kite]=$'\U1FA81' +emoji[pool_8_ball]=$'\U1F3B1' +emoji[8ball]=$'\U1F3B1' +emoji[crystal_ball]=$'\U1F52E' +emoji[nazar_amulet]=$'\U1F9FF' +emoji[video_game]=$'\U1F3AE' +emoji[joystick]=$'\U1F579\UFE0F' +emoji[joystick_unqualified]=$'\U1F579' emoji[slot_machine]=$'\U1F3B0' -emoji[billiards]=$'\U1F3B1' emoji[game_die]=$'\U1F3B2' -emoji[bowling]=$'\U1F3B3' +emoji[puzzle_piece]=$'\U1F9E9' +emoji[jigsaw]=$'\U1F9E9' +emoji[teddy_bear]=$'\U1F9F8' +emoji[spade_suit]=$'\U2660\UFE0F' +emoji[spades]=$'\U2660\UFE0F' +emoji[spade_suit_unqualified]=$'\U2660' +emoji[heart_suit]=$'\U2665\UFE0F' +emoji[hearts]=$'\U2665\UFE0F' +emoji[heart_suit_unqualified]=$'\U2665' +emoji[diamond_suit]=$'\U2666\UFE0F' +emoji[diamonds]=$'\U2666\UFE0F' +emoji[diamond_suit_unqualified]=$'\U2666' +emoji[club_suit]=$'\U2663\UFE0F' +emoji[clubs]=$'\U2663\UFE0F' +emoji[club_suit_unqualified]=$'\U2663' +emoji[chess_pawn]=$'\U265F\UFE0F' +emoji[chess_pawn_unqualified]=$'\U265F' +emoji[joker]=$'\U1F0CF' +emoji[black_joker]=$'\U1F0CF' +emoji[mahjong_red_dragon]=$'\U1F004' +emoji[mahjong]=$'\U1F004' emoji[flower_playing_cards]=$'\U1F3B4' -emoji[musical_note]=$'\U1F3B5' -emoji[multiple_musical_notes]=$'\U1F3B6' -emoji[saxophone]=$'\U1F3B7' -emoji[guitar]=$'\U1F3B8' -emoji[musical_keyboard]=$'\U1F3B9' -emoji[trumpet]=$'\U1F3BA' -emoji[violin]=$'\U1F3BB' -emoji[musical_score]=$'\U1F3BC' -emoji[running_shirt_with_sash]=$'\U1F3BD' -emoji[tennis_racquet_and_ball]=$'\U1F3BE' -emoji[ski_and_ski_boot]=$'\U1F3BF' -emoji[basketball_and_hoop]=$'\U1F3C0' -emoji[chequered_flag]=$'\U1F3C1' -emoji[snowboarder]=$'\U1F3C2' -emoji[runner]=$'\U1F3C3' -emoji[surfer]=$'\U1F3C4' -emoji[sports_medal]=$'\U1F3C5' -emoji[trophy]=$'\U1F3C6' -emoji[horse_racing]=$'\U1F3C7' -emoji[american_football]=$'\U1F3C8' -emoji[rugby_football]=$'\U1F3C9' -emoji[swimmer]=$'\U1F3CA' -emoji[weight_lifter]=$'\U1F3CB' -emoji[golfer]=$'\U1F3CC' -emoji[racing_motorcycle]=$'\U1F3CD' -emoji[racing_car]=$'\U1F3CE' -emoji[cricket_bat_and_ball]=$'\U1F3CF' -emoji[volleyball]=$'\U1F3D0' -emoji[field_hockey_stick_and_ball]=$'\U1F3D1' -emoji[ice_hockey_stick_and_puck]=$'\U1F3D2' -emoji[table_tennis_paddle_and_ball]=$'\U1F3D3' -emoji[snow_capped_mountain]=$'\U1F3D4' -emoji[camping]=$'\U1F3D5' -emoji[beach_with_umbrella]=$'\U1F3D6' -emoji[building_construction]=$'\U1F3D7' -emoji[house_buildings]=$'\U1F3D8' -emoji[cityscape]=$'\U1F3D9' -emoji[derelict_house_building]=$'\U1F3DA' -emoji[classical_building]=$'\U1F3DB' -emoji[desert]=$'\U1F3DC' -emoji[desert_island]=$'\U1F3DD' -emoji[national_park]=$'\U1F3DE' -emoji[stadium]=$'\U1F3DF' -emoji[house_building]=$'\U1F3E0' -emoji[house_with_garden]=$'\U1F3E1' -emoji[office_building]=$'\U1F3E2' -emoji[japanese_post_office]=$'\U1F3E3' -emoji[european_post_office]=$'\U1F3E4' -emoji[hospital]=$'\U1F3E5' -emoji[bank]=$'\U1F3E6' -emoji[automated_teller_machine]=$'\U1F3E7' -emoji[hotel]=$'\U1F3E8' -emoji[love_hotel]=$'\U1F3E9' -emoji[convenience_store]=$'\U1F3EA' -emoji[school]=$'\U1F3EB' -emoji[department_store]=$'\U1F3EC' -emoji[factory]=$'\U1F3ED' -emoji[izakaya_lantern]=$'\U1F3EE' -emoji[japanese_castle]=$'\U1F3EF' -emoji[european_castle]=$'\U1F3F0' -emoji[waving_white_flag]=$'\U1F3F3' -emoji[waving_black_flag]=$'\U1F3F4' -emoji[rosette]=$'\U1F3F5' -emoji[label]=$'\U1F3F7' -emoji[badminton_racquet_and_shuttlecock]=$'\U1F3F8' -emoji[bow_and_arrow]=$'\U1F3F9' -emoji[amphora]=$'\U1F3FA' -emoji[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB' -emoji_mod[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB' -emoji[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC' -emoji_mod[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC' -emoji[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD' -emoji_mod[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD' -emoji[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE' -emoji_mod[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE' -emoji[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF' -emoji_mod[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF' -emoji[rat]=$'\U1F400' -emoji[mouse]=$'\U1F401' -emoji[ox]=$'\U1F402' -emoji[water_buffalo]=$'\U1F403' -emoji[cow]=$'\U1F404' -emoji[tiger]=$'\U1F405' -emoji[leopard]=$'\U1F406' -emoji[rabbit]=$'\U1F407' -emoji[cat]=$'\U1F408' -emoji[dragon]=$'\U1F409' -emoji[crocodile]=$'\U1F40A' -emoji[whale]=$'\U1F40B' -emoji[snail]=$'\U1F40C' -emoji[snake]=$'\U1F40D' -emoji[horse]=$'\U1F40E' -emoji[ram]=$'\U1F40F' -emoji[goat]=$'\U1F410' -emoji[sheep]=$'\U1F411' -emoji[monkey]=$'\U1F412' -emoji[rooster]=$'\U1F413' -emoji[chicken]=$'\U1F414' -emoji[dog]=$'\U1F415' -emoji[pig]=$'\U1F416' -emoji[boar]=$'\U1F417' -emoji[elephant]=$'\U1F418' -emoji[octopus]=$'\U1F419' -emoji[spiral_shell]=$'\U1F41A' -emoji[bug]=$'\U1F41B' -emoji[ant]=$'\U1F41C' -emoji[honeybee]=$'\U1F41D' -emoji[lady_beetle]=$'\U1F41E' -emoji[fish]=$'\U1F41F' -emoji[tropical_fish]=$'\U1F420' -emoji[blowfish]=$'\U1F421' -emoji[turtle]=$'\U1F422' -emoji[hatching_chick]=$'\U1F423' -emoji[baby_chick]=$'\U1F424' -emoji[front_facing_baby_chick]=$'\U1F425' -emoji[bird]=$'\U1F426' -emoji[penguin]=$'\U1F427' -emoji[koala]=$'\U1F428' -emoji[poodle]=$'\U1F429' -emoji[dromedary_camel]=$'\U1F42A' -emoji[bactrian_camel]=$'\U1F42B' -emoji[dolphin]=$'\U1F42C' -emoji[mouse_face]=$'\U1F42D' -emoji[cow_face]=$'\U1F42E' -emoji[tiger_face]=$'\U1F42F' -emoji[rabbit_face]=$'\U1F430' -emoji[cat_face]=$'\U1F431' -emoji[dragon_face]=$'\U1F432' -emoji[spouting_whale]=$'\U1F433' -emoji[horse_face]=$'\U1F434' -emoji[monkey_face]=$'\U1F435' -emoji[dog_face]=$'\U1F436' -emoji[pig_face]=$'\U1F437' -emoji[frog_face]=$'\U1F438' -emoji[hamster_face]=$'\U1F439' -emoji[wolf_face]=$'\U1F43A' -emoji[bear_face]=$'\U1F43B' -emoji[panda_face]=$'\U1F43C' -emoji[pig_nose]=$'\U1F43D' -emoji[paw_prints]=$'\U1F43E' -emoji[chipmunk]=$'\U1F43F' -emoji[eyes]=$'\U1F440' -emoji[eye]=$'\U1F441' -emoji[ear]=$'\U1F442' -emoji[nose]=$'\U1F443' -emoji[mouth]=$'\U1F444' -emoji[tongue]=$'\U1F445' -emoji[white_up_pointing_backhand_index]=$'\U1F446' -emoji[white_down_pointing_backhand_index]=$'\U1F447' -emoji[white_left_pointing_backhand_index]=$'\U1F448' -emoji[white_right_pointing_backhand_index]=$'\U1F449' -emoji[fisted_hand_sign]=$'\U1F44A' -emoji[waving_hand_sign]=$'\U1F44B' -emoji[ok_hand_sign]=$'\U1F44C' -emoji[thumbs_up_sign]=$'\U1F44D' -emoji[thumbs_down_sign]=$'\U1F44E' -emoji[clapping_hands_sign]=$'\U1F44F' -emoji[open_hands_sign]=$'\U1F450' -emoji[crown]=$'\U1F451' -emoji[womans_hat]=$'\U1F452' +emoji[performing_arts]=$'\U1F3AD' +emoji[framed_picture]=$'\U1F5BC\UFE0F' +emoji[framed_picture_unqualified]=$'\U1F5BC' +emoji[artist_palette]=$'\U1F3A8' +emoji[art]=$'\U1F3A8' +emoji[thread]=$'\U1F9F5' +emoji[yarn]=$'\U1F9F6' +emoji[glasses]=$'\U1F453' emoji[eyeglasses]=$'\U1F453' +emoji[sunglasses]=$'\U1F576\UFE0F' +emoji[sunglasses_unqualified]=$'\U1F576' +emoji[dark_sunglasses]=$'\U1F576' +emoji[goggles]=$'\U1F97D' +emoji[lab_coat]=$'\U1F97C' +emoji[safety_vest]=$'\U1F9BA' emoji[necktie]=$'\U1F454' emoji[t_shirt]=$'\U1F455' +emoji[shirt]=$'\U1F455' +emoji[tshirt]=$'\U1F455' emoji[jeans]=$'\U1F456' +emoji[scarf]=$'\U1F9E3' +emoji[gloves]=$'\U1F9E4' +emoji[coat]=$'\U1F9E5' +emoji[socks]=$'\U1F9E6' emoji[dress]=$'\U1F457' emoji[kimono]=$'\U1F458' +emoji[sari]=$'\U1F97B' +emoji[one_piece_swimsuit]=$'\U1FA71' +emoji[swim_brief]=$'\U1FA72' +emoji[shorts]=$'\U1FA73' emoji[bikini]=$'\U1F459' +emoji[woman_s_clothes]=$'\U1F45A' emoji[womans_clothes]=$'\U1F45A' emoji[purse]=$'\U1F45B' emoji[handbag]=$'\U1F45C' +emoji[clutch_bag]=$'\U1F45D' emoji[pouch]=$'\U1F45D' +emoji[shopping_bags]=$'\U1F6CD\UFE0F' +emoji[shopping_bags_unqualified]=$'\U1F6CD' +emoji[shopping]=$'\U1F6CD' +emoji[backpack]=$'\U1F392' +emoji[school_satchel]=$'\U1F392' +emoji[man_s_shoe]=$'\U1F45E' emoji[mans_shoe]=$'\U1F45E' +emoji[shoe]=$'\U1F45E' +emoji[running_shoe]=$'\U1F45F' emoji[athletic_shoe]=$'\U1F45F' +emoji[hiking_boot]=$'\U1F97E' +emoji[flat_shoe]=$'\U1F97F' emoji[high_heeled_shoe]=$'\U1F460' -emoji[womans_sandal]=$'\U1F461' -emoji[womans_boots]=$'\U1F462' -emoji[footprints]=$'\U1F463' -emoji[bust_in_silhouette]=$'\U1F464' -emoji[busts_in_silhouette]=$'\U1F465' -emoji[boy]=$'\U1F466' -emoji[girl]=$'\U1F467' -emoji[man]=$'\U1F468' -emoji[woman]=$'\U1F469' -emoji[family]=$'\U1F46A' -emoji[man_and_woman_holding_hands]=$'\U1F46B' -emoji[two_men_holding_hands]=$'\U1F46C' -emoji[two_women_holding_hands]=$'\U1F46D' -emoji[police_officer]=$'\U1F46E' -emoji[woman_with_bunny_ears]=$'\U1F46F' -emoji[bride_with_veil]=$'\U1F470' -emoji[person_with_blond_hair]=$'\U1F471' -emoji[man_with_gua_pi_mao]=$'\U1F472' -emoji[man_with_turban]=$'\U1F473' -emoji[older_man]=$'\U1F474' -emoji[older_woman]=$'\U1F475' -emoji[baby]=$'\U1F476' -emoji[construction_worker]=$'\U1F477' -emoji[princess]=$'\U1F478' -emoji[japanese_ogre]=$'\U1F479' -emoji[japanese_goblin]=$'\U1F47A' -emoji[ghost]=$'\U1F47B' -emoji[baby_angel]=$'\U1F47C' -emoji[extraterrestrial_alien]=$'\U1F47D' -emoji[alien_monster]=$'\U1F47E' -emoji[imp]=$'\U1F47F' -emoji[skull]=$'\U1F480' -emoji[information_desk_person]=$'\U1F481' -emoji[guardsman]=$'\U1F482' -emoji[dancer]=$'\U1F483' +emoji[high_heel]=$'\U1F460' +emoji[woman_s_sandal]=$'\U1F461' +emoji[sandal]=$'\U1F461' +emoji[ballet_shoes]=$'\U1FA70' +emoji[woman_s_boot]=$'\U1F462' +emoji[boot]=$'\U1F462' +emoji[crown]=$'\U1F451' +emoji[woman_s_hat]=$'\U1F452' +emoji[womans_hat]=$'\U1F452' +emoji[top_hat]=$'\U1F3A9' +emoji[tophat]=$'\U1F3A9' +emoji[graduation_cap]=$'\U1F393' +emoji[mortar_board]=$'\U1F393' +emoji[billed_cap]=$'\U1F9E2' +emoji[rescue_worker_s_helmet]=$'\U26D1\UFE0F' +emoji[rescue_worker_s_helmet_unqualified]=$'\U26D1' +emoji[rescue_worker_helmet]=$'\U26D1' +emoji[prayer_beads]=$'\U1F4FF' emoji[lipstick]=$'\U1F484' -emoji[nail_polish]=$'\U1F485' -emoji[face_massage]=$'\U1F486' -emoji[haircut]=$'\U1F487' -emoji[barber_pole]=$'\U1F488' -emoji[syringe]=$'\U1F489' -emoji[pill]=$'\U1F48A' -emoji[kiss_mark]=$'\U1F48B' -emoji[love_letter]=$'\U1F48C' emoji[ring]=$'\U1F48D' emoji[gem_stone]=$'\U1F48E' -emoji[kiss]=$'\U1F48F' -emoji[bouquet]=$'\U1F490' -emoji[couple_with_heart]=$'\U1F491' -emoji[wedding]=$'\U1F492' -emoji[beating_heart]=$'\U1F493' -emoji[broken_heart]=$'\U1F494' -emoji[two_hearts]=$'\U1F495' -emoji[sparkling_heart]=$'\U1F496' -emoji[growing_heart]=$'\U1F497' -emoji[heart_with_arrow]=$'\U1F498' -emoji[blue_heart]=$'\U1F499' -emoji[green_heart]=$'\U1F49A' -emoji[yellow_heart]=$'\U1F49B' -emoji[purple_heart]=$'\U1F49C' -emoji[heart_with_ribbon]=$'\U1F49D' -emoji[revolving_hearts]=$'\U1F49E' -emoji[heart_decoration]=$'\U1F49F' -emoji[diamond_shape_with_a_dot_inside]=$'\U1F4A0' -emoji[electric_light_bulb]=$'\U1F4A1' -emoji[anger_symbol]=$'\U1F4A2' -emoji[bomb]=$'\U1F4A3' -emoji[sleeping_symbol]=$'\U1F4A4' -emoji[collision_symbol]=$'\U1F4A5' -emoji[splashing_sweat_symbol]=$'\U1F4A6' -emoji[droplet]=$'\U1F4A7' -emoji[dash_symbol]=$'\U1F4A8' -emoji[pile_of_poo]=$'\U1F4A9' -emoji[flexed_biceps]=$'\U1F4AA' -emoji[dizzy_symbol]=$'\U1F4AB' -emoji[speech_balloon]=$'\U1F4AC' -emoji[thought_balloon]=$'\U1F4AD' -emoji[white_flower]=$'\U1F4AE' -emoji[hundred_points_symbol]=$'\U1F4AF' -emoji[money_bag]=$'\U1F4B0' -emoji[currency_exchange]=$'\U1F4B1' -emoji[heavy_dollar_sign]=$'\U1F4B2' -emoji[credit_card]=$'\U1F4B3' -emoji[banknote_with_yen_sign]=$'\U1F4B4' -emoji[banknote_with_dollar_sign]=$'\U1F4B5' -emoji[banknote_with_euro_sign]=$'\U1F4B6' -emoji[banknote_with_pound_sign]=$'\U1F4B7' -emoji[money_with_wings]=$'\U1F4B8' -emoji[chart_with_upwards_trend_and_yen_sign]=$'\U1F4B9' -emoji[seat]=$'\U1F4BA' -emoji[personal_computer]=$'\U1F4BB' -emoji[briefcase]=$'\U1F4BC' +emoji[gem]=$'\U1F48E' +emoji[muted_speaker]=$'\U1F507' +emoji[mute]=$'\U1F507' +emoji[speaker_low_volume]=$'\U1F508' +emoji[speaker]=$'\U1F508' +emoji[speaker_medium_volume]=$'\U1F509' +emoji[sound]=$'\U1F509' +emoji[speaker_high_volume]=$'\U1F50A' +emoji[loud_sound]=$'\U1F50A' +emoji[loudspeaker]=$'\U1F4E2' +emoji[megaphone]=$'\U1F4E3' +emoji[mega]=$'\U1F4E3' +emoji[postal_horn]=$'\U1F4EF' +emoji[bell]=$'\U1F514' +emoji[bell_with_slash]=$'\U1F515' +emoji[no_bell]=$'\U1F515' +emoji[musical_score]=$'\U1F3BC' +emoji[musical_note]=$'\U1F3B5' +emoji[musical_notes]=$'\U1F3B6' +emoji[notes]=$'\U1F3B6' +emoji[studio_microphone]=$'\U1F399\UFE0F' +emoji[studio_microphone_unqualified]=$'\U1F399' +emoji[level_slider]=$'\U1F39A\UFE0F' +emoji[level_slider_unqualified]=$'\U1F39A' +emoji[control_knobs]=$'\U1F39B\UFE0F' +emoji[control_knobs_unqualified]=$'\U1F39B' +emoji[microphone]=$'\U1F3A4' +emoji[headphone]=$'\U1F3A7' +emoji[headphones]=$'\U1F3A7' +emoji[radio]=$'\U1F4FB' +emoji[saxophone]=$'\U1F3B7' +emoji[guitar]=$'\U1F3B8' +emoji[musical_keyboard]=$'\U1F3B9' +emoji[trumpet]=$'\U1F3BA' +emoji[violin]=$'\U1F3BB' +emoji[banjo]=$'\U1FA95' +emoji[drum]=$'\U1F941' +emoji[mobile_phone]=$'\U1F4F1' +emoji[iphone]=$'\U1F4F1' +emoji[mobile_phone_with_arrow]=$'\U1F4F2' +emoji[calling]=$'\U1F4F2' +emoji[telephone]=$'\U260E\UFE0F' +emoji[phone]=$'\U260E\UFE0F' +emoji[telephone_unqualified]=$'\U260E' +emoji[telephone_receiver]=$'\U1F4DE' +emoji[pager]=$'\U1F4DF' +emoji[fax_machine]=$'\U1F4E0' +emoji[fax]=$'\U1F4E0' +emoji[battery]=$'\U1F50B' +emoji[electric_plug]=$'\U1F50C' +emoji[laptop_computer]=$'\U1F4BB' +emoji[computer]=$'\U1F4BB' +emoji[desktop_computer]=$'\U1F5A5\UFE0F' +emoji[desktop_computer_unqualified]=$'\U1F5A5' +emoji[printer]=$'\U1F5A8\UFE0F' +emoji[printer_unqualified]=$'\U1F5A8' +emoji[keyboard]=$'\U2328\UFE0F' +emoji[keyboard_unqualified]=$'\U2328' +emoji[computer_mouse]=$'\U1F5B1\UFE0F' +emoji[computer_mouse_unqualified]=$'\U1F5B1' +emoji[trackball]=$'\U1F5B2\UFE0F' +emoji[trackball_unqualified]=$'\U1F5B2' +emoji[computer_disk]=$'\U1F4BD' emoji[minidisc]=$'\U1F4BD' emoji[floppy_disk]=$'\U1F4BE' -emoji[optical_disc]=$'\U1F4BF' +emoji[optical_disk]=$'\U1F4BF' +emoji[cd]=$'\U1F4BF' emoji[dvd]=$'\U1F4C0' -emoji[file_folder]=$'\U1F4C1' -emoji[open_file_folder]=$'\U1F4C2' -emoji[page_with_curl]=$'\U1F4C3' -emoji[page_facing_up]=$'\U1F4C4' -emoji[calendar]=$'\U1F4C5' -emoji[tear_off_calendar]=$'\U1F4C6' -emoji[card_index]=$'\U1F4C7' -emoji[chart_with_upwards_trend]=$'\U1F4C8' -emoji[chart_with_downwards_trend]=$'\U1F4C9' -emoji[bar_chart]=$'\U1F4CA' -emoji[clipboard]=$'\U1F4CB' -emoji[pushpin]=$'\U1F4CC' -emoji[round_pushpin]=$'\U1F4CD' -emoji[paperclip]=$'\U1F4CE' -emoji[straight_ruler]=$'\U1F4CF' -emoji[triangular_ruler]=$'\U1F4D0' -emoji[bookmark_tabs]=$'\U1F4D1' -emoji[ledger]=$'\U1F4D2' -emoji[notebook]=$'\U1F4D3' +emoji[abacus]=$'\U1F9EE' +emoji[movie_camera]=$'\U1F3A5' +emoji[film_frames]=$'\U1F39E\UFE0F' +emoji[film_frames_unqualified]=$'\U1F39E' +emoji[film_strip]=$'\U1F39E' +emoji[film_projector]=$'\U1F4FD\UFE0F' +emoji[film_projector_unqualified]=$'\U1F4FD' +emoji[clapper_board]=$'\U1F3AC' +emoji[clapper]=$'\U1F3AC' +emoji[television]=$'\U1F4FA' +emoji[tv]=$'\U1F4FA' +emoji[camera]=$'\U1F4F7' +emoji[camera_with_flash]=$'\U1F4F8' +emoji[camera_flash]=$'\U1F4F8' +emoji[video_camera]=$'\U1F4F9' +emoji[videocassette]=$'\U1F4FC' +emoji[vhs]=$'\U1F4FC' +emoji[magnifying_glass_tilted_left]=$'\U1F50D' +emoji[mag]=$'\U1F50D' +emoji[magnifying_glass_tilted_right]=$'\U1F50E' +emoji[mag_right]=$'\U1F50E' +emoji[candle]=$'\U1F56F\UFE0F' +emoji[candle_unqualified]=$'\U1F56F' +emoji[light_bulb]=$'\U1F4A1' +emoji[bulb]=$'\U1F4A1' +emoji[flashlight]=$'\U1F526' +emoji[red_paper_lantern]=$'\U1F3EE' +emoji[izakaya_lantern]=$'\U1F3EE' +emoji[lantern]=$'\U1F3EE' +emoji[diya_lamp]=$'\U1FA94' emoji[notebook_with_decorative_cover]=$'\U1F4D4' emoji[closed_book]=$'\U1F4D5' emoji[open_book]=$'\U1F4D6' +emoji[book]=$'\U1F4D6' emoji[green_book]=$'\U1F4D7' emoji[blue_book]=$'\U1F4D8' emoji[orange_book]=$'\U1F4D9' emoji[books]=$'\U1F4DA' -emoji[name_badge]=$'\U1F4DB' +emoji[notebook]=$'\U1F4D3' +emoji[ledger]=$'\U1F4D2' +emoji[page_with_curl]=$'\U1F4C3' emoji[scroll]=$'\U1F4DC' -emoji[memo]=$'\U1F4DD' -emoji[telephone_receiver]=$'\U1F4DE' -emoji[pager]=$'\U1F4DF' -emoji[fax_machine]=$'\U1F4E0' -emoji[satellite_antenna]=$'\U1F4E1' -emoji[public_address_loudspeaker]=$'\U1F4E2' -emoji[cheering_megaphone]=$'\U1F4E3' +emoji[page_facing_up]=$'\U1F4C4' +emoji[newspaper]=$'\U1F4F0' +emoji[rolled_up_newspaper]=$'\U1F5DE\UFE0F' +emoji[rolled_up_newspaper_unqualified]=$'\U1F5DE' +emoji[newspaper_roll]=$'\U1F5DE' +emoji[bookmark_tabs]=$'\U1F4D1' +emoji[bookmark_tabs_1]=$'\U1F516' +emoji[bookmark]=$'\U1F516' +emoji[label]=$'\U1F3F7\UFE0F' +emoji[label_unqualified]=$'\U1F3F7' +emoji[money_bag]=$'\U1F4B0' +emoji[moneybag]=$'\U1F4B0' +emoji[yen_banknote]=$'\U1F4B4' +emoji[yen]=$'\U1F4B4' +emoji[dollar_banknote]=$'\U1F4B5' +emoji[dollar]=$'\U1F4B5' +emoji[euro_banknote]=$'\U1F4B6' +emoji[euro]=$'\U1F4B6' +emoji[pound_banknote]=$'\U1F4B7' +emoji[pound]=$'\U1F4B7' +emoji[money_with_wings]=$'\U1F4B8' +emoji[credit_card]=$'\U1F4B3' +emoji[receipt]=$'\U1F9FE' +emoji[chart_increasing_with_yen]=$'\U1F4B9' +emoji[chart]=$'\U1F4B9' +emoji[currency_exchange]=$'\U1F4B1' +emoji[heavy_dollar_sign]=$'\U1F4B2' +emoji[envelope]=$'\U2709\UFE0F' +emoji[email]=$'\U2709\UFE0F' +emoji[envelope_unqualified]=$'\U2709' +emoji[e_mail]=$'\U1F4E7' +emoji[e-mail]=$'\U1F4E7' +emoji[incoming_envelope]=$'\U1F4E8' +emoji[envelope_with_arrow]=$'\U1F4E9' emoji[outbox_tray]=$'\U1F4E4' emoji[inbox_tray]=$'\U1F4E5' emoji[package]=$'\U1F4E6' -emoji[e_mail_symbol]=$'\U1F4E7' -emoji[incoming_envelope]=$'\U1F4E8' -emoji[envelope_with_downwards_arrow_above]=$'\U1F4E9' -emoji[closed_mailbox_with_lowered_flag]=$'\U1F4EA' emoji[closed_mailbox_with_raised_flag]=$'\U1F4EB' +emoji[mailbox]=$'\U1F4EB' +emoji[closed_mailbox_with_lowered_flag]=$'\U1F4EA' +emoji[mailbox_closed]=$'\U1F4EA' emoji[open_mailbox_with_raised_flag]=$'\U1F4EC' +emoji[mailbox_with_mail]=$'\U1F4EC' emoji[open_mailbox_with_lowered_flag]=$'\U1F4ED' +emoji[mailbox_with_no_mail]=$'\U1F4ED' emoji[postbox]=$'\U1F4EE' -emoji[postal_horn]=$'\U1F4EF' -emoji[newspaper]=$'\U1F4F0' -emoji[mobile_phone]=$'\U1F4F1' -emoji[mobile_phone_with_rightwards_arrow_at_left]=$'\U1F4F2' -emoji[vibration_mode]=$'\U1F4F3' -emoji[mobile_phone_off]=$'\U1F4F4' -emoji[no_mobile_phones]=$'\U1F4F5' -emoji[antenna_with_bars]=$'\U1F4F6' -emoji[camera]=$'\U1F4F7' -emoji[camera_with_flash]=$'\U1F4F8' -emoji[video_camera]=$'\U1F4F9' -emoji[television]=$'\U1F4FA' -emoji[radio]=$'\U1F4FB' -emoji[videocassette]=$'\U1F4FC' -emoji[film_projector]=$'\U1F4FD' -emoji[prayer_beads]=$'\U1F4FF' -emoji[twisted_rightwards_arrows]=$'\U1F500' -emoji[clockwise_rightwards_and_leftwards_open_circle_arrows]=$'\U1F501' -emoji[clockwise_rightwards_and_leftwards_open_circle_arrows_with_circled_one_overlay]=$'\U1F502' -emoji[clockwise_downwards_and_upwards_open_circle_arrows]=$'\U1F503' -emoji[anticlockwise_downwards_and_upwards_open_circle_arrows]=$'\U1F504' -emoji[low_brightness_symbol]=$'\U1F505' -emoji[high_brightness_symbol]=$'\U1F506' -emoji[speaker_with_cancellation_stroke]=$'\U1F507' -emoji[speaker]=$'\U1F508' -emoji[speaker_with_one_sound_wave]=$'\U1F509' -emoji[speaker_with_three_sound_waves]=$'\U1F50A' -emoji[battery]=$'\U1F50B' -emoji[electric_plug]=$'\U1F50C' -emoji[left_pointing_magnifying_glass]=$'\U1F50D' -emoji[right_pointing_magnifying_glass]=$'\U1F50E' +emoji[ballot_box_with_ballot]=$'\U1F5F3\UFE0F' +emoji[ballot_box_with_ballot_unqualified]=$'\U1F5F3' +emoji[ballot_box]=$'\U1F5F3' +emoji[pencil]=$'\U270F\UFE0F' +emoji[pencil2]=$'\U270F\UFE0F' +emoji[pencil_unqualified]=$'\U270F' +emoji[black_nib]=$'\U2712\UFE0F' +emoji[black_nib_unqualified]=$'\U2712' +emoji[fountain_pen]=$'\U1F58B\UFE0F' +emoji[fountain_pen_unqualified]=$'\U1F58B' +emoji[fountain_pen_unqualified_1]=$'\U1F58A\UFE0F' +emoji[fountain_pen_unqualified_2]=$'\U1F58A' +emoji[pen]=$'\U1F58A' +emoji[paintbrush]=$'\U1F58C\UFE0F' +emoji[paintbrush_unqualified]=$'\U1F58C' +emoji[crayon]=$'\U1F58D\UFE0F' +emoji[crayon_unqualified]=$'\U1F58D' +emoji[memo]=$'\U1F4DD' +emoji[briefcase]=$'\U1F4BC' +emoji[file_folder]=$'\U1F4C1' +emoji[open_file_folder]=$'\U1F4C2' +emoji[card_index_dividers]=$'\U1F5C2\UFE0F' +emoji[card_index_dividers_unqualified]=$'\U1F5C2' +emoji[calendar]=$'\U1F4C5' +emoji[date]=$'\U1F4C5' +emoji[tear_off_calendar]=$'\U1F4C6' +emoji[spiral_notepad]=$'\U1F5D2\UFE0F' +emoji[spiral_notepad_unqualified]=$'\U1F5D2' +emoji[spiral_calendar]=$'\U1F5D3\UFE0F' +emoji[spiral_calendar_unqualified]=$'\U1F5D3' +emoji[card_index]=$'\U1F4C7' +emoji[chart_increasing]=$'\U1F4C8' +emoji[chart_with_upwards_trend]=$'\U1F4C8' +emoji[chart_decreasing]=$'\U1F4C9' +emoji[chart_with_downwards_trend]=$'\U1F4C9' +emoji[bar_chart]=$'\U1F4CA' +emoji[clipboard]=$'\U1F4CB' +emoji[pushpin]=$'\U1F4CC' +emoji[round_pushpin]=$'\U1F4CD' +emoji[paperclip]=$'\U1F4CE' +emoji[linked_paperclips]=$'\U1F587\UFE0F' +emoji[linked_paperclips_unqualified]=$'\U1F587' +emoji[paperclips]=$'\U1F587' +emoji[straight_ruler]=$'\U1F4CF' +emoji[triangular_ruler]=$'\U1F4D0' +emoji[scissors]=$'\U2702\UFE0F' +emoji[scissors_unqualified]=$'\U2702' +emoji[card_file_box]=$'\U1F5C3\UFE0F' +emoji[card_file_box_unqualified]=$'\U1F5C3' +emoji[file_cabinet]=$'\U1F5C4\UFE0F' +emoji[file_cabinet_unqualified]=$'\U1F5C4' +emoji[wastebasket]=$'\U1F5D1\UFE0F' +emoji[wastebasket_unqualified]=$'\U1F5D1' +emoji[locked]=$'\U1F512' +emoji[lock]=$'\U1F512' +emoji[unlocked]=$'\U1F513' +emoji[unlock]=$'\U1F513' +emoji[locked_with_pen]=$'\U1F50F' emoji[lock_with_ink_pen]=$'\U1F50F' +emoji[locked_with_key]=$'\U1F510' emoji[closed_lock_with_key]=$'\U1F510' +emoji[locked_with_key_1]=$'\U1F511' emoji[key]=$'\U1F511' -emoji[lock]=$'\U1F512' -emoji[open_lock]=$'\U1F513' -emoji[bell]=$'\U1F514' -emoji[bell_with_cancellation_stroke]=$'\U1F515' -emoji[bookmark]=$'\U1F516' -emoji[link_symbol]=$'\U1F517' -emoji[radio_button]=$'\U1F518' -emoji[back_with_leftwards_arrow_above]=$'\U1F519' -emoji[end_with_leftwards_arrow_above]=$'\U1F51A' -emoji[on_with_exclamation_mark_with_left_right_arrow_above]=$'\U1F51B' -emoji[soon_with_rightwards_arrow_above]=$'\U1F51C' -emoji[top_with_upwards_arrow_above]=$'\U1F51D' -emoji[no_one_under_eighteen_symbol]=$'\U1F51E' -emoji[keycap_ten]=$'\U1F51F' -emoji[input_symbol_for_latin_capital_letters]=$'\U1F520' -emoji[input_symbol_for_latin_small_letters]=$'\U1F521' -emoji[input_symbol_for_numbers]=$'\U1F522' -emoji[input_symbol_for_symbols]=$'\U1F523' -emoji[input_symbol_for_latin_letters]=$'\U1F524' -emoji[fire]=$'\U1F525' -emoji[electric_torch]=$'\U1F526' -emoji[wrench]=$'\U1F527' +emoji[old_key]=$'\U1F5DD\UFE0F' +emoji[old_key_unqualified]=$'\U1F5DD' emoji[hammer]=$'\U1F528' -emoji[nut_and_bolt]=$'\U1F529' -emoji[hocho]=$'\U1F52A' +emoji[axe]=$'\U1FA93' +emoji[pick]=$'\U26CF\UFE0F' +emoji[pick_unqualified]=$'\U26CF' +emoji[hammer_and_pick]=$'\U2692\UFE0F' +emoji[hammer_and_pick_unqualified]=$'\U2692' +emoji[hammer_and_wrench]=$'\U1F6E0\UFE0F' +emoji[hammer_and_wrench_unqualified]=$'\U1F6E0' +emoji[dagger]=$'\U1F5E1\UFE0F' +emoji[dagger_unqualified]=$'\U1F5E1' +emoji[crossed_swords]=$'\U2694\UFE0F' +emoji[crossed_swords_unqualified]=$'\U2694' emoji[pistol]=$'\U1F52B' +emoji[gun]=$'\U1F52B' +emoji[bow_and_arrow]=$'\U1F3F9' +emoji[shield]=$'\U1F6E1\UFE0F' +emoji[shield_unqualified]=$'\U1F6E1' +emoji[wrench]=$'\U1F527' +emoji[nut_and_bolt]=$'\U1F529' +emoji[gear]=$'\U2699\UFE0F' +emoji[gear_unqualified]=$'\U2699' +emoji[clamp]=$'\U1F5DC\UFE0F' +emoji[clamp_unqualified]=$'\U1F5DC' +emoji[balance_scale]=$'\U2696\UFE0F' +emoji[balance_scale_unqualified]=$'\U2696' +emoji[probing_cane]=$'\U1F9AF' +emoji[link]=$'\U1F517' +emoji[chains]=$'\U26D3\UFE0F' +emoji[chains_unqualified]=$'\U26D3' +emoji[toolbox]=$'\U1F9F0' +emoji[magnet]=$'\U1F9F2' +emoji[alembic]=$'\U2697\UFE0F' +emoji[alembic_unqualified]=$'\U2697' +emoji[test_tube]=$'\U1F9EA' +emoji[petri_dish]=$'\U1F9EB' +emoji[dna]=$'\U1F9EC' emoji[microscope]=$'\U1F52C' emoji[telescope]=$'\U1F52D' -emoji[crystal_ball]=$'\U1F52E' -emoji[six_pointed_star_with_middle_dot]=$'\U1F52F' -emoji[japanese_symbol_for_beginner]=$'\U1F530' -emoji[trident_emblem]=$'\U1F531' -emoji[black_square_button]=$'\U1F532' -emoji[white_square_button]=$'\U1F533' -emoji[large_red_circle]=$'\U1F534' -emoji[large_blue_circle]=$'\U1F535' -emoji[large_orange_diamond]=$'\U1F536' -emoji[large_blue_diamond]=$'\U1F537' -emoji[small_orange_diamond]=$'\U1F538' -emoji[small_blue_diamond]=$'\U1F539' -emoji[up_pointing_red_triangle]=$'\U1F53A' -emoji[down_pointing_red_triangle]=$'\U1F53B' -emoji[up_pointing_small_red_triangle]=$'\U1F53C' -emoji[down_pointing_small_red_triangle]=$'\U1F53D' -emoji[om_symbol]=$'\U1F549' -emoji[dove_of_peace]=$'\U1F54A' -emoji[kaaba]=$'\U1F54B' -emoji[mosque]=$'\U1F54C' -emoji[synagogue]=$'\U1F54D' -emoji[menorah_with_nine_branches]=$'\U1F54E' -emoji[clock_face_one_oclock]=$'\U1F550' -emoji[clock_face_two_oclock]=$'\U1F551' -emoji[clock_face_three_oclock]=$'\U1F552' -emoji[clock_face_four_oclock]=$'\U1F553' -emoji[clock_face_five_oclock]=$'\U1F554' -emoji[clock_face_six_oclock]=$'\U1F555' -emoji[clock_face_seven_oclock]=$'\U1F556' -emoji[clock_face_eight_oclock]=$'\U1F557' -emoji[clock_face_nine_oclock]=$'\U1F558' -emoji[clock_face_ten_oclock]=$'\U1F559' -emoji[clock_face_eleven_oclock]=$'\U1F55A' -emoji[clock_face_twelve_oclock]=$'\U1F55B' -emoji[clock_face_one_thirty]=$'\U1F55C' -emoji[clock_face_two_thirty]=$'\U1F55D' -emoji[clock_face_three_thirty]=$'\U1F55E' -emoji[clock_face_four_thirty]=$'\U1F55F' -emoji[clock_face_five_thirty]=$'\U1F560' -emoji[clock_face_six_thirty]=$'\U1F561' -emoji[clock_face_seven_thirty]=$'\U1F562' -emoji[clock_face_eight_thirty]=$'\U1F563' -emoji[clock_face_nine_thirty]=$'\U1F564' -emoji[clock_face_ten_thirty]=$'\U1F565' -emoji[clock_face_eleven_thirty]=$'\U1F566' -emoji[clock_face_twelve_thirty]=$'\U1F567' -emoji[candle]=$'\U1F56F' -emoji[mantelpiece_clock]=$'\U1F570' -emoji[hole]=$'\U1F573' -emoji[man_in_business_suit_levitating]=$'\U1F574' -emoji[sleuth_or_spy]=$'\U1F575' -emoji[dark_sunglasses]=$'\U1F576' -emoji[spider]=$'\U1F577' -emoji[spider_web]=$'\U1F578' -emoji[joystick]=$'\U1F579' -emoji[linked_paperclips]=$'\U1F587' -emoji[lower_left_ballpoint_pen]=$'\U1F58A' -emoji[lower_left_fountain_pen]=$'\U1F58B' -emoji[lower_left_paintbrush]=$'\U1F58C' -emoji[lower_left_crayon]=$'\U1F58D' -emoji[raised_hand_with_fingers_splayed]=$'\U1F590' -emoji[reversed_hand_with_middle_finger_extended]=$'\U1F595' -emoji[raised_hand_with_part_between_middle_and_ring_fingers]=$'\U1F596' -emoji[desktop_computer]=$'\U1F5A5' -emoji[printer]=$'\U1F5A8' -emoji[three_button_mouse]=$'\U1F5B1' -emoji[trackball]=$'\U1F5B2' -emoji[frame_with_picture]=$'\U1F5BC' -emoji[card_index_dividers]=$'\U1F5C2' -emoji[card_file_box]=$'\U1F5C3' -emoji[file_cabinet]=$'\U1F5C4' -emoji[wastebasket]=$'\U1F5D1' -emoji[spiral_note_pad]=$'\U1F5D2' -emoji[spiral_calendar_pad]=$'\U1F5D3' -emoji[compression]=$'\U1F5DC' -emoji[old_key]=$'\U1F5DD' -emoji[rolled_up_newspaper]=$'\U1F5DE' -emoji[dagger_knife]=$'\U1F5E1' -emoji[speaking_head_in_silhouette]=$'\U1F5E3' -emoji[right_anger_bubble]=$'\U1F5EF' -emoji[ballot_box_with_ballot]=$'\U1F5F3' -emoji[world_map]=$'\U1F5FA' -emoji[mount_fuji]=$'\U1F5FB' -emoji[tokyo_tower]=$'\U1F5FC' -emoji[statue_of_liberty]=$'\U1F5FD' -emoji[silhouette_of_japan]=$'\U1F5FE' -emoji[moyai]=$'\U1F5FF' -emoji[grinning_face]=$'\U1F600' -emoji[grinning_face_with_smiling_eyes]=$'\U1F601' -emoji[face_with_tears_of_joy]=$'\U1F602' -emoji[smiling_face_with_open_mouth]=$'\U1F603' -emoji[smiling_face_with_open_mouth_and_smiling_eyes]=$'\U1F604' -emoji[smiling_face_with_open_mouth_and_cold_sweat]=$'\U1F605' -emoji[smiling_face_with_open_mouth_and_tightly_closed_eyes]=$'\U1F606' -emoji[smiling_face_with_halo]=$'\U1F607' -emoji[smiling_face_with_horns]=$'\U1F608' -emoji[winking_face]=$'\U1F609' -emoji[smiling_face_with_smiling_eyes]=$'\U1F60A' -emoji[face_savouring_delicious_food]=$'\U1F60B' -emoji[relieved_face]=$'\U1F60C' -emoji[smiling_face_with_heart_shaped_eyes]=$'\U1F60D' -emoji[smiling_face_with_sunglasses]=$'\U1F60E' -emoji[smirking_face]=$'\U1F60F' -emoji[neutral_face]=$'\U1F610' -emoji[expressionless_face]=$'\U1F611' -emoji[unamused_face]=$'\U1F612' -emoji[face_with_cold_sweat]=$'\U1F613' -emoji[pensive_face]=$'\U1F614' -emoji[confused_face]=$'\U1F615' -emoji[confounded_face]=$'\U1F616' -emoji[kissing_face]=$'\U1F617' -emoji[face_throwing_a_kiss]=$'\U1F618' -emoji[kissing_face_with_smiling_eyes]=$'\U1F619' -emoji[kissing_face_with_closed_eyes]=$'\U1F61A' -emoji[face_with_stuck_out_tongue]=$'\U1F61B' -emoji[face_with_stuck_out_tongue_and_winking_eye]=$'\U1F61C' -emoji[face_with_stuck_out_tongue_and_tightly_closed_eyes]=$'\U1F61D' -emoji[disappointed_face]=$'\U1F61E' -emoji[worried_face]=$'\U1F61F' -emoji[angry_face]=$'\U1F620' -emoji[pouting_face]=$'\U1F621' -emoji[crying_face]=$'\U1F622' -emoji[persevering_face]=$'\U1F623' -emoji[face_with_look_of_triumph]=$'\U1F624' -emoji[disappointed_but_relieved_face]=$'\U1F625' -emoji[frowning_face_with_open_mouth]=$'\U1F626' -emoji[anguished_face]=$'\U1F627' -emoji[fearful_face]=$'\U1F628' -emoji[weary_face]=$'\U1F629' -emoji[sleepy_face]=$'\U1F62A' -emoji[tired_face]=$'\U1F62B' -emoji[grimacing_face]=$'\U1F62C' -emoji[loudly_crying_face]=$'\U1F62D' -emoji[face_with_open_mouth]=$'\U1F62E' -emoji[hushed_face]=$'\U1F62F' -emoji[face_with_open_mouth_and_cold_sweat]=$'\U1F630' -emoji[face_screaming_in_fear]=$'\U1F631' -emoji[astonished_face]=$'\U1F632' -emoji[flushed_face]=$'\U1F633' -emoji[sleeping_face]=$'\U1F634' -emoji[dizzy_face]=$'\U1F635' -emoji[face_without_mouth]=$'\U1F636' -emoji[face_with_medical_mask]=$'\U1F637' -emoji[grinning_cat_face_with_smiling_eyes]=$'\U1F638' -emoji[cat_face_with_tears_of_joy]=$'\U1F639' -emoji[smiling_cat_face_with_open_mouth]=$'\U1F63A' -emoji[smiling_cat_face_with_heart_shaped_eyes]=$'\U1F63B' -emoji[cat_face_with_wry_smile]=$'\U1F63C' -emoji[kissing_cat_face_with_closed_eyes]=$'\U1F63D' -emoji[pouting_cat_face]=$'\U1F63E' -emoji[crying_cat_face]=$'\U1F63F' -emoji[weary_cat_face]=$'\U1F640' -emoji[slightly_frowning_face]=$'\U1F641' -emoji[slightly_smiling_face]=$'\U1F642' -emoji[upside_down_face]=$'\U1F643' -emoji[face_with_rolling_eyes]=$'\U1F644' -emoji[face_with_no_good_gesture]=$'\U1F645' -emoji[face_with_ok_gesture]=$'\U1F646' -emoji[person_bowing_deeply]=$'\U1F647' -emoji[see_no_evil_monkey]=$'\U1F648' -emoji[hear_no_evil_monkey]=$'\U1F649' -emoji[speak_no_evil_monkey]=$'\U1F64A' -emoji[happy_person_raising_one_hand]=$'\U1F64B' -emoji[person_raising_both_hands_in_celebration]=$'\U1F64C' -emoji[person_frowning]=$'\U1F64D' -emoji[person_with_pouting_face]=$'\U1F64E' -emoji[person_with_folded_hands]=$'\U1F64F' -emoji[rocket]=$'\U1F680' -emoji[helicopter]=$'\U1F681' -emoji[steam_locomotive]=$'\U1F682' -emoji[railway_car]=$'\U1F683' -emoji[high_speed_train]=$'\U1F684' -emoji[high_speed_train_with_bullet_nose]=$'\U1F685' -emoji[train]=$'\U1F686' -emoji[metro]=$'\U1F687' -emoji[light_rail]=$'\U1F688' -emoji[station]=$'\U1F689' -emoji[tram]=$'\U1F68A' -emoji[tram_car]=$'\U1F68B' -emoji[bus]=$'\U1F68C' -emoji[oncoming_bus]=$'\U1F68D' -emoji[trolleybus]=$'\U1F68E' -emoji[bus_stop]=$'\U1F68F' -emoji[minibus]=$'\U1F690' -emoji[ambulance]=$'\U1F691' -emoji[fire_engine]=$'\U1F692' -emoji[police_car]=$'\U1F693' -emoji[oncoming_police_car]=$'\U1F694' -emoji[taxi]=$'\U1F695' -emoji[oncoming_taxi]=$'\U1F696' -emoji[automobile]=$'\U1F697' -emoji[oncoming_automobile]=$'\U1F698' -emoji[recreational_vehicle]=$'\U1F699' -emoji[delivery_truck]=$'\U1F69A' -emoji[articulated_lorry]=$'\U1F69B' -emoji[tractor]=$'\U1F69C' -emoji[monorail]=$'\U1F69D' -emoji[mountain_railway]=$'\U1F69E' -emoji[suspension_railway]=$'\U1F69F' -emoji[mountain_cableway]=$'\U1F6A0' -emoji[aerial_tramway]=$'\U1F6A1' -emoji[ship]=$'\U1F6A2' -emoji[rowboat]=$'\U1F6A3' -emoji[speedboat]=$'\U1F6A4' -emoji[horizontal_traffic_light]=$'\U1F6A5' -emoji[vertical_traffic_light]=$'\U1F6A6' -emoji[construction_sign]=$'\U1F6A7' -emoji[police_cars_revolving_light]=$'\U1F6A8' -emoji[triangular_flag_on_post]=$'\U1F6A9' +emoji[satellite_antenna]=$'\U1F4E1' +emoji[syringe]=$'\U1F489' +emoji[drop_of_blood]=$'\U1FA78' +emoji[pill]=$'\U1F48A' +emoji[adhesive_bandage]=$'\U1FA79' +emoji[stethoscope]=$'\U1FA7A' emoji[door]=$'\U1F6AA' -emoji[no_entry_sign]=$'\U1F6AB' -emoji[smoking_symbol]=$'\U1F6AC' -emoji[no_smoking_symbol]=$'\U1F6AD' -emoji[put_litter_in_its_place_symbol]=$'\U1F6AE' -emoji[do_not_litter_symbol]=$'\U1F6AF' -emoji[potable_water_symbol]=$'\U1F6B0' -emoji[non_potable_water_symbol]=$'\U1F6B1' -emoji[bicycle]=$'\U1F6B2' -emoji[no_bicycles]=$'\U1F6B3' -emoji[bicyclist]=$'\U1F6B4' -emoji[mountain_bicyclist]=$'\U1F6B5' -emoji[pedestrian]=$'\U1F6B6' -emoji[no_pedestrians]=$'\U1F6B7' -emoji[children_crossing]=$'\U1F6B8' -emoji[mens_symbol]=$'\U1F6B9' -emoji[womens_symbol]=$'\U1F6BA' -emoji[restroom]=$'\U1F6BB' -emoji[baby_symbol]=$'\U1F6BC' +emoji[bed]=$'\U1F6CF\UFE0F' +emoji[bed_unqualified]=$'\U1F6CF' +emoji[couch_and_lamp]=$'\U1F6CB\UFE0F' +emoji[couch_and_lamp_unqualified]=$'\U1F6CB' +emoji[chair]=$'\U1FA91' emoji[toilet]=$'\U1F6BD' -emoji[water_closet]=$'\U1F6BE' emoji[shower]=$'\U1F6BF' -emoji[bath]=$'\U1F6C0' emoji[bathtub]=$'\U1F6C1' +emoji[razor]=$'\U1FA92' +emoji[lotion_bottle]=$'\U1F9F4' +emoji[safety_pin]=$'\U1F9F7' +emoji[broom]=$'\U1F9F9' +emoji[basket]=$'\U1F9FA' +emoji[roll_of_paper]=$'\U1F9FB' +emoji[soap]=$'\U1F9FC' +emoji[sponge]=$'\U1F9FD' +emoji[fire_extinguisher]=$'\U1F9EF' +emoji[shopping_cart]=$'\U1F6D2' +emoji[cigarette]=$'\U1F6AC' +emoji[smoking]=$'\U1F6AC' +emoji[coffin]=$'\U26B0\UFE0F' +emoji[coffin_unqualified]=$'\U26B0' +emoji[funeral_urn]=$'\U26B1\UFE0F' +emoji[funeral_urn_unqualified]=$'\U26B1' +emoji[moai]=$'\U1F5FF' +emoji[moyai]=$'\U1F5FF' +emoji[ATM_sign]=$'\U1F3E7' +emoji[atm]=$'\U1F3E7' +emoji[litter_in_bin_sign]=$'\U1F6AE' +emoji[put_litter_in_its_place]=$'\U1F6AE' +emoji[potable_water]=$'\U1F6B0' +emoji[wheelchair_symbol]=$'\U267F' +emoji[wheelchair]=$'\U267F' +emoji[men_s_room]=$'\U1F6B9' +emoji[mens]=$'\U1F6B9' +emoji[women_s_room]=$'\U1F6BA' +emoji[womens]=$'\U1F6BA' +emoji[restroom]=$'\U1F6BB' +emoji[baby_symbol]=$'\U1F6BC' +emoji[water_closet]=$'\U1F6BE' +emoji[wc]=$'\U1F6BE' emoji[passport_control]=$'\U1F6C2' emoji[customs]=$'\U1F6C3' emoji[baggage_claim]=$'\U1F6C4' emoji[left_luggage]=$'\U1F6C5' -emoji[couch_and_lamp]=$'\U1F6CB' -emoji[sleeping_accommodation]=$'\U1F6CC' -emoji[shopping_bags]=$'\U1F6CD' -emoji[bellhop_bell]=$'\U1F6CE' -emoji[bed]=$'\U1F6CF' +emoji[warning]=$'\U26A0\UFE0F' +emoji[warning_unqualified]=$'\U26A0' +emoji[children_crossing]=$'\U1F6B8' +emoji[no_entry]=$'\U26D4' +emoji[prohibited]=$'\U1F6AB' +emoji[no_entry_sign]=$'\U1F6AB' +emoji[no_bicycles]=$'\U1F6B3' +emoji[no_smoking]=$'\U1F6AD' +emoji[no_littering]=$'\U1F6AF' +emoji[do_not_litter]=$'\U1F6AF' +emoji[non_potable_water]=$'\U1F6B1' +emoji[non-potable_water]=$'\U1F6B1' +emoji[no_pedestrians]=$'\U1F6B7' +emoji[no_mobile_phones]=$'\U1F4F5' +emoji[no_one_under_eighteen]=$'\U1F51E' +emoji[underage]=$'\U1F51E' +emoji[radioactive]=$'\U2622\UFE0F' +emoji[radioactive_unqualified]=$'\U2622' +emoji[biohazard]=$'\U2623\UFE0F' +emoji[biohazard_unqualified]=$'\U2623' +emoji[up_arrow]=$'\U2B06\UFE0F' +emoji[arrow_up]=$'\U2B06\UFE0F' +emoji[up_arrow_unqualified]=$'\U2B06' +emoji[up_right_arrow]=$'\U2197\UFE0F' +emoji[arrow_upper_right]=$'\U2197\UFE0F' +emoji[up_right_arrow_unqualified]=$'\U2197' +emoji[up_right_arrow_unqualified_1]=$'\U27A1\UFE0F' +emoji[arrow_right]=$'\U27A1\UFE0F' +emoji[up_right_arrow_unqualified_2]=$'\U27A1' +emoji[down_right_arrow]=$'\U2198\UFE0F' +emoji[arrow_lower_right]=$'\U2198\UFE0F' +emoji[down_right_arrow_unqualified]=$'\U2198' +emoji[down_arrow]=$'\U2B07\UFE0F' +emoji[arrow_down]=$'\U2B07\UFE0F' +emoji[down_arrow_unqualified]=$'\U2B07' +emoji[down_left_arrow]=$'\U2199\UFE0F' +emoji[arrow_lower_left]=$'\U2199\UFE0F' +emoji[down_left_arrow_unqualified]=$'\U2199' +emoji[down_left_arrow_unqualified_1]=$'\U2B05\UFE0F' +emoji[arrow_left]=$'\U2B05\UFE0F' +emoji[down_left_arrow_unqualified_2]=$'\U2B05' +emoji[up_left_arrow]=$'\U2196\UFE0F' +emoji[arrow_upper_left]=$'\U2196\UFE0F' +emoji[up_left_arrow_unqualified]=$'\U2196' +emoji[up_down_arrow]=$'\U2195\UFE0F' +emoji[arrow_up_down]=$'\U2195\UFE0F' +emoji[up_down_arrow_unqualified]=$'\U2195' +emoji[left_right_arrow]=$'\U2194\UFE0F' +emoji[left_right_arrow_unqualified]=$'\U2194' +emoji[right_arrow_curving_left]=$'\U21A9\UFE0F' +emoji[leftwards_arrow_with_hook]=$'\U21A9\UFE0F' +emoji[right_arrow_curving_left_unqualified]=$'\U21A9' +emoji[left_arrow_curving_right]=$'\U21AA\UFE0F' +emoji[arrow_right_hook]=$'\U21AA\UFE0F' +emoji[left_arrow_curving_right_unqualified]=$'\U21AA' +emoji[right_arrow_curving_up]=$'\U2934\UFE0F' +emoji[arrow_heading_up]=$'\U2934\UFE0F' +emoji[right_arrow_curving_up_unqualified]=$'\U2934' +emoji[right_arrow_curving_down]=$'\U2935\UFE0F' +emoji[arrow_heading_down]=$'\U2935\UFE0F' +emoji[right_arrow_curving_down_unqualified]=$'\U2935' +emoji[clockwise_vertical_arrows]=$'\U1F503' +emoji[arrows_clockwise]=$'\U1F503' +emoji[counterclockwise_arrows_button]=$'\U1F504' +emoji[arrows_counterclockwise]=$'\U1F504' +emoji[BACK_arrow]=$'\U1F519' +emoji[back]=$'\U1F519' +emoji[END_arrow]=$'\U1F51A' +emoji[end]=$'\U1F51A' +emoji[ON_arrow]=$'\U1F51B' +emoji[on]=$'\U1F51B' +emoji[SOON_arrow]=$'\U1F51C' +emoji[soon]=$'\U1F51C' +emoji[TOP_arrow]=$'\U1F51D' +emoji[top]=$'\U1F51D' emoji[place_of_worship]=$'\U1F6D0' -emoji[hammer_and_wrench]=$'\U1F6E0' -emoji[shield]=$'\U1F6E1' -emoji[oil_drum]=$'\U1F6E2' -emoji[motorway]=$'\U1F6E3' -emoji[railway_track]=$'\U1F6E4' -emoji[motor_boat]=$'\U1F6E5' -emoji[small_airplane]=$'\U1F6E9' -emoji[airplane_departure]=$'\U1F6EB' -emoji[airplane_arriving]=$'\U1F6EC' -emoji[satellite]=$'\U1F6F0' -emoji[passenger_ship]=$'\U1F6F3' -emoji[zipper_mouth_face]=$'\U1F910' -emoji[money_mouth_face]=$'\U1F911' -emoji[face_with_thermometer]=$'\U1F912' -emoji[nerd_face]=$'\U1F913' -emoji[thinking_face]=$'\U1F914' -emoji[face_with_head_bandage]=$'\U1F915' -emoji[robot_face]=$'\U1F916' -emoji[hugging_face]=$'\U1F917' -emoji[sign_of_the_horns]=$'\U1F918' -emoji[crab]=$'\U1F980' -emoji[lion_face]=$'\U1F981' -emoji[scorpion]=$'\U1F982' -emoji[turkey]=$'\U1F983' -emoji[unicorn_face]=$'\U1F984' -emoji[cheese_wedge]=$'\U1F9C0' -emoji[keycap_number_sign]=$'\U0023\U20E3' -emoji[keycap_asterisk]=$'\U002A\U20E3' -emoji[keycap_digit_zero]=$'\U0030\U20E3' -emoji[keycap_digit_one]=$'\U0031\U20E3' -emoji[keycap_digit_two]=$'\U0032\U20E3' -emoji[keycap_digit_three]=$'\U0033\U20E3' -emoji[keycap_digit_four]=$'\U0034\U20E3' -emoji[keycap_digit_five]=$'\U0035\U20E3' -emoji[keycap_digit_six]=$'\U0036\U20E3' -emoji[keycap_digit_seven]=$'\U0037\U20E3' -emoji[keycap_digit_eight]=$'\U0038\U20E3' -emoji[keycap_digit_nine]=$'\U0039\U20E3' +emoji[atom_symbol]=$'\U269B\UFE0F' +emoji[atom_symbol_unqualified]=$'\U269B' +emoji[atom_symbol_unqualified_1]=$'\U1F549\UFE0F' +emoji[om_unqualified]=$'\U1F549' +emoji[om]=$'\U1F549' +emoji[star_of_David]=$'\U2721\UFE0F' +emoji[star_of_david]=$'\U2721\UFE0F' +emoji[star_of_David_unqualified]=$'\U2721' +emoji[wheel_of_dharma]=$'\U2638\UFE0F' +emoji[wheel_of_dharma_unqualified]=$'\U2638' +emoji[yin_yang]=$'\U262F\UFE0F' +emoji[yin_yang_unqualified]=$'\U262F' +emoji[latin_cross]=$'\U271D\UFE0F' +emoji[latin_cross_unqualified]=$'\U271D' +emoji[orthodox_cross]=$'\U2626\UFE0F' +emoji[orthodox_cross_unqualified]=$'\U2626' +emoji[star_and_crescent]=$'\U262A\UFE0F' +emoji[star_and_crescent_unqualified]=$'\U262A' +emoji[peace_symbol]=$'\U262E\UFE0F' +emoji[peace_symbol_unqualified]=$'\U262E' +emoji[menorah]=$'\U1F54E' +emoji[dotted_six_pointed_star]=$'\U1F52F' +emoji[six_pointed_star]=$'\U1F52F' +emoji[Aries]=$'\U2648' +emoji[aries]=$'\U2648' +emoji[Taurus]=$'\U2649' +emoji[taurus]=$'\U2649' +emoji[Gemini]=$'\U264A' +emoji[gemini]=$'\U264A' +emoji[Cancer]=$'\U264B' +emoji[cancer]=$'\U264B' +emoji[Leo]=$'\U264C' +emoji[leo]=$'\U264C' +emoji[Virgo]=$'\U264D' +emoji[virgo]=$'\U264D' +emoji[Libra]=$'\U264E' +emoji[libra]=$'\U264E' +emoji[Scorpio]=$'\U264F' +emoji[scorpius]=$'\U264F' +emoji[Sagittarius]=$'\U2650' +emoji[sagittarius]=$'\U2650' +emoji[Capricorn]=$'\U2651' +emoji[capricorn]=$'\U2651' +emoji[Aquarius]=$'\U2652' +emoji[aquarius]=$'\U2652' +emoji[Pisces]=$'\U2653' +emoji[pisces]=$'\U2653' +emoji[Ophiuchus]=$'\U26CE' +emoji[ophiuchus]=$'\U26CE' +emoji[shuffle_tracks_button]=$'\U1F500' +emoji[twisted_rightwards_arrows]=$'\U1F500' +emoji[repeat_button]=$'\U1F501' +emoji[repeat]=$'\U1F501' +emoji[repeat_single_button]=$'\U1F502' +emoji[repeat_one]=$'\U1F502' +emoji[play_button]=$'\U25B6\UFE0F' +emoji[arrow_forward]=$'\U25B6\UFE0F' +emoji[play_button_unqualified]=$'\U25B6' +emoji[fast_forward_button]=$'\U23E9' +emoji[fast_forward]=$'\U23E9' +emoji[next_track_button]=$'\U23ED\UFE0F' +emoji[next_track_button_unqualified]=$'\U23ED' +emoji[play_or_pause_button]=$'\U23EF\UFE0F' +emoji[play_or_pause_button_unqualified]=$'\U23EF' +emoji[reverse_button]=$'\U25C0\UFE0F' +emoji[arrow_backward]=$'\U25C0\UFE0F' +emoji[reverse_button_unqualified]=$'\U25C0' +emoji[fast_reverse_button]=$'\U23EA' +emoji[rewind]=$'\U23EA' +emoji[last_track_button]=$'\U23EE\UFE0F' +emoji[last_track_button_unqualified]=$'\U23EE' +emoji[previous_track_button]=$'\U23EE' +emoji[upwards_button]=$'\U1F53C' +emoji[arrow_up_small]=$'\U1F53C' +emoji[fast_up_button]=$'\U23EB' +emoji[arrow_double_up]=$'\U23EB' +emoji[downwards_button]=$'\U1F53D' +emoji[arrow_down_small]=$'\U1F53D' +emoji[fast_down_button]=$'\U23EC' +emoji[arrow_double_down]=$'\U23EC' +emoji[pause_button]=$'\U23F8\UFE0F' +emoji[pause_button_unqualified]=$'\U23F8' +emoji[stop_button]=$'\U23F9\UFE0F' +emoji[stop_button_unqualified]=$'\U23F9' +emoji[record_button]=$'\U23FA\UFE0F' +emoji[record_button_unqualified]=$'\U23FA' +emoji[eject_button]=$'\U23CF\UFE0F' +emoji[eject_button_unqualified]=$'\U23CF' +emoji[cinema]=$'\U1F3A6' +emoji[dim_button]=$'\U1F505' +emoji[low_brightness]=$'\U1F505' +emoji[bright_button]=$'\U1F506' +emoji[high_brightness]=$'\U1F506' +emoji[antenna_bars]=$'\U1F4F6' +emoji[signal_strength]=$'\U1F4F6' +emoji[vibration_mode]=$'\U1F4F3' +emoji[mobile_phone_off]=$'\U1F4F4' +emoji[female_sign]=$'\U2640\UFE0F' +emoji[female_sign_unqualified]=$'\U2640' +emoji[female_sign_unqualified_1]=$'\U2642\UFE0F' +emoji[male_sign]=$'\U2642\UFE0F' +emoji[female_sign_unqualified_2]=$'\U2642' +emoji[medical_symbol]=$'\U2695\UFE0F' +emoji[medical_symbol_unqualified]=$'\U2695' +emoji[infinity]=$'\U267E\UFE0F' +emoji[infinity_unqualified]=$'\U267E' +emoji[recycling_symbol]=$'\U267B\UFE0F' +emoji[recycle]=$'\U267B\UFE0F' +emoji[recycling_symbol_unqualified]=$'\U267B' +emoji[fleur_de_lis]=$'\U269C\UFE0F' +emoji[fleur_de_lis_unqualified]=$'\U269C' +emoji[trident_emblem]=$'\U1F531' +emoji[trident]=$'\U1F531' +emoji[name_badge]=$'\U1F4DB' +emoji[Japanese_symbol_for_beginner]=$'\U1F530' +emoji[beginner]=$'\U1F530' +emoji[hollow_red_circle]=$'\U2B55' +emoji[o]=$'\U2B55' +emoji[check_mark_button]=$'\U2705' +emoji[white_check_mark]=$'\U2705' +emoji[check_box_with_check]=$'\U2611\UFE0F' +emoji[ballot_box_with_check]=$'\U2611\UFE0F' +emoji[check_box_with_check_unqualified]=$'\U2611' +emoji[check_mark]=$'\U2714\UFE0F' +emoji[heavy_check_mark]=$'\U2714\UFE0F' +emoji[check_mark_unqualified]=$'\U2714' +emoji[multiplication_sign]=$'\U2716\UFE0F' +emoji[heavy_multiplication_x]=$'\U2716\UFE0F' +emoji[multiplication_sign_unqualified]=$'\U2716' +emoji[cross_mark]=$'\U274C' +emoji[x]=$'\U274C' +emoji[cross_mark_button]=$'\U274E' +emoji[negative_squared_cross_mark]=$'\U274E' +emoji[plus_sign]=$'\U2795' +emoji[heavy_plus_sign]=$'\U2795' +emoji[minus_sign]=$'\U2796' +emoji[heavy_minus_sign]=$'\U2796' +emoji[division_sign]=$'\U2797' +emoji[heavy_division_sign]=$'\U2797' +emoji[curly_loop]=$'\U27B0' +emoji[double_curly_loop]=$'\U27BF' +emoji[loop]=$'\U27BF' +emoji[part_alternation_mark]=$'\U303D\UFE0F' +emoji[part_alternation_mark_unqualified]=$'\U303D' +emoji[eight_spoked_asterisk]=$'\U2733\UFE0F' +emoji[eight_spoked_asterisk_unqualified]=$'\U2733' +emoji[eight_pointed_star]=$'\U2734\UFE0F' +emoji[eight_pointed_black_star]=$'\U2734\UFE0F' +emoji[eight_pointed_star_unqualified]=$'\U2734' +emoji[sparkle]=$'\U2747\UFE0F' +emoji[sparkle_unqualified]=$'\U2747' +emoji[double_exclamation_mark]=$'\U203C\UFE0F' +emoji[bangbang]=$'\U203C\UFE0F' +emoji[double_exclamation_mark_unqualified]=$'\U203C' +emoji[exclamation_question_mark]=$'\U2049\UFE0F' +emoji[interrobang]=$'\U2049\UFE0F' +emoji[exclamation_question_mark_unqualified]=$'\U2049' +emoji[exclamation_question_mark_unqualified_1]=$'\U2753' +emoji[question]=$'\U2753' +emoji[white_question_mark]=$'\U2754' +emoji[grey_question]=$'\U2754' +emoji[white_exclamation_mark]=$'\U2755' +emoji[grey_exclamation]=$'\U2755' +emoji[white_exclamation_mark_1]=$'\U2757' +emoji[exclamation]=$'\U2757' +emoji[heavy_exclamation_mark]=$'\U2757' +emoji[wavy_dash]=$'\U3030\UFE0F' +emoji[wavy_dash_unqualified]=$'\U3030' +emoji[copyright]=$'\U00A9\UFE0F' +emoji[copyright_unqualified]=$'\U00A9' +emoji[registered]=$'\U00AE\UFE0F' +emoji[registered_unqualified]=$'\U00AE' +emoji[trade_mark]=$'\U2122\UFE0F' +emoji[tm]=$'\U2122\UFE0F' +emoji[trade_mark_unqualified]=$'\U2122' +emoji[keycap_#]=$'\U0023\UFE0F\U20E3' +emoji[hash]=$'\U0023\UFE0F\U20E3' +emoji[keycap_#_unqualified]=$'\U0023\U20E3' +emoji[keycap_*]=$'\U002A\UFE0F\U20E3' +emoji[asterisk]=$'\U002A\UFE0F\U20E3' +emoji[keycap_*_unqualified]=$'\U002A\U20E3' +emoji[keycap_0]=$'\U0030\UFE0F\U20E3' +emoji[zero]=$'\U0030\UFE0F\U20E3' +emoji[keycap_0_unqualified]=$'\U0030\U20E3' +emoji[keycap_1]=$'\U0031\UFE0F\U20E3' +emoji[one]=$'\U0031\UFE0F\U20E3' +emoji[keycap_1_unqualified]=$'\U0031\U20E3' +emoji[keycap_2]=$'\U0032\UFE0F\U20E3' +emoji[two]=$'\U0032\UFE0F\U20E3' +emoji[keycap_2_unqualified]=$'\U0032\U20E3' +emoji[keycap_3]=$'\U0033\UFE0F\U20E3' +emoji[three]=$'\U0033\UFE0F\U20E3' +emoji[keycap_3_unqualified]=$'\U0033\U20E3' +emoji[keycap_4]=$'\U0034\UFE0F\U20E3' +emoji[four]=$'\U0034\UFE0F\U20E3' +emoji[keycap_4_unqualified]=$'\U0034\U20E3' +emoji[keycap_5]=$'\U0035\UFE0F\U20E3' +emoji[five]=$'\U0035\UFE0F\U20E3' +emoji[keycap_5_unqualified]=$'\U0035\U20E3' +emoji[keycap_6]=$'\U0036\UFE0F\U20E3' +emoji[six]=$'\U0036\UFE0F\U20E3' +emoji[keycap_6_unqualified]=$'\U0036\U20E3' +emoji[keycap_7]=$'\U0037\UFE0F\U20E3' +emoji[seven]=$'\U0037\UFE0F\U20E3' +emoji[keycap_7_unqualified]=$'\U0037\U20E3' +emoji[keycap_8]=$'\U0038\UFE0F\U20E3' +emoji[eight]=$'\U0038\UFE0F\U20E3' +emoji[keycap_8_unqualified]=$'\U0038\U20E3' +emoji[keycap_9]=$'\U0039\UFE0F\U20E3' +emoji[nine]=$'\U0039\UFE0F\U20E3' +emoji[keycap_9_unqualified]=$'\U0039\U20E3' +emoji[keycap_10]=$'\U1F51F' +emoji[keycap_ten]=$'\U1F51F' +emoji[input_latin_uppercase]=$'\U1F520' +emoji[capital_abcd]=$'\U1F520' +emoji[input_latin_lowercase]=$'\U1F521' +emoji[abcd]=$'\U1F521' +emoji[input_numbers]=$'\U1F522' +emoji[1234]=$'\U1F522' +emoji[input_symbols]=$'\U1F523' +emoji[symbols]=$'\U1F523' +emoji[input_latin_letters]=$'\U1F524' +emoji[abc]=$'\U1F524' +emoji[A_button_blood_type_]=$'\U1F170\UFE0F' +emoji[a]=$'\U1F170\UFE0F' +emoji[A_button_blood_type__unqualified]=$'\U1F170' +emoji[AB_button_blood_type_]=$'\U1F18E' +emoji[ab]=$'\U1F18E' +emoji[AB_button_blood_type__1]=$'\U1F171\UFE0F' +emoji[b]=$'\U1F171\UFE0F' +emoji[B_button_blood_type__unqualified]=$'\U1F171' +emoji[CL_button]=$'\U1F191' +emoji[cl]=$'\U1F191' +emoji[COOL_button]=$'\U1F192' +emoji[cool]=$'\U1F192' +emoji[FREE_button]=$'\U1F193' +emoji[free]=$'\U1F193' +emoji[information]=$'\U2139\UFE0F' +emoji[information_source]=$'\U2139\UFE0F' +emoji[information_unqualified]=$'\U2139' +emoji[ID_button]=$'\U1F194' +emoji[id]=$'\U1F194' +emoji[circled_M]=$'\U24C2\UFE0F' +emoji[m]=$'\U24C2\UFE0F' +emoji[circled_M_unqualified]=$'\U24C2' +emoji[NEW_button]=$'\U1F195' +emoji[new]=$'\U1F195' +emoji[NG_button]=$'\U1F196' +emoji[ng]=$'\U1F196' +emoji[O_button_blood_type_]=$'\U1F17E\UFE0F' +emoji[o2]=$'\U1F17E\UFE0F' +emoji[O_button_blood_type__unqualified]=$'\U1F17E' +emoji[OK_button]=$'\U1F197' +emoji[ok]=$'\U1F197' +emoji[P_button]=$'\U1F17F\UFE0F' +emoji[parking]=$'\U1F17F\UFE0F' +emoji[P_button_unqualified]=$'\U1F17F' +emoji[SOS_button]=$'\U1F198' +emoji[sos]=$'\U1F198' +emoji[UP_button]=$'\U1F199' +emoji[up]=$'\U1F199' +emoji[VS_button]=$'\U1F19A' +emoji[vs]=$'\U1F19A' +emoji[Japanese_here_button]=$'\U1F201' +emoji[koko]=$'\U1F201' +emoji[Japanese_service_charge_button]=$'\U1F202\UFE0F' +emoji[sa]=$'\U1F202\UFE0F' +emoji[Japanese_service_charge_button_unqualified]=$'\U1F202' +emoji[Japanese_monthly_amount_button]=$'\U1F237\UFE0F' +emoji[u6708]=$'\U1F237\UFE0F' +emoji[Japanese_monthly_amount_button_unqualified]=$'\U1F237' +emoji[Japanese_not_free_of_charge_button]=$'\U1F236' +emoji[u6709]=$'\U1F236' +emoji[Japanese_reserved_button]=$'\U1F22F' +emoji[u6307]=$'\U1F22F' +emoji[Japanese_bargain_button]=$'\U1F250' +emoji[ideograph_advantage]=$'\U1F250' +emoji[Japanese_discount_button]=$'\U1F239' +emoji[u5272]=$'\U1F239' +emoji[Japanese_free_of_charge_button]=$'\U1F21A' +emoji[u7121]=$'\U1F21A' +emoji[Japanese_prohibited_button]=$'\U1F232' +emoji[u7981]=$'\U1F232' +emoji[Japanese_acceptable_button]=$'\U1F251' +emoji[accept]=$'\U1F251' +emoji[Japanese_application_button]=$'\U1F238' +emoji[u7533]=$'\U1F238' +emoji[Japanese_passing_grade_button]=$'\U1F234' +emoji[u5408]=$'\U1F234' +emoji[Japanese_vacancy_button]=$'\U1F233' +emoji[u7a7a]=$'\U1F233' +emoji[Japanese_congratulations_button]=$'\U3297\UFE0F' +emoji[congratulations]=$'\U3297\UFE0F' +emoji[Japanese_congratulations_button_unqualified]=$'\U3297' +emoji[Japanese_secret_button]=$'\U3299\UFE0F' +emoji[secret]=$'\U3299\UFE0F' +emoji[Japanese_secret_button_unqualified]=$'\U3299' +emoji[Japanese_open_for_business_button]=$'\U1F23A' +emoji[u55b6]=$'\U1F23A' +emoji[Japanese_no_vacancy_button]=$'\U1F235' +emoji[u6e80]=$'\U1F235' +emoji[red_circle]=$'\U1F534' +emoji[orange_circle]=$'\U1F7E0' +emoji[yellow_circle]=$'\U1F7E1' +emoji[green_circle]=$'\U1F7E2' +emoji[blue_circle]=$'\U1F535' +emoji[large_blue_circle]=$'\U1F535' +emoji[purple_circle]=$'\U1F7E3' +emoji[brown_circle]=$'\U1F7E4' +emoji[black_circle]=$'\U26AB' +emoji[white_circle]=$'\U26AA' +emoji[red_square]=$'\U1F7E5' +emoji[orange_square]=$'\U1F7E7' +emoji[yellow_square]=$'\U1F7E8' +emoji[green_square]=$'\U1F7E9' +emoji[blue_square]=$'\U1F7E6' +emoji[purple_square]=$'\U1F7EA' +emoji[brown_square]=$'\U1F7EB' +emoji[black_large_square]=$'\U2B1B' +emoji[white_large_square]=$'\U2B1C' +emoji[black_medium_square]=$'\U25FC\UFE0F' +emoji[black_medium_square_unqualified]=$'\U25FC' +emoji[white_medium_square]=$'\U25FB\UFE0F' +emoji[white_medium_square_unqualified]=$'\U25FB' +emoji[black_medium_small_square]=$'\U25FE' +emoji[white_medium_small_square]=$'\U25FD' +emoji[black_small_square]=$'\U25AA\UFE0F' +emoji[black_small_square_unqualified]=$'\U25AA' +emoji[white_small_square]=$'\U25AB\UFE0F' +emoji[white_small_square_unqualified]=$'\U25AB' +emoji[large_orange_diamond]=$'\U1F536' +emoji[large_blue_diamond]=$'\U1F537' +emoji[small_orange_diamond]=$'\U1F538' +emoji[small_blue_diamond]=$'\U1F539' +emoji[red_triangle_pointed_up]=$'\U1F53A' +emoji[small_red_triangle]=$'\U1F53A' +emoji[red_triangle_pointed_down]=$'\U1F53B' +emoji[small_red_triangle_down]=$'\U1F53B' +emoji[diamond_with_a_dot]=$'\U1F4A0' +emoji[diamond_shape_with_a_dot_inside]=$'\U1F4A0' +emoji[radio_button]=$'\U1F518' +emoji[white_square_button]=$'\U1F533' +emoji[black_square_button]=$'\U1F532' +emoji_flags[chequered_flag]=$'\U1F3C1' +emoji_flags[checkered_flag]=$'\U1F3C1' +emoji_flags[triangular_flag]=$'\U1F6A9' +emoji_flags[triangular_flag_on_post]=$'\U1F6A9' +emoji_flags[crossed_flags]=$'\U1F38C' +emoji_flags[black_flag]=$'\U1F3F4' +emoji_flags[white_flag]=$'\U1F3F3\UFE0F' +emoji_flags[white_flag_unqualified]=$'\U1F3F3' +emoji_flags[rainbow_flag]=$'\U1F3F3\UFE0F\U200D\U1F308' +emoji_flags[rainbow_flag_unqualified]=$'\U1F3F3\U200D\U1F308' +emoji_flags[pirate_flag]=$'\U1F3F4\U200D\U2620\UFE0F' +emoji_flags[pirate_flag_minimally]=$'\U1F3F4\U200D\U2620' emoji_flags[Ascension_Island]=$'\U1F1E6\U1F1E8' +emoji_flags[ascension_island]=$'\U1F1E6\U1F1E8' emoji_flags[Andorra]=$'\U1F1E6\U1F1E9' +emoji_flags[AD]=$'\U1F1E6\U1F1E9' +emoji_flags[AND]=$'\U1F1E6\U1F1E9' +emoji_flags[andorra]=$'\U1F1E6\U1F1E9' emoji_flags[United_Arab_Emirates]=$'\U1F1E6\U1F1EA' +emoji_flags[AE]=$'\U1F1E6\U1F1EA' +emoji_flags[ARE]=$'\U1F1E6\U1F1EA' +emoji_flags[united_arab_emirates]=$'\U1F1E6\U1F1EA' emoji_flags[Afghanistan]=$'\U1F1E6\U1F1EB' -emoji_flags[Antigua___Barbuda]=$'\U1F1E6\U1F1EC' +emoji_flags[AF]=$'\U1F1E6\U1F1EB' +emoji_flags[AFG]=$'\U1F1E6\U1F1EB' +emoji_flags[afghanistan]=$'\U1F1E6\U1F1EB' +emoji_flags[Antigua_and_Barbuda]=$'\U1F1E6\U1F1EC' +emoji_flags[AG]=$'\U1F1E6\U1F1EC' +emoji_flags[ATG]=$'\U1F1E6\U1F1EC' +emoji_flags[antigua_barbuda]=$'\U1F1E6\U1F1EC' emoji_flags[Anguilla]=$'\U1F1E6\U1F1EE' +emoji_flags[AI]=$'\U1F1E6\U1F1EE' +emoji_flags[AIA]=$'\U1F1E6\U1F1EE' +emoji_flags[anguilla]=$'\U1F1E6\U1F1EE' emoji_flags[Albania]=$'\U1F1E6\U1F1F1' +emoji_flags[AL]=$'\U1F1E6\U1F1F1' +emoji_flags[ALB]=$'\U1F1E6\U1F1F1' +emoji_flags[albania]=$'\U1F1E6\U1F1F1' emoji_flags[Armenia]=$'\U1F1E6\U1F1F2' +emoji_flags[AM]=$'\U1F1E6\U1F1F2' +emoji_flags[ARM]=$'\U1F1E6\U1F1F2' +emoji_flags[armenia]=$'\U1F1E6\U1F1F2' emoji_flags[Angola]=$'\U1F1E6\U1F1F4' +emoji_flags[AO]=$'\U1F1E6\U1F1F4' +emoji_flags[AGO]=$'\U1F1E6\U1F1F4' +emoji_flags[angola]=$'\U1F1E6\U1F1F4' emoji_flags[Antarctica]=$'\U1F1E6\U1F1F6' +emoji_flags[AQ]=$'\U1F1E6\U1F1F6' +emoji_flags[ATA]=$'\U1F1E6\U1F1F6' +emoji_flags[antarctica]=$'\U1F1E6\U1F1F6' emoji_flags[Argentina]=$'\U1F1E6\U1F1F7' +emoji_flags[AR]=$'\U1F1E6\U1F1F7' +emoji_flags[ARG]=$'\U1F1E6\U1F1F7' +emoji_flags[argentina]=$'\U1F1E6\U1F1F7' emoji_flags[American_Samoa]=$'\U1F1E6\U1F1F8' +emoji_flags[AS]=$'\U1F1E6\U1F1F8' +emoji_flags[ASM]=$'\U1F1E6\U1F1F8' +emoji_flags[american_samoa]=$'\U1F1E6\U1F1F8' emoji_flags[Austria]=$'\U1F1E6\U1F1F9' +emoji_flags[AT]=$'\U1F1E6\U1F1F9' +emoji_flags[AUT]=$'\U1F1E6\U1F1F9' +emoji_flags[austria]=$'\U1F1E6\U1F1F9' emoji_flags[Australia]=$'\U1F1E6\U1F1FA' +emoji_flags[AU]=$'\U1F1E6\U1F1FA' +emoji_flags[AUS]=$'\U1F1E6\U1F1FA' +emoji_flags[australia]=$'\U1F1E6\U1F1FA' emoji_flags[Aruba]=$'\U1F1E6\U1F1FC' -emoji_flags[_land_Islands]=$'\U1F1E6\U1F1FD' +emoji_flags[AW]=$'\U1F1E6\U1F1FC' +emoji_flags[ABW]=$'\U1F1E6\U1F1FC' +emoji_flags[aruba]=$'\U1F1E6\U1F1FC' +emoji_flags[Åland_Islands]=$'\U1F1E6\U1F1FD' +emoji_flags[AX]=$'\U1F1E6\U1F1FD' +emoji_flags[ALA]=$'\U1F1E6\U1F1FD' +emoji_flags[aland_islands]=$'\U1F1E6\U1F1FD' emoji_flags[Azerbaijan]=$'\U1F1E6\U1F1FF' -emoji_flags[Bosnia___Herzegovina]=$'\U1F1E7\U1F1E6' +emoji_flags[AZ]=$'\U1F1E6\U1F1FF' +emoji_flags[AZE]=$'\U1F1E6\U1F1FF' +emoji_flags[azerbaijan]=$'\U1F1E6\U1F1FF' +emoji_flags[Bosnia_and_Herzegovina]=$'\U1F1E7\U1F1E6' +emoji_flags[BA]=$'\U1F1E7\U1F1E6' +emoji_flags[BIH]=$'\U1F1E7\U1F1E6' +emoji_flags[bosnia_herzegovina]=$'\U1F1E7\U1F1E6' emoji_flags[Barbados]=$'\U1F1E7\U1F1E7' +emoji_flags[BB]=$'\U1F1E7\U1F1E7' +emoji_flags[BRB]=$'\U1F1E7\U1F1E7' +emoji_flags[barbados]=$'\U1F1E7\U1F1E7' emoji_flags[Bangladesh]=$'\U1F1E7\U1F1E9' +emoji_flags[BD]=$'\U1F1E7\U1F1E9' +emoji_flags[BGD]=$'\U1F1E7\U1F1E9' +emoji_flags[bangladesh]=$'\U1F1E7\U1F1E9' emoji_flags[Belgium]=$'\U1F1E7\U1F1EA' +emoji_flags[BE]=$'\U1F1E7\U1F1EA' +emoji_flags[BEL]=$'\U1F1E7\U1F1EA' +emoji_flags[belgium]=$'\U1F1E7\U1F1EA' emoji_flags[Burkina_Faso]=$'\U1F1E7\U1F1EB' +emoji_flags[BF]=$'\U1F1E7\U1F1EB' +emoji_flags[BFA]=$'\U1F1E7\U1F1EB' +emoji_flags[burkina_faso]=$'\U1F1E7\U1F1EB' emoji_flags[Bulgaria]=$'\U1F1E7\U1F1EC' +emoji_flags[BG]=$'\U1F1E7\U1F1EC' +emoji_flags[BGR]=$'\U1F1E7\U1F1EC' +emoji_flags[bulgaria]=$'\U1F1E7\U1F1EC' emoji_flags[Bahrain]=$'\U1F1E7\U1F1ED' +emoji_flags[BH]=$'\U1F1E7\U1F1ED' +emoji_flags[BHR]=$'\U1F1E7\U1F1ED' +emoji_flags[bahrain]=$'\U1F1E7\U1F1ED' emoji_flags[Burundi]=$'\U1F1E7\U1F1EE' +emoji_flags[BI]=$'\U1F1E7\U1F1EE' +emoji_flags[BDI]=$'\U1F1E7\U1F1EE' +emoji_flags[burundi]=$'\U1F1E7\U1F1EE' emoji_flags[Benin]=$'\U1F1E7\U1F1EF' -emoji_flags[St__Barth_lemy]=$'\U1F1E7\U1F1F1' +emoji_flags[BJ]=$'\U1F1E7\U1F1EF' +emoji_flags[BEN]=$'\U1F1E7\U1F1EF' +emoji_flags[benin]=$'\U1F1E7\U1F1EF' +emoji_flags[St_Barthélemy]=$'\U1F1E7\U1F1F1' +emoji_flags[BL]=$'\U1F1E7\U1F1F1' +emoji_flags[BLM]=$'\U1F1E7\U1F1F1' +emoji_flags[st_barthelemy]=$'\U1F1E7\U1F1F1' emoji_flags[Bermuda]=$'\U1F1E7\U1F1F2' +emoji_flags[BM]=$'\U1F1E7\U1F1F2' +emoji_flags[BMU]=$'\U1F1E7\U1F1F2' +emoji_flags[bermuda]=$'\U1F1E7\U1F1F2' emoji_flags[Brunei]=$'\U1F1E7\U1F1F3' +emoji_flags[BN]=$'\U1F1E7\U1F1F3' +emoji_flags[BRN]=$'\U1F1E7\U1F1F3' +emoji_flags[brunei]=$'\U1F1E7\U1F1F3' emoji_flags[Bolivia]=$'\U1F1E7\U1F1F4' +emoji_flags[BO]=$'\U1F1E7\U1F1F4' +emoji_flags[BOL]=$'\U1F1E7\U1F1F4' +emoji_flags[bolivia]=$'\U1F1E7\U1F1F4' emoji_flags[Caribbean_Netherlands]=$'\U1F1E7\U1F1F6' +emoji_flags[BQ]=$'\U1F1E7\U1F1F6' +emoji_flags[BES]=$'\U1F1E7\U1F1F6' +emoji_flags[caribbean_netherlands]=$'\U1F1E7\U1F1F6' emoji_flags[Brazil]=$'\U1F1E7\U1F1F7' +emoji_flags[BR]=$'\U1F1E7\U1F1F7' +emoji_flags[BRA]=$'\U1F1E7\U1F1F7' +emoji_flags[brazil]=$'\U1F1E7\U1F1F7' emoji_flags[Bahamas]=$'\U1F1E7\U1F1F8' +emoji_flags[BS]=$'\U1F1E7\U1F1F8' +emoji_flags[BHS]=$'\U1F1E7\U1F1F8' +emoji_flags[bahamas]=$'\U1F1E7\U1F1F8' emoji_flags[Bhutan]=$'\U1F1E7\U1F1F9' +emoji_flags[BT]=$'\U1F1E7\U1F1F9' +emoji_flags[BTN]=$'\U1F1E7\U1F1F9' +emoji_flags[bhutan]=$'\U1F1E7\U1F1F9' emoji_flags[Bouvet_Island]=$'\U1F1E7\U1F1FB' +emoji_flags[BV]=$'\U1F1E7\U1F1FB' +emoji_flags[BVT]=$'\U1F1E7\U1F1FB' +emoji_flags[bouvet_island]=$'\U1F1E7\U1F1FB' emoji_flags[Botswana]=$'\U1F1E7\U1F1FC' +emoji_flags[BW]=$'\U1F1E7\U1F1FC' +emoji_flags[BWA]=$'\U1F1E7\U1F1FC' +emoji_flags[botswana]=$'\U1F1E7\U1F1FC' emoji_flags[Belarus]=$'\U1F1E7\U1F1FE' +emoji_flags[BY]=$'\U1F1E7\U1F1FE' +emoji_flags[BLR]=$'\U1F1E7\U1F1FE' +emoji_flags[belarus]=$'\U1F1E7\U1F1FE' emoji_flags[Belize]=$'\U1F1E7\U1F1FF' +emoji_flags[BZ]=$'\U1F1E7\U1F1FF' +emoji_flags[BLZ]=$'\U1F1E7\U1F1FF' +emoji_flags[belize]=$'\U1F1E7\U1F1FF' emoji_flags[Canada]=$'\U1F1E8\U1F1E6' -emoji_flags[Cocos__Islands]=$'\U1F1E8\U1F1E8' -emoji_flags[Congo___Kinshasa]=$'\U1F1E8\U1F1E9' +emoji_flags[CA]=$'\U1F1E8\U1F1E6' +emoji_flags[CAN]=$'\U1F1E8\U1F1E6' +emoji_flags[canada]=$'\U1F1E8\U1F1E6' +emoji_flags[Cocos_Keeling_Islands]=$'\U1F1E8\U1F1E8' +emoji_flags[CC]=$'\U1F1E8\U1F1E8' +emoji_flags[CCK]=$'\U1F1E8\U1F1E8' +emoji_flags[cocos_islands]=$'\U1F1E8\U1F1E8' +emoji_flags[Congo__Kinshasa]=$'\U1F1E8\U1F1E9' +emoji_flags[CD]=$'\U1F1E8\U1F1E9' +emoji_flags[COD]=$'\U1F1E8\U1F1E9' +emoji_flags[congo_kinshasa]=$'\U1F1E8\U1F1E9' emoji_flags[Central_African_Republic]=$'\U1F1E8\U1F1EB' -emoji_flags[Congo___Brazzaville]=$'\U1F1E8\U1F1EC' +emoji_flags[CF]=$'\U1F1E8\U1F1EB' +emoji_flags[CAF]=$'\U1F1E8\U1F1EB' +emoji_flags[central_african_republic]=$'\U1F1E8\U1F1EB' +emoji_flags[Congo__Brazzaville]=$'\U1F1E8\U1F1EC' +emoji_flags[CG]=$'\U1F1E8\U1F1EC' +emoji_flags[COG]=$'\U1F1E8\U1F1EC' +emoji_flags[congo_brazzaville]=$'\U1F1E8\U1F1EC' emoji_flags[Switzerland]=$'\U1F1E8\U1F1ED' -emoji_flags[C_te_d__Ivoire]=$'\U1F1E8\U1F1EE' +emoji_flags[CH]=$'\U1F1E8\U1F1ED' +emoji_flags[CHE]=$'\U1F1E8\U1F1ED' +emoji_flags[switzerland]=$'\U1F1E8\U1F1ED' +emoji_flags[Côte_d_Ivoire]=$'\U1F1E8\U1F1EE' +emoji_flags[CI]=$'\U1F1E8\U1F1EE' +emoji_flags[CIV]=$'\U1F1E8\U1F1EE' +emoji_flags[cote_divoire]=$'\U1F1E8\U1F1EE' emoji_flags[Cook_Islands]=$'\U1F1E8\U1F1F0' +emoji_flags[CK]=$'\U1F1E8\U1F1F0' +emoji_flags[COK]=$'\U1F1E8\U1F1F0' +emoji_flags[cook_islands]=$'\U1F1E8\U1F1F0' emoji_flags[Chile]=$'\U1F1E8\U1F1F1' +emoji_flags[CL]=$'\U1F1E8\U1F1F1' +emoji_flags[CHL]=$'\U1F1E8\U1F1F1' +emoji_flags[chile]=$'\U1F1E8\U1F1F1' emoji_flags[Cameroon]=$'\U1F1E8\U1F1F2' +emoji_flags[CM]=$'\U1F1E8\U1F1F2' +emoji_flags[CMR]=$'\U1F1E8\U1F1F2' +emoji_flags[cameroon]=$'\U1F1E8\U1F1F2' emoji_flags[China]=$'\U1F1E8\U1F1F3' +emoji_flags[CN]=$'\U1F1E8\U1F1F3' +emoji_flags[CHN]=$'\U1F1E8\U1F1F3' +emoji_flags[cn]=$'\U1F1E8\U1F1F3' emoji_flags[Colombia]=$'\U1F1E8\U1F1F4' +emoji_flags[CO]=$'\U1F1E8\U1F1F4' +emoji_flags[COL]=$'\U1F1E8\U1F1F4' +emoji_flags[colombia]=$'\U1F1E8\U1F1F4' emoji_flags[Clipperton_Island]=$'\U1F1E8\U1F1F5' +emoji_flags[clipperton_island]=$'\U1F1E8\U1F1F5' emoji_flags[Costa_Rica]=$'\U1F1E8\U1F1F7' +emoji_flags[CR]=$'\U1F1E8\U1F1F7' +emoji_flags[CRI]=$'\U1F1E8\U1F1F7' +emoji_flags[costa_rica]=$'\U1F1E8\U1F1F7' emoji_flags[Cuba]=$'\U1F1E8\U1F1FA' +emoji_flags[CU]=$'\U1F1E8\U1F1FA' +emoji_flags[CUB]=$'\U1F1E8\U1F1FA' +emoji_flags[cuba]=$'\U1F1E8\U1F1FA' emoji_flags[Cape_Verde]=$'\U1F1E8\U1F1FB' -emoji_flags[Cura_ao]=$'\U1F1E8\U1F1FC' +emoji_flags[CV]=$'\U1F1E8\U1F1FB' +emoji_flags[CPV]=$'\U1F1E8\U1F1FB' +emoji_flags[cape_verde]=$'\U1F1E8\U1F1FB' +emoji_flags[Curaçao]=$'\U1F1E8\U1F1FC' +emoji_flags[CW]=$'\U1F1E8\U1F1FC' +emoji_flags[CUW]=$'\U1F1E8\U1F1FC' +emoji_flags[curacao]=$'\U1F1E8\U1F1FC' emoji_flags[Christmas_Island]=$'\U1F1E8\U1F1FD' +emoji_flags[CX]=$'\U1F1E8\U1F1FD' +emoji_flags[CXR]=$'\U1F1E8\U1F1FD' +emoji_flags[christmas_island]=$'\U1F1E8\U1F1FD' emoji_flags[Cyprus]=$'\U1F1E8\U1F1FE' -emoji_flags[Czech_Republic]=$'\U1F1E8\U1F1FF' +emoji_flags[CY]=$'\U1F1E8\U1F1FE' +emoji_flags[CYP]=$'\U1F1E8\U1F1FE' +emoji_flags[cyprus]=$'\U1F1E8\U1F1FE' +emoji_flags[Czechia]=$'\U1F1E8\U1F1FF' +emoji_flags[CZ]=$'\U1F1E8\U1F1FF' +emoji_flags[CZE]=$'\U1F1E8\U1F1FF' +emoji_flags[czech_republic]=$'\U1F1E8\U1F1FF' emoji_flags[Germany]=$'\U1F1E9\U1F1EA' +emoji_flags[DE]=$'\U1F1E9\U1F1EA' +emoji_flags[DEU]=$'\U1F1E9\U1F1EA' +emoji_flags[de]=$'\U1F1E9\U1F1EA' emoji_flags[Diego_Garcia]=$'\U1F1E9\U1F1EC' +emoji_flags[diego_garcia]=$'\U1F1E9\U1F1EC' emoji_flags[Djibouti]=$'\U1F1E9\U1F1EF' +emoji_flags[DJ]=$'\U1F1E9\U1F1EF' +emoji_flags[DJI]=$'\U1F1E9\U1F1EF' +emoji_flags[djibouti]=$'\U1F1E9\U1F1EF' emoji_flags[Denmark]=$'\U1F1E9\U1F1F0' +emoji_flags[DK]=$'\U1F1E9\U1F1F0' +emoji_flags[DNK]=$'\U1F1E9\U1F1F0' +emoji_flags[denmark]=$'\U1F1E9\U1F1F0' emoji_flags[Dominica]=$'\U1F1E9\U1F1F2' +emoji_flags[DM]=$'\U1F1E9\U1F1F2' +emoji_flags[DMA]=$'\U1F1E9\U1F1F2' +emoji_flags[dominica]=$'\U1F1E9\U1F1F2' emoji_flags[Dominican_Republic]=$'\U1F1E9\U1F1F4' +emoji_flags[DO]=$'\U1F1E9\U1F1F4' +emoji_flags[DOM]=$'\U1F1E9\U1F1F4' +emoji_flags[dominican_republic]=$'\U1F1E9\U1F1F4' emoji_flags[Algeria]=$'\U1F1E9\U1F1FF' -emoji_flags[Ceuta___Melilla]=$'\U1F1EA\U1F1E6' +emoji_flags[DZ]=$'\U1F1E9\U1F1FF' +emoji_flags[DZA]=$'\U1F1E9\U1F1FF' +emoji_flags[algeria]=$'\U1F1E9\U1F1FF' +emoji_flags[Ceuta_and_Melilla]=$'\U1F1EA\U1F1E6' +emoji_flags[ceuta_melilla]=$'\U1F1EA\U1F1E6' emoji_flags[Ecuador]=$'\U1F1EA\U1F1E8' +emoji_flags[EC]=$'\U1F1EA\U1F1E8' +emoji_flags[ECU]=$'\U1F1EA\U1F1E8' +emoji_flags[ecuador]=$'\U1F1EA\U1F1E8' emoji_flags[Estonia]=$'\U1F1EA\U1F1EA' +emoji_flags[EE]=$'\U1F1EA\U1F1EA' +emoji_flags[EST]=$'\U1F1EA\U1F1EA' +emoji_flags[estonia]=$'\U1F1EA\U1F1EA' emoji_flags[Egypt]=$'\U1F1EA\U1F1EC' +emoji_flags[EG]=$'\U1F1EA\U1F1EC' +emoji_flags[EGY]=$'\U1F1EA\U1F1EC' +emoji_flags[egypt]=$'\U1F1EA\U1F1EC' emoji_flags[Western_Sahara]=$'\U1F1EA\U1F1ED' +emoji_flags[EH]=$'\U1F1EA\U1F1ED' +emoji_flags[ESH]=$'\U1F1EA\U1F1ED' +emoji_flags[western_sahara]=$'\U1F1EA\U1F1ED' emoji_flags[Eritrea]=$'\U1F1EA\U1F1F7' +emoji_flags[ER]=$'\U1F1EA\U1F1F7' +emoji_flags[ERI]=$'\U1F1EA\U1F1F7' +emoji_flags[eritrea]=$'\U1F1EA\U1F1F7' emoji_flags[Spain]=$'\U1F1EA\U1F1F8' +emoji_flags[ES]=$'\U1F1EA\U1F1F8' +emoji_flags[ESP]=$'\U1F1EA\U1F1F8' +emoji_flags[es]=$'\U1F1EA\U1F1F8' emoji_flags[Ethiopia]=$'\U1F1EA\U1F1F9' +emoji_flags[ET]=$'\U1F1EA\U1F1F9' +emoji_flags[ETH]=$'\U1F1EA\U1F1F9' +emoji_flags[ethiopia]=$'\U1F1EA\U1F1F9' emoji_flags[European_Union]=$'\U1F1EA\U1F1FA' +emoji_flags[eu]=$'\U1F1EA\U1F1FA' +emoji_flags[european_union]=$'\U1F1EA\U1F1FA' emoji_flags[Finland]=$'\U1F1EB\U1F1EE' +emoji_flags[FI]=$'\U1F1EB\U1F1EE' +emoji_flags[FIN]=$'\U1F1EB\U1F1EE' +emoji_flags[finland]=$'\U1F1EB\U1F1EE' emoji_flags[Fiji]=$'\U1F1EB\U1F1EF' +emoji_flags[FJ]=$'\U1F1EB\U1F1EF' +emoji_flags[FJI]=$'\U1F1EB\U1F1EF' +emoji_flags[fiji]=$'\U1F1EB\U1F1EF' emoji_flags[Falkland_Islands]=$'\U1F1EB\U1F1F0' +emoji_flags[FK]=$'\U1F1EB\U1F1F0' +emoji_flags[FLK]=$'\U1F1EB\U1F1F0' +emoji_flags[falkland_islands]=$'\U1F1EB\U1F1F0' emoji_flags[Micronesia]=$'\U1F1EB\U1F1F2' +emoji_flags[FM]=$'\U1F1EB\U1F1F2' +emoji_flags[FSM]=$'\U1F1EB\U1F1F2' +emoji_flags[micronesia]=$'\U1F1EB\U1F1F2' emoji_flags[Faroe_Islands]=$'\U1F1EB\U1F1F4' +emoji_flags[FO]=$'\U1F1EB\U1F1F4' +emoji_flags[FRO]=$'\U1F1EB\U1F1F4' +emoji_flags[faroe_islands]=$'\U1F1EB\U1F1F4' emoji_flags[France]=$'\U1F1EB\U1F1F7' +emoji_flags[FR]=$'\U1F1EB\U1F1F7' +emoji_flags[FRA]=$'\U1F1EB\U1F1F7' +emoji_flags[fr]=$'\U1F1EB\U1F1F7' emoji_flags[Gabon]=$'\U1F1EC\U1F1E6' +emoji_flags[GA]=$'\U1F1EC\U1F1E6' +emoji_flags[GAB]=$'\U1F1EC\U1F1E6' +emoji_flags[gabon]=$'\U1F1EC\U1F1E6' emoji_flags[United_Kingdom]=$'\U1F1EC\U1F1E7' +emoji_flags[GB]=$'\U1F1EC\U1F1E7' +emoji_flags[GBR]=$'\U1F1EC\U1F1E7' +emoji_flags[gb]=$'\U1F1EC\U1F1E7' +emoji_flags[uk]=$'\U1F1EC\U1F1E7' emoji_flags[Grenada]=$'\U1F1EC\U1F1E9' +emoji_flags[GD]=$'\U1F1EC\U1F1E9' +emoji_flags[GRD]=$'\U1F1EC\U1F1E9' +emoji_flags[grenada]=$'\U1F1EC\U1F1E9' emoji_flags[Georgia]=$'\U1F1EC\U1F1EA' +emoji_flags[GE]=$'\U1F1EC\U1F1EA' +emoji_flags[GEO]=$'\U1F1EC\U1F1EA' +emoji_flags[georgia]=$'\U1F1EC\U1F1EA' emoji_flags[French_Guiana]=$'\U1F1EC\U1F1EB' +emoji_flags[GF]=$'\U1F1EC\U1F1EB' +emoji_flags[GUF]=$'\U1F1EC\U1F1EB' +emoji_flags[french_guiana]=$'\U1F1EC\U1F1EB' emoji_flags[Guernsey]=$'\U1F1EC\U1F1EC' +emoji_flags[GG]=$'\U1F1EC\U1F1EC' +emoji_flags[GGY]=$'\U1F1EC\U1F1EC' +emoji_flags[guernsey]=$'\U1F1EC\U1F1EC' emoji_flags[Ghana]=$'\U1F1EC\U1F1ED' +emoji_flags[GH]=$'\U1F1EC\U1F1ED' +emoji_flags[GHA]=$'\U1F1EC\U1F1ED' +emoji_flags[ghana]=$'\U1F1EC\U1F1ED' emoji_flags[Gibraltar]=$'\U1F1EC\U1F1EE' +emoji_flags[GI]=$'\U1F1EC\U1F1EE' +emoji_flags[GIB]=$'\U1F1EC\U1F1EE' +emoji_flags[gibraltar]=$'\U1F1EC\U1F1EE' emoji_flags[Greenland]=$'\U1F1EC\U1F1F1' +emoji_flags[GL]=$'\U1F1EC\U1F1F1' +emoji_flags[GRL]=$'\U1F1EC\U1F1F1' +emoji_flags[greenland]=$'\U1F1EC\U1F1F1' emoji_flags[Gambia]=$'\U1F1EC\U1F1F2' +emoji_flags[GM]=$'\U1F1EC\U1F1F2' +emoji_flags[GMB]=$'\U1F1EC\U1F1F2' +emoji_flags[gambia]=$'\U1F1EC\U1F1F2' emoji_flags[Guinea]=$'\U1F1EC\U1F1F3' +emoji_flags[GN]=$'\U1F1EC\U1F1F3' +emoji_flags[GIN]=$'\U1F1EC\U1F1F3' +emoji_flags[guinea]=$'\U1F1EC\U1F1F3' emoji_flags[Guadeloupe]=$'\U1F1EC\U1F1F5' +emoji_flags[GP]=$'\U1F1EC\U1F1F5' +emoji_flags[GLP]=$'\U1F1EC\U1F1F5' +emoji_flags[guadeloupe]=$'\U1F1EC\U1F1F5' emoji_flags[Equatorial_Guinea]=$'\U1F1EC\U1F1F6' +emoji_flags[GQ]=$'\U1F1EC\U1F1F6' +emoji_flags[GNQ]=$'\U1F1EC\U1F1F6' +emoji_flags[equatorial_guinea]=$'\U1F1EC\U1F1F6' emoji_flags[Greece]=$'\U1F1EC\U1F1F7' -emoji_flags[South_Georgia___South_Sandwich_Islands]=$'\U1F1EC\U1F1F8' +emoji_flags[GR]=$'\U1F1EC\U1F1F7' +emoji_flags[GRC]=$'\U1F1EC\U1F1F7' +emoji_flags[greece]=$'\U1F1EC\U1F1F7' +emoji_flags[South_Georgia_and_South_Sandwich_Islands]=$'\U1F1EC\U1F1F8' +emoji_flags[GS]=$'\U1F1EC\U1F1F8' +emoji_flags[SGS]=$'\U1F1EC\U1F1F8' +emoji_flags[south_georgia_south_sandwich_islands]=$'\U1F1EC\U1F1F8' emoji_flags[Guatemala]=$'\U1F1EC\U1F1F9' +emoji_flags[GT]=$'\U1F1EC\U1F1F9' +emoji_flags[GTM]=$'\U1F1EC\U1F1F9' +emoji_flags[guatemala]=$'\U1F1EC\U1F1F9' emoji_flags[Guam]=$'\U1F1EC\U1F1FA' +emoji_flags[GU]=$'\U1F1EC\U1F1FA' +emoji_flags[GUM]=$'\U1F1EC\U1F1FA' +emoji_flags[guam]=$'\U1F1EC\U1F1FA' emoji_flags[Guinea_Bissau]=$'\U1F1EC\U1F1FC' +emoji_flags[GW]=$'\U1F1EC\U1F1FC' +emoji_flags[GNB]=$'\U1F1EC\U1F1FC' +emoji_flags[guinea_bissau]=$'\U1F1EC\U1F1FC' emoji_flags[Guyana]=$'\U1F1EC\U1F1FE' -emoji_flags[Hong_Kong]=$'\U1F1ED\U1F1F0' -emoji_flags[Heard___McDonald_Islands]=$'\U1F1ED\U1F1F2' +emoji_flags[GY]=$'\U1F1EC\U1F1FE' +emoji_flags[GUY]=$'\U1F1EC\U1F1FE' +emoji_flags[guyana]=$'\U1F1EC\U1F1FE' +emoji_flags[Hong_Kong_SAR_China]=$'\U1F1ED\U1F1F0' +emoji_flags[HK]=$'\U1F1ED\U1F1F0' +emoji_flags[HKG]=$'\U1F1ED\U1F1F0' +emoji_flags[hong_kong]=$'\U1F1ED\U1F1F0' +emoji_flags[Heard_and_McDonald_Islands]=$'\U1F1ED\U1F1F2' +emoji_flags[HM]=$'\U1F1ED\U1F1F2' +emoji_flags[HMD]=$'\U1F1ED\U1F1F2' +emoji_flags[heard_mcdonald_islands]=$'\U1F1ED\U1F1F2' emoji_flags[Honduras]=$'\U1F1ED\U1F1F3' +emoji_flags[HN]=$'\U1F1ED\U1F1F3' +emoji_flags[HND]=$'\U1F1ED\U1F1F3' +emoji_flags[honduras]=$'\U1F1ED\U1F1F3' emoji_flags[Croatia]=$'\U1F1ED\U1F1F7' +emoji_flags[HR]=$'\U1F1ED\U1F1F7' +emoji_flags[HRV]=$'\U1F1ED\U1F1F7' +emoji_flags[croatia]=$'\U1F1ED\U1F1F7' emoji_flags[Haiti]=$'\U1F1ED\U1F1F9' +emoji_flags[HT]=$'\U1F1ED\U1F1F9' +emoji_flags[HTI]=$'\U1F1ED\U1F1F9' +emoji_flags[haiti]=$'\U1F1ED\U1F1F9' emoji_flags[Hungary]=$'\U1F1ED\U1F1FA' +emoji_flags[HU]=$'\U1F1ED\U1F1FA' +emoji_flags[HUN]=$'\U1F1ED\U1F1FA' +emoji_flags[hungary]=$'\U1F1ED\U1F1FA' emoji_flags[Canary_Islands]=$'\U1F1EE\U1F1E8' +emoji_flags[canary_islands]=$'\U1F1EE\U1F1E8' emoji_flags[Indonesia]=$'\U1F1EE\U1F1E9' +emoji_flags[ID]=$'\U1F1EE\U1F1E9' +emoji_flags[IDN]=$'\U1F1EE\U1F1E9' +emoji_flags[indonesia]=$'\U1F1EE\U1F1E9' emoji_flags[Ireland]=$'\U1F1EE\U1F1EA' +emoji_flags[IE]=$'\U1F1EE\U1F1EA' +emoji_flags[IRL]=$'\U1F1EE\U1F1EA' +emoji_flags[ireland]=$'\U1F1EE\U1F1EA' emoji_flags[Israel]=$'\U1F1EE\U1F1F1' +emoji_flags[IL]=$'\U1F1EE\U1F1F1' +emoji_flags[ISR]=$'\U1F1EE\U1F1F1' +emoji_flags[israel]=$'\U1F1EE\U1F1F1' emoji_flags[Isle_of_Man]=$'\U1F1EE\U1F1F2' +emoji_flags[IM]=$'\U1F1EE\U1F1F2' +emoji_flags[IMN]=$'\U1F1EE\U1F1F2' +emoji_flags[isle_of_man]=$'\U1F1EE\U1F1F2' emoji_flags[India]=$'\U1F1EE\U1F1F3' +emoji_flags[IN]=$'\U1F1EE\U1F1F3' +emoji_flags[IND]=$'\U1F1EE\U1F1F3' +emoji_flags[india]=$'\U1F1EE\U1F1F3' emoji_flags[British_Indian_Ocean_Territory]=$'\U1F1EE\U1F1F4' +emoji_flags[IO]=$'\U1F1EE\U1F1F4' +emoji_flags[IOT]=$'\U1F1EE\U1F1F4' +emoji_flags[british_indian_ocean_territory]=$'\U1F1EE\U1F1F4' emoji_flags[Iraq]=$'\U1F1EE\U1F1F6' +emoji_flags[IQ]=$'\U1F1EE\U1F1F6' +emoji_flags[IRQ]=$'\U1F1EE\U1F1F6' +emoji_flags[iraq]=$'\U1F1EE\U1F1F6' emoji_flags[Iran]=$'\U1F1EE\U1F1F7' +emoji_flags[IR]=$'\U1F1EE\U1F1F7' +emoji_flags[IRN]=$'\U1F1EE\U1F1F7' +emoji_flags[iran]=$'\U1F1EE\U1F1F7' emoji_flags[Iceland]=$'\U1F1EE\U1F1F8' +emoji_flags[IS]=$'\U1F1EE\U1F1F8' +emoji_flags[ISL]=$'\U1F1EE\U1F1F8' +emoji_flags[iceland]=$'\U1F1EE\U1F1F8' emoji_flags[Italy]=$'\U1F1EE\U1F1F9' +emoji_flags[IT]=$'\U1F1EE\U1F1F9' +emoji_flags[ITA]=$'\U1F1EE\U1F1F9' +emoji_flags[it]=$'\U1F1EE\U1F1F9' emoji_flags[Jersey]=$'\U1F1EF\U1F1EA' +emoji_flags[JE]=$'\U1F1EF\U1F1EA' +emoji_flags[JEY]=$'\U1F1EF\U1F1EA' +emoji_flags[jersey]=$'\U1F1EF\U1F1EA' emoji_flags[Jamaica]=$'\U1F1EF\U1F1F2' +emoji_flags[JM]=$'\U1F1EF\U1F1F2' +emoji_flags[JAM]=$'\U1F1EF\U1F1F2' +emoji_flags[jamaica]=$'\U1F1EF\U1F1F2' emoji_flags[Jordan]=$'\U1F1EF\U1F1F4' +emoji_flags[JO]=$'\U1F1EF\U1F1F4' +emoji_flags[JOR]=$'\U1F1EF\U1F1F4' +emoji_flags[jordan]=$'\U1F1EF\U1F1F4' emoji_flags[Japan]=$'\U1F1EF\U1F1F5' +emoji_flags[JP]=$'\U1F1EF\U1F1F5' +emoji_flags[JPN]=$'\U1F1EF\U1F1F5' +emoji_flags[jp]=$'\U1F1EF\U1F1F5' emoji_flags[Kenya]=$'\U1F1F0\U1F1EA' +emoji_flags[KE]=$'\U1F1F0\U1F1EA' +emoji_flags[KEN]=$'\U1F1F0\U1F1EA' +emoji_flags[kenya]=$'\U1F1F0\U1F1EA' emoji_flags[Kyrgyzstan]=$'\U1F1F0\U1F1EC' +emoji_flags[KG]=$'\U1F1F0\U1F1EC' +emoji_flags[KGZ]=$'\U1F1F0\U1F1EC' +emoji_flags[kyrgyzstan]=$'\U1F1F0\U1F1EC' emoji_flags[Cambodia]=$'\U1F1F0\U1F1ED' +emoji_flags[KH]=$'\U1F1F0\U1F1ED' +emoji_flags[KHM]=$'\U1F1F0\U1F1ED' +emoji_flags[cambodia]=$'\U1F1F0\U1F1ED' emoji_flags[Kiribati]=$'\U1F1F0\U1F1EE' +emoji_flags[KI]=$'\U1F1F0\U1F1EE' +emoji_flags[KIR]=$'\U1F1F0\U1F1EE' +emoji_flags[kiribati]=$'\U1F1F0\U1F1EE' emoji_flags[Comoros]=$'\U1F1F0\U1F1F2' -emoji_flags[St__Kitts___Nevis]=$'\U1F1F0\U1F1F3' +emoji_flags[KM]=$'\U1F1F0\U1F1F2' +emoji_flags[COM]=$'\U1F1F0\U1F1F2' +emoji_flags[comoros]=$'\U1F1F0\U1F1F2' +emoji_flags[St_Kitts_and_Nevis]=$'\U1F1F0\U1F1F3' +emoji_flags[KN]=$'\U1F1F0\U1F1F3' +emoji_flags[KNA]=$'\U1F1F0\U1F1F3' +emoji_flags[st_kitts_nevis]=$'\U1F1F0\U1F1F3' emoji_flags[North_Korea]=$'\U1F1F0\U1F1F5' +emoji_flags[KP]=$'\U1F1F0\U1F1F5' +emoji_flags[PRK]=$'\U1F1F0\U1F1F5' +emoji_flags[north_korea]=$'\U1F1F0\U1F1F5' emoji_flags[South_Korea]=$'\U1F1F0\U1F1F7' +emoji_flags[KR]=$'\U1F1F0\U1F1F7' +emoji_flags[KOR]=$'\U1F1F0\U1F1F7' +emoji_flags[kr]=$'\U1F1F0\U1F1F7' emoji_flags[Kuwait]=$'\U1F1F0\U1F1FC' +emoji_flags[KW]=$'\U1F1F0\U1F1FC' +emoji_flags[KWT]=$'\U1F1F0\U1F1FC' +emoji_flags[kuwait]=$'\U1F1F0\U1F1FC' emoji_flags[Cayman_Islands]=$'\U1F1F0\U1F1FE' +emoji_flags[KY]=$'\U1F1F0\U1F1FE' +emoji_flags[CYM]=$'\U1F1F0\U1F1FE' +emoji_flags[cayman_islands]=$'\U1F1F0\U1F1FE' emoji_flags[Kazakhstan]=$'\U1F1F0\U1F1FF' +emoji_flags[KZ]=$'\U1F1F0\U1F1FF' +emoji_flags[KAZ]=$'\U1F1F0\U1F1FF' +emoji_flags[kazakhstan]=$'\U1F1F0\U1F1FF' emoji_flags[Laos]=$'\U1F1F1\U1F1E6' +emoji_flags[LA]=$'\U1F1F1\U1F1E6' +emoji_flags[LAO]=$'\U1F1F1\U1F1E6' +emoji_flags[laos]=$'\U1F1F1\U1F1E6' emoji_flags[Lebanon]=$'\U1F1F1\U1F1E7' -emoji_flags[St__Lucia]=$'\U1F1F1\U1F1E8' +emoji_flags[LB]=$'\U1F1F1\U1F1E7' +emoji_flags[LBN]=$'\U1F1F1\U1F1E7' +emoji_flags[lebanon]=$'\U1F1F1\U1F1E7' +emoji_flags[St_Lucia]=$'\U1F1F1\U1F1E8' +emoji_flags[LC]=$'\U1F1F1\U1F1E8' +emoji_flags[LCA]=$'\U1F1F1\U1F1E8' +emoji_flags[st_lucia]=$'\U1F1F1\U1F1E8' emoji_flags[Liechtenstein]=$'\U1F1F1\U1F1EE' +emoji_flags[LI]=$'\U1F1F1\U1F1EE' +emoji_flags[LIE]=$'\U1F1F1\U1F1EE' +emoji_flags[liechtenstein]=$'\U1F1F1\U1F1EE' emoji_flags[Sri_Lanka]=$'\U1F1F1\U1F1F0' +emoji_flags[LK]=$'\U1F1F1\U1F1F0' +emoji_flags[LKA]=$'\U1F1F1\U1F1F0' +emoji_flags[sri_lanka]=$'\U1F1F1\U1F1F0' emoji_flags[Liberia]=$'\U1F1F1\U1F1F7' +emoji_flags[LR]=$'\U1F1F1\U1F1F7' +emoji_flags[LBR]=$'\U1F1F1\U1F1F7' +emoji_flags[liberia]=$'\U1F1F1\U1F1F7' emoji_flags[Lesotho]=$'\U1F1F1\U1F1F8' +emoji_flags[LS]=$'\U1F1F1\U1F1F8' +emoji_flags[LSO]=$'\U1F1F1\U1F1F8' +emoji_flags[lesotho]=$'\U1F1F1\U1F1F8' emoji_flags[Lithuania]=$'\U1F1F1\U1F1F9' +emoji_flags[LT]=$'\U1F1F1\U1F1F9' +emoji_flags[LTU]=$'\U1F1F1\U1F1F9' +emoji_flags[lithuania]=$'\U1F1F1\U1F1F9' emoji_flags[Luxembourg]=$'\U1F1F1\U1F1FA' +emoji_flags[LU]=$'\U1F1F1\U1F1FA' +emoji_flags[LUX]=$'\U1F1F1\U1F1FA' +emoji_flags[luxembourg]=$'\U1F1F1\U1F1FA' emoji_flags[Latvia]=$'\U1F1F1\U1F1FB' +emoji_flags[LV]=$'\U1F1F1\U1F1FB' +emoji_flags[LVA]=$'\U1F1F1\U1F1FB' +emoji_flags[latvia]=$'\U1F1F1\U1F1FB' emoji_flags[Libya]=$'\U1F1F1\U1F1FE' +emoji_flags[LY]=$'\U1F1F1\U1F1FE' +emoji_flags[LBY]=$'\U1F1F1\U1F1FE' +emoji_flags[libya]=$'\U1F1F1\U1F1FE' emoji_flags[Morocco]=$'\U1F1F2\U1F1E6' +emoji_flags[MA]=$'\U1F1F2\U1F1E6' +emoji_flags[MAR]=$'\U1F1F2\U1F1E6' +emoji_flags[morocco]=$'\U1F1F2\U1F1E6' emoji_flags[Monaco]=$'\U1F1F2\U1F1E8' +emoji_flags[MC]=$'\U1F1F2\U1F1E8' +emoji_flags[MCO]=$'\U1F1F2\U1F1E8' +emoji_flags[monaco]=$'\U1F1F2\U1F1E8' emoji_flags[Moldova]=$'\U1F1F2\U1F1E9' +emoji_flags[MD]=$'\U1F1F2\U1F1E9' +emoji_flags[MDA]=$'\U1F1F2\U1F1E9' +emoji_flags[moldova]=$'\U1F1F2\U1F1E9' emoji_flags[Montenegro]=$'\U1F1F2\U1F1EA' -emoji_flags[St__Martin]=$'\U1F1F2\U1F1EB' +emoji_flags[ME]=$'\U1F1F2\U1F1EA' +emoji_flags[MNE]=$'\U1F1F2\U1F1EA' +emoji_flags[montenegro]=$'\U1F1F2\U1F1EA' +emoji_flags[St_Martin]=$'\U1F1F2\U1F1EB' +emoji_flags[MF]=$'\U1F1F2\U1F1EB' +emoji_flags[MAF]=$'\U1F1F2\U1F1EB' +emoji_flags[st_martin]=$'\U1F1F2\U1F1EB' emoji_flags[Madagascar]=$'\U1F1F2\U1F1EC' +emoji_flags[MG]=$'\U1F1F2\U1F1EC' +emoji_flags[MDG]=$'\U1F1F2\U1F1EC' +emoji_flags[madagascar]=$'\U1F1F2\U1F1EC' emoji_flags[Marshall_Islands]=$'\U1F1F2\U1F1ED' +emoji_flags[MH]=$'\U1F1F2\U1F1ED' +emoji_flags[MHL]=$'\U1F1F2\U1F1ED' +emoji_flags[marshall_islands]=$'\U1F1F2\U1F1ED' emoji_flags[Macedonia]=$'\U1F1F2\U1F1F0' +emoji_flags[MK]=$'\U1F1F2\U1F1F0' +emoji_flags[MKD]=$'\U1F1F2\U1F1F0' +emoji_flags[macedonia]=$'\U1F1F2\U1F1F0' emoji_flags[Mali]=$'\U1F1F2\U1F1F1' -emoji_flags[Myanmar]=$'\U1F1F2\U1F1F2' +emoji_flags[ML]=$'\U1F1F2\U1F1F1' +emoji_flags[MLI]=$'\U1F1F2\U1F1F1' +emoji_flags[mali]=$'\U1F1F2\U1F1F1' +emoji_flags[Myanmar_Burma_]=$'\U1F1F2\U1F1F2' +emoji_flags[MM]=$'\U1F1F2\U1F1F2' +emoji_flags[MMR]=$'\U1F1F2\U1F1F2' +emoji_flags[myanmar]=$'\U1F1F2\U1F1F2' emoji_flags[Mongolia]=$'\U1F1F2\U1F1F3' -emoji_flags[Macau]=$'\U1F1F2\U1F1F4' +emoji_flags[MN]=$'\U1F1F2\U1F1F3' +emoji_flags[MNG]=$'\U1F1F2\U1F1F3' +emoji_flags[mongolia]=$'\U1F1F2\U1F1F3' +emoji_flags[Macao_SAR_China]=$'\U1F1F2\U1F1F4' +emoji_flags[MO]=$'\U1F1F2\U1F1F4' +emoji_flags[MAC]=$'\U1F1F2\U1F1F4' +emoji_flags[macau]=$'\U1F1F2\U1F1F4' emoji_flags[Northern_Mariana_Islands]=$'\U1F1F2\U1F1F5' +emoji_flags[MP]=$'\U1F1F2\U1F1F5' +emoji_flags[MNP]=$'\U1F1F2\U1F1F5' +emoji_flags[northern_mariana_islands]=$'\U1F1F2\U1F1F5' emoji_flags[Martinique]=$'\U1F1F2\U1F1F6' +emoji_flags[MQ]=$'\U1F1F2\U1F1F6' +emoji_flags[MTQ]=$'\U1F1F2\U1F1F6' +emoji_flags[martinique]=$'\U1F1F2\U1F1F6' emoji_flags[Mauritania]=$'\U1F1F2\U1F1F7' +emoji_flags[MR]=$'\U1F1F2\U1F1F7' +emoji_flags[MRT]=$'\U1F1F2\U1F1F7' +emoji_flags[mauritania]=$'\U1F1F2\U1F1F7' emoji_flags[Montserrat]=$'\U1F1F2\U1F1F8' +emoji_flags[MS]=$'\U1F1F2\U1F1F8' +emoji_flags[MSR]=$'\U1F1F2\U1F1F8' +emoji_flags[montserrat]=$'\U1F1F2\U1F1F8' emoji_flags[Malta]=$'\U1F1F2\U1F1F9' +emoji_flags[MT]=$'\U1F1F2\U1F1F9' +emoji_flags[MLT]=$'\U1F1F2\U1F1F9' +emoji_flags[malta]=$'\U1F1F2\U1F1F9' emoji_flags[Mauritius]=$'\U1F1F2\U1F1FA' +emoji_flags[MU]=$'\U1F1F2\U1F1FA' +emoji_flags[MUS]=$'\U1F1F2\U1F1FA' +emoji_flags[mauritius]=$'\U1F1F2\U1F1FA' emoji_flags[Maldives]=$'\U1F1F2\U1F1FB' +emoji_flags[MV]=$'\U1F1F2\U1F1FB' +emoji_flags[MDV]=$'\U1F1F2\U1F1FB' +emoji_flags[maldives]=$'\U1F1F2\U1F1FB' emoji_flags[Malawi]=$'\U1F1F2\U1F1FC' +emoji_flags[MW]=$'\U1F1F2\U1F1FC' +emoji_flags[MWI]=$'\U1F1F2\U1F1FC' +emoji_flags[malawi]=$'\U1F1F2\U1F1FC' emoji_flags[Mexico]=$'\U1F1F2\U1F1FD' +emoji_flags[MX]=$'\U1F1F2\U1F1FD' +emoji_flags[MEX]=$'\U1F1F2\U1F1FD' +emoji_flags[mexico]=$'\U1F1F2\U1F1FD' emoji_flags[Malaysia]=$'\U1F1F2\U1F1FE' +emoji_flags[MY]=$'\U1F1F2\U1F1FE' +emoji_flags[MYS]=$'\U1F1F2\U1F1FE' +emoji_flags[malaysia]=$'\U1F1F2\U1F1FE' emoji_flags[Mozambique]=$'\U1F1F2\U1F1FF' +emoji_flags[MZ]=$'\U1F1F2\U1F1FF' +emoji_flags[MOZ]=$'\U1F1F2\U1F1FF' +emoji_flags[mozambique]=$'\U1F1F2\U1F1FF' emoji_flags[Namibia]=$'\U1F1F3\U1F1E6' +emoji_flags[NA]=$'\U1F1F3\U1F1E6' +emoji_flags[NAM]=$'\U1F1F3\U1F1E6' +emoji_flags[namibia]=$'\U1F1F3\U1F1E6' emoji_flags[New_Caledonia]=$'\U1F1F3\U1F1E8' +emoji_flags[NC]=$'\U1F1F3\U1F1E8' +emoji_flags[NCL]=$'\U1F1F3\U1F1E8' +emoji_flags[new_caledonia]=$'\U1F1F3\U1F1E8' emoji_flags[Niger]=$'\U1F1F3\U1F1EA' +emoji_flags[NE]=$'\U1F1F3\U1F1EA' +emoji_flags[NER]=$'\U1F1F3\U1F1EA' +emoji_flags[niger]=$'\U1F1F3\U1F1EA' emoji_flags[Norfolk_Island]=$'\U1F1F3\U1F1EB' +emoji_flags[NF]=$'\U1F1F3\U1F1EB' +emoji_flags[NFK]=$'\U1F1F3\U1F1EB' +emoji_flags[norfolk_island]=$'\U1F1F3\U1F1EB' emoji_flags[Nigeria]=$'\U1F1F3\U1F1EC' +emoji_flags[NG]=$'\U1F1F3\U1F1EC' +emoji_flags[NGA]=$'\U1F1F3\U1F1EC' +emoji_flags[nigeria]=$'\U1F1F3\U1F1EC' emoji_flags[Nicaragua]=$'\U1F1F3\U1F1EE' +emoji_flags[NI]=$'\U1F1F3\U1F1EE' +emoji_flags[NIC]=$'\U1F1F3\U1F1EE' +emoji_flags[nicaragua]=$'\U1F1F3\U1F1EE' emoji_flags[Netherlands]=$'\U1F1F3\U1F1F1' +emoji_flags[NL]=$'\U1F1F3\U1F1F1' +emoji_flags[NLD]=$'\U1F1F3\U1F1F1' +emoji_flags[netherlands]=$'\U1F1F3\U1F1F1' emoji_flags[Norway]=$'\U1F1F3\U1F1F4' +emoji_flags[NO]=$'\U1F1F3\U1F1F4' +emoji_flags[NOR]=$'\U1F1F3\U1F1F4' +emoji_flags[norway]=$'\U1F1F3\U1F1F4' emoji_flags[Nepal]=$'\U1F1F3\U1F1F5' +emoji_flags[NP]=$'\U1F1F3\U1F1F5' +emoji_flags[NPL]=$'\U1F1F3\U1F1F5' +emoji_flags[nepal]=$'\U1F1F3\U1F1F5' emoji_flags[Nauru]=$'\U1F1F3\U1F1F7' +emoji_flags[NR]=$'\U1F1F3\U1F1F7' +emoji_flags[NRU]=$'\U1F1F3\U1F1F7' +emoji_flags[nauru]=$'\U1F1F3\U1F1F7' emoji_flags[Niue]=$'\U1F1F3\U1F1FA' +emoji_flags[NU]=$'\U1F1F3\U1F1FA' +emoji_flags[NIU]=$'\U1F1F3\U1F1FA' +emoji_flags[niue]=$'\U1F1F3\U1F1FA' emoji_flags[New_Zealand]=$'\U1F1F3\U1F1FF' +emoji_flags[NZ]=$'\U1F1F3\U1F1FF' +emoji_flags[NZL]=$'\U1F1F3\U1F1FF' +emoji_flags[new_zealand]=$'\U1F1F3\U1F1FF' emoji_flags[Oman]=$'\U1F1F4\U1F1F2' +emoji_flags[OM]=$'\U1F1F4\U1F1F2' +emoji_flags[OMN]=$'\U1F1F4\U1F1F2' +emoji_flags[oman]=$'\U1F1F4\U1F1F2' emoji_flags[Panama]=$'\U1F1F5\U1F1E6' +emoji_flags[PA]=$'\U1F1F5\U1F1E6' +emoji_flags[PAN]=$'\U1F1F5\U1F1E6' +emoji_flags[panama]=$'\U1F1F5\U1F1E6' emoji_flags[Peru]=$'\U1F1F5\U1F1EA' +emoji_flags[PE]=$'\U1F1F5\U1F1EA' +emoji_flags[PER]=$'\U1F1F5\U1F1EA' +emoji_flags[peru]=$'\U1F1F5\U1F1EA' emoji_flags[French_Polynesia]=$'\U1F1F5\U1F1EB' +emoji_flags[PF]=$'\U1F1F5\U1F1EB' +emoji_flags[PYF]=$'\U1F1F5\U1F1EB' +emoji_flags[french_polynesia]=$'\U1F1F5\U1F1EB' emoji_flags[Papua_New_Guinea]=$'\U1F1F5\U1F1EC' +emoji_flags[PG]=$'\U1F1F5\U1F1EC' +emoji_flags[PNG]=$'\U1F1F5\U1F1EC' +emoji_flags[papua_new_guinea]=$'\U1F1F5\U1F1EC' emoji_flags[Philippines]=$'\U1F1F5\U1F1ED' +emoji_flags[PH]=$'\U1F1F5\U1F1ED' +emoji_flags[PHL]=$'\U1F1F5\U1F1ED' +emoji_flags[philippines]=$'\U1F1F5\U1F1ED' emoji_flags[Pakistan]=$'\U1F1F5\U1F1F0' +emoji_flags[PK]=$'\U1F1F5\U1F1F0' +emoji_flags[PAK]=$'\U1F1F5\U1F1F0' +emoji_flags[pakistan]=$'\U1F1F5\U1F1F0' emoji_flags[Poland]=$'\U1F1F5\U1F1F1' -emoji_flags[St__Pierre___Miquelon]=$'\U1F1F5\U1F1F2' +emoji_flags[PL]=$'\U1F1F5\U1F1F1' +emoji_flags[POL]=$'\U1F1F5\U1F1F1' +emoji_flags[poland]=$'\U1F1F5\U1F1F1' +emoji_flags[St_Pierre_and_Miquelon]=$'\U1F1F5\U1F1F2' +emoji_flags[PM]=$'\U1F1F5\U1F1F2' +emoji_flags[SPM]=$'\U1F1F5\U1F1F2' +emoji_flags[st_pierre_miquelon]=$'\U1F1F5\U1F1F2' emoji_flags[Pitcairn_Islands]=$'\U1F1F5\U1F1F3' +emoji_flags[PN]=$'\U1F1F5\U1F1F3' +emoji_flags[PCN]=$'\U1F1F5\U1F1F3' +emoji_flags[pitcairn_islands]=$'\U1F1F5\U1F1F3' emoji_flags[Puerto_Rico]=$'\U1F1F5\U1F1F7' +emoji_flags[PR]=$'\U1F1F5\U1F1F7' +emoji_flags[PRI]=$'\U1F1F5\U1F1F7' +emoji_flags[puerto_rico]=$'\U1F1F5\U1F1F7' emoji_flags[Palestinian_Territories]=$'\U1F1F5\U1F1F8' +emoji_flags[PS]=$'\U1F1F5\U1F1F8' +emoji_flags[PSE]=$'\U1F1F5\U1F1F8' +emoji_flags[palestinian_territories]=$'\U1F1F5\U1F1F8' emoji_flags[Portugal]=$'\U1F1F5\U1F1F9' +emoji_flags[PT]=$'\U1F1F5\U1F1F9' +emoji_flags[PRT]=$'\U1F1F5\U1F1F9' +emoji_flags[portugal]=$'\U1F1F5\U1F1F9' emoji_flags[Palau]=$'\U1F1F5\U1F1FC' +emoji_flags[PW]=$'\U1F1F5\U1F1FC' +emoji_flags[PLW]=$'\U1F1F5\U1F1FC' +emoji_flags[palau]=$'\U1F1F5\U1F1FC' emoji_flags[Paraguay]=$'\U1F1F5\U1F1FE' +emoji_flags[PY]=$'\U1F1F5\U1F1FE' +emoji_flags[PRY]=$'\U1F1F5\U1F1FE' +emoji_flags[paraguay]=$'\U1F1F5\U1F1FE' emoji_flags[Qatar]=$'\U1F1F6\U1F1E6' -emoji_flags[R_union]=$'\U1F1F7\U1F1EA' +emoji_flags[QA]=$'\U1F1F6\U1F1E6' +emoji_flags[QAT]=$'\U1F1F6\U1F1E6' +emoji_flags[qatar]=$'\U1F1F6\U1F1E6' +emoji_flags[Réunion]=$'\U1F1F7\U1F1EA' +emoji_flags[RE]=$'\U1F1F7\U1F1EA' +emoji_flags[REU]=$'\U1F1F7\U1F1EA' +emoji_flags[reunion]=$'\U1F1F7\U1F1EA' emoji_flags[Romania]=$'\U1F1F7\U1F1F4' +emoji_flags[RO]=$'\U1F1F7\U1F1F4' +emoji_flags[ROU]=$'\U1F1F7\U1F1F4' +emoji_flags[romania]=$'\U1F1F7\U1F1F4' emoji_flags[Serbia]=$'\U1F1F7\U1F1F8' +emoji_flags[RS]=$'\U1F1F7\U1F1F8' +emoji_flags[SRB]=$'\U1F1F7\U1F1F8' +emoji_flags[serbia]=$'\U1F1F7\U1F1F8' emoji_flags[Russia]=$'\U1F1F7\U1F1FA' +emoji_flags[RU]=$'\U1F1F7\U1F1FA' +emoji_flags[RUS]=$'\U1F1F7\U1F1FA' +emoji_flags[ru]=$'\U1F1F7\U1F1FA' emoji_flags[Rwanda]=$'\U1F1F7\U1F1FC' +emoji_flags[RW]=$'\U1F1F7\U1F1FC' +emoji_flags[RWA]=$'\U1F1F7\U1F1FC' +emoji_flags[rwanda]=$'\U1F1F7\U1F1FC' emoji_flags[Saudi_Arabia]=$'\U1F1F8\U1F1E6' +emoji_flags[SA]=$'\U1F1F8\U1F1E6' +emoji_flags[SAU]=$'\U1F1F8\U1F1E6' +emoji_flags[saudi_arabia]=$'\U1F1F8\U1F1E6' emoji_flags[Solomon_Islands]=$'\U1F1F8\U1F1E7' +emoji_flags[SB]=$'\U1F1F8\U1F1E7' +emoji_flags[SLB]=$'\U1F1F8\U1F1E7' +emoji_flags[solomon_islands]=$'\U1F1F8\U1F1E7' emoji_flags[Seychelles]=$'\U1F1F8\U1F1E8' +emoji_flags[SC]=$'\U1F1F8\U1F1E8' +emoji_flags[SYC]=$'\U1F1F8\U1F1E8' +emoji_flags[seychelles]=$'\U1F1F8\U1F1E8' emoji_flags[Sudan]=$'\U1F1F8\U1F1E9' +emoji_flags[SD]=$'\U1F1F8\U1F1E9' +emoji_flags[SDN]=$'\U1F1F8\U1F1E9' +emoji_flags[sudan]=$'\U1F1F8\U1F1E9' emoji_flags[Sweden]=$'\U1F1F8\U1F1EA' +emoji_flags[SE]=$'\U1F1F8\U1F1EA' +emoji_flags[SWE]=$'\U1F1F8\U1F1EA' +emoji_flags[sweden]=$'\U1F1F8\U1F1EA' emoji_flags[Singapore]=$'\U1F1F8\U1F1EC' -emoji_flags[St__Helena]=$'\U1F1F8\U1F1ED' +emoji_flags[SG]=$'\U1F1F8\U1F1EC' +emoji_flags[SGP]=$'\U1F1F8\U1F1EC' +emoji_flags[singapore]=$'\U1F1F8\U1F1EC' +emoji_flags[St_Helena]=$'\U1F1F8\U1F1ED' +emoji_flags[SH]=$'\U1F1F8\U1F1ED' +emoji_flags[SHN]=$'\U1F1F8\U1F1ED' +emoji_flags[st_helena]=$'\U1F1F8\U1F1ED' emoji_flags[Slovenia]=$'\U1F1F8\U1F1EE' -emoji_flags[Svalbard___Jan_Mayen]=$'\U1F1F8\U1F1EF' +emoji_flags[SI]=$'\U1F1F8\U1F1EE' +emoji_flags[SVN]=$'\U1F1F8\U1F1EE' +emoji_flags[slovenia]=$'\U1F1F8\U1F1EE' +emoji_flags[Svalbard_and_Jan_Mayen]=$'\U1F1F8\U1F1EF' +emoji_flags[SJ]=$'\U1F1F8\U1F1EF' +emoji_flags[SJM]=$'\U1F1F8\U1F1EF' +emoji_flags[svalbard_jan_mayen]=$'\U1F1F8\U1F1EF' emoji_flags[Slovakia]=$'\U1F1F8\U1F1F0' +emoji_flags[SK]=$'\U1F1F8\U1F1F0' +emoji_flags[SVK]=$'\U1F1F8\U1F1F0' +emoji_flags[slovakia]=$'\U1F1F8\U1F1F0' emoji_flags[Sierra_Leone]=$'\U1F1F8\U1F1F1' +emoji_flags[SL]=$'\U1F1F8\U1F1F1' +emoji_flags[SLE]=$'\U1F1F8\U1F1F1' +emoji_flags[sierra_leone]=$'\U1F1F8\U1F1F1' emoji_flags[San_Marino]=$'\U1F1F8\U1F1F2' +emoji_flags[SM]=$'\U1F1F8\U1F1F2' +emoji_flags[SMR]=$'\U1F1F8\U1F1F2' +emoji_flags[san_marino]=$'\U1F1F8\U1F1F2' emoji_flags[Senegal]=$'\U1F1F8\U1F1F3' +emoji_flags[SN]=$'\U1F1F8\U1F1F3' +emoji_flags[SEN]=$'\U1F1F8\U1F1F3' +emoji_flags[senegal]=$'\U1F1F8\U1F1F3' emoji_flags[Somalia]=$'\U1F1F8\U1F1F4' +emoji_flags[SO]=$'\U1F1F8\U1F1F4' +emoji_flags[SOM]=$'\U1F1F8\U1F1F4' +emoji_flags[somalia]=$'\U1F1F8\U1F1F4' emoji_flags[Suriname]=$'\U1F1F8\U1F1F7' +emoji_flags[SR]=$'\U1F1F8\U1F1F7' +emoji_flags[SUR]=$'\U1F1F8\U1F1F7' +emoji_flags[suriname]=$'\U1F1F8\U1F1F7' emoji_flags[South_Sudan]=$'\U1F1F8\U1F1F8' -emoji_flags[S_o_Tom____Pr_ncipe]=$'\U1F1F8\U1F1F9' +emoji_flags[SS]=$'\U1F1F8\U1F1F8' +emoji_flags[SSD]=$'\U1F1F8\U1F1F8' +emoji_flags[south_sudan]=$'\U1F1F8\U1F1F8' +emoji_flags[São_Tomé_and_Príncipe]=$'\U1F1F8\U1F1F9' +emoji_flags[sao_tome_principe]=$'\U1F1F8\U1F1F9' emoji_flags[El_Salvador]=$'\U1F1F8\U1F1FB' +emoji_flags[SV]=$'\U1F1F8\U1F1FB' +emoji_flags[SLV]=$'\U1F1F8\U1F1FB' +emoji_flags[el_salvador]=$'\U1F1F8\U1F1FB' emoji_flags[Sint_Maarten]=$'\U1F1F8\U1F1FD' +emoji_flags[SX]=$'\U1F1F8\U1F1FD' +emoji_flags[SXM]=$'\U1F1F8\U1F1FD' +emoji_flags[sint_maarten]=$'\U1F1F8\U1F1FD' emoji_flags[Syria]=$'\U1F1F8\U1F1FE' -emoji_flags[Swaziland]=$'\U1F1F8\U1F1FF' +emoji_flags[SY]=$'\U1F1F8\U1F1FE' +emoji_flags[SYR]=$'\U1F1F8\U1F1FE' +emoji_flags[syria]=$'\U1F1F8\U1F1FE' +emoji_flags[Eswatini]=$'\U1F1F8\U1F1FF' +emoji_flags[SZ]=$'\U1F1F8\U1F1FF' +emoji_flags[SWZ]=$'\U1F1F8\U1F1FF' +emoji_flags[swaziland]=$'\U1F1F8\U1F1FF' emoji_flags[Tristan_da_Cunha]=$'\U1F1F9\U1F1E6' -emoji_flags[Turks___Caicos_Islands]=$'\U1F1F9\U1F1E8' +emoji_flags[tristan_da_cunha]=$'\U1F1F9\U1F1E6' +emoji_flags[Turks_and_Caicos_Islands]=$'\U1F1F9\U1F1E8' +emoji_flags[TC]=$'\U1F1F9\U1F1E8' +emoji_flags[TCA]=$'\U1F1F9\U1F1E8' +emoji_flags[turks_caicos_islands]=$'\U1F1F9\U1F1E8' emoji_flags[Chad]=$'\U1F1F9\U1F1E9' +emoji_flags[TD]=$'\U1F1F9\U1F1E9' +emoji_flags[TCD]=$'\U1F1F9\U1F1E9' +emoji_flags[chad]=$'\U1F1F9\U1F1E9' emoji_flags[French_Southern_Territories]=$'\U1F1F9\U1F1EB' +emoji_flags[TF]=$'\U1F1F9\U1F1EB' +emoji_flags[ATF]=$'\U1F1F9\U1F1EB' +emoji_flags[french_southern_territories]=$'\U1F1F9\U1F1EB' emoji_flags[Togo]=$'\U1F1F9\U1F1EC' +emoji_flags[TG]=$'\U1F1F9\U1F1EC' +emoji_flags[TGO]=$'\U1F1F9\U1F1EC' +emoji_flags[togo]=$'\U1F1F9\U1F1EC' emoji_flags[Thailand]=$'\U1F1F9\U1F1ED' +emoji_flags[TH]=$'\U1F1F9\U1F1ED' +emoji_flags[THA]=$'\U1F1F9\U1F1ED' +emoji_flags[thailand]=$'\U1F1F9\U1F1ED' emoji_flags[Tajikistan]=$'\U1F1F9\U1F1EF' +emoji_flags[TJ]=$'\U1F1F9\U1F1EF' +emoji_flags[TJK]=$'\U1F1F9\U1F1EF' +emoji_flags[tajikistan]=$'\U1F1F9\U1F1EF' emoji_flags[Tokelau]=$'\U1F1F9\U1F1F0' +emoji_flags[TK]=$'\U1F1F9\U1F1F0' +emoji_flags[TKL]=$'\U1F1F9\U1F1F0' +emoji_flags[tokelau]=$'\U1F1F9\U1F1F0' emoji_flags[Timor_Leste]=$'\U1F1F9\U1F1F1' +emoji_flags[TL]=$'\U1F1F9\U1F1F1' +emoji_flags[TLS]=$'\U1F1F9\U1F1F1' +emoji_flags[timor_leste]=$'\U1F1F9\U1F1F1' emoji_flags[Turkmenistan]=$'\U1F1F9\U1F1F2' +emoji_flags[TM]=$'\U1F1F9\U1F1F2' +emoji_flags[TKM]=$'\U1F1F9\U1F1F2' +emoji_flags[turkmenistan]=$'\U1F1F9\U1F1F2' emoji_flags[Tunisia]=$'\U1F1F9\U1F1F3' +emoji_flags[TN]=$'\U1F1F9\U1F1F3' +emoji_flags[TUN]=$'\U1F1F9\U1F1F3' +emoji_flags[tunisia]=$'\U1F1F9\U1F1F3' emoji_flags[Tonga]=$'\U1F1F9\U1F1F4' +emoji_flags[TO]=$'\U1F1F9\U1F1F4' +emoji_flags[TON]=$'\U1F1F9\U1F1F4' +emoji_flags[tonga]=$'\U1F1F9\U1F1F4' emoji_flags[Turkey]=$'\U1F1F9\U1F1F7' -emoji_flags[Trinidad___Tobago]=$'\U1F1F9\U1F1F9' +emoji_flags[TR]=$'\U1F1F9\U1F1F7' +emoji_flags[TUR]=$'\U1F1F9\U1F1F7' +emoji_flags[tr]=$'\U1F1F9\U1F1F7' +emoji_flags[Trinidad_and_Tobago]=$'\U1F1F9\U1F1F9' +emoji_flags[TT]=$'\U1F1F9\U1F1F9' +emoji_flags[TTO]=$'\U1F1F9\U1F1F9' +emoji_flags[trinidad_tobago]=$'\U1F1F9\U1F1F9' emoji_flags[Tuvalu]=$'\U1F1F9\U1F1FB' +emoji_flags[TV]=$'\U1F1F9\U1F1FB' +emoji_flags[TUV]=$'\U1F1F9\U1F1FB' +emoji_flags[tuvalu]=$'\U1F1F9\U1F1FB' emoji_flags[Taiwan]=$'\U1F1F9\U1F1FC' +emoji_flags[TW]=$'\U1F1F9\U1F1FC' +emoji_flags[TWN]=$'\U1F1F9\U1F1FC' +emoji_flags[taiwan]=$'\U1F1F9\U1F1FC' emoji_flags[Tanzania]=$'\U1F1F9\U1F1FF' +emoji_flags[TZ]=$'\U1F1F9\U1F1FF' +emoji_flags[TZA]=$'\U1F1F9\U1F1FF' +emoji_flags[tanzania]=$'\U1F1F9\U1F1FF' emoji_flags[Ukraine]=$'\U1F1FA\U1F1E6' +emoji_flags[UA]=$'\U1F1FA\U1F1E6' +emoji_flags[UKR]=$'\U1F1FA\U1F1E6' +emoji_flags[ukraine]=$'\U1F1FA\U1F1E6' emoji_flags[Uganda]=$'\U1F1FA\U1F1EC' -emoji_flags[U_S__Outlying_Islands]=$'\U1F1FA\U1F1F2' +emoji_flags[UG]=$'\U1F1FA\U1F1EC' +emoji_flags[UGA]=$'\U1F1FA\U1F1EC' +emoji_flags[uganda]=$'\U1F1FA\U1F1EC' +emoji_flags[U_S_Outlying_Islands]=$'\U1F1FA\U1F1F2' +emoji_flags[us_outlying_islands]=$'\U1F1FA\U1F1F2' +emoji_flags[United_Nations]=$'\U1F1FA\U1F1F3' +emoji_flags[united_nations]=$'\U1F1FA\U1F1F3' emoji_flags[United_States]=$'\U1F1FA\U1F1F8' +emoji_flags[US]=$'\U1F1FA\U1F1F8' +emoji_flags[USA]=$'\U1F1FA\U1F1F8' +emoji_flags[us]=$'\U1F1FA\U1F1F8' emoji_flags[Uruguay]=$'\U1F1FA\U1F1FE' +emoji_flags[UY]=$'\U1F1FA\U1F1FE' +emoji_flags[URY]=$'\U1F1FA\U1F1FE' +emoji_flags[uruguay]=$'\U1F1FA\U1F1FE' emoji_flags[Uzbekistan]=$'\U1F1FA\U1F1FF' +emoji_flags[UZ]=$'\U1F1FA\U1F1FF' +emoji_flags[UZB]=$'\U1F1FA\U1F1FF' +emoji_flags[uzbekistan]=$'\U1F1FA\U1F1FF' emoji_flags[Vatican_City]=$'\U1F1FB\U1F1E6' -emoji_flags[St__Vincent___Grenadines]=$'\U1F1FB\U1F1E8' +emoji_flags[VA]=$'\U1F1FB\U1F1E6' +emoji_flags[VAT]=$'\U1F1FB\U1F1E6' +emoji_flags[vatican_city]=$'\U1F1FB\U1F1E6' +emoji_flags[St_Vincent_and_Grenadines]=$'\U1F1FB\U1F1E8' +emoji_flags[VC]=$'\U1F1FB\U1F1E8' +emoji_flags[VCT]=$'\U1F1FB\U1F1E8' +emoji_flags[st_vincent_grenadines]=$'\U1F1FB\U1F1E8' emoji_flags[Venezuela]=$'\U1F1FB\U1F1EA' +emoji_flags[VE]=$'\U1F1FB\U1F1EA' +emoji_flags[VEN]=$'\U1F1FB\U1F1EA' +emoji_flags[venezuela]=$'\U1F1FB\U1F1EA' emoji_flags[British_Virgin_Islands]=$'\U1F1FB\U1F1EC' -emoji_flags[U_S__Virgin_Islands]=$'\U1F1FB\U1F1EE' +emoji_flags[VG]=$'\U1F1FB\U1F1EC' +emoji_flags[VGB]=$'\U1F1FB\U1F1EC' +emoji_flags[british_virgin_islands]=$'\U1F1FB\U1F1EC' +emoji_flags[U_S_Virgin_Islands]=$'\U1F1FB\U1F1EE' +emoji_flags[VI]=$'\U1F1FB\U1F1EE' +emoji_flags[VIR]=$'\U1F1FB\U1F1EE' +emoji_flags[us_virgin_islands]=$'\U1F1FB\U1F1EE' emoji_flags[Vietnam]=$'\U1F1FB\U1F1F3' +emoji_flags[VN]=$'\U1F1FB\U1F1F3' +emoji_flags[VNM]=$'\U1F1FB\U1F1F3' +emoji_flags[vietnam]=$'\U1F1FB\U1F1F3' emoji_flags[Vanuatu]=$'\U1F1FB\U1F1FA' -emoji_flags[Wallis___Futuna]=$'\U1F1FC\U1F1EB' +emoji_flags[VU]=$'\U1F1FB\U1F1FA' +emoji_flags[VUT]=$'\U1F1FB\U1F1FA' +emoji_flags[vanuatu]=$'\U1F1FB\U1F1FA' +emoji_flags[Wallis_and_Futuna]=$'\U1F1FC\U1F1EB' +emoji_flags[WF]=$'\U1F1FC\U1F1EB' +emoji_flags[WLF]=$'\U1F1FC\U1F1EB' +emoji_flags[wallis_futuna]=$'\U1F1FC\U1F1EB' emoji_flags[Samoa]=$'\U1F1FC\U1F1F8' +emoji_flags[WS]=$'\U1F1FC\U1F1F8' +emoji_flags[WSM]=$'\U1F1FC\U1F1F8' +emoji_flags[samoa]=$'\U1F1FC\U1F1F8' emoji_flags[Kosovo]=$'\U1F1FD\U1F1F0' +emoji_flags[XK]=$'\U1F1FD\U1F1F0' +emoji_flags[XKX]=$'\U1F1FD\U1F1F0' +emoji_flags[kosovo]=$'\U1F1FD\U1F1F0' emoji_flags[Yemen]=$'\U1F1FE\U1F1EA' +emoji_flags[YE]=$'\U1F1FE\U1F1EA' +emoji_flags[YEM]=$'\U1F1FE\U1F1EA' +emoji_flags[yemen]=$'\U1F1FE\U1F1EA' emoji_flags[Mayotte]=$'\U1F1FE\U1F1F9' +emoji_flags[YT]=$'\U1F1FE\U1F1F9' +emoji_flags[MYT]=$'\U1F1FE\U1F1F9' +emoji_flags[mayotte]=$'\U1F1FE\U1F1F9' emoji_flags[South_Africa]=$'\U1F1FF\U1F1E6' +emoji_flags[ZA]=$'\U1F1FF\U1F1E6' +emoji_flags[ZAF]=$'\U1F1FF\U1F1E6' +emoji_flags[south_africa]=$'\U1F1FF\U1F1E6' emoji_flags[Zambia]=$'\U1F1FF\U1F1F2' +emoji_flags[ZM]=$'\U1F1FF\U1F1F2' +emoji_flags[ZMB]=$'\U1F1FF\U1F1F2' +emoji_flags[zambia]=$'\U1F1FF\U1F1F2' emoji_flags[Zimbabwe]=$'\U1F1FF\U1F1FC' +emoji_flags[ZW]=$'\U1F1FF\U1F1FC' +emoji_flags[ZWE]=$'\U1F1FF\U1F1FC' +emoji_flags[zimbabwe]=$'\U1F1FF\U1F1FC' +emoji_flags[England]=$'\U1F3F4\UE0067\UE0062\UE0065\UE006E\UE0067\UE007F' +emoji_flags[england]=$'\U1F3F4\UE0067\UE0062\UE0065\UE006E\UE0067\UE007F' +emoji_flags[Scotland]=$'\U1F3F4\UE0067\UE0062\UE0073\UE0063\UE0074\UE007F' +emoji_flags[scotland]=$'\U1F3F4\UE0067\UE0062\UE0073\UE0063\UE0074\UE007F' +emoji_flags[Wales]=$'\U1F3F4\UE0067\UE0062\UE0077\UE006C\UE0073\UE007F' +emoji_flags[wales]=$'\U1F3F4\UE0067\UE0062\UE0077\UE006C\UE0073\UE007F' + +emoji_groups[fruits]=" + grapes + melon + watermelon + tangerine + lemon + banana + pineapple + mango + red_apple + green_apple + pear + peach + cherries + strawberry + kiwi_fruit + tomato + coconut +" + +emoji_groups[vehicles]=" + locomotive + railway_car + high_speed_train + bullet_train + bullet_train_1 + metro + light_rail + station + tram + monorail + mountain_railway + tram_car + bus + oncoming_bus + trolleybus + minibus + ambulance + fire_engine + police_car + oncoming_police_car + taxi + oncoming_taxi + automobile + oncoming_automobile + sport_utility_vehicle + delivery_truck + articulated_lorry + tractor + racing_car + motorcycle + motor_scooter + manual_wheelchair + motorized_wheelchair + auto_rickshaw + bicycle + kick_scooter + skateboard + bus_stop + motorway + railway_track + oil_drum + fuel_pump + police_car_light + horizontal_traffic_light + vertical_traffic_light + stop_sign + construction + anchor + sailboat + canoe + speedboat + passenger_ship + ferry + motor_boat + ship + airplane + small_airplane + airplane_departure + airplane_arrival + parachute + seat + helicopter + suspension_railway + mountain_cableway + aerial_tramway + satellite + rocket + flying_saucer + ATM_sign + litter_in_bin_sign + potable_water + wheelchair_symbol + men_s_room + women_s_room + restroom + baby_symbol + water_closet + passport_control + customs + baggage_claim + left_luggage +" + +emoji_groups[hands]=" + waving_hand + waving_hand_light_skin_tone + waving_hand_medium_light_skin_tone + waving_hand_medium_skin_tone + waving_hand_medium_dark_skin_tone + waving_hand_dark_skin_tone + raised_back_of_hand + raised_back_of_hand_light_skin_tone + raised_back_of_hand_medium_light_skin_tone + raised_back_of_hand_medium_skin_tone + raised_back_of_hand_medium_dark_skin_tone + raised_back_of_hand_dark_skin_tone + hand_with_fingers_splayed + hand_with_fingers_splayed_light_skin_tone + hand_with_fingers_splayed_medium_light_skin_tone + hand_with_fingers_splayed_medium_skin_tone + hand_with_fingers_splayed_medium_dark_skin_tone + hand_with_fingers_splayed_dark_skin_tone + raised_hand + raised_hand_light_skin_tone + raised_hand_medium_light_skin_tone + raised_hand_medium_skin_tone + raised_hand_medium_dark_skin_tone + raised_hand_dark_skin_tone + vulcan_salute + vulcan_salute_light_skin_tone + vulcan_salute_medium_light_skin_tone + vulcan_salute_medium_skin_tone + vulcan_salute_medium_dark_skin_tone + vulcan_salute_dark_skin_tone + OK_hand + OK_hand_light_skin_tone + OK_hand_medium_light_skin_tone + OK_hand_medium_skin_tone + OK_hand_medium_dark_skin_tone + OK_hand_dark_skin_tone + pinching_hand + pinching_hand_light_skin_tone + pinching_hand_medium_light_skin_tone + pinching_hand_medium_skin_tone + pinching_hand_medium_dark_skin_tone + pinching_hand_dark_skin_tone + victory_hand + victory_hand_light_skin_tone + victory_hand_medium_light_skin_tone + victory_hand_medium_skin_tone + victory_hand_medium_dark_skin_tone + victory_hand_dark_skin_tone + crossed_fingers + crossed_fingers_light_skin_tone + crossed_fingers_medium_light_skin_tone + crossed_fingers_medium_skin_tone + crossed_fingers_medium_dark_skin_tone + crossed_fingers_dark_skin_tone + love_you_gesture + love_you_gesture_light_skin_tone + love_you_gesture_medium_light_skin_tone + love_you_gesture_medium_skin_tone + love_you_gesture_medium_dark_skin_tone + love_you_gesture_dark_skin_tone + sign_of_the_horns + sign_of_the_horns_light_skin_tone + sign_of_the_horns_medium_light_skin_tone + sign_of_the_horns_medium_skin_tone + sign_of_the_horns_medium_dark_skin_tone + sign_of_the_horns_dark_skin_tone + call_me_hand + call_me_hand_light_skin_tone + call_me_hand_medium_light_skin_tone + call_me_hand_medium_skin_tone + call_me_hand_medium_dark_skin_tone + call_me_hand_dark_skin_tone + backhand_index_pointing_left + backhand_index_pointing_left_light_skin_tone + backhand_index_pointing_left_medium_light_skin_tone + backhand_index_pointing_left_medium_skin_tone + backhand_index_pointing_left_medium_dark_skin_tone + backhand_index_pointing_left_dark_skin_tone + backhand_index_pointing_right + backhand_index_pointing_right_light_skin_tone + backhand_index_pointing_right_medium_light_skin_tone + backhand_index_pointing_right_medium_skin_tone + backhand_index_pointing_right_medium_dark_skin_tone + backhand_index_pointing_right_dark_skin_tone + backhand_index_pointing_up + backhand_index_pointing_up_light_skin_tone + backhand_index_pointing_up_medium_light_skin_tone + backhand_index_pointing_up_medium_skin_tone + backhand_index_pointing_up_medium_dark_skin_tone + backhand_index_pointing_up_dark_skin_tone + middle_finger + middle_finger_light_skin_tone + middle_finger_medium_light_skin_tone + middle_finger_medium_skin_tone + middle_finger_medium_dark_skin_tone + middle_finger_dark_skin_tone + backhand_index_pointing_down + backhand_index_pointing_down_light_skin_tone + backhand_index_pointing_down_medium_light_skin_tone + backhand_index_pointing_down_medium_skin_tone + backhand_index_pointing_down_medium_dark_skin_tone + backhand_index_pointing_down_dark_skin_tone + index_pointing_up + index_pointing_up_light_skin_tone + index_pointing_up_medium_light_skin_tone + index_pointing_up_medium_skin_tone + index_pointing_up_medium_dark_skin_tone + index_pointing_up_dark_skin_tone + thumbs_up + thumbs_up_light_skin_tone + thumbs_up_medium_light_skin_tone + thumbs_up_medium_skin_tone + thumbs_up_medium_dark_skin_tone + thumbs_up_dark_skin_tone + thumbs_down + thumbs_down_light_skin_tone + thumbs_down_medium_light_skin_tone + thumbs_down_medium_skin_tone + thumbs_down_medium_dark_skin_tone + thumbs_down_dark_skin_tone + raised_fist + raised_fist_light_skin_tone + raised_fist_medium_light_skin_tone + raised_fist_medium_skin_tone + raised_fist_medium_dark_skin_tone + raised_fist_dark_skin_tone + oncoming_fist + oncoming_fist_light_skin_tone + oncoming_fist_medium_light_skin_tone + oncoming_fist_medium_skin_tone + oncoming_fist_medium_dark_skin_tone + oncoming_fist_dark_skin_tone + left_facing_fist + left_facing_fist_light_skin_tone + left_facing_fist_medium_light_skin_tone + left_facing_fist_medium_skin_tone + left_facing_fist_medium_dark_skin_tone + left_facing_fist_dark_skin_tone + right_facing_fist + right_facing_fist_light_skin_tone + right_facing_fist_medium_light_skin_tone + right_facing_fist_medium_skin_tone + right_facing_fist_medium_dark_skin_tone + right_facing_fist_dark_skin_tone + writing_hand + writing_hand_light_skin_tone + writing_hand_medium_light_skin_tone + writing_hand_medium_skin_tone + writing_hand_medium_dark_skin_tone + writing_hand_dark_skin_tone + nail_polish + nail_polish_light_skin_tone + nail_polish_medium_light_skin_tone + nail_polish_medium_skin_tone + nail_polish_medium_dark_skin_tone + nail_polish_dark_skin_tone + selfie + selfie_light_skin_tone + selfie_medium_light_skin_tone + selfie_medium_skin_tone + selfie_medium_dark_skin_tone + selfie_dark_skin_tone +" + +emoji_groups[people]=" + person_frowning + person_frowning_light_skin_tone + person_frowning_medium_light_skin_tone + person_frowning_medium_skin_tone + person_frowning_medium_dark_skin_tone + person_frowning_dark_skin_tone + man_frowning + man_frowning_light_skin_tone + man_frowning_medium_light_skin_tone + man_frowning_medium_skin_tone + man_frowning_medium_dark_skin_tone + man_frowning_dark_skin_tone + woman_frowning + woman_frowning_light_skin_tone + woman_frowning_medium_light_skin_tone + woman_frowning_medium_skin_tone + woman_frowning_medium_dark_skin_tone + woman_frowning_dark_skin_tone + person_pouting + person_pouting_light_skin_tone + person_pouting_medium_light_skin_tone + person_pouting_medium_skin_tone + person_pouting_medium_dark_skin_tone + person_pouting_dark_skin_tone + man_pouting + man_pouting_light_skin_tone + man_pouting_medium_light_skin_tone + man_pouting_medium_skin_tone + man_pouting_medium_dark_skin_tone + man_pouting_dark_skin_tone + woman_pouting + woman_pouting_light_skin_tone + woman_pouting_medium_light_skin_tone + woman_pouting_medium_skin_tone + woman_pouting_medium_dark_skin_tone + woman_pouting_dark_skin_tone + person_gesturing_NO + person_gesturing_NO_light_skin_tone + person_gesturing_NO_medium_light_skin_tone + person_gesturing_NO_medium_skin_tone + person_gesturing_NO_medium_dark_skin_tone + person_gesturing_NO_dark_skin_tone + man_gesturing_NO + man_gesturing_NO_light_skin_tone + man_gesturing_NO_medium_light_skin_tone + man_gesturing_NO_medium_skin_tone + man_gesturing_NO_medium_dark_skin_tone + man_gesturing_NO_dark_skin_tone + woman_gesturing_NO + woman_gesturing_NO_light_skin_tone + woman_gesturing_NO_medium_light_skin_tone + woman_gesturing_NO_medium_skin_tone + woman_gesturing_NO_medium_dark_skin_tone + woman_gesturing_NO_dark_skin_tone + person_gesturing_OK + person_gesturing_OK_light_skin_tone + person_gesturing_OK_medium_light_skin_tone + person_gesturing_OK_medium_skin_tone + person_gesturing_OK_medium_dark_skin_tone + person_gesturing_OK_dark_skin_tone + man_gesturing_OK + man_gesturing_OK_light_skin_tone + man_gesturing_OK_medium_light_skin_tone + man_gesturing_OK_medium_skin_tone + man_gesturing_OK_medium_dark_skin_tone + man_gesturing_OK_dark_skin_tone + woman_gesturing_OK + woman_gesturing_OK_light_skin_tone + woman_gesturing_OK_medium_light_skin_tone + woman_gesturing_OK_medium_skin_tone + woman_gesturing_OK_medium_dark_skin_tone + woman_gesturing_OK_dark_skin_tone + person_tipping_hand + person_tipping_hand_light_skin_tone + person_tipping_hand_medium_light_skin_tone + person_tipping_hand_medium_skin_tone + person_tipping_hand_medium_dark_skin_tone + person_tipping_hand_dark_skin_tone + man_tipping_hand + man_tipping_hand_light_skin_tone + man_tipping_hand_medium_light_skin_tone + man_tipping_hand_medium_skin_tone + man_tipping_hand_medium_dark_skin_tone + man_tipping_hand_dark_skin_tone + woman_tipping_hand + woman_tipping_hand_light_skin_tone + woman_tipping_hand_medium_light_skin_tone + woman_tipping_hand_medium_skin_tone + woman_tipping_hand_medium_dark_skin_tone + woman_tipping_hand_dark_skin_tone + person_raising_hand + person_raising_hand_light_skin_tone + person_raising_hand_medium_light_skin_tone + person_raising_hand_medium_skin_tone + person_raising_hand_medium_dark_skin_tone + person_raising_hand_dark_skin_tone + man_raising_hand + man_raising_hand_light_skin_tone + man_raising_hand_medium_light_skin_tone + man_raising_hand_medium_skin_tone + man_raising_hand_medium_dark_skin_tone + man_raising_hand_dark_skin_tone + woman_raising_hand + woman_raising_hand_light_skin_tone + woman_raising_hand_medium_light_skin_tone + woman_raising_hand_medium_skin_tone + woman_raising_hand_medium_dark_skin_tone + woman_raising_hand_dark_skin_tone + deaf_person + deaf_person_light_skin_tone + deaf_person_medium_light_skin_tone + deaf_person_medium_skin_tone + deaf_person_medium_dark_skin_tone + deaf_person_dark_skin_tone + deaf_man + deaf_man_light_skin_tone + deaf_man_medium_light_skin_tone + deaf_man_medium_skin_tone + deaf_man_medium_dark_skin_tone + deaf_man_dark_skin_tone + deaf_woman + deaf_woman_light_skin_tone + deaf_woman_medium_light_skin_tone + deaf_woman_medium_skin_tone + deaf_woman_medium_dark_skin_tone + deaf_woman_dark_skin_tone + person_bowing + person_bowing_light_skin_tone + person_bowing_medium_light_skin_tone + person_bowing_medium_skin_tone + person_bowing_medium_dark_skin_tone + person_bowing_dark_skin_tone + man_bowing + man_bowing_light_skin_tone + man_bowing_medium_light_skin_tone + man_bowing_medium_skin_tone + man_bowing_medium_dark_skin_tone + man_bowing_dark_skin_tone + woman_bowing + woman_bowing_light_skin_tone + woman_bowing_medium_light_skin_tone + woman_bowing_medium_skin_tone + woman_bowing_medium_dark_skin_tone + woman_bowing_dark_skin_tone + person_facepalming + person_facepalming_light_skin_tone + person_facepalming_medium_light_skin_tone + person_facepalming_medium_skin_tone + person_facepalming_medium_dark_skin_tone + person_facepalming_dark_skin_tone + man_facepalming + man_facepalming_light_skin_tone + man_facepalming_medium_light_skin_tone + man_facepalming_medium_skin_tone + man_facepalming_medium_dark_skin_tone + man_facepalming_dark_skin_tone + woman_facepalming + woman_facepalming_light_skin_tone + woman_facepalming_medium_light_skin_tone + woman_facepalming_medium_skin_tone + woman_facepalming_medium_dark_skin_tone + woman_facepalming_dark_skin_tone + person_shrugging + person_shrugging_light_skin_tone + person_shrugging_medium_light_skin_tone + person_shrugging_medium_skin_tone + person_shrugging_medium_dark_skin_tone + person_shrugging_dark_skin_tone + man_shrugging + man_shrugging_light_skin_tone + man_shrugging_medium_light_skin_tone + man_shrugging_medium_skin_tone + man_shrugging_medium_dark_skin_tone + man_shrugging_dark_skin_tone + woman_shrugging + woman_shrugging_light_skin_tone + woman_shrugging_medium_light_skin_tone + woman_shrugging_medium_skin_tone + woman_shrugging_medium_dark_skin_tone + woman_shrugging_dark_skin_tone + man_health_worker + man_health_worker_light_skin_tone + man_health_worker_medium_light_skin_tone + man_health_worker_medium_skin_tone + man_health_worker_medium_dark_skin_tone + man_health_worker_dark_skin_tone + woman_health_worker + woman_health_worker_light_skin_tone + woman_health_worker_medium_light_skin_tone + woman_health_worker_medium_skin_tone + woman_health_worker_medium_dark_skin_tone + woman_health_worker_dark_skin_tone + man_student + man_student_light_skin_tone + man_student_medium_light_skin_tone + man_student_medium_skin_tone + man_student_medium_dark_skin_tone + man_student_dark_skin_tone + woman_student + woman_student_light_skin_tone + woman_student_medium_light_skin_tone + woman_student_medium_skin_tone + woman_student_medium_dark_skin_tone + woman_student_dark_skin_tone + man_teacher + man_teacher_light_skin_tone + man_teacher_medium_light_skin_tone + man_teacher_medium_skin_tone + man_teacher_medium_dark_skin_tone + man_teacher_dark_skin_tone + woman_teacher + woman_teacher_light_skin_tone + woman_teacher_medium_light_skin_tone + woman_teacher_medium_skin_tone + woman_teacher_medium_dark_skin_tone + woman_teacher_dark_skin_tone + man_judge + man_judge_light_skin_tone + man_judge_medium_light_skin_tone + man_judge_medium_skin_tone + man_judge_medium_dark_skin_tone + man_judge_dark_skin_tone + woman_judge + woman_judge_light_skin_tone + woman_judge_medium_light_skin_tone + woman_judge_medium_skin_tone + woman_judge_medium_dark_skin_tone + woman_judge_dark_skin_tone + man_farmer + man_farmer_light_skin_tone + man_farmer_medium_light_skin_tone + man_farmer_medium_skin_tone + man_farmer_medium_dark_skin_tone + man_farmer_dark_skin_tone + woman_farmer + woman_farmer_light_skin_tone + woman_farmer_medium_light_skin_tone + woman_farmer_medium_skin_tone + woman_farmer_medium_dark_skin_tone + woman_farmer_dark_skin_tone + man_cook + man_cook_light_skin_tone + man_cook_medium_light_skin_tone + man_cook_medium_skin_tone + man_cook_medium_dark_skin_tone + man_cook_dark_skin_tone + woman_cook + woman_cook_light_skin_tone + woman_cook_medium_light_skin_tone + woman_cook_medium_skin_tone + woman_cook_medium_dark_skin_tone + woman_cook_dark_skin_tone + man_mechanic + man_mechanic_light_skin_tone + man_mechanic_medium_light_skin_tone + man_mechanic_medium_skin_tone + man_mechanic_medium_dark_skin_tone + man_mechanic_dark_skin_tone + woman_mechanic + woman_mechanic_light_skin_tone + woman_mechanic_medium_light_skin_tone + woman_mechanic_medium_skin_tone + woman_mechanic_medium_dark_skin_tone + woman_mechanic_dark_skin_tone + man_factory_worker + man_factory_worker_light_skin_tone + man_factory_worker_medium_light_skin_tone + man_factory_worker_medium_skin_tone + man_factory_worker_medium_dark_skin_tone + man_factory_worker_dark_skin_tone + woman_factory_worker + woman_factory_worker_light_skin_tone + woman_factory_worker_medium_light_skin_tone + woman_factory_worker_medium_skin_tone + woman_factory_worker_medium_dark_skin_tone + woman_factory_worker_dark_skin_tone + man_office_worker + man_office_worker_light_skin_tone + man_office_worker_medium_light_skin_tone + man_office_worker_medium_skin_tone + man_office_worker_medium_dark_skin_tone + man_office_worker_dark_skin_tone + woman_office_worker + woman_office_worker_light_skin_tone + woman_office_worker_medium_light_skin_tone + woman_office_worker_medium_skin_tone + woman_office_worker_medium_dark_skin_tone + woman_office_worker_dark_skin_tone + man_scientist + man_scientist_light_skin_tone + man_scientist_medium_light_skin_tone + man_scientist_medium_skin_tone + man_scientist_medium_dark_skin_tone + man_scientist_dark_skin_tone + woman_scientist + woman_scientist_light_skin_tone + woman_scientist_medium_light_skin_tone + woman_scientist_medium_skin_tone + woman_scientist_medium_dark_skin_tone + woman_scientist_dark_skin_tone + man_technologist + man_technologist_light_skin_tone + man_technologist_medium_light_skin_tone + man_technologist_medium_skin_tone + man_technologist_medium_dark_skin_tone + man_technologist_dark_skin_tone + woman_technologist + woman_technologist_light_skin_tone + woman_technologist_medium_light_skin_tone + woman_technologist_medium_skin_tone + woman_technologist_medium_dark_skin_tone + woman_technologist_dark_skin_tone + man_singer + man_singer_light_skin_tone + man_singer_medium_light_skin_tone + man_singer_medium_skin_tone + man_singer_medium_dark_skin_tone + man_singer_dark_skin_tone + woman_singer + woman_singer_light_skin_tone + woman_singer_medium_light_skin_tone + woman_singer_medium_skin_tone + woman_singer_medium_dark_skin_tone + woman_singer_dark_skin_tone + man_artist + man_artist_light_skin_tone + man_artist_medium_light_skin_tone + man_artist_medium_skin_tone + man_artist_medium_dark_skin_tone + man_artist_dark_skin_tone + woman_artist + woman_artist_light_skin_tone + woman_artist_medium_light_skin_tone + woman_artist_medium_skin_tone + woman_artist_medium_dark_skin_tone + woman_artist_dark_skin_tone + man_pilot + man_pilot_light_skin_tone + man_pilot_medium_light_skin_tone + man_pilot_medium_skin_tone + man_pilot_medium_dark_skin_tone + man_pilot_dark_skin_tone + woman_pilot + woman_pilot_light_skin_tone + woman_pilot_medium_light_skin_tone + woman_pilot_medium_skin_tone + woman_pilot_medium_dark_skin_tone + woman_pilot_dark_skin_tone + man_astronaut + man_astronaut_light_skin_tone + man_astronaut_medium_light_skin_tone + man_astronaut_medium_skin_tone + man_astronaut_medium_dark_skin_tone + man_astronaut_dark_skin_tone + woman_astronaut + woman_astronaut_light_skin_tone + woman_astronaut_medium_light_skin_tone + woman_astronaut_medium_skin_tone + woman_astronaut_medium_dark_skin_tone + woman_astronaut_dark_skin_tone + man_firefighter + man_firefighter_light_skin_tone + man_firefighter_medium_light_skin_tone + man_firefighter_medium_skin_tone + man_firefighter_medium_dark_skin_tone + man_firefighter_dark_skin_tone + woman_firefighter + woman_firefighter_light_skin_tone + woman_firefighter_medium_light_skin_tone + woman_firefighter_medium_skin_tone + woman_firefighter_medium_dark_skin_tone + woman_firefighter_dark_skin_tone + police_officer + police_officer_light_skin_tone + police_officer_medium_light_skin_tone + police_officer_medium_skin_tone + police_officer_medium_dark_skin_tone + police_officer_dark_skin_tone + man_police_officer + man_police_officer_light_skin_tone + man_police_officer_medium_light_skin_tone + man_police_officer_medium_skin_tone + man_police_officer_medium_dark_skin_tone + man_police_officer_dark_skin_tone + woman_police_officer + woman_police_officer_light_skin_tone + woman_police_officer_medium_light_skin_tone + woman_police_officer_medium_skin_tone + woman_police_officer_medium_dark_skin_tone + woman_police_officer_dark_skin_tone + detective + detective_light_skin_tone + detective_medium_light_skin_tone + detective_medium_skin_tone + detective_medium_dark_skin_tone + detective_dark_skin_tone + man_detective + man_detective_light_skin_tone + man_detective_medium_light_skin_tone + man_detective_medium_skin_tone + man_detective_medium_dark_skin_tone + man_detective_dark_skin_tone + woman_detective + woman_detective_light_skin_tone + woman_detective_medium_light_skin_tone + woman_detective_medium_skin_tone + woman_detective_medium_dark_skin_tone + woman_detective_dark_skin_tone + guard + guard_light_skin_tone + guard_medium_light_skin_tone + guard_medium_skin_tone + guard_medium_dark_skin_tone + guard_dark_skin_tone + man_guard + man_guard_light_skin_tone + man_guard_medium_light_skin_tone + man_guard_medium_skin_tone + man_guard_medium_dark_skin_tone + man_guard_dark_skin_tone + woman_guard + woman_guard_light_skin_tone + woman_guard_medium_light_skin_tone + woman_guard_medium_skin_tone + woman_guard_medium_dark_skin_tone + woman_guard_dark_skin_tone + construction_worker + construction_worker_light_skin_tone + construction_worker_medium_light_skin_tone + construction_worker_medium_skin_tone + construction_worker_medium_dark_skin_tone + construction_worker_dark_skin_tone + man_construction_worker + man_construction_worker_light_skin_tone + man_construction_worker_medium_light_skin_tone + man_construction_worker_medium_skin_tone + man_construction_worker_medium_dark_skin_tone + man_construction_worker_dark_skin_tone + woman_construction_worker + woman_construction_worker_light_skin_tone + woman_construction_worker_medium_light_skin_tone + woman_construction_worker_medium_skin_tone + woman_construction_worker_medium_dark_skin_tone + woman_construction_worker_dark_skin_tone + prince + prince_light_skin_tone + prince_medium_light_skin_tone + prince_medium_skin_tone + prince_medium_dark_skin_tone + prince_dark_skin_tone + princess + princess_light_skin_tone + princess_medium_light_skin_tone + princess_medium_skin_tone + princess_medium_dark_skin_tone + princess_dark_skin_tone + person_wearing_turban + person_wearing_turban_light_skin_tone + person_wearing_turban_medium_light_skin_tone + person_wearing_turban_medium_skin_tone + person_wearing_turban_medium_dark_skin_tone + person_wearing_turban_dark_skin_tone + man_wearing_turban + man_wearing_turban_light_skin_tone + man_wearing_turban_medium_light_skin_tone + man_wearing_turban_medium_skin_tone + man_wearing_turban_medium_dark_skin_tone + man_wearing_turban_dark_skin_tone + woman_wearing_turban + woman_wearing_turban_light_skin_tone + woman_wearing_turban_medium_light_skin_tone + woman_wearing_turban_medium_skin_tone + woman_wearing_turban_medium_dark_skin_tone + woman_wearing_turban_dark_skin_tone + man_with_Chinese_cap + man_with_Chinese_cap_light_skin_tone + man_with_Chinese_cap_medium_light_skin_tone + man_with_Chinese_cap_medium_skin_tone + man_with_Chinese_cap_medium_dark_skin_tone + man_with_Chinese_cap_dark_skin_tone + woman_with_headscarf + woman_with_headscarf_light_skin_tone + woman_with_headscarf_medium_light_skin_tone + woman_with_headscarf_medium_skin_tone + woman_with_headscarf_medium_dark_skin_tone + woman_with_headscarf_dark_skin_tone + man_in_tuxedo + man_in_tuxedo_light_skin_tone + man_in_tuxedo_medium_light_skin_tone + man_in_tuxedo_medium_skin_tone + man_in_tuxedo_medium_dark_skin_tone + man_in_tuxedo_dark_skin_tone + bride_with_veil + bride_with_veil_light_skin_tone + bride_with_veil_medium_light_skin_tone + bride_with_veil_medium_skin_tone + bride_with_veil_medium_dark_skin_tone + bride_with_veil_dark_skin_tone + pregnant_woman + pregnant_woman_light_skin_tone + pregnant_woman_medium_light_skin_tone + pregnant_woman_medium_skin_tone + pregnant_woman_medium_dark_skin_tone + pregnant_woman_dark_skin_tone + breast_feeding + breast_feeding_light_skin_tone + breast_feeding_medium_light_skin_tone + breast_feeding_medium_skin_tone + breast_feeding_medium_dark_skin_tone + breast_feeding_dark_skin_tone + baby_angel + baby_angel_light_skin_tone + baby_angel_medium_light_skin_tone + baby_angel_medium_skin_tone + baby_angel_medium_dark_skin_tone + baby_angel_dark_skin_tone + Santa_Claus + Santa_Claus_light_skin_tone + Santa_Claus_medium_light_skin_tone + Santa_Claus_medium_skin_tone + Santa_Claus_medium_dark_skin_tone + Santa_Claus_dark_skin_tone + Mrs_Claus + Mrs_Claus_light_skin_tone + Mrs_Claus_medium_light_skin_tone + Mrs_Claus_medium_skin_tone + Mrs_Claus_medium_dark_skin_tone + Mrs_Claus_dark_skin_tone + superhero + superhero_light_skin_tone + superhero_medium_light_skin_tone + superhero_medium_skin_tone + superhero_medium_dark_skin_tone + superhero_dark_skin_tone + man_superhero + man_superhero_light_skin_tone + man_superhero_medium_light_skin_tone + man_superhero_medium_skin_tone + man_superhero_medium_dark_skin_tone + man_superhero_dark_skin_tone + woman_superhero + woman_superhero_light_skin_tone + woman_superhero_medium_light_skin_tone + woman_superhero_medium_skin_tone + woman_superhero_medium_dark_skin_tone + woman_superhero_dark_skin_tone + supervillain + supervillain_light_skin_tone + supervillain_medium_light_skin_tone + supervillain_medium_skin_tone + supervillain_medium_dark_skin_tone + supervillain_dark_skin_tone + man_supervillain + man_supervillain_light_skin_tone + man_supervillain_medium_light_skin_tone + man_supervillain_medium_skin_tone + man_supervillain_medium_dark_skin_tone + man_supervillain_dark_skin_tone + woman_supervillain + woman_supervillain_light_skin_tone + woman_supervillain_medium_light_skin_tone + woman_supervillain_medium_skin_tone + woman_supervillain_medium_dark_skin_tone + woman_supervillain_dark_skin_tone + mage + mage_light_skin_tone + mage_medium_light_skin_tone + mage_medium_skin_tone + mage_medium_dark_skin_tone + mage_dark_skin_tone + man_mage + man_mage_light_skin_tone + man_mage_medium_light_skin_tone + man_mage_medium_skin_tone + man_mage_medium_dark_skin_tone + man_mage_dark_skin_tone + woman_mage + woman_mage_light_skin_tone + woman_mage_medium_light_skin_tone + woman_mage_medium_skin_tone + woman_mage_medium_dark_skin_tone + woman_mage_dark_skin_tone + fairy + fairy_light_skin_tone + fairy_medium_light_skin_tone + fairy_medium_skin_tone + fairy_medium_dark_skin_tone + fairy_dark_skin_tone + man_fairy + man_fairy_light_skin_tone + man_fairy_medium_light_skin_tone + man_fairy_medium_skin_tone + man_fairy_medium_dark_skin_tone + man_fairy_dark_skin_tone + woman_fairy + woman_fairy_light_skin_tone + woman_fairy_medium_light_skin_tone + woman_fairy_medium_skin_tone + woman_fairy_medium_dark_skin_tone + woman_fairy_dark_skin_tone + vampire + vampire_light_skin_tone + vampire_medium_light_skin_tone + vampire_medium_skin_tone + vampire_medium_dark_skin_tone + vampire_dark_skin_tone + man_vampire + man_vampire_light_skin_tone + man_vampire_medium_light_skin_tone + man_vampire_medium_skin_tone + man_vampire_medium_dark_skin_tone + man_vampire_dark_skin_tone + woman_vampire + woman_vampire_light_skin_tone + woman_vampire_medium_light_skin_tone + woman_vampire_medium_skin_tone + woman_vampire_medium_dark_skin_tone + woman_vampire_dark_skin_tone + merperson + merperson_light_skin_tone + merperson_medium_light_skin_tone + merperson_medium_skin_tone + merperson_medium_dark_skin_tone + merperson_dark_skin_tone + merman + merman_light_skin_tone + merman_medium_light_skin_tone + merman_medium_skin_tone + merman_medium_dark_skin_tone + merman_dark_skin_tone + mermaid + mermaid_light_skin_tone + mermaid_medium_light_skin_tone + mermaid_medium_skin_tone + mermaid_medium_dark_skin_tone + mermaid_dark_skin_tone + elf + elf_light_skin_tone + elf_medium_light_skin_tone + elf_medium_skin_tone + elf_medium_dark_skin_tone + elf_dark_skin_tone + man_elf + man_elf_light_skin_tone + man_elf_medium_light_skin_tone + man_elf_medium_skin_tone + man_elf_medium_dark_skin_tone + man_elf_dark_skin_tone + woman_elf + woman_elf_light_skin_tone + woman_elf_medium_light_skin_tone + woman_elf_medium_skin_tone + woman_elf_medium_dark_skin_tone + woman_elf_dark_skin_tone + genie + man_genie + woman_genie + zombie + man_zombie + woman_zombie + person_getting_massage + person_getting_massage_light_skin_tone + person_getting_massage_medium_light_skin_tone + person_getting_massage_medium_skin_tone + person_getting_massage_medium_dark_skin_tone + person_getting_massage_dark_skin_tone + man_getting_massage + man_getting_massage_light_skin_tone + man_getting_massage_medium_light_skin_tone + man_getting_massage_medium_skin_tone + man_getting_massage_medium_dark_skin_tone + man_getting_massage_dark_skin_tone + woman_getting_massage + woman_getting_massage_light_skin_tone + woman_getting_massage_medium_light_skin_tone + woman_getting_massage_medium_skin_tone + woman_getting_massage_medium_dark_skin_tone + woman_getting_massage_dark_skin_tone + person_getting_haircut + person_getting_haircut_light_skin_tone + person_getting_haircut_medium_light_skin_tone + person_getting_haircut_medium_skin_tone + person_getting_haircut_medium_dark_skin_tone + person_getting_haircut_dark_skin_tone + man_getting_haircut + man_getting_haircut_light_skin_tone + man_getting_haircut_medium_light_skin_tone + man_getting_haircut_medium_skin_tone + man_getting_haircut_medium_dark_skin_tone + man_getting_haircut_dark_skin_tone + woman_getting_haircut + woman_getting_haircut_light_skin_tone + woman_getting_haircut_medium_light_skin_tone + woman_getting_haircut_medium_skin_tone + woman_getting_haircut_medium_dark_skin_tone + woman_getting_haircut_dark_skin_tone + person_walking + person_walking_light_skin_tone + person_walking_medium_light_skin_tone + person_walking_medium_skin_tone + person_walking_medium_dark_skin_tone + person_walking_dark_skin_tone + man_walking + man_walking_light_skin_tone + man_walking_medium_light_skin_tone + man_walking_medium_skin_tone + man_walking_medium_dark_skin_tone + man_walking_dark_skin_tone + woman_walking + woman_walking_light_skin_tone + woman_walking_medium_light_skin_tone + woman_walking_medium_skin_tone + woman_walking_medium_dark_skin_tone + woman_walking_dark_skin_tone + person_standing + person_standing_light_skin_tone + person_standing_medium_light_skin_tone + person_standing_medium_skin_tone + person_standing_medium_dark_skin_tone + person_standing_dark_skin_tone + man_standing + man_standing_light_skin_tone + man_standing_medium_light_skin_tone + man_standing_medium_skin_tone + man_standing_medium_dark_skin_tone + man_standing_dark_skin_tone + woman_standing + woman_standing_light_skin_tone + woman_standing_medium_light_skin_tone + woman_standing_medium_skin_tone + woman_standing_medium_dark_skin_tone + woman_standing_dark_skin_tone + person_kneeling + person_kneeling_light_skin_tone + person_kneeling_medium_light_skin_tone + person_kneeling_medium_skin_tone + person_kneeling_medium_dark_skin_tone + person_kneeling_dark_skin_tone + man_kneeling + man_kneeling_light_skin_tone + man_kneeling_medium_light_skin_tone + man_kneeling_medium_skin_tone + man_kneeling_medium_dark_skin_tone + man_kneeling_dark_skin_tone + woman_kneeling + woman_kneeling_light_skin_tone + woman_kneeling_medium_light_skin_tone + woman_kneeling_medium_skin_tone + woman_kneeling_medium_dark_skin_tone + woman_kneeling_dark_skin_tone + man_with_probing_cane + man_with_probing_cane_light_skin_tone + man_with_probing_cane_medium_light_skin_tone + man_with_probing_cane_medium_skin_tone + man_with_probing_cane_medium_dark_skin_tone + man_with_probing_cane_dark_skin_tone + woman_with_probing_cane + woman_with_probing_cane_light_skin_tone + woman_with_probing_cane_medium_light_skin_tone + woman_with_probing_cane_medium_skin_tone + woman_with_probing_cane_medium_dark_skin_tone + woman_with_probing_cane_dark_skin_tone + man_in_motorized_wheelchair + man_in_motorized_wheelchair_light_skin_tone + man_in_motorized_wheelchair_medium_light_skin_tone + man_in_motorized_wheelchair_medium_skin_tone + man_in_motorized_wheelchair_medium_dark_skin_tone + man_in_motorized_wheelchair_dark_skin_tone + woman_in_motorized_wheelchair + woman_in_motorized_wheelchair_light_skin_tone + woman_in_motorized_wheelchair_medium_light_skin_tone + woman_in_motorized_wheelchair_medium_skin_tone + woman_in_motorized_wheelchair_medium_dark_skin_tone + woman_in_motorized_wheelchair_dark_skin_tone + man_in_manual_wheelchair + man_in_manual_wheelchair_light_skin_tone + man_in_manual_wheelchair_medium_light_skin_tone + man_in_manual_wheelchair_medium_skin_tone + man_in_manual_wheelchair_medium_dark_skin_tone + man_in_manual_wheelchair_dark_skin_tone + woman_in_manual_wheelchair + woman_in_manual_wheelchair_light_skin_tone + woman_in_manual_wheelchair_medium_light_skin_tone + woman_in_manual_wheelchair_medium_skin_tone + woman_in_manual_wheelchair_medium_dark_skin_tone + woman_in_manual_wheelchair_dark_skin_tone + person_running + person_running_light_skin_tone + person_running_medium_light_skin_tone + person_running_medium_skin_tone + person_running_medium_dark_skin_tone + person_running_dark_skin_tone + man_running + man_running_light_skin_tone + man_running_medium_light_skin_tone + man_running_medium_skin_tone + man_running_medium_dark_skin_tone + man_running_dark_skin_tone + woman_running + woman_running_light_skin_tone + woman_running_medium_light_skin_tone + woman_running_medium_skin_tone + woman_running_medium_dark_skin_tone + woman_running_dark_skin_tone + woman_dancing + woman_dancing_light_skin_tone + woman_dancing_medium_light_skin_tone + woman_dancing_medium_skin_tone + woman_dancing_medium_dark_skin_tone + woman_dancing_dark_skin_tone + woman_dancing_dark_skin_tone_1 + man_dancing_light_skin_tone + man_dancing_medium_light_skin_tone + man_dancing_medium_skin_tone + man_dancing_medium_dark_skin_tone + man_dancing_dark_skin_tone + man_in_suit_levitating + man_in_suit_levitating_light_skin_tone + man_in_suit_levitating_medium_light_skin_tone + man_in_suit_levitating_medium_skin_tone + man_in_suit_levitating_medium_dark_skin_tone + man_in_suit_levitating_dark_skin_tone + people_with_bunny_ears + men_with_bunny_ears + women_with_bunny_ears + person_in_steamy_room + person_in_steamy_room_light_skin_tone + person_in_steamy_room_medium_light_skin_tone + person_in_steamy_room_medium_skin_tone + person_in_steamy_room_medium_dark_skin_tone + person_in_steamy_room_dark_skin_tone + man_in_steamy_room + man_in_steamy_room_light_skin_tone + man_in_steamy_room_medium_light_skin_tone + man_in_steamy_room_medium_skin_tone + man_in_steamy_room_medium_dark_skin_tone + man_in_steamy_room_dark_skin_tone + woman_in_steamy_room + woman_in_steamy_room_light_skin_tone + woman_in_steamy_room_medium_light_skin_tone + woman_in_steamy_room_medium_skin_tone + woman_in_steamy_room_medium_dark_skin_tone + woman_in_steamy_room_dark_skin_tone + person_climbing + person_climbing_light_skin_tone + person_climbing_medium_light_skin_tone + person_climbing_medium_skin_tone + person_climbing_medium_dark_skin_tone + person_climbing_dark_skin_tone + man_climbing + man_climbing_light_skin_tone + man_climbing_medium_light_skin_tone + man_climbing_medium_skin_tone + man_climbing_medium_dark_skin_tone + man_climbing_dark_skin_tone + woman_climbing + woman_climbing_light_skin_tone + woman_climbing_medium_light_skin_tone + woman_climbing_medium_skin_tone + woman_climbing_medium_dark_skin_tone + woman_climbing_dark_skin_tone + person_fencing + horse_racing + horse_racing_light_skin_tone + horse_racing_medium_light_skin_tone + horse_racing_medium_skin_tone + horse_racing_medium_dark_skin_tone + horse_racing_dark_skin_tone + skier + snowboarder + snowboarder_light_skin_tone + snowboarder_medium_light_skin_tone + snowboarder_medium_skin_tone + snowboarder_medium_dark_skin_tone + snowboarder_dark_skin_tone + person_golfing + person_golfing_light_skin_tone + person_golfing_medium_light_skin_tone + person_golfing_medium_skin_tone + person_golfing_medium_dark_skin_tone + person_golfing_dark_skin_tone + man_golfing + man_golfing_light_skin_tone + man_golfing_medium_light_skin_tone + man_golfing_medium_skin_tone + man_golfing_medium_dark_skin_tone + man_golfing_dark_skin_tone + woman_golfing + woman_golfing_light_skin_tone + woman_golfing_medium_light_skin_tone + woman_golfing_medium_skin_tone + woman_golfing_medium_dark_skin_tone + woman_golfing_dark_skin_tone + person_surfing + person_surfing_light_skin_tone + person_surfing_medium_light_skin_tone + person_surfing_medium_skin_tone + person_surfing_medium_dark_skin_tone + person_surfing_dark_skin_tone + man_surfing + man_surfing_light_skin_tone + man_surfing_medium_light_skin_tone + man_surfing_medium_skin_tone + man_surfing_medium_dark_skin_tone + man_surfing_dark_skin_tone + woman_surfing + woman_surfing_light_skin_tone + woman_surfing_medium_light_skin_tone + woman_surfing_medium_skin_tone + woman_surfing_medium_dark_skin_tone + woman_surfing_dark_skin_tone + person_rowing_boat + person_rowing_boat_light_skin_tone + person_rowing_boat_medium_light_skin_tone + person_rowing_boat_medium_skin_tone + person_rowing_boat_medium_dark_skin_tone + person_rowing_boat_dark_skin_tone + man_rowing_boat + man_rowing_boat_light_skin_tone + man_rowing_boat_medium_light_skin_tone + man_rowing_boat_medium_skin_tone + man_rowing_boat_medium_dark_skin_tone + man_rowing_boat_dark_skin_tone + woman_rowing_boat + woman_rowing_boat_light_skin_tone + woman_rowing_boat_medium_light_skin_tone + woman_rowing_boat_medium_skin_tone + woman_rowing_boat_medium_dark_skin_tone + woman_rowing_boat_dark_skin_tone + person_swimming + person_swimming_light_skin_tone + person_swimming_medium_light_skin_tone + person_swimming_medium_skin_tone + person_swimming_medium_dark_skin_tone + person_swimming_dark_skin_tone + man_swimming + man_swimming_light_skin_tone + man_swimming_medium_light_skin_tone + man_swimming_medium_skin_tone + man_swimming_medium_dark_skin_tone + man_swimming_dark_skin_tone + woman_swimming + woman_swimming_light_skin_tone + woman_swimming_medium_light_skin_tone + woman_swimming_medium_skin_tone + woman_swimming_medium_dark_skin_tone + woman_swimming_dark_skin_tone + person_bouncing_ball + person_bouncing_ball_light_skin_tone + person_bouncing_ball_medium_light_skin_tone + person_bouncing_ball_medium_skin_tone + person_bouncing_ball_medium_dark_skin_tone + person_bouncing_ball_dark_skin_tone + man_bouncing_ball + man_bouncing_ball_light_skin_tone + man_bouncing_ball_medium_light_skin_tone + man_bouncing_ball_medium_skin_tone + man_bouncing_ball_medium_dark_skin_tone + man_bouncing_ball_dark_skin_tone + woman_bouncing_ball + woman_bouncing_ball_light_skin_tone + woman_bouncing_ball_medium_light_skin_tone + woman_bouncing_ball_medium_skin_tone + woman_bouncing_ball_medium_dark_skin_tone + woman_bouncing_ball_dark_skin_tone + person_lifting_weights + person_lifting_weights_light_skin_tone + person_lifting_weights_medium_light_skin_tone + person_lifting_weights_medium_skin_tone + person_lifting_weights_medium_dark_skin_tone + person_lifting_weights_dark_skin_tone + man_lifting_weights + man_lifting_weights_light_skin_tone + man_lifting_weights_medium_light_skin_tone + man_lifting_weights_medium_skin_tone + man_lifting_weights_medium_dark_skin_tone + man_lifting_weights_dark_skin_tone + woman_lifting_weights + woman_lifting_weights_light_skin_tone + woman_lifting_weights_medium_light_skin_tone + woman_lifting_weights_medium_skin_tone + woman_lifting_weights_medium_dark_skin_tone + woman_lifting_weights_dark_skin_tone + person_biking + person_biking_light_skin_tone + person_biking_medium_light_skin_tone + person_biking_medium_skin_tone + person_biking_medium_dark_skin_tone + person_biking_dark_skin_tone + man_biking + man_biking_light_skin_tone + man_biking_medium_light_skin_tone + man_biking_medium_skin_tone + man_biking_medium_dark_skin_tone + man_biking_dark_skin_tone + woman_biking + woman_biking_light_skin_tone + woman_biking_medium_light_skin_tone + woman_biking_medium_skin_tone + woman_biking_medium_dark_skin_tone + woman_biking_dark_skin_tone + person_mountain_biking + person_mountain_biking_light_skin_tone + person_mountain_biking_medium_light_skin_tone + person_mountain_biking_medium_skin_tone + person_mountain_biking_medium_dark_skin_tone + person_mountain_biking_dark_skin_tone + man_mountain_biking + man_mountain_biking_light_skin_tone + man_mountain_biking_medium_light_skin_tone + man_mountain_biking_medium_skin_tone + man_mountain_biking_medium_dark_skin_tone + man_mountain_biking_dark_skin_tone + woman_mountain_biking + woman_mountain_biking_light_skin_tone + woman_mountain_biking_medium_light_skin_tone + woman_mountain_biking_medium_skin_tone + woman_mountain_biking_medium_dark_skin_tone + woman_mountain_biking_dark_skin_tone + person_cartwheeling + person_cartwheeling_light_skin_tone + person_cartwheeling_medium_light_skin_tone + person_cartwheeling_medium_skin_tone + person_cartwheeling_medium_dark_skin_tone + person_cartwheeling_dark_skin_tone + man_cartwheeling + man_cartwheeling_light_skin_tone + man_cartwheeling_medium_light_skin_tone + man_cartwheeling_medium_skin_tone + man_cartwheeling_medium_dark_skin_tone + man_cartwheeling_dark_skin_tone + woman_cartwheeling + woman_cartwheeling_light_skin_tone + woman_cartwheeling_medium_light_skin_tone + woman_cartwheeling_medium_skin_tone + woman_cartwheeling_medium_dark_skin_tone + woman_cartwheeling_dark_skin_tone + people_wrestling + men_wrestling + women_wrestling + person_playing_water_polo + person_playing_water_polo_light_skin_tone + person_playing_water_polo_medium_light_skin_tone + person_playing_water_polo_medium_skin_tone + person_playing_water_polo_medium_dark_skin_tone + person_playing_water_polo_dark_skin_tone + man_playing_water_polo + man_playing_water_polo_light_skin_tone + man_playing_water_polo_medium_light_skin_tone + man_playing_water_polo_medium_skin_tone + man_playing_water_polo_medium_dark_skin_tone + man_playing_water_polo_dark_skin_tone + woman_playing_water_polo + woman_playing_water_polo_light_skin_tone + woman_playing_water_polo_medium_light_skin_tone + woman_playing_water_polo_medium_skin_tone + woman_playing_water_polo_medium_dark_skin_tone + woman_playing_water_polo_dark_skin_tone + person_playing_handball + person_playing_handball_light_skin_tone + person_playing_handball_medium_light_skin_tone + person_playing_handball_medium_skin_tone + person_playing_handball_medium_dark_skin_tone + person_playing_handball_dark_skin_tone + man_playing_handball + man_playing_handball_light_skin_tone + man_playing_handball_medium_light_skin_tone + man_playing_handball_medium_skin_tone + man_playing_handball_medium_dark_skin_tone + man_playing_handball_dark_skin_tone + woman_playing_handball + woman_playing_handball_light_skin_tone + woman_playing_handball_medium_light_skin_tone + woman_playing_handball_medium_skin_tone + woman_playing_handball_medium_dark_skin_tone + woman_playing_handball_dark_skin_tone + person_juggling + person_juggling_light_skin_tone + person_juggling_medium_light_skin_tone + person_juggling_medium_skin_tone + person_juggling_medium_dark_skin_tone + person_juggling_dark_skin_tone + man_juggling + man_juggling_light_skin_tone + man_juggling_medium_light_skin_tone + man_juggling_medium_skin_tone + man_juggling_medium_dark_skin_tone + man_juggling_dark_skin_tone + woman_juggling + woman_juggling_light_skin_tone + woman_juggling_medium_light_skin_tone + woman_juggling_medium_skin_tone + woman_juggling_medium_dark_skin_tone + woman_juggling_dark_skin_tone + person_in_lotus_position + person_in_lotus_position_light_skin_tone + person_in_lotus_position_medium_light_skin_tone + person_in_lotus_position_medium_skin_tone + person_in_lotus_position_medium_dark_skin_tone + person_in_lotus_position_dark_skin_tone + man_in_lotus_position + man_in_lotus_position_light_skin_tone + man_in_lotus_position_medium_light_skin_tone + man_in_lotus_position_medium_skin_tone + man_in_lotus_position_medium_dark_skin_tone + man_in_lotus_position_dark_skin_tone + woman_in_lotus_position + woman_in_lotus_position_light_skin_tone + woman_in_lotus_position_medium_light_skin_tone + woman_in_lotus_position_medium_skin_tone + woman_in_lotus_position_medium_dark_skin_tone + woman_in_lotus_position_dark_skin_tone + person_taking_bath + person_taking_bath_light_skin_tone + person_taking_bath_medium_light_skin_tone + person_taking_bath_medium_skin_tone + person_taking_bath_medium_dark_skin_tone + person_taking_bath_dark_skin_tone + person_in_bed + person_in_bed_light_skin_tone + person_in_bed_medium_light_skin_tone + person_in_bed_medium_skin_tone + person_in_bed_medium_dark_skin_tone + person_in_bed_dark_skin_tone + people_holding_hands + people_holding_hands_light_skin_tone + people_holding_hands_medium_light_skin_tone_light_skin_tone + people_holding_hands_medium_light_skin_tone_light_skin_tone_1 + people_holding_hands_medium_skin_tone_light_skin_tone + people_holding_hands_medium_skin_tone_medium_light_skin_tone + people_holding_hands_medium_skin_tone_medium_light_skin_tone_1 + people_holding_hands_medium_dark_skin_tone_light_skin_tone + people_holding_hands_medium_dark_skin_tone_medium_light_skin_tone + people_holding_hands_medium_dark_skin_tone_medium_skin_tone + people_holding_hands_medium_dark_skin_tone_medium_skin_tone_1 + people_holding_hands_dark_skin_tone_light_skin_tone + people_holding_hands_dark_skin_tone_medium_light_skin_tone + people_holding_hands_dark_skin_tone_medium_skin_tone + people_holding_hands_dark_skin_tone_medium_dark_skin_tone + people_holding_hands_dark_skin_tone_medium_dark_skin_tone_1 + women_holding_hands + women_holding_hands_light_skin_tone + women_holding_hands_medium_light_skin_tone_light_skin_tone + women_holding_hands_medium_light_skin_tone_light_skin_tone_1 + women_holding_hands_medium_skin_tone_light_skin_tone + women_holding_hands_medium_skin_tone_medium_light_skin_tone + women_holding_hands_medium_skin_tone_medium_light_skin_tone_1 + women_holding_hands_medium_dark_skin_tone_light_skin_tone + women_holding_hands_medium_dark_skin_tone_medium_light_skin_tone + women_holding_hands_medium_dark_skin_tone_medium_skin_tone + women_holding_hands_medium_dark_skin_tone_medium_skin_tone_1 + women_holding_hands_dark_skin_tone_light_skin_tone + women_holding_hands_dark_skin_tone_medium_light_skin_tone + women_holding_hands_dark_skin_tone_medium_skin_tone + women_holding_hands_dark_skin_tone_medium_dark_skin_tone + women_holding_hands_dark_skin_tone_medium_dark_skin_tone_1 + woman_and_man_holding_hands + woman_and_man_holding_hands_light_skin_tone + woman_and_man_holding_hands_light_skin_tone_medium_light_skin_tone + woman_and_man_holding_hands_light_skin_tone_medium_skin_tone + woman_and_man_holding_hands_light_skin_tone_medium_dark_skin_tone + woman_and_man_holding_hands_light_skin_tone_dark_skin_tone + woman_and_man_holding_hands_medium_light_skin_tone_light_skin_tone + woman_and_man_holding_hands_medium_light_skin_tone_light_skin_tone_1 + woman_and_man_holding_hands_medium_light_skin_tone_medium_skin_tone + woman_and_man_holding_hands_medium_light_skin_tone_medium_dark_skin_tone + woman_and_man_holding_hands_medium_light_skin_tone_dark_skin_tone + woman_and_man_holding_hands_medium_skin_tone_light_skin_tone + woman_and_man_holding_hands_medium_skin_tone_medium_light_skin_tone + woman_and_man_holding_hands_medium_skin_tone_medium_light_skin_tone_1 + woman_and_man_holding_hands_medium_skin_tone_medium_dark_skin_tone + woman_and_man_holding_hands_medium_skin_tone_dark_skin_tone + woman_and_man_holding_hands_medium_dark_skin_tone_light_skin_tone + woman_and_man_holding_hands_medium_dark_skin_tone_medium_light_skin_tone + woman_and_man_holding_hands_medium_dark_skin_tone_medium_skin_tone + woman_and_man_holding_hands_medium_dark_skin_tone_medium_skin_tone_1 + woman_and_man_holding_hands_medium_dark_skin_tone_dark_skin_tone + woman_and_man_holding_hands_dark_skin_tone_light_skin_tone + woman_and_man_holding_hands_dark_skin_tone_medium_light_skin_tone + woman_and_man_holding_hands_dark_skin_tone_medium_skin_tone + woman_and_man_holding_hands_dark_skin_tone_medium_dark_skin_tone + woman_and_man_holding_hands_dark_skin_tone_medium_dark_skin_tone_1 + men_holding_hands + men_holding_hands_light_skin_tone + men_holding_hands_medium_light_skin_tone_light_skin_tone + men_holding_hands_medium_light_skin_tone_light_skin_tone_1 + men_holding_hands_medium_skin_tone_light_skin_tone + men_holding_hands_medium_skin_tone_medium_light_skin_tone + men_holding_hands_medium_skin_tone_medium_light_skin_tone_1 + men_holding_hands_medium_dark_skin_tone_light_skin_tone + men_holding_hands_medium_dark_skin_tone_medium_light_skin_tone + men_holding_hands_medium_dark_skin_tone_medium_skin_tone + men_holding_hands_medium_dark_skin_tone_medium_skin_tone_1 + men_holding_hands_dark_skin_tone_light_skin_tone + men_holding_hands_dark_skin_tone_medium_light_skin_tone + men_holding_hands_dark_skin_tone_medium_skin_tone + men_holding_hands_dark_skin_tone_medium_dark_skin_tone + men_holding_hands_dark_skin_tone_medium_dark_skin_tone_1 + kiss + kiss_woman_man + kiss_man_man + kiss_woman_woman + couple_with_heart + couple_with_heart_woman_man + couple_with_heart_man_man + couple_with_heart_woman_woman + family + family_man_woman_boy + family_man_woman_girl + family_man_woman_girl_boy + family_man_woman_boy_boy + family_man_woman_girl_girl + family_man_man_boy + family_man_man_girl + family_man_man_girl_boy + family_man_man_boy_boy + family_man_man_girl_girl + family_woman_woman_boy + family_woman_woman_girl + family_woman_woman_girl_boy + family_woman_woman_boy_boy + family_woman_woman_girl_girl + family_man_boy + family_man_boy_boy + family_man_girl + family_man_girl_boy + family_man_girl_girl + family_woman_boy + family_woman_boy_boy + family_woman_girl + family_woman_girl_boy + family_woman_girl_girl + speaking_head + bust_in_silhouette + busts_in_silhouette + footprints +" + +emoji_groups[animals]=" + monkey_face + monkey_face_1 + gorilla + orangutan + dog_face + dog_face_1 + guide_dog + service_dog + poodle + wolf + fox + raccoon + cat_face + cat_face_1 + lion + tiger_face + tiger_face_1 + leopard + horse_face + horse_face_1 + unicorn + zebra + deer + cow_face + ox + water_buffalo + cow + pig_face + pig_face_1 + boar + pig_nose + ram + ewe + goat + camel + two_hump_camel + llama + giraffe + elephant + rhinoceros + hippopotamus + mouse_face + mouse_face_1 + rat + hamster + rabbit_face + rabbit_face_1 + chipmunk + hedgehog + bat + bear + koala + panda + sloth + otter + skunk + kangaroo + badger + paw_prints + turkey + chicken + rooster + hatching_chick + baby_chick + front_facing_baby_chick + bird + penguin + dove + eagle + duck + swan + owl + flamingo + peacock + parrot + frog + crocodile + turtle + lizard + snake + dragon_face + dragon_face_1 + sauropod + T_Rex + spouting_whale + spouting_whale_1 + dolphin + fish + tropical_fish + blowfish + shark + octopus + spiral_shell + snail + butterfly + bug + ant + honeybee + lady_beetle + cricket + spider + spider_web + scorpion + mosquito + microbe +" + +emoji_groups[faces]=" + grinning_face + grinning_face_with_big_eyes + grinning_face_with_smiling_eyes + beaming_face_with_smiling_eyes + grinning_squinting_face + grinning_face_with_sweat + rolling_on_the_floor_laughing + face_with_tears_of_joy + slightly_smiling_face + upside_down_face + winking_face + smiling_face_with_smiling_eyes + smiling_face_with_halo + smiling_face_with_hearts + smiling_face_with_heart_eyes + star_struck + face_blowing_a_kiss + kissing_face + smiling_face + kissing_face_with_closed_eyes + kissing_face_with_smiling_eyes + face_savoring_food + face_with_tongue + winking_face_with_tongue + zany_face + squinting_face_with_tongue + money_mouth_face + hugging_face + face_with_hand_over_mouth + shushing_face + thinking_face + zipper_mouth_face + face_with_raised_eyebrow + neutral_face + expressionless_face + face_without_mouth + smirking_face + unamused_face + face_with_rolling_eyes + grimacing_face + lying_face + relieved_face + pensive_face + sleepy_face + drooling_face + sleeping_face + face_with_medical_mask + face_with_thermometer + face_with_head_bandage + nauseated_face + face_vomiting + sneezing_face + hot_face + cold_face + woozy_face + dizzy_face + exploding_head + cowboy_hat_face + partying_face + smiling_face_with_sunglasses + nerd_face + face_with_monocle + confused_face + worried_face + slightly_frowning_face + slightly_frowning_face_1 + face_with_open_mouth + hushed_face + astonished_face + flushed_face + pleading_face + frowning_face_with_open_mouth + anguished_face + fearful_face + anxious_face_with_sweat + sad_but_relieved_face + crying_face + loudly_crying_face + face_screaming_in_fear + confounded_face + persevering_face + disappointed_face + downcast_face_with_sweat + weary_face + tired_face + yawning_face + face_with_steam_from_nose + pouting_face + angry_face + face_with_symbols_on_mouth + smiling_face_with_horns + angry_face_with_horns + skull + skull_and_crossbones + pile_of_poo + clown_face + ogre + goblin + ghost + alien + alien_monster + robot +" +emoji_groups[flags]=" + chequered_flag + triangular_flag + crossed_flags + black_flag + white_flag + rainbow_flag + pirate_flag + Ascension_Island + Andorra + United_Arab_Emirates + Afghanistan + Antigua_and_Barbuda + Anguilla + Albania + Armenia + Angola + Antarctica + Argentina + American_Samoa + Austria + Australia + Aruba + Åland_Islands + Azerbaijan + Bosnia_and_Herzegovina + Barbados + Bangladesh + Belgium + Burkina_Faso + Bulgaria + Bahrain + Burundi + Benin + St_Barthélemy + Bermuda + Brunei + Bolivia + Caribbean_Netherlands + Brazil + Bahamas + Bhutan + Bouvet_Island + Botswana + Belarus + Belize + Canada + Cocos_Keeling_Islands + Congo__Kinshasa + Central_African_Republic + Congo__Brazzaville + Switzerland + Côte_d_Ivoire + Cook_Islands + Chile + Cameroon + China + Colombia + Clipperton_Island + Costa_Rica + Cuba + Cape_Verde + Curaçao + Christmas_Island + Cyprus + Czechia + Germany + Diego_Garcia + Djibouti + Denmark + Dominica + Dominican_Republic + Algeria + Ceuta_and_Melilla + Ecuador + Estonia + Egypt + Western_Sahara + Eritrea + Spain + Ethiopia + European_Union + Finland + Fiji + Falkland_Islands + Micronesia + Faroe_Islands + France + Gabon + United_Kingdom + Grenada + Georgia + French_Guiana + Guernsey + Ghana + Gibraltar + Greenland + Gambia + Guinea + Guadeloupe + Equatorial_Guinea + Greece + South_Georgia_and_South_Sandwich_Islands + Guatemala + Guam + Guinea_Bissau + Guyana + Hong_Kong_SAR_China + Heard_and_McDonald_Islands + Honduras + Croatia + Haiti + Hungary + Canary_Islands + Indonesia + Ireland + Israel + Isle_of_Man + India + British_Indian_Ocean_Territory + Iraq + Iran + Iceland + Italy + Jersey + Jamaica + Jordan + Japan + Kenya + Kyrgyzstan + Cambodia + Kiribati + Comoros + St_Kitts_and_Nevis + North_Korea + South_Korea + Kuwait + Cayman_Islands + Kazakhstan + Laos + Lebanon + St_Lucia + Liechtenstein + Sri_Lanka + Liberia + Lesotho + Lithuania + Luxembourg + Latvia + Libya + Morocco + Monaco + Moldova + Montenegro + St_Martin + Madagascar + Marshall_Islands + Macedonia + Mali + Myanmar_Burma_ + Mongolia + Macao_SAR_China + Northern_Mariana_Islands + Martinique + Mauritania + Montserrat + Malta + Mauritius + Maldives + Malawi + Mexico + Malaysia + Mozambique + Namibia + New_Caledonia + Niger + Norfolk_Island + Nigeria + Nicaragua + Netherlands + Norway + Nepal + Nauru + Niue + New_Zealand + Oman + Panama + Peru + French_Polynesia + Papua_New_Guinea + Philippines + Pakistan + Poland + St_Pierre_and_Miquelon + Pitcairn_Islands + Puerto_Rico + Palestinian_Territories + Portugal + Palau + Paraguay + Qatar + Réunion + Romania + Serbia + Russia + Rwanda + Saudi_Arabia + Solomon_Islands + Seychelles + Sudan + Sweden + Singapore + St_Helena + Slovenia + Svalbard_and_Jan_Mayen + Slovakia + Sierra_Leone + San_Marino + Senegal + Somalia + Suriname + South_Sudan + São_Tomé_and_Príncipe + El_Salvador + Sint_Maarten + Syria + Eswatini + Tristan_da_Cunha + Turks_and_Caicos_Islands + Chad + French_Southern_Territories + Togo + Thailand + Tajikistan + Tokelau + Timor_Leste + Turkmenistan + Tunisia + Tonga + Turkey + Trinidad_and_Tobago + Tuvalu + Taiwan + Tanzania + Ukraine + Uganda + U_S_Outlying_Islands + United_Nations + United_States + Uruguay + Uzbekistan + Vatican_City + St_Vincent_and_Grenadines + Venezuela + British_Virgin_Islands + U_S_Virgin_Islands + Vietnam + Vanuatu + Wallis_and_Futuna + Samoa + Kosovo + Yemen + Mayotte + South_Africa + Zambia + Zimbabwe + England + Scotland + Wales +" diff --git a/plugins/emoji/emoji-data.txt b/plugins/emoji/emoji-data.txt index 2d6d64e2b..59b7e92d7 100644 --- a/plugins/emoji/emoji-data.txt +++ b/plugins/emoji/emoji-data.txt @@ -1,1308 +1,4122 @@ -# DRAFT emoji-data.txt -# For details about the format and other information, see /../../../reports/tr51/index.html#Data_Files. +# emoji-data.txt +# (Originally emoji-test.txt) +# (Retrieved from https://unicode.org/Public/emoji/12.0/emoji-test.txt) + +# Date: 2019-01-27, 15:43:01 GMT +# © 2019 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see http://www.unicode.org/terms_of_use.html # -# Format: Code ; Default_Emoji_Style ; Emoji_Level ; Emoji_Modifier_Status ; Emoji_Sources # Comment +# Emoji Keyboard/Display Test Data for UTS #51 +# Version: 12.0 # -# Field 1 — Default_Emoji_Style: -# text: default text presentation -# emoji: default emoji presentation -# Field 2 — Emoji_Level: -# L1: level 1 emoji -# L2: level 2 emoji -# NA: not applicable -# Field 3 — Emoji_Modifier_Status: -# modifier: an emoji modifier -# primary: a primary emoji modifier base -# secondary: a secondary emoji modifier base -# none: not applicable -# Field 4 — Emoji_Sources: -# one or more values from {z, a, j, w, x} -# see the key in https://www.unicode.org/draft/reports/tr51/tr51.html#Major_Sources -# NA: not applicable -# Comment — currently contains the version where the character was first encoded, -# followed by: -# - a character name in uppercase (for a single character), -# - a keycap name, -# - an associated flag, where is associated with value unicode region code +# For documentation and usage, see http://www.unicode.org/reports/tr51 # -00A9 ; text ; L1 ; none ; j # V1.1 (©) COPYRIGHT SIGN -00AE ; text ; L1 ; none ; j # V1.1 (®) REGISTERED SIGN -203C ; text ; L1 ; none ; a j # V1.1 (‼) DOUBLE EXCLAMATION MARK -2049 ; text ; L1 ; none ; a j # V3.0 (⁉) EXCLAMATION QUESTION MARK -2122 ; text ; L1 ; none ; j # V1.1 (™) TRADE MARK SIGN -2139 ; text ; L1 ; none ; j # V3.0 (ℹ) INFORMATION SOURCE -2194 ; text ; L1 ; none ; z j # V1.1 (↔) LEFT RIGHT ARROW -2195 ; text ; L1 ; none ; z j # V1.1 (↕) UP DOWN ARROW -2196 ; text ; L1 ; none ; j # V1.1 (↖) NORTH WEST ARROW -2197 ; text ; L1 ; none ; j # V1.1 (↗) NORTH EAST ARROW -2198 ; text ; L1 ; none ; j # V1.1 (↘) SOUTH EAST ARROW -2199 ; text ; L1 ; none ; j # V1.1 (↙) SOUTH WEST ARROW -21A9 ; text ; L1 ; none ; j # V1.1 (↩) LEFTWARDS ARROW WITH HOOK -21AA ; text ; L1 ; none ; j # V1.1 (↪) RIGHTWARDS ARROW WITH HOOK -231A ; emoji ; L1 ; none ; j # V1.1 (⌚) WATCH -231B ; emoji ; L1 ; none ; j # V1.1 (⌛) HOURGLASS -2328 ; text ; L2 ; none ; x # V1.1 (⌨) KEYBOARD -23CF ; text ; L2 ; none ; x # V4.0 (⏏) EJECT SYMBOL -23E9 ; emoji ; L1 ; none ; j w # V6.0 (⏩) BLACK RIGHT-POINTING DOUBLE TRIANGLE -23EA ; emoji ; L1 ; none ; j w # V6.0 (⏪) BLACK LEFT-POINTING DOUBLE TRIANGLE -23EB ; emoji ; L1 ; none ; j # V6.0 (⏫) BLACK UP-POINTING DOUBLE TRIANGLE -23EC ; emoji ; L1 ; none ; j # V6.0 (⏬) BLACK DOWN-POINTING DOUBLE TRIANGLE -23ED ; text ; L2 ; none ; w # V6.0 (⏭) BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR -23EE ; text ; L2 ; none ; w # V6.0 (⏮) BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR -23EF ; text ; L2 ; none ; x # V6.0 (⏯) BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR -23F0 ; emoji ; L1 ; none ; j # V6.0 (⏰) ALARM CLOCK -23F1 ; text ; L2 ; none ; x # V6.0 (⏱) STOPWATCH -23F2 ; text ; L2 ; none ; x # V6.0 (⏲) TIMER CLOCK -23F3 ; emoji ; L1 ; none ; j w # V6.0 (⏳) HOURGLASS WITH FLOWING SAND -23F8 ; text ; L2 ; none ; w # V7.0 (⏸) DOUBLE VERTICAL BAR -23F9 ; text ; L2 ; none ; w # V7.0 (⏹) BLACK SQUARE FOR STOP -23FA ; text ; L2 ; none ; w # V7.0 (⏺) BLACK CIRCLE FOR RECORD -24C2 ; text ; L1 ; none ; j # V1.1 (Ⓜ) CIRCLED LATIN CAPITAL LETTER M -25AA ; text ; L1 ; none ; j w # V1.1 (▪) BLACK SMALL SQUARE -25AB ; text ; L1 ; none ; j # V1.1 (▫) WHITE SMALL SQUARE -25B6 ; text ; L1 ; none ; a j w # V1.1 (▶) BLACK RIGHT-POINTING TRIANGLE -25C0 ; text ; L1 ; none ; a j w # V1.1 (◀) BLACK LEFT-POINTING TRIANGLE -25FB ; text ; L1 ; none ; j # V3.2 (◻) WHITE MEDIUM SQUARE -25FC ; text ; L1 ; none ; j w # V3.2 (◼) BLACK MEDIUM SQUARE -25FD ; emoji ; L1 ; none ; j # V3.2 (◽) WHITE MEDIUM SMALL SQUARE -25FE ; emoji ; L1 ; none ; j w # V3.2 (◾) BLACK MEDIUM SMALL SQUARE -2600 ; text ; L1 ; none ; a j # V1.1 (☀) BLACK SUN WITH RAYS -2601 ; text ; L1 ; none ; a j w # V1.1 (☁) CLOUD -2602 ; text ; L2 ; none ; a # V1.1 (☂) UMBRELLA -2603 ; text ; L2 ; none ; a # V1.1 (☃) SNOWMAN -2604 ; text ; L2 ; none ; x # V1.1 (☄) COMET -260E ; text ; L1 ; none ; z a j # V1.1 (☎) BLACK TELEPHONE -2611 ; text ; L1 ; none ; j w # V1.1 (☑) BALLOT BOX WITH CHECK -2614 ; emoji ; L1 ; none ; a j # V4.0 (☔) UMBRELLA WITH RAIN DROPS -2615 ; emoji ; L1 ; none ; j # V4.0 (☕) HOT BEVERAGE -2618 ; text ; L2 ; none ; x # V4.1 (☘) SHAMROCK -261D ; text ; L1 ; secondary ; j w # V1.1 (☝) WHITE UP POINTING INDEX -2620 ; text ; L2 ; none ; x # V1.1 (☠) SKULL AND CROSSBONES -2622 ; text ; L2 ; none ; x # V1.1 (☢) RADIOACTIVE SIGN -2623 ; text ; L2 ; none ; x # V1.1 (☣) BIOHAZARD SIGN -2626 ; text ; L2 ; none ; x # V1.1 (☦) ORTHODOX CROSS -262A ; text ; L2 ; none ; w # V1.1 (☪) STAR AND CRESCENT -262E ; text ; L2 ; none ; x # V1.1 (☮) PEACE SYMBOL -262F ; text ; L2 ; none ; w # V1.1 (☯) YIN YANG -2638 ; text ; L2 ; none ; w # V1.1 (☸) WHEEL OF DHARMA -2639 ; text ; L2 ; secondary ; w # V1.1 (☹) WHITE FROWNING FACE -263A ; text ; L1 ; secondary ; j w # V1.1 (☺) WHITE SMILING FACE -2648 ; emoji ; L1 ; none ; j w # V1.1 (♈) ARIES -2649 ; emoji ; L1 ; none ; j w # V1.1 (♉) TAURUS -264A ; emoji ; L1 ; none ; j w # V1.1 (♊) GEMINI -264B ; emoji ; L1 ; none ; j w # V1.1 (♋) CANCER -264C ; emoji ; L1 ; none ; j w # V1.1 (♌) LEO -264D ; emoji ; L1 ; none ; j w # V1.1 (♍) VIRGO -264E ; emoji ; L1 ; none ; j w # V1.1 (♎) LIBRA -264F ; emoji ; L1 ; none ; j w # V1.1 (♏) SCORPIUS -2650 ; emoji ; L1 ; none ; j w # V1.1 (♐) SAGITTARIUS -2651 ; emoji ; L1 ; none ; j w # V1.1 (♑) CAPRICORN -2652 ; emoji ; L1 ; none ; j w # V1.1 (♒) AQUARIUS -2653 ; emoji ; L1 ; none ; j w # V1.1 (♓) PISCES -2660 ; text ; L1 ; none ; z a j # V1.1 (♠) BLACK SPADE SUIT -2663 ; text ; L1 ; none ; z a j # V1.1 (♣) BLACK CLUB SUIT -2665 ; text ; L1 ; none ; z a j # V1.1 (♥) BLACK HEART SUIT -2666 ; text ; L1 ; none ; z a j # V1.1 (♦) BLACK DIAMOND SUIT -2668 ; text ; L1 ; none ; a j # V1.1 (♨) HOT SPRINGS -267B ; text ; L1 ; none ; j # V3.2 (♻) BLACK UNIVERSAL RECYCLING SYMBOL -267F ; emoji ; L1 ; none ; j w # V4.1 (♿) WHEELCHAIR SYMBOL -2692 ; text ; L2 ; none ; x # V4.1 (⚒) HAMMER AND PICK -2693 ; emoji ; L1 ; none ; a j # V4.1 (⚓) ANCHOR -2694 ; text ; L2 ; none ; x # V4.1 (⚔) CROSSED SWORDS -2696 ; text ; L2 ; none ; x # V4.1 (⚖) SCALES -2697 ; text ; L2 ; none ; x # V4.1 (⚗) ALEMBIC -2699 ; text ; L2 ; none ; x # V4.1 (⚙) GEAR -269B ; text ; L2 ; none ; x # V4.1 (⚛) ATOM SYMBOL -269C ; text ; L2 ; none ; x # V4.1 (⚜) FLEUR-DE-LIS -26A0 ; text ; L1 ; none ; j # V4.0 (⚠) WARNING SIGN -26A1 ; emoji ; L1 ; none ; a j # V4.0 (⚡) HIGH VOLTAGE SIGN -26AA ; emoji ; L1 ; none ; j # V4.1 (⚪) MEDIUM WHITE CIRCLE -26AB ; emoji ; L1 ; none ; j w # V4.1 (⚫) MEDIUM BLACK CIRCLE -26B0 ; text ; L2 ; none ; x # V4.1 (⚰) COFFIN -26B1 ; text ; L2 ; none ; x # V4.1 (⚱) FUNERAL URN -26BD ; emoji ; L1 ; none ; j # V5.2 (⚽) SOCCER BALL -26BE ; emoji ; L1 ; none ; a j # V5.2 (⚾) BASEBALL -26C4 ; emoji ; L1 ; none ; a j # V5.2 (⛄) SNOWMAN WITHOUT SNOW -26C5 ; emoji ; L1 ; none ; a j # V5.2 (⛅) SUN BEHIND CLOUD -26C8 ; text ; L2 ; none ; a # V5.2 (⛈) THUNDER CLOUD AND RAIN -26CE ; emoji ; L1 ; none ; a j # V6.0 (⛎) OPHIUCHUS -26CF ; text ; L2 ; none ; a # V5.2 (⛏) PICK -26D1 ; text ; L2 ; none ; a # V5.2 (⛑) HELMET WITH WHITE CROSS -26D3 ; text ; L2 ; none ; a # V5.2 (⛓) CHAINS -26D4 ; emoji ; L1 ; none ; a j # V5.2 (⛔) NO ENTRY -26E9 ; text ; L2 ; none ; a # V5.2 (⛩) SHINTO SHRINE -26EA ; emoji ; L1 ; none ; a j # V5.2 (⛪) CHURCH -26F0 ; text ; L2 ; none ; a # V5.2 (⛰) MOUNTAIN -26F1 ; text ; L2 ; none ; a # V5.2 (⛱) UMBRELLA ON GROUND -26F2 ; emoji ; L1 ; none ; a j # V5.2 (⛲) FOUNTAIN -26F3 ; emoji ; L1 ; none ; a j w # V5.2 (⛳) FLAG IN HOLE -26F4 ; text ; L2 ; none ; a # V5.2 (⛴) FERRY -26F5 ; emoji ; L1 ; none ; a j # V5.2 (⛵) SAILBOAT -26F7 ; text ; L2 ; none ; a w # V5.2 (⛷) SKIER -26F8 ; text ; L2 ; none ; a # V5.2 (⛸) ICE SKATE -26F9 ; text ; L2 ; none ; a # V5.2 (⛹) PERSON WITH BALL -26FA ; emoji ; L1 ; none ; a j # V5.2 (⛺) TENT -26FD ; emoji ; L1 ; none ; a j # V5.2 (⛽) FUEL PUMP -2702 ; text ; L1 ; none ; z j w # V1.1 (✂) BLACK SCISSORS -2705 ; emoji ; L1 ; none ; j # V6.0 (✅) WHITE HEAVY CHECK MARK -2708 ; text ; L1 ; none ; z a j w # V1.1 (✈) AIRPLANE -2709 ; text ; L1 ; none ; z j # V1.1 (✉) ENVELOPE -270A ; emoji ; L1 ; secondary ; j # V6.0 (✊) RAISED FIST -270B ; emoji ; L1 ; secondary ; j # V6.0 (✋) RAISED HAND -270C ; text ; L1 ; secondary ; z j w # V1.1 (✌) VICTORY HAND -270D ; text ; L2 ; secondary ; z w # V1.1 (✍) WRITING HAND -270F ; text ; L1 ; none ; z j # V1.1 (✏) PENCIL -2712 ; text ; L1 ; none ; z j # V1.1 (✒) BLACK NIB -2714 ; text ; L1 ; none ; z j w # V1.1 (✔) HEAVY CHECK MARK -2716 ; text ; L1 ; none ; z j # V1.1 (✖) HEAVY MULTIPLICATION X -271D ; text ; L2 ; none ; w # V1.1 (✝) LATIN CROSS -2721 ; text ; L2 ; none ; w # V1.1 (✡) STAR OF DAVID -2728 ; emoji ; L1 ; none ; j # V6.0 (✨) SPARKLES -2733 ; text ; L1 ; none ; z j # V1.1 (✳) EIGHT SPOKED ASTERISK -2734 ; text ; L1 ; none ; z j # V1.1 (✴) EIGHT POINTED BLACK STAR -2744 ; text ; L1 ; none ; z j w # V1.1 (❄) SNOWFLAKE -2747 ; text ; L1 ; none ; z j # V1.1 (❇) SPARKLE -274C ; emoji ; L1 ; none ; j # V6.0 (❌) CROSS MARK -274E ; emoji ; L1 ; none ; j # V6.0 (❎) NEGATIVE SQUARED CROSS MARK -2753 ; emoji ; L1 ; none ; j w # V6.0 (❓) BLACK QUESTION MARK ORNAMENT -2754 ; emoji ; L1 ; none ; j # V6.0 (❔) WHITE QUESTION MARK ORNAMENT -2755 ; emoji ; L1 ; none ; j # V6.0 (❕) WHITE EXCLAMATION MARK ORNAMENT -2757 ; emoji ; L1 ; none ; j # V5.2 (❗) HEAVY EXCLAMATION MARK SYMBOL -2763 ; text ; L2 ; none ; z # V1.1 (❣) HEAVY HEART EXCLAMATION MARK ORNAMENT -2764 ; text ; L1 ; none ; z j # V1.1 (❤) HEAVY BLACK HEART -2795 ; emoji ; L1 ; none ; j # V6.0 (➕) HEAVY PLUS SIGN -2796 ; emoji ; L1 ; none ; j # V6.0 (➖) HEAVY MINUS SIGN -2797 ; emoji ; L1 ; none ; j # V6.0 (➗) HEAVY DIVISION SIGN -27A1 ; text ; L1 ; none ; z a j # V1.1 (➡) BLACK RIGHTWARDS ARROW -27B0 ; emoji ; L1 ; none ; j # V6.0 (➰) CURLY LOOP -27BF ; emoji ; L1 ; none ; x # V6.0 (➿) DOUBLE CURLY LOOP -2934 ; text ; L1 ; none ; j # V3.2 (⤴) ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS -2935 ; text ; L1 ; none ; j # V3.2 (⤵) ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS -2B05 ; text ; L1 ; none ; a j # V4.0 (⬅) LEFTWARDS BLACK ARROW -2B06 ; text ; L1 ; none ; a j # V4.0 (⬆) UPWARDS BLACK ARROW -2B07 ; text ; L1 ; none ; a j # V4.0 (⬇) DOWNWARDS BLACK ARROW -2B1B ; emoji ; L1 ; none ; a j w # V5.1 (⬛) BLACK LARGE SQUARE -2B1C ; emoji ; L1 ; none ; j w # V5.1 (⬜) WHITE LARGE SQUARE -2B50 ; emoji ; L1 ; none ; j # V5.1 (⭐) WHITE MEDIUM STAR -2B55 ; emoji ; L1 ; none ; j # V5.2 (⭕) HEAVY LARGE CIRCLE -3030 ; text ; L1 ; none ; j # V1.1 (〰) WAVY DASH -303D ; text ; L1 ; none ; j # V3.2 (〽) PART ALTERNATION MARK -3297 ; text ; L1 ; none ; j # V1.1 (㊗) CIRCLED IDEOGRAPH CONGRATULATION -3299 ; text ; L1 ; none ; a j # V1.1 (㊙) CIRCLED IDEOGRAPH SECRET -1F004 ; emoji ; L1 ; none ; j # V5.1 (🀄) MAHJONG TILE RED DRAGON -1F0CF ; emoji ; L1 ; none ; j # V6.0 (🃏) PLAYING CARD BLACK JOKER -1F170 ; text ; L1 ; none ; j # V6.0 (🅰) NEGATIVE SQUARED LATIN CAPITAL LETTER A -1F171 ; text ; L1 ; none ; j # V6.0 (🅱) NEGATIVE SQUARED LATIN CAPITAL LETTER B -1F17E ; text ; L1 ; none ; j # V6.0 (🅾) NEGATIVE SQUARED LATIN CAPITAL LETTER O -1F17F ; text ; L1 ; none ; a j # V5.2 (🅿) NEGATIVE SQUARED LATIN CAPITAL LETTER P -1F18E ; emoji ; L1 ; none ; j # V6.0 (🆎) NEGATIVE SQUARED AB -1F191 ; emoji ; L1 ; none ; j # V6.0 (🆑) SQUARED CL -1F192 ; emoji ; L1 ; none ; j # V6.0 (🆒) SQUARED COOL -1F193 ; emoji ; L1 ; none ; j # V6.0 (🆓) SQUARED FREE -1F194 ; emoji ; L1 ; none ; j # V6.0 (🆔) SQUARED ID -1F195 ; emoji ; L1 ; none ; j # V6.0 (🆕) SQUARED NEW -1F196 ; emoji ; L1 ; none ; j # V6.0 (🆖) SQUARED NG -1F197 ; emoji ; L1 ; none ; j # V6.0 (🆗) SQUARED OK -1F198 ; emoji ; L1 ; none ; j # V6.0 (🆘) SQUARED SOS -1F199 ; emoji ; L1 ; none ; j # V6.0 (🆙) SQUARED UP WITH EXCLAMATION MARK -1F19A ; emoji ; L1 ; none ; j # V6.0 (🆚) SQUARED VS -1F201 ; emoji ; L1 ; none ; j # V6.0 (🈁) SQUARED KATAKANA KOKO -1F202 ; text ; L1 ; none ; j # V6.0 (🈂) SQUARED KATAKANA SA -1F21A ; emoji ; L1 ; none ; a j # V5.2 (🈚) SQUARED CJK UNIFIED IDEOGRAPH-7121 -1F22F ; emoji ; L1 ; none ; a j # V5.2 (🈯) SQUARED CJK UNIFIED IDEOGRAPH-6307 -1F232 ; emoji ; L1 ; none ; j # V6.0 (🈲) SQUARED CJK UNIFIED IDEOGRAPH-7981 -1F233 ; emoji ; L1 ; none ; j # V6.0 (🈳) SQUARED CJK UNIFIED IDEOGRAPH-7A7A -1F234 ; emoji ; L1 ; none ; j # V6.0 (🈴) SQUARED CJK UNIFIED IDEOGRAPH-5408 -1F235 ; emoji ; L1 ; none ; j # V6.0 (🈵) SQUARED CJK UNIFIED IDEOGRAPH-6E80 -1F236 ; emoji ; L1 ; none ; j # V6.0 (🈶) SQUARED CJK UNIFIED IDEOGRAPH-6709 -1F237 ; text ; L1 ; none ; j # V6.0 (🈷) SQUARED CJK UNIFIED IDEOGRAPH-6708 -1F238 ; emoji ; L1 ; none ; j # V6.0 (🈸) SQUARED CJK UNIFIED IDEOGRAPH-7533 -1F239 ; emoji ; L1 ; none ; j # V6.0 (🈹) SQUARED CJK UNIFIED IDEOGRAPH-5272 -1F23A ; emoji ; L1 ; none ; j # V6.0 (🈺) SQUARED CJK UNIFIED IDEOGRAPH-55B6 -1F250 ; emoji ; L1 ; none ; j # V6.0 (🉐) CIRCLED IDEOGRAPH ADVANTAGE -1F251 ; emoji ; L1 ; none ; j # V6.0 (🉑) CIRCLED IDEOGRAPH ACCEPT -1F300 ; emoji ; L1 ; none ; j # V6.0 (🌀) CYCLONE -1F301 ; emoji ; L1 ; none ; j # V6.0 (🌁) FOGGY -1F302 ; emoji ; L1 ; none ; j # V6.0 (🌂) CLOSED UMBRELLA -1F303 ; emoji ; L1 ; none ; j # V6.0 (🌃) NIGHT WITH STARS -1F304 ; emoji ; L1 ; none ; j # V6.0 (🌄) SUNRISE OVER MOUNTAINS -1F305 ; emoji ; L1 ; none ; j # V6.0 (🌅) SUNRISE -1F306 ; emoji ; L1 ; none ; j # V6.0 (🌆) CITYSCAPE AT DUSK -1F307 ; emoji ; L1 ; none ; j # V6.0 (🌇) SUNSET OVER BUILDINGS -1F308 ; emoji ; L1 ; none ; j # V6.0 (🌈) RAINBOW -1F309 ; emoji ; L1 ; none ; j # V6.0 (🌉) BRIDGE AT NIGHT -1F30A ; emoji ; L1 ; none ; j # V6.0 (🌊) WATER WAVE -1F30B ; emoji ; L1 ; none ; j # V6.0 (🌋) VOLCANO -1F30C ; emoji ; L1 ; none ; j # V6.0 (🌌) MILKY WAY -1F30D ; emoji ; L1 ; none ; w # V6.0 (🌍) EARTH GLOBE EUROPE-AFRICA -1F30E ; emoji ; L1 ; none ; w # V6.0 (🌎) EARTH GLOBE AMERICAS -1F30F ; emoji ; L1 ; none ; j w # V6.0 (🌏) EARTH GLOBE ASIA-AUSTRALIA -1F310 ; emoji ; L1 ; none ; x # V6.0 (🌐) GLOBE WITH MERIDIANS -1F311 ; emoji ; L1 ; none ; j # V6.0 (🌑) NEW MOON SYMBOL -1F312 ; emoji ; L1 ; none ; x # V6.0 (🌒) WAXING CRESCENT MOON SYMBOL -1F313 ; emoji ; L1 ; none ; j # V6.0 (🌓) FIRST QUARTER MOON SYMBOL -1F314 ; emoji ; L1 ; none ; j # V6.0 (🌔) WAXING GIBBOUS MOON SYMBOL -1F315 ; emoji ; L1 ; none ; j w # V6.0 (🌕) FULL MOON SYMBOL -1F316 ; emoji ; L1 ; none ; x # V6.0 (🌖) WANING GIBBOUS MOON SYMBOL -1F317 ; emoji ; L1 ; none ; x # V6.0 (🌗) LAST QUARTER MOON SYMBOL -1F318 ; emoji ; L1 ; none ; x # V6.0 (🌘) WANING CRESCENT MOON SYMBOL -1F319 ; emoji ; L1 ; none ; j # V6.0 (🌙) CRESCENT MOON -1F31A ; emoji ; L1 ; none ; x # V6.0 (🌚) NEW MOON WITH FACE -1F31B ; emoji ; L1 ; none ; j # V6.0 (🌛) FIRST QUARTER MOON WITH FACE -1F31C ; emoji ; L1 ; none ; w # V6.0 (🌜) LAST QUARTER MOON WITH FACE -1F31D ; emoji ; L1 ; none ; x # V6.0 (🌝) FULL MOON WITH FACE -1F31E ; emoji ; L1 ; none ; x # V6.0 (🌞) SUN WITH FACE -1F31F ; emoji ; L1 ; none ; j # V6.0 (🌟) GLOWING STAR -1F320 ; emoji ; L1 ; none ; j # V6.0 (🌠) SHOOTING STAR -1F321 ; text ; L2 ; none ; w # V7.0 (🌡) THERMOMETER -1F324 ; text ; L2 ; none ; w # V7.0 (🌤) WHITE SUN WITH SMALL CLOUD -1F325 ; text ; L2 ; none ; w # V7.0 (🌥) WHITE SUN BEHIND CLOUD -1F326 ; text ; L2 ; none ; w # V7.0 (🌦) WHITE SUN BEHIND CLOUD WITH RAIN -1F327 ; text ; L2 ; none ; w # V7.0 (🌧) CLOUD WITH RAIN -1F328 ; text ; L2 ; none ; w # V7.0 (🌨) CLOUD WITH SNOW -1F329 ; text ; L2 ; none ; w # V7.0 (🌩) CLOUD WITH LIGHTNING -1F32A ; text ; L2 ; none ; w # V7.0 (🌪) CLOUD WITH TORNADO -1F32B ; text ; L2 ; none ; w # V7.0 (🌫) FOG -1F32C ; text ; L2 ; none ; w # V7.0 (🌬) WIND BLOWING FACE -1F32D ; emoji ; L2 ; none ; x # V8.0 (🌭) HOT DOG -1F32E ; emoji ; L2 ; none ; x # V8.0 (🌮) TACO -1F32F ; emoji ; L2 ; none ; x # V8.0 (🌯) BURRITO -1F330 ; emoji ; L1 ; none ; j # V6.0 (🌰) CHESTNUT -1F331 ; emoji ; L1 ; none ; j # V6.0 (🌱) SEEDLING -1F332 ; emoji ; L1 ; none ; x # V6.0 (🌲) EVERGREEN TREE -1F333 ; emoji ; L1 ; none ; x # V6.0 (🌳) DECIDUOUS TREE -1F334 ; emoji ; L1 ; none ; j # V6.0 (🌴) PALM TREE -1F335 ; emoji ; L1 ; none ; j # V6.0 (🌵) CACTUS -1F336 ; text ; L2 ; none ; w # V7.0 (🌶) HOT PEPPER -1F337 ; emoji ; L1 ; none ; j # V6.0 (🌷) TULIP -1F338 ; emoji ; L1 ; none ; j # V6.0 (🌸) CHERRY BLOSSOM -1F339 ; emoji ; L1 ; none ; j # V6.0 (🌹) ROSE -1F33A ; emoji ; L1 ; none ; j # V6.0 (🌺) HIBISCUS -1F33B ; emoji ; L1 ; none ; j # V6.0 (🌻) SUNFLOWER -1F33C ; emoji ; L1 ; none ; j # V6.0 (🌼) BLOSSOM -1F33D ; emoji ; L1 ; none ; j # V6.0 (🌽) EAR OF MAIZE -1F33E ; emoji ; L1 ; none ; j # V6.0 (🌾) EAR OF RICE -1F33F ; emoji ; L1 ; none ; j # V6.0 (🌿) HERB -1F340 ; emoji ; L1 ; none ; j # V6.0 (🍀) FOUR LEAF CLOVER -1F341 ; emoji ; L1 ; none ; j # V6.0 (🍁) MAPLE LEAF -1F342 ; emoji ; L1 ; none ; j # V6.0 (🍂) FALLEN LEAF -1F343 ; emoji ; L1 ; none ; j # V6.0 (🍃) LEAF FLUTTERING IN WIND -1F344 ; emoji ; L1 ; none ; j # V6.0 (🍄) MUSHROOM -1F345 ; emoji ; L1 ; none ; j # V6.0 (🍅) TOMATO -1F346 ; emoji ; L1 ; none ; j # V6.0 (🍆) AUBERGINE -1F347 ; emoji ; L1 ; none ; j # V6.0 (🍇) GRAPES -1F348 ; emoji ; L1 ; none ; j # V6.0 (🍈) MELON -1F349 ; emoji ; L1 ; none ; j # V6.0 (🍉) WATERMELON -1F34A ; emoji ; L1 ; none ; j # V6.0 (🍊) TANGERINE -1F34B ; emoji ; L1 ; none ; x # V6.0 (🍋) LEMON -1F34C ; emoji ; L1 ; none ; j # V6.0 (🍌) BANANA -1F34D ; emoji ; L1 ; none ; j # V6.0 (🍍) PINEAPPLE -1F34E ; emoji ; L1 ; none ; j # V6.0 (🍎) RED APPLE -1F34F ; emoji ; L1 ; none ; j # V6.0 (🍏) GREEN APPLE -1F350 ; emoji ; L1 ; none ; x # V6.0 (🍐) PEAR -1F351 ; emoji ; L1 ; none ; j # V6.0 (🍑) PEACH -1F352 ; emoji ; L1 ; none ; j # V6.0 (🍒) CHERRIES -1F353 ; emoji ; L1 ; none ; j # V6.0 (🍓) STRAWBERRY -1F354 ; emoji ; L1 ; none ; j # V6.0 (🍔) HAMBURGER -1F355 ; emoji ; L1 ; none ; j # V6.0 (🍕) SLICE OF PIZZA -1F356 ; emoji ; L1 ; none ; j # V6.0 (🍖) MEAT ON BONE -1F357 ; emoji ; L1 ; none ; j # V6.0 (🍗) POULTRY LEG -1F358 ; emoji ; L1 ; none ; j # V6.0 (🍘) RICE CRACKER -1F359 ; emoji ; L1 ; none ; j # V6.0 (🍙) RICE BALL -1F35A ; emoji ; L1 ; none ; j # V6.0 (🍚) COOKED RICE -1F35B ; emoji ; L1 ; none ; j # V6.0 (🍛) CURRY AND RICE -1F35C ; emoji ; L1 ; none ; j # V6.0 (🍜) STEAMING BOWL -1F35D ; emoji ; L1 ; none ; j # V6.0 (🍝) SPAGHETTI -1F35E ; emoji ; L1 ; none ; j # V6.0 (🍞) BREAD -1F35F ; emoji ; L1 ; none ; j # V6.0 (🍟) FRENCH FRIES -1F360 ; emoji ; L1 ; none ; j # V6.0 (🍠) ROASTED SWEET POTATO -1F361 ; emoji ; L1 ; none ; j # V6.0 (🍡) DANGO -1F362 ; emoji ; L1 ; none ; j # V6.0 (🍢) ODEN -1F363 ; emoji ; L1 ; none ; j # V6.0 (🍣) SUSHI -1F364 ; emoji ; L1 ; none ; j # V6.0 (🍤) FRIED SHRIMP -1F365 ; emoji ; L1 ; none ; j # V6.0 (🍥) FISH CAKE WITH SWIRL DESIGN -1F366 ; emoji ; L1 ; none ; j # V6.0 (🍦) SOFT ICE CREAM -1F367 ; emoji ; L1 ; none ; j # V6.0 (🍧) SHAVED ICE -1F368 ; emoji ; L1 ; none ; j # V6.0 (🍨) ICE CREAM -1F369 ; emoji ; L1 ; none ; j # V6.0 (🍩) DOUGHNUT -1F36A ; emoji ; L1 ; none ; j # V6.0 (🍪) COOKIE -1F36B ; emoji ; L1 ; none ; j # V6.0 (🍫) CHOCOLATE BAR -1F36C ; emoji ; L1 ; none ; j # V6.0 (🍬) CANDY -1F36D ; emoji ; L1 ; none ; j # V6.0 (🍭) LOLLIPOP -1F36E ; emoji ; L1 ; none ; j # V6.0 (🍮) CUSTARD -1F36F ; emoji ; L1 ; none ; j # V6.0 (🍯) HONEY POT -1F370 ; emoji ; L1 ; none ; j # V6.0 (🍰) SHORTCAKE -1F371 ; emoji ; L1 ; none ; j # V6.0 (🍱) BENTO BOX -1F372 ; emoji ; L1 ; none ; j # V6.0 (🍲) POT OF FOOD -1F373 ; emoji ; L1 ; none ; j # V6.0 (🍳) COOKING -1F374 ; emoji ; L1 ; none ; j # V6.0 (🍴) FORK AND KNIFE -1F375 ; emoji ; L1 ; none ; j # V6.0 (🍵) TEACUP WITHOUT HANDLE -1F376 ; emoji ; L1 ; none ; j # V6.0 (🍶) SAKE BOTTLE AND CUP -1F377 ; emoji ; L1 ; none ; j # V6.0 (🍷) WINE GLASS -1F378 ; emoji ; L1 ; none ; j w # V6.0 (🍸) COCKTAIL GLASS -1F379 ; emoji ; L1 ; none ; j # V6.0 (🍹) TROPICAL DRINK -1F37A ; emoji ; L1 ; none ; j # V6.0 (🍺) BEER MUG -1F37B ; emoji ; L1 ; none ; j # V6.0 (🍻) CLINKING BEER MUGS -1F37C ; emoji ; L1 ; none ; x # V6.0 (🍼) BABY BOTTLE -1F37D ; text ; L2 ; none ; w # V7.0 (🍽) FORK AND KNIFE WITH PLATE -1F37E ; emoji ; L2 ; none ; x # V8.0 (🍾) BOTTLE WITH POPPING CORK -1F37F ; emoji ; L2 ; none ; x # V8.0 (🍿) POPCORN -1F380 ; emoji ; L1 ; none ; j # V6.0 (🎀) RIBBON -1F381 ; emoji ; L1 ; none ; j # V6.0 (🎁) WRAPPED PRESENT -1F382 ; emoji ; L1 ; none ; j # V6.0 (🎂) BIRTHDAY CAKE -1F383 ; emoji ; L1 ; none ; j # V6.0 (🎃) JACK-O-LANTERN -1F384 ; emoji ; L1 ; none ; j # V6.0 (🎄) CHRISTMAS TREE -1F385 ; emoji ; L1 ; primary ; j # V6.0 (🎅) FATHER CHRISTMAS -1F386 ; emoji ; L1 ; none ; j # V6.0 (🎆) FIREWORKS -1F387 ; emoji ; L1 ; none ; j # V6.0 (🎇) FIREWORK SPARKLER -1F388 ; emoji ; L1 ; none ; j # V6.0 (🎈) BALLOON -1F389 ; emoji ; L1 ; none ; j # V6.0 (🎉) PARTY POPPER -1F38A ; emoji ; L1 ; none ; j # V6.0 (🎊) CONFETTI BALL -1F38B ; emoji ; L1 ; none ; j # V6.0 (🎋) TANABATA TREE -1F38C ; emoji ; L1 ; none ; j # V6.0 (🎌) CROSSED FLAGS -1F38D ; emoji ; L1 ; none ; j # V6.0 (🎍) PINE DECORATION -1F38E ; emoji ; L1 ; none ; j # V6.0 (🎎) JAPANESE DOLLS -1F38F ; emoji ; L1 ; none ; j # V6.0 (🎏) CARP STREAMER -1F390 ; emoji ; L1 ; none ; j # V6.0 (🎐) WIND CHIME -1F391 ; emoji ; L1 ; none ; j # V6.0 (🎑) MOON VIEWING CEREMONY -1F392 ; emoji ; L1 ; none ; j # V6.0 (🎒) SCHOOL SATCHEL -1F393 ; emoji ; L1 ; none ; j w # V6.0 (🎓) GRADUATION CAP -1F396 ; text ; L2 ; none ; w # V7.0 (🎖) MILITARY MEDAL -1F397 ; text ; L2 ; none ; w # V7.0 (🎗) REMINDER RIBBON -1F399 ; text ; L2 ; none ; w # V7.0 (🎙) STUDIO MICROPHONE -1F39A ; text ; L2 ; none ; w # V7.0 (🎚) LEVEL SLIDER -1F39B ; text ; L2 ; none ; w # V7.0 (🎛) CONTROL KNOBS -1F39E ; text ; L2 ; none ; w # V7.0 (🎞) FILM FRAMES -1F39F ; text ; L2 ; none ; w # V7.0 (🎟) ADMISSION TICKETS -1F3A0 ; emoji ; L1 ; none ; j # V6.0 (🎠) CAROUSEL HORSE -1F3A1 ; emoji ; L1 ; none ; j # V6.0 (🎡) FERRIS WHEEL -1F3A2 ; emoji ; L1 ; none ; j # V6.0 (🎢) ROLLER COASTER -1F3A3 ; emoji ; L1 ; none ; j # V6.0 (🎣) FISHING POLE AND FISH -1F3A4 ; emoji ; L1 ; none ; j # V6.0 (🎤) MICROPHONE -1F3A5 ; emoji ; L1 ; none ; j # V6.0 (🎥) MOVIE CAMERA -1F3A6 ; emoji ; L1 ; none ; j # V6.0 (🎦) CINEMA -1F3A7 ; emoji ; L1 ; none ; j w # V6.0 (🎧) HEADPHONE -1F3A8 ; emoji ; L1 ; none ; j # V6.0 (🎨) ARTIST PALETTE -1F3A9 ; emoji ; L1 ; none ; j # V6.0 (🎩) TOP HAT -1F3AA ; emoji ; L1 ; none ; j # V6.0 (🎪) CIRCUS TENT -1F3AB ; emoji ; L1 ; none ; j # V6.0 (🎫) TICKET -1F3AC ; emoji ; L1 ; none ; j w # V6.0 (🎬) CLAPPER BOARD -1F3AD ; emoji ; L1 ; none ; j w # V6.0 (🎭) PERFORMING ARTS -1F3AE ; emoji ; L1 ; none ; j w # V6.0 (🎮) VIDEO GAME -1F3AF ; emoji ; L1 ; none ; j # V6.0 (🎯) DIRECT HIT -1F3B0 ; emoji ; L1 ; none ; j # V6.0 (🎰) SLOT MACHINE -1F3B1 ; emoji ; L1 ; none ; j # V6.0 (🎱) BILLIARDS -1F3B2 ; emoji ; L1 ; none ; j # V6.0 (🎲) GAME DIE -1F3B3 ; emoji ; L1 ; none ; j # V6.0 (🎳) BOWLING -1F3B4 ; emoji ; L1 ; none ; j # V6.0 (🎴) FLOWER PLAYING CARDS -1F3B5 ; emoji ; L1 ; none ; j # V6.0 (🎵) MUSICAL NOTE -1F3B6 ; emoji ; L1 ; none ; j # V6.0 (🎶) MULTIPLE MUSICAL NOTES -1F3B7 ; emoji ; L1 ; none ; j # V6.0 (🎷) SAXOPHONE -1F3B8 ; emoji ; L1 ; none ; j # V6.0 (🎸) GUITAR -1F3B9 ; emoji ; L1 ; none ; j # V6.0 (🎹) MUSICAL KEYBOARD -1F3BA ; emoji ; L1 ; none ; j # V6.0 (🎺) TRUMPET -1F3BB ; emoji ; L1 ; none ; j # V6.0 (🎻) VIOLIN -1F3BC ; emoji ; L1 ; none ; j # V6.0 (🎼) MUSICAL SCORE -1F3BD ; emoji ; L1 ; none ; j # V6.0 (🎽) RUNNING SHIRT WITH SASH -1F3BE ; emoji ; L1 ; none ; j # V6.0 (🎾) TENNIS RACQUET AND BALL -1F3BF ; emoji ; L1 ; none ; j # V6.0 (🎿) SKI AND SKI BOOT -1F3C0 ; emoji ; L1 ; none ; j # V6.0 (🏀) BASKETBALL AND HOOP -1F3C1 ; emoji ; L1 ; none ; j # V6.0 (🏁) CHEQUERED FLAG -1F3C2 ; emoji ; L1 ; secondary ; j w # V6.0 (🏂) SNOWBOARDER -1F3C3 ; emoji ; L1 ; secondary ; j # V6.0 (🏃) RUNNER -1F3C4 ; emoji ; L1 ; secondary ; j w # V6.0 (🏄) SURFER -1F3C5 ; emoji ; L2 ; none ; x # V7.0 (🏅) SPORTS MEDAL -1F3C6 ; emoji ; L1 ; none ; j w # V6.0 (🏆) TROPHY -1F3C7 ; emoji ; L1 ; secondary ; x # V6.0 (🏇) HORSE RACING -1F3C8 ; emoji ; L1 ; none ; j # V6.0 (🏈) AMERICAN FOOTBALL -1F3C9 ; emoji ; L1 ; none ; x # V6.0 (🏉) RUGBY FOOTBALL -1F3CA ; emoji ; L1 ; secondary ; j w # V6.0 (🏊) SWIMMER -1F3CB ; text ; L2 ; none ; w # V7.0 (🏋) WEIGHT LIFTER -1F3CC ; text ; L2 ; none ; w # V7.0 (🏌) GOLFER -1F3CD ; text ; L2 ; none ; w # V7.0 (🏍) RACING MOTORCYCLE -1F3CE ; text ; L2 ; none ; w # V7.0 (🏎) RACING CAR -1F3CF ; emoji ; L2 ; none ; x # V8.0 (🏏) CRICKET BAT AND BALL -1F3D0 ; emoji ; L2 ; none ; x # V8.0 (🏐) VOLLEYBALL -1F3D1 ; emoji ; L2 ; none ; x # V8.0 (🏑) FIELD HOCKEY STICK AND BALL -1F3D2 ; emoji ; L2 ; none ; x # V8.0 (🏒) ICE HOCKEY STICK AND PUCK -1F3D3 ; emoji ; L2 ; none ; x # V8.0 (🏓) TABLE TENNIS PADDLE AND BALL -1F3D4 ; text ; L2 ; none ; w # V7.0 (🏔) SNOW CAPPED MOUNTAIN -1F3D5 ; text ; L2 ; none ; w # V7.0 (🏕) CAMPING -1F3D6 ; text ; L2 ; none ; w # V7.0 (🏖) BEACH WITH UMBRELLA -1F3D7 ; text ; L2 ; none ; w # V7.0 (🏗) BUILDING CONSTRUCTION -1F3D8 ; text ; L2 ; none ; w # V7.0 (🏘) HOUSE BUILDINGS -1F3D9 ; text ; L2 ; none ; w # V7.0 (🏙) CITYSCAPE -1F3DA ; text ; L2 ; none ; w # V7.0 (🏚) DERELICT HOUSE BUILDING -1F3DB ; text ; L2 ; none ; w # V7.0 (🏛) CLASSICAL BUILDING -1F3DC ; text ; L2 ; none ; w # V7.0 (🏜) DESERT -1F3DD ; text ; L2 ; none ; w # V7.0 (🏝) DESERT ISLAND -1F3DE ; text ; L2 ; none ; w # V7.0 (🏞) NATIONAL PARK -1F3DF ; text ; L2 ; none ; w # V7.0 (🏟) STADIUM -1F3E0 ; emoji ; L1 ; none ; j w # V6.0 (🏠) HOUSE BUILDING -1F3E1 ; emoji ; L1 ; none ; j # V6.0 (🏡) HOUSE WITH GARDEN -1F3E2 ; emoji ; L1 ; none ; j # V6.0 (🏢) OFFICE BUILDING -1F3E3 ; emoji ; L1 ; none ; j # V6.0 (🏣) JAPANESE POST OFFICE -1F3E4 ; emoji ; L1 ; none ; x # V6.0 (🏤) EUROPEAN POST OFFICE -1F3E5 ; emoji ; L1 ; none ; j # V6.0 (🏥) HOSPITAL -1F3E6 ; emoji ; L1 ; none ; j # V6.0 (🏦) BANK -1F3E7 ; emoji ; L1 ; none ; j # V6.0 (🏧) AUTOMATED TELLER MACHINE -1F3E8 ; emoji ; L1 ; none ; j # V6.0 (🏨) HOTEL -1F3E9 ; emoji ; L1 ; none ; j # V6.0 (🏩) LOVE HOTEL -1F3EA ; emoji ; L1 ; none ; j # V6.0 (🏪) CONVENIENCE STORE -1F3EB ; emoji ; L1 ; none ; j # V6.0 (🏫) SCHOOL -1F3EC ; emoji ; L1 ; none ; j # V6.0 (🏬) DEPARTMENT STORE -1F3ED ; emoji ; L1 ; none ; j w # V6.0 (🏭) FACTORY -1F3EE ; emoji ; L1 ; none ; j # V6.0 (🏮) IZAKAYA LANTERN -1F3EF ; emoji ; L1 ; none ; j # V6.0 (🏯) JAPANESE CASTLE -1F3F0 ; emoji ; L1 ; none ; j # V6.0 (🏰) EUROPEAN CASTLE -1F3F3 ; text ; L2 ; none ; w # V7.0 (🏳) WAVING WHITE FLAG -1F3F4 ; emoji ; L2 ; none ; x # V7.0 (🏴) WAVING BLACK FLAG -1F3F5 ; text ; L2 ; none ; w # V7.0 (🏵) ROSETTE -1F3F7 ; text ; L2 ; none ; w # V7.0 (🏷) LABEL -1F3F8 ; emoji ; L2 ; none ; x # V8.0 (🏸) BADMINTON RACQUET AND SHUTTLECOCK -1F3F9 ; emoji ; L2 ; none ; x # V8.0 (🏹) BOW AND ARROW -1F3FA ; emoji ; L2 ; none ; x # V8.0 (🏺) AMPHORA -1F3FB ; emoji ; L2 ; modifier ; x # V8.0 (🏻) EMOJI MODIFIER FITZPATRICK TYPE-1-2 -1F3FC ; emoji ; L2 ; modifier ; x # V8.0 (🏼) EMOJI MODIFIER FITZPATRICK TYPE-3 -1F3FD ; emoji ; L2 ; modifier ; x # V8.0 (🏽) EMOJI MODIFIER FITZPATRICK TYPE-4 -1F3FE ; emoji ; L2 ; modifier ; x # V8.0 (🏾) EMOJI MODIFIER FITZPATRICK TYPE-5 -1F3FF ; emoji ; L2 ; modifier ; x # V8.0 (🏿) EMOJI MODIFIER FITZPATRICK TYPE-6 -1F400 ; emoji ; L1 ; none ; x # V6.0 (🐀) RAT -1F401 ; emoji ; L1 ; none ; x # V6.0 (🐁) MOUSE -1F402 ; emoji ; L1 ; none ; x # V6.0 (🐂) OX -1F403 ; emoji ; L1 ; none ; x # V6.0 (🐃) WATER BUFFALO -1F404 ; emoji ; L1 ; none ; x # V6.0 (🐄) COW -1F405 ; emoji ; L1 ; none ; x # V6.0 (🐅) TIGER -1F406 ; emoji ; L1 ; none ; x # V6.0 (🐆) LEOPARD -1F407 ; emoji ; L1 ; none ; x # V6.0 (🐇) RABBIT -1F408 ; emoji ; L1 ; none ; w # V6.0 (🐈) CAT -1F409 ; emoji ; L1 ; none ; x # V6.0 (🐉) DRAGON -1F40A ; emoji ; L1 ; none ; x # V6.0 (🐊) CROCODILE -1F40B ; emoji ; L1 ; none ; x # V6.0 (🐋) WHALE -1F40C ; emoji ; L1 ; none ; j # V6.0 (🐌) SNAIL -1F40D ; emoji ; L1 ; none ; j # V6.0 (🐍) SNAKE -1F40E ; emoji ; L1 ; none ; j # V6.0 (🐎) HORSE -1F40F ; emoji ; L1 ; none ; x # V6.0 (🐏) RAM -1F410 ; emoji ; L1 ; none ; x # V6.0 (🐐) GOAT -1F411 ; emoji ; L1 ; none ; j # V6.0 (🐑) SHEEP -1F412 ; emoji ; L1 ; none ; j # V6.0 (🐒) MONKEY -1F413 ; emoji ; L1 ; none ; x # V6.0 (🐓) ROOSTER -1F414 ; emoji ; L1 ; none ; j # V6.0 (🐔) CHICKEN -1F415 ; emoji ; L1 ; none ; w # V6.0 (🐕) DOG -1F416 ; emoji ; L1 ; none ; x # V6.0 (🐖) PIG -1F417 ; emoji ; L1 ; none ; j # V6.0 (🐗) BOAR -1F418 ; emoji ; L1 ; none ; j # V6.0 (🐘) ELEPHANT -1F419 ; emoji ; L1 ; none ; j # V6.0 (🐙) OCTOPUS -1F41A ; emoji ; L1 ; none ; j # V6.0 (🐚) SPIRAL SHELL -1F41B ; emoji ; L1 ; none ; j # V6.0 (🐛) BUG -1F41C ; emoji ; L1 ; none ; j # V6.0 (🐜) ANT -1F41D ; emoji ; L1 ; none ; j # V6.0 (🐝) HONEYBEE -1F41E ; emoji ; L1 ; none ; j # V6.0 (🐞) LADY BEETLE -1F41F ; emoji ; L1 ; none ; j w # V6.0 (🐟) FISH -1F420 ; emoji ; L1 ; none ; j # V6.0 (🐠) TROPICAL FISH -1F421 ; emoji ; L1 ; none ; j # V6.0 (🐡) BLOWFISH -1F422 ; emoji ; L1 ; none ; j # V6.0 (🐢) TURTLE -1F423 ; emoji ; L1 ; none ; j # V6.0 (🐣) HATCHING CHICK -1F424 ; emoji ; L1 ; none ; j # V6.0 (🐤) BABY CHICK -1F425 ; emoji ; L1 ; none ; j # V6.0 (🐥) FRONT-FACING BABY CHICK -1F426 ; emoji ; L1 ; none ; j w # V6.0 (🐦) BIRD -1F427 ; emoji ; L1 ; none ; j # V6.0 (🐧) PENGUIN -1F428 ; emoji ; L1 ; none ; j # V6.0 (🐨) KOALA -1F429 ; emoji ; L1 ; none ; j # V6.0 (🐩) POODLE -1F42A ; emoji ; L1 ; none ; x # V6.0 (🐪) DROMEDARY CAMEL -1F42B ; emoji ; L1 ; none ; j # V6.0 (🐫) BACTRIAN CAMEL -1F42C ; emoji ; L1 ; none ; j # V6.0 (🐬) DOLPHIN -1F42D ; emoji ; L1 ; none ; j # V6.0 (🐭) MOUSE FACE -1F42E ; emoji ; L1 ; none ; j # V6.0 (🐮) COW FACE -1F42F ; emoji ; L1 ; none ; j # V6.0 (🐯) TIGER FACE -1F430 ; emoji ; L1 ; none ; j # V6.0 (🐰) RABBIT FACE -1F431 ; emoji ; L1 ; none ; j # V6.0 (🐱) CAT FACE -1F432 ; emoji ; L1 ; none ; j # V6.0 (🐲) DRAGON FACE -1F433 ; emoji ; L1 ; none ; j # V6.0 (🐳) SPOUTING WHALE -1F434 ; emoji ; L1 ; none ; j # V6.0 (🐴) HORSE FACE -1F435 ; emoji ; L1 ; none ; j # V6.0 (🐵) MONKEY FACE -1F436 ; emoji ; L1 ; none ; j # V6.0 (🐶) DOG FACE -1F437 ; emoji ; L1 ; none ; j # V6.0 (🐷) PIG FACE -1F438 ; emoji ; L1 ; none ; j # V6.0 (🐸) FROG FACE -1F439 ; emoji ; L1 ; none ; j # V6.0 (🐹) HAMSTER FACE -1F43A ; emoji ; L1 ; none ; j # V6.0 (🐺) WOLF FACE -1F43B ; emoji ; L1 ; none ; j # V6.0 (🐻) BEAR FACE -1F43C ; emoji ; L1 ; none ; j # V6.0 (🐼) PANDA FACE -1F43D ; emoji ; L1 ; none ; j # V6.0 (🐽) PIG NOSE -1F43E ; emoji ; L1 ; none ; j # V6.0 (🐾) PAW PRINTS -1F43F ; text ; L2 ; none ; w # V7.0 (🐿) CHIPMUNK -1F440 ; emoji ; L1 ; none ; j # V6.0 (👀) EYES -1F441 ; text ; L2 ; none ; w # V7.0 (👁) EYE -1F442 ; emoji ; L1 ; secondary ; j w # V6.0 (👂) EAR -1F443 ; emoji ; L1 ; secondary ; j # V6.0 (👃) NOSE -1F444 ; emoji ; L1 ; none ; j # V6.0 (👄) MOUTH -1F445 ; emoji ; L1 ; none ; j # V6.0 (👅) TONGUE -1F446 ; emoji ; L1 ; secondary ; j w # V6.0 (👆) WHITE UP POINTING BACKHAND INDEX -1F447 ; emoji ; L1 ; secondary ; j w # V6.0 (👇) WHITE DOWN POINTING BACKHAND INDEX -1F448 ; emoji ; L1 ; secondary ; j w # V6.0 (👈) WHITE LEFT POINTING BACKHAND INDEX -1F449 ; emoji ; L1 ; secondary ; j w # V6.0 (👉) WHITE RIGHT POINTING BACKHAND INDEX -1F44A ; emoji ; L1 ; secondary ; j # V6.0 (👊) FISTED HAND SIGN -1F44B ; emoji ; L1 ; secondary ; j # V6.0 (👋) WAVING HAND SIGN -1F44C ; emoji ; L1 ; secondary ; j # V6.0 (👌) OK HAND SIGN -1F44D ; emoji ; L1 ; secondary ; j w # V6.0 (👍) THUMBS UP SIGN -1F44E ; emoji ; L1 ; secondary ; j w # V6.0 (👎) THUMBS DOWN SIGN -1F44F ; emoji ; L1 ; secondary ; j # V6.0 (👏) CLAPPING HANDS SIGN -1F450 ; emoji ; L1 ; secondary ; j # V6.0 (👐) OPEN HANDS SIGN -1F451 ; emoji ; L1 ; none ; j # V6.0 (👑) CROWN -1F452 ; emoji ; L1 ; none ; j # V6.0 (👒) WOMANS HAT -1F453 ; emoji ; L1 ; none ; j w # V6.0 (👓) EYEGLASSES -1F454 ; emoji ; L1 ; none ; j # V6.0 (👔) NECKTIE -1F455 ; emoji ; L1 ; none ; j # V6.0 (👕) T-SHIRT -1F456 ; emoji ; L1 ; none ; j # V6.0 (👖) JEANS -1F457 ; emoji ; L1 ; none ; j # V6.0 (👗) DRESS -1F458 ; emoji ; L1 ; none ; j # V6.0 (👘) KIMONO -1F459 ; emoji ; L1 ; none ; j # V6.0 (👙) BIKINI -1F45A ; emoji ; L1 ; none ; j # V6.0 (👚) WOMANS CLOTHES -1F45B ; emoji ; L1 ; none ; j # V6.0 (👛) PURSE -1F45C ; emoji ; L1 ; none ; j # V6.0 (👜) HANDBAG -1F45D ; emoji ; L1 ; none ; j # V6.0 (👝) POUCH -1F45E ; emoji ; L1 ; none ; j # V6.0 (👞) MANS SHOE -1F45F ; emoji ; L1 ; none ; j # V6.0 (👟) ATHLETIC SHOE -1F460 ; emoji ; L1 ; none ; j # V6.0 (👠) HIGH-HEELED SHOE -1F461 ; emoji ; L1 ; none ; j # V6.0 (👡) WOMANS SANDAL -1F462 ; emoji ; L1 ; none ; j # V6.0 (👢) WOMANS BOOTS -1F463 ; emoji ; L1 ; none ; j # V6.0 (👣) FOOTPRINTS -1F464 ; emoji ; L1 ; none ; j # V6.0 (👤) BUST IN SILHOUETTE -1F465 ; emoji ; L1 ; none ; x # V6.0 (👥) BUSTS IN SILHOUETTE -1F466 ; emoji ; L1 ; primary ; j # V6.0 (👦) BOY -1F467 ; emoji ; L1 ; primary ; j # V6.0 (👧) GIRL -1F468 ; emoji ; L1 ; primary ; j # V6.0 (👨) MAN -1F469 ; emoji ; L1 ; primary ; j # V6.0 (👩) WOMAN -1F46A ; emoji ; L1 ; none ; j w # V6.0 (👪) FAMILY -1F46B ; emoji ; L1 ; none ; j # V6.0 (👫) MAN AND WOMAN HOLDING HANDS -1F46C ; emoji ; L1 ; none ; x # V6.0 (👬) TWO MEN HOLDING HANDS -1F46D ; emoji ; L1 ; none ; x # V6.0 (👭) TWO WOMEN HOLDING HANDS -1F46E ; emoji ; L1 ; primary ; j # V6.0 (👮) POLICE OFFICER -1F46F ; emoji ; L1 ; none ; j # V6.0 (👯) WOMAN WITH BUNNY EARS -1F470 ; emoji ; L1 ; primary ; j # V6.0 (👰) BRIDE WITH VEIL -1F471 ; emoji ; L1 ; primary ; j # V6.0 (👱) PERSON WITH BLOND HAIR -1F472 ; emoji ; L1 ; primary ; j # V6.0 (👲) MAN WITH GUA PI MAO -1F473 ; emoji ; L1 ; primary ; j # V6.0 (👳) MAN WITH TURBAN -1F474 ; emoji ; L1 ; primary ; j # V6.0 (👴) OLDER MAN -1F475 ; emoji ; L1 ; primary ; j # V6.0 (👵) OLDER WOMAN -1F476 ; emoji ; L1 ; primary ; j # V6.0 (👶) BABY -1F477 ; emoji ; L1 ; primary ; j # V6.0 (👷) CONSTRUCTION WORKER -1F478 ; emoji ; L1 ; primary ; j # V6.0 (👸) PRINCESS -1F479 ; emoji ; L1 ; none ; j # V6.0 (👹) JAPANESE OGRE -1F47A ; emoji ; L1 ; none ; j # V6.0 (👺) JAPANESE GOBLIN -1F47B ; emoji ; L1 ; none ; j # V6.0 (👻) GHOST -1F47C ; emoji ; L1 ; primary ; j # V6.0 (👼) BABY ANGEL -1F47D ; emoji ; L1 ; none ; j w # V6.0 (👽) EXTRATERRESTRIAL ALIEN -1F47E ; emoji ; L1 ; none ; j # V6.0 (👾) ALIEN MONSTER -1F47F ; emoji ; L1 ; secondary ; j # V6.0 (👿) IMP -1F480 ; emoji ; L1 ; none ; j # V6.0 (💀) SKULL -1F481 ; emoji ; L1 ; primary ; j # V6.0 (💁) INFORMATION DESK PERSON -1F482 ; emoji ; L1 ; primary ; j # V6.0 (💂) GUARDSMAN -1F483 ; emoji ; L1 ; secondary ; j # V6.0 (💃) DANCER -1F484 ; emoji ; L1 ; none ; j # V6.0 (💄) LIPSTICK -1F485 ; emoji ; L1 ; secondary ; j # V6.0 (💅) NAIL POLISH -1F486 ; emoji ; L1 ; primary ; j # V6.0 (💆) FACE MASSAGE -1F487 ; emoji ; L1 ; primary ; j # V6.0 (💇) HAIRCUT -1F488 ; emoji ; L1 ; none ; j # V6.0 (💈) BARBER POLE -1F489 ; emoji ; L1 ; none ; j # V6.0 (💉) SYRINGE -1F48A ; emoji ; L1 ; none ; j # V6.0 (💊) PILL -1F48B ; emoji ; L1 ; none ; j # V6.0 (💋) KISS MARK -1F48C ; emoji ; L1 ; none ; j # V6.0 (💌) LOVE LETTER -1F48D ; emoji ; L1 ; none ; j # V6.0 (💍) RING -1F48E ; emoji ; L1 ; none ; j # V6.0 (💎) GEM STONE -1F48F ; emoji ; L1 ; none ; j # V6.0 (💏) KISS -1F490 ; emoji ; L1 ; none ; j # V6.0 (💐) BOUQUET -1F491 ; emoji ; L1 ; none ; j # V6.0 (💑) COUPLE WITH HEART -1F492 ; emoji ; L1 ; none ; j # V6.0 (💒) WEDDING -1F493 ; emoji ; L1 ; none ; j # V6.0 (💓) BEATING HEART -1F494 ; emoji ; L1 ; none ; j # V6.0 (💔) BROKEN HEART -1F495 ; emoji ; L1 ; none ; j # V6.0 (💕) TWO HEARTS -1F496 ; emoji ; L1 ; none ; j # V6.0 (💖) SPARKLING HEART -1F497 ; emoji ; L1 ; none ; j # V6.0 (💗) GROWING HEART -1F498 ; emoji ; L1 ; none ; j # V6.0 (💘) HEART WITH ARROW -1F499 ; emoji ; L1 ; none ; j # V6.0 (💙) BLUE HEART -1F49A ; emoji ; L1 ; none ; j # V6.0 (💚) GREEN HEART -1F49B ; emoji ; L1 ; none ; j # V6.0 (💛) YELLOW HEART -1F49C ; emoji ; L1 ; none ; j # V6.0 (💜) PURPLE HEART -1F49D ; emoji ; L1 ; none ; j # V6.0 (💝) HEART WITH RIBBON -1F49E ; emoji ; L1 ; none ; j # V6.0 (💞) REVOLVING HEARTS -1F49F ; emoji ; L1 ; none ; j # V6.0 (💟) HEART DECORATION -1F4A0 ; emoji ; L1 ; none ; j # V6.0 (💠) DIAMOND SHAPE WITH A DOT INSIDE -1F4A1 ; emoji ; L1 ; none ; j # V6.0 (💡) ELECTRIC LIGHT BULB -1F4A2 ; emoji ; L1 ; none ; j # V6.0 (💢) ANGER SYMBOL -1F4A3 ; emoji ; L1 ; none ; j w # V6.0 (💣) BOMB -1F4A4 ; emoji ; L1 ; none ; j # V6.0 (💤) SLEEPING SYMBOL -1F4A5 ; emoji ; L1 ; none ; j # V6.0 (💥) COLLISION SYMBOL -1F4A6 ; emoji ; L1 ; none ; j # V6.0 (💦) SPLASHING SWEAT SYMBOL -1F4A7 ; emoji ; L1 ; none ; j # V6.0 (💧) DROPLET -1F4A8 ; emoji ; L1 ; none ; j # V6.0 (💨) DASH SYMBOL -1F4A9 ; emoji ; L1 ; none ; j # V6.0 (💩) PILE OF POO -1F4AA ; emoji ; L1 ; secondary ; j # V6.0 (💪) FLEXED BICEPS -1F4AB ; emoji ; L1 ; none ; j # V6.0 (💫) DIZZY SYMBOL -1F4AC ; emoji ; L1 ; none ; j # V6.0 (💬) SPEECH BALLOON -1F4AD ; emoji ; L1 ; none ; x # V6.0 (💭) THOUGHT BALLOON -1F4AE ; emoji ; L1 ; none ; j # V6.0 (💮) WHITE FLOWER -1F4AF ; emoji ; L1 ; none ; j # V6.0 (💯) HUNDRED POINTS SYMBOL -1F4B0 ; emoji ; L1 ; none ; j w # V6.0 (💰) MONEY BAG -1F4B1 ; emoji ; L1 ; none ; j # V6.0 (💱) CURRENCY EXCHANGE -1F4B2 ; emoji ; L1 ; none ; j # V6.0 (💲) HEAVY DOLLAR SIGN -1F4B3 ; emoji ; L1 ; none ; j w # V6.0 (💳) CREDIT CARD -1F4B4 ; emoji ; L1 ; none ; j # V6.0 (💴) BANKNOTE WITH YEN SIGN -1F4B5 ; emoji ; L1 ; none ; j # V6.0 (💵) BANKNOTE WITH DOLLAR SIGN -1F4B6 ; emoji ; L1 ; none ; x # V6.0 (💶) BANKNOTE WITH EURO SIGN -1F4B7 ; emoji ; L1 ; none ; x # V6.0 (💷) BANKNOTE WITH POUND SIGN -1F4B8 ; emoji ; L1 ; none ; j # V6.0 (💸) MONEY WITH WINGS -1F4B9 ; emoji ; L1 ; none ; j # V6.0 (💹) CHART WITH UPWARDS TREND AND YEN SIGN -1F4BA ; emoji ; L1 ; none ; j # V6.0 (💺) SEAT -1F4BB ; emoji ; L1 ; none ; j w # V6.0 (💻) PERSONAL COMPUTER -1F4BC ; emoji ; L1 ; none ; j # V6.0 (💼) BRIEFCASE -1F4BD ; emoji ; L1 ; none ; j # V6.0 (💽) MINIDISC -1F4BE ; emoji ; L1 ; none ; j # V6.0 (💾) FLOPPY DISK -1F4BF ; emoji ; L1 ; none ; j w # V6.0 (💿) OPTICAL DISC -1F4C0 ; emoji ; L1 ; none ; j # V6.0 (📀) DVD -1F4C1 ; emoji ; L1 ; none ; j # V6.0 (📁) FILE FOLDER -1F4C2 ; emoji ; L1 ; none ; j # V6.0 (📂) OPEN FILE FOLDER -1F4C3 ; emoji ; L1 ; none ; j # V6.0 (📃) PAGE WITH CURL -1F4C4 ; emoji ; L1 ; none ; j # V6.0 (📄) PAGE FACING UP -1F4C5 ; emoji ; L1 ; none ; j # V6.0 (📅) CALENDAR -1F4C6 ; emoji ; L1 ; none ; j # V6.0 (📆) TEAR-OFF CALENDAR -1F4C7 ; emoji ; L1 ; none ; j # V6.0 (📇) CARD INDEX -1F4C8 ; emoji ; L1 ; none ; j # V6.0 (📈) CHART WITH UPWARDS TREND -1F4C9 ; emoji ; L1 ; none ; j # V6.0 (📉) CHART WITH DOWNWARDS TREND -1F4CA ; emoji ; L1 ; none ; j # V6.0 (📊) BAR CHART -1F4CB ; emoji ; L1 ; none ; j w # V6.0 (📋) CLIPBOARD -1F4CC ; emoji ; L1 ; none ; j # V6.0 (📌) PUSHPIN -1F4CD ; emoji ; L1 ; none ; j # V6.0 (📍) ROUND PUSHPIN -1F4CE ; emoji ; L1 ; none ; j # V6.0 (📎) PAPERCLIP -1F4CF ; emoji ; L1 ; none ; j # V6.0 (📏) STRAIGHT RULER -1F4D0 ; emoji ; L1 ; none ; j # V6.0 (📐) TRIANGULAR RULER -1F4D1 ; emoji ; L1 ; none ; j # V6.0 (📑) BOOKMARK TABS -1F4D2 ; emoji ; L1 ; none ; j # V6.0 (📒) LEDGER -1F4D3 ; emoji ; L1 ; none ; j # V6.0 (📓) NOTEBOOK -1F4D4 ; emoji ; L1 ; none ; j # V6.0 (📔) NOTEBOOK WITH DECORATIVE COVER -1F4D5 ; emoji ; L1 ; none ; j # V6.0 (📕) CLOSED BOOK -1F4D6 ; emoji ; L1 ; none ; j # V6.0 (📖) OPEN BOOK -1F4D7 ; emoji ; L1 ; none ; j # V6.0 (📗) GREEN BOOK -1F4D8 ; emoji ; L1 ; none ; j # V6.0 (📘) BLUE BOOK -1F4D9 ; emoji ; L1 ; none ; j # V6.0 (📙) ORANGE BOOK -1F4DA ; emoji ; L1 ; none ; j w # V6.0 (📚) BOOKS -1F4DB ; emoji ; L1 ; none ; j # V6.0 (📛) NAME BADGE -1F4DC ; emoji ; L1 ; none ; j # V6.0 (📜) SCROLL -1F4DD ; emoji ; L1 ; none ; j # V6.0 (📝) MEMO -1F4DE ; emoji ; L1 ; none ; j # V6.0 (📞) TELEPHONE RECEIVER -1F4DF ; emoji ; L1 ; none ; j w # V6.0 (📟) PAGER -1F4E0 ; emoji ; L1 ; none ; j # V6.0 (📠) FAX MACHINE -1F4E1 ; emoji ; L1 ; none ; j # V6.0 (📡) SATELLITE ANTENNA -1F4E2 ; emoji ; L1 ; none ; j # V6.0 (📢) PUBLIC ADDRESS LOUDSPEAKER -1F4E3 ; emoji ; L1 ; none ; j # V6.0 (📣) CHEERING MEGAPHONE -1F4E4 ; emoji ; L1 ; none ; j w # V6.0 (📤) OUTBOX TRAY -1F4E5 ; emoji ; L1 ; none ; j w # V6.0 (📥) INBOX TRAY -1F4E6 ; emoji ; L1 ; none ; j w # V6.0 (📦) PACKAGE -1F4E7 ; emoji ; L1 ; none ; j # V6.0 (📧) E-MAIL SYMBOL -1F4E8 ; emoji ; L1 ; none ; j # V6.0 (📨) INCOMING ENVELOPE -1F4E9 ; emoji ; L1 ; none ; j # V6.0 (📩) ENVELOPE WITH DOWNWARDS ARROW ABOVE -1F4EA ; emoji ; L1 ; none ; j w # V6.0 (📪) CLOSED MAILBOX WITH LOWERED FLAG -1F4EB ; emoji ; L1 ; none ; j w # V6.0 (📫) CLOSED MAILBOX WITH RAISED FLAG -1F4EC ; emoji ; L1 ; none ; w # V6.0 (📬) OPEN MAILBOX WITH RAISED FLAG -1F4ED ; emoji ; L1 ; none ; w # V6.0 (📭) OPEN MAILBOX WITH LOWERED FLAG -1F4EE ; emoji ; L1 ; none ; j # V6.0 (📮) POSTBOX -1F4EF ; emoji ; L1 ; none ; x # V6.0 (📯) POSTAL HORN -1F4F0 ; emoji ; L1 ; none ; j # V6.0 (📰) NEWSPAPER -1F4F1 ; emoji ; L1 ; none ; j # V6.0 (📱) MOBILE PHONE -1F4F2 ; emoji ; L1 ; none ; j # V6.0 (📲) MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT -1F4F3 ; emoji ; L1 ; none ; j # V6.0 (📳) VIBRATION MODE -1F4F4 ; emoji ; L1 ; none ; j # V6.0 (📴) MOBILE PHONE OFF -1F4F5 ; emoji ; L1 ; none ; x # V6.0 (📵) NO MOBILE PHONES -1F4F6 ; emoji ; L1 ; none ; j # V6.0 (📶) ANTENNA WITH BARS -1F4F7 ; emoji ; L1 ; none ; j w # V6.0 (📷) CAMERA -1F4F8 ; emoji ; L2 ; none ; x # V7.0 (📸) CAMERA WITH FLASH -1F4F9 ; emoji ; L1 ; none ; j w # V6.0 (📹) VIDEO CAMERA -1F4FA ; emoji ; L1 ; none ; j w # V6.0 (📺) TELEVISION -1F4FB ; emoji ; L1 ; none ; j w # V6.0 (📻) RADIO -1F4FC ; emoji ; L1 ; none ; j # V6.0 (📼) VIDEOCASSETTE -1F4FD ; text ; L2 ; none ; w # V7.0 (📽) FILM PROJECTOR -1F4FF ; emoji ; L2 ; none ; x # V8.0 (📿) PRAYER BEADS -1F500 ; emoji ; L1 ; none ; x # V6.0 (🔀) TWISTED RIGHTWARDS ARROWS -1F501 ; emoji ; L1 ; none ; x # V6.0 (🔁) CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS -1F502 ; emoji ; L1 ; none ; x # V6.0 (🔂) CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY -1F503 ; emoji ; L1 ; none ; j # V6.0 (🔃) CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS -1F504 ; emoji ; L1 ; none ; x # V6.0 (🔄) ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS -1F505 ; emoji ; L1 ; none ; x # V6.0 (🔅) LOW BRIGHTNESS SYMBOL -1F506 ; emoji ; L1 ; none ; x # V6.0 (🔆) HIGH BRIGHTNESS SYMBOL -1F507 ; emoji ; L1 ; none ; x # V6.0 (🔇) SPEAKER WITH CANCELLATION STROKE -1F508 ; emoji ; L1 ; none ; w # V6.0 (🔈) SPEAKER -1F509 ; emoji ; L1 ; none ; x # V6.0 (🔉) SPEAKER WITH ONE SOUND WAVE -1F50A ; emoji ; L1 ; none ; j # V6.0 (🔊) SPEAKER WITH THREE SOUND WAVES -1F50B ; emoji ; L1 ; none ; j # V6.0 (🔋) BATTERY -1F50C ; emoji ; L1 ; none ; j # V6.0 (🔌) ELECTRIC PLUG -1F50D ; emoji ; L1 ; none ; j w # V6.0 (🔍) LEFT-POINTING MAGNIFYING GLASS -1F50E ; emoji ; L1 ; none ; j # V6.0 (🔎) RIGHT-POINTING MAGNIFYING GLASS -1F50F ; emoji ; L1 ; none ; j # V6.0 (🔏) LOCK WITH INK PEN -1F510 ; emoji ; L1 ; none ; j # V6.0 (🔐) CLOSED LOCK WITH KEY -1F511 ; emoji ; L1 ; none ; j # V6.0 (🔑) KEY -1F512 ; emoji ; L1 ; none ; j w # V6.0 (🔒) LOCK -1F513 ; emoji ; L1 ; none ; j w # V6.0 (🔓) OPEN LOCK -1F514 ; emoji ; L1 ; none ; j # V6.0 (🔔) BELL -1F515 ; emoji ; L1 ; none ; x # V6.0 (🔕) BELL WITH CANCELLATION STROKE -1F516 ; emoji ; L1 ; none ; j # V6.0 (🔖) BOOKMARK -1F517 ; emoji ; L1 ; none ; j # V6.0 (🔗) LINK SYMBOL -1F518 ; emoji ; L1 ; none ; j # V6.0 (🔘) RADIO BUTTON -1F519 ; emoji ; L1 ; none ; j # V6.0 (🔙) BACK WITH LEFTWARDS ARROW ABOVE -1F51A ; emoji ; L1 ; none ; j # V6.0 (🔚) END WITH LEFTWARDS ARROW ABOVE -1F51B ; emoji ; L1 ; none ; j # V6.0 (🔛) ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE -1F51C ; emoji ; L1 ; none ; j # V6.0 (🔜) SOON WITH RIGHTWARDS ARROW ABOVE -1F51D ; emoji ; L1 ; none ; j # V6.0 (🔝) TOP WITH UPWARDS ARROW ABOVE -1F51E ; emoji ; L1 ; none ; j # V6.0 (🔞) NO ONE UNDER EIGHTEEN SYMBOL -1F51F ; emoji ; L1 ; none ; j # V6.0 (🔟) KEYCAP TEN -1F520 ; emoji ; L1 ; none ; j # V6.0 (🔠) INPUT SYMBOL FOR LATIN CAPITAL LETTERS -1F521 ; emoji ; L1 ; none ; j # V6.0 (🔡) INPUT SYMBOL FOR LATIN SMALL LETTERS -1F522 ; emoji ; L1 ; none ; j # V6.0 (🔢) INPUT SYMBOL FOR NUMBERS -1F523 ; emoji ; L1 ; none ; j # V6.0 (🔣) INPUT SYMBOL FOR SYMBOLS -1F524 ; emoji ; L1 ; none ; j # V6.0 (🔤) INPUT SYMBOL FOR LATIN LETTERS -1F525 ; emoji ; L1 ; none ; j # V6.0 (🔥) FIRE -1F526 ; emoji ; L1 ; none ; j # V6.0 (🔦) ELECTRIC TORCH -1F527 ; emoji ; L1 ; none ; j # V6.0 (🔧) WRENCH -1F528 ; emoji ; L1 ; none ; j # V6.0 (🔨) HAMMER -1F529 ; emoji ; L1 ; none ; j # V6.0 (🔩) NUT AND BOLT -1F52A ; emoji ; L1 ; none ; j # V6.0 (🔪) HOCHO -1F52B ; emoji ; L1 ; none ; j # V6.0 (🔫) PISTOL -1F52C ; emoji ; L1 ; none ; x # V6.0 (🔬) MICROSCOPE -1F52D ; emoji ; L1 ; none ; x # V6.0 (🔭) TELESCOPE -1F52E ; emoji ; L1 ; none ; j # V6.0 (🔮) CRYSTAL BALL -1F52F ; emoji ; L1 ; none ; j # V6.0 (🔯) SIX POINTED STAR WITH MIDDLE DOT -1F530 ; emoji ; L1 ; none ; j # V6.0 (🔰) JAPANESE SYMBOL FOR BEGINNER -1F531 ; emoji ; L1 ; none ; j # V6.0 (🔱) TRIDENT EMBLEM -1F532 ; emoji ; L1 ; none ; j # V6.0 (🔲) BLACK SQUARE BUTTON -1F533 ; emoji ; L1 ; none ; j # V6.0 (🔳) WHITE SQUARE BUTTON -1F534 ; emoji ; L1 ; none ; j # V6.0 (🔴) LARGE RED CIRCLE -1F535 ; emoji ; L1 ; none ; j # V6.0 (🔵) LARGE BLUE CIRCLE -1F536 ; emoji ; L1 ; none ; j # V6.0 (🔶) LARGE ORANGE DIAMOND -1F537 ; emoji ; L1 ; none ; j # V6.0 (🔷) LARGE BLUE DIAMOND -1F538 ; emoji ; L1 ; none ; j # V6.0 (🔸) SMALL ORANGE DIAMOND -1F539 ; emoji ; L1 ; none ; j # V6.0 (🔹) SMALL BLUE DIAMOND -1F53A ; emoji ; L1 ; none ; j # V6.0 (🔺) UP-POINTING RED TRIANGLE -1F53B ; emoji ; L1 ; none ; j # V6.0 (🔻) DOWN-POINTING RED TRIANGLE -1F53C ; emoji ; L1 ; none ; j # V6.0 (🔼) UP-POINTING SMALL RED TRIANGLE -1F53D ; emoji ; L1 ; none ; j # V6.0 (🔽) DOWN-POINTING SMALL RED TRIANGLE -1F549 ; text ; L2 ; none ; w # V7.0 (🕉) OM SYMBOL -1F54A ; text ; L2 ; none ; w # V7.0 (🕊) DOVE OF PEACE -1F54B ; emoji ; L2 ; none ; x # V8.0 (🕋) KAABA -1F54C ; emoji ; L2 ; none ; x # V8.0 (🕌) MOSQUE -1F54D ; emoji ; L2 ; none ; x # V8.0 (🕍) SYNAGOGUE -1F54E ; emoji ; L2 ; none ; x # V8.0 (🕎) MENORAH WITH NINE BRANCHES -1F550 ; emoji ; L1 ; none ; j w # V6.0 (🕐) CLOCK FACE ONE OCLOCK -1F551 ; emoji ; L1 ; none ; j w # V6.0 (🕑) CLOCK FACE TWO OCLOCK -1F552 ; emoji ; L1 ; none ; j w # V6.0 (🕒) CLOCK FACE THREE OCLOCK -1F553 ; emoji ; L1 ; none ; j w # V6.0 (🕓) CLOCK FACE FOUR OCLOCK -1F554 ; emoji ; L1 ; none ; j w # V6.0 (🕔) CLOCK FACE FIVE OCLOCK -1F555 ; emoji ; L1 ; none ; j w # V6.0 (🕕) CLOCK FACE SIX OCLOCK -1F556 ; emoji ; L1 ; none ; j w # V6.0 (🕖) CLOCK FACE SEVEN OCLOCK -1F557 ; emoji ; L1 ; none ; j w # V6.0 (🕗) CLOCK FACE EIGHT OCLOCK -1F558 ; emoji ; L1 ; none ; j w # V6.0 (🕘) CLOCK FACE NINE OCLOCK -1F559 ; emoji ; L1 ; none ; j w # V6.0 (🕙) CLOCK FACE TEN OCLOCK -1F55A ; emoji ; L1 ; none ; j w # V6.0 (🕚) CLOCK FACE ELEVEN OCLOCK -1F55B ; emoji ; L1 ; none ; j w # V6.0 (🕛) CLOCK FACE TWELVE OCLOCK -1F55C ; emoji ; L1 ; none ; w # V6.0 (🕜) CLOCK FACE ONE-THIRTY -1F55D ; emoji ; L1 ; none ; w # V6.0 (🕝) CLOCK FACE TWO-THIRTY -1F55E ; emoji ; L1 ; none ; w # V6.0 (🕞) CLOCK FACE THREE-THIRTY -1F55F ; emoji ; L1 ; none ; w # V6.0 (🕟) CLOCK FACE FOUR-THIRTY -1F560 ; emoji ; L1 ; none ; w # V6.0 (🕠) CLOCK FACE FIVE-THIRTY -1F561 ; emoji ; L1 ; none ; w # V6.0 (🕡) CLOCK FACE SIX-THIRTY -1F562 ; emoji ; L1 ; none ; w # V6.0 (🕢) CLOCK FACE SEVEN-THIRTY -1F563 ; emoji ; L1 ; none ; w # V6.0 (🕣) CLOCK FACE EIGHT-THIRTY -1F564 ; emoji ; L1 ; none ; w # V6.0 (🕤) CLOCK FACE NINE-THIRTY -1F565 ; emoji ; L1 ; none ; w # V6.0 (🕥) CLOCK FACE TEN-THIRTY -1F566 ; emoji ; L1 ; none ; w # V6.0 (🕦) CLOCK FACE ELEVEN-THIRTY -1F567 ; emoji ; L1 ; none ; w # V6.0 (🕧) CLOCK FACE TWELVE-THIRTY -1F56F ; text ; L2 ; none ; w # V7.0 (🕯) CANDLE -1F570 ; text ; L2 ; none ; w # V7.0 (🕰) MANTELPIECE CLOCK -1F573 ; text ; L2 ; none ; w # V7.0 (🕳) HOLE -1F574 ; text ; L2 ; none ; w # V7.0 (🕴) MAN IN BUSINESS SUIT LEVITATING -1F575 ; text ; L2 ; none ; w # V7.0 (🕵) SLEUTH OR SPY -1F576 ; text ; L2 ; none ; w # V7.0 (🕶) DARK SUNGLASSES -1F577 ; text ; L2 ; none ; w # V7.0 (🕷) SPIDER -1F578 ; text ; L2 ; none ; w # V7.0 (🕸) SPIDER WEB -1F579 ; text ; L2 ; none ; w # V7.0 (🕹) JOYSTICK -1F587 ; text ; L2 ; none ; w # V7.0 (🖇) LINKED PAPERCLIPS -1F58A ; text ; L2 ; none ; w # V7.0 (🖊) LOWER LEFT BALLPOINT PEN -1F58B ; text ; L2 ; none ; w # V7.0 (🖋) LOWER LEFT FOUNTAIN PEN -1F58C ; text ; L2 ; none ; w # V7.0 (🖌) LOWER LEFT PAINTBRUSH -1F58D ; text ; L2 ; none ; w # V7.0 (🖍) LOWER LEFT CRAYON -1F590 ; text ; L2 ; secondary ; w # V7.0 (🖐) RAISED HAND WITH FINGERS SPLAYED -1F595 ; emoji ; L2 ; secondary ; x # V7.0 (🖕) REVERSED HAND WITH MIDDLE FINGER EXTENDED -1F596 ; emoji ; L2 ; secondary ; x # V7.0 (🖖) RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS -1F5A5 ; text ; L2 ; none ; w # V7.0 (🖥) DESKTOP COMPUTER -1F5A8 ; text ; L2 ; none ; w # V7.0 (🖨) PRINTER -1F5B1 ; text ; L2 ; none ; w # V7.0 (🖱) THREE BUTTON MOUSE -1F5B2 ; text ; L2 ; none ; w # V7.0 (🖲) TRACKBALL -1F5BC ; text ; L2 ; none ; w # V7.0 (🖼) FRAME WITH PICTURE -1F5C2 ; text ; L2 ; none ; w # V7.0 (🗂) CARD INDEX DIVIDERS -1F5C3 ; text ; L2 ; none ; w # V7.0 (🗃) CARD FILE BOX -1F5C4 ; text ; L2 ; none ; w # V7.0 (🗄) FILE CABINET -1F5D1 ; text ; L2 ; none ; w # V7.0 (🗑) WASTEBASKET -1F5D2 ; text ; L2 ; none ; w # V7.0 (🗒) SPIRAL NOTE PAD -1F5D3 ; text ; L2 ; none ; w # V7.0 (🗓) SPIRAL CALENDAR PAD -1F5DC ; text ; L2 ; none ; w # V7.0 (🗜) COMPRESSION -1F5DD ; text ; L2 ; none ; w # V7.0 (🗝) OLD KEY -1F5DE ; text ; L2 ; none ; w # V7.0 (🗞) ROLLED-UP NEWSPAPER -1F5E1 ; text ; L2 ; none ; w # V7.0 (🗡) DAGGER KNIFE -1F5E3 ; text ; L2 ; none ; w # V7.0 (🗣) SPEAKING HEAD IN SILHOUETTE -1F5EF ; text ; L2 ; none ; w # V7.0 (🗯) RIGHT ANGER BUBBLE -1F5F3 ; text ; L2 ; none ; w # V7.0 (🗳) BALLOT BOX WITH BALLOT -1F5FA ; text ; L2 ; none ; w # V7.0 (🗺) WORLD MAP -1F5FB ; emoji ; L1 ; none ; j # V6.0 (🗻) MOUNT FUJI -1F5FC ; emoji ; L1 ; none ; j # V6.0 (🗼) TOKYO TOWER -1F5FD ; emoji ; L1 ; none ; j # V6.0 (🗽) STATUE OF LIBERTY -1F5FE ; emoji ; L1 ; none ; j # V6.0 (🗾) SILHOUETTE OF JAPAN -1F5FF ; emoji ; L1 ; none ; j # V6.0 (🗿) MOYAI -1F600 ; emoji ; L1 ; secondary ; x # V6.1 (😀) GRINNING FACE -1F601 ; emoji ; L1 ; secondary ; j # V6.0 (😁) GRINNING FACE WITH SMILING EYES -1F602 ; emoji ; L1 ; secondary ; j # V6.0 (😂) FACE WITH TEARS OF JOY -1F603 ; emoji ; L1 ; secondary ; j # V6.0 (😃) SMILING FACE WITH OPEN MOUTH -1F604 ; emoji ; L1 ; secondary ; j # V6.0 (😄) SMILING FACE WITH OPEN MOUTH AND SMILING EYES -1F605 ; emoji ; L1 ; secondary ; j # V6.0 (😅) SMILING FACE WITH OPEN MOUTH AND COLD SWEAT -1F606 ; emoji ; L1 ; secondary ; j # V6.0 (😆) SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES -1F607 ; emoji ; L1 ; secondary ; x # V6.0 (😇) SMILING FACE WITH HALO -1F608 ; emoji ; L1 ; secondary ; x # V6.0 (😈) SMILING FACE WITH HORNS -1F609 ; emoji ; L1 ; secondary ; j # V6.0 (😉) WINKING FACE -1F60A ; emoji ; L1 ; secondary ; j # V6.0 (😊) SMILING FACE WITH SMILING EYES -1F60B ; emoji ; L1 ; secondary ; j # V6.0 (😋) FACE SAVOURING DELICIOUS FOOD -1F60C ; emoji ; L1 ; secondary ; j # V6.0 (😌) RELIEVED FACE -1F60D ; emoji ; L1 ; secondary ; j # V6.0 (😍) SMILING FACE WITH HEART-SHAPED EYES -1F60E ; emoji ; L1 ; secondary ; x # V6.0 (😎) SMILING FACE WITH SUNGLASSES -1F60F ; emoji ; L1 ; secondary ; j # V6.0 (😏) SMIRKING FACE -1F610 ; emoji ; L1 ; secondary ; w # V6.0 (😐) NEUTRAL FACE -1F611 ; emoji ; L1 ; secondary ; x # V6.1 (😑) EXPRESSIONLESS FACE -1F612 ; emoji ; L1 ; secondary ; j # V6.0 (😒) UNAMUSED FACE -1F613 ; emoji ; L1 ; secondary ; j # V6.0 (😓) FACE WITH COLD SWEAT -1F614 ; emoji ; L1 ; secondary ; j # V6.0 (😔) PENSIVE FACE -1F615 ; emoji ; L1 ; secondary ; x # V6.1 (😕) CONFUSED FACE -1F616 ; emoji ; L1 ; secondary ; j # V6.0 (😖) CONFOUNDED FACE -1F617 ; emoji ; L1 ; secondary ; x # V6.1 (😗) KISSING FACE -1F618 ; emoji ; L1 ; secondary ; j # V6.0 (😘) FACE THROWING A KISS -1F619 ; emoji ; L1 ; secondary ; x # V6.1 (😙) KISSING FACE WITH SMILING EYES -1F61A ; emoji ; L1 ; secondary ; j # V6.0 (😚) KISSING FACE WITH CLOSED EYES -1F61B ; emoji ; L1 ; secondary ; x # V6.1 (😛) FACE WITH STUCK-OUT TONGUE -1F61C ; emoji ; L1 ; secondary ; j # V6.0 (😜) FACE WITH STUCK-OUT TONGUE AND WINKING EYE -1F61D ; emoji ; L1 ; secondary ; j # V6.0 (😝) FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES -1F61E ; emoji ; L1 ; secondary ; j # V6.0 (😞) DISAPPOINTED FACE -1F61F ; emoji ; L1 ; secondary ; x # V6.1 (😟) WORRIED FACE -1F620 ; emoji ; L1 ; secondary ; j # V6.0 (😠) ANGRY FACE -1F621 ; emoji ; L1 ; secondary ; j # V6.0 (😡) POUTING FACE -1F622 ; emoji ; L1 ; secondary ; j # V6.0 (😢) CRYING FACE -1F623 ; emoji ; L1 ; secondary ; j # V6.0 (😣) PERSEVERING FACE -1F624 ; emoji ; L1 ; secondary ; j # V6.0 (😤) FACE WITH LOOK OF TRIUMPH -1F625 ; emoji ; L1 ; secondary ; j # V6.0 (😥) DISAPPOINTED BUT RELIEVED FACE -1F626 ; emoji ; L1 ; secondary ; x # V6.1 (😦) FROWNING FACE WITH OPEN MOUTH -1F627 ; emoji ; L1 ; secondary ; x # V6.1 (😧) ANGUISHED FACE -1F628 ; emoji ; L1 ; secondary ; j # V6.0 (😨) FEARFUL FACE -1F629 ; emoji ; L1 ; secondary ; j # V6.0 (😩) WEARY FACE -1F62A ; emoji ; L1 ; secondary ; j # V6.0 (😪) SLEEPY FACE -1F62B ; emoji ; L1 ; secondary ; j # V6.0 (😫) TIRED FACE -1F62C ; emoji ; L1 ; secondary ; x # V6.1 (😬) GRIMACING FACE -1F62D ; emoji ; L1 ; secondary ; j # V6.0 (😭) LOUDLY CRYING FACE -1F62E ; emoji ; L1 ; secondary ; x # V6.1 (😮) FACE WITH OPEN MOUTH -1F62F ; emoji ; L1 ; secondary ; x # V6.1 (😯) HUSHED FACE -1F630 ; emoji ; L1 ; secondary ; j # V6.0 (😰) FACE WITH OPEN MOUTH AND COLD SWEAT -1F631 ; emoji ; L1 ; secondary ; j # V6.0 (😱) FACE SCREAMING IN FEAR -1F632 ; emoji ; L1 ; secondary ; j # V6.0 (😲) ASTONISHED FACE -1F633 ; emoji ; L1 ; secondary ; j # V6.0 (😳) FLUSHED FACE -1F634 ; emoji ; L1 ; secondary ; x # V6.1 (😴) SLEEPING FACE -1F635 ; emoji ; L1 ; secondary ; j # V6.0 (😵) DIZZY FACE -1F636 ; emoji ; L1 ; secondary ; x # V6.0 (😶) FACE WITHOUT MOUTH -1F637 ; emoji ; L1 ; secondary ; j # V6.0 (😷) FACE WITH MEDICAL MASK -1F638 ; emoji ; L1 ; none ; j # V6.0 (😸) GRINNING CAT FACE WITH SMILING EYES -1F639 ; emoji ; L1 ; none ; j # V6.0 (😹) CAT FACE WITH TEARS OF JOY -1F63A ; emoji ; L1 ; none ; j # V6.0 (😺) SMILING CAT FACE WITH OPEN MOUTH -1F63B ; emoji ; L1 ; none ; j # V6.0 (😻) SMILING CAT FACE WITH HEART-SHAPED EYES -1F63C ; emoji ; L1 ; none ; j # V6.0 (😼) CAT FACE WITH WRY SMILE -1F63D ; emoji ; L1 ; none ; j # V6.0 (😽) KISSING CAT FACE WITH CLOSED EYES -1F63E ; emoji ; L1 ; none ; j # V6.0 (😾) POUTING CAT FACE -1F63F ; emoji ; L1 ; none ; j # V6.0 (😿) CRYING CAT FACE -1F640 ; emoji ; L1 ; none ; j # V6.0 (🙀) WEARY CAT FACE -1F641 ; emoji ; L2 ; secondary ; x # V7.0 (🙁) SLIGHTLY FROWNING FACE -1F642 ; emoji ; L2 ; secondary ; x # V7.0 (🙂) SLIGHTLY SMILING FACE -1F643 ; emoji ; L2 ; secondary ; x # V8.0 (🙃) UPSIDE-DOWN FACE -1F644 ; emoji ; L2 ; secondary ; x # V8.0 (🙄) FACE WITH ROLLING EYES -1F645 ; emoji ; L1 ; primary ; j # V6.0 (🙅) FACE WITH NO GOOD GESTURE -1F646 ; emoji ; L1 ; primary ; j # V6.0 (🙆) FACE WITH OK GESTURE -1F647 ; emoji ; L1 ; primary ; j # V6.0 (🙇) PERSON BOWING DEEPLY -1F648 ; emoji ; L1 ; none ; j # V6.0 (🙈) SEE-NO-EVIL MONKEY -1F649 ; emoji ; L1 ; none ; j # V6.0 (🙉) HEAR-NO-EVIL MONKEY -1F64A ; emoji ; L1 ; none ; j # V6.0 (🙊) SPEAK-NO-EVIL MONKEY -1F64B ; emoji ; L1 ; primary ; j # V6.0 (🙋) HAPPY PERSON RAISING ONE HAND -1F64C ; emoji ; L1 ; secondary ; j # V6.0 (🙌) PERSON RAISING BOTH HANDS IN CELEBRATION -1F64D ; emoji ; L1 ; primary ; j # V6.0 (🙍) PERSON FROWNING -1F64E ; emoji ; L1 ; primary ; j # V6.0 (🙎) PERSON WITH POUTING FACE -1F64F ; emoji ; L1 ; secondary ; j # V6.0 (🙏) PERSON WITH FOLDED HANDS -1F680 ; emoji ; L1 ; none ; j # V6.0 (🚀) ROCKET -1F681 ; emoji ; L1 ; none ; x # V6.0 (🚁) HELICOPTER -1F682 ; emoji ; L1 ; none ; x # V6.0 (🚂) STEAM LOCOMOTIVE -1F683 ; emoji ; L1 ; none ; j # V6.0 (🚃) RAILWAY CAR -1F684 ; emoji ; L1 ; none ; j # V6.0 (🚄) HIGH-SPEED TRAIN -1F685 ; emoji ; L1 ; none ; j # V6.0 (🚅) HIGH-SPEED TRAIN WITH BULLET NOSE -1F686 ; emoji ; L1 ; none ; x # V6.0 (🚆) TRAIN -1F687 ; emoji ; L1 ; none ; j w # V6.0 (🚇) METRO -1F688 ; emoji ; L1 ; none ; x # V6.0 (🚈) LIGHT RAIL -1F689 ; emoji ; L1 ; none ; j # V6.0 (🚉) STATION -1F68A ; emoji ; L1 ; none ; x # V6.0 (🚊) TRAM -1F68B ; emoji ; L1 ; none ; x # V6.0 (🚋) TRAM CAR -1F68C ; emoji ; L1 ; none ; j # V6.0 (🚌) BUS -1F68D ; emoji ; L1 ; none ; w # V6.0 (🚍) ONCOMING BUS -1F68E ; emoji ; L1 ; none ; x # V6.0 (🚎) TROLLEYBUS -1F68F ; emoji ; L1 ; none ; j # V6.0 (🚏) BUS STOP -1F690 ; emoji ; L1 ; none ; x # V6.0 (🚐) MINIBUS -1F691 ; emoji ; L1 ; none ; j w # V6.0 (🚑) AMBULANCE -1F692 ; emoji ; L1 ; none ; j # V6.0 (🚒) FIRE ENGINE -1F693 ; emoji ; L1 ; none ; j # V6.0 (🚓) POLICE CAR -1F694 ; emoji ; L1 ; none ; w # V6.0 (🚔) ONCOMING POLICE CAR -1F695 ; emoji ; L1 ; none ; j # V6.0 (🚕) TAXI -1F696 ; emoji ; L1 ; none ; x # V6.0 (🚖) ONCOMING TAXI -1F697 ; emoji ; L1 ; none ; j # V6.0 (🚗) AUTOMOBILE -1F698 ; emoji ; L1 ; none ; w # V6.0 (🚘) ONCOMING AUTOMOBILE -1F699 ; emoji ; L1 ; none ; j # V6.0 (🚙) RECREATIONAL VEHICLE -1F69A ; emoji ; L1 ; none ; j # V6.0 (🚚) DELIVERY TRUCK -1F69B ; emoji ; L1 ; none ; x # V6.0 (🚛) ARTICULATED LORRY -1F69C ; emoji ; L1 ; none ; x # V6.0 (🚜) TRACTOR -1F69D ; emoji ; L1 ; none ; x # V6.0 (🚝) MONORAIL -1F69E ; emoji ; L1 ; none ; x # V6.0 (🚞) MOUNTAIN RAILWAY -1F69F ; emoji ; L1 ; none ; x # V6.0 (🚟) SUSPENSION RAILWAY -1F6A0 ; emoji ; L1 ; none ; x # V6.0 (🚠) MOUNTAIN CABLEWAY -1F6A1 ; emoji ; L1 ; none ; x # V6.0 (🚡) AERIAL TRAMWAY -1F6A2 ; emoji ; L1 ; none ; j # V6.0 (🚢) SHIP -1F6A3 ; emoji ; L1 ; secondary ; x # V6.0 (🚣) ROWBOAT -1F6A4 ; emoji ; L1 ; none ; j # V6.0 (🚤) SPEEDBOAT -1F6A5 ; emoji ; L1 ; none ; j # V6.0 (🚥) HORIZONTAL TRAFFIC LIGHT -1F6A6 ; emoji ; L1 ; none ; x # V6.0 (🚦) VERTICAL TRAFFIC LIGHT -1F6A7 ; emoji ; L1 ; none ; j # V6.0 (🚧) CONSTRUCTION SIGN -1F6A8 ; emoji ; L1 ; none ; j # V6.0 (🚨) POLICE CARS REVOLVING LIGHT -1F6A9 ; emoji ; L1 ; none ; j # V6.0 (🚩) TRIANGULAR FLAG ON POST -1F6AA ; emoji ; L1 ; none ; j # V6.0 (🚪) DOOR -1F6AB ; emoji ; L1 ; none ; j # V6.0 (🚫) NO ENTRY SIGN -1F6AC ; emoji ; L1 ; none ; j # V6.0 (🚬) SMOKING SYMBOL -1F6AD ; emoji ; L1 ; none ; j w # V6.0 (🚭) NO SMOKING SYMBOL -1F6AE ; emoji ; L1 ; none ; x # V6.0 (🚮) PUT LITTER IN ITS PLACE SYMBOL -1F6AF ; emoji ; L1 ; none ; x # V6.0 (🚯) DO NOT LITTER SYMBOL -1F6B0 ; emoji ; L1 ; none ; x # V6.0 (🚰) POTABLE WATER SYMBOL -1F6B1 ; emoji ; L1 ; none ; x # V6.0 (🚱) NON-POTABLE WATER SYMBOL -1F6B2 ; emoji ; L1 ; none ; j w # V6.0 (🚲) BICYCLE -1F6B3 ; emoji ; L1 ; none ; x # V6.0 (🚳) NO BICYCLES -1F6B4 ; emoji ; L1 ; secondary ; x # V6.0 (🚴) BICYCLIST -1F6B5 ; emoji ; L1 ; secondary ; x # V6.0 (🚵) MOUNTAIN BICYCLIST -1F6B6 ; emoji ; L1 ; secondary ; j # V6.0 (🚶) PEDESTRIAN -1F6B7 ; emoji ; L1 ; none ; x # V6.0 (🚷) NO PEDESTRIANS -1F6B8 ; emoji ; L1 ; none ; x # V6.0 (🚸) CHILDREN CROSSING -1F6B9 ; emoji ; L1 ; none ; j w # V6.0 (🚹) MENS SYMBOL -1F6BA ; emoji ; L1 ; none ; j w # V6.0 (🚺) WOMENS SYMBOL -1F6BB ; emoji ; L1 ; none ; j # V6.0 (🚻) RESTROOM -1F6BC ; emoji ; L1 ; none ; j w # V6.0 (🚼) BABY SYMBOL -1F6BD ; emoji ; L1 ; none ; j # V6.0 (🚽) TOILET -1F6BE ; emoji ; L1 ; none ; j # V6.0 (🚾) WATER CLOSET -1F6BF ; emoji ; L1 ; none ; x # V6.0 (🚿) SHOWER -1F6C0 ; emoji ; L1 ; secondary ; j # V6.0 (🛀) BATH -1F6C1 ; emoji ; L1 ; none ; x # V6.0 (🛁) BATHTUB -1F6C2 ; emoji ; L1 ; none ; x # V6.0 (🛂) PASSPORT CONTROL -1F6C3 ; emoji ; L1 ; none ; x # V6.0 (🛃) CUSTOMS -1F6C4 ; emoji ; L1 ; none ; x # V6.0 (🛄) BAGGAGE CLAIM -1F6C5 ; emoji ; L1 ; none ; x # V6.0 (🛅) LEFT LUGGAGE -1F6CB ; text ; L2 ; none ; w # V7.0 (🛋) COUCH AND LAMP -1F6CC ; emoji ; L2 ; none ; x # V7.0 (🛌) SLEEPING ACCOMMODATION -1F6CD ; text ; L2 ; none ; w # V7.0 (🛍) SHOPPING BAGS -1F6CE ; text ; L2 ; none ; w # V7.0 (🛎) BELLHOP BELL -1F6CF ; text ; L2 ; none ; w # V7.0 (🛏) BED -1F6D0 ; emoji ; L2 ; none ; x # V8.0 (🛐) PLACE OF WORSHIP -1F6E0 ; text ; L2 ; none ; w # V7.0 (🛠) HAMMER AND WRENCH -1F6E1 ; text ; L2 ; none ; w # V7.0 (🛡) SHIELD -1F6E2 ; text ; L2 ; none ; w # V7.0 (🛢) OIL DRUM -1F6E3 ; text ; L2 ; none ; w # V7.0 (🛣) MOTORWAY -1F6E4 ; text ; L2 ; none ; w # V7.0 (🛤) RAILWAY TRACK -1F6E5 ; text ; L2 ; none ; w # V7.0 (🛥) MOTOR BOAT -1F6E9 ; text ; L2 ; none ; w # V7.0 (🛩) SMALL AIRPLANE -1F6EB ; emoji ; L2 ; none ; x # V7.0 (🛫) AIRPLANE DEPARTURE -1F6EC ; emoji ; L2 ; none ; x # V7.0 (🛬) AIRPLANE ARRIVING -1F6F0 ; text ; L2 ; none ; w # V7.0 (🛰) SATELLITE -1F6F3 ; text ; L2 ; none ; w # V7.0 (🛳) PASSENGER SHIP -1F910 ; emoji ; L2 ; secondary ; x # V8.0 (🤐) ZIPPER-MOUTH FACE -1F911 ; emoji ; L2 ; secondary ; x # V8.0 (🤑) MONEY-MOUTH FACE -1F912 ; emoji ; L2 ; secondary ; x # V8.0 (🤒) FACE WITH THERMOMETER -1F913 ; emoji ; L2 ; secondary ; x # V8.0 (🤓) NERD FACE -1F914 ; emoji ; L2 ; secondary ; x # V8.0 (🤔) THINKING FACE -1F915 ; emoji ; L2 ; secondary ; x # V8.0 (🤕) FACE WITH HEAD-BANDAGE -1F916 ; emoji ; L2 ; none ; x # V8.0 (🤖) ROBOT FACE -1F917 ; emoji ; L2 ; secondary ; x # V8.0 (🤗) HUGGING FACE -1F918 ; emoji ; L2 ; secondary ; x # V8.0 (🤘) SIGN OF THE HORNS -1F980 ; emoji ; L2 ; none ; x # V8.0 (🦀) CRAB -1F981 ; emoji ; L2 ; none ; x # V8.0 (🦁) LION FACE -1F982 ; emoji ; L2 ; none ; x # V8.0 (🦂) SCORPION -1F983 ; emoji ; L2 ; none ; x # V8.0 (🦃) TURKEY -1F984 ; emoji ; L2 ; none ; x # V8.0 (🦄) UNICORN FACE -1F9C0 ; emoji ; L2 ; none ; x # V8.0 (🧀) CHEESE WEDGE -0023 20E3 ; text ; L1 ; none ; j # V3.0 (#⃣) keycap NUMBER SIGN -002A 20E3 ; text ; L2 ; none ; x # V3.0 (*⃣) keycap ASTERISK -0030 20E3 ; text ; L1 ; none ; j # V3.0 (0⃣) keycap DIGIT ZERO -0031 20E3 ; text ; L1 ; none ; j # V3.0 (1⃣) keycap DIGIT ONE -0032 20E3 ; text ; L1 ; none ; j # V3.0 (2⃣) keycap DIGIT TWO -0033 20E3 ; text ; L1 ; none ; j # V3.0 (3⃣) keycap DIGIT THREE -0034 20E3 ; text ; L1 ; none ; j # V3.0 (4⃣) keycap DIGIT FOUR -0035 20E3 ; text ; L1 ; none ; j # V3.0 (5⃣) keycap DIGIT FIVE -0036 20E3 ; text ; L1 ; none ; j # V3.0 (6⃣) keycap DIGIT SIX -0037 20E3 ; text ; L1 ; none ; j # V3.0 (7⃣) keycap DIGIT SEVEN -0038 20E3 ; text ; L1 ; none ; j # V3.0 (8⃣) keycap DIGIT EIGHT -0039 20E3 ; text ; L1 ; none ; j # V3.0 (9⃣) keycap DIGIT NINE -1F1E6 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇦🇨) flag for Ascension Island -1F1E6 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇦🇩) flag for Andorra -1F1E6 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇦🇪) flag for United Arab Emirates -1F1E6 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇦🇫) flag for Afghanistan -1F1E6 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇦🇬) flag for Antigua & Barbuda -1F1E6 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇦🇮) flag for Anguilla -1F1E6 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇦🇱) flag for Albania -1F1E6 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇦🇲) flag for Armenia -1F1E6 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇦🇴) flag for Angola -1F1E6 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇦🇶) flag for Antarctica -1F1E6 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇦🇷) flag for Argentina -1F1E6 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇦🇸) flag for American Samoa -1F1E6 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇦🇹) flag for Austria -1F1E6 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇦🇺) flag for Australia -1F1E6 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇦🇼) flag for Aruba -1F1E6 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇦🇽) flag for Åland Islands -1F1E6 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇦🇿) flag for Azerbaijan -1F1E7 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇧🇦) flag for Bosnia & Herzegovina -1F1E7 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇧🇧) flag for Barbados -1F1E7 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇧🇩) flag for Bangladesh -1F1E7 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇧🇪) flag for Belgium -1F1E7 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇧🇫) flag for Burkina Faso -1F1E7 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇧🇬) flag for Bulgaria -1F1E7 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇧🇭) flag for Bahrain -1F1E7 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇧🇮) flag for Burundi -1F1E7 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇧🇯) flag for Benin -1F1E7 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇧🇱) flag for St. Barthélemy -1F1E7 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇧🇲) flag for Bermuda -1F1E7 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇧🇳) flag for Brunei -1F1E7 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇧🇴) flag for Bolivia -1F1E7 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇧🇶) flag for Caribbean Netherlands -1F1E7 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇧🇷) flag for Brazil -1F1E7 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇧🇸) flag for Bahamas -1F1E7 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇧🇹) flag for Bhutan -1F1E7 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇧🇻) flag for Bouvet Island -1F1E7 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇧🇼) flag for Botswana -1F1E7 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇧🇾) flag for Belarus -1F1E7 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇧🇿) flag for Belize -1F1E8 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇨🇦) flag for Canada -1F1E8 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇨🇨) flag for Cocos Islands -1F1E8 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇨🇩) flag for Congo - Kinshasa -1F1E8 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇨🇫) flag for Central African Republic -1F1E8 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇨🇬) flag for Congo - Brazzaville -1F1E8 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇨🇭) flag for Switzerland -1F1E8 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇨🇮) flag for Côte d’Ivoire -1F1E8 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇨🇰) flag for Cook Islands -1F1E8 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇨🇱) flag for Chile -1F1E8 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇨🇲) flag for Cameroon -1F1E8 1F1F3 ; emoji ; L1 ; none ; j # V6.0 (🇨🇳) flag for China -1F1E8 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇨🇴) flag for Colombia -1F1E8 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇨🇵) flag for Clipperton Island -1F1E8 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇨🇷) flag for Costa Rica -1F1E8 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇨🇺) flag for Cuba -1F1E8 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇨🇻) flag for Cape Verde -1F1E8 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇨🇼) flag for Curaçao -1F1E8 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇨🇽) flag for Christmas Island -1F1E8 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇨🇾) flag for Cyprus -1F1E8 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇨🇿) flag for Czech Republic -1F1E9 1F1EA ; emoji ; L1 ; none ; j # V6.0 (🇩🇪) flag for Germany -1F1E9 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇩🇬) flag for Diego Garcia -1F1E9 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇩🇯) flag for Djibouti -1F1E9 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇩🇰) flag for Denmark -1F1E9 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇩🇲) flag for Dominica -1F1E9 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇩🇴) flag for Dominican Republic -1F1E9 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇩🇿) flag for Algeria -1F1EA 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇪🇦) flag for Ceuta & Melilla -1F1EA 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇪🇨) flag for Ecuador -1F1EA 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇪🇪) flag for Estonia -1F1EA 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇪🇬) flag for Egypt -1F1EA 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇪🇭) flag for Western Sahara -1F1EA 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇪🇷) flag for Eritrea -1F1EA 1F1F8 ; emoji ; L1 ; none ; j # V6.0 (🇪🇸) flag for Spain -1F1EA 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇪🇹) flag for Ethiopia -1F1EA 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇪🇺) flag for European Union -1F1EB 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇫🇮) flag for Finland -1F1EB 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇫🇯) flag for Fiji -1F1EB 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇫🇰) flag for Falkland Islands -1F1EB 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇫🇲) flag for Micronesia -1F1EB 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇫🇴) flag for Faroe Islands -1F1EB 1F1F7 ; emoji ; L1 ; none ; j # V6.0 (🇫🇷) flag for France -1F1EC 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇬🇦) flag for Gabon -1F1EC 1F1E7 ; emoji ; L1 ; none ; j # V6.0 (🇬🇧) flag for United Kingdom -1F1EC 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇬🇩) flag for Grenada -1F1EC 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇬🇪) flag for Georgia -1F1EC 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇬🇫) flag for French Guiana -1F1EC 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇬🇬) flag for Guernsey -1F1EC 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇬🇭) flag for Ghana -1F1EC 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇬🇮) flag for Gibraltar -1F1EC 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇬🇱) flag for Greenland -1F1EC 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇬🇲) flag for Gambia -1F1EC 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇬🇳) flag for Guinea -1F1EC 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇬🇵) flag for Guadeloupe -1F1EC 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇬🇶) flag for Equatorial Guinea -1F1EC 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇬🇷) flag for Greece -1F1EC 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇬🇸) flag for South Georgia & South Sandwich Islands -1F1EC 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇬🇹) flag for Guatemala -1F1EC 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇬🇺) flag for Guam -1F1EC 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇬🇼) flag for Guinea-Bissau -1F1EC 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇬🇾) flag for Guyana -1F1ED 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇭🇰) flag for Hong Kong -1F1ED 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇭🇲) flag for Heard & McDonald Islands -1F1ED 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇭🇳) flag for Honduras -1F1ED 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇭🇷) flag for Croatia -1F1ED 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇭🇹) flag for Haiti -1F1ED 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇭🇺) flag for Hungary -1F1EE 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇮🇨) flag for Canary Islands -1F1EE 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇮🇩) flag for Indonesia -1F1EE 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇮🇪) flag for Ireland -1F1EE 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇮🇱) flag for Israel -1F1EE 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇮🇲) flag for Isle of Man -1F1EE 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇮🇳) flag for India -1F1EE 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇮🇴) flag for British Indian Ocean Territory -1F1EE 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇮🇶) flag for Iraq -1F1EE 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇮🇷) flag for Iran -1F1EE 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇮🇸) flag for Iceland -1F1EE 1F1F9 ; emoji ; L1 ; none ; j # V6.0 (🇮🇹) flag for Italy -1F1EF 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇯🇪) flag for Jersey -1F1EF 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇯🇲) flag for Jamaica -1F1EF 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇯🇴) flag for Jordan -1F1EF 1F1F5 ; emoji ; L1 ; none ; j # V6.0 (🇯🇵) flag for Japan -1F1F0 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇰🇪) flag for Kenya -1F1F0 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇰🇬) flag for Kyrgyzstan -1F1F0 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇰🇭) flag for Cambodia -1F1F0 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇰🇮) flag for Kiribati -1F1F0 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇰🇲) flag for Comoros -1F1F0 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇰🇳) flag for St. Kitts & Nevis -1F1F0 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇰🇵) flag for North Korea -1F1F0 1F1F7 ; emoji ; L1 ; none ; j # V6.0 (🇰🇷) flag for South Korea -1F1F0 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇰🇼) flag for Kuwait -1F1F0 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇰🇾) flag for Cayman Islands -1F1F0 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇰🇿) flag for Kazakhstan -1F1F1 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇱🇦) flag for Laos -1F1F1 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇱🇧) flag for Lebanon -1F1F1 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇱🇨) flag for St. Lucia -1F1F1 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇱🇮) flag for Liechtenstein -1F1F1 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇱🇰) flag for Sri Lanka -1F1F1 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇱🇷) flag for Liberia -1F1F1 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇱🇸) flag for Lesotho -1F1F1 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇱🇹) flag for Lithuania -1F1F1 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇱🇺) flag for Luxembourg -1F1F1 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇱🇻) flag for Latvia -1F1F1 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇱🇾) flag for Libya -1F1F2 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇲🇦) flag for Morocco -1F1F2 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇲🇨) flag for Monaco -1F1F2 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇲🇩) flag for Moldova -1F1F2 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇲🇪) flag for Montenegro -1F1F2 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇲🇫) flag for St. Martin -1F1F2 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇲🇬) flag for Madagascar -1F1F2 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇲🇭) flag for Marshall Islands -1F1F2 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇲🇰) flag for Macedonia -1F1F2 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇲🇱) flag for Mali -1F1F2 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇲🇲) flag for Myanmar -1F1F2 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇲🇳) flag for Mongolia -1F1F2 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇲🇴) flag for Macau -1F1F2 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇲🇵) flag for Northern Mariana Islands -1F1F2 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇲🇶) flag for Martinique -1F1F2 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇲🇷) flag for Mauritania -1F1F2 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇲🇸) flag for Montserrat -1F1F2 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇲🇹) flag for Malta -1F1F2 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇲🇺) flag for Mauritius -1F1F2 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇲🇻) flag for Maldives -1F1F2 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇲🇼) flag for Malawi -1F1F2 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇲🇽) flag for Mexico -1F1F2 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇲🇾) flag for Malaysia -1F1F2 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇲🇿) flag for Mozambique -1F1F3 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇳🇦) flag for Namibia -1F1F3 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇳🇨) flag for New Caledonia -1F1F3 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇳🇪) flag for Niger -1F1F3 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇳🇫) flag for Norfolk Island -1F1F3 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇳🇬) flag for Nigeria -1F1F3 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇳🇮) flag for Nicaragua -1F1F3 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇳🇱) flag for Netherlands -1F1F3 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇳🇴) flag for Norway -1F1F3 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇳🇵) flag for Nepal -1F1F3 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇳🇷) flag for Nauru -1F1F3 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇳🇺) flag for Niue -1F1F3 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇳🇿) flag for New Zealand -1F1F4 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇴🇲) flag for Oman -1F1F5 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇵🇦) flag for Panama -1F1F5 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇵🇪) flag for Peru -1F1F5 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇵🇫) flag for French Polynesia -1F1F5 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇵🇬) flag for Papua New Guinea -1F1F5 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇵🇭) flag for Philippines -1F1F5 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇵🇰) flag for Pakistan -1F1F5 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇵🇱) flag for Poland -1F1F5 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇵🇲) flag for St. Pierre & Miquelon -1F1F5 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇵🇳) flag for Pitcairn Islands -1F1F5 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇵🇷) flag for Puerto Rico -1F1F5 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇵🇸) flag for Palestinian Territories -1F1F5 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇵🇹) flag for Portugal -1F1F5 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇵🇼) flag for Palau -1F1F5 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇵🇾) flag for Paraguay -1F1F6 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇶🇦) flag for Qatar -1F1F7 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇷🇪) flag for Réunion -1F1F7 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇷🇴) flag for Romania -1F1F7 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇷🇸) flag for Serbia -1F1F7 1F1FA ; emoji ; L1 ; none ; j # V6.0 (🇷🇺) flag for Russia -1F1F7 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇷🇼) flag for Rwanda -1F1F8 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇸🇦) flag for Saudi Arabia -1F1F8 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇸🇧) flag for Solomon Islands -1F1F8 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇸🇨) flag for Seychelles -1F1F8 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇸🇩) flag for Sudan -1F1F8 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇸🇪) flag for Sweden -1F1F8 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇸🇬) flag for Singapore -1F1F8 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇸🇭) flag for St. Helena -1F1F8 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇸🇮) flag for Slovenia -1F1F8 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇸🇯) flag for Svalbard & Jan Mayen -1F1F8 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇸🇰) flag for Slovakia -1F1F8 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇸🇱) flag for Sierra Leone -1F1F8 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇸🇲) flag for San Marino -1F1F8 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇸🇳) flag for Senegal -1F1F8 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇸🇴) flag for Somalia -1F1F8 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇸🇷) flag for Suriname -1F1F8 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇸🇸) flag for South Sudan -1F1F8 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇸🇹) flag for São Tomé & Príncipe -1F1F8 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇸🇻) flag for El Salvador -1F1F8 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇸🇽) flag for Sint Maarten -1F1F8 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇸🇾) flag for Syria -1F1F8 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇸🇿) flag for Swaziland -1F1F9 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇹🇦) flag for Tristan da Cunha -1F1F9 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇹🇨) flag for Turks & Caicos Islands -1F1F9 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇹🇩) flag for Chad -1F1F9 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇹🇫) flag for French Southern Territories -1F1F9 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇹🇬) flag for Togo -1F1F9 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇹🇭) flag for Thailand -1F1F9 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇹🇯) flag for Tajikistan -1F1F9 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇹🇰) flag for Tokelau -1F1F9 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇹🇱) flag for Timor-Leste -1F1F9 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇹🇲) flag for Turkmenistan -1F1F9 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇹🇳) flag for Tunisia -1F1F9 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇹🇴) flag for Tonga -1F1F9 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇹🇷) flag for Turkey -1F1F9 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇹🇹) flag for Trinidad & Tobago -1F1F9 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇹🇻) flag for Tuvalu -1F1F9 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇹🇼) flag for Taiwan -1F1F9 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇹🇿) flag for Tanzania -1F1FA 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇺🇦) flag for Ukraine -1F1FA 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇺🇬) flag for Uganda -1F1FA 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇺🇲) flag for U.S. Outlying Islands -1F1FA 1F1F8 ; emoji ; L1 ; none ; j # V6.0 (🇺🇸) flag for United States -1F1FA 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇺🇾) flag for Uruguay -1F1FA 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇺🇿) flag for Uzbekistan -1F1FB 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇻🇦) flag for Vatican City -1F1FB 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇻🇨) flag for St. Vincent & Grenadines -1F1FB 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇻🇪) flag for Venezuela -1F1FB 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇻🇬) flag for British Virgin Islands -1F1FB 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇻🇮) flag for U.S. Virgin Islands -1F1FB 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇻🇳) flag for Vietnam -1F1FB 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇻🇺) flag for Vanuatu -1F1FC 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇼🇫) flag for Wallis & Futuna -1F1FC 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇼🇸) flag for Samoa -1F1FD 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇽🇰) flag for Kosovo -1F1FE 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇾🇪) flag for Yemen -1F1FE 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇾🇹) flag for Mayotte -1F1FF 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇿🇦) flag for South Africa -1F1FF 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇿🇲) flag for Zambia -1F1FF 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇿🇼) flag for Zimbabwe +# This file provides data for testing which emoji forms should be in keyboards and which should also be displayed/processed. +# Format: code points; status # emoji name +# Code points — list of one or more hex code points, separated by spaces +# Status +# component — an Emoji_Component, +# excluding Regional_Indicators, ASCII, and non-Emoji. +# fully-qualified — a fully-qualified emoji (see ED-18 in UTS #51), +# excluding Emoji_Component +# minimally-qualified — a minimally-qualified emoji (see ED-18a in UTS #51) +# unqualified — a unqualified emoji (See ED-19 in UTS #51) +# Notes: +# • This includes the emoji components that need emoji presentation (skin tone and hair) +# when isolated, but omits the components that need not have an emoji +# presentation when isolated. +# • The RGI set is covered by the listed fully-qualified emoji. +# • The listed minimally-qualified and unqualified cover all cases where an +# element of the RGI set is missing one or more emoji presentation selectors. +# • The file is in CLDR order, not codepoint order. This is recommended (but not required!) for keyboard palettes. +# • The groups and subgroups are illustrative. See the Emoji Order chart for more information. + + +# group: Smileys & Emotion + +# subgroup: face-smiling +1F600 ; fully-qualified # 😀 grinning face +1F603 ; fully-qualified # 😃 grinning face with big eyes +1F604 ; fully-qualified # 😄 grinning face with smiling eyes +1F601 ; fully-qualified # 😁 beaming face with smiling eyes +1F606 ; fully-qualified # 😆 grinning squinting face +1F605 ; fully-qualified # 😅 grinning face with sweat +1F923 ; fully-qualified # 🤣 rolling on the floor laughing +1F602 ; fully-qualified # 😂 face with tears of joy +1F642 ; fully-qualified # 🙂 slightly smiling face +1F643 ; fully-qualified # 🙃 upside-down face +1F609 ; fully-qualified # 😉 winking face +1F60A ; fully-qualified # 😊 smiling face with smiling eyes +1F607 ; fully-qualified # 😇 smiling face with halo + +# subgroup: face-affection +1F970 ; fully-qualified # 🥰 smiling face with hearts +1F60D ; fully-qualified # 😍 smiling face with heart-eyes +1F929 ; fully-qualified # 🤩 star-struck +1F618 ; fully-qualified # 😘 face blowing a kiss +1F617 ; fully-qualified # 😗 kissing face +263A FE0F ; fully-qualified # ☺️ smiling face +263A ; unqualified # ☺ smiling face +1F61A ; fully-qualified # 😚 kissing face with closed eyes +1F619 ; fully-qualified # 😙 kissing face with smiling eyes + +# subgroup: face-tongue +1F60B ; fully-qualified # 😋 face savoring food +1F61B ; fully-qualified # 😛 face with tongue +1F61C ; fully-qualified # 😜 winking face with tongue +1F92A ; fully-qualified # 🤪 zany face +1F61D ; fully-qualified # 😝 squinting face with tongue +1F911 ; fully-qualified # 🤑 money-mouth face + +# subgroup: face-hand +1F917 ; fully-qualified # 🤗 hugging face +1F92D ; fully-qualified # 🤭 face with hand over mouth +1F92B ; fully-qualified # 🤫 shushing face +1F914 ; fully-qualified # 🤔 thinking face + +# subgroup: face-neutral-skeptical +1F910 ; fully-qualified # 🤐 zipper-mouth face +1F928 ; fully-qualified # 🤨 face with raised eyebrow +1F610 ; fully-qualified # 😐 neutral face +1F611 ; fully-qualified # 😑 expressionless face +1F636 ; fully-qualified # 😶 face without mouth +1F60F ; fully-qualified # 😏 smirking face +1F612 ; fully-qualified # 😒 unamused face +1F644 ; fully-qualified # 🙄 face with rolling eyes +1F62C ; fully-qualified # 😬 grimacing face +1F925 ; fully-qualified # 🤥 lying face + +# subgroup: face-sleepy +1F60C ; fully-qualified # 😌 relieved face +1F614 ; fully-qualified # 😔 pensive face +1F62A ; fully-qualified # 😪 sleepy face +1F924 ; fully-qualified # 🤤 drooling face +1F634 ; fully-qualified # 😴 sleeping face + +# subgroup: face-unwell +1F637 ; fully-qualified # 😷 face with medical mask +1F912 ; fully-qualified # 🤒 face with thermometer +1F915 ; fully-qualified # 🤕 face with head-bandage +1F922 ; fully-qualified # 🤢 nauseated face +1F92E ; fully-qualified # 🤮 face vomiting +1F927 ; fully-qualified # 🤧 sneezing face +1F975 ; fully-qualified # 🥵 hot face +1F976 ; fully-qualified # 🥶 cold face +1F974 ; fully-qualified # 🥴 woozy face +1F635 ; fully-qualified # 😵 dizzy face +1F92F ; fully-qualified # 🤯 exploding head + +# subgroup: face-hat +1F920 ; fully-qualified # 🤠 cowboy hat face +1F973 ; fully-qualified # 🥳 partying face + +# subgroup: face-glasses +1F60E ; fully-qualified # 😎 smiling face with sunglasses +1F913 ; fully-qualified # 🤓 nerd face +1F9D0 ; fully-qualified # 🧐 face with monocle + +# subgroup: face-concerned +1F615 ; fully-qualified # 😕 confused face +1F61F ; fully-qualified # 😟 worried face +1F641 ; fully-qualified # 🙁 slightly frowning face +2639 FE0F ; fully-qualified # ☹️ frowning face +2639 ; unqualified # ☹ frowning face +1F62E ; fully-qualified # 😮 face with open mouth +1F62F ; fully-qualified # 😯 hushed face +1F632 ; fully-qualified # 😲 astonished face +1F633 ; fully-qualified # 😳 flushed face +1F97A ; fully-qualified # 🥺 pleading face +1F626 ; fully-qualified # 😦 frowning face with open mouth +1F627 ; fully-qualified # 😧 anguished face +1F628 ; fully-qualified # 😨 fearful face +1F630 ; fully-qualified # 😰 anxious face with sweat +1F625 ; fully-qualified # 😥 sad but relieved face +1F622 ; fully-qualified # 😢 crying face +1F62D ; fully-qualified # 😭 loudly crying face +1F631 ; fully-qualified # 😱 face screaming in fear +1F616 ; fully-qualified # 😖 confounded face +1F623 ; fully-qualified # 😣 persevering face +1F61E ; fully-qualified # 😞 disappointed face +1F613 ; fully-qualified # 😓 downcast face with sweat +1F629 ; fully-qualified # 😩 weary face +1F62B ; fully-qualified # 😫 tired face +1F971 ; fully-qualified # 🥱 yawning face + +# subgroup: face-negative +1F624 ; fully-qualified # 😤 face with steam from nose +1F621 ; fully-qualified # 😡 pouting face +1F620 ; fully-qualified # 😠 angry face +1F92C ; fully-qualified # 🤬 face with symbols on mouth +1F608 ; fully-qualified # 😈 smiling face with horns +1F47F ; fully-qualified # 👿 angry face with horns +1F480 ; fully-qualified # 💀 skull +2620 FE0F ; fully-qualified # ☠️ skull and crossbones +2620 ; unqualified # ☠ skull and crossbones + +# subgroup: face-costume +1F4A9 ; fully-qualified # 💩 pile of poo +1F921 ; fully-qualified # 🤡 clown face +1F479 ; fully-qualified # 👹 ogre +1F47A ; fully-qualified # 👺 goblin +1F47B ; fully-qualified # 👻 ghost +1F47D ; fully-qualified # 👽 alien +1F47E ; fully-qualified # 👾 alien monster +1F916 ; fully-qualified # 🤖 robot + +# subgroup: cat-face +1F63A ; fully-qualified # 😺 grinning cat +1F638 ; fully-qualified # 😸 grinning cat with smiling eyes +1F639 ; fully-qualified # 😹 cat with tears of joy +1F63B ; fully-qualified # 😻 smiling cat with heart-eyes +1F63C ; fully-qualified # 😼 cat with wry smile +1F63D ; fully-qualified # 😽 kissing cat +1F640 ; fully-qualified # 🙀 weary cat +1F63F ; fully-qualified # 😿 crying cat +1F63E ; fully-qualified # 😾 pouting cat + +# subgroup: monkey-face +1F648 ; fully-qualified # 🙈 see-no-evil monkey +1F649 ; fully-qualified # 🙉 hear-no-evil monkey +1F64A ; fully-qualified # 🙊 speak-no-evil monkey + +# subgroup: emotion +1F48B ; fully-qualified # 💋 kiss mark +1F48C ; fully-qualified # 💌 love letter +1F498 ; fully-qualified # 💘 heart with arrow +1F49D ; fully-qualified # 💝 heart with ribbon +1F496 ; fully-qualified # 💖 sparkling heart +1F497 ; fully-qualified # 💗 growing heart +1F493 ; fully-qualified # 💓 beating heart +1F49E ; fully-qualified # 💞 revolving hearts +1F495 ; fully-qualified # 💕 two hearts +1F49F ; fully-qualified # 💟 heart decoration +2763 FE0F ; fully-qualified # ❣️ heart exclamation +2763 ; unqualified # ❣ heart exclamation +1F494 ; fully-qualified # 💔 broken heart +2764 FE0F ; fully-qualified # ❤️ red heart +2764 ; unqualified # ❤ red heart +1F9E1 ; fully-qualified # 🧡 orange heart +1F49B ; fully-qualified # 💛 yellow heart +1F49A ; fully-qualified # 💚 green heart +1F499 ; fully-qualified # 💙 blue heart +1F49C ; fully-qualified # 💜 purple heart +1F90E ; fully-qualified # 🤎 brown heart +1F5A4 ; fully-qualified # 🖤 black heart +1F90D ; fully-qualified # 🤍 white heart +1F4AF ; fully-qualified # 💯 hundred points +1F4A2 ; fully-qualified # 💢 anger symbol +1F4A5 ; fully-qualified # 💥 collision +1F4AB ; fully-qualified # 💫 dizzy +1F4A6 ; fully-qualified # 💦 sweat droplets +1F4A8 ; fully-qualified # 💨 dashing away +1F573 FE0F ; fully-qualified # 🕳️ hole +1F573 ; unqualified # 🕳 hole +1F4A3 ; fully-qualified # 💣 bomb +1F4AC ; fully-qualified # 💬 speech balloon +1F441 FE0F 200D 1F5E8 FE0F ; fully-qualified # 👁️🗨️ eye in speech bubble +1F441 200D 1F5E8 FE0F ; unqualified # 👁🗨️ eye in speech bubble +1F441 FE0F 200D 1F5E8 ; unqualified # 👁️🗨 eye in speech bubble +1F441 200D 1F5E8 ; unqualified # 👁🗨 eye in speech bubble +1F5E8 FE0F ; fully-qualified # 🗨️ left speech bubble +1F5E8 ; unqualified # 🗨 left speech bubble +1F5EF FE0F ; fully-qualified # 🗯️ right anger bubble +1F5EF ; unqualified # 🗯 right anger bubble +1F4AD ; fully-qualified # 💭 thought balloon +1F4A4 ; fully-qualified # 💤 zzz + +# Smileys & Emotion subtotal: 160 +# Smileys & Emotion subtotal: 160 w/o modifiers + +# group: People & Body + +# subgroup: hand-fingers-open +1F44B ; fully-qualified # 👋 waving hand +1F44B 1F3FB ; fully-qualified # 👋🏻 waving hand: light skin tone +1F44B 1F3FC ; fully-qualified # 👋🏼 waving hand: medium-light skin tone +1F44B 1F3FD ; fully-qualified # 👋🏽 waving hand: medium skin tone +1F44B 1F3FE ; fully-qualified # 👋🏾 waving hand: medium-dark skin tone +1F44B 1F3FF ; fully-qualified # 👋🏿 waving hand: dark skin tone +1F91A ; fully-qualified # 🤚 raised back of hand +1F91A 1F3FB ; fully-qualified # 🤚🏻 raised back of hand: light skin tone +1F91A 1F3FC ; fully-qualified # 🤚🏼 raised back of hand: medium-light skin tone +1F91A 1F3FD ; fully-qualified # 🤚🏽 raised back of hand: medium skin tone +1F91A 1F3FE ; fully-qualified # 🤚🏾 raised back of hand: medium-dark skin tone +1F91A 1F3FF ; fully-qualified # 🤚🏿 raised back of hand: dark skin tone +1F590 FE0F ; fully-qualified # 🖐️ hand with fingers splayed +1F590 ; unqualified # 🖐 hand with fingers splayed +1F590 1F3FB ; fully-qualified # 🖐🏻 hand with fingers splayed: light skin tone +1F590 1F3FC ; fully-qualified # 🖐🏼 hand with fingers splayed: medium-light skin tone +1F590 1F3FD ; fully-qualified # 🖐🏽 hand with fingers splayed: medium skin tone +1F590 1F3FE ; fully-qualified # 🖐🏾 hand with fingers splayed: medium-dark skin tone +1F590 1F3FF ; fully-qualified # 🖐🏿 hand with fingers splayed: dark skin tone +270B ; fully-qualified # ✋ raised hand +270B 1F3FB ; fully-qualified # ✋🏻 raised hand: light skin tone +270B 1F3FC ; fully-qualified # ✋🏼 raised hand: medium-light skin tone +270B 1F3FD ; fully-qualified # ✋🏽 raised hand: medium skin tone +270B 1F3FE ; fully-qualified # ✋🏾 raised hand: medium-dark skin tone +270B 1F3FF ; fully-qualified # ✋🏿 raised hand: dark skin tone +1F596 ; fully-qualified # 🖖 vulcan salute +1F596 1F3FB ; fully-qualified # 🖖🏻 vulcan salute: light skin tone +1F596 1F3FC ; fully-qualified # 🖖🏼 vulcan salute: medium-light skin tone +1F596 1F3FD ; fully-qualified # 🖖🏽 vulcan salute: medium skin tone +1F596 1F3FE ; fully-qualified # 🖖🏾 vulcan salute: medium-dark skin tone +1F596 1F3FF ; fully-qualified # 🖖🏿 vulcan salute: dark skin tone + +# subgroup: hand-fingers-partial +1F44C ; fully-qualified # 👌 OK hand +1F44C 1F3FB ; fully-qualified # 👌🏻 OK hand: light skin tone +1F44C 1F3FC ; fully-qualified # 👌🏼 OK hand: medium-light skin tone +1F44C 1F3FD ; fully-qualified # 👌🏽 OK hand: medium skin tone +1F44C 1F3FE ; fully-qualified # 👌🏾 OK hand: medium-dark skin tone +1F44C 1F3FF ; fully-qualified # 👌🏿 OK hand: dark skin tone +1F90F ; fully-qualified # 🤏 pinching hand +1F90F 1F3FB ; fully-qualified # 🤏🏻 pinching hand: light skin tone +1F90F 1F3FC ; fully-qualified # 🤏🏼 pinching hand: medium-light skin tone +1F90F 1F3FD ; fully-qualified # 🤏🏽 pinching hand: medium skin tone +1F90F 1F3FE ; fully-qualified # 🤏🏾 pinching hand: medium-dark skin tone +1F90F 1F3FF ; fully-qualified # 🤏🏿 pinching hand: dark skin tone +270C FE0F ; fully-qualified # ✌️ victory hand +270C ; unqualified # ✌ victory hand +270C 1F3FB ; fully-qualified # ✌🏻 victory hand: light skin tone +270C 1F3FC ; fully-qualified # ✌🏼 victory hand: medium-light skin tone +270C 1F3FD ; fully-qualified # ✌🏽 victory hand: medium skin tone +270C 1F3FE ; fully-qualified # ✌🏾 victory hand: medium-dark skin tone +270C 1F3FF ; fully-qualified # ✌🏿 victory hand: dark skin tone +1F91E ; fully-qualified # 🤞 crossed fingers +1F91E 1F3FB ; fully-qualified # 🤞🏻 crossed fingers: light skin tone +1F91E 1F3FC ; fully-qualified # 🤞🏼 crossed fingers: medium-light skin tone +1F91E 1F3FD ; fully-qualified # 🤞🏽 crossed fingers: medium skin tone +1F91E 1F3FE ; fully-qualified # 🤞🏾 crossed fingers: medium-dark skin tone +1F91E 1F3FF ; fully-qualified # 🤞🏿 crossed fingers: dark skin tone +1F91F ; fully-qualified # 🤟 love-you gesture +1F91F 1F3FB ; fully-qualified # 🤟🏻 love-you gesture: light skin tone +1F91F 1F3FC ; fully-qualified # 🤟🏼 love-you gesture: medium-light skin tone +1F91F 1F3FD ; fully-qualified # 🤟🏽 love-you gesture: medium skin tone +1F91F 1F3FE ; fully-qualified # 🤟🏾 love-you gesture: medium-dark skin tone +1F91F 1F3FF ; fully-qualified # 🤟🏿 love-you gesture: dark skin tone +1F918 ; fully-qualified # 🤘 sign of the horns +1F918 1F3FB ; fully-qualified # 🤘🏻 sign of the horns: light skin tone +1F918 1F3FC ; fully-qualified # 🤘🏼 sign of the horns: medium-light skin tone +1F918 1F3FD ; fully-qualified # 🤘🏽 sign of the horns: medium skin tone +1F918 1F3FE ; fully-qualified # 🤘🏾 sign of the horns: medium-dark skin tone +1F918 1F3FF ; fully-qualified # 🤘🏿 sign of the horns: dark skin tone +1F919 ; fully-qualified # 🤙 call me hand +1F919 1F3FB ; fully-qualified # 🤙🏻 call me hand: light skin tone +1F919 1F3FC ; fully-qualified # 🤙🏼 call me hand: medium-light skin tone +1F919 1F3FD ; fully-qualified # 🤙🏽 call me hand: medium skin tone +1F919 1F3FE ; fully-qualified # 🤙🏾 call me hand: medium-dark skin tone +1F919 1F3FF ; fully-qualified # 🤙🏿 call me hand: dark skin tone + +# subgroup: hand-single-finger +1F448 ; fully-qualified # 👈 backhand index pointing left +1F448 1F3FB ; fully-qualified # 👈🏻 backhand index pointing left: light skin tone +1F448 1F3FC ; fully-qualified # 👈🏼 backhand index pointing left: medium-light skin tone +1F448 1F3FD ; fully-qualified # 👈🏽 backhand index pointing left: medium skin tone +1F448 1F3FE ; fully-qualified # 👈🏾 backhand index pointing left: medium-dark skin tone +1F448 1F3FF ; fully-qualified # 👈🏿 backhand index pointing left: dark skin tone +1F449 ; fully-qualified # 👉 backhand index pointing right +1F449 1F3FB ; fully-qualified # 👉🏻 backhand index pointing right: light skin tone +1F449 1F3FC ; fully-qualified # 👉🏼 backhand index pointing right: medium-light skin tone +1F449 1F3FD ; fully-qualified # 👉🏽 backhand index pointing right: medium skin tone +1F449 1F3FE ; fully-qualified # 👉🏾 backhand index pointing right: medium-dark skin tone +1F449 1F3FF ; fully-qualified # 👉🏿 backhand index pointing right: dark skin tone +1F446 ; fully-qualified # 👆 backhand index pointing up +1F446 1F3FB ; fully-qualified # 👆🏻 backhand index pointing up: light skin tone +1F446 1F3FC ; fully-qualified # 👆🏼 backhand index pointing up: medium-light skin tone +1F446 1F3FD ; fully-qualified # 👆🏽 backhand index pointing up: medium skin tone +1F446 1F3FE ; fully-qualified # 👆🏾 backhand index pointing up: medium-dark skin tone +1F446 1F3FF ; fully-qualified # 👆🏿 backhand index pointing up: dark skin tone +1F595 ; fully-qualified # 🖕 middle finger +1F595 1F3FB ; fully-qualified # 🖕🏻 middle finger: light skin tone +1F595 1F3FC ; fully-qualified # 🖕🏼 middle finger: medium-light skin tone +1F595 1F3FD ; fully-qualified # 🖕🏽 middle finger: medium skin tone +1F595 1F3FE ; fully-qualified # 🖕🏾 middle finger: medium-dark skin tone +1F595 1F3FF ; fully-qualified # 🖕🏿 middle finger: dark skin tone +1F447 ; fully-qualified # 👇 backhand index pointing down +1F447 1F3FB ; fully-qualified # 👇🏻 backhand index pointing down: light skin tone +1F447 1F3FC ; fully-qualified # 👇🏼 backhand index pointing down: medium-light skin tone +1F447 1F3FD ; fully-qualified # 👇🏽 backhand index pointing down: medium skin tone +1F447 1F3FE ; fully-qualified # 👇🏾 backhand index pointing down: medium-dark skin tone +1F447 1F3FF ; fully-qualified # 👇🏿 backhand index pointing down: dark skin tone +261D FE0F ; fully-qualified # ☝️ index pointing up +261D ; unqualified # ☝ index pointing up +261D 1F3FB ; fully-qualified # ☝🏻 index pointing up: light skin tone +261D 1F3FC ; fully-qualified # ☝🏼 index pointing up: medium-light skin tone +261D 1F3FD ; fully-qualified # ☝🏽 index pointing up: medium skin tone +261D 1F3FE ; fully-qualified # ☝🏾 index pointing up: medium-dark skin tone +261D 1F3FF ; fully-qualified # ☝🏿 index pointing up: dark skin tone + +# subgroup: hand-fingers-closed +1F44D ; fully-qualified # 👍 thumbs up +1F44D 1F3FB ; fully-qualified # 👍🏻 thumbs up: light skin tone +1F44D 1F3FC ; fully-qualified # 👍🏼 thumbs up: medium-light skin tone +1F44D 1F3FD ; fully-qualified # 👍🏽 thumbs up: medium skin tone +1F44D 1F3FE ; fully-qualified # 👍🏾 thumbs up: medium-dark skin tone +1F44D 1F3FF ; fully-qualified # 👍🏿 thumbs up: dark skin tone +1F44E ; fully-qualified # 👎 thumbs down +1F44E 1F3FB ; fully-qualified # 👎🏻 thumbs down: light skin tone +1F44E 1F3FC ; fully-qualified # 👎🏼 thumbs down: medium-light skin tone +1F44E 1F3FD ; fully-qualified # 👎🏽 thumbs down: medium skin tone +1F44E 1F3FE ; fully-qualified # 👎🏾 thumbs down: medium-dark skin tone +1F44E 1F3FF ; fully-qualified # 👎🏿 thumbs down: dark skin tone +270A ; fully-qualified # ✊ raised fist +270A 1F3FB ; fully-qualified # ✊🏻 raised fist: light skin tone +270A 1F3FC ; fully-qualified # ✊🏼 raised fist: medium-light skin tone +270A 1F3FD ; fully-qualified # ✊🏽 raised fist: medium skin tone +270A 1F3FE ; fully-qualified # ✊🏾 raised fist: medium-dark skin tone +270A 1F3FF ; fully-qualified # ✊🏿 raised fist: dark skin tone +1F44A ; fully-qualified # 👊 oncoming fist +1F44A 1F3FB ; fully-qualified # 👊🏻 oncoming fist: light skin tone +1F44A 1F3FC ; fully-qualified # 👊🏼 oncoming fist: medium-light skin tone +1F44A 1F3FD ; fully-qualified # 👊🏽 oncoming fist: medium skin tone +1F44A 1F3FE ; fully-qualified # 👊🏾 oncoming fist: medium-dark skin tone +1F44A 1F3FF ; fully-qualified # 👊🏿 oncoming fist: dark skin tone +1F91B ; fully-qualified # 🤛 left-facing fist +1F91B 1F3FB ; fully-qualified # 🤛🏻 left-facing fist: light skin tone +1F91B 1F3FC ; fully-qualified # 🤛🏼 left-facing fist: medium-light skin tone +1F91B 1F3FD ; fully-qualified # 🤛🏽 left-facing fist: medium skin tone +1F91B 1F3FE ; fully-qualified # 🤛🏾 left-facing fist: medium-dark skin tone +1F91B 1F3FF ; fully-qualified # 🤛🏿 left-facing fist: dark skin tone +1F91C ; fully-qualified # 🤜 right-facing fist +1F91C 1F3FB ; fully-qualified # 🤜🏻 right-facing fist: light skin tone +1F91C 1F3FC ; fully-qualified # 🤜🏼 right-facing fist: medium-light skin tone +1F91C 1F3FD ; fully-qualified # 🤜🏽 right-facing fist: medium skin tone +1F91C 1F3FE ; fully-qualified # 🤜🏾 right-facing fist: medium-dark skin tone +1F91C 1F3FF ; fully-qualified # 🤜🏿 right-facing fist: dark skin tone + +# subgroup: hands +1F44F ; fully-qualified # 👏 clapping hands +1F44F 1F3FB ; fully-qualified # 👏🏻 clapping hands: light skin tone +1F44F 1F3FC ; fully-qualified # 👏🏼 clapping hands: medium-light skin tone +1F44F 1F3FD ; fully-qualified # 👏🏽 clapping hands: medium skin tone +1F44F 1F3FE ; fully-qualified # 👏🏾 clapping hands: medium-dark skin tone +1F44F 1F3FF ; fully-qualified # 👏🏿 clapping hands: dark skin tone +1F64C ; fully-qualified # 🙌 raising hands +1F64C 1F3FB ; fully-qualified # 🙌🏻 raising hands: light skin tone +1F64C 1F3FC ; fully-qualified # 🙌🏼 raising hands: medium-light skin tone +1F64C 1F3FD ; fully-qualified # 🙌🏽 raising hands: medium skin tone +1F64C 1F3FE ; fully-qualified # 🙌🏾 raising hands: medium-dark skin tone +1F64C 1F3FF ; fully-qualified # 🙌🏿 raising hands: dark skin tone +1F450 ; fully-qualified # 👐 open hands +1F450 1F3FB ; fully-qualified # 👐🏻 open hands: light skin tone +1F450 1F3FC ; fully-qualified # 👐🏼 open hands: medium-light skin tone +1F450 1F3FD ; fully-qualified # 👐🏽 open hands: medium skin tone +1F450 1F3FE ; fully-qualified # 👐🏾 open hands: medium-dark skin tone +1F450 1F3FF ; fully-qualified # 👐🏿 open hands: dark skin tone +1F932 ; fully-qualified # 🤲 palms up together +1F932 1F3FB ; fully-qualified # 🤲🏻 palms up together: light skin tone +1F932 1F3FC ; fully-qualified # 🤲🏼 palms up together: medium-light skin tone +1F932 1F3FD ; fully-qualified # 🤲🏽 palms up together: medium skin tone +1F932 1F3FE ; fully-qualified # 🤲🏾 palms up together: medium-dark skin tone +1F932 1F3FF ; fully-qualified # 🤲🏿 palms up together: dark skin tone +1F91D ; fully-qualified # 🤝 handshake +1F64F ; fully-qualified # 🙏 folded hands +1F64F 1F3FB ; fully-qualified # 🙏🏻 folded hands: light skin tone +1F64F 1F3FC ; fully-qualified # 🙏🏼 folded hands: medium-light skin tone +1F64F 1F3FD ; fully-qualified # 🙏🏽 folded hands: medium skin tone +1F64F 1F3FE ; fully-qualified # 🙏🏾 folded hands: medium-dark skin tone +1F64F 1F3FF ; fully-qualified # 🙏🏿 folded hands: dark skin tone + +# subgroup: hand-prop +270D FE0F ; fully-qualified # ✍️ writing hand +270D ; unqualified # ✍ writing hand +270D 1F3FB ; fully-qualified # ✍🏻 writing hand: light skin tone +270D 1F3FC ; fully-qualified # ✍🏼 writing hand: medium-light skin tone +270D 1F3FD ; fully-qualified # ✍🏽 writing hand: medium skin tone +270D 1F3FE ; fully-qualified # ✍🏾 writing hand: medium-dark skin tone +270D 1F3FF ; fully-qualified # ✍🏿 writing hand: dark skin tone +1F485 ; fully-qualified # 💅 nail polish +1F485 1F3FB ; fully-qualified # 💅🏻 nail polish: light skin tone +1F485 1F3FC ; fully-qualified # 💅🏼 nail polish: medium-light skin tone +1F485 1F3FD ; fully-qualified # 💅🏽 nail polish: medium skin tone +1F485 1F3FE ; fully-qualified # 💅🏾 nail polish: medium-dark skin tone +1F485 1F3FF ; fully-qualified # 💅🏿 nail polish: dark skin tone +1F933 ; fully-qualified # 🤳 selfie +1F933 1F3FB ; fully-qualified # 🤳🏻 selfie: light skin tone +1F933 1F3FC ; fully-qualified # 🤳🏼 selfie: medium-light skin tone +1F933 1F3FD ; fully-qualified # 🤳🏽 selfie: medium skin tone +1F933 1F3FE ; fully-qualified # 🤳🏾 selfie: medium-dark skin tone +1F933 1F3FF ; fully-qualified # 🤳🏿 selfie: dark skin tone + +# subgroup: body-parts +1F4AA ; fully-qualified # 💪 flexed biceps +1F4AA 1F3FB ; fully-qualified # 💪🏻 flexed biceps: light skin tone +1F4AA 1F3FC ; fully-qualified # 💪🏼 flexed biceps: medium-light skin tone +1F4AA 1F3FD ; fully-qualified # 💪🏽 flexed biceps: medium skin tone +1F4AA 1F3FE ; fully-qualified # 💪🏾 flexed biceps: medium-dark skin tone +1F4AA 1F3FF ; fully-qualified # 💪🏿 flexed biceps: dark skin tone +1F9BE ; fully-qualified # 🦾 mechanical arm +1F9BF ; fully-qualified # 🦿 mechanical leg +1F9B5 ; fully-qualified # 🦵 leg +1F9B5 1F3FB ; fully-qualified # 🦵🏻 leg: light skin tone +1F9B5 1F3FC ; fully-qualified # 🦵🏼 leg: medium-light skin tone +1F9B5 1F3FD ; fully-qualified # 🦵🏽 leg: medium skin tone +1F9B5 1F3FE ; fully-qualified # 🦵🏾 leg: medium-dark skin tone +1F9B5 1F3FF ; fully-qualified # 🦵🏿 leg: dark skin tone +1F9B6 ; fully-qualified # 🦶 foot +1F9B6 1F3FB ; fully-qualified # 🦶🏻 foot: light skin tone +1F9B6 1F3FC ; fully-qualified # 🦶🏼 foot: medium-light skin tone +1F9B6 1F3FD ; fully-qualified # 🦶🏽 foot: medium skin tone +1F9B6 1F3FE ; fully-qualified # 🦶🏾 foot: medium-dark skin tone +1F9B6 1F3FF ; fully-qualified # 🦶🏿 foot: dark skin tone +1F442 ; fully-qualified # 👂 ear +1F442 1F3FB ; fully-qualified # 👂🏻 ear: light skin tone +1F442 1F3FC ; fully-qualified # 👂🏼 ear: medium-light skin tone +1F442 1F3FD ; fully-qualified # 👂🏽 ear: medium skin tone +1F442 1F3FE ; fully-qualified # 👂🏾 ear: medium-dark skin tone +1F442 1F3FF ; fully-qualified # 👂🏿 ear: dark skin tone +1F9BB ; fully-qualified # 🦻 ear with hearing aid +1F9BB 1F3FB ; fully-qualified # 🦻🏻 ear with hearing aid: light skin tone +1F9BB 1F3FC ; fully-qualified # 🦻🏼 ear with hearing aid: medium-light skin tone +1F9BB 1F3FD ; fully-qualified # 🦻🏽 ear with hearing aid: medium skin tone +1F9BB 1F3FE ; fully-qualified # 🦻🏾 ear with hearing aid: medium-dark skin tone +1F9BB 1F3FF ; fully-qualified # 🦻🏿 ear with hearing aid: dark skin tone +1F443 ; fully-qualified # 👃 nose +1F443 1F3FB ; fully-qualified # 👃🏻 nose: light skin tone +1F443 1F3FC ; fully-qualified # 👃🏼 nose: medium-light skin tone +1F443 1F3FD ; fully-qualified # 👃🏽 nose: medium skin tone +1F443 1F3FE ; fully-qualified # 👃🏾 nose: medium-dark skin tone +1F443 1F3FF ; fully-qualified # 👃🏿 nose: dark skin tone +1F9E0 ; fully-qualified # 🧠 brain +1F9B7 ; fully-qualified # 🦷 tooth +1F9B4 ; fully-qualified # 🦴 bone +1F440 ; fully-qualified # 👀 eyes +1F441 FE0F ; fully-qualified # 👁️ eye +1F441 ; unqualified # 👁 eye +1F445 ; fully-qualified # 👅 tongue +1F444 ; fully-qualified # 👄 mouth + +# subgroup: person +1F476 ; fully-qualified # 👶 baby +1F476 1F3FB ; fully-qualified # 👶🏻 baby: light skin tone +1F476 1F3FC ; fully-qualified # 👶🏼 baby: medium-light skin tone +1F476 1F3FD ; fully-qualified # 👶🏽 baby: medium skin tone +1F476 1F3FE ; fully-qualified # 👶🏾 baby: medium-dark skin tone +1F476 1F3FF ; fully-qualified # 👶🏿 baby: dark skin tone +1F9D2 ; fully-qualified # 🧒 child +1F9D2 1F3FB ; fully-qualified # 🧒🏻 child: light skin tone +1F9D2 1F3FC ; fully-qualified # 🧒🏼 child: medium-light skin tone +1F9D2 1F3FD ; fully-qualified # 🧒🏽 child: medium skin tone +1F9D2 1F3FE ; fully-qualified # 🧒🏾 child: medium-dark skin tone +1F9D2 1F3FF ; fully-qualified # 🧒🏿 child: dark skin tone +1F466 ; fully-qualified # 👦 boy +1F466 1F3FB ; fully-qualified # 👦🏻 boy: light skin tone +1F466 1F3FC ; fully-qualified # 👦🏼 boy: medium-light skin tone +1F466 1F3FD ; fully-qualified # 👦🏽 boy: medium skin tone +1F466 1F3FE ; fully-qualified # 👦🏾 boy: medium-dark skin tone +1F466 1F3FF ; fully-qualified # 👦🏿 boy: dark skin tone +1F467 ; fully-qualified # 👧 girl +1F467 1F3FB ; fully-qualified # 👧🏻 girl: light skin tone +1F467 1F3FC ; fully-qualified # 👧🏼 girl: medium-light skin tone +1F467 1F3FD ; fully-qualified # 👧🏽 girl: medium skin tone +1F467 1F3FE ; fully-qualified # 👧🏾 girl: medium-dark skin tone +1F467 1F3FF ; fully-qualified # 👧🏿 girl: dark skin tone +1F9D1 ; fully-qualified # 🧑 person +1F9D1 1F3FB ; fully-qualified # 🧑🏻 person: light skin tone +1F9D1 1F3FC ; fully-qualified # 🧑🏼 person: medium-light skin tone +1F9D1 1F3FD ; fully-qualified # 🧑🏽 person: medium skin tone +1F9D1 1F3FE ; fully-qualified # 🧑🏾 person: medium-dark skin tone +1F9D1 1F3FF ; fully-qualified # 🧑🏿 person: dark skin tone +1F471 ; fully-qualified # 👱 person: blond hair +1F471 1F3FB ; fully-qualified # 👱🏻 person: light skin tone, blond hair +1F471 1F3FC ; fully-qualified # 👱🏼 person: medium-light skin tone, blond hair +1F471 1F3FD ; fully-qualified # 👱🏽 person: medium skin tone, blond hair +1F471 1F3FE ; fully-qualified # 👱🏾 person: medium-dark skin tone, blond hair +1F471 1F3FF ; fully-qualified # 👱🏿 person: dark skin tone, blond hair +1F468 ; fully-qualified # 👨 man +1F468 1F3FB ; fully-qualified # 👨🏻 man: light skin tone +1F468 1F3FC ; fully-qualified # 👨🏼 man: medium-light skin tone +1F468 1F3FD ; fully-qualified # 👨🏽 man: medium skin tone +1F468 1F3FE ; fully-qualified # 👨🏾 man: medium-dark skin tone +1F468 1F3FF ; fully-qualified # 👨🏿 man: dark skin tone +1F9D4 ; fully-qualified # 🧔 man: beard +1F9D4 1F3FB ; fully-qualified # 🧔🏻 man: light skin tone, beard +1F9D4 1F3FC ; fully-qualified # 🧔🏼 man: medium-light skin tone, beard +1F9D4 1F3FD ; fully-qualified # 🧔🏽 man: medium skin tone, beard +1F9D4 1F3FE ; fully-qualified # 🧔🏾 man: medium-dark skin tone, beard +1F9D4 1F3FF ; fully-qualified # 🧔🏿 man: dark skin tone, beard +1F471 200D 2642 FE0F ; fully-qualified # 👱♂️ man: blond hair +1F471 200D 2642 ; minimally-qualified # 👱♂ man: blond hair +1F471 1F3FB 200D 2642 FE0F ; fully-qualified # 👱🏻♂️ man: light skin tone, blond hair +1F471 1F3FB 200D 2642 ; minimally-qualified # 👱🏻♂ man: light skin tone, blond hair +1F471 1F3FC 200D 2642 FE0F ; fully-qualified # 👱🏼♂️ man: medium-light skin tone, blond hair +1F471 1F3FC 200D 2642 ; minimally-qualified # 👱🏼♂ man: medium-light skin tone, blond hair +1F471 1F3FD 200D 2642 FE0F ; fully-qualified # 👱🏽♂️ man: medium skin tone, blond hair +1F471 1F3FD 200D 2642 ; minimally-qualified # 👱🏽♂ man: medium skin tone, blond hair +1F471 1F3FE 200D 2642 FE0F ; fully-qualified # 👱🏾♂️ man: medium-dark skin tone, blond hair +1F471 1F3FE 200D 2642 ; minimally-qualified # 👱🏾♂ man: medium-dark skin tone, blond hair +1F471 1F3FF 200D 2642 FE0F ; fully-qualified # 👱🏿♂️ man: dark skin tone, blond hair +1F471 1F3FF 200D 2642 ; minimally-qualified # 👱🏿♂ man: dark skin tone, blond hair +1F468 200D 1F9B0 ; fully-qualified # 👨🦰 man: red hair +1F468 1F3FB 200D 1F9B0 ; fully-qualified # 👨🏻🦰 man: light skin tone, red hair +1F468 1F3FC 200D 1F9B0 ; fully-qualified # 👨🏼🦰 man: medium-light skin tone, red hair +1F468 1F3FD 200D 1F9B0 ; fully-qualified # 👨🏽🦰 man: medium skin tone, red hair +1F468 1F3FE 200D 1F9B0 ; fully-qualified # 👨🏾🦰 man: medium-dark skin tone, red hair +1F468 1F3FF 200D 1F9B0 ; fully-qualified # 👨🏿🦰 man: dark skin tone, red hair +1F468 200D 1F9B1 ; fully-qualified # 👨🦱 man: curly hair +1F468 1F3FB 200D 1F9B1 ; fully-qualified # 👨🏻🦱 man: light skin tone, curly hair +1F468 1F3FC 200D 1F9B1 ; fully-qualified # 👨🏼🦱 man: medium-light skin tone, curly hair +1F468 1F3FD 200D 1F9B1 ; fully-qualified # 👨🏽🦱 man: medium skin tone, curly hair +1F468 1F3FE 200D 1F9B1 ; fully-qualified # 👨🏾🦱 man: medium-dark skin tone, curly hair +1F468 1F3FF 200D 1F9B1 ; fully-qualified # 👨🏿🦱 man: dark skin tone, curly hair +1F468 200D 1F9B3 ; fully-qualified # 👨🦳 man: white hair +1F468 1F3FB 200D 1F9B3 ; fully-qualified # 👨🏻🦳 man: light skin tone, white hair +1F468 1F3FC 200D 1F9B3 ; fully-qualified # 👨🏼🦳 man: medium-light skin tone, white hair +1F468 1F3FD 200D 1F9B3 ; fully-qualified # 👨🏽🦳 man: medium skin tone, white hair +1F468 1F3FE 200D 1F9B3 ; fully-qualified # 👨🏾🦳 man: medium-dark skin tone, white hair +1F468 1F3FF 200D 1F9B3 ; fully-qualified # 👨🏿🦳 man: dark skin tone, white hair +1F468 200D 1F9B2 ; fully-qualified # 👨🦲 man: bald +1F468 1F3FB 200D 1F9B2 ; fully-qualified # 👨🏻🦲 man: light skin tone, bald +1F468 1F3FC 200D 1F9B2 ; fully-qualified # 👨🏼🦲 man: medium-light skin tone, bald +1F468 1F3FD 200D 1F9B2 ; fully-qualified # 👨🏽🦲 man: medium skin tone, bald +1F468 1F3FE 200D 1F9B2 ; fully-qualified # 👨🏾🦲 man: medium-dark skin tone, bald +1F468 1F3FF 200D 1F9B2 ; fully-qualified # 👨🏿🦲 man: dark skin tone, bald +1F469 ; fully-qualified # 👩 woman +1F469 1F3FB ; fully-qualified # 👩🏻 woman: light skin tone +1F469 1F3FC ; fully-qualified # 👩🏼 woman: medium-light skin tone +1F469 1F3FD ; fully-qualified # 👩🏽 woman: medium skin tone +1F469 1F3FE ; fully-qualified # 👩🏾 woman: medium-dark skin tone +1F469 1F3FF ; fully-qualified # 👩🏿 woman: dark skin tone +1F471 200D 2640 FE0F ; fully-qualified # 👱♀️ woman: blond hair +1F471 200D 2640 ; minimally-qualified # 👱♀ woman: blond hair +1F471 1F3FB 200D 2640 FE0F ; fully-qualified # 👱🏻♀️ woman: light skin tone, blond hair +1F471 1F3FB 200D 2640 ; minimally-qualified # 👱🏻♀ woman: light skin tone, blond hair +1F471 1F3FC 200D 2640 FE0F ; fully-qualified # 👱🏼♀️ woman: medium-light skin tone, blond hair +1F471 1F3FC 200D 2640 ; minimally-qualified # 👱🏼♀ woman: medium-light skin tone, blond hair +1F471 1F3FD 200D 2640 FE0F ; fully-qualified # 👱🏽♀️ woman: medium skin tone, blond hair +1F471 1F3FD 200D 2640 ; minimally-qualified # 👱🏽♀ woman: medium skin tone, blond hair +1F471 1F3FE 200D 2640 FE0F ; fully-qualified # 👱🏾♀️ woman: medium-dark skin tone, blond hair +1F471 1F3FE 200D 2640 ; minimally-qualified # 👱🏾♀ woman: medium-dark skin tone, blond hair +1F471 1F3FF 200D 2640 FE0F ; fully-qualified # 👱🏿♀️ woman: dark skin tone, blond hair +1F471 1F3FF 200D 2640 ; minimally-qualified # 👱🏿♀ woman: dark skin tone, blond hair +1F469 200D 1F9B0 ; fully-qualified # 👩🦰 woman: red hair +1F469 1F3FB 200D 1F9B0 ; fully-qualified # 👩🏻🦰 woman: light skin tone, red hair +1F469 1F3FC 200D 1F9B0 ; fully-qualified # 👩🏼🦰 woman: medium-light skin tone, red hair +1F469 1F3FD 200D 1F9B0 ; fully-qualified # 👩🏽🦰 woman: medium skin tone, red hair +1F469 1F3FE 200D 1F9B0 ; fully-qualified # 👩🏾🦰 woman: medium-dark skin tone, red hair +1F469 1F3FF 200D 1F9B0 ; fully-qualified # 👩🏿🦰 woman: dark skin tone, red hair +1F469 200D 1F9B1 ; fully-qualified # 👩🦱 woman: curly hair +1F469 1F3FB 200D 1F9B1 ; fully-qualified # 👩🏻🦱 woman: light skin tone, curly hair +1F469 1F3FC 200D 1F9B1 ; fully-qualified # 👩🏼🦱 woman: medium-light skin tone, curly hair +1F469 1F3FD 200D 1F9B1 ; fully-qualified # 👩🏽🦱 woman: medium skin tone, curly hair +1F469 1F3FE 200D 1F9B1 ; fully-qualified # 👩🏾🦱 woman: medium-dark skin tone, curly hair +1F469 1F3FF 200D 1F9B1 ; fully-qualified # 👩🏿🦱 woman: dark skin tone, curly hair +1F469 200D 1F9B3 ; fully-qualified # 👩🦳 woman: white hair +1F469 1F3FB 200D 1F9B3 ; fully-qualified # 👩🏻🦳 woman: light skin tone, white hair +1F469 1F3FC 200D 1F9B3 ; fully-qualified # 👩🏼🦳 woman: medium-light skin tone, white hair +1F469 1F3FD 200D 1F9B3 ; fully-qualified # 👩🏽🦳 woman: medium skin tone, white hair +1F469 1F3FE 200D 1F9B3 ; fully-qualified # 👩🏾🦳 woman: medium-dark skin tone, white hair +1F469 1F3FF 200D 1F9B3 ; fully-qualified # 👩🏿🦳 woman: dark skin tone, white hair +1F469 200D 1F9B2 ; fully-qualified # 👩🦲 woman: bald +1F469 1F3FB 200D 1F9B2 ; fully-qualified # 👩🏻🦲 woman: light skin tone, bald +1F469 1F3FC 200D 1F9B2 ; fully-qualified # 👩🏼🦲 woman: medium-light skin tone, bald +1F469 1F3FD 200D 1F9B2 ; fully-qualified # 👩🏽🦲 woman: medium skin tone, bald +1F469 1F3FE 200D 1F9B2 ; fully-qualified # 👩🏾🦲 woman: medium-dark skin tone, bald +1F469 1F3FF 200D 1F9B2 ; fully-qualified # 👩🏿🦲 woman: dark skin tone, bald +1F9D3 ; fully-qualified # 🧓 older person +1F9D3 1F3FB ; fully-qualified # 🧓🏻 older person: light skin tone +1F9D3 1F3FC ; fully-qualified # 🧓🏼 older person: medium-light skin tone +1F9D3 1F3FD ; fully-qualified # 🧓🏽 older person: medium skin tone +1F9D3 1F3FE ; fully-qualified # 🧓🏾 older person: medium-dark skin tone +1F9D3 1F3FF ; fully-qualified # 🧓🏿 older person: dark skin tone +1F474 ; fully-qualified # 👴 old man +1F474 1F3FB ; fully-qualified # 👴🏻 old man: light skin tone +1F474 1F3FC ; fully-qualified # 👴🏼 old man: medium-light skin tone +1F474 1F3FD ; fully-qualified # 👴🏽 old man: medium skin tone +1F474 1F3FE ; fully-qualified # 👴🏾 old man: medium-dark skin tone +1F474 1F3FF ; fully-qualified # 👴🏿 old man: dark skin tone +1F475 ; fully-qualified # 👵 old woman +1F475 1F3FB ; fully-qualified # 👵🏻 old woman: light skin tone +1F475 1F3FC ; fully-qualified # 👵🏼 old woman: medium-light skin tone +1F475 1F3FD ; fully-qualified # 👵🏽 old woman: medium skin tone +1F475 1F3FE ; fully-qualified # 👵🏾 old woman: medium-dark skin tone +1F475 1F3FF ; fully-qualified # 👵🏿 old woman: dark skin tone + +# subgroup: person-gesture +1F64D ; fully-qualified # 🙍 person frowning +1F64D 1F3FB ; fully-qualified # 🙍🏻 person frowning: light skin tone +1F64D 1F3FC ; fully-qualified # 🙍🏼 person frowning: medium-light skin tone +1F64D 1F3FD ; fully-qualified # 🙍🏽 person frowning: medium skin tone +1F64D 1F3FE ; fully-qualified # 🙍🏾 person frowning: medium-dark skin tone +1F64D 1F3FF ; fully-qualified # 🙍🏿 person frowning: dark skin tone +1F64D 200D 2642 FE0F ; fully-qualified # 🙍♂️ man frowning +1F64D 200D 2642 ; minimally-qualified # 🙍♂ man frowning +1F64D 1F3FB 200D 2642 FE0F ; fully-qualified # 🙍🏻♂️ man frowning: light skin tone +1F64D 1F3FB 200D 2642 ; minimally-qualified # 🙍🏻♂ man frowning: light skin tone +1F64D 1F3FC 200D 2642 FE0F ; fully-qualified # 🙍🏼♂️ man frowning: medium-light skin tone +1F64D 1F3FC 200D 2642 ; minimally-qualified # 🙍🏼♂ man frowning: medium-light skin tone +1F64D 1F3FD 200D 2642 FE0F ; fully-qualified # 🙍🏽♂️ man frowning: medium skin tone +1F64D 1F3FD 200D 2642 ; minimally-qualified # 🙍🏽♂ man frowning: medium skin tone +1F64D 1F3FE 200D 2642 FE0F ; fully-qualified # 🙍🏾♂️ man frowning: medium-dark skin tone +1F64D 1F3FE 200D 2642 ; minimally-qualified # 🙍🏾♂ man frowning: medium-dark skin tone +1F64D 1F3FF 200D 2642 FE0F ; fully-qualified # 🙍🏿♂️ man frowning: dark skin tone +1F64D 1F3FF 200D 2642 ; minimally-qualified # 🙍🏿♂ man frowning: dark skin tone +1F64D 200D 2640 FE0F ; fully-qualified # 🙍♀️ woman frowning +1F64D 200D 2640 ; minimally-qualified # 🙍♀ woman frowning +1F64D 1F3FB 200D 2640 FE0F ; fully-qualified # 🙍🏻♀️ woman frowning: light skin tone +1F64D 1F3FB 200D 2640 ; minimally-qualified # 🙍🏻♀ woman frowning: light skin tone +1F64D 1F3FC 200D 2640 FE0F ; fully-qualified # 🙍🏼♀️ woman frowning: medium-light skin tone +1F64D 1F3FC 200D 2640 ; minimally-qualified # 🙍🏼♀ woman frowning: medium-light skin tone +1F64D 1F3FD 200D 2640 FE0F ; fully-qualified # 🙍🏽♀️ woman frowning: medium skin tone +1F64D 1F3FD 200D 2640 ; minimally-qualified # 🙍🏽♀ woman frowning: medium skin tone +1F64D 1F3FE 200D 2640 FE0F ; fully-qualified # 🙍🏾♀️ woman frowning: medium-dark skin tone +1F64D 1F3FE 200D 2640 ; minimally-qualified # 🙍🏾♀ woman frowning: medium-dark skin tone +1F64D 1F3FF 200D 2640 FE0F ; fully-qualified # 🙍🏿♀️ woman frowning: dark skin tone +1F64D 1F3FF 200D 2640 ; minimally-qualified # 🙍🏿♀ woman frowning: dark skin tone +1F64E ; fully-qualified # 🙎 person pouting +1F64E 1F3FB ; fully-qualified # 🙎🏻 person pouting: light skin tone +1F64E 1F3FC ; fully-qualified # 🙎🏼 person pouting: medium-light skin tone +1F64E 1F3FD ; fully-qualified # 🙎🏽 person pouting: medium skin tone +1F64E 1F3FE ; fully-qualified # 🙎🏾 person pouting: medium-dark skin tone +1F64E 1F3FF ; fully-qualified # 🙎🏿 person pouting: dark skin tone +1F64E 200D 2642 FE0F ; fully-qualified # 🙎♂️ man pouting +1F64E 200D 2642 ; minimally-qualified # 🙎♂ man pouting +1F64E 1F3FB 200D 2642 FE0F ; fully-qualified # 🙎🏻♂️ man pouting: light skin tone +1F64E 1F3FB 200D 2642 ; minimally-qualified # 🙎🏻♂ man pouting: light skin tone +1F64E 1F3FC 200D 2642 FE0F ; fully-qualified # 🙎🏼♂️ man pouting: medium-light skin tone +1F64E 1F3FC 200D 2642 ; minimally-qualified # 🙎🏼♂ man pouting: medium-light skin tone +1F64E 1F3FD 200D 2642 FE0F ; fully-qualified # 🙎🏽♂️ man pouting: medium skin tone +1F64E 1F3FD 200D 2642 ; minimally-qualified # 🙎🏽♂ man pouting: medium skin tone +1F64E 1F3FE 200D 2642 FE0F ; fully-qualified # 🙎🏾♂️ man pouting: medium-dark skin tone +1F64E 1F3FE 200D 2642 ; minimally-qualified # 🙎🏾♂ man pouting: medium-dark skin tone +1F64E 1F3FF 200D 2642 FE0F ; fully-qualified # 🙎🏿♂️ man pouting: dark skin tone +1F64E 1F3FF 200D 2642 ; minimally-qualified # 🙎🏿♂ man pouting: dark skin tone +1F64E 200D 2640 FE0F ; fully-qualified # 🙎♀️ woman pouting +1F64E 200D 2640 ; minimally-qualified # 🙎♀ woman pouting +1F64E 1F3FB 200D 2640 FE0F ; fully-qualified # 🙎🏻♀️ woman pouting: light skin tone +1F64E 1F3FB 200D 2640 ; minimally-qualified # 🙎🏻♀ woman pouting: light skin tone +1F64E 1F3FC 200D 2640 FE0F ; fully-qualified # 🙎🏼♀️ woman pouting: medium-light skin tone +1F64E 1F3FC 200D 2640 ; minimally-qualified # 🙎🏼♀ woman pouting: medium-light skin tone +1F64E 1F3FD 200D 2640 FE0F ; fully-qualified # 🙎🏽♀️ woman pouting: medium skin tone +1F64E 1F3FD 200D 2640 ; minimally-qualified # 🙎🏽♀ woman pouting: medium skin tone +1F64E 1F3FE 200D 2640 FE0F ; fully-qualified # 🙎🏾♀️ woman pouting: medium-dark skin tone +1F64E 1F3FE 200D 2640 ; minimally-qualified # 🙎🏾♀ woman pouting: medium-dark skin tone +1F64E 1F3FF 200D 2640 FE0F ; fully-qualified # 🙎🏿♀️ woman pouting: dark skin tone +1F64E 1F3FF 200D 2640 ; minimally-qualified # 🙎🏿♀ woman pouting: dark skin tone +1F645 ; fully-qualified # 🙅 person gesturing NO +1F645 1F3FB ; fully-qualified # 🙅🏻 person gesturing NO: light skin tone +1F645 1F3FC ; fully-qualified # 🙅🏼 person gesturing NO: medium-light skin tone +1F645 1F3FD ; fully-qualified # 🙅🏽 person gesturing NO: medium skin tone +1F645 1F3FE ; fully-qualified # 🙅🏾 person gesturing NO: medium-dark skin tone +1F645 1F3FF ; fully-qualified # 🙅🏿 person gesturing NO: dark skin tone +1F645 200D 2642 FE0F ; fully-qualified # 🙅♂️ man gesturing NO +1F645 200D 2642 ; minimally-qualified # 🙅♂ man gesturing NO +1F645 1F3FB 200D 2642 FE0F ; fully-qualified # 🙅🏻♂️ man gesturing NO: light skin tone +1F645 1F3FB 200D 2642 ; minimally-qualified # 🙅🏻♂ man gesturing NO: light skin tone +1F645 1F3FC 200D 2642 FE0F ; fully-qualified # 🙅🏼♂️ man gesturing NO: medium-light skin tone +1F645 1F3FC 200D 2642 ; minimally-qualified # 🙅🏼♂ man gesturing NO: medium-light skin tone +1F645 1F3FD 200D 2642 FE0F ; fully-qualified # 🙅🏽♂️ man gesturing NO: medium skin tone +1F645 1F3FD 200D 2642 ; minimally-qualified # 🙅🏽♂ man gesturing NO: medium skin tone +1F645 1F3FE 200D 2642 FE0F ; fully-qualified # 🙅🏾♂️ man gesturing NO: medium-dark skin tone +1F645 1F3FE 200D 2642 ; minimally-qualified # 🙅🏾♂ man gesturing NO: medium-dark skin tone +1F645 1F3FF 200D 2642 FE0F ; fully-qualified # 🙅🏿♂️ man gesturing NO: dark skin tone +1F645 1F3FF 200D 2642 ; minimally-qualified # 🙅🏿♂ man gesturing NO: dark skin tone +1F645 200D 2640 FE0F ; fully-qualified # 🙅♀️ woman gesturing NO +1F645 200D 2640 ; minimally-qualified # 🙅♀ woman gesturing NO +1F645 1F3FB 200D 2640 FE0F ; fully-qualified # 🙅🏻♀️ woman gesturing NO: light skin tone +1F645 1F3FB 200D 2640 ; minimally-qualified # 🙅🏻♀ woman gesturing NO: light skin tone +1F645 1F3FC 200D 2640 FE0F ; fully-qualified # 🙅🏼♀️ woman gesturing NO: medium-light skin tone +1F645 1F3FC 200D 2640 ; minimally-qualified # 🙅🏼♀ woman gesturing NO: medium-light skin tone +1F645 1F3FD 200D 2640 FE0F ; fully-qualified # 🙅🏽♀️ woman gesturing NO: medium skin tone +1F645 1F3FD 200D 2640 ; minimally-qualified # 🙅🏽♀ woman gesturing NO: medium skin tone +1F645 1F3FE 200D 2640 FE0F ; fully-qualified # 🙅🏾♀️ woman gesturing NO: medium-dark skin tone +1F645 1F3FE 200D 2640 ; minimally-qualified # 🙅🏾♀ woman gesturing NO: medium-dark skin tone +1F645 1F3FF 200D 2640 FE0F ; fully-qualified # 🙅🏿♀️ woman gesturing NO: dark skin tone +1F645 1F3FF 200D 2640 ; minimally-qualified # 🙅🏿♀ woman gesturing NO: dark skin tone +1F646 ; fully-qualified # 🙆 person gesturing OK +1F646 1F3FB ; fully-qualified # 🙆🏻 person gesturing OK: light skin tone +1F646 1F3FC ; fully-qualified # 🙆🏼 person gesturing OK: medium-light skin tone +1F646 1F3FD ; fully-qualified # 🙆🏽 person gesturing OK: medium skin tone +1F646 1F3FE ; fully-qualified # 🙆🏾 person gesturing OK: medium-dark skin tone +1F646 1F3FF ; fully-qualified # 🙆🏿 person gesturing OK: dark skin tone +1F646 200D 2642 FE0F ; fully-qualified # 🙆♂️ man gesturing OK +1F646 200D 2642 ; minimally-qualified # 🙆♂ man gesturing OK +1F646 1F3FB 200D 2642 FE0F ; fully-qualified # 🙆🏻♂️ man gesturing OK: light skin tone +1F646 1F3FB 200D 2642 ; minimally-qualified # 🙆🏻♂ man gesturing OK: light skin tone +1F646 1F3FC 200D 2642 FE0F ; fully-qualified # 🙆🏼♂️ man gesturing OK: medium-light skin tone +1F646 1F3FC 200D 2642 ; minimally-qualified # 🙆🏼♂ man gesturing OK: medium-light skin tone +1F646 1F3FD 200D 2642 FE0F ; fully-qualified # 🙆🏽♂️ man gesturing OK: medium skin tone +1F646 1F3FD 200D 2642 ; minimally-qualified # 🙆🏽♂ man gesturing OK: medium skin tone +1F646 1F3FE 200D 2642 FE0F ; fully-qualified # 🙆🏾♂️ man gesturing OK: medium-dark skin tone +1F646 1F3FE 200D 2642 ; minimally-qualified # 🙆🏾♂ man gesturing OK: medium-dark skin tone +1F646 1F3FF 200D 2642 FE0F ; fully-qualified # 🙆🏿♂️ man gesturing OK: dark skin tone +1F646 1F3FF 200D 2642 ; minimally-qualified # 🙆🏿♂ man gesturing OK: dark skin tone +1F646 200D 2640 FE0F ; fully-qualified # 🙆♀️ woman gesturing OK +1F646 200D 2640 ; minimally-qualified # 🙆♀ woman gesturing OK +1F646 1F3FB 200D 2640 FE0F ; fully-qualified # 🙆🏻♀️ woman gesturing OK: light skin tone +1F646 1F3FB 200D 2640 ; minimally-qualified # 🙆🏻♀ woman gesturing OK: light skin tone +1F646 1F3FC 200D 2640 FE0F ; fully-qualified # 🙆🏼♀️ woman gesturing OK: medium-light skin tone +1F646 1F3FC 200D 2640 ; minimally-qualified # 🙆🏼♀ woman gesturing OK: medium-light skin tone +1F646 1F3FD 200D 2640 FE0F ; fully-qualified # 🙆🏽♀️ woman gesturing OK: medium skin tone +1F646 1F3FD 200D 2640 ; minimally-qualified # 🙆🏽♀ woman gesturing OK: medium skin tone +1F646 1F3FE 200D 2640 FE0F ; fully-qualified # 🙆🏾♀️ woman gesturing OK: medium-dark skin tone +1F646 1F3FE 200D 2640 ; minimally-qualified # 🙆🏾♀ woman gesturing OK: medium-dark skin tone +1F646 1F3FF 200D 2640 FE0F ; fully-qualified # 🙆🏿♀️ woman gesturing OK: dark skin tone +1F646 1F3FF 200D 2640 ; minimally-qualified # 🙆🏿♀ woman gesturing OK: dark skin tone +1F481 ; fully-qualified # 💁 person tipping hand +1F481 1F3FB ; fully-qualified # 💁🏻 person tipping hand: light skin tone +1F481 1F3FC ; fully-qualified # 💁🏼 person tipping hand: medium-light skin tone +1F481 1F3FD ; fully-qualified # 💁🏽 person tipping hand: medium skin tone +1F481 1F3FE ; fully-qualified # 💁🏾 person tipping hand: medium-dark skin tone +1F481 1F3FF ; fully-qualified # 💁🏿 person tipping hand: dark skin tone +1F481 200D 2642 FE0F ; fully-qualified # 💁♂️ man tipping hand +1F481 200D 2642 ; minimally-qualified # 💁♂ man tipping hand +1F481 1F3FB 200D 2642 FE0F ; fully-qualified # 💁🏻♂️ man tipping hand: light skin tone +1F481 1F3FB 200D 2642 ; minimally-qualified # 💁🏻♂ man tipping hand: light skin tone +1F481 1F3FC 200D 2642 FE0F ; fully-qualified # 💁🏼♂️ man tipping hand: medium-light skin tone +1F481 1F3FC 200D 2642 ; minimally-qualified # 💁🏼♂ man tipping hand: medium-light skin tone +1F481 1F3FD 200D 2642 FE0F ; fully-qualified # 💁🏽♂️ man tipping hand: medium skin tone +1F481 1F3FD 200D 2642 ; minimally-qualified # 💁🏽♂ man tipping hand: medium skin tone +1F481 1F3FE 200D 2642 FE0F ; fully-qualified # 💁🏾♂️ man tipping hand: medium-dark skin tone +1F481 1F3FE 200D 2642 ; minimally-qualified # 💁🏾♂ man tipping hand: medium-dark skin tone +1F481 1F3FF 200D 2642 FE0F ; fully-qualified # 💁🏿♂️ man tipping hand: dark skin tone +1F481 1F3FF 200D 2642 ; minimally-qualified # 💁🏿♂ man tipping hand: dark skin tone +1F481 200D 2640 FE0F ; fully-qualified # 💁♀️ woman tipping hand +1F481 200D 2640 ; minimally-qualified # 💁♀ woman tipping hand +1F481 1F3FB 200D 2640 FE0F ; fully-qualified # 💁🏻♀️ woman tipping hand: light skin tone +1F481 1F3FB 200D 2640 ; minimally-qualified # 💁🏻♀ woman tipping hand: light skin tone +1F481 1F3FC 200D 2640 FE0F ; fully-qualified # 💁🏼♀️ woman tipping hand: medium-light skin tone +1F481 1F3FC 200D 2640 ; minimally-qualified # 💁🏼♀ woman tipping hand: medium-light skin tone +1F481 1F3FD 200D 2640 FE0F ; fully-qualified # 💁🏽♀️ woman tipping hand: medium skin tone +1F481 1F3FD 200D 2640 ; minimally-qualified # 💁🏽♀ woman tipping hand: medium skin tone +1F481 1F3FE 200D 2640 FE0F ; fully-qualified # 💁🏾♀️ woman tipping hand: medium-dark skin tone +1F481 1F3FE 200D 2640 ; minimally-qualified # 💁🏾♀ woman tipping hand: medium-dark skin tone +1F481 1F3FF 200D 2640 FE0F ; fully-qualified # 💁🏿♀️ woman tipping hand: dark skin tone +1F481 1F3FF 200D 2640 ; minimally-qualified # 💁🏿♀ woman tipping hand: dark skin tone +1F64B ; fully-qualified # 🙋 person raising hand +1F64B 1F3FB ; fully-qualified # 🙋🏻 person raising hand: light skin tone +1F64B 1F3FC ; fully-qualified # 🙋🏼 person raising hand: medium-light skin tone +1F64B 1F3FD ; fully-qualified # 🙋🏽 person raising hand: medium skin tone +1F64B 1F3FE ; fully-qualified # 🙋🏾 person raising hand: medium-dark skin tone +1F64B 1F3FF ; fully-qualified # 🙋🏿 person raising hand: dark skin tone +1F64B 200D 2642 FE0F ; fully-qualified # 🙋♂️ man raising hand +1F64B 200D 2642 ; minimally-qualified # 🙋♂ man raising hand +1F64B 1F3FB 200D 2642 FE0F ; fully-qualified # 🙋🏻♂️ man raising hand: light skin tone +1F64B 1F3FB 200D 2642 ; minimally-qualified # 🙋🏻♂ man raising hand: light skin tone +1F64B 1F3FC 200D 2642 FE0F ; fully-qualified # 🙋🏼♂️ man raising hand: medium-light skin tone +1F64B 1F3FC 200D 2642 ; minimally-qualified # 🙋🏼♂ man raising hand: medium-light skin tone +1F64B 1F3FD 200D 2642 FE0F ; fully-qualified # 🙋🏽♂️ man raising hand: medium skin tone +1F64B 1F3FD 200D 2642 ; minimally-qualified # 🙋🏽♂ man raising hand: medium skin tone +1F64B 1F3FE 200D 2642 FE0F ; fully-qualified # 🙋🏾♂️ man raising hand: medium-dark skin tone +1F64B 1F3FE 200D 2642 ; minimally-qualified # 🙋🏾♂ man raising hand: medium-dark skin tone +1F64B 1F3FF 200D 2642 FE0F ; fully-qualified # 🙋🏿♂️ man raising hand: dark skin tone +1F64B 1F3FF 200D 2642 ; minimally-qualified # 🙋🏿♂ man raising hand: dark skin tone +1F64B 200D 2640 FE0F ; fully-qualified # 🙋♀️ woman raising hand +1F64B 200D 2640 ; minimally-qualified # 🙋♀ woman raising hand +1F64B 1F3FB 200D 2640 FE0F ; fully-qualified # 🙋🏻♀️ woman raising hand: light skin tone +1F64B 1F3FB 200D 2640 ; minimally-qualified # 🙋🏻♀ woman raising hand: light skin tone +1F64B 1F3FC 200D 2640 FE0F ; fully-qualified # 🙋🏼♀️ woman raising hand: medium-light skin tone +1F64B 1F3FC 200D 2640 ; minimally-qualified # 🙋🏼♀ woman raising hand: medium-light skin tone +1F64B 1F3FD 200D 2640 FE0F ; fully-qualified # 🙋🏽♀️ woman raising hand: medium skin tone +1F64B 1F3FD 200D 2640 ; minimally-qualified # 🙋🏽♀ woman raising hand: medium skin tone +1F64B 1F3FE 200D 2640 FE0F ; fully-qualified # 🙋🏾♀️ woman raising hand: medium-dark skin tone +1F64B 1F3FE 200D 2640 ; minimally-qualified # 🙋🏾♀ woman raising hand: medium-dark skin tone +1F64B 1F3FF 200D 2640 FE0F ; fully-qualified # 🙋🏿♀️ woman raising hand: dark skin tone +1F64B 1F3FF 200D 2640 ; minimally-qualified # 🙋🏿♀ woman raising hand: dark skin tone +1F9CF ; fully-qualified # 🧏 deaf person +1F9CF 1F3FB ; fully-qualified # 🧏🏻 deaf person: light skin tone +1F9CF 1F3FC ; fully-qualified # 🧏🏼 deaf person: medium-light skin tone +1F9CF 1F3FD ; fully-qualified # 🧏🏽 deaf person: medium skin tone +1F9CF 1F3FE ; fully-qualified # 🧏🏾 deaf person: medium-dark skin tone +1F9CF 1F3FF ; fully-qualified # 🧏🏿 deaf person: dark skin tone +1F9CF 200D 2642 FE0F ; fully-qualified # 🧏♂️ deaf man +1F9CF 200D 2642 ; minimally-qualified # 🧏♂ deaf man +1F9CF 1F3FB 200D 2642 FE0F ; fully-qualified # 🧏🏻♂️ deaf man: light skin tone +1F9CF 1F3FB 200D 2642 ; minimally-qualified # 🧏🏻♂ deaf man: light skin tone +1F9CF 1F3FC 200D 2642 FE0F ; fully-qualified # 🧏🏼♂️ deaf man: medium-light skin tone +1F9CF 1F3FC 200D 2642 ; minimally-qualified # 🧏🏼♂ deaf man: medium-light skin tone +1F9CF 1F3FD 200D 2642 FE0F ; fully-qualified # 🧏🏽♂️ deaf man: medium skin tone +1F9CF 1F3FD 200D 2642 ; minimally-qualified # 🧏🏽♂ deaf man: medium skin tone +1F9CF 1F3FE 200D 2642 FE0F ; fully-qualified # 🧏🏾♂️ deaf man: medium-dark skin tone +1F9CF 1F3FE 200D 2642 ; minimally-qualified # 🧏🏾♂ deaf man: medium-dark skin tone +1F9CF 1F3FF 200D 2642 FE0F ; fully-qualified # 🧏🏿♂️ deaf man: dark skin tone +1F9CF 1F3FF 200D 2642 ; minimally-qualified # 🧏🏿♂ deaf man: dark skin tone +1F9CF 200D 2640 FE0F ; fully-qualified # 🧏♀️ deaf woman +1F9CF 200D 2640 ; minimally-qualified # 🧏♀ deaf woman +1F9CF 1F3FB 200D 2640 FE0F ; fully-qualified # 🧏🏻♀️ deaf woman: light skin tone +1F9CF 1F3FB 200D 2640 ; minimally-qualified # 🧏🏻♀ deaf woman: light skin tone +1F9CF 1F3FC 200D 2640 FE0F ; fully-qualified # 🧏🏼♀️ deaf woman: medium-light skin tone +1F9CF 1F3FC 200D 2640 ; minimally-qualified # 🧏🏼♀ deaf woman: medium-light skin tone +1F9CF 1F3FD 200D 2640 FE0F ; fully-qualified # 🧏🏽♀️ deaf woman: medium skin tone +1F9CF 1F3FD 200D 2640 ; minimally-qualified # 🧏🏽♀ deaf woman: medium skin tone +1F9CF 1F3FE 200D 2640 FE0F ; fully-qualified # 🧏🏾♀️ deaf woman: medium-dark skin tone +1F9CF 1F3FE 200D 2640 ; minimally-qualified # 🧏🏾♀ deaf woman: medium-dark skin tone +1F9CF 1F3FF 200D 2640 FE0F ; fully-qualified # 🧏🏿♀️ deaf woman: dark skin tone +1F9CF 1F3FF 200D 2640 ; minimally-qualified # 🧏🏿♀ deaf woman: dark skin tone +1F647 ; fully-qualified # 🙇 person bowing +1F647 1F3FB ; fully-qualified # 🙇🏻 person bowing: light skin tone +1F647 1F3FC ; fully-qualified # 🙇🏼 person bowing: medium-light skin tone +1F647 1F3FD ; fully-qualified # 🙇🏽 person bowing: medium skin tone +1F647 1F3FE ; fully-qualified # 🙇🏾 person bowing: medium-dark skin tone +1F647 1F3FF ; fully-qualified # 🙇🏿 person bowing: dark skin tone +1F647 200D 2642 FE0F ; fully-qualified # 🙇♂️ man bowing +1F647 200D 2642 ; minimally-qualified # 🙇♂ man bowing +1F647 1F3FB 200D 2642 FE0F ; fully-qualified # 🙇🏻♂️ man bowing: light skin tone +1F647 1F3FB 200D 2642 ; minimally-qualified # 🙇🏻♂ man bowing: light skin tone +1F647 1F3FC 200D 2642 FE0F ; fully-qualified # 🙇🏼♂️ man bowing: medium-light skin tone +1F647 1F3FC 200D 2642 ; minimally-qualified # 🙇🏼♂ man bowing: medium-light skin tone +1F647 1F3FD 200D 2642 FE0F ; fully-qualified # 🙇🏽♂️ man bowing: medium skin tone +1F647 1F3FD 200D 2642 ; minimally-qualified # 🙇🏽♂ man bowing: medium skin tone +1F647 1F3FE 200D 2642 FE0F ; fully-qualified # 🙇🏾♂️ man bowing: medium-dark skin tone +1F647 1F3FE 200D 2642 ; minimally-qualified # 🙇🏾♂ man bowing: medium-dark skin tone +1F647 1F3FF 200D 2642 FE0F ; fully-qualified # 🙇🏿♂️ man bowing: dark skin tone +1F647 1F3FF 200D 2642 ; minimally-qualified # 🙇🏿♂ man bowing: dark skin tone +1F647 200D 2640 FE0F ; fully-qualified # 🙇♀️ woman bowing +1F647 200D 2640 ; minimally-qualified # 🙇♀ woman bowing +1F647 1F3FB 200D 2640 FE0F ; fully-qualified # 🙇🏻♀️ woman bowing: light skin tone +1F647 1F3FB 200D 2640 ; minimally-qualified # 🙇🏻♀ woman bowing: light skin tone +1F647 1F3FC 200D 2640 FE0F ; fully-qualified # 🙇🏼♀️ woman bowing: medium-light skin tone +1F647 1F3FC 200D 2640 ; minimally-qualified # 🙇🏼♀ woman bowing: medium-light skin tone +1F647 1F3FD 200D 2640 FE0F ; fully-qualified # 🙇🏽♀️ woman bowing: medium skin tone +1F647 1F3FD 200D 2640 ; minimally-qualified # 🙇🏽♀ woman bowing: medium skin tone +1F647 1F3FE 200D 2640 FE0F ; fully-qualified # 🙇🏾♀️ woman bowing: medium-dark skin tone +1F647 1F3FE 200D 2640 ; minimally-qualified # 🙇🏾♀ woman bowing: medium-dark skin tone +1F647 1F3FF 200D 2640 FE0F ; fully-qualified # 🙇🏿♀️ woman bowing: dark skin tone +1F647 1F3FF 200D 2640 ; minimally-qualified # 🙇🏿♀ woman bowing: dark skin tone +1F926 ; fully-qualified # 🤦 person facepalming +1F926 1F3FB ; fully-qualified # 🤦🏻 person facepalming: light skin tone +1F926 1F3FC ; fully-qualified # 🤦🏼 person facepalming: medium-light skin tone +1F926 1F3FD ; fully-qualified # 🤦🏽 person facepalming: medium skin tone +1F926 1F3FE ; fully-qualified # 🤦🏾 person facepalming: medium-dark skin tone +1F926 1F3FF ; fully-qualified # 🤦🏿 person facepalming: dark skin tone +1F926 200D 2642 FE0F ; fully-qualified # 🤦♂️ man facepalming +1F926 200D 2642 ; minimally-qualified # 🤦♂ man facepalming +1F926 1F3FB 200D 2642 FE0F ; fully-qualified # 🤦🏻♂️ man facepalming: light skin tone +1F926 1F3FB 200D 2642 ; minimally-qualified # 🤦🏻♂ man facepalming: light skin tone +1F926 1F3FC 200D 2642 FE0F ; fully-qualified # 🤦🏼♂️ man facepalming: medium-light skin tone +1F926 1F3FC 200D 2642 ; minimally-qualified # 🤦🏼♂ man facepalming: medium-light skin tone +1F926 1F3FD 200D 2642 FE0F ; fully-qualified # 🤦🏽♂️ man facepalming: medium skin tone +1F926 1F3FD 200D 2642 ; minimally-qualified # 🤦🏽♂ man facepalming: medium skin tone +1F926 1F3FE 200D 2642 FE0F ; fully-qualified # 🤦🏾♂️ man facepalming: medium-dark skin tone +1F926 1F3FE 200D 2642 ; minimally-qualified # 🤦🏾♂ man facepalming: medium-dark skin tone +1F926 1F3FF 200D 2642 FE0F ; fully-qualified # 🤦🏿♂️ man facepalming: dark skin tone +1F926 1F3FF 200D 2642 ; minimally-qualified # 🤦🏿♂ man facepalming: dark skin tone +1F926 200D 2640 FE0F ; fully-qualified # 🤦♀️ woman facepalming +1F926 200D 2640 ; minimally-qualified # 🤦♀ woman facepalming +1F926 1F3FB 200D 2640 FE0F ; fully-qualified # 🤦🏻♀️ woman facepalming: light skin tone +1F926 1F3FB 200D 2640 ; minimally-qualified # 🤦🏻♀ woman facepalming: light skin tone +1F926 1F3FC 200D 2640 FE0F ; fully-qualified # 🤦🏼♀️ woman facepalming: medium-light skin tone +1F926 1F3FC 200D 2640 ; minimally-qualified # 🤦🏼♀ woman facepalming: medium-light skin tone +1F926 1F3FD 200D 2640 FE0F ; fully-qualified # 🤦🏽♀️ woman facepalming: medium skin tone +1F926 1F3FD 200D 2640 ; minimally-qualified # 🤦🏽♀ woman facepalming: medium skin tone +1F926 1F3FE 200D 2640 FE0F ; fully-qualified # 🤦🏾♀️ woman facepalming: medium-dark skin tone +1F926 1F3FE 200D 2640 ; minimally-qualified # 🤦🏾♀ woman facepalming: medium-dark skin tone +1F926 1F3FF 200D 2640 FE0F ; fully-qualified # 🤦🏿♀️ woman facepalming: dark skin tone +1F926 1F3FF 200D 2640 ; minimally-qualified # 🤦🏿♀ woman facepalming: dark skin tone +1F937 ; fully-qualified # 🤷 person shrugging +1F937 1F3FB ; fully-qualified # 🤷🏻 person shrugging: light skin tone +1F937 1F3FC ; fully-qualified # 🤷🏼 person shrugging: medium-light skin tone +1F937 1F3FD ; fully-qualified # 🤷🏽 person shrugging: medium skin tone +1F937 1F3FE ; fully-qualified # 🤷🏾 person shrugging: medium-dark skin tone +1F937 1F3FF ; fully-qualified # 🤷🏿 person shrugging: dark skin tone +1F937 200D 2642 FE0F ; fully-qualified # 🤷♂️ man shrugging +1F937 200D 2642 ; minimally-qualified # 🤷♂ man shrugging +1F937 1F3FB 200D 2642 FE0F ; fully-qualified # 🤷🏻♂️ man shrugging: light skin tone +1F937 1F3FB 200D 2642 ; minimally-qualified # 🤷🏻♂ man shrugging: light skin tone +1F937 1F3FC 200D 2642 FE0F ; fully-qualified # 🤷🏼♂️ man shrugging: medium-light skin tone +1F937 1F3FC 200D 2642 ; minimally-qualified # 🤷🏼♂ man shrugging: medium-light skin tone +1F937 1F3FD 200D 2642 FE0F ; fully-qualified # 🤷🏽♂️ man shrugging: medium skin tone +1F937 1F3FD 200D 2642 ; minimally-qualified # 🤷🏽♂ man shrugging: medium skin tone +1F937 1F3FE 200D 2642 FE0F ; fully-qualified # 🤷🏾♂️ man shrugging: medium-dark skin tone +1F937 1F3FE 200D 2642 ; minimally-qualified # 🤷🏾♂ man shrugging: medium-dark skin tone +1F937 1F3FF 200D 2642 FE0F ; fully-qualified # 🤷🏿♂️ man shrugging: dark skin tone +1F937 1F3FF 200D 2642 ; minimally-qualified # 🤷🏿♂ man shrugging: dark skin tone +1F937 200D 2640 FE0F ; fully-qualified # 🤷♀️ woman shrugging +1F937 200D 2640 ; minimally-qualified # 🤷♀ woman shrugging +1F937 1F3FB 200D 2640 FE0F ; fully-qualified # 🤷🏻♀️ woman shrugging: light skin tone +1F937 1F3FB 200D 2640 ; minimally-qualified # 🤷🏻♀ woman shrugging: light skin tone +1F937 1F3FC 200D 2640 FE0F ; fully-qualified # 🤷🏼♀️ woman shrugging: medium-light skin tone +1F937 1F3FC 200D 2640 ; minimally-qualified # 🤷🏼♀ woman shrugging: medium-light skin tone +1F937 1F3FD 200D 2640 FE0F ; fully-qualified # 🤷🏽♀️ woman shrugging: medium skin tone +1F937 1F3FD 200D 2640 ; minimally-qualified # 🤷🏽♀ woman shrugging: medium skin tone +1F937 1F3FE 200D 2640 FE0F ; fully-qualified # 🤷🏾♀️ woman shrugging: medium-dark skin tone +1F937 1F3FE 200D 2640 ; minimally-qualified # 🤷🏾♀ woman shrugging: medium-dark skin tone +1F937 1F3FF 200D 2640 FE0F ; fully-qualified # 🤷🏿♀️ woman shrugging: dark skin tone +1F937 1F3FF 200D 2640 ; minimally-qualified # 🤷🏿♀ woman shrugging: dark skin tone + +# subgroup: person-role +1F468 200D 2695 FE0F ; fully-qualified # 👨⚕️ man health worker +1F468 200D 2695 ; minimally-qualified # 👨⚕ man health worker +1F468 1F3FB 200D 2695 FE0F ; fully-qualified # 👨🏻⚕️ man health worker: light skin tone +1F468 1F3FB 200D 2695 ; minimally-qualified # 👨🏻⚕ man health worker: light skin tone +1F468 1F3FC 200D 2695 FE0F ; fully-qualified # 👨🏼⚕️ man health worker: medium-light skin tone +1F468 1F3FC 200D 2695 ; minimally-qualified # 👨🏼⚕ man health worker: medium-light skin tone +1F468 1F3FD 200D 2695 FE0F ; fully-qualified # 👨🏽⚕️ man health worker: medium skin tone +1F468 1F3FD 200D 2695 ; minimally-qualified # 👨🏽⚕ man health worker: medium skin tone +1F468 1F3FE 200D 2695 FE0F ; fully-qualified # 👨🏾⚕️ man health worker: medium-dark skin tone +1F468 1F3FE 200D 2695 ; minimally-qualified # 👨🏾⚕ man health worker: medium-dark skin tone +1F468 1F3FF 200D 2695 FE0F ; fully-qualified # 👨🏿⚕️ man health worker: dark skin tone +1F468 1F3FF 200D 2695 ; minimally-qualified # 👨🏿⚕ man health worker: dark skin tone +1F469 200D 2695 FE0F ; fully-qualified # 👩⚕️ woman health worker +1F469 200D 2695 ; minimally-qualified # 👩⚕ woman health worker +1F469 1F3FB 200D 2695 FE0F ; fully-qualified # 👩🏻⚕️ woman health worker: light skin tone +1F469 1F3FB 200D 2695 ; minimally-qualified # 👩🏻⚕ woman health worker: light skin tone +1F469 1F3FC 200D 2695 FE0F ; fully-qualified # 👩🏼⚕️ woman health worker: medium-light skin tone +1F469 1F3FC 200D 2695 ; minimally-qualified # 👩🏼⚕ woman health worker: medium-light skin tone +1F469 1F3FD 200D 2695 FE0F ; fully-qualified # 👩🏽⚕️ woman health worker: medium skin tone +1F469 1F3FD 200D 2695 ; minimally-qualified # 👩🏽⚕ woman health worker: medium skin tone +1F469 1F3FE 200D 2695 FE0F ; fully-qualified # 👩🏾⚕️ woman health worker: medium-dark skin tone +1F469 1F3FE 200D 2695 ; minimally-qualified # 👩🏾⚕ woman health worker: medium-dark skin tone +1F469 1F3FF 200D 2695 FE0F ; fully-qualified # 👩🏿⚕️ woman health worker: dark skin tone +1F469 1F3FF 200D 2695 ; minimally-qualified # 👩🏿⚕ woman health worker: dark skin tone +1F468 200D 1F393 ; fully-qualified # 👨🎓 man student +1F468 1F3FB 200D 1F393 ; fully-qualified # 👨🏻🎓 man student: light skin tone +1F468 1F3FC 200D 1F393 ; fully-qualified # 👨🏼🎓 man student: medium-light skin tone +1F468 1F3FD 200D 1F393 ; fully-qualified # 👨🏽🎓 man student: medium skin tone +1F468 1F3FE 200D 1F393 ; fully-qualified # 👨🏾🎓 man student: medium-dark skin tone +1F468 1F3FF 200D 1F393 ; fully-qualified # 👨🏿🎓 man student: dark skin tone +1F469 200D 1F393 ; fully-qualified # 👩🎓 woman student +1F469 1F3FB 200D 1F393 ; fully-qualified # 👩🏻🎓 woman student: light skin tone +1F469 1F3FC 200D 1F393 ; fully-qualified # 👩🏼🎓 woman student: medium-light skin tone +1F469 1F3FD 200D 1F393 ; fully-qualified # 👩🏽🎓 woman student: medium skin tone +1F469 1F3FE 200D 1F393 ; fully-qualified # 👩🏾🎓 woman student: medium-dark skin tone +1F469 1F3FF 200D 1F393 ; fully-qualified # 👩🏿🎓 woman student: dark skin tone +1F468 200D 1F3EB ; fully-qualified # 👨🏫 man teacher +1F468 1F3FB 200D 1F3EB ; fully-qualified # 👨🏻🏫 man teacher: light skin tone +1F468 1F3FC 200D 1F3EB ; fully-qualified # 👨🏼🏫 man teacher: medium-light skin tone +1F468 1F3FD 200D 1F3EB ; fully-qualified # 👨🏽🏫 man teacher: medium skin tone +1F468 1F3FE 200D 1F3EB ; fully-qualified # 👨🏾🏫 man teacher: medium-dark skin tone +1F468 1F3FF 200D 1F3EB ; fully-qualified # 👨🏿🏫 man teacher: dark skin tone +1F469 200D 1F3EB ; fully-qualified # 👩🏫 woman teacher +1F469 1F3FB 200D 1F3EB ; fully-qualified # 👩🏻🏫 woman teacher: light skin tone +1F469 1F3FC 200D 1F3EB ; fully-qualified # 👩🏼🏫 woman teacher: medium-light skin tone +1F469 1F3FD 200D 1F3EB ; fully-qualified # 👩🏽🏫 woman teacher: medium skin tone +1F469 1F3FE 200D 1F3EB ; fully-qualified # 👩🏾🏫 woman teacher: medium-dark skin tone +1F469 1F3FF 200D 1F3EB ; fully-qualified # 👩🏿🏫 woman teacher: dark skin tone +1F468 200D 2696 FE0F ; fully-qualified # 👨⚖️ man judge +1F468 200D 2696 ; minimally-qualified # 👨⚖ man judge +1F468 1F3FB 200D 2696 FE0F ; fully-qualified # 👨🏻⚖️ man judge: light skin tone +1F468 1F3FB 200D 2696 ; minimally-qualified # 👨🏻⚖ man judge: light skin tone +1F468 1F3FC 200D 2696 FE0F ; fully-qualified # 👨🏼⚖️ man judge: medium-light skin tone +1F468 1F3FC 200D 2696 ; minimally-qualified # 👨🏼⚖ man judge: medium-light skin tone +1F468 1F3FD 200D 2696 FE0F ; fully-qualified # 👨🏽⚖️ man judge: medium skin tone +1F468 1F3FD 200D 2696 ; minimally-qualified # 👨🏽⚖ man judge: medium skin tone +1F468 1F3FE 200D 2696 FE0F ; fully-qualified # 👨🏾⚖️ man judge: medium-dark skin tone +1F468 1F3FE 200D 2696 ; minimally-qualified # 👨🏾⚖ man judge: medium-dark skin tone +1F468 1F3FF 200D 2696 FE0F ; fully-qualified # 👨🏿⚖️ man judge: dark skin tone +1F468 1F3FF 200D 2696 ; minimally-qualified # 👨🏿⚖ man judge: dark skin tone +1F469 200D 2696 FE0F ; fully-qualified # 👩⚖️ woman judge +1F469 200D 2696 ; minimally-qualified # 👩⚖ woman judge +1F469 1F3FB 200D 2696 FE0F ; fully-qualified # 👩🏻⚖️ woman judge: light skin tone +1F469 1F3FB 200D 2696 ; minimally-qualified # 👩🏻⚖ woman judge: light skin tone +1F469 1F3FC 200D 2696 FE0F ; fully-qualified # 👩🏼⚖️ woman judge: medium-light skin tone +1F469 1F3FC 200D 2696 ; minimally-qualified # 👩🏼⚖ woman judge: medium-light skin tone +1F469 1F3FD 200D 2696 FE0F ; fully-qualified # 👩🏽⚖️ woman judge: medium skin tone +1F469 1F3FD 200D 2696 ; minimally-qualified # 👩🏽⚖ woman judge: medium skin tone +1F469 1F3FE 200D 2696 FE0F ; fully-qualified # 👩🏾⚖️ woman judge: medium-dark skin tone +1F469 1F3FE 200D 2696 ; minimally-qualified # 👩🏾⚖ woman judge: medium-dark skin tone +1F469 1F3FF 200D 2696 FE0F ; fully-qualified # 👩🏿⚖️ woman judge: dark skin tone +1F469 1F3FF 200D 2696 ; minimally-qualified # 👩🏿⚖ woman judge: dark skin tone +1F468 200D 1F33E ; fully-qualified # 👨🌾 man farmer +1F468 1F3FB 200D 1F33E ; fully-qualified # 👨🏻🌾 man farmer: light skin tone +1F468 1F3FC 200D 1F33E ; fully-qualified # 👨🏼🌾 man farmer: medium-light skin tone +1F468 1F3FD 200D 1F33E ; fully-qualified # 👨🏽🌾 man farmer: medium skin tone +1F468 1F3FE 200D 1F33E ; fully-qualified # 👨🏾🌾 man farmer: medium-dark skin tone +1F468 1F3FF 200D 1F33E ; fully-qualified # 👨🏿🌾 man farmer: dark skin tone +1F469 200D 1F33E ; fully-qualified # 👩🌾 woman farmer +1F469 1F3FB 200D 1F33E ; fully-qualified # 👩🏻🌾 woman farmer: light skin tone +1F469 1F3FC 200D 1F33E ; fully-qualified # 👩🏼🌾 woman farmer: medium-light skin tone +1F469 1F3FD 200D 1F33E ; fully-qualified # 👩🏽🌾 woman farmer: medium skin tone +1F469 1F3FE 200D 1F33E ; fully-qualified # 👩🏾🌾 woman farmer: medium-dark skin tone +1F469 1F3FF 200D 1F33E ; fully-qualified # 👩🏿🌾 woman farmer: dark skin tone +1F468 200D 1F373 ; fully-qualified # 👨🍳 man cook +1F468 1F3FB 200D 1F373 ; fully-qualified # 👨🏻🍳 man cook: light skin tone +1F468 1F3FC 200D 1F373 ; fully-qualified # 👨🏼🍳 man cook: medium-light skin tone +1F468 1F3FD 200D 1F373 ; fully-qualified # 👨🏽🍳 man cook: medium skin tone +1F468 1F3FE 200D 1F373 ; fully-qualified # 👨🏾🍳 man cook: medium-dark skin tone +1F468 1F3FF 200D 1F373 ; fully-qualified # 👨🏿🍳 man cook: dark skin tone +1F469 200D 1F373 ; fully-qualified # 👩🍳 woman cook +1F469 1F3FB 200D 1F373 ; fully-qualified # 👩🏻🍳 woman cook: light skin tone +1F469 1F3FC 200D 1F373 ; fully-qualified # 👩🏼🍳 woman cook: medium-light skin tone +1F469 1F3FD 200D 1F373 ; fully-qualified # 👩🏽🍳 woman cook: medium skin tone +1F469 1F3FE 200D 1F373 ; fully-qualified # 👩🏾🍳 woman cook: medium-dark skin tone +1F469 1F3FF 200D 1F373 ; fully-qualified # 👩🏿🍳 woman cook: dark skin tone +1F468 200D 1F527 ; fully-qualified # 👨🔧 man mechanic +1F468 1F3FB 200D 1F527 ; fully-qualified # 👨🏻🔧 man mechanic: light skin tone +1F468 1F3FC 200D 1F527 ; fully-qualified # 👨🏼🔧 man mechanic: medium-light skin tone +1F468 1F3FD 200D 1F527 ; fully-qualified # 👨🏽🔧 man mechanic: medium skin tone +1F468 1F3FE 200D 1F527 ; fully-qualified # 👨🏾🔧 man mechanic: medium-dark skin tone +1F468 1F3FF 200D 1F527 ; fully-qualified # 👨🏿🔧 man mechanic: dark skin tone +1F469 200D 1F527 ; fully-qualified # 👩🔧 woman mechanic +1F469 1F3FB 200D 1F527 ; fully-qualified # 👩🏻🔧 woman mechanic: light skin tone +1F469 1F3FC 200D 1F527 ; fully-qualified # 👩🏼🔧 woman mechanic: medium-light skin tone +1F469 1F3FD 200D 1F527 ; fully-qualified # 👩🏽🔧 woman mechanic: medium skin tone +1F469 1F3FE 200D 1F527 ; fully-qualified # 👩🏾🔧 woman mechanic: medium-dark skin tone +1F469 1F3FF 200D 1F527 ; fully-qualified # 👩🏿🔧 woman mechanic: dark skin tone +1F468 200D 1F3ED ; fully-qualified # 👨🏭 man factory worker +1F468 1F3FB 200D 1F3ED ; fully-qualified # 👨🏻🏭 man factory worker: light skin tone +1F468 1F3FC 200D 1F3ED ; fully-qualified # 👨🏼🏭 man factory worker: medium-light skin tone +1F468 1F3FD 200D 1F3ED ; fully-qualified # 👨🏽🏭 man factory worker: medium skin tone +1F468 1F3FE 200D 1F3ED ; fully-qualified # 👨🏾🏭 man factory worker: medium-dark skin tone +1F468 1F3FF 200D 1F3ED ; fully-qualified # 👨🏿🏭 man factory worker: dark skin tone +1F469 200D 1F3ED ; fully-qualified # 👩🏭 woman factory worker +1F469 1F3FB 200D 1F3ED ; fully-qualified # 👩🏻🏭 woman factory worker: light skin tone +1F469 1F3FC 200D 1F3ED ; fully-qualified # 👩🏼🏭 woman factory worker: medium-light skin tone +1F469 1F3FD 200D 1F3ED ; fully-qualified # 👩🏽🏭 woman factory worker: medium skin tone +1F469 1F3FE 200D 1F3ED ; fully-qualified # 👩🏾🏭 woman factory worker: medium-dark skin tone +1F469 1F3FF 200D 1F3ED ; fully-qualified # 👩🏿🏭 woman factory worker: dark skin tone +1F468 200D 1F4BC ; fully-qualified # 👨💼 man office worker +1F468 1F3FB 200D 1F4BC ; fully-qualified # 👨🏻💼 man office worker: light skin tone +1F468 1F3FC 200D 1F4BC ; fully-qualified # 👨🏼💼 man office worker: medium-light skin tone +1F468 1F3FD 200D 1F4BC ; fully-qualified # 👨🏽💼 man office worker: medium skin tone +1F468 1F3FE 200D 1F4BC ; fully-qualified # 👨🏾💼 man office worker: medium-dark skin tone +1F468 1F3FF 200D 1F4BC ; fully-qualified # 👨🏿💼 man office worker: dark skin tone +1F469 200D 1F4BC ; fully-qualified # 👩💼 woman office worker +1F469 1F3FB 200D 1F4BC ; fully-qualified # 👩🏻💼 woman office worker: light skin tone +1F469 1F3FC 200D 1F4BC ; fully-qualified # 👩🏼💼 woman office worker: medium-light skin tone +1F469 1F3FD 200D 1F4BC ; fully-qualified # 👩🏽💼 woman office worker: medium skin tone +1F469 1F3FE 200D 1F4BC ; fully-qualified # 👩🏾💼 woman office worker: medium-dark skin tone +1F469 1F3FF 200D 1F4BC ; fully-qualified # 👩🏿💼 woman office worker: dark skin tone +1F468 200D 1F52C ; fully-qualified # 👨🔬 man scientist +1F468 1F3FB 200D 1F52C ; fully-qualified # 👨🏻🔬 man scientist: light skin tone +1F468 1F3FC 200D 1F52C ; fully-qualified # 👨🏼🔬 man scientist: medium-light skin tone +1F468 1F3FD 200D 1F52C ; fully-qualified # 👨🏽🔬 man scientist: medium skin tone +1F468 1F3FE 200D 1F52C ; fully-qualified # 👨🏾🔬 man scientist: medium-dark skin tone +1F468 1F3FF 200D 1F52C ; fully-qualified # 👨🏿🔬 man scientist: dark skin tone +1F469 200D 1F52C ; fully-qualified # 👩🔬 woman scientist +1F469 1F3FB 200D 1F52C ; fully-qualified # 👩🏻🔬 woman scientist: light skin tone +1F469 1F3FC 200D 1F52C ; fully-qualified # 👩🏼🔬 woman scientist: medium-light skin tone +1F469 1F3FD 200D 1F52C ; fully-qualified # 👩🏽🔬 woman scientist: medium skin tone +1F469 1F3FE 200D 1F52C ; fully-qualified # 👩🏾🔬 woman scientist: medium-dark skin tone +1F469 1F3FF 200D 1F52C ; fully-qualified # 👩🏿🔬 woman scientist: dark skin tone +1F468 200D 1F4BB ; fully-qualified # 👨💻 man technologist +1F468 1F3FB 200D 1F4BB ; fully-qualified # 👨🏻💻 man technologist: light skin tone +1F468 1F3FC 200D 1F4BB ; fully-qualified # 👨🏼💻 man technologist: medium-light skin tone +1F468 1F3FD 200D 1F4BB ; fully-qualified # 👨🏽💻 man technologist: medium skin tone +1F468 1F3FE 200D 1F4BB ; fully-qualified # 👨🏾💻 man technologist: medium-dark skin tone +1F468 1F3FF 200D 1F4BB ; fully-qualified # 👨🏿💻 man technologist: dark skin tone +1F469 200D 1F4BB ; fully-qualified # 👩💻 woman technologist +1F469 1F3FB 200D 1F4BB ; fully-qualified # 👩🏻💻 woman technologist: light skin tone +1F469 1F3FC 200D 1F4BB ; fully-qualified # 👩🏼💻 woman technologist: medium-light skin tone +1F469 1F3FD 200D 1F4BB ; fully-qualified # 👩🏽💻 woman technologist: medium skin tone +1F469 1F3FE 200D 1F4BB ; fully-qualified # 👩🏾💻 woman technologist: medium-dark skin tone +1F469 1F3FF 200D 1F4BB ; fully-qualified # 👩🏿💻 woman technologist: dark skin tone +1F468 200D 1F3A4 ; fully-qualified # 👨🎤 man singer +1F468 1F3FB 200D 1F3A4 ; fully-qualified # 👨🏻🎤 man singer: light skin tone +1F468 1F3FC 200D 1F3A4 ; fully-qualified # 👨🏼🎤 man singer: medium-light skin tone +1F468 1F3FD 200D 1F3A4 ; fully-qualified # 👨🏽🎤 man singer: medium skin tone +1F468 1F3FE 200D 1F3A4 ; fully-qualified # 👨🏾🎤 man singer: medium-dark skin tone +1F468 1F3FF 200D 1F3A4 ; fully-qualified # 👨🏿🎤 man singer: dark skin tone +1F469 200D 1F3A4 ; fully-qualified # 👩🎤 woman singer +1F469 1F3FB 200D 1F3A4 ; fully-qualified # 👩🏻🎤 woman singer: light skin tone +1F469 1F3FC 200D 1F3A4 ; fully-qualified # 👩🏼🎤 woman singer: medium-light skin tone +1F469 1F3FD 200D 1F3A4 ; fully-qualified # 👩🏽🎤 woman singer: medium skin tone +1F469 1F3FE 200D 1F3A4 ; fully-qualified # 👩🏾🎤 woman singer: medium-dark skin tone +1F469 1F3FF 200D 1F3A4 ; fully-qualified # 👩🏿🎤 woman singer: dark skin tone +1F468 200D 1F3A8 ; fully-qualified # 👨🎨 man artist +1F468 1F3FB 200D 1F3A8 ; fully-qualified # 👨🏻🎨 man artist: light skin tone +1F468 1F3FC 200D 1F3A8 ; fully-qualified # 👨🏼🎨 man artist: medium-light skin tone +1F468 1F3FD 200D 1F3A8 ; fully-qualified # 👨🏽🎨 man artist: medium skin tone +1F468 1F3FE 200D 1F3A8 ; fully-qualified # 👨🏾🎨 man artist: medium-dark skin tone +1F468 1F3FF 200D 1F3A8 ; fully-qualified # 👨🏿🎨 man artist: dark skin tone +1F469 200D 1F3A8 ; fully-qualified # 👩🎨 woman artist +1F469 1F3FB 200D 1F3A8 ; fully-qualified # 👩🏻🎨 woman artist: light skin tone +1F469 1F3FC 200D 1F3A8 ; fully-qualified # 👩🏼🎨 woman artist: medium-light skin tone +1F469 1F3FD 200D 1F3A8 ; fully-qualified # 👩🏽🎨 woman artist: medium skin tone +1F469 1F3FE 200D 1F3A8 ; fully-qualified # 👩🏾🎨 woman artist: medium-dark skin tone +1F469 1F3FF 200D 1F3A8 ; fully-qualified # 👩🏿🎨 woman artist: dark skin tone +1F468 200D 2708 FE0F ; fully-qualified # 👨✈️ man pilot +1F468 200D 2708 ; minimally-qualified # 👨✈ man pilot +1F468 1F3FB 200D 2708 FE0F ; fully-qualified # 👨🏻✈️ man pilot: light skin tone +1F468 1F3FB 200D 2708 ; minimally-qualified # 👨🏻✈ man pilot: light skin tone +1F468 1F3FC 200D 2708 FE0F ; fully-qualified # 👨🏼✈️ man pilot: medium-light skin tone +1F468 1F3FC 200D 2708 ; minimally-qualified # 👨🏼✈ man pilot: medium-light skin tone +1F468 1F3FD 200D 2708 FE0F ; fully-qualified # 👨🏽✈️ man pilot: medium skin tone +1F468 1F3FD 200D 2708 ; minimally-qualified # 👨🏽✈ man pilot: medium skin tone +1F468 1F3FE 200D 2708 FE0F ; fully-qualified # 👨🏾✈️ man pilot: medium-dark skin tone +1F468 1F3FE 200D 2708 ; minimally-qualified # 👨🏾✈ man pilot: medium-dark skin tone +1F468 1F3FF 200D 2708 FE0F ; fully-qualified # 👨🏿✈️ man pilot: dark skin tone +1F468 1F3FF 200D 2708 ; minimally-qualified # 👨🏿✈ man pilot: dark skin tone +1F469 200D 2708 FE0F ; fully-qualified # 👩✈️ woman pilot +1F469 200D 2708 ; minimally-qualified # 👩✈ woman pilot +1F469 1F3FB 200D 2708 FE0F ; fully-qualified # 👩🏻✈️ woman pilot: light skin tone +1F469 1F3FB 200D 2708 ; minimally-qualified # 👩🏻✈ woman pilot: light skin tone +1F469 1F3FC 200D 2708 FE0F ; fully-qualified # 👩🏼✈️ woman pilot: medium-light skin tone +1F469 1F3FC 200D 2708 ; minimally-qualified # 👩🏼✈ woman pilot: medium-light skin tone +1F469 1F3FD 200D 2708 FE0F ; fully-qualified # 👩🏽✈️ woman pilot: medium skin tone +1F469 1F3FD 200D 2708 ; minimally-qualified # 👩🏽✈ woman pilot: medium skin tone +1F469 1F3FE 200D 2708 FE0F ; fully-qualified # 👩🏾✈️ woman pilot: medium-dark skin tone +1F469 1F3FE 200D 2708 ; minimally-qualified # 👩🏾✈ woman pilot: medium-dark skin tone +1F469 1F3FF 200D 2708 FE0F ; fully-qualified # 👩🏿✈️ woman pilot: dark skin tone +1F469 1F3FF 200D 2708 ; minimally-qualified # 👩🏿✈ woman pilot: dark skin tone +1F468 200D 1F680 ; fully-qualified # 👨🚀 man astronaut +1F468 1F3FB 200D 1F680 ; fully-qualified # 👨🏻🚀 man astronaut: light skin tone +1F468 1F3FC 200D 1F680 ; fully-qualified # 👨🏼🚀 man astronaut: medium-light skin tone +1F468 1F3FD 200D 1F680 ; fully-qualified # 👨🏽🚀 man astronaut: medium skin tone +1F468 1F3FE 200D 1F680 ; fully-qualified # 👨🏾🚀 man astronaut: medium-dark skin tone +1F468 1F3FF 200D 1F680 ; fully-qualified # 👨🏿🚀 man astronaut: dark skin tone +1F469 200D 1F680 ; fully-qualified # 👩🚀 woman astronaut +1F469 1F3FB 200D 1F680 ; fully-qualified # 👩🏻🚀 woman astronaut: light skin tone +1F469 1F3FC 200D 1F680 ; fully-qualified # 👩🏼🚀 woman astronaut: medium-light skin tone +1F469 1F3FD 200D 1F680 ; fully-qualified # 👩🏽🚀 woman astronaut: medium skin tone +1F469 1F3FE 200D 1F680 ; fully-qualified # 👩🏾🚀 woman astronaut: medium-dark skin tone +1F469 1F3FF 200D 1F680 ; fully-qualified # 👩🏿🚀 woman astronaut: dark skin tone +1F468 200D 1F692 ; fully-qualified # 👨🚒 man firefighter +1F468 1F3FB 200D 1F692 ; fully-qualified # 👨🏻🚒 man firefighter: light skin tone +1F468 1F3FC 200D 1F692 ; fully-qualified # 👨🏼🚒 man firefighter: medium-light skin tone +1F468 1F3FD 200D 1F692 ; fully-qualified # 👨🏽🚒 man firefighter: medium skin tone +1F468 1F3FE 200D 1F692 ; fully-qualified # 👨🏾🚒 man firefighter: medium-dark skin tone +1F468 1F3FF 200D 1F692 ; fully-qualified # 👨🏿🚒 man firefighter: dark skin tone +1F469 200D 1F692 ; fully-qualified # 👩🚒 woman firefighter +1F469 1F3FB 200D 1F692 ; fully-qualified # 👩🏻🚒 woman firefighter: light skin tone +1F469 1F3FC 200D 1F692 ; fully-qualified # 👩🏼🚒 woman firefighter: medium-light skin tone +1F469 1F3FD 200D 1F692 ; fully-qualified # 👩🏽🚒 woman firefighter: medium skin tone +1F469 1F3FE 200D 1F692 ; fully-qualified # 👩🏾🚒 woman firefighter: medium-dark skin tone +1F469 1F3FF 200D 1F692 ; fully-qualified # 👩🏿🚒 woman firefighter: dark skin tone +1F46E ; fully-qualified # 👮 police officer +1F46E 1F3FB ; fully-qualified # 👮🏻 police officer: light skin tone +1F46E 1F3FC ; fully-qualified # 👮🏼 police officer: medium-light skin tone +1F46E 1F3FD ; fully-qualified # 👮🏽 police officer: medium skin tone +1F46E 1F3FE ; fully-qualified # 👮🏾 police officer: medium-dark skin tone +1F46E 1F3FF ; fully-qualified # 👮🏿 police officer: dark skin tone +1F46E 200D 2642 FE0F ; fully-qualified # 👮♂️ man police officer +1F46E 200D 2642 ; minimally-qualified # 👮♂ man police officer +1F46E 1F3FB 200D 2642 FE0F ; fully-qualified # 👮🏻♂️ man police officer: light skin tone +1F46E 1F3FB 200D 2642 ; minimally-qualified # 👮🏻♂ man police officer: light skin tone +1F46E 1F3FC 200D 2642 FE0F ; fully-qualified # 👮🏼♂️ man police officer: medium-light skin tone +1F46E 1F3FC 200D 2642 ; minimally-qualified # 👮🏼♂ man police officer: medium-light skin tone +1F46E 1F3FD 200D 2642 FE0F ; fully-qualified # 👮🏽♂️ man police officer: medium skin tone +1F46E 1F3FD 200D 2642 ; minimally-qualified # 👮🏽♂ man police officer: medium skin tone +1F46E 1F3FE 200D 2642 FE0F ; fully-qualified # 👮🏾♂️ man police officer: medium-dark skin tone +1F46E 1F3FE 200D 2642 ; minimally-qualified # 👮🏾♂ man police officer: medium-dark skin tone +1F46E 1F3FF 200D 2642 FE0F ; fully-qualified # 👮🏿♂️ man police officer: dark skin tone +1F46E 1F3FF 200D 2642 ; minimally-qualified # 👮🏿♂ man police officer: dark skin tone +1F46E 200D 2640 FE0F ; fully-qualified # 👮♀️ woman police officer +1F46E 200D 2640 ; minimally-qualified # 👮♀ woman police officer +1F46E 1F3FB 200D 2640 FE0F ; fully-qualified # 👮🏻♀️ woman police officer: light skin tone +1F46E 1F3FB 200D 2640 ; minimally-qualified # 👮🏻♀ woman police officer: light skin tone +1F46E 1F3FC 200D 2640 FE0F ; fully-qualified # 👮🏼♀️ woman police officer: medium-light skin tone +1F46E 1F3FC 200D 2640 ; minimally-qualified # 👮🏼♀ woman police officer: medium-light skin tone +1F46E 1F3FD 200D 2640 FE0F ; fully-qualified # 👮🏽♀️ woman police officer: medium skin tone +1F46E 1F3FD 200D 2640 ; minimally-qualified # 👮🏽♀ woman police officer: medium skin tone +1F46E 1F3FE 200D 2640 FE0F ; fully-qualified # 👮🏾♀️ woman police officer: medium-dark skin tone +1F46E 1F3FE 200D 2640 ; minimally-qualified # 👮🏾♀ woman police officer: medium-dark skin tone +1F46E 1F3FF 200D 2640 FE0F ; fully-qualified # 👮🏿♀️ woman police officer: dark skin tone +1F46E 1F3FF 200D 2640 ; minimally-qualified # 👮🏿♀ woman police officer: dark skin tone +1F575 FE0F ; fully-qualified # 🕵️ detective +1F575 ; unqualified # 🕵 detective +1F575 1F3FB ; fully-qualified # 🕵🏻 detective: light skin tone +1F575 1F3FC ; fully-qualified # 🕵🏼 detective: medium-light skin tone +1F575 1F3FD ; fully-qualified # 🕵🏽 detective: medium skin tone +1F575 1F3FE ; fully-qualified # 🕵🏾 detective: medium-dark skin tone +1F575 1F3FF ; fully-qualified # 🕵🏿 detective: dark skin tone +1F575 FE0F 200D 2642 FE0F ; fully-qualified # 🕵️♂️ man detective +1F575 200D 2642 FE0F ; unqualified # 🕵♂️ man detective +1F575 FE0F 200D 2642 ; unqualified # 🕵️♂ man detective +1F575 200D 2642 ; unqualified # 🕵♂ man detective +1F575 1F3FB 200D 2642 FE0F ; fully-qualified # 🕵🏻♂️ man detective: light skin tone +1F575 1F3FB 200D 2642 ; minimally-qualified # 🕵🏻♂ man detective: light skin tone +1F575 1F3FC 200D 2642 FE0F ; fully-qualified # 🕵🏼♂️ man detective: medium-light skin tone +1F575 1F3FC 200D 2642 ; minimally-qualified # 🕵🏼♂ man detective: medium-light skin tone +1F575 1F3FD 200D 2642 FE0F ; fully-qualified # 🕵🏽♂️ man detective: medium skin tone +1F575 1F3FD 200D 2642 ; minimally-qualified # 🕵🏽♂ man detective: medium skin tone +1F575 1F3FE 200D 2642 FE0F ; fully-qualified # 🕵🏾♂️ man detective: medium-dark skin tone +1F575 1F3FE 200D 2642 ; minimally-qualified # 🕵🏾♂ man detective: medium-dark skin tone +1F575 1F3FF 200D 2642 FE0F ; fully-qualified # 🕵🏿♂️ man detective: dark skin tone +1F575 1F3FF 200D 2642 ; minimally-qualified # 🕵🏿♂ man detective: dark skin tone +1F575 FE0F 200D 2640 FE0F ; fully-qualified # 🕵️♀️ woman detective +1F575 200D 2640 FE0F ; unqualified # 🕵♀️ woman detective +1F575 FE0F 200D 2640 ; unqualified # 🕵️♀ woman detective +1F575 200D 2640 ; unqualified # 🕵♀ woman detective +1F575 1F3FB 200D 2640 FE0F ; fully-qualified # 🕵🏻♀️ woman detective: light skin tone +1F575 1F3FB 200D 2640 ; minimally-qualified # 🕵🏻♀ woman detective: light skin tone +1F575 1F3FC 200D 2640 FE0F ; fully-qualified # 🕵🏼♀️ woman detective: medium-light skin tone +1F575 1F3FC 200D 2640 ; minimally-qualified # 🕵🏼♀ woman detective: medium-light skin tone +1F575 1F3FD 200D 2640 FE0F ; fully-qualified # 🕵🏽♀️ woman detective: medium skin tone +1F575 1F3FD 200D 2640 ; minimally-qualified # 🕵🏽♀ woman detective: medium skin tone +1F575 1F3FE 200D 2640 FE0F ; fully-qualified # 🕵🏾♀️ woman detective: medium-dark skin tone +1F575 1F3FE 200D 2640 ; minimally-qualified # 🕵🏾♀ woman detective: medium-dark skin tone +1F575 1F3FF 200D 2640 FE0F ; fully-qualified # 🕵🏿♀️ woman detective: dark skin tone +1F575 1F3FF 200D 2640 ; minimally-qualified # 🕵🏿♀ woman detective: dark skin tone +1F482 ; fully-qualified # 💂 guard +1F482 1F3FB ; fully-qualified # 💂🏻 guard: light skin tone +1F482 1F3FC ; fully-qualified # 💂🏼 guard: medium-light skin tone +1F482 1F3FD ; fully-qualified # 💂🏽 guard: medium skin tone +1F482 1F3FE ; fully-qualified # 💂🏾 guard: medium-dark skin tone +1F482 1F3FF ; fully-qualified # 💂🏿 guard: dark skin tone +1F482 200D 2642 FE0F ; fully-qualified # 💂♂️ man guard +1F482 200D 2642 ; minimally-qualified # 💂♂ man guard +1F482 1F3FB 200D 2642 FE0F ; fully-qualified # 💂🏻♂️ man guard: light skin tone +1F482 1F3FB 200D 2642 ; minimally-qualified # 💂🏻♂ man guard: light skin tone +1F482 1F3FC 200D 2642 FE0F ; fully-qualified # 💂🏼♂️ man guard: medium-light skin tone +1F482 1F3FC 200D 2642 ; minimally-qualified # 💂🏼♂ man guard: medium-light skin tone +1F482 1F3FD 200D 2642 FE0F ; fully-qualified # 💂🏽♂️ man guard: medium skin tone +1F482 1F3FD 200D 2642 ; minimally-qualified # 💂🏽♂ man guard: medium skin tone +1F482 1F3FE 200D 2642 FE0F ; fully-qualified # 💂🏾♂️ man guard: medium-dark skin tone +1F482 1F3FE 200D 2642 ; minimally-qualified # 💂🏾♂ man guard: medium-dark skin tone +1F482 1F3FF 200D 2642 FE0F ; fully-qualified # 💂🏿♂️ man guard: dark skin tone +1F482 1F3FF 200D 2642 ; minimally-qualified # 💂🏿♂ man guard: dark skin tone +1F482 200D 2640 FE0F ; fully-qualified # 💂♀️ woman guard +1F482 200D 2640 ; minimally-qualified # 💂♀ woman guard +1F482 1F3FB 200D 2640 FE0F ; fully-qualified # 💂🏻♀️ woman guard: light skin tone +1F482 1F3FB 200D 2640 ; minimally-qualified # 💂🏻♀ woman guard: light skin tone +1F482 1F3FC 200D 2640 FE0F ; fully-qualified # 💂🏼♀️ woman guard: medium-light skin tone +1F482 1F3FC 200D 2640 ; minimally-qualified # 💂🏼♀ woman guard: medium-light skin tone +1F482 1F3FD 200D 2640 FE0F ; fully-qualified # 💂🏽♀️ woman guard: medium skin tone +1F482 1F3FD 200D 2640 ; minimally-qualified # 💂🏽♀ woman guard: medium skin tone +1F482 1F3FE 200D 2640 FE0F ; fully-qualified # 💂🏾♀️ woman guard: medium-dark skin tone +1F482 1F3FE 200D 2640 ; minimally-qualified # 💂🏾♀ woman guard: medium-dark skin tone +1F482 1F3FF 200D 2640 FE0F ; fully-qualified # 💂🏿♀️ woman guard: dark skin tone +1F482 1F3FF 200D 2640 ; minimally-qualified # 💂🏿♀ woman guard: dark skin tone +1F477 ; fully-qualified # 👷 construction worker +1F477 1F3FB ; fully-qualified # 👷🏻 construction worker: light skin tone +1F477 1F3FC ; fully-qualified # 👷🏼 construction worker: medium-light skin tone +1F477 1F3FD ; fully-qualified # 👷🏽 construction worker: medium skin tone +1F477 1F3FE ; fully-qualified # 👷🏾 construction worker: medium-dark skin tone +1F477 1F3FF ; fully-qualified # 👷🏿 construction worker: dark skin tone +1F477 200D 2642 FE0F ; fully-qualified # 👷♂️ man construction worker +1F477 200D 2642 ; minimally-qualified # 👷♂ man construction worker +1F477 1F3FB 200D 2642 FE0F ; fully-qualified # 👷🏻♂️ man construction worker: light skin tone +1F477 1F3FB 200D 2642 ; minimally-qualified # 👷🏻♂ man construction worker: light skin tone +1F477 1F3FC 200D 2642 FE0F ; fully-qualified # 👷🏼♂️ man construction worker: medium-light skin tone +1F477 1F3FC 200D 2642 ; minimally-qualified # 👷🏼♂ man construction worker: medium-light skin tone +1F477 1F3FD 200D 2642 FE0F ; fully-qualified # 👷🏽♂️ man construction worker: medium skin tone +1F477 1F3FD 200D 2642 ; minimally-qualified # 👷🏽♂ man construction worker: medium skin tone +1F477 1F3FE 200D 2642 FE0F ; fully-qualified # 👷🏾♂️ man construction worker: medium-dark skin tone +1F477 1F3FE 200D 2642 ; minimally-qualified # 👷🏾♂ man construction worker: medium-dark skin tone +1F477 1F3FF 200D 2642 FE0F ; fully-qualified # 👷🏿♂️ man construction worker: dark skin tone +1F477 1F3FF 200D 2642 ; minimally-qualified # 👷🏿♂ man construction worker: dark skin tone +1F477 200D 2640 FE0F ; fully-qualified # 👷♀️ woman construction worker +1F477 200D 2640 ; minimally-qualified # 👷♀ woman construction worker +1F477 1F3FB 200D 2640 FE0F ; fully-qualified # 👷🏻♀️ woman construction worker: light skin tone +1F477 1F3FB 200D 2640 ; minimally-qualified # 👷🏻♀ woman construction worker: light skin tone +1F477 1F3FC 200D 2640 FE0F ; fully-qualified # 👷🏼♀️ woman construction worker: medium-light skin tone +1F477 1F3FC 200D 2640 ; minimally-qualified # 👷🏼♀ woman construction worker: medium-light skin tone +1F477 1F3FD 200D 2640 FE0F ; fully-qualified # 👷🏽♀️ woman construction worker: medium skin tone +1F477 1F3FD 200D 2640 ; minimally-qualified # 👷🏽♀ woman construction worker: medium skin tone +1F477 1F3FE 200D 2640 FE0F ; fully-qualified # 👷🏾♀️ woman construction worker: medium-dark skin tone +1F477 1F3FE 200D 2640 ; minimally-qualified # 👷🏾♀ woman construction worker: medium-dark skin tone +1F477 1F3FF 200D 2640 FE0F ; fully-qualified # 👷🏿♀️ woman construction worker: dark skin tone +1F477 1F3FF 200D 2640 ; minimally-qualified # 👷🏿♀ woman construction worker: dark skin tone +1F934 ; fully-qualified # 🤴 prince +1F934 1F3FB ; fully-qualified # 🤴🏻 prince: light skin tone +1F934 1F3FC ; fully-qualified # 🤴🏼 prince: medium-light skin tone +1F934 1F3FD ; fully-qualified # 🤴🏽 prince: medium skin tone +1F934 1F3FE ; fully-qualified # 🤴🏾 prince: medium-dark skin tone +1F934 1F3FF ; fully-qualified # 🤴🏿 prince: dark skin tone +1F478 ; fully-qualified # 👸 princess +1F478 1F3FB ; fully-qualified # 👸🏻 princess: light skin tone +1F478 1F3FC ; fully-qualified # 👸🏼 princess: medium-light skin tone +1F478 1F3FD ; fully-qualified # 👸🏽 princess: medium skin tone +1F478 1F3FE ; fully-qualified # 👸🏾 princess: medium-dark skin tone +1F478 1F3FF ; fully-qualified # 👸🏿 princess: dark skin tone +1F473 ; fully-qualified # 👳 person wearing turban +1F473 1F3FB ; fully-qualified # 👳🏻 person wearing turban: light skin tone +1F473 1F3FC ; fully-qualified # 👳🏼 person wearing turban: medium-light skin tone +1F473 1F3FD ; fully-qualified # 👳🏽 person wearing turban: medium skin tone +1F473 1F3FE ; fully-qualified # 👳🏾 person wearing turban: medium-dark skin tone +1F473 1F3FF ; fully-qualified # 👳🏿 person wearing turban: dark skin tone +1F473 200D 2642 FE0F ; fully-qualified # 👳♂️ man wearing turban +1F473 200D 2642 ; minimally-qualified # 👳♂ man wearing turban +1F473 1F3FB 200D 2642 FE0F ; fully-qualified # 👳🏻♂️ man wearing turban: light skin tone +1F473 1F3FB 200D 2642 ; minimally-qualified # 👳🏻♂ man wearing turban: light skin tone +1F473 1F3FC 200D 2642 FE0F ; fully-qualified # 👳🏼♂️ man wearing turban: medium-light skin tone +1F473 1F3FC 200D 2642 ; minimally-qualified # 👳🏼♂ man wearing turban: medium-light skin tone +1F473 1F3FD 200D 2642 FE0F ; fully-qualified # 👳🏽♂️ man wearing turban: medium skin tone +1F473 1F3FD 200D 2642 ; minimally-qualified # 👳🏽♂ man wearing turban: medium skin tone +1F473 1F3FE 200D 2642 FE0F ; fully-qualified # 👳🏾♂️ man wearing turban: medium-dark skin tone +1F473 1F3FE 200D 2642 ; minimally-qualified # 👳🏾♂ man wearing turban: medium-dark skin tone +1F473 1F3FF 200D 2642 FE0F ; fully-qualified # 👳🏿♂️ man wearing turban: dark skin tone +1F473 1F3FF 200D 2642 ; minimally-qualified # 👳🏿♂ man wearing turban: dark skin tone +1F473 200D 2640 FE0F ; fully-qualified # 👳♀️ woman wearing turban +1F473 200D 2640 ; minimally-qualified # 👳♀ woman wearing turban +1F473 1F3FB 200D 2640 FE0F ; fully-qualified # 👳🏻♀️ woman wearing turban: light skin tone +1F473 1F3FB 200D 2640 ; minimally-qualified # 👳🏻♀ woman wearing turban: light skin tone +1F473 1F3FC 200D 2640 FE0F ; fully-qualified # 👳🏼♀️ woman wearing turban: medium-light skin tone +1F473 1F3FC 200D 2640 ; minimally-qualified # 👳🏼♀ woman wearing turban: medium-light skin tone +1F473 1F3FD 200D 2640 FE0F ; fully-qualified # 👳🏽♀️ woman wearing turban: medium skin tone +1F473 1F3FD 200D 2640 ; minimally-qualified # 👳🏽♀ woman wearing turban: medium skin tone +1F473 1F3FE 200D 2640 FE0F ; fully-qualified # 👳🏾♀️ woman wearing turban: medium-dark skin tone +1F473 1F3FE 200D 2640 ; minimally-qualified # 👳🏾♀ woman wearing turban: medium-dark skin tone +1F473 1F3FF 200D 2640 FE0F ; fully-qualified # 👳🏿♀️ woman wearing turban: dark skin tone +1F473 1F3FF 200D 2640 ; minimally-qualified # 👳🏿♀ woman wearing turban: dark skin tone +1F472 ; fully-qualified # 👲 man with Chinese cap +1F472 1F3FB ; fully-qualified # 👲🏻 man with Chinese cap: light skin tone +1F472 1F3FC ; fully-qualified # 👲🏼 man with Chinese cap: medium-light skin tone +1F472 1F3FD ; fully-qualified # 👲🏽 man with Chinese cap: medium skin tone +1F472 1F3FE ; fully-qualified # 👲🏾 man with Chinese cap: medium-dark skin tone +1F472 1F3FF ; fully-qualified # 👲🏿 man with Chinese cap: dark skin tone +1F9D5 ; fully-qualified # 🧕 woman with headscarf +1F9D5 1F3FB ; fully-qualified # 🧕🏻 woman with headscarf: light skin tone +1F9D5 1F3FC ; fully-qualified # 🧕🏼 woman with headscarf: medium-light skin tone +1F9D5 1F3FD ; fully-qualified # 🧕🏽 woman with headscarf: medium skin tone +1F9D5 1F3FE ; fully-qualified # 🧕🏾 woman with headscarf: medium-dark skin tone +1F9D5 1F3FF ; fully-qualified # 🧕🏿 woman with headscarf: dark skin tone +1F935 ; fully-qualified # 🤵 man in tuxedo +1F935 1F3FB ; fully-qualified # 🤵🏻 man in tuxedo: light skin tone +1F935 1F3FC ; fully-qualified # 🤵🏼 man in tuxedo: medium-light skin tone +1F935 1F3FD ; fully-qualified # 🤵🏽 man in tuxedo: medium skin tone +1F935 1F3FE ; fully-qualified # 🤵🏾 man in tuxedo: medium-dark skin tone +1F935 1F3FF ; fully-qualified # 🤵🏿 man in tuxedo: dark skin tone +1F470 ; fully-qualified # 👰 bride with veil +1F470 1F3FB ; fully-qualified # 👰🏻 bride with veil: light skin tone +1F470 1F3FC ; fully-qualified # 👰🏼 bride with veil: medium-light skin tone +1F470 1F3FD ; fully-qualified # 👰🏽 bride with veil: medium skin tone +1F470 1F3FE ; fully-qualified # 👰🏾 bride with veil: medium-dark skin tone +1F470 1F3FF ; fully-qualified # 👰🏿 bride with veil: dark skin tone +1F930 ; fully-qualified # 🤰 pregnant woman +1F930 1F3FB ; fully-qualified # 🤰🏻 pregnant woman: light skin tone +1F930 1F3FC ; fully-qualified # 🤰🏼 pregnant woman: medium-light skin tone +1F930 1F3FD ; fully-qualified # 🤰🏽 pregnant woman: medium skin tone +1F930 1F3FE ; fully-qualified # 🤰🏾 pregnant woman: medium-dark skin tone +1F930 1F3FF ; fully-qualified # 🤰🏿 pregnant woman: dark skin tone +1F931 ; fully-qualified # 🤱 breast-feeding +1F931 1F3FB ; fully-qualified # 🤱🏻 breast-feeding: light skin tone +1F931 1F3FC ; fully-qualified # 🤱🏼 breast-feeding: medium-light skin tone +1F931 1F3FD ; fully-qualified # 🤱🏽 breast-feeding: medium skin tone +1F931 1F3FE ; fully-qualified # 🤱🏾 breast-feeding: medium-dark skin tone +1F931 1F3FF ; fully-qualified # 🤱🏿 breast-feeding: dark skin tone + +# subgroup: person-fantasy +1F47C ; fully-qualified # 👼 baby angel +1F47C 1F3FB ; fully-qualified # 👼🏻 baby angel: light skin tone +1F47C 1F3FC ; fully-qualified # 👼🏼 baby angel: medium-light skin tone +1F47C 1F3FD ; fully-qualified # 👼🏽 baby angel: medium skin tone +1F47C 1F3FE ; fully-qualified # 👼🏾 baby angel: medium-dark skin tone +1F47C 1F3FF ; fully-qualified # 👼🏿 baby angel: dark skin tone +1F385 ; fully-qualified # 🎅 Santa Claus +1F385 1F3FB ; fully-qualified # 🎅🏻 Santa Claus: light skin tone +1F385 1F3FC ; fully-qualified # 🎅🏼 Santa Claus: medium-light skin tone +1F385 1F3FD ; fully-qualified # 🎅🏽 Santa Claus: medium skin tone +1F385 1F3FE ; fully-qualified # 🎅🏾 Santa Claus: medium-dark skin tone +1F385 1F3FF ; fully-qualified # 🎅🏿 Santa Claus: dark skin tone +1F936 ; fully-qualified # 🤶 Mrs. Claus +1F936 1F3FB ; fully-qualified # 🤶🏻 Mrs. Claus: light skin tone +1F936 1F3FC ; fully-qualified # 🤶🏼 Mrs. Claus: medium-light skin tone +1F936 1F3FD ; fully-qualified # 🤶🏽 Mrs. Claus: medium skin tone +1F936 1F3FE ; fully-qualified # 🤶🏾 Mrs. Claus: medium-dark skin tone +1F936 1F3FF ; fully-qualified # 🤶🏿 Mrs. Claus: dark skin tone +1F9B8 ; fully-qualified # 🦸 superhero +1F9B8 1F3FB ; fully-qualified # 🦸🏻 superhero: light skin tone +1F9B8 1F3FC ; fully-qualified # 🦸🏼 superhero: medium-light skin tone +1F9B8 1F3FD ; fully-qualified # 🦸🏽 superhero: medium skin tone +1F9B8 1F3FE ; fully-qualified # 🦸🏾 superhero: medium-dark skin tone +1F9B8 1F3FF ; fully-qualified # 🦸🏿 superhero: dark skin tone +1F9B8 200D 2642 FE0F ; fully-qualified # 🦸♂️ man superhero +1F9B8 200D 2642 ; minimally-qualified # 🦸♂ man superhero +1F9B8 1F3FB 200D 2642 FE0F ; fully-qualified # 🦸🏻♂️ man superhero: light skin tone +1F9B8 1F3FB 200D 2642 ; minimally-qualified # 🦸🏻♂ man superhero: light skin tone +1F9B8 1F3FC 200D 2642 FE0F ; fully-qualified # 🦸🏼♂️ man superhero: medium-light skin tone +1F9B8 1F3FC 200D 2642 ; minimally-qualified # 🦸🏼♂ man superhero: medium-light skin tone +1F9B8 1F3FD 200D 2642 FE0F ; fully-qualified # 🦸🏽♂️ man superhero: medium skin tone +1F9B8 1F3FD 200D 2642 ; minimally-qualified # 🦸🏽♂ man superhero: medium skin tone +1F9B8 1F3FE 200D 2642 FE0F ; fully-qualified # 🦸🏾♂️ man superhero: medium-dark skin tone +1F9B8 1F3FE 200D 2642 ; minimally-qualified # 🦸🏾♂ man superhero: medium-dark skin tone +1F9B8 1F3FF 200D 2642 FE0F ; fully-qualified # 🦸🏿♂️ man superhero: dark skin tone +1F9B8 1F3FF 200D 2642 ; minimally-qualified # 🦸🏿♂ man superhero: dark skin tone +1F9B8 200D 2640 FE0F ; fully-qualified # 🦸♀️ woman superhero +1F9B8 200D 2640 ; minimally-qualified # 🦸♀ woman superhero +1F9B8 1F3FB 200D 2640 FE0F ; fully-qualified # 🦸🏻♀️ woman superhero: light skin tone +1F9B8 1F3FB 200D 2640 ; minimally-qualified # 🦸🏻♀ woman superhero: light skin tone +1F9B8 1F3FC 200D 2640 FE0F ; fully-qualified # 🦸🏼♀️ woman superhero: medium-light skin tone +1F9B8 1F3FC 200D 2640 ; minimally-qualified # 🦸🏼♀ woman superhero: medium-light skin tone +1F9B8 1F3FD 200D 2640 FE0F ; fully-qualified # 🦸🏽♀️ woman superhero: medium skin tone +1F9B8 1F3FD 200D 2640 ; minimally-qualified # 🦸🏽♀ woman superhero: medium skin tone +1F9B8 1F3FE 200D 2640 FE0F ; fully-qualified # 🦸🏾♀️ woman superhero: medium-dark skin tone +1F9B8 1F3FE 200D 2640 ; minimally-qualified # 🦸🏾♀ woman superhero: medium-dark skin tone +1F9B8 1F3FF 200D 2640 FE0F ; fully-qualified # 🦸🏿♀️ woman superhero: dark skin tone +1F9B8 1F3FF 200D 2640 ; minimally-qualified # 🦸🏿♀ woman superhero: dark skin tone +1F9B9 ; fully-qualified # 🦹 supervillain +1F9B9 1F3FB ; fully-qualified # 🦹🏻 supervillain: light skin tone +1F9B9 1F3FC ; fully-qualified # 🦹🏼 supervillain: medium-light skin tone +1F9B9 1F3FD ; fully-qualified # 🦹🏽 supervillain: medium skin tone +1F9B9 1F3FE ; fully-qualified # 🦹🏾 supervillain: medium-dark skin tone +1F9B9 1F3FF ; fully-qualified # 🦹🏿 supervillain: dark skin tone +1F9B9 200D 2642 FE0F ; fully-qualified # 🦹♂️ man supervillain +1F9B9 200D 2642 ; minimally-qualified # 🦹♂ man supervillain +1F9B9 1F3FB 200D 2642 FE0F ; fully-qualified # 🦹🏻♂️ man supervillain: light skin tone +1F9B9 1F3FB 200D 2642 ; minimally-qualified # 🦹🏻♂ man supervillain: light skin tone +1F9B9 1F3FC 200D 2642 FE0F ; fully-qualified # 🦹🏼♂️ man supervillain: medium-light skin tone +1F9B9 1F3FC 200D 2642 ; minimally-qualified # 🦹🏼♂ man supervillain: medium-light skin tone +1F9B9 1F3FD 200D 2642 FE0F ; fully-qualified # 🦹🏽♂️ man supervillain: medium skin tone +1F9B9 1F3FD 200D 2642 ; minimally-qualified # 🦹🏽♂ man supervillain: medium skin tone +1F9B9 1F3FE 200D 2642 FE0F ; fully-qualified # 🦹🏾♂️ man supervillain: medium-dark skin tone +1F9B9 1F3FE 200D 2642 ; minimally-qualified # 🦹🏾♂ man supervillain: medium-dark skin tone +1F9B9 1F3FF 200D 2642 FE0F ; fully-qualified # 🦹🏿♂️ man supervillain: dark skin tone +1F9B9 1F3FF 200D 2642 ; minimally-qualified # 🦹🏿♂ man supervillain: dark skin tone +1F9B9 200D 2640 FE0F ; fully-qualified # 🦹♀️ woman supervillain +1F9B9 200D 2640 ; minimally-qualified # 🦹♀ woman supervillain +1F9B9 1F3FB 200D 2640 FE0F ; fully-qualified # 🦹🏻♀️ woman supervillain: light skin tone +1F9B9 1F3FB 200D 2640 ; minimally-qualified # 🦹🏻♀ woman supervillain: light skin tone +1F9B9 1F3FC 200D 2640 FE0F ; fully-qualified # 🦹🏼♀️ woman supervillain: medium-light skin tone +1F9B9 1F3FC 200D 2640 ; minimally-qualified # 🦹🏼♀ woman supervillain: medium-light skin tone +1F9B9 1F3FD 200D 2640 FE0F ; fully-qualified # 🦹🏽♀️ woman supervillain: medium skin tone +1F9B9 1F3FD 200D 2640 ; minimally-qualified # 🦹🏽♀ woman supervillain: medium skin tone +1F9B9 1F3FE 200D 2640 FE0F ; fully-qualified # 🦹🏾♀️ woman supervillain: medium-dark skin tone +1F9B9 1F3FE 200D 2640 ; minimally-qualified # 🦹🏾♀ woman supervillain: medium-dark skin tone +1F9B9 1F3FF 200D 2640 FE0F ; fully-qualified # 🦹🏿♀️ woman supervillain: dark skin tone +1F9B9 1F3FF 200D 2640 ; minimally-qualified # 🦹🏿♀ woman supervillain: dark skin tone +1F9D9 ; fully-qualified # 🧙 mage +1F9D9 1F3FB ; fully-qualified # 🧙🏻 mage: light skin tone +1F9D9 1F3FC ; fully-qualified # 🧙🏼 mage: medium-light skin tone +1F9D9 1F3FD ; fully-qualified # 🧙🏽 mage: medium skin tone +1F9D9 1F3FE ; fully-qualified # 🧙🏾 mage: medium-dark skin tone +1F9D9 1F3FF ; fully-qualified # 🧙🏿 mage: dark skin tone +1F9D9 200D 2642 FE0F ; fully-qualified # 🧙♂️ man mage +1F9D9 200D 2642 ; minimally-qualified # 🧙♂ man mage +1F9D9 1F3FB 200D 2642 FE0F ; fully-qualified # 🧙🏻♂️ man mage: light skin tone +1F9D9 1F3FB 200D 2642 ; minimally-qualified # 🧙🏻♂ man mage: light skin tone +1F9D9 1F3FC 200D 2642 FE0F ; fully-qualified # 🧙🏼♂️ man mage: medium-light skin tone +1F9D9 1F3FC 200D 2642 ; minimally-qualified # 🧙🏼♂ man mage: medium-light skin tone +1F9D9 1F3FD 200D 2642 FE0F ; fully-qualified # 🧙🏽♂️ man mage: medium skin tone +1F9D9 1F3FD 200D 2642 ; minimally-qualified # 🧙🏽♂ man mage: medium skin tone +1F9D9 1F3FE 200D 2642 FE0F ; fully-qualified # 🧙🏾♂️ man mage: medium-dark skin tone +1F9D9 1F3FE 200D 2642 ; minimally-qualified # 🧙🏾♂ man mage: medium-dark skin tone +1F9D9 1F3FF 200D 2642 FE0F ; fully-qualified # 🧙🏿♂️ man mage: dark skin tone +1F9D9 1F3FF 200D 2642 ; minimally-qualified # 🧙🏿♂ man mage: dark skin tone +1F9D9 200D 2640 FE0F ; fully-qualified # 🧙♀️ woman mage +1F9D9 200D 2640 ; minimally-qualified # 🧙♀ woman mage +1F9D9 1F3FB 200D 2640 FE0F ; fully-qualified # 🧙🏻♀️ woman mage: light skin tone +1F9D9 1F3FB 200D 2640 ; minimally-qualified # 🧙🏻♀ woman mage: light skin tone +1F9D9 1F3FC 200D 2640 FE0F ; fully-qualified # 🧙🏼♀️ woman mage: medium-light skin tone +1F9D9 1F3FC 200D 2640 ; minimally-qualified # 🧙🏼♀ woman mage: medium-light skin tone +1F9D9 1F3FD 200D 2640 FE0F ; fully-qualified # 🧙🏽♀️ woman mage: medium skin tone +1F9D9 1F3FD 200D 2640 ; minimally-qualified # 🧙🏽♀ woman mage: medium skin tone +1F9D9 1F3FE 200D 2640 FE0F ; fully-qualified # 🧙🏾♀️ woman mage: medium-dark skin tone +1F9D9 1F3FE 200D 2640 ; minimally-qualified # 🧙🏾♀ woman mage: medium-dark skin tone +1F9D9 1F3FF 200D 2640 FE0F ; fully-qualified # 🧙🏿♀️ woman mage: dark skin tone +1F9D9 1F3FF 200D 2640 ; minimally-qualified # 🧙🏿♀ woman mage: dark skin tone +1F9DA ; fully-qualified # 🧚 fairy +1F9DA 1F3FB ; fully-qualified # 🧚🏻 fairy: light skin tone +1F9DA 1F3FC ; fully-qualified # 🧚🏼 fairy: medium-light skin tone +1F9DA 1F3FD ; fully-qualified # 🧚🏽 fairy: medium skin tone +1F9DA 1F3FE ; fully-qualified # 🧚🏾 fairy: medium-dark skin tone +1F9DA 1F3FF ; fully-qualified # 🧚🏿 fairy: dark skin tone +1F9DA 200D 2642 FE0F ; fully-qualified # 🧚♂️ man fairy +1F9DA 200D 2642 ; minimally-qualified # 🧚♂ man fairy +1F9DA 1F3FB 200D 2642 FE0F ; fully-qualified # 🧚🏻♂️ man fairy: light skin tone +1F9DA 1F3FB 200D 2642 ; minimally-qualified # 🧚🏻♂ man fairy: light skin tone +1F9DA 1F3FC 200D 2642 FE0F ; fully-qualified # 🧚🏼♂️ man fairy: medium-light skin tone +1F9DA 1F3FC 200D 2642 ; minimally-qualified # 🧚🏼♂ man fairy: medium-light skin tone +1F9DA 1F3FD 200D 2642 FE0F ; fully-qualified # 🧚🏽♂️ man fairy: medium skin tone +1F9DA 1F3FD 200D 2642 ; minimally-qualified # 🧚🏽♂ man fairy: medium skin tone +1F9DA 1F3FE 200D 2642 FE0F ; fully-qualified # 🧚🏾♂️ man fairy: medium-dark skin tone +1F9DA 1F3FE 200D 2642 ; minimally-qualified # 🧚🏾♂ man fairy: medium-dark skin tone +1F9DA 1F3FF 200D 2642 FE0F ; fully-qualified # 🧚🏿♂️ man fairy: dark skin tone +1F9DA 1F3FF 200D 2642 ; minimally-qualified # 🧚🏿♂ man fairy: dark skin tone +1F9DA 200D 2640 FE0F ; fully-qualified # 🧚♀️ woman fairy +1F9DA 200D 2640 ; minimally-qualified # 🧚♀ woman fairy +1F9DA 1F3FB 200D 2640 FE0F ; fully-qualified # 🧚🏻♀️ woman fairy: light skin tone +1F9DA 1F3FB 200D 2640 ; minimally-qualified # 🧚🏻♀ woman fairy: light skin tone +1F9DA 1F3FC 200D 2640 FE0F ; fully-qualified # 🧚🏼♀️ woman fairy: medium-light skin tone +1F9DA 1F3FC 200D 2640 ; minimally-qualified # 🧚🏼♀ woman fairy: medium-light skin tone +1F9DA 1F3FD 200D 2640 FE0F ; fully-qualified # 🧚🏽♀️ woman fairy: medium skin tone +1F9DA 1F3FD 200D 2640 ; minimally-qualified # 🧚🏽♀ woman fairy: medium skin tone +1F9DA 1F3FE 200D 2640 FE0F ; fully-qualified # 🧚🏾♀️ woman fairy: medium-dark skin tone +1F9DA 1F3FE 200D 2640 ; minimally-qualified # 🧚🏾♀ woman fairy: medium-dark skin tone +1F9DA 1F3FF 200D 2640 FE0F ; fully-qualified # 🧚🏿♀️ woman fairy: dark skin tone +1F9DA 1F3FF 200D 2640 ; minimally-qualified # 🧚🏿♀ woman fairy: dark skin tone +1F9DB ; fully-qualified # 🧛 vampire +1F9DB 1F3FB ; fully-qualified # 🧛🏻 vampire: light skin tone +1F9DB 1F3FC ; fully-qualified # 🧛🏼 vampire: medium-light skin tone +1F9DB 1F3FD ; fully-qualified # 🧛🏽 vampire: medium skin tone +1F9DB 1F3FE ; fully-qualified # 🧛🏾 vampire: medium-dark skin tone +1F9DB 1F3FF ; fully-qualified # 🧛🏿 vampire: dark skin tone +1F9DB 200D 2642 FE0F ; fully-qualified # 🧛♂️ man vampire +1F9DB 200D 2642 ; minimally-qualified # 🧛♂ man vampire +1F9DB 1F3FB 200D 2642 FE0F ; fully-qualified # 🧛🏻♂️ man vampire: light skin tone +1F9DB 1F3FB 200D 2642 ; minimally-qualified # 🧛🏻♂ man vampire: light skin tone +1F9DB 1F3FC 200D 2642 FE0F ; fully-qualified # 🧛🏼♂️ man vampire: medium-light skin tone +1F9DB 1F3FC 200D 2642 ; minimally-qualified # 🧛🏼♂ man vampire: medium-light skin tone +1F9DB 1F3FD 200D 2642 FE0F ; fully-qualified # 🧛🏽♂️ man vampire: medium skin tone +1F9DB 1F3FD 200D 2642 ; minimally-qualified # 🧛🏽♂ man vampire: medium skin tone +1F9DB 1F3FE 200D 2642 FE0F ; fully-qualified # 🧛🏾♂️ man vampire: medium-dark skin tone +1F9DB 1F3FE 200D 2642 ; minimally-qualified # 🧛🏾♂ man vampire: medium-dark skin tone +1F9DB 1F3FF 200D 2642 FE0F ; fully-qualified # 🧛🏿♂️ man vampire: dark skin tone +1F9DB 1F3FF 200D 2642 ; minimally-qualified # 🧛🏿♂ man vampire: dark skin tone +1F9DB 200D 2640 FE0F ; fully-qualified # 🧛♀️ woman vampire +1F9DB 200D 2640 ; minimally-qualified # 🧛♀ woman vampire +1F9DB 1F3FB 200D 2640 FE0F ; fully-qualified # 🧛🏻♀️ woman vampire: light skin tone +1F9DB 1F3FB 200D 2640 ; minimally-qualified # 🧛🏻♀ woman vampire: light skin tone +1F9DB 1F3FC 200D 2640 FE0F ; fully-qualified # 🧛🏼♀️ woman vampire: medium-light skin tone +1F9DB 1F3FC 200D 2640 ; minimally-qualified # 🧛🏼♀ woman vampire: medium-light skin tone +1F9DB 1F3FD 200D 2640 FE0F ; fully-qualified # 🧛🏽♀️ woman vampire: medium skin tone +1F9DB 1F3FD 200D 2640 ; minimally-qualified # 🧛🏽♀ woman vampire: medium skin tone +1F9DB 1F3FE 200D 2640 FE0F ; fully-qualified # 🧛🏾♀️ woman vampire: medium-dark skin tone +1F9DB 1F3FE 200D 2640 ; minimally-qualified # 🧛🏾♀ woman vampire: medium-dark skin tone +1F9DB 1F3FF 200D 2640 FE0F ; fully-qualified # 🧛🏿♀️ woman vampire: dark skin tone +1F9DB 1F3FF 200D 2640 ; minimally-qualified # 🧛🏿♀ woman vampire: dark skin tone +1F9DC ; fully-qualified # 🧜 merperson +1F9DC 1F3FB ; fully-qualified # 🧜🏻 merperson: light skin tone +1F9DC 1F3FC ; fully-qualified # 🧜🏼 merperson: medium-light skin tone +1F9DC 1F3FD ; fully-qualified # 🧜🏽 merperson: medium skin tone +1F9DC 1F3FE ; fully-qualified # 🧜🏾 merperson: medium-dark skin tone +1F9DC 1F3FF ; fully-qualified # 🧜🏿 merperson: dark skin tone +1F9DC 200D 2642 FE0F ; fully-qualified # 🧜♂️ merman +1F9DC 200D 2642 ; minimally-qualified # 🧜♂ merman +1F9DC 1F3FB 200D 2642 FE0F ; fully-qualified # 🧜🏻♂️ merman: light skin tone +1F9DC 1F3FB 200D 2642 ; minimally-qualified # 🧜🏻♂ merman: light skin tone +1F9DC 1F3FC 200D 2642 FE0F ; fully-qualified # 🧜🏼♂️ merman: medium-light skin tone +1F9DC 1F3FC 200D 2642 ; minimally-qualified # 🧜🏼♂ merman: medium-light skin tone +1F9DC 1F3FD 200D 2642 FE0F ; fully-qualified # 🧜🏽♂️ merman: medium skin tone +1F9DC 1F3FD 200D 2642 ; minimally-qualified # 🧜🏽♂ merman: medium skin tone +1F9DC 1F3FE 200D 2642 FE0F ; fully-qualified # 🧜🏾♂️ merman: medium-dark skin tone +1F9DC 1F3FE 200D 2642 ; minimally-qualified # 🧜🏾♂ merman: medium-dark skin tone +1F9DC 1F3FF 200D 2642 FE0F ; fully-qualified # 🧜🏿♂️ merman: dark skin tone +1F9DC 1F3FF 200D 2642 ; minimally-qualified # 🧜🏿♂ merman: dark skin tone +1F9DC 200D 2640 FE0F ; fully-qualified # 🧜♀️ mermaid +1F9DC 200D 2640 ; minimally-qualified # 🧜♀ mermaid +1F9DC 1F3FB 200D 2640 FE0F ; fully-qualified # 🧜🏻♀️ mermaid: light skin tone +1F9DC 1F3FB 200D 2640 ; minimally-qualified # 🧜🏻♀ mermaid: light skin tone +1F9DC 1F3FC 200D 2640 FE0F ; fully-qualified # 🧜🏼♀️ mermaid: medium-light skin tone +1F9DC 1F3FC 200D 2640 ; minimally-qualified # 🧜🏼♀ mermaid: medium-light skin tone +1F9DC 1F3FD 200D 2640 FE0F ; fully-qualified # 🧜🏽♀️ mermaid: medium skin tone +1F9DC 1F3FD 200D 2640 ; minimally-qualified # 🧜🏽♀ mermaid: medium skin tone +1F9DC 1F3FE 200D 2640 FE0F ; fully-qualified # 🧜🏾♀️ mermaid: medium-dark skin tone +1F9DC 1F3FE 200D 2640 ; minimally-qualified # 🧜🏾♀ mermaid: medium-dark skin tone +1F9DC 1F3FF 200D 2640 FE0F ; fully-qualified # 🧜🏿♀️ mermaid: dark skin tone +1F9DC 1F3FF 200D 2640 ; minimally-qualified # 🧜🏿♀ mermaid: dark skin tone +1F9DD ; fully-qualified # 🧝 elf +1F9DD 1F3FB ; fully-qualified # 🧝🏻 elf: light skin tone +1F9DD 1F3FC ; fully-qualified # 🧝🏼 elf: medium-light skin tone +1F9DD 1F3FD ; fully-qualified # 🧝🏽 elf: medium skin tone +1F9DD 1F3FE ; fully-qualified # 🧝🏾 elf: medium-dark skin tone +1F9DD 1F3FF ; fully-qualified # 🧝🏿 elf: dark skin tone +1F9DD 200D 2642 FE0F ; fully-qualified # 🧝♂️ man elf +1F9DD 200D 2642 ; minimally-qualified # 🧝♂ man elf +1F9DD 1F3FB 200D 2642 FE0F ; fully-qualified # 🧝🏻♂️ man elf: light skin tone +1F9DD 1F3FB 200D 2642 ; minimally-qualified # 🧝🏻♂ man elf: light skin tone +1F9DD 1F3FC 200D 2642 FE0F ; fully-qualified # 🧝🏼♂️ man elf: medium-light skin tone +1F9DD 1F3FC 200D 2642 ; minimally-qualified # 🧝🏼♂ man elf: medium-light skin tone +1F9DD 1F3FD 200D 2642 FE0F ; fully-qualified # 🧝🏽♂️ man elf: medium skin tone +1F9DD 1F3FD 200D 2642 ; minimally-qualified # 🧝🏽♂ man elf: medium skin tone +1F9DD 1F3FE 200D 2642 FE0F ; fully-qualified # 🧝🏾♂️ man elf: medium-dark skin tone +1F9DD 1F3FE 200D 2642 ; minimally-qualified # 🧝🏾♂ man elf: medium-dark skin tone +1F9DD 1F3FF 200D 2642 FE0F ; fully-qualified # 🧝🏿♂️ man elf: dark skin tone +1F9DD 1F3FF 200D 2642 ; minimally-qualified # 🧝🏿♂ man elf: dark skin tone +1F9DD 200D 2640 FE0F ; fully-qualified # 🧝♀️ woman elf +1F9DD 200D 2640 ; minimally-qualified # 🧝♀ woman elf +1F9DD 1F3FB 200D 2640 FE0F ; fully-qualified # 🧝🏻♀️ woman elf: light skin tone +1F9DD 1F3FB 200D 2640 ; minimally-qualified # 🧝🏻♀ woman elf: light skin tone +1F9DD 1F3FC 200D 2640 FE0F ; fully-qualified # 🧝🏼♀️ woman elf: medium-light skin tone +1F9DD 1F3FC 200D 2640 ; minimally-qualified # 🧝🏼♀ woman elf: medium-light skin tone +1F9DD 1F3FD 200D 2640 FE0F ; fully-qualified # 🧝🏽♀️ woman elf: medium skin tone +1F9DD 1F3FD 200D 2640 ; minimally-qualified # 🧝🏽♀ woman elf: medium skin tone +1F9DD 1F3FE 200D 2640 FE0F ; fully-qualified # 🧝🏾♀️ woman elf: medium-dark skin tone +1F9DD 1F3FE 200D 2640 ; minimally-qualified # 🧝🏾♀ woman elf: medium-dark skin tone +1F9DD 1F3FF 200D 2640 FE0F ; fully-qualified # 🧝🏿♀️ woman elf: dark skin tone +1F9DD 1F3FF 200D 2640 ; minimally-qualified # 🧝🏿♀ woman elf: dark skin tone +1F9DE ; fully-qualified # 🧞 genie +1F9DE 200D 2642 FE0F ; fully-qualified # 🧞♂️ man genie +1F9DE 200D 2642 ; minimally-qualified # 🧞♂ man genie +1F9DE 200D 2640 FE0F ; fully-qualified # 🧞♀️ woman genie +1F9DE 200D 2640 ; minimally-qualified # 🧞♀ woman genie +1F9DF ; fully-qualified # 🧟 zombie +1F9DF 200D 2642 FE0F ; fully-qualified # 🧟♂️ man zombie +1F9DF 200D 2642 ; minimally-qualified # 🧟♂ man zombie +1F9DF 200D 2640 FE0F ; fully-qualified # 🧟♀️ woman zombie +1F9DF 200D 2640 ; minimally-qualified # 🧟♀ woman zombie + +# subgroup: person-activity +1F486 ; fully-qualified # 💆 person getting massage +1F486 1F3FB ; fully-qualified # 💆🏻 person getting massage: light skin tone +1F486 1F3FC ; fully-qualified # 💆🏼 person getting massage: medium-light skin tone +1F486 1F3FD ; fully-qualified # 💆🏽 person getting massage: medium skin tone +1F486 1F3FE ; fully-qualified # 💆🏾 person getting massage: medium-dark skin tone +1F486 1F3FF ; fully-qualified # 💆🏿 person getting massage: dark skin tone +1F486 200D 2642 FE0F ; fully-qualified # 💆♂️ man getting massage +1F486 200D 2642 ; minimally-qualified # 💆♂ man getting massage +1F486 1F3FB 200D 2642 FE0F ; fully-qualified # 💆🏻♂️ man getting massage: light skin tone +1F486 1F3FB 200D 2642 ; minimally-qualified # 💆🏻♂ man getting massage: light skin tone +1F486 1F3FC 200D 2642 FE0F ; fully-qualified # 💆🏼♂️ man getting massage: medium-light skin tone +1F486 1F3FC 200D 2642 ; minimally-qualified # 💆🏼♂ man getting massage: medium-light skin tone +1F486 1F3FD 200D 2642 FE0F ; fully-qualified # 💆🏽♂️ man getting massage: medium skin tone +1F486 1F3FD 200D 2642 ; minimally-qualified # 💆🏽♂ man getting massage: medium skin tone +1F486 1F3FE 200D 2642 FE0F ; fully-qualified # 💆🏾♂️ man getting massage: medium-dark skin tone +1F486 1F3FE 200D 2642 ; minimally-qualified # 💆🏾♂ man getting massage: medium-dark skin tone +1F486 1F3FF 200D 2642 FE0F ; fully-qualified # 💆🏿♂️ man getting massage: dark skin tone +1F486 1F3FF 200D 2642 ; minimally-qualified # 💆🏿♂ man getting massage: dark skin tone +1F486 200D 2640 FE0F ; fully-qualified # 💆♀️ woman getting massage +1F486 200D 2640 ; minimally-qualified # 💆♀ woman getting massage +1F486 1F3FB 200D 2640 FE0F ; fully-qualified # 💆🏻♀️ woman getting massage: light skin tone +1F486 1F3FB 200D 2640 ; minimally-qualified # 💆🏻♀ woman getting massage: light skin tone +1F486 1F3FC 200D 2640 FE0F ; fully-qualified # 💆🏼♀️ woman getting massage: medium-light skin tone +1F486 1F3FC 200D 2640 ; minimally-qualified # 💆🏼♀ woman getting massage: medium-light skin tone +1F486 1F3FD 200D 2640 FE0F ; fully-qualified # 💆🏽♀️ woman getting massage: medium skin tone +1F486 1F3FD 200D 2640 ; minimally-qualified # 💆🏽♀ woman getting massage: medium skin tone +1F486 1F3FE 200D 2640 FE0F ; fully-qualified # 💆🏾♀️ woman getting massage: medium-dark skin tone +1F486 1F3FE 200D 2640 ; minimally-qualified # 💆🏾♀ woman getting massage: medium-dark skin tone +1F486 1F3FF 200D 2640 FE0F ; fully-qualified # 💆🏿♀️ woman getting massage: dark skin tone +1F486 1F3FF 200D 2640 ; minimally-qualified # 💆🏿♀ woman getting massage: dark skin tone +1F487 ; fully-qualified # 💇 person getting haircut +1F487 1F3FB ; fully-qualified # 💇🏻 person getting haircut: light skin tone +1F487 1F3FC ; fully-qualified # 💇🏼 person getting haircut: medium-light skin tone +1F487 1F3FD ; fully-qualified # 💇🏽 person getting haircut: medium skin tone +1F487 1F3FE ; fully-qualified # 💇🏾 person getting haircut: medium-dark skin tone +1F487 1F3FF ; fully-qualified # 💇🏿 person getting haircut: dark skin tone +1F487 200D 2642 FE0F ; fully-qualified # 💇♂️ man getting haircut +1F487 200D 2642 ; minimally-qualified # 💇♂ man getting haircut +1F487 1F3FB 200D 2642 FE0F ; fully-qualified # 💇🏻♂️ man getting haircut: light skin tone +1F487 1F3FB 200D 2642 ; minimally-qualified # 💇🏻♂ man getting haircut: light skin tone +1F487 1F3FC 200D 2642 FE0F ; fully-qualified # 💇🏼♂️ man getting haircut: medium-light skin tone +1F487 1F3FC 200D 2642 ; minimally-qualified # 💇🏼♂ man getting haircut: medium-light skin tone +1F487 1F3FD 200D 2642 FE0F ; fully-qualified # 💇🏽♂️ man getting haircut: medium skin tone +1F487 1F3FD 200D 2642 ; minimally-qualified # 💇🏽♂ man getting haircut: medium skin tone +1F487 1F3FE 200D 2642 FE0F ; fully-qualified # 💇🏾♂️ man getting haircut: medium-dark skin tone +1F487 1F3FE 200D 2642 ; minimally-qualified # 💇🏾♂ man getting haircut: medium-dark skin tone +1F487 1F3FF 200D 2642 FE0F ; fully-qualified # 💇🏿♂️ man getting haircut: dark skin tone +1F487 1F3FF 200D 2642 ; minimally-qualified # 💇🏿♂ man getting haircut: dark skin tone +1F487 200D 2640 FE0F ; fully-qualified # 💇♀️ woman getting haircut +1F487 200D 2640 ; minimally-qualified # 💇♀ woman getting haircut +1F487 1F3FB 200D 2640 FE0F ; fully-qualified # 💇🏻♀️ woman getting haircut: light skin tone +1F487 1F3FB 200D 2640 ; minimally-qualified # 💇🏻♀ woman getting haircut: light skin tone +1F487 1F3FC 200D 2640 FE0F ; fully-qualified # 💇🏼♀️ woman getting haircut: medium-light skin tone +1F487 1F3FC 200D 2640 ; minimally-qualified # 💇🏼♀ woman getting haircut: medium-light skin tone +1F487 1F3FD 200D 2640 FE0F ; fully-qualified # 💇🏽♀️ woman getting haircut: medium skin tone +1F487 1F3FD 200D 2640 ; minimally-qualified # 💇🏽♀ woman getting haircut: medium skin tone +1F487 1F3FE 200D 2640 FE0F ; fully-qualified # 💇🏾♀️ woman getting haircut: medium-dark skin tone +1F487 1F3FE 200D 2640 ; minimally-qualified # 💇🏾♀ woman getting haircut: medium-dark skin tone +1F487 1F3FF 200D 2640 FE0F ; fully-qualified # 💇🏿♀️ woman getting haircut: dark skin tone +1F487 1F3FF 200D 2640 ; minimally-qualified # 💇🏿♀ woman getting haircut: dark skin tone +1F6B6 ; fully-qualified # 🚶 person walking +1F6B6 1F3FB ; fully-qualified # 🚶🏻 person walking: light skin tone +1F6B6 1F3FC ; fully-qualified # 🚶🏼 person walking: medium-light skin tone +1F6B6 1F3FD ; fully-qualified # 🚶🏽 person walking: medium skin tone +1F6B6 1F3FE ; fully-qualified # 🚶🏾 person walking: medium-dark skin tone +1F6B6 1F3FF ; fully-qualified # 🚶🏿 person walking: dark skin tone +1F6B6 200D 2642 FE0F ; fully-qualified # 🚶♂️ man walking +1F6B6 200D 2642 ; minimally-qualified # 🚶♂ man walking +1F6B6 1F3FB 200D 2642 FE0F ; fully-qualified # 🚶🏻♂️ man walking: light skin tone +1F6B6 1F3FB 200D 2642 ; minimally-qualified # 🚶🏻♂ man walking: light skin tone +1F6B6 1F3FC 200D 2642 FE0F ; fully-qualified # 🚶🏼♂️ man walking: medium-light skin tone +1F6B6 1F3FC 200D 2642 ; minimally-qualified # 🚶🏼♂ man walking: medium-light skin tone +1F6B6 1F3FD 200D 2642 FE0F ; fully-qualified # 🚶🏽♂️ man walking: medium skin tone +1F6B6 1F3FD 200D 2642 ; minimally-qualified # 🚶🏽♂ man walking: medium skin tone +1F6B6 1F3FE 200D 2642 FE0F ; fully-qualified # 🚶🏾♂️ man walking: medium-dark skin tone +1F6B6 1F3FE 200D 2642 ; minimally-qualified # 🚶🏾♂ man walking: medium-dark skin tone +1F6B6 1F3FF 200D 2642 FE0F ; fully-qualified # 🚶🏿♂️ man walking: dark skin tone +1F6B6 1F3FF 200D 2642 ; minimally-qualified # 🚶🏿♂ man walking: dark skin tone +1F6B6 200D 2640 FE0F ; fully-qualified # 🚶♀️ woman walking +1F6B6 200D 2640 ; minimally-qualified # 🚶♀ woman walking +1F6B6 1F3FB 200D 2640 FE0F ; fully-qualified # 🚶🏻♀️ woman walking: light skin tone +1F6B6 1F3FB 200D 2640 ; minimally-qualified # 🚶🏻♀ woman walking: light skin tone +1F6B6 1F3FC 200D 2640 FE0F ; fully-qualified # 🚶🏼♀️ woman walking: medium-light skin tone +1F6B6 1F3FC 200D 2640 ; minimally-qualified # 🚶🏼♀ woman walking: medium-light skin tone +1F6B6 1F3FD 200D 2640 FE0F ; fully-qualified # 🚶🏽♀️ woman walking: medium skin tone +1F6B6 1F3FD 200D 2640 ; minimally-qualified # 🚶🏽♀ woman walking: medium skin tone +1F6B6 1F3FE 200D 2640 FE0F ; fully-qualified # 🚶🏾♀️ woman walking: medium-dark skin tone +1F6B6 1F3FE 200D 2640 ; minimally-qualified # 🚶🏾♀ woman walking: medium-dark skin tone +1F6B6 1F3FF 200D 2640 FE0F ; fully-qualified # 🚶🏿♀️ woman walking: dark skin tone +1F6B6 1F3FF 200D 2640 ; minimally-qualified # 🚶🏿♀ woman walking: dark skin tone +1F9CD ; fully-qualified # 🧍 person standing +1F9CD 1F3FB ; fully-qualified # 🧍🏻 person standing: light skin tone +1F9CD 1F3FC ; fully-qualified # 🧍🏼 person standing: medium-light skin tone +1F9CD 1F3FD ; fully-qualified # 🧍🏽 person standing: medium skin tone +1F9CD 1F3FE ; fully-qualified # 🧍🏾 person standing: medium-dark skin tone +1F9CD 1F3FF ; fully-qualified # 🧍🏿 person standing: dark skin tone +1F9CD 200D 2642 FE0F ; fully-qualified # 🧍♂️ man standing +1F9CD 200D 2642 ; minimally-qualified # 🧍♂ man standing +1F9CD 1F3FB 200D 2642 FE0F ; fully-qualified # 🧍🏻♂️ man standing: light skin tone +1F9CD 1F3FB 200D 2642 ; minimally-qualified # 🧍🏻♂ man standing: light skin tone +1F9CD 1F3FC 200D 2642 FE0F ; fully-qualified # 🧍🏼♂️ man standing: medium-light skin tone +1F9CD 1F3FC 200D 2642 ; minimally-qualified # 🧍🏼♂ man standing: medium-light skin tone +1F9CD 1F3FD 200D 2642 FE0F ; fully-qualified # 🧍🏽♂️ man standing: medium skin tone +1F9CD 1F3FD 200D 2642 ; minimally-qualified # 🧍🏽♂ man standing: medium skin tone +1F9CD 1F3FE 200D 2642 FE0F ; fully-qualified # 🧍🏾♂️ man standing: medium-dark skin tone +1F9CD 1F3FE 200D 2642 ; minimally-qualified # 🧍🏾♂ man standing: medium-dark skin tone +1F9CD 1F3FF 200D 2642 FE0F ; fully-qualified # 🧍🏿♂️ man standing: dark skin tone +1F9CD 1F3FF 200D 2642 ; minimally-qualified # 🧍🏿♂ man standing: dark skin tone +1F9CD 200D 2640 FE0F ; fully-qualified # 🧍♀️ woman standing +1F9CD 200D 2640 ; minimally-qualified # 🧍♀ woman standing +1F9CD 1F3FB 200D 2640 FE0F ; fully-qualified # 🧍🏻♀️ woman standing: light skin tone +1F9CD 1F3FB 200D 2640 ; minimally-qualified # 🧍🏻♀ woman standing: light skin tone +1F9CD 1F3FC 200D 2640 FE0F ; fully-qualified # 🧍🏼♀️ woman standing: medium-light skin tone +1F9CD 1F3FC 200D 2640 ; minimally-qualified # 🧍🏼♀ woman standing: medium-light skin tone +1F9CD 1F3FD 200D 2640 FE0F ; fully-qualified # 🧍🏽♀️ woman standing: medium skin tone +1F9CD 1F3FD 200D 2640 ; minimally-qualified # 🧍🏽♀ woman standing: medium skin tone +1F9CD 1F3FE 200D 2640 FE0F ; fully-qualified # 🧍🏾♀️ woman standing: medium-dark skin tone +1F9CD 1F3FE 200D 2640 ; minimally-qualified # 🧍🏾♀ woman standing: medium-dark skin tone +1F9CD 1F3FF 200D 2640 FE0F ; fully-qualified # 🧍🏿♀️ woman standing: dark skin tone +1F9CD 1F3FF 200D 2640 ; minimally-qualified # 🧍🏿♀ woman standing: dark skin tone +1F9CE ; fully-qualified # 🧎 person kneeling +1F9CE 1F3FB ; fully-qualified # 🧎🏻 person kneeling: light skin tone +1F9CE 1F3FC ; fully-qualified # 🧎🏼 person kneeling: medium-light skin tone +1F9CE 1F3FD ; fully-qualified # 🧎🏽 person kneeling: medium skin tone +1F9CE 1F3FE ; fully-qualified # 🧎🏾 person kneeling: medium-dark skin tone +1F9CE 1F3FF ; fully-qualified # 🧎🏿 person kneeling: dark skin tone +1F9CE 200D 2642 FE0F ; fully-qualified # 🧎♂️ man kneeling +1F9CE 200D 2642 ; minimally-qualified # 🧎♂ man kneeling +1F9CE 1F3FB 200D 2642 FE0F ; fully-qualified # 🧎🏻♂️ man kneeling: light skin tone +1F9CE 1F3FB 200D 2642 ; minimally-qualified # 🧎🏻♂ man kneeling: light skin tone +1F9CE 1F3FC 200D 2642 FE0F ; fully-qualified # 🧎🏼♂️ man kneeling: medium-light skin tone +1F9CE 1F3FC 200D 2642 ; minimally-qualified # 🧎🏼♂ man kneeling: medium-light skin tone +1F9CE 1F3FD 200D 2642 FE0F ; fully-qualified # 🧎🏽♂️ man kneeling: medium skin tone +1F9CE 1F3FD 200D 2642 ; minimally-qualified # 🧎🏽♂ man kneeling: medium skin tone +1F9CE 1F3FE 200D 2642 FE0F ; fully-qualified # 🧎🏾♂️ man kneeling: medium-dark skin tone +1F9CE 1F3FE 200D 2642 ; minimally-qualified # 🧎🏾♂ man kneeling: medium-dark skin tone +1F9CE 1F3FF 200D 2642 FE0F ; fully-qualified # 🧎🏿♂️ man kneeling: dark skin tone +1F9CE 1F3FF 200D 2642 ; minimally-qualified # 🧎🏿♂ man kneeling: dark skin tone +1F9CE 200D 2640 FE0F ; fully-qualified # 🧎♀️ woman kneeling +1F9CE 200D 2640 ; minimally-qualified # 🧎♀ woman kneeling +1F9CE 1F3FB 200D 2640 FE0F ; fully-qualified # 🧎🏻♀️ woman kneeling: light skin tone +1F9CE 1F3FB 200D 2640 ; minimally-qualified # 🧎🏻♀ woman kneeling: light skin tone +1F9CE 1F3FC 200D 2640 FE0F ; fully-qualified # 🧎🏼♀️ woman kneeling: medium-light skin tone +1F9CE 1F3FC 200D 2640 ; minimally-qualified # 🧎🏼♀ woman kneeling: medium-light skin tone +1F9CE 1F3FD 200D 2640 FE0F ; fully-qualified # 🧎🏽♀️ woman kneeling: medium skin tone +1F9CE 1F3FD 200D 2640 ; minimally-qualified # 🧎🏽♀ woman kneeling: medium skin tone +1F9CE 1F3FE 200D 2640 FE0F ; fully-qualified # 🧎🏾♀️ woman kneeling: medium-dark skin tone +1F9CE 1F3FE 200D 2640 ; minimally-qualified # 🧎🏾♀ woman kneeling: medium-dark skin tone +1F9CE 1F3FF 200D 2640 FE0F ; fully-qualified # 🧎🏿♀️ woman kneeling: dark skin tone +1F9CE 1F3FF 200D 2640 ; minimally-qualified # 🧎🏿♀ woman kneeling: dark skin tone +1F468 200D 1F9AF ; fully-qualified # 👨🦯 man with probing cane +1F468 1F3FB 200D 1F9AF ; fully-qualified # 👨🏻🦯 man with probing cane: light skin tone +1F468 1F3FC 200D 1F9AF ; fully-qualified # 👨🏼🦯 man with probing cane: medium-light skin tone +1F468 1F3FD 200D 1F9AF ; fully-qualified # 👨🏽🦯 man with probing cane: medium skin tone +1F468 1F3FE 200D 1F9AF ; fully-qualified # 👨🏾🦯 man with probing cane: medium-dark skin tone +1F468 1F3FF 200D 1F9AF ; fully-qualified # 👨🏿🦯 man with probing cane: dark skin tone +1F469 200D 1F9AF ; fully-qualified # 👩🦯 woman with probing cane +1F469 1F3FB 200D 1F9AF ; fully-qualified # 👩🏻🦯 woman with probing cane: light skin tone +1F469 1F3FC 200D 1F9AF ; fully-qualified # 👩🏼🦯 woman with probing cane: medium-light skin tone +1F469 1F3FD 200D 1F9AF ; fully-qualified # 👩🏽🦯 woman with probing cane: medium skin tone +1F469 1F3FE 200D 1F9AF ; fully-qualified # 👩🏾🦯 woman with probing cane: medium-dark skin tone +1F469 1F3FF 200D 1F9AF ; fully-qualified # 👩🏿🦯 woman with probing cane: dark skin tone +1F468 200D 1F9BC ; fully-qualified # 👨🦼 man in motorized wheelchair +1F468 1F3FB 200D 1F9BC ; fully-qualified # 👨🏻🦼 man in motorized wheelchair: light skin tone +1F468 1F3FC 200D 1F9BC ; fully-qualified # 👨🏼🦼 man in motorized wheelchair: medium-light skin tone +1F468 1F3FD 200D 1F9BC ; fully-qualified # 👨🏽🦼 man in motorized wheelchair: medium skin tone +1F468 1F3FE 200D 1F9BC ; fully-qualified # 👨🏾🦼 man in motorized wheelchair: medium-dark skin tone +1F468 1F3FF 200D 1F9BC ; fully-qualified # 👨🏿🦼 man in motorized wheelchair: dark skin tone +1F469 200D 1F9BC ; fully-qualified # 👩🦼 woman in motorized wheelchair +1F469 1F3FB 200D 1F9BC ; fully-qualified # 👩🏻🦼 woman in motorized wheelchair: light skin tone +1F469 1F3FC 200D 1F9BC ; fully-qualified # 👩🏼🦼 woman in motorized wheelchair: medium-light skin tone +1F469 1F3FD 200D 1F9BC ; fully-qualified # 👩🏽🦼 woman in motorized wheelchair: medium skin tone +1F469 1F3FE 200D 1F9BC ; fully-qualified # 👩🏾🦼 woman in motorized wheelchair: medium-dark skin tone +1F469 1F3FF 200D 1F9BC ; fully-qualified # 👩🏿🦼 woman in motorized wheelchair: dark skin tone +1F468 200D 1F9BD ; fully-qualified # 👨🦽 man in manual wheelchair +1F468 1F3FB 200D 1F9BD ; fully-qualified # 👨🏻🦽 man in manual wheelchair: light skin tone +1F468 1F3FC 200D 1F9BD ; fully-qualified # 👨🏼🦽 man in manual wheelchair: medium-light skin tone +1F468 1F3FD 200D 1F9BD ; fully-qualified # 👨🏽🦽 man in manual wheelchair: medium skin tone +1F468 1F3FE 200D 1F9BD ; fully-qualified # 👨🏾🦽 man in manual wheelchair: medium-dark skin tone +1F468 1F3FF 200D 1F9BD ; fully-qualified # 👨🏿🦽 man in manual wheelchair: dark skin tone +1F469 200D 1F9BD ; fully-qualified # 👩🦽 woman in manual wheelchair +1F469 1F3FB 200D 1F9BD ; fully-qualified # 👩🏻🦽 woman in manual wheelchair: light skin tone +1F469 1F3FC 200D 1F9BD ; fully-qualified # 👩🏼🦽 woman in manual wheelchair: medium-light skin tone +1F469 1F3FD 200D 1F9BD ; fully-qualified # 👩🏽🦽 woman in manual wheelchair: medium skin tone +1F469 1F3FE 200D 1F9BD ; fully-qualified # 👩🏾🦽 woman in manual wheelchair: medium-dark skin tone +1F469 1F3FF 200D 1F9BD ; fully-qualified # 👩🏿🦽 woman in manual wheelchair: dark skin tone +1F3C3 ; fully-qualified # 🏃 person running +1F3C3 1F3FB ; fully-qualified # 🏃🏻 person running: light skin tone +1F3C3 1F3FC ; fully-qualified # 🏃🏼 person running: medium-light skin tone +1F3C3 1F3FD ; fully-qualified # 🏃🏽 person running: medium skin tone +1F3C3 1F3FE ; fully-qualified # 🏃🏾 person running: medium-dark skin tone +1F3C3 1F3FF ; fully-qualified # 🏃🏿 person running: dark skin tone +1F3C3 200D 2642 FE0F ; fully-qualified # 🏃♂️ man running +1F3C3 200D 2642 ; minimally-qualified # 🏃♂ man running +1F3C3 1F3FB 200D 2642 FE0F ; fully-qualified # 🏃🏻♂️ man running: light skin tone +1F3C3 1F3FB 200D 2642 ; minimally-qualified # 🏃🏻♂ man running: light skin tone +1F3C3 1F3FC 200D 2642 FE0F ; fully-qualified # 🏃🏼♂️ man running: medium-light skin tone +1F3C3 1F3FC 200D 2642 ; minimally-qualified # 🏃🏼♂ man running: medium-light skin tone +1F3C3 1F3FD 200D 2642 FE0F ; fully-qualified # 🏃🏽♂️ man running: medium skin tone +1F3C3 1F3FD 200D 2642 ; minimally-qualified # 🏃🏽♂ man running: medium skin tone +1F3C3 1F3FE 200D 2642 FE0F ; fully-qualified # 🏃🏾♂️ man running: medium-dark skin tone +1F3C3 1F3FE 200D 2642 ; minimally-qualified # 🏃🏾♂ man running: medium-dark skin tone +1F3C3 1F3FF 200D 2642 FE0F ; fully-qualified # 🏃🏿♂️ man running: dark skin tone +1F3C3 1F3FF 200D 2642 ; minimally-qualified # 🏃🏿♂ man running: dark skin tone +1F3C3 200D 2640 FE0F ; fully-qualified # 🏃♀️ woman running +1F3C3 200D 2640 ; minimally-qualified # 🏃♀ woman running +1F3C3 1F3FB 200D 2640 FE0F ; fully-qualified # 🏃🏻♀️ woman running: light skin tone +1F3C3 1F3FB 200D 2640 ; minimally-qualified # 🏃🏻♀ woman running: light skin tone +1F3C3 1F3FC 200D 2640 FE0F ; fully-qualified # 🏃🏼♀️ woman running: medium-light skin tone +1F3C3 1F3FC 200D 2640 ; minimally-qualified # 🏃🏼♀ woman running: medium-light skin tone +1F3C3 1F3FD 200D 2640 FE0F ; fully-qualified # 🏃🏽♀️ woman running: medium skin tone +1F3C3 1F3FD 200D 2640 ; minimally-qualified # 🏃🏽♀ woman running: medium skin tone +1F3C3 1F3FE 200D 2640 FE0F ; fully-qualified # 🏃🏾♀️ woman running: medium-dark skin tone +1F3C3 1F3FE 200D 2640 ; minimally-qualified # 🏃🏾♀ woman running: medium-dark skin tone +1F3C3 1F3FF 200D 2640 FE0F ; fully-qualified # 🏃🏿♀️ woman running: dark skin tone +1F3C3 1F3FF 200D 2640 ; minimally-qualified # 🏃🏿♀ woman running: dark skin tone +1F483 ; fully-qualified # 💃 woman dancing +1F483 1F3FB ; fully-qualified # 💃🏻 woman dancing: light skin tone +1F483 1F3FC ; fully-qualified # 💃🏼 woman dancing: medium-light skin tone +1F483 1F3FD ; fully-qualified # 💃🏽 woman dancing: medium skin tone +1F483 1F3FE ; fully-qualified # 💃🏾 woman dancing: medium-dark skin tone +1F483 1F3FF ; fully-qualified # 💃🏿 woman dancing: dark skin tone +1F57A ; fully-qualified # 🕺 man dancing +1F57A 1F3FB ; fully-qualified # 🕺🏻 man dancing: light skin tone +1F57A 1F3FC ; fully-qualified # 🕺🏼 man dancing: medium-light skin tone +1F57A 1F3FD ; fully-qualified # 🕺🏽 man dancing: medium skin tone +1F57A 1F3FE ; fully-qualified # 🕺🏾 man dancing: medium-dark skin tone +1F57A 1F3FF ; fully-qualified # 🕺🏿 man dancing: dark skin tone +1F574 FE0F ; fully-qualified # 🕴️ man in suit levitating +1F574 ; unqualified # 🕴 man in suit levitating +1F574 1F3FB ; fully-qualified # 🕴🏻 man in suit levitating: light skin tone +1F574 1F3FC ; fully-qualified # 🕴🏼 man in suit levitating: medium-light skin tone +1F574 1F3FD ; fully-qualified # 🕴🏽 man in suit levitating: medium skin tone +1F574 1F3FE ; fully-qualified # 🕴🏾 man in suit levitating: medium-dark skin tone +1F574 1F3FF ; fully-qualified # 🕴🏿 man in suit levitating: dark skin tone +1F46F ; fully-qualified # 👯 people with bunny ears +1F46F 200D 2642 FE0F ; fully-qualified # 👯♂️ men with bunny ears +1F46F 200D 2642 ; minimally-qualified # 👯♂ men with bunny ears +1F46F 200D 2640 FE0F ; fully-qualified # 👯♀️ women with bunny ears +1F46F 200D 2640 ; minimally-qualified # 👯♀ women with bunny ears +1F9D6 ; fully-qualified # 🧖 person in steamy room +1F9D6 1F3FB ; fully-qualified # 🧖🏻 person in steamy room: light skin tone +1F9D6 1F3FC ; fully-qualified # 🧖🏼 person in steamy room: medium-light skin tone +1F9D6 1F3FD ; fully-qualified # 🧖🏽 person in steamy room: medium skin tone +1F9D6 1F3FE ; fully-qualified # 🧖🏾 person in steamy room: medium-dark skin tone +1F9D6 1F3FF ; fully-qualified # 🧖🏿 person in steamy room: dark skin tone +1F9D6 200D 2642 FE0F ; fully-qualified # 🧖♂️ man in steamy room +1F9D6 200D 2642 ; minimally-qualified # 🧖♂ man in steamy room +1F9D6 1F3FB 200D 2642 FE0F ; fully-qualified # 🧖🏻♂️ man in steamy room: light skin tone +1F9D6 1F3FB 200D 2642 ; minimally-qualified # 🧖🏻♂ man in steamy room: light skin tone +1F9D6 1F3FC 200D 2642 FE0F ; fully-qualified # 🧖🏼♂️ man in steamy room: medium-light skin tone +1F9D6 1F3FC 200D 2642 ; minimally-qualified # 🧖🏼♂ man in steamy room: medium-light skin tone +1F9D6 1F3FD 200D 2642 FE0F ; fully-qualified # 🧖🏽♂️ man in steamy room: medium skin tone +1F9D6 1F3FD 200D 2642 ; minimally-qualified # 🧖🏽♂ man in steamy room: medium skin tone +1F9D6 1F3FE 200D 2642 FE0F ; fully-qualified # 🧖🏾♂️ man in steamy room: medium-dark skin tone +1F9D6 1F3FE 200D 2642 ; minimally-qualified # 🧖🏾♂ man in steamy room: medium-dark skin tone +1F9D6 1F3FF 200D 2642 FE0F ; fully-qualified # 🧖🏿♂️ man in steamy room: dark skin tone +1F9D6 1F3FF 200D 2642 ; minimally-qualified # 🧖🏿♂ man in steamy room: dark skin tone +1F9D6 200D 2640 FE0F ; fully-qualified # 🧖♀️ woman in steamy room +1F9D6 200D 2640 ; minimally-qualified # 🧖♀ woman in steamy room +1F9D6 1F3FB 200D 2640 FE0F ; fully-qualified # 🧖🏻♀️ woman in steamy room: light skin tone +1F9D6 1F3FB 200D 2640 ; minimally-qualified # 🧖🏻♀ woman in steamy room: light skin tone +1F9D6 1F3FC 200D 2640 FE0F ; fully-qualified # 🧖🏼♀️ woman in steamy room: medium-light skin tone +1F9D6 1F3FC 200D 2640 ; minimally-qualified # 🧖🏼♀ woman in steamy room: medium-light skin tone +1F9D6 1F3FD 200D 2640 FE0F ; fully-qualified # 🧖🏽♀️ woman in steamy room: medium skin tone +1F9D6 1F3FD 200D 2640 ; minimally-qualified # 🧖🏽♀ woman in steamy room: medium skin tone +1F9D6 1F3FE 200D 2640 FE0F ; fully-qualified # 🧖🏾♀️ woman in steamy room: medium-dark skin tone +1F9D6 1F3FE 200D 2640 ; minimally-qualified # 🧖🏾♀ woman in steamy room: medium-dark skin tone +1F9D6 1F3FF 200D 2640 FE0F ; fully-qualified # 🧖🏿♀️ woman in steamy room: dark skin tone +1F9D6 1F3FF 200D 2640 ; minimally-qualified # 🧖🏿♀ woman in steamy room: dark skin tone +1F9D7 ; fully-qualified # 🧗 person climbing +1F9D7 1F3FB ; fully-qualified # 🧗🏻 person climbing: light skin tone +1F9D7 1F3FC ; fully-qualified # 🧗🏼 person climbing: medium-light skin tone +1F9D7 1F3FD ; fully-qualified # 🧗🏽 person climbing: medium skin tone +1F9D7 1F3FE ; fully-qualified # 🧗🏾 person climbing: medium-dark skin tone +1F9D7 1F3FF ; fully-qualified # 🧗🏿 person climbing: dark skin tone +1F9D7 200D 2642 FE0F ; fully-qualified # 🧗♂️ man climbing +1F9D7 200D 2642 ; minimally-qualified # 🧗♂ man climbing +1F9D7 1F3FB 200D 2642 FE0F ; fully-qualified # 🧗🏻♂️ man climbing: light skin tone +1F9D7 1F3FB 200D 2642 ; minimally-qualified # 🧗🏻♂ man climbing: light skin tone +1F9D7 1F3FC 200D 2642 FE0F ; fully-qualified # 🧗🏼♂️ man climbing: medium-light skin tone +1F9D7 1F3FC 200D 2642 ; minimally-qualified # 🧗🏼♂ man climbing: medium-light skin tone +1F9D7 1F3FD 200D 2642 FE0F ; fully-qualified # 🧗🏽♂️ man climbing: medium skin tone +1F9D7 1F3FD 200D 2642 ; minimally-qualified # 🧗🏽♂ man climbing: medium skin tone +1F9D7 1F3FE 200D 2642 FE0F ; fully-qualified # 🧗🏾♂️ man climbing: medium-dark skin tone +1F9D7 1F3FE 200D 2642 ; minimally-qualified # 🧗🏾♂ man climbing: medium-dark skin tone +1F9D7 1F3FF 200D 2642 FE0F ; fully-qualified # 🧗🏿♂️ man climbing: dark skin tone +1F9D7 1F3FF 200D 2642 ; minimally-qualified # 🧗🏿♂ man climbing: dark skin tone +1F9D7 200D 2640 FE0F ; fully-qualified # 🧗♀️ woman climbing +1F9D7 200D 2640 ; minimally-qualified # 🧗♀ woman climbing +1F9D7 1F3FB 200D 2640 FE0F ; fully-qualified # 🧗🏻♀️ woman climbing: light skin tone +1F9D7 1F3FB 200D 2640 ; minimally-qualified # 🧗🏻♀ woman climbing: light skin tone +1F9D7 1F3FC 200D 2640 FE0F ; fully-qualified # 🧗🏼♀️ woman climbing: medium-light skin tone +1F9D7 1F3FC 200D 2640 ; minimally-qualified # 🧗🏼♀ woman climbing: medium-light skin tone +1F9D7 1F3FD 200D 2640 FE0F ; fully-qualified # 🧗🏽♀️ woman climbing: medium skin tone +1F9D7 1F3FD 200D 2640 ; minimally-qualified # 🧗🏽♀ woman climbing: medium skin tone +1F9D7 1F3FE 200D 2640 FE0F ; fully-qualified # 🧗🏾♀️ woman climbing: medium-dark skin tone +1F9D7 1F3FE 200D 2640 ; minimally-qualified # 🧗🏾♀ woman climbing: medium-dark skin tone +1F9D7 1F3FF 200D 2640 FE0F ; fully-qualified # 🧗🏿♀️ woman climbing: dark skin tone +1F9D7 1F3FF 200D 2640 ; minimally-qualified # 🧗🏿♀ woman climbing: dark skin tone + +# subgroup: person-sport +1F93A ; fully-qualified # 🤺 person fencing +1F3C7 ; fully-qualified # 🏇 horse racing +1F3C7 1F3FB ; fully-qualified # 🏇🏻 horse racing: light skin tone +1F3C7 1F3FC ; fully-qualified # 🏇🏼 horse racing: medium-light skin tone +1F3C7 1F3FD ; fully-qualified # 🏇🏽 horse racing: medium skin tone +1F3C7 1F3FE ; fully-qualified # 🏇🏾 horse racing: medium-dark skin tone +1F3C7 1F3FF ; fully-qualified # 🏇🏿 horse racing: dark skin tone +26F7 FE0F ; fully-qualified # ⛷️ skier +26F7 ; unqualified # ⛷ skier +1F3C2 ; fully-qualified # 🏂 snowboarder +1F3C2 1F3FB ; fully-qualified # 🏂🏻 snowboarder: light skin tone +1F3C2 1F3FC ; fully-qualified # 🏂🏼 snowboarder: medium-light skin tone +1F3C2 1F3FD ; fully-qualified # 🏂🏽 snowboarder: medium skin tone +1F3C2 1F3FE ; fully-qualified # 🏂🏾 snowboarder: medium-dark skin tone +1F3C2 1F3FF ; fully-qualified # 🏂🏿 snowboarder: dark skin tone +1F3CC FE0F ; fully-qualified # 🏌️ person golfing +1F3CC ; unqualified # 🏌 person golfing +1F3CC 1F3FB ; fully-qualified # 🏌🏻 person golfing: light skin tone +1F3CC 1F3FC ; fully-qualified # 🏌🏼 person golfing: medium-light skin tone +1F3CC 1F3FD ; fully-qualified # 🏌🏽 person golfing: medium skin tone +1F3CC 1F3FE ; fully-qualified # 🏌🏾 person golfing: medium-dark skin tone +1F3CC 1F3FF ; fully-qualified # 🏌🏿 person golfing: dark skin tone +1F3CC FE0F 200D 2642 FE0F ; fully-qualified # 🏌️♂️ man golfing +1F3CC 200D 2642 FE0F ; unqualified # 🏌♂️ man golfing +1F3CC FE0F 200D 2642 ; unqualified # 🏌️♂ man golfing +1F3CC 200D 2642 ; unqualified # 🏌♂ man golfing +1F3CC 1F3FB 200D 2642 FE0F ; fully-qualified # 🏌🏻♂️ man golfing: light skin tone +1F3CC 1F3FB 200D 2642 ; minimally-qualified # 🏌🏻♂ man golfing: light skin tone +1F3CC 1F3FC 200D 2642 FE0F ; fully-qualified # 🏌🏼♂️ man golfing: medium-light skin tone +1F3CC 1F3FC 200D 2642 ; minimally-qualified # 🏌🏼♂ man golfing: medium-light skin tone +1F3CC 1F3FD 200D 2642 FE0F ; fully-qualified # 🏌🏽♂️ man golfing: medium skin tone +1F3CC 1F3FD 200D 2642 ; minimally-qualified # 🏌🏽♂ man golfing: medium skin tone +1F3CC 1F3FE 200D 2642 FE0F ; fully-qualified # 🏌🏾♂️ man golfing: medium-dark skin tone +1F3CC 1F3FE 200D 2642 ; minimally-qualified # 🏌🏾♂ man golfing: medium-dark skin tone +1F3CC 1F3FF 200D 2642 FE0F ; fully-qualified # 🏌🏿♂️ man golfing: dark skin tone +1F3CC 1F3FF 200D 2642 ; minimally-qualified # 🏌🏿♂ man golfing: dark skin tone +1F3CC FE0F 200D 2640 FE0F ; fully-qualified # 🏌️♀️ woman golfing +1F3CC 200D 2640 FE0F ; unqualified # 🏌♀️ woman golfing +1F3CC FE0F 200D 2640 ; unqualified # 🏌️♀ woman golfing +1F3CC 200D 2640 ; unqualified # 🏌♀ woman golfing +1F3CC 1F3FB 200D 2640 FE0F ; fully-qualified # 🏌🏻♀️ woman golfing: light skin tone +1F3CC 1F3FB 200D 2640 ; minimally-qualified # 🏌🏻♀ woman golfing: light skin tone +1F3CC 1F3FC 200D 2640 FE0F ; fully-qualified # 🏌🏼♀️ woman golfing: medium-light skin tone +1F3CC 1F3FC 200D 2640 ; minimally-qualified # 🏌🏼♀ woman golfing: medium-light skin tone +1F3CC 1F3FD 200D 2640 FE0F ; fully-qualified # 🏌🏽♀️ woman golfing: medium skin tone +1F3CC 1F3FD 200D 2640 ; minimally-qualified # 🏌🏽♀ woman golfing: medium skin tone +1F3CC 1F3FE 200D 2640 FE0F ; fully-qualified # 🏌🏾♀️ woman golfing: medium-dark skin tone +1F3CC 1F3FE 200D 2640 ; minimally-qualified # 🏌🏾♀ woman golfing: medium-dark skin tone +1F3CC 1F3FF 200D 2640 FE0F ; fully-qualified # 🏌🏿♀️ woman golfing: dark skin tone +1F3CC 1F3FF 200D 2640 ; minimally-qualified # 🏌🏿♀ woman golfing: dark skin tone +1F3C4 ; fully-qualified # 🏄 person surfing +1F3C4 1F3FB ; fully-qualified # 🏄🏻 person surfing: light skin tone +1F3C4 1F3FC ; fully-qualified # 🏄🏼 person surfing: medium-light skin tone +1F3C4 1F3FD ; fully-qualified # 🏄🏽 person surfing: medium skin tone +1F3C4 1F3FE ; fully-qualified # 🏄🏾 person surfing: medium-dark skin tone +1F3C4 1F3FF ; fully-qualified # 🏄🏿 person surfing: dark skin tone +1F3C4 200D 2642 FE0F ; fully-qualified # 🏄♂️ man surfing +1F3C4 200D 2642 ; minimally-qualified # 🏄♂ man surfing +1F3C4 1F3FB 200D 2642 FE0F ; fully-qualified # 🏄🏻♂️ man surfing: light skin tone +1F3C4 1F3FB 200D 2642 ; minimally-qualified # 🏄🏻♂ man surfing: light skin tone +1F3C4 1F3FC 200D 2642 FE0F ; fully-qualified # 🏄🏼♂️ man surfing: medium-light skin tone +1F3C4 1F3FC 200D 2642 ; minimally-qualified # 🏄🏼♂ man surfing: medium-light skin tone +1F3C4 1F3FD 200D 2642 FE0F ; fully-qualified # 🏄🏽♂️ man surfing: medium skin tone +1F3C4 1F3FD 200D 2642 ; minimally-qualified # 🏄🏽♂ man surfing: medium skin tone +1F3C4 1F3FE 200D 2642 FE0F ; fully-qualified # 🏄🏾♂️ man surfing: medium-dark skin tone +1F3C4 1F3FE 200D 2642 ; minimally-qualified # 🏄🏾♂ man surfing: medium-dark skin tone +1F3C4 1F3FF 200D 2642 FE0F ; fully-qualified # 🏄🏿♂️ man surfing: dark skin tone +1F3C4 1F3FF 200D 2642 ; minimally-qualified # 🏄🏿♂ man surfing: dark skin tone +1F3C4 200D 2640 FE0F ; fully-qualified # 🏄♀️ woman surfing +1F3C4 200D 2640 ; minimally-qualified # 🏄♀ woman surfing +1F3C4 1F3FB 200D 2640 FE0F ; fully-qualified # 🏄🏻♀️ woman surfing: light skin tone +1F3C4 1F3FB 200D 2640 ; minimally-qualified # 🏄🏻♀ woman surfing: light skin tone +1F3C4 1F3FC 200D 2640 FE0F ; fully-qualified # 🏄🏼♀️ woman surfing: medium-light skin tone +1F3C4 1F3FC 200D 2640 ; minimally-qualified # 🏄🏼♀ woman surfing: medium-light skin tone +1F3C4 1F3FD 200D 2640 FE0F ; fully-qualified # 🏄🏽♀️ woman surfing: medium skin tone +1F3C4 1F3FD 200D 2640 ; minimally-qualified # 🏄🏽♀ woman surfing: medium skin tone +1F3C4 1F3FE 200D 2640 FE0F ; fully-qualified # 🏄🏾♀️ woman surfing: medium-dark skin tone +1F3C4 1F3FE 200D 2640 ; minimally-qualified # 🏄🏾♀ woman surfing: medium-dark skin tone +1F3C4 1F3FF 200D 2640 FE0F ; fully-qualified # 🏄🏿♀️ woman surfing: dark skin tone +1F3C4 1F3FF 200D 2640 ; minimally-qualified # 🏄🏿♀ woman surfing: dark skin tone +1F6A3 ; fully-qualified # 🚣 person rowing boat +1F6A3 1F3FB ; fully-qualified # 🚣🏻 person rowing boat: light skin tone +1F6A3 1F3FC ; fully-qualified # 🚣🏼 person rowing boat: medium-light skin tone +1F6A3 1F3FD ; fully-qualified # 🚣🏽 person rowing boat: medium skin tone +1F6A3 1F3FE ; fully-qualified # 🚣🏾 person rowing boat: medium-dark skin tone +1F6A3 1F3FF ; fully-qualified # 🚣🏿 person rowing boat: dark skin tone +1F6A3 200D 2642 FE0F ; fully-qualified # 🚣♂️ man rowing boat +1F6A3 200D 2642 ; minimally-qualified # 🚣♂ man rowing boat +1F6A3 1F3FB 200D 2642 FE0F ; fully-qualified # 🚣🏻♂️ man rowing boat: light skin tone +1F6A3 1F3FB 200D 2642 ; minimally-qualified # 🚣🏻♂ man rowing boat: light skin tone +1F6A3 1F3FC 200D 2642 FE0F ; fully-qualified # 🚣🏼♂️ man rowing boat: medium-light skin tone +1F6A3 1F3FC 200D 2642 ; minimally-qualified # 🚣🏼♂ man rowing boat: medium-light skin tone +1F6A3 1F3FD 200D 2642 FE0F ; fully-qualified # 🚣🏽♂️ man rowing boat: medium skin tone +1F6A3 1F3FD 200D 2642 ; minimally-qualified # 🚣🏽♂ man rowing boat: medium skin tone +1F6A3 1F3FE 200D 2642 FE0F ; fully-qualified # 🚣🏾♂️ man rowing boat: medium-dark skin tone +1F6A3 1F3FE 200D 2642 ; minimally-qualified # 🚣🏾♂ man rowing boat: medium-dark skin tone +1F6A3 1F3FF 200D 2642 FE0F ; fully-qualified # 🚣🏿♂️ man rowing boat: dark skin tone +1F6A3 1F3FF 200D 2642 ; minimally-qualified # 🚣🏿♂ man rowing boat: dark skin tone +1F6A3 200D 2640 FE0F ; fully-qualified # 🚣♀️ woman rowing boat +1F6A3 200D 2640 ; minimally-qualified # 🚣♀ woman rowing boat +1F6A3 1F3FB 200D 2640 FE0F ; fully-qualified # 🚣🏻♀️ woman rowing boat: light skin tone +1F6A3 1F3FB 200D 2640 ; minimally-qualified # 🚣🏻♀ woman rowing boat: light skin tone +1F6A3 1F3FC 200D 2640 FE0F ; fully-qualified # 🚣🏼♀️ woman rowing boat: medium-light skin tone +1F6A3 1F3FC 200D 2640 ; minimally-qualified # 🚣🏼♀ woman rowing boat: medium-light skin tone +1F6A3 1F3FD 200D 2640 FE0F ; fully-qualified # 🚣🏽♀️ woman rowing boat: medium skin tone +1F6A3 1F3FD 200D 2640 ; minimally-qualified # 🚣🏽♀ woman rowing boat: medium skin tone +1F6A3 1F3FE 200D 2640 FE0F ; fully-qualified # 🚣🏾♀️ woman rowing boat: medium-dark skin tone +1F6A3 1F3FE 200D 2640 ; minimally-qualified # 🚣🏾♀ woman rowing boat: medium-dark skin tone +1F6A3 1F3FF 200D 2640 FE0F ; fully-qualified # 🚣🏿♀️ woman rowing boat: dark skin tone +1F6A3 1F3FF 200D 2640 ; minimally-qualified # 🚣🏿♀ woman rowing boat: dark skin tone +1F3CA ; fully-qualified # 🏊 person swimming +1F3CA 1F3FB ; fully-qualified # 🏊🏻 person swimming: light skin tone +1F3CA 1F3FC ; fully-qualified # 🏊🏼 person swimming: medium-light skin tone +1F3CA 1F3FD ; fully-qualified # 🏊🏽 person swimming: medium skin tone +1F3CA 1F3FE ; fully-qualified # 🏊🏾 person swimming: medium-dark skin tone +1F3CA 1F3FF ; fully-qualified # 🏊🏿 person swimming: dark skin tone +1F3CA 200D 2642 FE0F ; fully-qualified # 🏊♂️ man swimming +1F3CA 200D 2642 ; minimally-qualified # 🏊♂ man swimming +1F3CA 1F3FB 200D 2642 FE0F ; fully-qualified # 🏊🏻♂️ man swimming: light skin tone +1F3CA 1F3FB 200D 2642 ; minimally-qualified # 🏊🏻♂ man swimming: light skin tone +1F3CA 1F3FC 200D 2642 FE0F ; fully-qualified # 🏊🏼♂️ man swimming: medium-light skin tone +1F3CA 1F3FC 200D 2642 ; minimally-qualified # 🏊🏼♂ man swimming: medium-light skin tone +1F3CA 1F3FD 200D 2642 FE0F ; fully-qualified # 🏊🏽♂️ man swimming: medium skin tone +1F3CA 1F3FD 200D 2642 ; minimally-qualified # 🏊🏽♂ man swimming: medium skin tone +1F3CA 1F3FE 200D 2642 FE0F ; fully-qualified # 🏊🏾♂️ man swimming: medium-dark skin tone +1F3CA 1F3FE 200D 2642 ; minimally-qualified # 🏊🏾♂ man swimming: medium-dark skin tone +1F3CA 1F3FF 200D 2642 FE0F ; fully-qualified # 🏊🏿♂️ man swimming: dark skin tone +1F3CA 1F3FF 200D 2642 ; minimally-qualified # 🏊🏿♂ man swimming: dark skin tone +1F3CA 200D 2640 FE0F ; fully-qualified # 🏊♀️ woman swimming +1F3CA 200D 2640 ; minimally-qualified # 🏊♀ woman swimming +1F3CA 1F3FB 200D 2640 FE0F ; fully-qualified # 🏊🏻♀️ woman swimming: light skin tone +1F3CA 1F3FB 200D 2640 ; minimally-qualified # 🏊🏻♀ woman swimming: light skin tone +1F3CA 1F3FC 200D 2640 FE0F ; fully-qualified # 🏊🏼♀️ woman swimming: medium-light skin tone +1F3CA 1F3FC 200D 2640 ; minimally-qualified # 🏊🏼♀ woman swimming: medium-light skin tone +1F3CA 1F3FD 200D 2640 FE0F ; fully-qualified # 🏊🏽♀️ woman swimming: medium skin tone +1F3CA 1F3FD 200D 2640 ; minimally-qualified # 🏊🏽♀ woman swimming: medium skin tone +1F3CA 1F3FE 200D 2640 FE0F ; fully-qualified # 🏊🏾♀️ woman swimming: medium-dark skin tone +1F3CA 1F3FE 200D 2640 ; minimally-qualified # 🏊🏾♀ woman swimming: medium-dark skin tone +1F3CA 1F3FF 200D 2640 FE0F ; fully-qualified # 🏊🏿♀️ woman swimming: dark skin tone +1F3CA 1F3FF 200D 2640 ; minimally-qualified # 🏊🏿♀ woman swimming: dark skin tone +26F9 FE0F ; fully-qualified # ⛹️ person bouncing ball +26F9 ; unqualified # ⛹ person bouncing ball +26F9 1F3FB ; fully-qualified # ⛹🏻 person bouncing ball: light skin tone +26F9 1F3FC ; fully-qualified # ⛹🏼 person bouncing ball: medium-light skin tone +26F9 1F3FD ; fully-qualified # ⛹🏽 person bouncing ball: medium skin tone +26F9 1F3FE ; fully-qualified # ⛹🏾 person bouncing ball: medium-dark skin tone +26F9 1F3FF ; fully-qualified # ⛹🏿 person bouncing ball: dark skin tone +26F9 FE0F 200D 2642 FE0F ; fully-qualified # ⛹️♂️ man bouncing ball +26F9 200D 2642 FE0F ; unqualified # ⛹♂️ man bouncing ball +26F9 FE0F 200D 2642 ; unqualified # ⛹️♂ man bouncing ball +26F9 200D 2642 ; unqualified # ⛹♂ man bouncing ball +26F9 1F3FB 200D 2642 FE0F ; fully-qualified # ⛹🏻♂️ man bouncing ball: light skin tone +26F9 1F3FB 200D 2642 ; minimally-qualified # ⛹🏻♂ man bouncing ball: light skin tone +26F9 1F3FC 200D 2642 FE0F ; fully-qualified # ⛹🏼♂️ man bouncing ball: medium-light skin tone +26F9 1F3FC 200D 2642 ; minimally-qualified # ⛹🏼♂ man bouncing ball: medium-light skin tone +26F9 1F3FD 200D 2642 FE0F ; fully-qualified # ⛹🏽♂️ man bouncing ball: medium skin tone +26F9 1F3FD 200D 2642 ; minimally-qualified # ⛹🏽♂ man bouncing ball: medium skin tone +26F9 1F3FE 200D 2642 FE0F ; fully-qualified # ⛹🏾♂️ man bouncing ball: medium-dark skin tone +26F9 1F3FE 200D 2642 ; minimally-qualified # ⛹🏾♂ man bouncing ball: medium-dark skin tone +26F9 1F3FF 200D 2642 FE0F ; fully-qualified # ⛹🏿♂️ man bouncing ball: dark skin tone +26F9 1F3FF 200D 2642 ; minimally-qualified # ⛹🏿♂ man bouncing ball: dark skin tone +26F9 FE0F 200D 2640 FE0F ; fully-qualified # ⛹️♀️ woman bouncing ball +26F9 200D 2640 FE0F ; unqualified # ⛹♀️ woman bouncing ball +26F9 FE0F 200D 2640 ; unqualified # ⛹️♀ woman bouncing ball +26F9 200D 2640 ; unqualified # ⛹♀ woman bouncing ball +26F9 1F3FB 200D 2640 FE0F ; fully-qualified # ⛹🏻♀️ woman bouncing ball: light skin tone +26F9 1F3FB 200D 2640 ; minimally-qualified # ⛹🏻♀ woman bouncing ball: light skin tone +26F9 1F3FC 200D 2640 FE0F ; fully-qualified # ⛹🏼♀️ woman bouncing ball: medium-light skin tone +26F9 1F3FC 200D 2640 ; minimally-qualified # ⛹🏼♀ woman bouncing ball: medium-light skin tone +26F9 1F3FD 200D 2640 FE0F ; fully-qualified # ⛹🏽♀️ woman bouncing ball: medium skin tone +26F9 1F3FD 200D 2640 ; minimally-qualified # ⛹🏽♀ woman bouncing ball: medium skin tone +26F9 1F3FE 200D 2640 FE0F ; fully-qualified # ⛹🏾♀️ woman bouncing ball: medium-dark skin tone +26F9 1F3FE 200D 2640 ; minimally-qualified # ⛹🏾♀ woman bouncing ball: medium-dark skin tone +26F9 1F3FF 200D 2640 FE0F ; fully-qualified # ⛹🏿♀️ woman bouncing ball: dark skin tone +26F9 1F3FF 200D 2640 ; minimally-qualified # ⛹🏿♀ woman bouncing ball: dark skin tone +1F3CB FE0F ; fully-qualified # 🏋️ person lifting weights +1F3CB ; unqualified # 🏋 person lifting weights +1F3CB 1F3FB ; fully-qualified # 🏋🏻 person lifting weights: light skin tone +1F3CB 1F3FC ; fully-qualified # 🏋🏼 person lifting weights: medium-light skin tone +1F3CB 1F3FD ; fully-qualified # 🏋🏽 person lifting weights: medium skin tone +1F3CB 1F3FE ; fully-qualified # 🏋🏾 person lifting weights: medium-dark skin tone +1F3CB 1F3FF ; fully-qualified # 🏋🏿 person lifting weights: dark skin tone +1F3CB FE0F 200D 2642 FE0F ; fully-qualified # 🏋️♂️ man lifting weights +1F3CB 200D 2642 FE0F ; unqualified # 🏋♂️ man lifting weights +1F3CB FE0F 200D 2642 ; unqualified # 🏋️♂ man lifting weights +1F3CB 200D 2642 ; unqualified # 🏋♂ man lifting weights +1F3CB 1F3FB 200D 2642 FE0F ; fully-qualified # 🏋🏻♂️ man lifting weights: light skin tone +1F3CB 1F3FB 200D 2642 ; minimally-qualified # 🏋🏻♂ man lifting weights: light skin tone +1F3CB 1F3FC 200D 2642 FE0F ; fully-qualified # 🏋🏼♂️ man lifting weights: medium-light skin tone +1F3CB 1F3FC 200D 2642 ; minimally-qualified # 🏋🏼♂ man lifting weights: medium-light skin tone +1F3CB 1F3FD 200D 2642 FE0F ; fully-qualified # 🏋🏽♂️ man lifting weights: medium skin tone +1F3CB 1F3FD 200D 2642 ; minimally-qualified # 🏋🏽♂ man lifting weights: medium skin tone +1F3CB 1F3FE 200D 2642 FE0F ; fully-qualified # 🏋🏾♂️ man lifting weights: medium-dark skin tone +1F3CB 1F3FE 200D 2642 ; minimally-qualified # 🏋🏾♂ man lifting weights: medium-dark skin tone +1F3CB 1F3FF 200D 2642 FE0F ; fully-qualified # 🏋🏿♂️ man lifting weights: dark skin tone +1F3CB 1F3FF 200D 2642 ; minimally-qualified # 🏋🏿♂ man lifting weights: dark skin tone +1F3CB FE0F 200D 2640 FE0F ; fully-qualified # 🏋️♀️ woman lifting weights +1F3CB 200D 2640 FE0F ; unqualified # 🏋♀️ woman lifting weights +1F3CB FE0F 200D 2640 ; unqualified # 🏋️♀ woman lifting weights +1F3CB 200D 2640 ; unqualified # 🏋♀ woman lifting weights +1F3CB 1F3FB 200D 2640 FE0F ; fully-qualified # 🏋🏻♀️ woman lifting weights: light skin tone +1F3CB 1F3FB 200D 2640 ; minimally-qualified # 🏋🏻♀ woman lifting weights: light skin tone +1F3CB 1F3FC 200D 2640 FE0F ; fully-qualified # 🏋🏼♀️ woman lifting weights: medium-light skin tone +1F3CB 1F3FC 200D 2640 ; minimally-qualified # 🏋🏼♀ woman lifting weights: medium-light skin tone +1F3CB 1F3FD 200D 2640 FE0F ; fully-qualified # 🏋🏽♀️ woman lifting weights: medium skin tone +1F3CB 1F3FD 200D 2640 ; minimally-qualified # 🏋🏽♀ woman lifting weights: medium skin tone +1F3CB 1F3FE 200D 2640 FE0F ; fully-qualified # 🏋🏾♀️ woman lifting weights: medium-dark skin tone +1F3CB 1F3FE 200D 2640 ; minimally-qualified # 🏋🏾♀ woman lifting weights: medium-dark skin tone +1F3CB 1F3FF 200D 2640 FE0F ; fully-qualified # 🏋🏿♀️ woman lifting weights: dark skin tone +1F3CB 1F3FF 200D 2640 ; minimally-qualified # 🏋🏿♀ woman lifting weights: dark skin tone +1F6B4 ; fully-qualified # 🚴 person biking +1F6B4 1F3FB ; fully-qualified # 🚴🏻 person biking: light skin tone +1F6B4 1F3FC ; fully-qualified # 🚴🏼 person biking: medium-light skin tone +1F6B4 1F3FD ; fully-qualified # 🚴🏽 person biking: medium skin tone +1F6B4 1F3FE ; fully-qualified # 🚴🏾 person biking: medium-dark skin tone +1F6B4 1F3FF ; fully-qualified # 🚴🏿 person biking: dark skin tone +1F6B4 200D 2642 FE0F ; fully-qualified # 🚴♂️ man biking +1F6B4 200D 2642 ; minimally-qualified # 🚴♂ man biking +1F6B4 1F3FB 200D 2642 FE0F ; fully-qualified # 🚴🏻♂️ man biking: light skin tone +1F6B4 1F3FB 200D 2642 ; minimally-qualified # 🚴🏻♂ man biking: light skin tone +1F6B4 1F3FC 200D 2642 FE0F ; fully-qualified # 🚴🏼♂️ man biking: medium-light skin tone +1F6B4 1F3FC 200D 2642 ; minimally-qualified # 🚴🏼♂ man biking: medium-light skin tone +1F6B4 1F3FD 200D 2642 FE0F ; fully-qualified # 🚴🏽♂️ man biking: medium skin tone +1F6B4 1F3FD 200D 2642 ; minimally-qualified # 🚴🏽♂ man biking: medium skin tone +1F6B4 1F3FE 200D 2642 FE0F ; fully-qualified # 🚴🏾♂️ man biking: medium-dark skin tone +1F6B4 1F3FE 200D 2642 ; minimally-qualified # 🚴🏾♂ man biking: medium-dark skin tone +1F6B4 1F3FF 200D 2642 FE0F ; fully-qualified # 🚴🏿♂️ man biking: dark skin tone +1F6B4 1F3FF 200D 2642 ; minimally-qualified # 🚴🏿♂ man biking: dark skin tone +1F6B4 200D 2640 FE0F ; fully-qualified # 🚴♀️ woman biking +1F6B4 200D 2640 ; minimally-qualified # 🚴♀ woman biking +1F6B4 1F3FB 200D 2640 FE0F ; fully-qualified # 🚴🏻♀️ woman biking: light skin tone +1F6B4 1F3FB 200D 2640 ; minimally-qualified # 🚴🏻♀ woman biking: light skin tone +1F6B4 1F3FC 200D 2640 FE0F ; fully-qualified # 🚴🏼♀️ woman biking: medium-light skin tone +1F6B4 1F3FC 200D 2640 ; minimally-qualified # 🚴🏼♀ woman biking: medium-light skin tone +1F6B4 1F3FD 200D 2640 FE0F ; fully-qualified # 🚴🏽♀️ woman biking: medium skin tone +1F6B4 1F3FD 200D 2640 ; minimally-qualified # 🚴🏽♀ woman biking: medium skin tone +1F6B4 1F3FE 200D 2640 FE0F ; fully-qualified # 🚴🏾♀️ woman biking: medium-dark skin tone +1F6B4 1F3FE 200D 2640 ; minimally-qualified # 🚴🏾♀ woman biking: medium-dark skin tone +1F6B4 1F3FF 200D 2640 FE0F ; fully-qualified # 🚴🏿♀️ woman biking: dark skin tone +1F6B4 1F3FF 200D 2640 ; minimally-qualified # 🚴🏿♀ woman biking: dark skin tone +1F6B5 ; fully-qualified # 🚵 person mountain biking +1F6B5 1F3FB ; fully-qualified # 🚵🏻 person mountain biking: light skin tone +1F6B5 1F3FC ; fully-qualified # 🚵🏼 person mountain biking: medium-light skin tone +1F6B5 1F3FD ; fully-qualified # 🚵🏽 person mountain biking: medium skin tone +1F6B5 1F3FE ; fully-qualified # 🚵🏾 person mountain biking: medium-dark skin tone +1F6B5 1F3FF ; fully-qualified # 🚵🏿 person mountain biking: dark skin tone +1F6B5 200D 2642 FE0F ; fully-qualified # 🚵♂️ man mountain biking +1F6B5 200D 2642 ; minimally-qualified # 🚵♂ man mountain biking +1F6B5 1F3FB 200D 2642 FE0F ; fully-qualified # 🚵🏻♂️ man mountain biking: light skin tone +1F6B5 1F3FB 200D 2642 ; minimally-qualified # 🚵🏻♂ man mountain biking: light skin tone +1F6B5 1F3FC 200D 2642 FE0F ; fully-qualified # 🚵🏼♂️ man mountain biking: medium-light skin tone +1F6B5 1F3FC 200D 2642 ; minimally-qualified # 🚵🏼♂ man mountain biking: medium-light skin tone +1F6B5 1F3FD 200D 2642 FE0F ; fully-qualified # 🚵🏽♂️ man mountain biking: medium skin tone +1F6B5 1F3FD 200D 2642 ; minimally-qualified # 🚵🏽♂ man mountain biking: medium skin tone +1F6B5 1F3FE 200D 2642 FE0F ; fully-qualified # 🚵🏾♂️ man mountain biking: medium-dark skin tone +1F6B5 1F3FE 200D 2642 ; minimally-qualified # 🚵🏾♂ man mountain biking: medium-dark skin tone +1F6B5 1F3FF 200D 2642 FE0F ; fully-qualified # 🚵🏿♂️ man mountain biking: dark skin tone +1F6B5 1F3FF 200D 2642 ; minimally-qualified # 🚵🏿♂ man mountain biking: dark skin tone +1F6B5 200D 2640 FE0F ; fully-qualified # 🚵♀️ woman mountain biking +1F6B5 200D 2640 ; minimally-qualified # 🚵♀ woman mountain biking +1F6B5 1F3FB 200D 2640 FE0F ; fully-qualified # 🚵🏻♀️ woman mountain biking: light skin tone +1F6B5 1F3FB 200D 2640 ; minimally-qualified # 🚵🏻♀ woman mountain biking: light skin tone +1F6B5 1F3FC 200D 2640 FE0F ; fully-qualified # 🚵🏼♀️ woman mountain biking: medium-light skin tone +1F6B5 1F3FC 200D 2640 ; minimally-qualified # 🚵🏼♀ woman mountain biking: medium-light skin tone +1F6B5 1F3FD 200D 2640 FE0F ; fully-qualified # 🚵🏽♀️ woman mountain biking: medium skin tone +1F6B5 1F3FD 200D 2640 ; minimally-qualified # 🚵🏽♀ woman mountain biking: medium skin tone +1F6B5 1F3FE 200D 2640 FE0F ; fully-qualified # 🚵🏾♀️ woman mountain biking: medium-dark skin tone +1F6B5 1F3FE 200D 2640 ; minimally-qualified # 🚵🏾♀ woman mountain biking: medium-dark skin tone +1F6B5 1F3FF 200D 2640 FE0F ; fully-qualified # 🚵🏿♀️ woman mountain biking: dark skin tone +1F6B5 1F3FF 200D 2640 ; minimally-qualified # 🚵🏿♀ woman mountain biking: dark skin tone +1F938 ; fully-qualified # 🤸 person cartwheeling +1F938 1F3FB ; fully-qualified # 🤸🏻 person cartwheeling: light skin tone +1F938 1F3FC ; fully-qualified # 🤸🏼 person cartwheeling: medium-light skin tone +1F938 1F3FD ; fully-qualified # 🤸🏽 person cartwheeling: medium skin tone +1F938 1F3FE ; fully-qualified # 🤸🏾 person cartwheeling: medium-dark skin tone +1F938 1F3FF ; fully-qualified # 🤸🏿 person cartwheeling: dark skin tone +1F938 200D 2642 FE0F ; fully-qualified # 🤸♂️ man cartwheeling +1F938 200D 2642 ; minimally-qualified # 🤸♂ man cartwheeling +1F938 1F3FB 200D 2642 FE0F ; fully-qualified # 🤸🏻♂️ man cartwheeling: light skin tone +1F938 1F3FB 200D 2642 ; minimally-qualified # 🤸🏻♂ man cartwheeling: light skin tone +1F938 1F3FC 200D 2642 FE0F ; fully-qualified # 🤸🏼♂️ man cartwheeling: medium-light skin tone +1F938 1F3FC 200D 2642 ; minimally-qualified # 🤸🏼♂ man cartwheeling: medium-light skin tone +1F938 1F3FD 200D 2642 FE0F ; fully-qualified # 🤸🏽♂️ man cartwheeling: medium skin tone +1F938 1F3FD 200D 2642 ; minimally-qualified # 🤸🏽♂ man cartwheeling: medium skin tone +1F938 1F3FE 200D 2642 FE0F ; fully-qualified # 🤸🏾♂️ man cartwheeling: medium-dark skin tone +1F938 1F3FE 200D 2642 ; minimally-qualified # 🤸🏾♂ man cartwheeling: medium-dark skin tone +1F938 1F3FF 200D 2642 FE0F ; fully-qualified # 🤸🏿♂️ man cartwheeling: dark skin tone +1F938 1F3FF 200D 2642 ; minimally-qualified # 🤸🏿♂ man cartwheeling: dark skin tone +1F938 200D 2640 FE0F ; fully-qualified # 🤸♀️ woman cartwheeling +1F938 200D 2640 ; minimally-qualified # 🤸♀ woman cartwheeling +1F938 1F3FB 200D 2640 FE0F ; fully-qualified # 🤸🏻♀️ woman cartwheeling: light skin tone +1F938 1F3FB 200D 2640 ; minimally-qualified # 🤸🏻♀ woman cartwheeling: light skin tone +1F938 1F3FC 200D 2640 FE0F ; fully-qualified # 🤸🏼♀️ woman cartwheeling: medium-light skin tone +1F938 1F3FC 200D 2640 ; minimally-qualified # 🤸🏼♀ woman cartwheeling: medium-light skin tone +1F938 1F3FD 200D 2640 FE0F ; fully-qualified # 🤸🏽♀️ woman cartwheeling: medium skin tone +1F938 1F3FD 200D 2640 ; minimally-qualified # 🤸🏽♀ woman cartwheeling: medium skin tone +1F938 1F3FE 200D 2640 FE0F ; fully-qualified # 🤸🏾♀️ woman cartwheeling: medium-dark skin tone +1F938 1F3FE 200D 2640 ; minimally-qualified # 🤸🏾♀ woman cartwheeling: medium-dark skin tone +1F938 1F3FF 200D 2640 FE0F ; fully-qualified # 🤸🏿♀️ woman cartwheeling: dark skin tone +1F938 1F3FF 200D 2640 ; minimally-qualified # 🤸🏿♀ woman cartwheeling: dark skin tone +1F93C ; fully-qualified # 🤼 people wrestling +1F93C 200D 2642 FE0F ; fully-qualified # 🤼♂️ men wrestling +1F93C 200D 2642 ; minimally-qualified # 🤼♂ men wrestling +1F93C 200D 2640 FE0F ; fully-qualified # 🤼♀️ women wrestling +1F93C 200D 2640 ; minimally-qualified # 🤼♀ women wrestling +1F93D ; fully-qualified # 🤽 person playing water polo +1F93D 1F3FB ; fully-qualified # 🤽🏻 person playing water polo: light skin tone +1F93D 1F3FC ; fully-qualified # 🤽🏼 person playing water polo: medium-light skin tone +1F93D 1F3FD ; fully-qualified # 🤽🏽 person playing water polo: medium skin tone +1F93D 1F3FE ; fully-qualified # 🤽🏾 person playing water polo: medium-dark skin tone +1F93D 1F3FF ; fully-qualified # 🤽🏿 person playing water polo: dark skin tone +1F93D 200D 2642 FE0F ; fully-qualified # 🤽♂️ man playing water polo +1F93D 200D 2642 ; minimally-qualified # 🤽♂ man playing water polo +1F93D 1F3FB 200D 2642 FE0F ; fully-qualified # 🤽🏻♂️ man playing water polo: light skin tone +1F93D 1F3FB 200D 2642 ; minimally-qualified # 🤽🏻♂ man playing water polo: light skin tone +1F93D 1F3FC 200D 2642 FE0F ; fully-qualified # 🤽🏼♂️ man playing water polo: medium-light skin tone +1F93D 1F3FC 200D 2642 ; minimally-qualified # 🤽🏼♂ man playing water polo: medium-light skin tone +1F93D 1F3FD 200D 2642 FE0F ; fully-qualified # 🤽🏽♂️ man playing water polo: medium skin tone +1F93D 1F3FD 200D 2642 ; minimally-qualified # 🤽🏽♂ man playing water polo: medium skin tone +1F93D 1F3FE 200D 2642 FE0F ; fully-qualified # 🤽🏾♂️ man playing water polo: medium-dark skin tone +1F93D 1F3FE 200D 2642 ; minimally-qualified # 🤽🏾♂ man playing water polo: medium-dark skin tone +1F93D 1F3FF 200D 2642 FE0F ; fully-qualified # 🤽🏿♂️ man playing water polo: dark skin tone +1F93D 1F3FF 200D 2642 ; minimally-qualified # 🤽🏿♂ man playing water polo: dark skin tone +1F93D 200D 2640 FE0F ; fully-qualified # 🤽♀️ woman playing water polo +1F93D 200D 2640 ; minimally-qualified # 🤽♀ woman playing water polo +1F93D 1F3FB 200D 2640 FE0F ; fully-qualified # 🤽🏻♀️ woman playing water polo: light skin tone +1F93D 1F3FB 200D 2640 ; minimally-qualified # 🤽🏻♀ woman playing water polo: light skin tone +1F93D 1F3FC 200D 2640 FE0F ; fully-qualified # 🤽🏼♀️ woman playing water polo: medium-light skin tone +1F93D 1F3FC 200D 2640 ; minimally-qualified # 🤽🏼♀ woman playing water polo: medium-light skin tone +1F93D 1F3FD 200D 2640 FE0F ; fully-qualified # 🤽🏽♀️ woman playing water polo: medium skin tone +1F93D 1F3FD 200D 2640 ; minimally-qualified # 🤽🏽♀ woman playing water polo: medium skin tone +1F93D 1F3FE 200D 2640 FE0F ; fully-qualified # 🤽🏾♀️ woman playing water polo: medium-dark skin tone +1F93D 1F3FE 200D 2640 ; minimally-qualified # 🤽🏾♀ woman playing water polo: medium-dark skin tone +1F93D 1F3FF 200D 2640 FE0F ; fully-qualified # 🤽🏿♀️ woman playing water polo: dark skin tone +1F93D 1F3FF 200D 2640 ; minimally-qualified # 🤽🏿♀ woman playing water polo: dark skin tone +1F93E ; fully-qualified # 🤾 person playing handball +1F93E 1F3FB ; fully-qualified # 🤾🏻 person playing handball: light skin tone +1F93E 1F3FC ; fully-qualified # 🤾🏼 person playing handball: medium-light skin tone +1F93E 1F3FD ; fully-qualified # 🤾🏽 person playing handball: medium skin tone +1F93E 1F3FE ; fully-qualified # 🤾🏾 person playing handball: medium-dark skin tone +1F93E 1F3FF ; fully-qualified # 🤾🏿 person playing handball: dark skin tone +1F93E 200D 2642 FE0F ; fully-qualified # 🤾♂️ man playing handball +1F93E 200D 2642 ; minimally-qualified # 🤾♂ man playing handball +1F93E 1F3FB 200D 2642 FE0F ; fully-qualified # 🤾🏻♂️ man playing handball: light skin tone +1F93E 1F3FB 200D 2642 ; minimally-qualified # 🤾🏻♂ man playing handball: light skin tone +1F93E 1F3FC 200D 2642 FE0F ; fully-qualified # 🤾🏼♂️ man playing handball: medium-light skin tone +1F93E 1F3FC 200D 2642 ; minimally-qualified # 🤾🏼♂ man playing handball: medium-light skin tone +1F93E 1F3FD 200D 2642 FE0F ; fully-qualified # 🤾🏽♂️ man playing handball: medium skin tone +1F93E 1F3FD 200D 2642 ; minimally-qualified # 🤾🏽♂ man playing handball: medium skin tone +1F93E 1F3FE 200D 2642 FE0F ; fully-qualified # 🤾🏾♂️ man playing handball: medium-dark skin tone +1F93E 1F3FE 200D 2642 ; minimally-qualified # 🤾🏾♂ man playing handball: medium-dark skin tone +1F93E 1F3FF 200D 2642 FE0F ; fully-qualified # 🤾🏿♂️ man playing handball: dark skin tone +1F93E 1F3FF 200D 2642 ; minimally-qualified # 🤾🏿♂ man playing handball: dark skin tone +1F93E 200D 2640 FE0F ; fully-qualified # 🤾♀️ woman playing handball +1F93E 200D 2640 ; minimally-qualified # 🤾♀ woman playing handball +1F93E 1F3FB 200D 2640 FE0F ; fully-qualified # 🤾🏻♀️ woman playing handball: light skin tone +1F93E 1F3FB 200D 2640 ; minimally-qualified # 🤾🏻♀ woman playing handball: light skin tone +1F93E 1F3FC 200D 2640 FE0F ; fully-qualified # 🤾🏼♀️ woman playing handball: medium-light skin tone +1F93E 1F3FC 200D 2640 ; minimally-qualified # 🤾🏼♀ woman playing handball: medium-light skin tone +1F93E 1F3FD 200D 2640 FE0F ; fully-qualified # 🤾🏽♀️ woman playing handball: medium skin tone +1F93E 1F3FD 200D 2640 ; minimally-qualified # 🤾🏽♀ woman playing handball: medium skin tone +1F93E 1F3FE 200D 2640 FE0F ; fully-qualified # 🤾🏾♀️ woman playing handball: medium-dark skin tone +1F93E 1F3FE 200D 2640 ; minimally-qualified # 🤾🏾♀ woman playing handball: medium-dark skin tone +1F93E 1F3FF 200D 2640 FE0F ; fully-qualified # 🤾🏿♀️ woman playing handball: dark skin tone +1F93E 1F3FF 200D 2640 ; minimally-qualified # 🤾🏿♀ woman playing handball: dark skin tone +1F939 ; fully-qualified # 🤹 person juggling +1F939 1F3FB ; fully-qualified # 🤹🏻 person juggling: light skin tone +1F939 1F3FC ; fully-qualified # 🤹🏼 person juggling: medium-light skin tone +1F939 1F3FD ; fully-qualified # 🤹🏽 person juggling: medium skin tone +1F939 1F3FE ; fully-qualified # 🤹🏾 person juggling: medium-dark skin tone +1F939 1F3FF ; fully-qualified # 🤹🏿 person juggling: dark skin tone +1F939 200D 2642 FE0F ; fully-qualified # 🤹♂️ man juggling +1F939 200D 2642 ; minimally-qualified # 🤹♂ man juggling +1F939 1F3FB 200D 2642 FE0F ; fully-qualified # 🤹🏻♂️ man juggling: light skin tone +1F939 1F3FB 200D 2642 ; minimally-qualified # 🤹🏻♂ man juggling: light skin tone +1F939 1F3FC 200D 2642 FE0F ; fully-qualified # 🤹🏼♂️ man juggling: medium-light skin tone +1F939 1F3FC 200D 2642 ; minimally-qualified # 🤹🏼♂ man juggling: medium-light skin tone +1F939 1F3FD 200D 2642 FE0F ; fully-qualified # 🤹🏽♂️ man juggling: medium skin tone +1F939 1F3FD 200D 2642 ; minimally-qualified # 🤹🏽♂ man juggling: medium skin tone +1F939 1F3FE 200D 2642 FE0F ; fully-qualified # 🤹🏾♂️ man juggling: medium-dark skin tone +1F939 1F3FE 200D 2642 ; minimally-qualified # 🤹🏾♂ man juggling: medium-dark skin tone +1F939 1F3FF 200D 2642 FE0F ; fully-qualified # 🤹🏿♂️ man juggling: dark skin tone +1F939 1F3FF 200D 2642 ; minimally-qualified # 🤹🏿♂ man juggling: dark skin tone +1F939 200D 2640 FE0F ; fully-qualified # 🤹♀️ woman juggling +1F939 200D 2640 ; minimally-qualified # 🤹♀ woman juggling +1F939 1F3FB 200D 2640 FE0F ; fully-qualified # 🤹🏻♀️ woman juggling: light skin tone +1F939 1F3FB 200D 2640 ; minimally-qualified # 🤹🏻♀ woman juggling: light skin tone +1F939 1F3FC 200D 2640 FE0F ; fully-qualified # 🤹🏼♀️ woman juggling: medium-light skin tone +1F939 1F3FC 200D 2640 ; minimally-qualified # 🤹🏼♀ woman juggling: medium-light skin tone +1F939 1F3FD 200D 2640 FE0F ; fully-qualified # 🤹🏽♀️ woman juggling: medium skin tone +1F939 1F3FD 200D 2640 ; minimally-qualified # 🤹🏽♀ woman juggling: medium skin tone +1F939 1F3FE 200D 2640 FE0F ; fully-qualified # 🤹🏾♀️ woman juggling: medium-dark skin tone +1F939 1F3FE 200D 2640 ; minimally-qualified # 🤹🏾♀ woman juggling: medium-dark skin tone +1F939 1F3FF 200D 2640 FE0F ; fully-qualified # 🤹🏿♀️ woman juggling: dark skin tone +1F939 1F3FF 200D 2640 ; minimally-qualified # 🤹🏿♀ woman juggling: dark skin tone + +# subgroup: person-resting +1F9D8 ; fully-qualified # 🧘 person in lotus position +1F9D8 1F3FB ; fully-qualified # 🧘🏻 person in lotus position: light skin tone +1F9D8 1F3FC ; fully-qualified # 🧘🏼 person in lotus position: medium-light skin tone +1F9D8 1F3FD ; fully-qualified # 🧘🏽 person in lotus position: medium skin tone +1F9D8 1F3FE ; fully-qualified # 🧘🏾 person in lotus position: medium-dark skin tone +1F9D8 1F3FF ; fully-qualified # 🧘🏿 person in lotus position: dark skin tone +1F9D8 200D 2642 FE0F ; fully-qualified # 🧘♂️ man in lotus position +1F9D8 200D 2642 ; minimally-qualified # 🧘♂ man in lotus position +1F9D8 1F3FB 200D 2642 FE0F ; fully-qualified # 🧘🏻♂️ man in lotus position: light skin tone +1F9D8 1F3FB 200D 2642 ; minimally-qualified # 🧘🏻♂ man in lotus position: light skin tone +1F9D8 1F3FC 200D 2642 FE0F ; fully-qualified # 🧘🏼♂️ man in lotus position: medium-light skin tone +1F9D8 1F3FC 200D 2642 ; minimally-qualified # 🧘🏼♂ man in lotus position: medium-light skin tone +1F9D8 1F3FD 200D 2642 FE0F ; fully-qualified # 🧘🏽♂️ man in lotus position: medium skin tone +1F9D8 1F3FD 200D 2642 ; minimally-qualified # 🧘🏽♂ man in lotus position: medium skin tone +1F9D8 1F3FE 200D 2642 FE0F ; fully-qualified # 🧘🏾♂️ man in lotus position: medium-dark skin tone +1F9D8 1F3FE 200D 2642 ; minimally-qualified # 🧘🏾♂ man in lotus position: medium-dark skin tone +1F9D8 1F3FF 200D 2642 FE0F ; fully-qualified # 🧘🏿♂️ man in lotus position: dark skin tone +1F9D8 1F3FF 200D 2642 ; minimally-qualified # 🧘🏿♂ man in lotus position: dark skin tone +1F9D8 200D 2640 FE0F ; fully-qualified # 🧘♀️ woman in lotus position +1F9D8 200D 2640 ; minimally-qualified # 🧘♀ woman in lotus position +1F9D8 1F3FB 200D 2640 FE0F ; fully-qualified # 🧘🏻♀️ woman in lotus position: light skin tone +1F9D8 1F3FB 200D 2640 ; minimally-qualified # 🧘🏻♀ woman in lotus position: light skin tone +1F9D8 1F3FC 200D 2640 FE0F ; fully-qualified # 🧘🏼♀️ woman in lotus position: medium-light skin tone +1F9D8 1F3FC 200D 2640 ; minimally-qualified # 🧘🏼♀ woman in lotus position: medium-light skin tone +1F9D8 1F3FD 200D 2640 FE0F ; fully-qualified # 🧘🏽♀️ woman in lotus position: medium skin tone +1F9D8 1F3FD 200D 2640 ; minimally-qualified # 🧘🏽♀ woman in lotus position: medium skin tone +1F9D8 1F3FE 200D 2640 FE0F ; fully-qualified # 🧘🏾♀️ woman in lotus position: medium-dark skin tone +1F9D8 1F3FE 200D 2640 ; minimally-qualified # 🧘🏾♀ woman in lotus position: medium-dark skin tone +1F9D8 1F3FF 200D 2640 FE0F ; fully-qualified # 🧘🏿♀️ woman in lotus position: dark skin tone +1F9D8 1F3FF 200D 2640 ; minimally-qualified # 🧘🏿♀ woman in lotus position: dark skin tone +1F6C0 ; fully-qualified # 🛀 person taking bath +1F6C0 1F3FB ; fully-qualified # 🛀🏻 person taking bath: light skin tone +1F6C0 1F3FC ; fully-qualified # 🛀🏼 person taking bath: medium-light skin tone +1F6C0 1F3FD ; fully-qualified # 🛀🏽 person taking bath: medium skin tone +1F6C0 1F3FE ; fully-qualified # 🛀🏾 person taking bath: medium-dark skin tone +1F6C0 1F3FF ; fully-qualified # 🛀🏿 person taking bath: dark skin tone +1F6CC ; fully-qualified # 🛌 person in bed +1F6CC 1F3FB ; fully-qualified # 🛌🏻 person in bed: light skin tone +1F6CC 1F3FC ; fully-qualified # 🛌🏼 person in bed: medium-light skin tone +1F6CC 1F3FD ; fully-qualified # 🛌🏽 person in bed: medium skin tone +1F6CC 1F3FE ; fully-qualified # 🛌🏾 person in bed: medium-dark skin tone +1F6CC 1F3FF ; fully-qualified # 🛌🏿 person in bed: dark skin tone + +# subgroup: family +1F9D1 200D 1F91D 200D 1F9D1 ; fully-qualified # 🧑🤝🧑 people holding hands +1F9D1 1F3FB 200D 1F91D 200D 1F9D1 1F3FB ; fully-qualified # 🧑🏻🤝🧑🏻 people holding hands: light skin tone +1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FB ; fully-qualified # 🧑🏼🤝🧑🏻 people holding hands: medium-light skin tone, light skin tone +1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FC ; fully-qualified # 🧑🏼🤝🧑🏼 people holding hands: medium-light skin tone +1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FB ; fully-qualified # 🧑🏽🤝🧑🏻 people holding hands: medium skin tone, light skin tone +1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FC ; fully-qualified # 🧑🏽🤝🧑🏼 people holding hands: medium skin tone, medium-light skin tone +1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FD ; fully-qualified # 🧑🏽🤝🧑🏽 people holding hands: medium skin tone +1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FB ; fully-qualified # 🧑🏾🤝🧑🏻 people holding hands: medium-dark skin tone, light skin tone +1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FC ; fully-qualified # 🧑🏾🤝🧑🏼 people holding hands: medium-dark skin tone, medium-light skin tone +1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FD ; fully-qualified # 🧑🏾🤝🧑🏽 people holding hands: medium-dark skin tone, medium skin tone +1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FE ; fully-qualified # 🧑🏾🤝🧑🏾 people holding hands: medium-dark skin tone +1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FB ; fully-qualified # 🧑🏿🤝🧑🏻 people holding hands: dark skin tone, light skin tone +1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FC ; fully-qualified # 🧑🏿🤝🧑🏼 people holding hands: dark skin tone, medium-light skin tone +1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FD ; fully-qualified # 🧑🏿🤝🧑🏽 people holding hands: dark skin tone, medium skin tone +1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FE ; fully-qualified # 🧑🏿🤝🧑🏾 people holding hands: dark skin tone, medium-dark skin tone +1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FF ; fully-qualified # 🧑🏿🤝🧑🏿 people holding hands: dark skin tone +1F46D ; fully-qualified # 👭 women holding hands +1F46D 1F3FB ; fully-qualified # 👭🏻 women holding hands: light skin tone +1F469 1F3FC 200D 1F91D 200D 1F469 1F3FB ; fully-qualified # 👩🏼🤝👩🏻 women holding hands: medium-light skin tone, light skin tone +1F46D 1F3FC ; fully-qualified # 👭🏼 women holding hands: medium-light skin tone +1F469 1F3FD 200D 1F91D 200D 1F469 1F3FB ; fully-qualified # 👩🏽🤝👩🏻 women holding hands: medium skin tone, light skin tone +1F469 1F3FD 200D 1F91D 200D 1F469 1F3FC ; fully-qualified # 👩🏽🤝👩🏼 women holding hands: medium skin tone, medium-light skin tone +1F46D 1F3FD ; fully-qualified # 👭🏽 women holding hands: medium skin tone +1F469 1F3FE 200D 1F91D 200D 1F469 1F3FB ; fully-qualified # 👩🏾🤝👩🏻 women holding hands: medium-dark skin tone, light skin tone +1F469 1F3FE 200D 1F91D 200D 1F469 1F3FC ; fully-qualified # 👩🏾🤝👩🏼 women holding hands: medium-dark skin tone, medium-light skin tone +1F469 1F3FE 200D 1F91D 200D 1F469 1F3FD ; fully-qualified # 👩🏾🤝👩🏽 women holding hands: medium-dark skin tone, medium skin tone +1F46D 1F3FE ; fully-qualified # 👭🏾 women holding hands: medium-dark skin tone +1F469 1F3FF 200D 1F91D 200D 1F469 1F3FB ; fully-qualified # 👩🏿🤝👩🏻 women holding hands: dark skin tone, light skin tone +1F469 1F3FF 200D 1F91D 200D 1F469 1F3FC ; fully-qualified # 👩🏿🤝👩🏼 women holding hands: dark skin tone, medium-light skin tone +1F469 1F3FF 200D 1F91D 200D 1F469 1F3FD ; fully-qualified # 👩🏿🤝👩🏽 women holding hands: dark skin tone, medium skin tone +1F469 1F3FF 200D 1F91D 200D 1F469 1F3FE ; fully-qualified # 👩🏿🤝👩🏾 women holding hands: dark skin tone, medium-dark skin tone +1F46D 1F3FF ; fully-qualified # 👭🏿 women holding hands: dark skin tone +1F46B ; fully-qualified # 👫 woman and man holding hands +1F46B 1F3FB ; fully-qualified # 👫🏻 woman and man holding hands: light skin tone +1F469 1F3FB 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👩🏻🤝👨🏼 woman and man holding hands: light skin tone, medium-light skin tone +1F469 1F3FB 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👩🏻🤝👨🏽 woman and man holding hands: light skin tone, medium skin tone +1F469 1F3FB 200D 1F91D 200D 1F468 1F3FE ; fully-qualified # 👩🏻🤝👨🏾 woman and man holding hands: light skin tone, medium-dark skin tone +1F469 1F3FB 200D 1F91D 200D 1F468 1F3FF ; fully-qualified # 👩🏻🤝👨🏿 woman and man holding hands: light skin tone, dark skin tone +1F469 1F3FC 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👩🏼🤝👨🏻 woman and man holding hands: medium-light skin tone, light skin tone +1F46B 1F3FC ; fully-qualified # 👫🏼 woman and man holding hands: medium-light skin tone +1F469 1F3FC 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👩🏼🤝👨🏽 woman and man holding hands: medium-light skin tone, medium skin tone +1F469 1F3FC 200D 1F91D 200D 1F468 1F3FE ; fully-qualified # 👩🏼🤝👨🏾 woman and man holding hands: medium-light skin tone, medium-dark skin tone +1F469 1F3FC 200D 1F91D 200D 1F468 1F3FF ; fully-qualified # 👩🏼🤝👨🏿 woman and man holding hands: medium-light skin tone, dark skin tone +1F469 1F3FD 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👩🏽🤝👨🏻 woman and man holding hands: medium skin tone, light skin tone +1F469 1F3FD 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👩🏽🤝👨🏼 woman and man holding hands: medium skin tone, medium-light skin tone +1F46B 1F3FD ; fully-qualified # 👫🏽 woman and man holding hands: medium skin tone +1F469 1F3FD 200D 1F91D 200D 1F468 1F3FE ; fully-qualified # 👩🏽🤝👨🏾 woman and man holding hands: medium skin tone, medium-dark skin tone +1F469 1F3FD 200D 1F91D 200D 1F468 1F3FF ; fully-qualified # 👩🏽🤝👨🏿 woman and man holding hands: medium skin tone, dark skin tone +1F469 1F3FE 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👩🏾🤝👨🏻 woman and man holding hands: medium-dark skin tone, light skin tone +1F469 1F3FE 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👩🏾🤝👨🏼 woman and man holding hands: medium-dark skin tone, medium-light skin tone +1F469 1F3FE 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👩🏾🤝👨🏽 woman and man holding hands: medium-dark skin tone, medium skin tone +1F46B 1F3FE ; fully-qualified # 👫🏾 woman and man holding hands: medium-dark skin tone +1F469 1F3FE 200D 1F91D 200D 1F468 1F3FF ; fully-qualified # 👩🏾🤝👨🏿 woman and man holding hands: medium-dark skin tone, dark skin tone +1F469 1F3FF 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👩🏿🤝👨🏻 woman and man holding hands: dark skin tone, light skin tone +1F469 1F3FF 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👩🏿🤝👨🏼 woman and man holding hands: dark skin tone, medium-light skin tone +1F469 1F3FF 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👩🏿🤝👨🏽 woman and man holding hands: dark skin tone, medium skin tone +1F469 1F3FF 200D 1F91D 200D 1F468 1F3FE ; fully-qualified # 👩🏿🤝👨🏾 woman and man holding hands: dark skin tone, medium-dark skin tone +1F46B 1F3FF ; fully-qualified # 👫🏿 woman and man holding hands: dark skin tone +1F46C ; fully-qualified # 👬 men holding hands +1F46C 1F3FB ; fully-qualified # 👬🏻 men holding hands: light skin tone +1F468 1F3FC 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👨🏼🤝👨🏻 men holding hands: medium-light skin tone, light skin tone +1F46C 1F3FC ; fully-qualified # 👬🏼 men holding hands: medium-light skin tone +1F468 1F3FD 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👨🏽🤝👨🏻 men holding hands: medium skin tone, light skin tone +1F468 1F3FD 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👨🏽🤝👨🏼 men holding hands: medium skin tone, medium-light skin tone +1F46C 1F3FD ; fully-qualified # 👬🏽 men holding hands: medium skin tone +1F468 1F3FE 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👨🏾🤝👨🏻 men holding hands: medium-dark skin tone, light skin tone +1F468 1F3FE 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👨🏾🤝👨🏼 men holding hands: medium-dark skin tone, medium-light skin tone +1F468 1F3FE 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👨🏾🤝👨🏽 men holding hands: medium-dark skin tone, medium skin tone +1F46C 1F3FE ; fully-qualified # 👬🏾 men holding hands: medium-dark skin tone +1F468 1F3FF 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👨🏿🤝👨🏻 men holding hands: dark skin tone, light skin tone +1F468 1F3FF 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👨🏿🤝👨🏼 men holding hands: dark skin tone, medium-light skin tone +1F468 1F3FF 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👨🏿🤝👨🏽 men holding hands: dark skin tone, medium skin tone +1F468 1F3FF 200D 1F91D 200D 1F468 1F3FE ; fully-qualified # 👨🏿🤝👨🏾 men holding hands: dark skin tone, medium-dark skin tone +1F46C 1F3FF ; fully-qualified # 👬🏿 men holding hands: dark skin tone +1F48F ; fully-qualified # 💏 kiss +1F469 200D 2764 FE0F 200D 1F48B 200D 1F468 ; fully-qualified # 👩❤️💋👨 kiss: woman, man +1F469 200D 2764 200D 1F48B 200D 1F468 ; minimally-qualified # 👩❤💋👨 kiss: woman, man +1F468 200D 2764 FE0F 200D 1F48B 200D 1F468 ; fully-qualified # 👨❤️💋👨 kiss: man, man +1F468 200D 2764 200D 1F48B 200D 1F468 ; minimally-qualified # 👨❤💋👨 kiss: man, man +1F469 200D 2764 FE0F 200D 1F48B 200D 1F469 ; fully-qualified # 👩❤️💋👩 kiss: woman, woman +1F469 200D 2764 200D 1F48B 200D 1F469 ; minimally-qualified # 👩❤💋👩 kiss: woman, woman +1F491 ; fully-qualified # 💑 couple with heart +1F469 200D 2764 FE0F 200D 1F468 ; fully-qualified # 👩❤️👨 couple with heart: woman, man +1F469 200D 2764 200D 1F468 ; minimally-qualified # 👩❤👨 couple with heart: woman, man +1F468 200D 2764 FE0F 200D 1F468 ; fully-qualified # 👨❤️👨 couple with heart: man, man +1F468 200D 2764 200D 1F468 ; minimally-qualified # 👨❤👨 couple with heart: man, man +1F469 200D 2764 FE0F 200D 1F469 ; fully-qualified # 👩❤️👩 couple with heart: woman, woman +1F469 200D 2764 200D 1F469 ; minimally-qualified # 👩❤👩 couple with heart: woman, woman +1F46A ; fully-qualified # 👪 family +1F468 200D 1F469 200D 1F466 ; fully-qualified # 👨👩👦 family: man, woman, boy +1F468 200D 1F469 200D 1F467 ; fully-qualified # 👨👩👧 family: man, woman, girl +1F468 200D 1F469 200D 1F467 200D 1F466 ; fully-qualified # 👨👩👧👦 family: man, woman, girl, boy +1F468 200D 1F469 200D 1F466 200D 1F466 ; fully-qualified # 👨👩👦👦 family: man, woman, boy, boy +1F468 200D 1F469 200D 1F467 200D 1F467 ; fully-qualified # 👨👩👧👧 family: man, woman, girl, girl +1F468 200D 1F468 200D 1F466 ; fully-qualified # 👨👨👦 family: man, man, boy +1F468 200D 1F468 200D 1F467 ; fully-qualified # 👨👨👧 family: man, man, girl +1F468 200D 1F468 200D 1F467 200D 1F466 ; fully-qualified # 👨👨👧👦 family: man, man, girl, boy +1F468 200D 1F468 200D 1F466 200D 1F466 ; fully-qualified # 👨👨👦👦 family: man, man, boy, boy +1F468 200D 1F468 200D 1F467 200D 1F467 ; fully-qualified # 👨👨👧👧 family: man, man, girl, girl +1F469 200D 1F469 200D 1F466 ; fully-qualified # 👩👩👦 family: woman, woman, boy +1F469 200D 1F469 200D 1F467 ; fully-qualified # 👩👩👧 family: woman, woman, girl +1F469 200D 1F469 200D 1F467 200D 1F466 ; fully-qualified # 👩👩👧👦 family: woman, woman, girl, boy +1F469 200D 1F469 200D 1F466 200D 1F466 ; fully-qualified # 👩👩👦👦 family: woman, woman, boy, boy +1F469 200D 1F469 200D 1F467 200D 1F467 ; fully-qualified # 👩👩👧👧 family: woman, woman, girl, girl +1F468 200D 1F466 ; fully-qualified # 👨👦 family: man, boy +1F468 200D 1F466 200D 1F466 ; fully-qualified # 👨👦👦 family: man, boy, boy +1F468 200D 1F467 ; fully-qualified # 👨👧 family: man, girl +1F468 200D 1F467 200D 1F466 ; fully-qualified # 👨👧👦 family: man, girl, boy +1F468 200D 1F467 200D 1F467 ; fully-qualified # 👨👧👧 family: man, girl, girl +1F469 200D 1F466 ; fully-qualified # 👩👦 family: woman, boy +1F469 200D 1F466 200D 1F466 ; fully-qualified # 👩👦👦 family: woman, boy, boy +1F469 200D 1F467 ; fully-qualified # 👩👧 family: woman, girl +1F469 200D 1F467 200D 1F466 ; fully-qualified # 👩👧👦 family: woman, girl, boy +1F469 200D 1F467 200D 1F467 ; fully-qualified # 👩👧👧 family: woman, girl, girl + +# subgroup: person-symbol +1F5E3 FE0F ; fully-qualified # 🗣️ speaking head +1F5E3 ; unqualified # 🗣 speaking head +1F464 ; fully-qualified # 👤 bust in silhouette +1F465 ; fully-qualified # 👥 busts in silhouette +1F463 ; fully-qualified # 👣 footprints + +# People & Body subtotal: 2212 +# People & Body subtotal: 447 w/o modifiers + +# group: Component + +# subgroup: skin-tone +1F3FB ; component # 🏻 light skin tone +1F3FC ; component # 🏼 medium-light skin tone +1F3FD ; component # 🏽 medium skin tone +1F3FE ; component # 🏾 medium-dark skin tone +1F3FF ; component # 🏿 dark skin tone + +# subgroup: hair-style +1F9B0 ; component # 🦰 red hair +1F9B1 ; component # 🦱 curly hair +1F9B3 ; component # 🦳 white hair +1F9B2 ; component # 🦲 bald + +# Component subtotal: 9 +# Component subtotal: 4 w/o modifiers + +# group: Animals & Nature + +# subgroup: animal-mammal +1F435 ; fully-qualified # 🐵 monkey face +1F412 ; fully-qualified # 🐒 monkey +1F98D ; fully-qualified # 🦍 gorilla +1F9A7 ; fully-qualified # 🦧 orangutan +1F436 ; fully-qualified # 🐶 dog face +1F415 ; fully-qualified # 🐕 dog +1F9AE ; fully-qualified # 🦮 guide dog +1F415 200D 1F9BA ; fully-qualified # 🐕🦺 service dog +1F429 ; fully-qualified # 🐩 poodle +1F43A ; fully-qualified # 🐺 wolf +1F98A ; fully-qualified # 🦊 fox +1F99D ; fully-qualified # 🦝 raccoon +1F431 ; fully-qualified # 🐱 cat face +1F408 ; fully-qualified # 🐈 cat +1F981 ; fully-qualified # 🦁 lion +1F42F ; fully-qualified # 🐯 tiger face +1F405 ; fully-qualified # 🐅 tiger +1F406 ; fully-qualified # 🐆 leopard +1F434 ; fully-qualified # 🐴 horse face +1F40E ; fully-qualified # 🐎 horse +1F984 ; fully-qualified # 🦄 unicorn +1F993 ; fully-qualified # 🦓 zebra +1F98C ; fully-qualified # 🦌 deer +1F42E ; fully-qualified # 🐮 cow face +1F402 ; fully-qualified # 🐂 ox +1F403 ; fully-qualified # 🐃 water buffalo +1F404 ; fully-qualified # 🐄 cow +1F437 ; fully-qualified # 🐷 pig face +1F416 ; fully-qualified # 🐖 pig +1F417 ; fully-qualified # 🐗 boar +1F43D ; fully-qualified # 🐽 pig nose +1F40F ; fully-qualified # 🐏 ram +1F411 ; fully-qualified # 🐑 ewe +1F410 ; fully-qualified # 🐐 goat +1F42A ; fully-qualified # 🐪 camel +1F42B ; fully-qualified # 🐫 two-hump camel +1F999 ; fully-qualified # 🦙 llama +1F992 ; fully-qualified # 🦒 giraffe +1F418 ; fully-qualified # 🐘 elephant +1F98F ; fully-qualified # 🦏 rhinoceros +1F99B ; fully-qualified # 🦛 hippopotamus +1F42D ; fully-qualified # 🐭 mouse face +1F401 ; fully-qualified # 🐁 mouse +1F400 ; fully-qualified # 🐀 rat +1F439 ; fully-qualified # 🐹 hamster +1F430 ; fully-qualified # 🐰 rabbit face +1F407 ; fully-qualified # 🐇 rabbit +1F43F FE0F ; fully-qualified # 🐿️ chipmunk +1F43F ; unqualified # 🐿 chipmunk +1F994 ; fully-qualified # 🦔 hedgehog +1F987 ; fully-qualified # 🦇 bat +1F43B ; fully-qualified # 🐻 bear +1F428 ; fully-qualified # 🐨 koala +1F43C ; fully-qualified # 🐼 panda +1F9A5 ; fully-qualified # 🦥 sloth +1F9A6 ; fully-qualified # 🦦 otter +1F9A8 ; fully-qualified # 🦨 skunk +1F998 ; fully-qualified # 🦘 kangaroo +1F9A1 ; fully-qualified # 🦡 badger +1F43E ; fully-qualified # 🐾 paw prints + +# subgroup: animal-bird +1F983 ; fully-qualified # 🦃 turkey +1F414 ; fully-qualified # 🐔 chicken +1F413 ; fully-qualified # 🐓 rooster +1F423 ; fully-qualified # 🐣 hatching chick +1F424 ; fully-qualified # 🐤 baby chick +1F425 ; fully-qualified # 🐥 front-facing baby chick +1F426 ; fully-qualified # 🐦 bird +1F427 ; fully-qualified # 🐧 penguin +1F54A FE0F ; fully-qualified # 🕊️ dove +1F54A ; unqualified # 🕊 dove +1F985 ; fully-qualified # 🦅 eagle +1F986 ; fully-qualified # 🦆 duck +1F9A2 ; fully-qualified # 🦢 swan +1F989 ; fully-qualified # 🦉 owl +1F9A9 ; fully-qualified # 🦩 flamingo +1F99A ; fully-qualified # 🦚 peacock +1F99C ; fully-qualified # 🦜 parrot + +# subgroup: animal-amphibian +1F438 ; fully-qualified # 🐸 frog + +# subgroup: animal-reptile +1F40A ; fully-qualified # 🐊 crocodile +1F422 ; fully-qualified # 🐢 turtle +1F98E ; fully-qualified # 🦎 lizard +1F40D ; fully-qualified # 🐍 snake +1F432 ; fully-qualified # 🐲 dragon face +1F409 ; fully-qualified # 🐉 dragon +1F995 ; fully-qualified # 🦕 sauropod +1F996 ; fully-qualified # 🦖 T-Rex + +# subgroup: animal-marine +1F433 ; fully-qualified # 🐳 spouting whale +1F40B ; fully-qualified # 🐋 whale +1F42C ; fully-qualified # 🐬 dolphin +1F41F ; fully-qualified # 🐟 fish +1F420 ; fully-qualified # 🐠 tropical fish +1F421 ; fully-qualified # 🐡 blowfish +1F988 ; fully-qualified # 🦈 shark +1F419 ; fully-qualified # 🐙 octopus +1F41A ; fully-qualified # 🐚 spiral shell + +# subgroup: animal-bug +1F40C ; fully-qualified # 🐌 snail +1F98B ; fully-qualified # 🦋 butterfly +1F41B ; fully-qualified # 🐛 bug +1F41C ; fully-qualified # 🐜 ant +1F41D ; fully-qualified # 🐝 honeybee +1F41E ; fully-qualified # 🐞 lady beetle +1F997 ; fully-qualified # 🦗 cricket +1F577 FE0F ; fully-qualified # 🕷️ spider +1F577 ; unqualified # 🕷 spider +1F578 FE0F ; fully-qualified # 🕸️ spider web +1F578 ; unqualified # 🕸 spider web +1F982 ; fully-qualified # 🦂 scorpion +1F99F ; fully-qualified # 🦟 mosquito +1F9A0 ; fully-qualified # 🦠 microbe + +# subgroup: plant-flower +1F490 ; fully-qualified # 💐 bouquet +1F338 ; fully-qualified # 🌸 cherry blossom +1F4AE ; fully-qualified # 💮 white flower +1F3F5 FE0F ; fully-qualified # 🏵️ rosette +1F3F5 ; unqualified # 🏵 rosette +1F339 ; fully-qualified # 🌹 rose +1F940 ; fully-qualified # 🥀 wilted flower +1F33A ; fully-qualified # 🌺 hibiscus +1F33B ; fully-qualified # 🌻 sunflower +1F33C ; fully-qualified # 🌼 blossom +1F337 ; fully-qualified # 🌷 tulip + +# subgroup: plant-other +1F331 ; fully-qualified # 🌱 seedling +1F332 ; fully-qualified # 🌲 evergreen tree +1F333 ; fully-qualified # 🌳 deciduous tree +1F334 ; fully-qualified # 🌴 palm tree +1F335 ; fully-qualified # 🌵 cactus +1F33E ; fully-qualified # 🌾 sheaf of rice +1F33F ; fully-qualified # 🌿 herb +2618 FE0F ; fully-qualified # ☘️ shamrock +2618 ; unqualified # ☘ shamrock +1F340 ; fully-qualified # 🍀 four leaf clover +1F341 ; fully-qualified # 🍁 maple leaf +1F342 ; fully-qualified # 🍂 fallen leaf +1F343 ; fully-qualified # 🍃 leaf fluttering in wind + +# Animals & Nature subtotal: 133 +# Animals & Nature subtotal: 133 w/o modifiers + +# group: Food & Drink + +# subgroup: food-fruit +1F347 ; fully-qualified # 🍇 grapes +1F348 ; fully-qualified # 🍈 melon +1F349 ; fully-qualified # 🍉 watermelon +1F34A ; fully-qualified # 🍊 tangerine +1F34B ; fully-qualified # 🍋 lemon +1F34C ; fully-qualified # 🍌 banana +1F34D ; fully-qualified # 🍍 pineapple +1F96D ; fully-qualified # 🥭 mango +1F34E ; fully-qualified # 🍎 red apple +1F34F ; fully-qualified # 🍏 green apple +1F350 ; fully-qualified # 🍐 pear +1F351 ; fully-qualified # 🍑 peach +1F352 ; fully-qualified # 🍒 cherries +1F353 ; fully-qualified # 🍓 strawberry +1F95D ; fully-qualified # 🥝 kiwi fruit +1F345 ; fully-qualified # 🍅 tomato +1F965 ; fully-qualified # 🥥 coconut + +# subgroup: food-vegetable +1F951 ; fully-qualified # 🥑 avocado +1F346 ; fully-qualified # 🍆 eggplant +1F954 ; fully-qualified # 🥔 potato +1F955 ; fully-qualified # 🥕 carrot +1F33D ; fully-qualified # 🌽 ear of corn +1F336 FE0F ; fully-qualified # 🌶️ hot pepper +1F336 ; unqualified # 🌶 hot pepper +1F952 ; fully-qualified # 🥒 cucumber +1F96C ; fully-qualified # 🥬 leafy green +1F966 ; fully-qualified # 🥦 broccoli +1F9C4 ; fully-qualified # 🧄 garlic +1F9C5 ; fully-qualified # 🧅 onion +1F344 ; fully-qualified # 🍄 mushroom +1F95C ; fully-qualified # 🥜 peanuts +1F330 ; fully-qualified # 🌰 chestnut + +# subgroup: food-prepared +1F35E ; fully-qualified # 🍞 bread +1F950 ; fully-qualified # 🥐 croissant +1F956 ; fully-qualified # 🥖 baguette bread +1F968 ; fully-qualified # 🥨 pretzel +1F96F ; fully-qualified # 🥯 bagel +1F95E ; fully-qualified # 🥞 pancakes +1F9C7 ; fully-qualified # 🧇 waffle +1F9C0 ; fully-qualified # 🧀 cheese wedge +1F356 ; fully-qualified # 🍖 meat on bone +1F357 ; fully-qualified # 🍗 poultry leg +1F969 ; fully-qualified # 🥩 cut of meat +1F953 ; fully-qualified # 🥓 bacon +1F354 ; fully-qualified # 🍔 hamburger +1F35F ; fully-qualified # 🍟 french fries +1F355 ; fully-qualified # 🍕 pizza +1F32D ; fully-qualified # 🌭 hot dog +1F96A ; fully-qualified # 🥪 sandwich +1F32E ; fully-qualified # 🌮 taco +1F32F ; fully-qualified # 🌯 burrito +1F959 ; fully-qualified # 🥙 stuffed flatbread +1F9C6 ; fully-qualified # 🧆 falafel +1F95A ; fully-qualified # 🥚 egg +1F373 ; fully-qualified # 🍳 cooking +1F958 ; fully-qualified # 🥘 shallow pan of food +1F372 ; fully-qualified # 🍲 pot of food +1F963 ; fully-qualified # 🥣 bowl with spoon +1F957 ; fully-qualified # 🥗 green salad +1F37F ; fully-qualified # 🍿 popcorn +1F9C8 ; fully-qualified # 🧈 butter +1F9C2 ; fully-qualified # 🧂 salt +1F96B ; fully-qualified # 🥫 canned food + +# subgroup: food-asian +1F371 ; fully-qualified # 🍱 bento box +1F358 ; fully-qualified # 🍘 rice cracker +1F359 ; fully-qualified # 🍙 rice ball +1F35A ; fully-qualified # 🍚 cooked rice +1F35B ; fully-qualified # 🍛 curry rice +1F35C ; fully-qualified # 🍜 steaming bowl +1F35D ; fully-qualified # 🍝 spaghetti +1F360 ; fully-qualified # 🍠 roasted sweet potato +1F362 ; fully-qualified # 🍢 oden +1F363 ; fully-qualified # 🍣 sushi +1F364 ; fully-qualified # 🍤 fried shrimp +1F365 ; fully-qualified # 🍥 fish cake with swirl +1F96E ; fully-qualified # 🥮 moon cake +1F361 ; fully-qualified # 🍡 dango +1F95F ; fully-qualified # 🥟 dumpling +1F960 ; fully-qualified # 🥠 fortune cookie +1F961 ; fully-qualified # 🥡 takeout box + +# subgroup: food-marine +1F980 ; fully-qualified # 🦀 crab +1F99E ; fully-qualified # 🦞 lobster +1F990 ; fully-qualified # 🦐 shrimp +1F991 ; fully-qualified # 🦑 squid +1F9AA ; fully-qualified # 🦪 oyster + +# subgroup: food-sweet +1F366 ; fully-qualified # 🍦 soft ice cream +1F367 ; fully-qualified # 🍧 shaved ice +1F368 ; fully-qualified # 🍨 ice cream +1F369 ; fully-qualified # 🍩 doughnut +1F36A ; fully-qualified # 🍪 cookie +1F382 ; fully-qualified # 🎂 birthday cake +1F370 ; fully-qualified # 🍰 shortcake +1F9C1 ; fully-qualified # 🧁 cupcake +1F967 ; fully-qualified # 🥧 pie +1F36B ; fully-qualified # 🍫 chocolate bar +1F36C ; fully-qualified # 🍬 candy +1F36D ; fully-qualified # 🍭 lollipop +1F36E ; fully-qualified # 🍮 custard +1F36F ; fully-qualified # 🍯 honey pot + +# subgroup: drink +1F37C ; fully-qualified # 🍼 baby bottle +1F95B ; fully-qualified # 🥛 glass of milk +2615 ; fully-qualified # ☕ hot beverage +1F375 ; fully-qualified # 🍵 teacup without handle +1F376 ; fully-qualified # 🍶 sake +1F37E ; fully-qualified # 🍾 bottle with popping cork +1F377 ; fully-qualified # 🍷 wine glass +1F378 ; fully-qualified # 🍸 cocktail glass +1F379 ; fully-qualified # 🍹 tropical drink +1F37A ; fully-qualified # 🍺 beer mug +1F37B ; fully-qualified # 🍻 clinking beer mugs +1F942 ; fully-qualified # 🥂 clinking glasses +1F943 ; fully-qualified # 🥃 tumbler glass +1F964 ; fully-qualified # 🥤 cup with straw +1F9C3 ; fully-qualified # 🧃 beverage box +1F9C9 ; fully-qualified # 🧉 mate +1F9CA ; fully-qualified # 🧊 ice cube + +# subgroup: dishware +1F962 ; fully-qualified # 🥢 chopsticks +1F37D FE0F ; fully-qualified # 🍽️ fork and knife with plate +1F37D ; unqualified # 🍽 fork and knife with plate +1F374 ; fully-qualified # 🍴 fork and knife +1F944 ; fully-qualified # 🥄 spoon +1F52A ; fully-qualified # 🔪 kitchen knife +1F3FA ; fully-qualified # 🏺 amphora + +# Food & Drink subtotal: 123 +# Food & Drink subtotal: 123 w/o modifiers + +# group: Travel & Places + +# subgroup: place-map +1F30D ; fully-qualified # 🌍 globe showing Europe-Africa +1F30E ; fully-qualified # 🌎 globe showing Americas +1F30F ; fully-qualified # 🌏 globe showing Asia-Australia +1F310 ; fully-qualified # 🌐 globe with meridians +1F5FA FE0F ; fully-qualified # 🗺️ world map +1F5FA ; unqualified # 🗺 world map +1F5FE ; fully-qualified # 🗾 map of Japan +1F9ED ; fully-qualified # 🧭 compass + +# subgroup: place-geographic +1F3D4 FE0F ; fully-qualified # 🏔️ snow-capped mountain +1F3D4 ; unqualified # 🏔 snow-capped mountain +26F0 FE0F ; fully-qualified # ⛰️ mountain +26F0 ; unqualified # ⛰ mountain +1F30B ; fully-qualified # 🌋 volcano +1F5FB ; fully-qualified # 🗻 mount fuji +1F3D5 FE0F ; fully-qualified # 🏕️ camping +1F3D5 ; unqualified # 🏕 camping +1F3D6 FE0F ; fully-qualified # 🏖️ beach with umbrella +1F3D6 ; unqualified # 🏖 beach with umbrella +1F3DC FE0F ; fully-qualified # 🏜️ desert +1F3DC ; unqualified # 🏜 desert +1F3DD FE0F ; fully-qualified # 🏝️ desert island +1F3DD ; unqualified # 🏝 desert island +1F3DE FE0F ; fully-qualified # 🏞️ national park +1F3DE ; unqualified # 🏞 national park + +# subgroup: place-building +1F3DF FE0F ; fully-qualified # 🏟️ stadium +1F3DF ; unqualified # 🏟 stadium +1F3DB FE0F ; fully-qualified # 🏛️ classical building +1F3DB ; unqualified # 🏛 classical building +1F3D7 FE0F ; fully-qualified # 🏗️ building construction +1F3D7 ; unqualified # 🏗 building construction +1F9F1 ; fully-qualified # 🧱 brick +1F3D8 FE0F ; fully-qualified # 🏘️ houses +1F3D8 ; unqualified # 🏘 houses +1F3DA FE0F ; fully-qualified # 🏚️ derelict house +1F3DA ; unqualified # 🏚 derelict house +1F3E0 ; fully-qualified # 🏠 house +1F3E1 ; fully-qualified # 🏡 house with garden +1F3E2 ; fully-qualified # 🏢 office building +1F3E3 ; fully-qualified # 🏣 Japanese post office +1F3E4 ; fully-qualified # 🏤 post office +1F3E5 ; fully-qualified # 🏥 hospital +1F3E6 ; fully-qualified # 🏦 bank +1F3E8 ; fully-qualified # 🏨 hotel +1F3E9 ; fully-qualified # 🏩 love hotel +1F3EA ; fully-qualified # 🏪 convenience store +1F3EB ; fully-qualified # 🏫 school +1F3EC ; fully-qualified # 🏬 department store +1F3ED ; fully-qualified # 🏭 factory +1F3EF ; fully-qualified # 🏯 Japanese castle +1F3F0 ; fully-qualified # 🏰 castle +1F492 ; fully-qualified # 💒 wedding +1F5FC ; fully-qualified # 🗼 Tokyo tower +1F5FD ; fully-qualified # 🗽 Statue of Liberty + +# subgroup: place-religious +26EA ; fully-qualified # ⛪ church +1F54C ; fully-qualified # 🕌 mosque +1F6D5 ; fully-qualified # 🛕 hindu temple +1F54D ; fully-qualified # 🕍 synagogue +26E9 FE0F ; fully-qualified # ⛩️ shinto shrine +26E9 ; unqualified # ⛩ shinto shrine +1F54B ; fully-qualified # 🕋 kaaba + +# subgroup: place-other +26F2 ; fully-qualified # ⛲ fountain +26FA ; fully-qualified # ⛺ tent +1F301 ; fully-qualified # 🌁 foggy +1F303 ; fully-qualified # 🌃 night with stars +1F3D9 FE0F ; fully-qualified # 🏙️ cityscape +1F3D9 ; unqualified # 🏙 cityscape +1F304 ; fully-qualified # 🌄 sunrise over mountains +1F305 ; fully-qualified # 🌅 sunrise +1F306 ; fully-qualified # 🌆 cityscape at dusk +1F307 ; fully-qualified # 🌇 sunset +1F309 ; fully-qualified # 🌉 bridge at night +2668 FE0F ; fully-qualified # ♨️ hot springs +2668 ; unqualified # ♨ hot springs +1F3A0 ; fully-qualified # 🎠 carousel horse +1F3A1 ; fully-qualified # 🎡 ferris wheel +1F3A2 ; fully-qualified # 🎢 roller coaster +1F488 ; fully-qualified # 💈 barber pole +1F3AA ; fully-qualified # 🎪 circus tent + +# subgroup: transport-ground +1F682 ; fully-qualified # 🚂 locomotive +1F683 ; fully-qualified # 🚃 railway car +1F684 ; fully-qualified # 🚄 high-speed train +1F685 ; fully-qualified # 🚅 bullet train +1F686 ; fully-qualified # 🚆 train +1F687 ; fully-qualified # 🚇 metro +1F688 ; fully-qualified # 🚈 light rail +1F689 ; fully-qualified # 🚉 station +1F68A ; fully-qualified # 🚊 tram +1F69D ; fully-qualified # 🚝 monorail +1F69E ; fully-qualified # 🚞 mountain railway +1F68B ; fully-qualified # 🚋 tram car +1F68C ; fully-qualified # 🚌 bus +1F68D ; fully-qualified # 🚍 oncoming bus +1F68E ; fully-qualified # 🚎 trolleybus +1F690 ; fully-qualified # 🚐 minibus +1F691 ; fully-qualified # 🚑 ambulance +1F692 ; fully-qualified # 🚒 fire engine +1F693 ; fully-qualified # 🚓 police car +1F694 ; fully-qualified # 🚔 oncoming police car +1F695 ; fully-qualified # 🚕 taxi +1F696 ; fully-qualified # 🚖 oncoming taxi +1F697 ; fully-qualified # 🚗 automobile +1F698 ; fully-qualified # 🚘 oncoming automobile +1F699 ; fully-qualified # 🚙 sport utility vehicle +1F69A ; fully-qualified # 🚚 delivery truck +1F69B ; fully-qualified # 🚛 articulated lorry +1F69C ; fully-qualified # 🚜 tractor +1F3CE FE0F ; fully-qualified # 🏎️ racing car +1F3CE ; unqualified # 🏎 racing car +1F3CD FE0F ; fully-qualified # 🏍️ motorcycle +1F3CD ; unqualified # 🏍 motorcycle +1F6F5 ; fully-qualified # 🛵 motor scooter +1F9BD ; fully-qualified # 🦽 manual wheelchair +1F9BC ; fully-qualified # 🦼 motorized wheelchair +1F6FA ; fully-qualified # 🛺 auto rickshaw +1F6B2 ; fully-qualified # 🚲 bicycle +1F6F4 ; fully-qualified # 🛴 kick scooter +1F6F9 ; fully-qualified # 🛹 skateboard +1F68F ; fully-qualified # 🚏 bus stop +1F6E3 FE0F ; fully-qualified # 🛣️ motorway +1F6E3 ; unqualified # 🛣 motorway +1F6E4 FE0F ; fully-qualified # 🛤️ railway track +1F6E4 ; unqualified # 🛤 railway track +1F6E2 FE0F ; fully-qualified # 🛢️ oil drum +1F6E2 ; unqualified # 🛢 oil drum +26FD ; fully-qualified # ⛽ fuel pump +1F6A8 ; fully-qualified # 🚨 police car light +1F6A5 ; fully-qualified # 🚥 horizontal traffic light +1F6A6 ; fully-qualified # 🚦 vertical traffic light +1F6D1 ; fully-qualified # 🛑 stop sign +1F6A7 ; fully-qualified # 🚧 construction + +# subgroup: transport-water +2693 ; fully-qualified # ⚓ anchor +26F5 ; fully-qualified # ⛵ sailboat +1F6F6 ; fully-qualified # 🛶 canoe +1F6A4 ; fully-qualified # 🚤 speedboat +1F6F3 FE0F ; fully-qualified # 🛳️ passenger ship +1F6F3 ; unqualified # 🛳 passenger ship +26F4 FE0F ; fully-qualified # ⛴️ ferry +26F4 ; unqualified # ⛴ ferry +1F6E5 FE0F ; fully-qualified # 🛥️ motor boat +1F6E5 ; unqualified # 🛥 motor boat +1F6A2 ; fully-qualified # 🚢 ship + +# subgroup: transport-air +2708 FE0F ; fully-qualified # ✈️ airplane +2708 ; unqualified # ✈ airplane +1F6E9 FE0F ; fully-qualified # 🛩️ small airplane +1F6E9 ; unqualified # 🛩 small airplane +1F6EB ; fully-qualified # 🛫 airplane departure +1F6EC ; fully-qualified # 🛬 airplane arrival +1FA82 ; fully-qualified # 🪂 parachute +1F4BA ; fully-qualified # 💺 seat +1F681 ; fully-qualified # 🚁 helicopter +1F69F ; fully-qualified # 🚟 suspension railway +1F6A0 ; fully-qualified # 🚠 mountain cableway +1F6A1 ; fully-qualified # 🚡 aerial tramway +1F6F0 FE0F ; fully-qualified # 🛰️ satellite +1F6F0 ; unqualified # 🛰 satellite +1F680 ; fully-qualified # 🚀 rocket +1F6F8 ; fully-qualified # 🛸 flying saucer + +# subgroup: hotel +1F6CE FE0F ; fully-qualified # 🛎️ bellhop bell +1F6CE ; unqualified # 🛎 bellhop bell +1F9F3 ; fully-qualified # 🧳 luggage + +# subgroup: time +231B ; fully-qualified # ⌛ hourglass done +23F3 ; fully-qualified # ⏳ hourglass not done +231A ; fully-qualified # ⌚ watch +23F0 ; fully-qualified # ⏰ alarm clock +23F1 FE0F ; fully-qualified # ⏱️ stopwatch +23F1 ; unqualified # ⏱ stopwatch +23F2 FE0F ; fully-qualified # ⏲️ timer clock +23F2 ; unqualified # ⏲ timer clock +1F570 FE0F ; fully-qualified # 🕰️ mantelpiece clock +1F570 ; unqualified # 🕰 mantelpiece clock +1F55B ; fully-qualified # 🕛 twelve o’clock +1F567 ; fully-qualified # 🕧 twelve-thirty +1F550 ; fully-qualified # 🕐 one o’clock +1F55C ; fully-qualified # 🕜 one-thirty +1F551 ; fully-qualified # 🕑 two o’clock +1F55D ; fully-qualified # 🕝 two-thirty +1F552 ; fully-qualified # 🕒 three o’clock +1F55E ; fully-qualified # 🕞 three-thirty +1F553 ; fully-qualified # 🕓 four o’clock +1F55F ; fully-qualified # 🕟 four-thirty +1F554 ; fully-qualified # 🕔 five o’clock +1F560 ; fully-qualified # 🕠 five-thirty +1F555 ; fully-qualified # 🕕 six o’clock +1F561 ; fully-qualified # 🕡 six-thirty +1F556 ; fully-qualified # 🕖 seven o’clock +1F562 ; fully-qualified # 🕢 seven-thirty +1F557 ; fully-qualified # 🕗 eight o’clock +1F563 ; fully-qualified # 🕣 eight-thirty +1F558 ; fully-qualified # 🕘 nine o’clock +1F564 ; fully-qualified # 🕤 nine-thirty +1F559 ; fully-qualified # 🕙 ten o’clock +1F565 ; fully-qualified # 🕥 ten-thirty +1F55A ; fully-qualified # 🕚 eleven o’clock +1F566 ; fully-qualified # 🕦 eleven-thirty + +# subgroup: sky & weather +1F311 ; fully-qualified # 🌑 new moon +1F312 ; fully-qualified # 🌒 waxing crescent moon +1F313 ; fully-qualified # 🌓 first quarter moon +1F314 ; fully-qualified # 🌔 waxing gibbous moon +1F315 ; fully-qualified # 🌕 full moon +1F316 ; fully-qualified # 🌖 waning gibbous moon +1F317 ; fully-qualified # 🌗 last quarter moon +1F318 ; fully-qualified # 🌘 waning crescent moon +1F319 ; fully-qualified # 🌙 crescent moon +1F31A ; fully-qualified # 🌚 new moon face +1F31B ; fully-qualified # 🌛 first quarter moon face +1F31C ; fully-qualified # 🌜 last quarter moon face +1F321 FE0F ; fully-qualified # 🌡️ thermometer +1F321 ; unqualified # 🌡 thermometer +2600 FE0F ; fully-qualified # ☀️ sun +2600 ; unqualified # ☀ sun +1F31D ; fully-qualified # 🌝 full moon face +1F31E ; fully-qualified # 🌞 sun with face +1FA90 ; fully-qualified # 🪐 ringed planet +2B50 ; fully-qualified # ⭐ star +1F31F ; fully-qualified # 🌟 glowing star +1F320 ; fully-qualified # 🌠 shooting star +1F30C ; fully-qualified # 🌌 milky way +2601 FE0F ; fully-qualified # ☁️ cloud +2601 ; unqualified # ☁ cloud +26C5 ; fully-qualified # ⛅ sun behind cloud +26C8 FE0F ; fully-qualified # ⛈️ cloud with lightning and rain +26C8 ; unqualified # ⛈ cloud with lightning and rain +1F324 FE0F ; fully-qualified # 🌤️ sun behind small cloud +1F324 ; unqualified # 🌤 sun behind small cloud +1F325 FE0F ; fully-qualified # 🌥️ sun behind large cloud +1F325 ; unqualified # 🌥 sun behind large cloud +1F326 FE0F ; fully-qualified # 🌦️ sun behind rain cloud +1F326 ; unqualified # 🌦 sun behind rain cloud +1F327 FE0F ; fully-qualified # 🌧️ cloud with rain +1F327 ; unqualified # 🌧 cloud with rain +1F328 FE0F ; fully-qualified # 🌨️ cloud with snow +1F328 ; unqualified # 🌨 cloud with snow +1F329 FE0F ; fully-qualified # 🌩️ cloud with lightning +1F329 ; unqualified # 🌩 cloud with lightning +1F32A FE0F ; fully-qualified # 🌪️ tornado +1F32A ; unqualified # 🌪 tornado +1F32B FE0F ; fully-qualified # 🌫️ fog +1F32B ; unqualified # 🌫 fog +1F32C FE0F ; fully-qualified # 🌬️ wind face +1F32C ; unqualified # 🌬 wind face +1F300 ; fully-qualified # 🌀 cyclone +1F308 ; fully-qualified # 🌈 rainbow +1F302 ; fully-qualified # 🌂 closed umbrella +2602 FE0F ; fully-qualified # ☂️ umbrella +2602 ; unqualified # ☂ umbrella +2614 ; fully-qualified # ☔ umbrella with rain drops +26F1 FE0F ; fully-qualified # ⛱️ umbrella on ground +26F1 ; unqualified # ⛱ umbrella on ground +26A1 ; fully-qualified # ⚡ high voltage +2744 FE0F ; fully-qualified # ❄️ snowflake +2744 ; unqualified # ❄ snowflake +2603 FE0F ; fully-qualified # ☃️ snowman +2603 ; unqualified # ☃ snowman +26C4 ; fully-qualified # ⛄ snowman without snow +2604 FE0F ; fully-qualified # ☄️ comet +2604 ; unqualified # ☄ comet +1F525 ; fully-qualified # 🔥 fire +1F4A7 ; fully-qualified # 💧 droplet +1F30A ; fully-qualified # 🌊 water wave + +# Travel & Places subtotal: 259 +# Travel & Places subtotal: 259 w/o modifiers + +# group: Activities + +# subgroup: event +1F383 ; fully-qualified # 🎃 jack-o-lantern +1F384 ; fully-qualified # 🎄 Christmas tree +1F386 ; fully-qualified # 🎆 fireworks +1F387 ; fully-qualified # 🎇 sparkler +1F9E8 ; fully-qualified # 🧨 firecracker +2728 ; fully-qualified # ✨ sparkles +1F388 ; fully-qualified # 🎈 balloon +1F389 ; fully-qualified # 🎉 party popper +1F38A ; fully-qualified # 🎊 confetti ball +1F38B ; fully-qualified # 🎋 tanabata tree +1F38D ; fully-qualified # 🎍 pine decoration +1F38E ; fully-qualified # 🎎 Japanese dolls +1F38F ; fully-qualified # 🎏 carp streamer +1F390 ; fully-qualified # 🎐 wind chime +1F391 ; fully-qualified # 🎑 moon viewing ceremony +1F9E7 ; fully-qualified # 🧧 red envelope +1F380 ; fully-qualified # 🎀 ribbon +1F381 ; fully-qualified # 🎁 wrapped gift +1F397 FE0F ; fully-qualified # 🎗️ reminder ribbon +1F397 ; unqualified # 🎗 reminder ribbon +1F39F FE0F ; fully-qualified # 🎟️ admission tickets +1F39F ; unqualified # 🎟 admission tickets +1F3AB ; fully-qualified # 🎫 ticket + +# subgroup: award-medal +1F396 FE0F ; fully-qualified # 🎖️ military medal +1F396 ; unqualified # 🎖 military medal +1F3C6 ; fully-qualified # 🏆 trophy +1F3C5 ; fully-qualified # 🏅 sports medal +1F947 ; fully-qualified # 🥇 1st place medal +1F948 ; fully-qualified # 🥈 2nd place medal +1F949 ; fully-qualified # 🥉 3rd place medal + +# subgroup: sport +26BD ; fully-qualified # ⚽ soccer ball +26BE ; fully-qualified # ⚾ baseball +1F94E ; fully-qualified # 🥎 softball +1F3C0 ; fully-qualified # 🏀 basketball +1F3D0 ; fully-qualified # 🏐 volleyball +1F3C8 ; fully-qualified # 🏈 american football +1F3C9 ; fully-qualified # 🏉 rugby football +1F3BE ; fully-qualified # 🎾 tennis +1F94F ; fully-qualified # 🥏 flying disc +1F3B3 ; fully-qualified # 🎳 bowling +1F3CF ; fully-qualified # 🏏 cricket game +1F3D1 ; fully-qualified # 🏑 field hockey +1F3D2 ; fully-qualified # 🏒 ice hockey +1F94D ; fully-qualified # 🥍 lacrosse +1F3D3 ; fully-qualified # 🏓 ping pong +1F3F8 ; fully-qualified # 🏸 badminton +1F94A ; fully-qualified # 🥊 boxing glove +1F94B ; fully-qualified # 🥋 martial arts uniform +1F945 ; fully-qualified # 🥅 goal net +26F3 ; fully-qualified # ⛳ flag in hole +26F8 FE0F ; fully-qualified # ⛸️ ice skate +26F8 ; unqualified # ⛸ ice skate +1F3A3 ; fully-qualified # 🎣 fishing pole +1F93F ; fully-qualified # 🤿 diving mask +1F3BD ; fully-qualified # 🎽 running shirt +1F3BF ; fully-qualified # 🎿 skis +1F6F7 ; fully-qualified # 🛷 sled +1F94C ; fully-qualified # 🥌 curling stone + +# subgroup: game +1F3AF ; fully-qualified # 🎯 direct hit +1FA80 ; fully-qualified # 🪀 yo-yo +1FA81 ; fully-qualified # 🪁 kite +1F3B1 ; fully-qualified # 🎱 pool 8 ball +1F52E ; fully-qualified # 🔮 crystal ball +1F9FF ; fully-qualified # 🧿 nazar amulet +1F3AE ; fully-qualified # 🎮 video game +1F579 FE0F ; fully-qualified # 🕹️ joystick +1F579 ; unqualified # 🕹 joystick +1F3B0 ; fully-qualified # 🎰 slot machine +1F3B2 ; fully-qualified # 🎲 game die +1F9E9 ; fully-qualified # 🧩 puzzle piece +1F9F8 ; fully-qualified # 🧸 teddy bear +2660 FE0F ; fully-qualified # ♠️ spade suit +2660 ; unqualified # ♠ spade suit +2665 FE0F ; fully-qualified # ♥️ heart suit +2665 ; unqualified # ♥ heart suit +2666 FE0F ; fully-qualified # ♦️ diamond suit +2666 ; unqualified # ♦ diamond suit +2663 FE0F ; fully-qualified # ♣️ club suit +2663 ; unqualified # ♣ club suit +265F FE0F ; fully-qualified # ♟️ chess pawn +265F ; unqualified # ♟ chess pawn +1F0CF ; fully-qualified # 🃏 joker +1F004 ; fully-qualified # 🀄 mahjong red dragon +1F3B4 ; fully-qualified # 🎴 flower playing cards + +# subgroup: arts & crafts +1F3AD ; fully-qualified # 🎭 performing arts +1F5BC FE0F ; fully-qualified # 🖼️ framed picture +1F5BC ; unqualified # 🖼 framed picture +1F3A8 ; fully-qualified # 🎨 artist palette +1F9F5 ; fully-qualified # 🧵 thread +1F9F6 ; fully-qualified # 🧶 yarn + +# Activities subtotal: 90 +# Activities subtotal: 90 w/o modifiers + +# group: Objects + +# subgroup: clothing +1F453 ; fully-qualified # 👓 glasses +1F576 FE0F ; fully-qualified # 🕶️ sunglasses +1F576 ; unqualified # 🕶 sunglasses +1F97D ; fully-qualified # 🥽 goggles +1F97C ; fully-qualified # 🥼 lab coat +1F9BA ; fully-qualified # 🦺 safety vest +1F454 ; fully-qualified # 👔 necktie +1F455 ; fully-qualified # 👕 t-shirt +1F456 ; fully-qualified # 👖 jeans +1F9E3 ; fully-qualified # 🧣 scarf +1F9E4 ; fully-qualified # 🧤 gloves +1F9E5 ; fully-qualified # 🧥 coat +1F9E6 ; fully-qualified # 🧦 socks +1F457 ; fully-qualified # 👗 dress +1F458 ; fully-qualified # 👘 kimono +1F97B ; fully-qualified # 🥻 sari +1FA71 ; fully-qualified # 🩱 one-piece swimsuit +1FA72 ; fully-qualified # 🩲 swim brief +1FA73 ; fully-qualified # 🩳 shorts +1F459 ; fully-qualified # 👙 bikini +1F45A ; fully-qualified # 👚 woman’s clothes +1F45B ; fully-qualified # 👛 purse +1F45C ; fully-qualified # 👜 handbag +1F45D ; fully-qualified # 👝 clutch bag +1F6CD FE0F ; fully-qualified # 🛍️ shopping bags +1F6CD ; unqualified # 🛍 shopping bags +1F392 ; fully-qualified # 🎒 backpack +1F45E ; fully-qualified # 👞 man’s shoe +1F45F ; fully-qualified # 👟 running shoe +1F97E ; fully-qualified # 🥾 hiking boot +1F97F ; fully-qualified # 🥿 flat shoe +1F460 ; fully-qualified # 👠 high-heeled shoe +1F461 ; fully-qualified # 👡 woman’s sandal +1FA70 ; fully-qualified # 🩰 ballet shoes +1F462 ; fully-qualified # 👢 woman’s boot +1F451 ; fully-qualified # 👑 crown +1F452 ; fully-qualified # 👒 woman’s hat +1F3A9 ; fully-qualified # 🎩 top hat +1F393 ; fully-qualified # 🎓 graduation cap +1F9E2 ; fully-qualified # 🧢 billed cap +26D1 FE0F ; fully-qualified # ⛑️ rescue worker’s helmet +26D1 ; unqualified # ⛑ rescue worker’s helmet +1F4FF ; fully-qualified # 📿 prayer beads +1F484 ; fully-qualified # 💄 lipstick +1F48D ; fully-qualified # 💍 ring +1F48E ; fully-qualified # 💎 gem stone + +# subgroup: sound +1F507 ; fully-qualified # 🔇 muted speaker +1F508 ; fully-qualified # 🔈 speaker low volume +1F509 ; fully-qualified # 🔉 speaker medium volume +1F50A ; fully-qualified # 🔊 speaker high volume +1F4E2 ; fully-qualified # 📢 loudspeaker +1F4E3 ; fully-qualified # 📣 megaphone +1F4EF ; fully-qualified # 📯 postal horn +1F514 ; fully-qualified # 🔔 bell +1F515 ; fully-qualified # 🔕 bell with slash + +# subgroup: music +1F3BC ; fully-qualified # 🎼 musical score +1F3B5 ; fully-qualified # 🎵 musical note +1F3B6 ; fully-qualified # 🎶 musical notes +1F399 FE0F ; fully-qualified # 🎙️ studio microphone +1F399 ; unqualified # 🎙 studio microphone +1F39A FE0F ; fully-qualified # 🎚️ level slider +1F39A ; unqualified # 🎚 level slider +1F39B FE0F ; fully-qualified # 🎛️ control knobs +1F39B ; unqualified # 🎛 control knobs +1F3A4 ; fully-qualified # 🎤 microphone +1F3A7 ; fully-qualified # 🎧 headphone +1F4FB ; fully-qualified # 📻 radio + +# subgroup: musical-instrument +1F3B7 ; fully-qualified # 🎷 saxophone +1F3B8 ; fully-qualified # 🎸 guitar +1F3B9 ; fully-qualified # 🎹 musical keyboard +1F3BA ; fully-qualified # 🎺 trumpet +1F3BB ; fully-qualified # 🎻 violin +1FA95 ; fully-qualified # 🪕 banjo +1F941 ; fully-qualified # 🥁 drum + +# subgroup: phone +1F4F1 ; fully-qualified # 📱 mobile phone +1F4F2 ; fully-qualified # 📲 mobile phone with arrow +260E FE0F ; fully-qualified # ☎️ telephone +260E ; unqualified # ☎ telephone +1F4DE ; fully-qualified # 📞 telephone receiver +1F4DF ; fully-qualified # 📟 pager +1F4E0 ; fully-qualified # 📠 fax machine + +# subgroup: computer +1F50B ; fully-qualified # 🔋 battery +1F50C ; fully-qualified # 🔌 electric plug +1F4BB ; fully-qualified # 💻 laptop computer +1F5A5 FE0F ; fully-qualified # 🖥️ desktop computer +1F5A5 ; unqualified # 🖥 desktop computer +1F5A8 FE0F ; fully-qualified # 🖨️ printer +1F5A8 ; unqualified # 🖨 printer +2328 FE0F ; fully-qualified # ⌨️ keyboard +2328 ; unqualified # ⌨ keyboard +1F5B1 FE0F ; fully-qualified # 🖱️ computer mouse +1F5B1 ; unqualified # 🖱 computer mouse +1F5B2 FE0F ; fully-qualified # 🖲️ trackball +1F5B2 ; unqualified # 🖲 trackball +1F4BD ; fully-qualified # 💽 computer disk +1F4BE ; fully-qualified # 💾 floppy disk +1F4BF ; fully-qualified # 💿 optical disk +1F4C0 ; fully-qualified # 📀 dvd +1F9EE ; fully-qualified # 🧮 abacus + +# subgroup: light & video +1F3A5 ; fully-qualified # 🎥 movie camera +1F39E FE0F ; fully-qualified # 🎞️ film frames +1F39E ; unqualified # 🎞 film frames +1F4FD FE0F ; fully-qualified # 📽️ film projector +1F4FD ; unqualified # 📽 film projector +1F3AC ; fully-qualified # 🎬 clapper board +1F4FA ; fully-qualified # 📺 television +1F4F7 ; fully-qualified # 📷 camera +1F4F8 ; fully-qualified # 📸 camera with flash +1F4F9 ; fully-qualified # 📹 video camera +1F4FC ; fully-qualified # 📼 videocassette +1F50D ; fully-qualified # 🔍 magnifying glass tilted left +1F50E ; fully-qualified # 🔎 magnifying glass tilted right +1F56F FE0F ; fully-qualified # 🕯️ candle +1F56F ; unqualified # 🕯 candle +1F4A1 ; fully-qualified # 💡 light bulb +1F526 ; fully-qualified # 🔦 flashlight +1F3EE ; fully-qualified # 🏮 red paper lantern +1FA94 ; fully-qualified # 🪔 diya lamp + +# subgroup: book-paper +1F4D4 ; fully-qualified # 📔 notebook with decorative cover +1F4D5 ; fully-qualified # 📕 closed book +1F4D6 ; fully-qualified # 📖 open book +1F4D7 ; fully-qualified # 📗 green book +1F4D8 ; fully-qualified # 📘 blue book +1F4D9 ; fully-qualified # 📙 orange book +1F4DA ; fully-qualified # 📚 books +1F4D3 ; fully-qualified # 📓 notebook +1F4D2 ; fully-qualified # 📒 ledger +1F4C3 ; fully-qualified # 📃 page with curl +1F4DC ; fully-qualified # 📜 scroll +1F4C4 ; fully-qualified # 📄 page facing up +1F4F0 ; fully-qualified # 📰 newspaper +1F5DE FE0F ; fully-qualified # 🗞️ rolled-up newspaper +1F5DE ; unqualified # 🗞 rolled-up newspaper +1F4D1 ; fully-qualified # 📑 bookmark tabs +1F516 ; fully-qualified # 🔖 bookmark +1F3F7 FE0F ; fully-qualified # 🏷️ label +1F3F7 ; unqualified # 🏷 label + +# subgroup: money +1F4B0 ; fully-qualified # 💰 money bag +1F4B4 ; fully-qualified # 💴 yen banknote +1F4B5 ; fully-qualified # 💵 dollar banknote +1F4B6 ; fully-qualified # 💶 euro banknote +1F4B7 ; fully-qualified # 💷 pound banknote +1F4B8 ; fully-qualified # 💸 money with wings +1F4B3 ; fully-qualified # 💳 credit card +1F9FE ; fully-qualified # 🧾 receipt +1F4B9 ; fully-qualified # 💹 chart increasing with yen +1F4B1 ; fully-qualified # 💱 currency exchange +1F4B2 ; fully-qualified # 💲 heavy dollar sign + +# subgroup: mail +2709 FE0F ; fully-qualified # ✉️ envelope +2709 ; unqualified # ✉ envelope +1F4E7 ; fully-qualified # 📧 e-mail +1F4E8 ; fully-qualified # 📨 incoming envelope +1F4E9 ; fully-qualified # 📩 envelope with arrow +1F4E4 ; fully-qualified # 📤 outbox tray +1F4E5 ; fully-qualified # 📥 inbox tray +1F4E6 ; fully-qualified # 📦 package +1F4EB ; fully-qualified # 📫 closed mailbox with raised flag +1F4EA ; fully-qualified # 📪 closed mailbox with lowered flag +1F4EC ; fully-qualified # 📬 open mailbox with raised flag +1F4ED ; fully-qualified # 📭 open mailbox with lowered flag +1F4EE ; fully-qualified # 📮 postbox +1F5F3 FE0F ; fully-qualified # 🗳️ ballot box with ballot +1F5F3 ; unqualified # 🗳 ballot box with ballot + +# subgroup: writing +270F FE0F ; fully-qualified # ✏️ pencil +270F ; unqualified # ✏ pencil +2712 FE0F ; fully-qualified # ✒️ black nib +2712 ; unqualified # ✒ black nib +1F58B FE0F ; fully-qualified # 🖋️ fountain pen +1F58B ; unqualified # 🖋 fountain pen +1F58A FE0F ; fully-qualified # 🖊️ pen +1F58A ; unqualified # 🖊 pen +1F58C FE0F ; fully-qualified # 🖌️ paintbrush +1F58C ; unqualified # 🖌 paintbrush +1F58D FE0F ; fully-qualified # 🖍️ crayon +1F58D ; unqualified # 🖍 crayon +1F4DD ; fully-qualified # 📝 memo + +# subgroup: office +1F4BC ; fully-qualified # 💼 briefcase +1F4C1 ; fully-qualified # 📁 file folder +1F4C2 ; fully-qualified # 📂 open file folder +1F5C2 FE0F ; fully-qualified # 🗂️ card index dividers +1F5C2 ; unqualified # 🗂 card index dividers +1F4C5 ; fully-qualified # 📅 calendar +1F4C6 ; fully-qualified # 📆 tear-off calendar +1F5D2 FE0F ; fully-qualified # 🗒️ spiral notepad +1F5D2 ; unqualified # 🗒 spiral notepad +1F5D3 FE0F ; fully-qualified # 🗓️ spiral calendar +1F5D3 ; unqualified # 🗓 spiral calendar +1F4C7 ; fully-qualified # 📇 card index +1F4C8 ; fully-qualified # 📈 chart increasing +1F4C9 ; fully-qualified # 📉 chart decreasing +1F4CA ; fully-qualified # 📊 bar chart +1F4CB ; fully-qualified # 📋 clipboard +1F4CC ; fully-qualified # 📌 pushpin +1F4CD ; fully-qualified # 📍 round pushpin +1F4CE ; fully-qualified # 📎 paperclip +1F587 FE0F ; fully-qualified # 🖇️ linked paperclips +1F587 ; unqualified # 🖇 linked paperclips +1F4CF ; fully-qualified # 📏 straight ruler +1F4D0 ; fully-qualified # 📐 triangular ruler +2702 FE0F ; fully-qualified # ✂️ scissors +2702 ; unqualified # ✂ scissors +1F5C3 FE0F ; fully-qualified # 🗃️ card file box +1F5C3 ; unqualified # 🗃 card file box +1F5C4 FE0F ; fully-qualified # 🗄️ file cabinet +1F5C4 ; unqualified # 🗄 file cabinet +1F5D1 FE0F ; fully-qualified # 🗑️ wastebasket +1F5D1 ; unqualified # 🗑 wastebasket + +# subgroup: lock +1F512 ; fully-qualified # 🔒 locked +1F513 ; fully-qualified # 🔓 unlocked +1F50F ; fully-qualified # 🔏 locked with pen +1F510 ; fully-qualified # 🔐 locked with key +1F511 ; fully-qualified # 🔑 key +1F5DD FE0F ; fully-qualified # 🗝️ old key +1F5DD ; unqualified # 🗝 old key + +# subgroup: tool +1F528 ; fully-qualified # 🔨 hammer +1FA93 ; fully-qualified # 🪓 axe +26CF FE0F ; fully-qualified # ⛏️ pick +26CF ; unqualified # ⛏ pick +2692 FE0F ; fully-qualified # ⚒️ hammer and pick +2692 ; unqualified # ⚒ hammer and pick +1F6E0 FE0F ; fully-qualified # 🛠️ hammer and wrench +1F6E0 ; unqualified # 🛠 hammer and wrench +1F5E1 FE0F ; fully-qualified # 🗡️ dagger +1F5E1 ; unqualified # 🗡 dagger +2694 FE0F ; fully-qualified # ⚔️ crossed swords +2694 ; unqualified # ⚔ crossed swords +1F52B ; fully-qualified # 🔫 pistol +1F3F9 ; fully-qualified # 🏹 bow and arrow +1F6E1 FE0F ; fully-qualified # 🛡️ shield +1F6E1 ; unqualified # 🛡 shield +1F527 ; fully-qualified # 🔧 wrench +1F529 ; fully-qualified # 🔩 nut and bolt +2699 FE0F ; fully-qualified # ⚙️ gear +2699 ; unqualified # ⚙ gear +1F5DC FE0F ; fully-qualified # 🗜️ clamp +1F5DC ; unqualified # 🗜 clamp +2696 FE0F ; fully-qualified # ⚖️ balance scale +2696 ; unqualified # ⚖ balance scale +1F9AF ; fully-qualified # 🦯 probing cane +1F517 ; fully-qualified # 🔗 link +26D3 FE0F ; fully-qualified # ⛓️ chains +26D3 ; unqualified # ⛓ chains +1F9F0 ; fully-qualified # 🧰 toolbox +1F9F2 ; fully-qualified # 🧲 magnet + +# subgroup: science +2697 FE0F ; fully-qualified # ⚗️ alembic +2697 ; unqualified # ⚗ alembic +1F9EA ; fully-qualified # 🧪 test tube +1F9EB ; fully-qualified # 🧫 petri dish +1F9EC ; fully-qualified # 🧬 dna +1F52C ; fully-qualified # 🔬 microscope +1F52D ; fully-qualified # 🔭 telescope +1F4E1 ; fully-qualified # 📡 satellite antenna + +# subgroup: medical +1F489 ; fully-qualified # 💉 syringe +1FA78 ; fully-qualified # 🩸 drop of blood +1F48A ; fully-qualified # 💊 pill +1FA79 ; fully-qualified # 🩹 adhesive bandage +1FA7A ; fully-qualified # 🩺 stethoscope + +# subgroup: household +1F6AA ; fully-qualified # 🚪 door +1F6CF FE0F ; fully-qualified # 🛏️ bed +1F6CF ; unqualified # 🛏 bed +1F6CB FE0F ; fully-qualified # 🛋️ couch and lamp +1F6CB ; unqualified # 🛋 couch and lamp +1FA91 ; fully-qualified # 🪑 chair +1F6BD ; fully-qualified # 🚽 toilet +1F6BF ; fully-qualified # 🚿 shower +1F6C1 ; fully-qualified # 🛁 bathtub +1FA92 ; fully-qualified # 🪒 razor +1F9F4 ; fully-qualified # 🧴 lotion bottle +1F9F7 ; fully-qualified # 🧷 safety pin +1F9F9 ; fully-qualified # 🧹 broom +1F9FA ; fully-qualified # 🧺 basket +1F9FB ; fully-qualified # 🧻 roll of paper +1F9FC ; fully-qualified # 🧼 soap +1F9FD ; fully-qualified # 🧽 sponge +1F9EF ; fully-qualified # 🧯 fire extinguisher +1F6D2 ; fully-qualified # 🛒 shopping cart + +# subgroup: other-object +1F6AC ; fully-qualified # 🚬 cigarette +26B0 FE0F ; fully-qualified # ⚰️ coffin +26B0 ; unqualified # ⚰ coffin +26B1 FE0F ; fully-qualified # ⚱️ funeral urn +26B1 ; unqualified # ⚱ funeral urn +1F5FF ; fully-qualified # 🗿 moai + +# Objects subtotal: 282 +# Objects subtotal: 282 w/o modifiers + +# group: Symbols + +# subgroup: transport-sign +1F3E7 ; fully-qualified # 🏧 ATM sign +1F6AE ; fully-qualified # 🚮 litter in bin sign +1F6B0 ; fully-qualified # 🚰 potable water +267F ; fully-qualified # ♿ wheelchair symbol +1F6B9 ; fully-qualified # 🚹 men’s room +1F6BA ; fully-qualified # 🚺 women’s room +1F6BB ; fully-qualified # 🚻 restroom +1F6BC ; fully-qualified # 🚼 baby symbol +1F6BE ; fully-qualified # 🚾 water closet +1F6C2 ; fully-qualified # 🛂 passport control +1F6C3 ; fully-qualified # 🛃 customs +1F6C4 ; fully-qualified # 🛄 baggage claim +1F6C5 ; fully-qualified # 🛅 left luggage + +# subgroup: warning +26A0 FE0F ; fully-qualified # ⚠️ warning +26A0 ; unqualified # ⚠ warning +1F6B8 ; fully-qualified # 🚸 children crossing +26D4 ; fully-qualified # ⛔ no entry +1F6AB ; fully-qualified # 🚫 prohibited +1F6B3 ; fully-qualified # 🚳 no bicycles +1F6AD ; fully-qualified # 🚭 no smoking +1F6AF ; fully-qualified # 🚯 no littering +1F6B1 ; fully-qualified # 🚱 non-potable water +1F6B7 ; fully-qualified # 🚷 no pedestrians +1F4F5 ; fully-qualified # 📵 no mobile phones +1F51E ; fully-qualified # 🔞 no one under eighteen +2622 FE0F ; fully-qualified # ☢️ radioactive +2622 ; unqualified # ☢ radioactive +2623 FE0F ; fully-qualified # ☣️ biohazard +2623 ; unqualified # ☣ biohazard + +# subgroup: arrow +2B06 FE0F ; fully-qualified # ⬆️ up arrow +2B06 ; unqualified # ⬆ up arrow +2197 FE0F ; fully-qualified # ↗️ up-right arrow +2197 ; unqualified # ↗ up-right arrow +27A1 FE0F ; fully-qualified # ➡️ right arrow +27A1 ; unqualified # ➡ right arrow +2198 FE0F ; fully-qualified # ↘️ down-right arrow +2198 ; unqualified # ↘ down-right arrow +2B07 FE0F ; fully-qualified # ⬇️ down arrow +2B07 ; unqualified # ⬇ down arrow +2199 FE0F ; fully-qualified # ↙️ down-left arrow +2199 ; unqualified # ↙ down-left arrow +2B05 FE0F ; fully-qualified # ⬅️ left arrow +2B05 ; unqualified # ⬅ left arrow +2196 FE0F ; fully-qualified # ↖️ up-left arrow +2196 ; unqualified # ↖ up-left arrow +2195 FE0F ; fully-qualified # ↕️ up-down arrow +2195 ; unqualified # ↕ up-down arrow +2194 FE0F ; fully-qualified # ↔️ left-right arrow +2194 ; unqualified # ↔ left-right arrow +21A9 FE0F ; fully-qualified # ↩️ right arrow curving left +21A9 ; unqualified # ↩ right arrow curving left +21AA FE0F ; fully-qualified # ↪️ left arrow curving right +21AA ; unqualified # ↪ left arrow curving right +2934 FE0F ; fully-qualified # ⤴️ right arrow curving up +2934 ; unqualified # ⤴ right arrow curving up +2935 FE0F ; fully-qualified # ⤵️ right arrow curving down +2935 ; unqualified # ⤵ right arrow curving down +1F503 ; fully-qualified # 🔃 clockwise vertical arrows +1F504 ; fully-qualified # 🔄 counterclockwise arrows button +1F519 ; fully-qualified # 🔙 BACK arrow +1F51A ; fully-qualified # 🔚 END arrow +1F51B ; fully-qualified # 🔛 ON! arrow +1F51C ; fully-qualified # 🔜 SOON arrow +1F51D ; fully-qualified # 🔝 TOP arrow + +# subgroup: religion +1F6D0 ; fully-qualified # 🛐 place of worship +269B FE0F ; fully-qualified # ⚛️ atom symbol +269B ; unqualified # ⚛ atom symbol +1F549 FE0F ; fully-qualified # 🕉️ om +1F549 ; unqualified # 🕉 om +2721 FE0F ; fully-qualified # ✡️ star of David +2721 ; unqualified # ✡ star of David +2638 FE0F ; fully-qualified # ☸️ wheel of dharma +2638 ; unqualified # ☸ wheel of dharma +262F FE0F ; fully-qualified # ☯️ yin yang +262F ; unqualified # ☯ yin yang +271D FE0F ; fully-qualified # ✝️ latin cross +271D ; unqualified # ✝ latin cross +2626 FE0F ; fully-qualified # ☦️ orthodox cross +2626 ; unqualified # ☦ orthodox cross +262A FE0F ; fully-qualified # ☪️ star and crescent +262A ; unqualified # ☪ star and crescent +262E FE0F ; fully-qualified # ☮️ peace symbol +262E ; unqualified # ☮ peace symbol +1F54E ; fully-qualified # 🕎 menorah +1F52F ; fully-qualified # 🔯 dotted six-pointed star + +# subgroup: zodiac +2648 ; fully-qualified # ♈ Aries +2649 ; fully-qualified # ♉ Taurus +264A ; fully-qualified # ♊ Gemini +264B ; fully-qualified # ♋ Cancer +264C ; fully-qualified # ♌ Leo +264D ; fully-qualified # ♍ Virgo +264E ; fully-qualified # ♎ Libra +264F ; fully-qualified # ♏ Scorpio +2650 ; fully-qualified # ♐ Sagittarius +2651 ; fully-qualified # ♑ Capricorn +2652 ; fully-qualified # ♒ Aquarius +2653 ; fully-qualified # ♓ Pisces +26CE ; fully-qualified # ⛎ Ophiuchus + +# subgroup: av-symbol +1F500 ; fully-qualified # 🔀 shuffle tracks button +1F501 ; fully-qualified # 🔁 repeat button +1F502 ; fully-qualified # 🔂 repeat single button +25B6 FE0F ; fully-qualified # ▶️ play button +25B6 ; unqualified # ▶ play button +23E9 ; fully-qualified # ⏩ fast-forward button +23ED FE0F ; fully-qualified # ⏭️ next track button +23ED ; unqualified # ⏭ next track button +23EF FE0F ; fully-qualified # ⏯️ play or pause button +23EF ; unqualified # ⏯ play or pause button +25C0 FE0F ; fully-qualified # ◀️ reverse button +25C0 ; unqualified # ◀ reverse button +23EA ; fully-qualified # ⏪ fast reverse button +23EE FE0F ; fully-qualified # ⏮️ last track button +23EE ; unqualified # ⏮ last track button +1F53C ; fully-qualified # 🔼 upwards button +23EB ; fully-qualified # ⏫ fast up button +1F53D ; fully-qualified # 🔽 downwards button +23EC ; fully-qualified # ⏬ fast down button +23F8 FE0F ; fully-qualified # ⏸️ pause button +23F8 ; unqualified # ⏸ pause button +23F9 FE0F ; fully-qualified # ⏹️ stop button +23F9 ; unqualified # ⏹ stop button +23FA FE0F ; fully-qualified # ⏺️ record button +23FA ; unqualified # ⏺ record button +23CF FE0F ; fully-qualified # ⏏️ eject button +23CF ; unqualified # ⏏ eject button +1F3A6 ; fully-qualified # 🎦 cinema +1F505 ; fully-qualified # 🔅 dim button +1F506 ; fully-qualified # 🔆 bright button +1F4F6 ; fully-qualified # 📶 antenna bars +1F4F3 ; fully-qualified # 📳 vibration mode +1F4F4 ; fully-qualified # 📴 mobile phone off + +# subgroup: gender +2640 FE0F ; fully-qualified # ♀️ female sign +2640 ; unqualified # ♀ female sign +2642 FE0F ; fully-qualified # ♂️ male sign +2642 ; unqualified # ♂ male sign + +# subgroup: other-symbol +2695 FE0F ; fully-qualified # ⚕️ medical symbol +2695 ; unqualified # ⚕ medical symbol +267E FE0F ; fully-qualified # ♾️ infinity +267E ; unqualified # ♾ infinity +267B FE0F ; fully-qualified # ♻️ recycling symbol +267B ; unqualified # ♻ recycling symbol +269C FE0F ; fully-qualified # ⚜️ fleur-de-lis +269C ; unqualified # ⚜ fleur-de-lis +1F531 ; fully-qualified # 🔱 trident emblem +1F4DB ; fully-qualified # 📛 name badge +1F530 ; fully-qualified # 🔰 Japanese symbol for beginner +2B55 ; fully-qualified # ⭕ hollow red circle +2705 ; fully-qualified # ✅ check mark button +2611 FE0F ; fully-qualified # ☑️ check box with check +2611 ; unqualified # ☑ check box with check +2714 FE0F ; fully-qualified # ✔️ check mark +2714 ; unqualified # ✔ check mark +2716 FE0F ; fully-qualified # ✖️ multiplication sign +2716 ; unqualified # ✖ multiplication sign +274C ; fully-qualified # ❌ cross mark +274E ; fully-qualified # ❎ cross mark button +2795 ; fully-qualified # ➕ plus sign +2796 ; fully-qualified # ➖ minus sign +2797 ; fully-qualified # ➗ division sign +27B0 ; fully-qualified # ➰ curly loop +27BF ; fully-qualified # ➿ double curly loop +303D FE0F ; fully-qualified # 〽️ part alternation mark +303D ; unqualified # 〽 part alternation mark +2733 FE0F ; fully-qualified # ✳️ eight-spoked asterisk +2733 ; unqualified # ✳ eight-spoked asterisk +2734 FE0F ; fully-qualified # ✴️ eight-pointed star +2734 ; unqualified # ✴ eight-pointed star +2747 FE0F ; fully-qualified # ❇️ sparkle +2747 ; unqualified # ❇ sparkle +203C FE0F ; fully-qualified # ‼️ double exclamation mark +203C ; unqualified # ‼ double exclamation mark +2049 FE0F ; fully-qualified # ⁉️ exclamation question mark +2049 ; unqualified # ⁉ exclamation question mark +2753 ; fully-qualified # ❓ question mark +2754 ; fully-qualified # ❔ white question mark +2755 ; fully-qualified # ❕ white exclamation mark +2757 ; fully-qualified # ❗ exclamation mark +3030 FE0F ; fully-qualified # 〰️ wavy dash +3030 ; unqualified # 〰 wavy dash +00A9 FE0F ; fully-qualified # ©️ copyright +00A9 ; unqualified # © copyright +00AE FE0F ; fully-qualified # ®️ registered +00AE ; unqualified # ® registered +2122 FE0F ; fully-qualified # ™️ trade mark +2122 ; unqualified # ™ trade mark + +# subgroup: keycap +0023 FE0F 20E3 ; fully-qualified # #️⃣ keycap: # +0023 20E3 ; unqualified # #⃣ keycap: # +002A FE0F 20E3 ; fully-qualified # *️⃣ keycap: * +002A 20E3 ; unqualified # *⃣ keycap: * +0030 FE0F 20E3 ; fully-qualified # 0️⃣ keycap: 0 +0030 20E3 ; unqualified # 0⃣ keycap: 0 +0031 FE0F 20E3 ; fully-qualified # 1️⃣ keycap: 1 +0031 20E3 ; unqualified # 1⃣ keycap: 1 +0032 FE0F 20E3 ; fully-qualified # 2️⃣ keycap: 2 +0032 20E3 ; unqualified # 2⃣ keycap: 2 +0033 FE0F 20E3 ; fully-qualified # 3️⃣ keycap: 3 +0033 20E3 ; unqualified # 3⃣ keycap: 3 +0034 FE0F 20E3 ; fully-qualified # 4️⃣ keycap: 4 +0034 20E3 ; unqualified # 4⃣ keycap: 4 +0035 FE0F 20E3 ; fully-qualified # 5️⃣ keycap: 5 +0035 20E3 ; unqualified # 5⃣ keycap: 5 +0036 FE0F 20E3 ; fully-qualified # 6️⃣ keycap: 6 +0036 20E3 ; unqualified # 6⃣ keycap: 6 +0037 FE0F 20E3 ; fully-qualified # 7️⃣ keycap: 7 +0037 20E3 ; unqualified # 7⃣ keycap: 7 +0038 FE0F 20E3 ; fully-qualified # 8️⃣ keycap: 8 +0038 20E3 ; unqualified # 8⃣ keycap: 8 +0039 FE0F 20E3 ; fully-qualified # 9️⃣ keycap: 9 +0039 20E3 ; unqualified # 9⃣ keycap: 9 +1F51F ; fully-qualified # 🔟 keycap: 10 + +# subgroup: alphanum +1F520 ; fully-qualified # 🔠 input latin uppercase +1F521 ; fully-qualified # 🔡 input latin lowercase +1F522 ; fully-qualified # 🔢 input numbers +1F523 ; fully-qualified # 🔣 input symbols +1F524 ; fully-qualified # 🔤 input latin letters +1F170 FE0F ; fully-qualified # 🅰️ A button (blood type) +1F170 ; unqualified # 🅰 A button (blood type) +1F18E ; fully-qualified # 🆎 AB button (blood type) +1F171 FE0F ; fully-qualified # 🅱️ B button (blood type) +1F171 ; unqualified # 🅱 B button (blood type) +1F191 ; fully-qualified # 🆑 CL button +1F192 ; fully-qualified # 🆒 COOL button +1F193 ; fully-qualified # 🆓 FREE button +2139 FE0F ; fully-qualified # ℹ️ information +2139 ; unqualified # ℹ information +1F194 ; fully-qualified # 🆔 ID button +24C2 FE0F ; fully-qualified # Ⓜ️ circled M +24C2 ; unqualified # Ⓜ circled M +1F195 ; fully-qualified # 🆕 NEW button +1F196 ; fully-qualified # 🆖 NG button +1F17E FE0F ; fully-qualified # 🅾️ O button (blood type) +1F17E ; unqualified # 🅾 O button (blood type) +1F197 ; fully-qualified # 🆗 OK button +1F17F FE0F ; fully-qualified # 🅿️ P button +1F17F ; unqualified # 🅿 P button +1F198 ; fully-qualified # 🆘 SOS button +1F199 ; fully-qualified # 🆙 UP! button +1F19A ; fully-qualified # 🆚 VS button +1F201 ; fully-qualified # 🈁 Japanese “here” button +1F202 FE0F ; fully-qualified # 🈂️ Japanese “service charge” button +1F202 ; unqualified # 🈂 Japanese “service charge” button +1F237 FE0F ; fully-qualified # 🈷️ Japanese “monthly amount” button +1F237 ; unqualified # 🈷 Japanese “monthly amount” button +1F236 ; fully-qualified # 🈶 Japanese “not free of charge” button +1F22F ; fully-qualified # 🈯 Japanese “reserved” button +1F250 ; fully-qualified # 🉐 Japanese “bargain” button +1F239 ; fully-qualified # 🈹 Japanese “discount” button +1F21A ; fully-qualified # 🈚 Japanese “free of charge” button +1F232 ; fully-qualified # 🈲 Japanese “prohibited” button +1F251 ; fully-qualified # 🉑 Japanese “acceptable” button +1F238 ; fully-qualified # 🈸 Japanese “application” button +1F234 ; fully-qualified # 🈴 Japanese “passing grade” button +1F233 ; fully-qualified # 🈳 Japanese “vacancy” button +3297 FE0F ; fully-qualified # ㊗️ Japanese “congratulations” button +3297 ; unqualified # ㊗ Japanese “congratulations” button +3299 FE0F ; fully-qualified # ㊙️ Japanese “secret” button +3299 ; unqualified # ㊙ Japanese “secret” button +1F23A ; fully-qualified # 🈺 Japanese “open for business” button +1F235 ; fully-qualified # 🈵 Japanese “no vacancy” button + +# subgroup: geometric +1F534 ; fully-qualified # 🔴 red circle +1F7E0 ; fully-qualified # 🟠 orange circle +1F7E1 ; fully-qualified # 🟡 yellow circle +1F7E2 ; fully-qualified # 🟢 green circle +1F535 ; fully-qualified # 🔵 blue circle +1F7E3 ; fully-qualified # 🟣 purple circle +1F7E4 ; fully-qualified # 🟤 brown circle +26AB ; fully-qualified # ⚫ black circle +26AA ; fully-qualified # ⚪ white circle +1F7E5 ; fully-qualified # 🟥 red square +1F7E7 ; fully-qualified # 🟧 orange square +1F7E8 ; fully-qualified # 🟨 yellow square +1F7E9 ; fully-qualified # 🟩 green square +1F7E6 ; fully-qualified # 🟦 blue square +1F7EA ; fully-qualified # 🟪 purple square +1F7EB ; fully-qualified # 🟫 brown square +2B1B ; fully-qualified # ⬛ black large square +2B1C ; fully-qualified # ⬜ white large square +25FC FE0F ; fully-qualified # ◼️ black medium square +25FC ; unqualified # ◼ black medium square +25FB FE0F ; fully-qualified # ◻️ white medium square +25FB ; unqualified # ◻ white medium square +25FE ; fully-qualified # ◾ black medium-small square +25FD ; fully-qualified # ◽ white medium-small square +25AA FE0F ; fully-qualified # ▪️ black small square +25AA ; unqualified # ▪ black small square +25AB FE0F ; fully-qualified # ▫️ white small square +25AB ; unqualified # ▫ white small square +1F536 ; fully-qualified # 🔶 large orange diamond +1F537 ; fully-qualified # 🔷 large blue diamond +1F538 ; fully-qualified # 🔸 small orange diamond +1F539 ; fully-qualified # 🔹 small blue diamond +1F53A ; fully-qualified # 🔺 red triangle pointed up +1F53B ; fully-qualified # 🔻 red triangle pointed down +1F4A0 ; fully-qualified # 💠 diamond with a dot +1F518 ; fully-qualified # 🔘 radio button +1F533 ; fully-qualified # 🔳 white square button +1F532 ; fully-qualified # 🔲 black square button + +# Symbols subtotal: 297 +# Symbols subtotal: 297 w/o modifiers + +# group: Flags + +# subgroup: flag +1F3C1 ; fully-qualified # 🏁 chequered flag +1F6A9 ; fully-qualified # 🚩 triangular flag +1F38C ; fully-qualified # 🎌 crossed flags +1F3F4 ; fully-qualified # 🏴 black flag +1F3F3 FE0F ; fully-qualified # 🏳️ white flag +1F3F3 ; unqualified # 🏳 white flag +1F3F3 FE0F 200D 1F308 ; fully-qualified # 🏳️🌈 rainbow flag +1F3F3 200D 1F308 ; unqualified # 🏳🌈 rainbow flag +1F3F4 200D 2620 FE0F ; fully-qualified # 🏴☠️ pirate flag +1F3F4 200D 2620 ; minimally-qualified # 🏴☠ pirate flag + +# subgroup: country-flag +1F1E6 1F1E8 ; fully-qualified # 🇦🇨 flag: Ascension Island +1F1E6 1F1E9 ; fully-qualified # 🇦🇩 flag: Andorra +1F1E6 1F1EA ; fully-qualified # 🇦🇪 flag: United Arab Emirates +1F1E6 1F1EB ; fully-qualified # 🇦🇫 flag: Afghanistan +1F1E6 1F1EC ; fully-qualified # 🇦🇬 flag: Antigua & Barbuda +1F1E6 1F1EE ; fully-qualified # 🇦🇮 flag: Anguilla +1F1E6 1F1F1 ; fully-qualified # 🇦🇱 flag: Albania +1F1E6 1F1F2 ; fully-qualified # 🇦🇲 flag: Armenia +1F1E6 1F1F4 ; fully-qualified # 🇦🇴 flag: Angola +1F1E6 1F1F6 ; fully-qualified # 🇦🇶 flag: Antarctica +1F1E6 1F1F7 ; fully-qualified # 🇦🇷 flag: Argentina +1F1E6 1F1F8 ; fully-qualified # 🇦🇸 flag: American Samoa +1F1E6 1F1F9 ; fully-qualified # 🇦🇹 flag: Austria +1F1E6 1F1FA ; fully-qualified # 🇦🇺 flag: Australia +1F1E6 1F1FC ; fully-qualified # 🇦🇼 flag: Aruba +1F1E6 1F1FD ; fully-qualified # 🇦🇽 flag: Åland Islands +1F1E6 1F1FF ; fully-qualified # 🇦🇿 flag: Azerbaijan +1F1E7 1F1E6 ; fully-qualified # 🇧🇦 flag: Bosnia & Herzegovina +1F1E7 1F1E7 ; fully-qualified # 🇧🇧 flag: Barbados +1F1E7 1F1E9 ; fully-qualified # 🇧🇩 flag: Bangladesh +1F1E7 1F1EA ; fully-qualified # 🇧🇪 flag: Belgium +1F1E7 1F1EB ; fully-qualified # 🇧🇫 flag: Burkina Faso +1F1E7 1F1EC ; fully-qualified # 🇧🇬 flag: Bulgaria +1F1E7 1F1ED ; fully-qualified # 🇧🇭 flag: Bahrain +1F1E7 1F1EE ; fully-qualified # 🇧🇮 flag: Burundi +1F1E7 1F1EF ; fully-qualified # 🇧🇯 flag: Benin +1F1E7 1F1F1 ; fully-qualified # 🇧🇱 flag: St. Barthélemy +1F1E7 1F1F2 ; fully-qualified # 🇧🇲 flag: Bermuda +1F1E7 1F1F3 ; fully-qualified # 🇧🇳 flag: Brunei +1F1E7 1F1F4 ; fully-qualified # 🇧🇴 flag: Bolivia +1F1E7 1F1F6 ; fully-qualified # 🇧🇶 flag: Caribbean Netherlands +1F1E7 1F1F7 ; fully-qualified # 🇧🇷 flag: Brazil +1F1E7 1F1F8 ; fully-qualified # 🇧🇸 flag: Bahamas +1F1E7 1F1F9 ; fully-qualified # 🇧🇹 flag: Bhutan +1F1E7 1F1FB ; fully-qualified # 🇧🇻 flag: Bouvet Island +1F1E7 1F1FC ; fully-qualified # 🇧🇼 flag: Botswana +1F1E7 1F1FE ; fully-qualified # 🇧🇾 flag: Belarus +1F1E7 1F1FF ; fully-qualified # 🇧🇿 flag: Belize +1F1E8 1F1E6 ; fully-qualified # 🇨🇦 flag: Canada +1F1E8 1F1E8 ; fully-qualified # 🇨🇨 flag: Cocos (Keeling) Islands +1F1E8 1F1E9 ; fully-qualified # 🇨🇩 flag: Congo - Kinshasa +1F1E8 1F1EB ; fully-qualified # 🇨🇫 flag: Central African Republic +1F1E8 1F1EC ; fully-qualified # 🇨🇬 flag: Congo - Brazzaville +1F1E8 1F1ED ; fully-qualified # 🇨🇭 flag: Switzerland +1F1E8 1F1EE ; fully-qualified # 🇨🇮 flag: Côte d’Ivoire +1F1E8 1F1F0 ; fully-qualified # 🇨🇰 flag: Cook Islands +1F1E8 1F1F1 ; fully-qualified # 🇨🇱 flag: Chile +1F1E8 1F1F2 ; fully-qualified # 🇨🇲 flag: Cameroon +1F1E8 1F1F3 ; fully-qualified # 🇨🇳 flag: China +1F1E8 1F1F4 ; fully-qualified # 🇨🇴 flag: Colombia +1F1E8 1F1F5 ; fully-qualified # 🇨🇵 flag: Clipperton Island +1F1E8 1F1F7 ; fully-qualified # 🇨🇷 flag: Costa Rica +1F1E8 1F1FA ; fully-qualified # 🇨🇺 flag: Cuba +1F1E8 1F1FB ; fully-qualified # 🇨🇻 flag: Cape Verde +1F1E8 1F1FC ; fully-qualified # 🇨🇼 flag: Curaçao +1F1E8 1F1FD ; fully-qualified # 🇨🇽 flag: Christmas Island +1F1E8 1F1FE ; fully-qualified # 🇨🇾 flag: Cyprus +1F1E8 1F1FF ; fully-qualified # 🇨🇿 flag: Czechia +1F1E9 1F1EA ; fully-qualified # 🇩🇪 flag: Germany +1F1E9 1F1EC ; fully-qualified # 🇩🇬 flag: Diego Garcia +1F1E9 1F1EF ; fully-qualified # 🇩🇯 flag: Djibouti +1F1E9 1F1F0 ; fully-qualified # 🇩🇰 flag: Denmark +1F1E9 1F1F2 ; fully-qualified # 🇩🇲 flag: Dominica +1F1E9 1F1F4 ; fully-qualified # 🇩🇴 flag: Dominican Republic +1F1E9 1F1FF ; fully-qualified # 🇩🇿 flag: Algeria +1F1EA 1F1E6 ; fully-qualified # 🇪🇦 flag: Ceuta & Melilla +1F1EA 1F1E8 ; fully-qualified # 🇪🇨 flag: Ecuador +1F1EA 1F1EA ; fully-qualified # 🇪🇪 flag: Estonia +1F1EA 1F1EC ; fully-qualified # 🇪🇬 flag: Egypt +1F1EA 1F1ED ; fully-qualified # 🇪🇭 flag: Western Sahara +1F1EA 1F1F7 ; fully-qualified # 🇪🇷 flag: Eritrea +1F1EA 1F1F8 ; fully-qualified # 🇪🇸 flag: Spain +1F1EA 1F1F9 ; fully-qualified # 🇪🇹 flag: Ethiopia +1F1EA 1F1FA ; fully-qualified # 🇪🇺 flag: European Union +1F1EB 1F1EE ; fully-qualified # 🇫🇮 flag: Finland +1F1EB 1F1EF ; fully-qualified # 🇫🇯 flag: Fiji +1F1EB 1F1F0 ; fully-qualified # 🇫🇰 flag: Falkland Islands +1F1EB 1F1F2 ; fully-qualified # 🇫🇲 flag: Micronesia +1F1EB 1F1F4 ; fully-qualified # 🇫🇴 flag: Faroe Islands +1F1EB 1F1F7 ; fully-qualified # 🇫🇷 flag: France +1F1EC 1F1E6 ; fully-qualified # 🇬🇦 flag: Gabon +1F1EC 1F1E7 ; fully-qualified # 🇬🇧 flag: United Kingdom +1F1EC 1F1E9 ; fully-qualified # 🇬🇩 flag: Grenada +1F1EC 1F1EA ; fully-qualified # 🇬🇪 flag: Georgia +1F1EC 1F1EB ; fully-qualified # 🇬🇫 flag: French Guiana +1F1EC 1F1EC ; fully-qualified # 🇬🇬 flag: Guernsey +1F1EC 1F1ED ; fully-qualified # 🇬🇭 flag: Ghana +1F1EC 1F1EE ; fully-qualified # 🇬🇮 flag: Gibraltar +1F1EC 1F1F1 ; fully-qualified # 🇬🇱 flag: Greenland +1F1EC 1F1F2 ; fully-qualified # 🇬🇲 flag: Gambia +1F1EC 1F1F3 ; fully-qualified # 🇬🇳 flag: Guinea +1F1EC 1F1F5 ; fully-qualified # 🇬🇵 flag: Guadeloupe +1F1EC 1F1F6 ; fully-qualified # 🇬🇶 flag: Equatorial Guinea +1F1EC 1F1F7 ; fully-qualified # 🇬🇷 flag: Greece +1F1EC 1F1F8 ; fully-qualified # 🇬🇸 flag: South Georgia & South Sandwich Islands +1F1EC 1F1F9 ; fully-qualified # 🇬🇹 flag: Guatemala +1F1EC 1F1FA ; fully-qualified # 🇬🇺 flag: Guam +1F1EC 1F1FC ; fully-qualified # 🇬🇼 flag: Guinea-Bissau +1F1EC 1F1FE ; fully-qualified # 🇬🇾 flag: Guyana +1F1ED 1F1F0 ; fully-qualified # 🇭🇰 flag: Hong Kong SAR China +1F1ED 1F1F2 ; fully-qualified # 🇭🇲 flag: Heard & McDonald Islands +1F1ED 1F1F3 ; fully-qualified # 🇭🇳 flag: Honduras +1F1ED 1F1F7 ; fully-qualified # 🇭🇷 flag: Croatia +1F1ED 1F1F9 ; fully-qualified # 🇭🇹 flag: Haiti +1F1ED 1F1FA ; fully-qualified # 🇭🇺 flag: Hungary +1F1EE 1F1E8 ; fully-qualified # 🇮🇨 flag: Canary Islands +1F1EE 1F1E9 ; fully-qualified # 🇮🇩 flag: Indonesia +1F1EE 1F1EA ; fully-qualified # 🇮🇪 flag: Ireland +1F1EE 1F1F1 ; fully-qualified # 🇮🇱 flag: Israel +1F1EE 1F1F2 ; fully-qualified # 🇮🇲 flag: Isle of Man +1F1EE 1F1F3 ; fully-qualified # 🇮🇳 flag: India +1F1EE 1F1F4 ; fully-qualified # 🇮🇴 flag: British Indian Ocean Territory +1F1EE 1F1F6 ; fully-qualified # 🇮🇶 flag: Iraq +1F1EE 1F1F7 ; fully-qualified # 🇮🇷 flag: Iran +1F1EE 1F1F8 ; fully-qualified # 🇮🇸 flag: Iceland +1F1EE 1F1F9 ; fully-qualified # 🇮🇹 flag: Italy +1F1EF 1F1EA ; fully-qualified # 🇯🇪 flag: Jersey +1F1EF 1F1F2 ; fully-qualified # 🇯🇲 flag: Jamaica +1F1EF 1F1F4 ; fully-qualified # 🇯🇴 flag: Jordan +1F1EF 1F1F5 ; fully-qualified # 🇯🇵 flag: Japan +1F1F0 1F1EA ; fully-qualified # 🇰🇪 flag: Kenya +1F1F0 1F1EC ; fully-qualified # 🇰🇬 flag: Kyrgyzstan +1F1F0 1F1ED ; fully-qualified # 🇰🇭 flag: Cambodia +1F1F0 1F1EE ; fully-qualified # 🇰🇮 flag: Kiribati +1F1F0 1F1F2 ; fully-qualified # 🇰🇲 flag: Comoros +1F1F0 1F1F3 ; fully-qualified # 🇰🇳 flag: St. Kitts & Nevis +1F1F0 1F1F5 ; fully-qualified # 🇰🇵 flag: North Korea +1F1F0 1F1F7 ; fully-qualified # 🇰🇷 flag: South Korea +1F1F0 1F1FC ; fully-qualified # 🇰🇼 flag: Kuwait +1F1F0 1F1FE ; fully-qualified # 🇰🇾 flag: Cayman Islands +1F1F0 1F1FF ; fully-qualified # 🇰🇿 flag: Kazakhstan +1F1F1 1F1E6 ; fully-qualified # 🇱🇦 flag: Laos +1F1F1 1F1E7 ; fully-qualified # 🇱🇧 flag: Lebanon +1F1F1 1F1E8 ; fully-qualified # 🇱🇨 flag: St. Lucia +1F1F1 1F1EE ; fully-qualified # 🇱🇮 flag: Liechtenstein +1F1F1 1F1F0 ; fully-qualified # 🇱🇰 flag: Sri Lanka +1F1F1 1F1F7 ; fully-qualified # 🇱🇷 flag: Liberia +1F1F1 1F1F8 ; fully-qualified # 🇱🇸 flag: Lesotho +1F1F1 1F1F9 ; fully-qualified # 🇱🇹 flag: Lithuania +1F1F1 1F1FA ; fully-qualified # 🇱🇺 flag: Luxembourg +1F1F1 1F1FB ; fully-qualified # 🇱🇻 flag: Latvia +1F1F1 1F1FE ; fully-qualified # 🇱🇾 flag: Libya +1F1F2 1F1E6 ; fully-qualified # 🇲🇦 flag: Morocco +1F1F2 1F1E8 ; fully-qualified # 🇲🇨 flag: Monaco +1F1F2 1F1E9 ; fully-qualified # 🇲🇩 flag: Moldova +1F1F2 1F1EA ; fully-qualified # 🇲🇪 flag: Montenegro +1F1F2 1F1EB ; fully-qualified # 🇲🇫 flag: St. Martin +1F1F2 1F1EC ; fully-qualified # 🇲🇬 flag: Madagascar +1F1F2 1F1ED ; fully-qualified # 🇲🇭 flag: Marshall Islands +1F1F2 1F1F0 ; fully-qualified # 🇲🇰 flag: Macedonia +1F1F2 1F1F1 ; fully-qualified # 🇲🇱 flag: Mali +1F1F2 1F1F2 ; fully-qualified # 🇲🇲 flag: Myanmar (Burma) +1F1F2 1F1F3 ; fully-qualified # 🇲🇳 flag: Mongolia +1F1F2 1F1F4 ; fully-qualified # 🇲🇴 flag: Macao SAR China +1F1F2 1F1F5 ; fully-qualified # 🇲🇵 flag: Northern Mariana Islands +1F1F2 1F1F6 ; fully-qualified # 🇲🇶 flag: Martinique +1F1F2 1F1F7 ; fully-qualified # 🇲🇷 flag: Mauritania +1F1F2 1F1F8 ; fully-qualified # 🇲🇸 flag: Montserrat +1F1F2 1F1F9 ; fully-qualified # 🇲🇹 flag: Malta +1F1F2 1F1FA ; fully-qualified # 🇲🇺 flag: Mauritius +1F1F2 1F1FB ; fully-qualified # 🇲🇻 flag: Maldives +1F1F2 1F1FC ; fully-qualified # 🇲🇼 flag: Malawi +1F1F2 1F1FD ; fully-qualified # 🇲🇽 flag: Mexico +1F1F2 1F1FE ; fully-qualified # 🇲🇾 flag: Malaysia +1F1F2 1F1FF ; fully-qualified # 🇲🇿 flag: Mozambique +1F1F3 1F1E6 ; fully-qualified # 🇳🇦 flag: Namibia +1F1F3 1F1E8 ; fully-qualified # 🇳🇨 flag: New Caledonia +1F1F3 1F1EA ; fully-qualified # 🇳🇪 flag: Niger +1F1F3 1F1EB ; fully-qualified # 🇳🇫 flag: Norfolk Island +1F1F3 1F1EC ; fully-qualified # 🇳🇬 flag: Nigeria +1F1F3 1F1EE ; fully-qualified # 🇳🇮 flag: Nicaragua +1F1F3 1F1F1 ; fully-qualified # 🇳🇱 flag: Netherlands +1F1F3 1F1F4 ; fully-qualified # 🇳🇴 flag: Norway +1F1F3 1F1F5 ; fully-qualified # 🇳🇵 flag: Nepal +1F1F3 1F1F7 ; fully-qualified # 🇳🇷 flag: Nauru +1F1F3 1F1FA ; fully-qualified # 🇳🇺 flag: Niue +1F1F3 1F1FF ; fully-qualified # 🇳🇿 flag: New Zealand +1F1F4 1F1F2 ; fully-qualified # 🇴🇲 flag: Oman +1F1F5 1F1E6 ; fully-qualified # 🇵🇦 flag: Panama +1F1F5 1F1EA ; fully-qualified # 🇵🇪 flag: Peru +1F1F5 1F1EB ; fully-qualified # 🇵🇫 flag: French Polynesia +1F1F5 1F1EC ; fully-qualified # 🇵🇬 flag: Papua New Guinea +1F1F5 1F1ED ; fully-qualified # 🇵🇭 flag: Philippines +1F1F5 1F1F0 ; fully-qualified # 🇵🇰 flag: Pakistan +1F1F5 1F1F1 ; fully-qualified # 🇵🇱 flag: Poland +1F1F5 1F1F2 ; fully-qualified # 🇵🇲 flag: St. Pierre & Miquelon +1F1F5 1F1F3 ; fully-qualified # 🇵🇳 flag: Pitcairn Islands +1F1F5 1F1F7 ; fully-qualified # 🇵🇷 flag: Puerto Rico +1F1F5 1F1F8 ; fully-qualified # 🇵🇸 flag: Palestinian Territories +1F1F5 1F1F9 ; fully-qualified # 🇵🇹 flag: Portugal +1F1F5 1F1FC ; fully-qualified # 🇵🇼 flag: Palau +1F1F5 1F1FE ; fully-qualified # 🇵🇾 flag: Paraguay +1F1F6 1F1E6 ; fully-qualified # 🇶🇦 flag: Qatar +1F1F7 1F1EA ; fully-qualified # 🇷🇪 flag: Réunion +1F1F7 1F1F4 ; fully-qualified # 🇷🇴 flag: Romania +1F1F7 1F1F8 ; fully-qualified # 🇷🇸 flag: Serbia +1F1F7 1F1FA ; fully-qualified # 🇷🇺 flag: Russia +1F1F7 1F1FC ; fully-qualified # 🇷🇼 flag: Rwanda +1F1F8 1F1E6 ; fully-qualified # 🇸🇦 flag: Saudi Arabia +1F1F8 1F1E7 ; fully-qualified # 🇸🇧 flag: Solomon Islands +1F1F8 1F1E8 ; fully-qualified # 🇸🇨 flag: Seychelles +1F1F8 1F1E9 ; fully-qualified # 🇸🇩 flag: Sudan +1F1F8 1F1EA ; fully-qualified # 🇸🇪 flag: Sweden +1F1F8 1F1EC ; fully-qualified # 🇸🇬 flag: Singapore +1F1F8 1F1ED ; fully-qualified # 🇸🇭 flag: St. Helena +1F1F8 1F1EE ; fully-qualified # 🇸🇮 flag: Slovenia +1F1F8 1F1EF ; fully-qualified # 🇸🇯 flag: Svalbard & Jan Mayen +1F1F8 1F1F0 ; fully-qualified # 🇸🇰 flag: Slovakia +1F1F8 1F1F1 ; fully-qualified # 🇸🇱 flag: Sierra Leone +1F1F8 1F1F2 ; fully-qualified # 🇸🇲 flag: San Marino +1F1F8 1F1F3 ; fully-qualified # 🇸🇳 flag: Senegal +1F1F8 1F1F4 ; fully-qualified # 🇸🇴 flag: Somalia +1F1F8 1F1F7 ; fully-qualified # 🇸🇷 flag: Suriname +1F1F8 1F1F8 ; fully-qualified # 🇸🇸 flag: South Sudan +1F1F8 1F1F9 ; fully-qualified # 🇸🇹 flag: São Tomé & Príncipe +1F1F8 1F1FB ; fully-qualified # 🇸🇻 flag: El Salvador +1F1F8 1F1FD ; fully-qualified # 🇸🇽 flag: Sint Maarten +1F1F8 1F1FE ; fully-qualified # 🇸🇾 flag: Syria +1F1F8 1F1FF ; fully-qualified # 🇸🇿 flag: Eswatini +1F1F9 1F1E6 ; fully-qualified # 🇹🇦 flag: Tristan da Cunha +1F1F9 1F1E8 ; fully-qualified # 🇹🇨 flag: Turks & Caicos Islands +1F1F9 1F1E9 ; fully-qualified # 🇹🇩 flag: Chad +1F1F9 1F1EB ; fully-qualified # 🇹🇫 flag: French Southern Territories +1F1F9 1F1EC ; fully-qualified # 🇹🇬 flag: Togo +1F1F9 1F1ED ; fully-qualified # 🇹🇭 flag: Thailand +1F1F9 1F1EF ; fully-qualified # 🇹🇯 flag: Tajikistan +1F1F9 1F1F0 ; fully-qualified # 🇹🇰 flag: Tokelau +1F1F9 1F1F1 ; fully-qualified # 🇹🇱 flag: Timor-Leste +1F1F9 1F1F2 ; fully-qualified # 🇹🇲 flag: Turkmenistan +1F1F9 1F1F3 ; fully-qualified # 🇹🇳 flag: Tunisia +1F1F9 1F1F4 ; fully-qualified # 🇹🇴 flag: Tonga +1F1F9 1F1F7 ; fully-qualified # 🇹🇷 flag: Turkey +1F1F9 1F1F9 ; fully-qualified # 🇹🇹 flag: Trinidad & Tobago +1F1F9 1F1FB ; fully-qualified # 🇹🇻 flag: Tuvalu +1F1F9 1F1FC ; fully-qualified # 🇹🇼 flag: Taiwan +1F1F9 1F1FF ; fully-qualified # 🇹🇿 flag: Tanzania +1F1FA 1F1E6 ; fully-qualified # 🇺🇦 flag: Ukraine +1F1FA 1F1EC ; fully-qualified # 🇺🇬 flag: Uganda +1F1FA 1F1F2 ; fully-qualified # 🇺🇲 flag: U.S. Outlying Islands +1F1FA 1F1F3 ; fully-qualified # 🇺🇳 flag: United Nations +1F1FA 1F1F8 ; fully-qualified # 🇺🇸 flag: United States +1F1FA 1F1FE ; fully-qualified # 🇺🇾 flag: Uruguay +1F1FA 1F1FF ; fully-qualified # 🇺🇿 flag: Uzbekistan +1F1FB 1F1E6 ; fully-qualified # 🇻🇦 flag: Vatican City +1F1FB 1F1E8 ; fully-qualified # 🇻🇨 flag: St. Vincent & Grenadines +1F1FB 1F1EA ; fully-qualified # 🇻🇪 flag: Venezuela +1F1FB 1F1EC ; fully-qualified # 🇻🇬 flag: British Virgin Islands +1F1FB 1F1EE ; fully-qualified # 🇻🇮 flag: U.S. Virgin Islands +1F1FB 1F1F3 ; fully-qualified # 🇻🇳 flag: Vietnam +1F1FB 1F1FA ; fully-qualified # 🇻🇺 flag: Vanuatu +1F1FC 1F1EB ; fully-qualified # 🇼🇫 flag: Wallis & Futuna +1F1FC 1F1F8 ; fully-qualified # 🇼🇸 flag: Samoa +1F1FD 1F1F0 ; fully-qualified # 🇽🇰 flag: Kosovo +1F1FE 1F1EA ; fully-qualified # 🇾🇪 flag: Yemen +1F1FE 1F1F9 ; fully-qualified # 🇾🇹 flag: Mayotte +1F1FF 1F1E6 ; fully-qualified # 🇿🇦 flag: South Africa +1F1FF 1F1F2 ; fully-qualified # 🇿🇲 flag: Zambia +1F1FF 1F1FC ; fully-qualified # 🇿🇼 flag: Zimbabwe + +# subgroup: subdivision-flag +1F3F4 E0067 E0062 E0065 E006E E0067 E007F ; fully-qualified # 🏴 flag: England +1F3F4 E0067 E0062 E0073 E0063 E0074 E007F ; fully-qualified # 🏴 flag: Scotland +1F3F4 E0067 E0062 E0077 E006C E0073 E007F ; fully-qualified # 🏴 flag: Wales + +# Flags subtotal: 271 +# Flags subtotal: 271 w/o modifiers + +# Status Counts +# fully-qualified : 3010 +# minimally-qualified : 571 +# unqualified : 246 +# component : 9 + +#EOF diff --git a/plugins/emoji/emoji.plugin.zsh b/plugins/emoji/emoji.plugin.zsh index f70e09320..f9e476ebf 100644 --- a/plugins/emoji/emoji.plugin.zsh +++ b/plugins/emoji/emoji.plugin.zsh @@ -4,15 +4,17 @@ # # See the README for documentation. +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + _omz_emoji_plugin_dir="${0:h}" () { local LC_ALL=en_US.UTF-8 -typeset -gAH emoji_groups -typeset -gAH emoji_con -typeset -gAH emoji2 typeset -gAH emoji_skintone source "$_omz_emoji_plugin_dir/emoji-char-definitions.zsh" @@ -25,7 +27,6 @@ unset _omz_emoji_plugin_dir # The digits 0-9 are already in the emoji table as keycap_digit_<N>, keycap_ten, etc. # It's unclear whether this should be in the $emoji array, because those characters are all ones # which can be displayed on their own. -#emoji[combining_enclosing_keycap]="\U20E3" emoji[regional_indicator_symbol_letter_d_regional_indicator_symbol_letter_e]=$'\xF0\x9F\x87\xA9\xF0\x9F\x87\xAA' emoji[regional_indicator_symbol_letter_g_regional_indicator_symbol_letter_b]=$'\xF0\x9F\x87\xAC\xF0\x9F\x87\xA7' @@ -38,209 +39,12 @@ emoji[regional_indicator_symbol_letter_i_regional_indicator_symbol_letter_t]=$'\ emoji[regional_indicator_symbol_letter_u_regional_indicator_symbol_letter_s]=$'\xF0\x9F\x87\xBA\xF0\x9F\x87\xB8' emoji[regional_indicator_symbol_letter_r_regional_indicator_symbol_letter_u]=$'\xF0\x9F\x87\xB7\xF0\x9F\x87\xBA' -# Nonstandard alias names -emoji[vulcan_salute]=$'\U1F596' - - -# Emoji combining and auxiliary characters - -# "Variation Selectors" for controlling text vs emoji style presentation -# These apply to the immediately preceding character -emoji2[text_style]=$'\UFE0E' -emoji2[emoji_style]=$'\UFE0F' -# Joiner that indicates a single combined-form glyph (ligature) should be used -emoji2[zero_width_joiner]=$'\U200D' -# Skin tone modifiers -emoji2[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB' -emoji2[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC' -emoji2[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD' -emoji2[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE' -emoji2[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF' -# Various other combining characters. (Incomplete list; I selected ones that sound useful) -emoji2[combining_enclosing_circle]=$'\U20DD' -emoji2[combining_enclosing_square]=$'\U20DE' -emoji2[combining_enclosing_diamond]=$'\U20DF' -emoji2[combining_enclosing_circle_backslash]=$'\U20E0' -emoji2[combining_enclosing_screen]=$'\U20E2' -emoji2[combining_enclosing_keycap]=$'\U20E3' -emoji2[combining_enclosing_upward_pointing_triangle]=$'\U20E4' - # Easier access to skin tone modifiers emoji_skintone[1_2]=$'\U1F3FB' emoji_skintone[3]=$'\U1F3FC' emoji_skintone[4]=$'\U1F3FD' emoji_skintone[5]=$'\U1F3FE' emoji_skintone[6]=$'\U1F3FF' - -# Emoji groups -# These are stored in a single associative array, $emoji_groups, to avoid cluttering up the global -# namespace, and to allow adding additional group definitions at run time. -# The keys are the group names, and the values are whitespace-separated lists of emoji character names. - -emoji_groups[fruits]=" - tomato - aubergine - grapes - melon - watermelon - tangerine - banana - pineapple - red_apple - green_apple - peach - cherries - strawberry - lemon - pear -" - -emoji_groups[vehicles]=" - airplane - rocket - railway_car - high_speed_train - high_speed_train_with_bullet_nose - bus - ambulance - fire_engine - police_car - taxi - automobile - recreational_vehicle - delivery_truck - ship - speedboat - bicycle - helicopter - steam_locomotive - train - light_rail - tram - oncoming_bus - trolleybus - minibus - oncoming_police_car - oncoming_taxi - oncoming_automobile - articulated_lorry - tractor - monorail - mountain_railway - suspension_railway - mountain_cableway - aerial_tramway - rowboat - bicyclist - mountain_bicyclist - sailboat -" - -emoji_groups[animals]=" - snail - snake - horse - sheep - monkey - chicken - boar - elephant - octopus - spiral_shell - bug - ant - honeybee - lady_beetle - fish - tropical_fish - blowfish - turtle - hatching_chick - baby_chick - front_facing_baby_chick - bird - penguin - koala - poodle - bactrian_camel - dolphin - mouse_face - cow_face - tiger_face - rabbit_face - cat_face - dragon_face - spouting_whale - horse_face - monkey_face - dog_face - pig_face - frog_face - hamster_face - wolf_face - bear_face - panda_face - rat - mouse - ox - water_buffalo - cow - tiger - leopard - rabbit - cat - dragon - crocodile - whale - ram - goat - rooster - dog - pig - dromedary_camel -" - -emoji_groups[faces]=" - grinning_face_with_smiling_eyes - face_with_tears_of_joy - smiling_face_with_open_mouth - smiling_face_with_open_mouth_and_smiling_eyes - smiling_face_with_open_mouth_and_cold_sweat - smiling_face_with_open_mouth_and_tightly_closed_eyes - winking_face - smiling_face_with_smiling_eyes - face_savouring_delicious_food - relieved_face - smiling_face_with_heart_shaped_eyes - smirking_face - unamused_face - face_with_cold_sweat - pensive_face - confounded_face - face_throwing_a_kiss - kissing_face_with_closed_eyes - face_with_stuck_out_tongue_and_winking_eye - face_with_stuck_out_tongue_and_tightly_closed_eyes - disappointed_face - angry_face - pouting_face - crying_face - persevering_face - face_with_look_of_triumph - disappointed_but_relieved_face - fearful_face - weary_face - sleepy_face - tired_face - loudly_crying_face - face_with_open_mouth_and_cold_sweat - face_screaming_in_fear - astonished_face - flushed_face - dizzy_face - face_with_medical_mask -" - } # Prints a random emoji character @@ -259,7 +63,11 @@ function random_emoji() { [[ $list_size -eq 0 ]] && return 1 local random_index=$(( ( RANDOM % $list_size ) + 1 )) local name=${names[$random_index]} - echo ${emoji[$name]} + if [[ "$group" == "flags" ]]; then + echo ${emoji_flags[$name]} + else + echo ${emoji[$name]} + fi } # Displays a listing of emoji with their names @@ -276,12 +84,26 @@ function display_emoji() { fi # The extra spaces in output here are a hack for readability, since some # terminals treat these emoji chars as single-width. + local counter=1 for i in $names; do - printf '%s ' "$emoji[$i]" + if [[ "$group" == "flags" ]]; then + printf '%s ' "$emoji_flags[$i]" + else + printf '%s ' "$emoji[$i]" + fi + # New line every 20 emoji, to avoid weirdnesses + if (($counter % 20 == 0)); then + printf "\n" + fi + let counter=$counter+1 done print for i in $names; do - echo "${emoji[$i]} = $i" + if [[ "$group" == "flags" ]]; then + echo "${emoji_flags[$i]} = $i" + else + echo "${emoji[$i]} = $i" + fi done } diff --git a/plugins/emoji/gemoji_db.json b/plugins/emoji/gemoji_db.json new file mode 100644 index 000000000..9227c26d1 --- /dev/null +++ b/plugins/emoji/gemoji_db.json @@ -0,0 +1,21538 @@ +[ + { + "emoji": "😀" + , "description": "grinning face" + , "category": "Smileys & Emotion" + , "aliases": [ + "grinning" + ] + , "tags": [ + "smile" + , "happy" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😃" + , "description": "grinning face with big eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "smiley" + ] + , "tags": [ + "happy" + , "joy" + , "haha" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😄" + , "description": "grinning face with smiling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "smile" + ] + , "tags": [ + "happy" + , "joy" + , "laugh" + , "pleased" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😁" + , "description": "beaming face with smiling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "grin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😆" + , "description": "grinning squinting face" + , "category": "Smileys & Emotion" + , "aliases": [ + "laughing" + , "satisfied" + ] + , "tags": [ + "happy" + , "haha" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😅" + , "description": "grinning face with sweat" + , "category": "Smileys & Emotion" + , "aliases": [ + "sweat_smile" + ] + , "tags": [ + "hot" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤣" + , "description": "rolling on the floor laughing" + , "category": "Smileys & Emotion" + , "aliases": [ + "rofl" + ] + , "tags": [ + "lol" + , "laughing" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "😂" + , "description": "face with tears of joy" + , "category": "Smileys & Emotion" + , "aliases": [ + "joy" + ] + , "tags": [ + "tears" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙂" + , "description": "slightly smiling face" + , "category": "Smileys & Emotion" + , "aliases": [ + "slightly_smiling_face" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🙃" + , "description": "upside-down face" + , "category": "Smileys & Emotion" + , "aliases": [ + "upside_down_face" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "😉" + , "description": "winking face" + , "category": "Smileys & Emotion" + , "aliases": [ + "wink" + ] + , "tags": [ + "flirt" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😊" + , "description": "smiling face with smiling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "blush" + ] + , "tags": [ + "proud" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😇" + , "description": "smiling face with halo" + , "category": "Smileys & Emotion" + , "aliases": [ + "innocent" + ] + , "tags": [ + "angel" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥰" + , "description": "smiling face with hearts" + , "category": "Smileys & Emotion" + , "aliases": [ + "smiling_face_with_three_hearts" + ] + , "tags": [ + "love" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😍" + , "description": "smiling face with heart-eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "heart_eyes" + ] + , "tags": [ + "love" + , "crush" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤩" + , "description": "star-struck" + , "category": "Smileys & Emotion" + , "aliases": [ + "star_struck" + ] + , "tags": [ + "eyes" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😘" + , "description": "face blowing a kiss" + , "category": "Smileys & Emotion" + , "aliases": [ + "kissing_heart" + ] + , "tags": [ + "flirt" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😗" + , "description": "kissing face" + , "category": "Smileys & Emotion" + , "aliases": [ + "kissing" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "☺️" + , "description": "smiling face" + , "category": "Smileys & Emotion" + , "aliases": [ + "relaxed" + ] + , "tags": [ + "blush" + , "pleased" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "😚" + , "description": "kissing face with closed eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "kissing_closed_eyes" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😙" + , "description": "kissing face with smiling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "kissing_smiling_eyes" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😋" + , "description": "face savoring food" + , "category": "Smileys & Emotion" + , "aliases": [ + "yum" + ] + , "tags": [ + "tongue" + , "lick" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😛" + , "description": "face with tongue" + , "category": "Smileys & Emotion" + , "aliases": [ + "stuck_out_tongue" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😜" + , "description": "winking face with tongue" + , "category": "Smileys & Emotion" + , "aliases": [ + "stuck_out_tongue_winking_eye" + ] + , "tags": [ + "prank" + , "silly" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤪" + , "description": "zany face" + , "category": "Smileys & Emotion" + , "aliases": [ + "zany_face" + ] + , "tags": [ + "goofy" + , "wacky" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😝" + , "description": "squinting face with tongue" + , "category": "Smileys & Emotion" + , "aliases": [ + "stuck_out_tongue_closed_eyes" + ] + , "tags": [ + "prank" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤑" + , "description": "money-mouth face" + , "category": "Smileys & Emotion" + , "aliases": [ + "money_mouth_face" + ] + , "tags": [ + "rich" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤗" + , "description": "hugging face" + , "category": "Smileys & Emotion" + , "aliases": [ + "hugs" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤭" + , "description": "face with hand over mouth" + , "category": "Smileys & Emotion" + , "aliases": [ + "hand_over_mouth" + ] + , "tags": [ + "quiet" + , "whoops" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🤫" + , "description": "shushing face" + , "category": "Smileys & Emotion" + , "aliases": [ + "shushing_face" + ] + , "tags": [ + "silence" + , "quiet" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🤔" + , "description": "thinking face" + , "category": "Smileys & Emotion" + , "aliases": [ + "thinking" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤐" + , "description": "zipper-mouth face" + , "category": "Smileys & Emotion" + , "aliases": [ + "zipper_mouth_face" + ] + , "tags": [ + "silence" + , "hush" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤨" + , "description": "face with raised eyebrow" + , "category": "Smileys & Emotion" + , "aliases": [ + "raised_eyebrow" + ] + , "tags": [ + "suspicious" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😐" + , "description": "neutral face" + , "category": "Smileys & Emotion" + , "aliases": [ + "neutral_face" + ] + , "tags": [ + "meh" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😑" + , "description": "expressionless face" + , "category": "Smileys & Emotion" + , "aliases": [ + "expressionless" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😶" + , "description": "face without mouth" + , "category": "Smileys & Emotion" + , "aliases": [ + "no_mouth" + ] + , "tags": [ + "mute" + , "silence" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😏" + , "description": "smirking face" + , "category": "Smileys & Emotion" + , "aliases": [ + "smirk" + ] + , "tags": [ + "smug" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😒" + , "description": "unamused face" + , "category": "Smileys & Emotion" + , "aliases": [ + "unamused" + ] + , "tags": [ + "meh" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙄" + , "description": "face with rolling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "roll_eyes" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "😬" + , "description": "grimacing face" + , "category": "Smileys & Emotion" + , "aliases": [ + "grimacing" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "🤥" + , "description": "lying face" + , "category": "Smileys & Emotion" + , "aliases": [ + "lying_face" + ] + , "tags": [ + "liar" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "😌" + , "description": "relieved face" + , "category": "Smileys & Emotion" + , "aliases": [ + "relieved" + ] + , "tags": [ + "whew" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😔" + , "description": "pensive face" + , "category": "Smileys & Emotion" + , "aliases": [ + "pensive" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😪" + , "description": "sleepy face" + , "category": "Smileys & Emotion" + , "aliases": [ + "sleepy" + ] + , "tags": [ + "tired" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤤" + , "description": "drooling face" + , "category": "Smileys & Emotion" + , "aliases": [ + "drooling_face" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "😴" + , "description": "sleeping face" + , "category": "Smileys & Emotion" + , "aliases": [ + "sleeping" + ] + , "tags": [ + "zzz" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😷" + , "description": "face with medical mask" + , "category": "Smileys & Emotion" + , "aliases": [ + "mask" + ] + , "tags": [ + "sick" + , "ill" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤒" + , "description": "face with thermometer" + , "category": "Smileys & Emotion" + , "aliases": [ + "face_with_thermometer" + ] + , "tags": [ + "sick" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤕" + , "description": "face with head-bandage" + , "category": "Smileys & Emotion" + , "aliases": [ + "face_with_head_bandage" + ] + , "tags": [ + "hurt" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤢" + , "description": "nauseated face" + , "category": "Smileys & Emotion" + , "aliases": [ + "nauseated_face" + ] + , "tags": [ + "sick" + , "barf" + , "disgusted" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🤮" + , "description": "face vomiting" + , "category": "Smileys & Emotion" + , "aliases": [ + "vomiting_face" + ] + , "tags": [ + "barf" + , "sick" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🤧" + , "description": "sneezing face" + , "category": "Smileys & Emotion" + , "aliases": [ + "sneezing_face" + ] + , "tags": [ + "achoo" + , "sick" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥵" + , "description": "hot face" + , "category": "Smileys & Emotion" + , "aliases": [ + "hot_face" + ] + , "tags": [ + "heat" + , "sweating" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥶" + , "description": "cold face" + , "category": "Smileys & Emotion" + , "aliases": [ + "cold_face" + ] + , "tags": [ + "freezing" + , "ice" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥴" + , "description": "woozy face" + , "category": "Smileys & Emotion" + , "aliases": [ + "woozy_face" + ] + , "tags": [ + "groggy" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😵" + , "description": "dizzy face" + , "category": "Smileys & Emotion" + , "aliases": [ + "dizzy_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤯" + , "description": "exploding head" + , "category": "Smileys & Emotion" + , "aliases": [ + "exploding_head" + ] + , "tags": [ + "mind" + , "blown" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🤠" + , "description": "cowboy hat face" + , "category": "Smileys & Emotion" + , "aliases": [ + "cowboy_hat_face" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥳" + , "description": "partying face" + , "category": "Smileys & Emotion" + , "aliases": [ + "partying_face" + ] + , "tags": [ + "celebration" + , "birthday" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😎" + , "description": "smiling face with sunglasses" + , "category": "Smileys & Emotion" + , "aliases": [ + "sunglasses" + ] + , "tags": [ + "cool" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤓" + , "description": "nerd face" + , "category": "Smileys & Emotion" + , "aliases": [ + "nerd_face" + ] + , "tags": [ + "geek" + , "glasses" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🧐" + , "description": "face with monocle" + , "category": "Smileys & Emotion" + , "aliases": [ + "monocle_face" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😕" + , "description": "confused face" + , "category": "Smileys & Emotion" + , "aliases": [ + "confused" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😟" + , "description": "worried face" + , "category": "Smileys & Emotion" + , "aliases": [ + "worried" + ] + , "tags": [ + "nervous" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "🙁" + , "description": "slightly frowning face" + , "category": "Smileys & Emotion" + , "aliases": [ + "slightly_frowning_face" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "☹" + , "description": "frowning face" + , "category": "Smileys & Emotion" + , "aliases": [ + "frowning_face" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "😮" + , "description": "face with open mouth" + , "category": "Smileys & Emotion" + , "aliases": [ + "open_mouth" + ] + , "tags": [ + "surprise" + , "impressed" + , "wow" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😯" + , "description": "hushed face" + , "category": "Smileys & Emotion" + , "aliases": [ + "hushed" + ] + , "tags": [ + "silence" + , "speechless" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😲" + , "description": "astonished face" + , "category": "Smileys & Emotion" + , "aliases": [ + "astonished" + ] + , "tags": [ + "amazed" + , "gasp" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😳" + , "description": "flushed face" + , "category": "Smileys & Emotion" + , "aliases": [ + "flushed" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥺" + , "description": "pleading face" + , "category": "Smileys & Emotion" + , "aliases": [ + "pleading_face" + ] + , "tags": [ + "puppy" + , "eyes" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😦" + , "description": "frowning face with open mouth" + , "category": "Smileys & Emotion" + , "aliases": [ + "frowning" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😧" + , "description": "anguished face" + , "category": "Smileys & Emotion" + , "aliases": [ + "anguished" + ] + , "tags": [ + "stunned" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😨" + , "description": "fearful face" + , "category": "Smileys & Emotion" + , "aliases": [ + "fearful" + ] + , "tags": [ + "scared" + , "shocked" + , "oops" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😰" + , "description": "anxious face with sweat" + , "category": "Smileys & Emotion" + , "aliases": [ + "cold_sweat" + ] + , "tags": [ + "nervous" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😥" + , "description": "sad but relieved face" + , "category": "Smileys & Emotion" + , "aliases": [ + "disappointed_relieved" + ] + , "tags": [ + "phew" + , "sweat" + , "nervous" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😢" + , "description": "crying face" + , "category": "Smileys & Emotion" + , "aliases": [ + "cry" + ] + , "tags": [ + "sad" + , "tear" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😭" + , "description": "loudly crying face" + , "category": "Smileys & Emotion" + , "aliases": [ + "sob" + ] + , "tags": [ + "sad" + , "cry" + , "bawling" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😱" + , "description": "face screaming in fear" + , "category": "Smileys & Emotion" + , "aliases": [ + "scream" + ] + , "tags": [ + "horror" + , "shocked" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😖" + , "description": "confounded face" + , "category": "Smileys & Emotion" + , "aliases": [ + "confounded" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😣" + , "description": "persevering face" + , "category": "Smileys & Emotion" + , "aliases": [ + "persevere" + ] + , "tags": [ + "struggling" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😞" + , "description": "disappointed face" + , "category": "Smileys & Emotion" + , "aliases": [ + "disappointed" + ] + , "tags": [ + "sad" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😓" + , "description": "downcast face with sweat" + , "category": "Smileys & Emotion" + , "aliases": [ + "sweat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😩" + , "description": "weary face" + , "category": "Smileys & Emotion" + , "aliases": [ + "weary" + ] + , "tags": [ + "tired" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😫" + , "description": "tired face" + , "category": "Smileys & Emotion" + , "aliases": [ + "tired_face" + ] + , "tags": [ + "upset" + , "whine" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥱" + , "description": "yawning face" + , "category": "Smileys & Emotion" + , "aliases": [ + "yawning_face" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "😤" + , "description": "face with steam from nose" + , "category": "Smileys & Emotion" + , "aliases": [ + "triumph" + ] + , "tags": [ + "smug" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😡" + , "description": "pouting face" + , "category": "Smileys & Emotion" + , "aliases": [ + "rage" + , "pout" + ] + , "tags": [ + "angry" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😠" + , "description": "angry face" + , "category": "Smileys & Emotion" + , "aliases": [ + "angry" + ] + , "tags": [ + "mad" + , "annoyed" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤬" + , "description": "face with symbols on mouth" + , "category": "Smileys & Emotion" + , "aliases": [ + "cursing_face" + ] + , "tags": [ + "foul" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😈" + , "description": "smiling face with horns" + , "category": "Smileys & Emotion" + , "aliases": [ + "smiling_imp" + ] + , "tags": [ + "devil" + , "evil" + , "horns" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👿" + , "description": "angry face with horns" + , "category": "Smileys & Emotion" + , "aliases": [ + "imp" + ] + , "tags": [ + "angry" + , "devil" + , "evil" + , "horns" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💀" + , "description": "skull" + , "category": "Smileys & Emotion" + , "aliases": [ + "skull" + ] + , "tags": [ + "dead" + , "danger" + , "poison" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☠" + , "description": "skull and crossbones" + , "category": "Smileys & Emotion" + , "aliases": [ + "skull_and_crossbones" + ] + , "tags": [ + "danger" + , "pirate" + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "💩" + , "description": "pile of poo" + , "category": "Smileys & Emotion" + , "aliases": [ + "hankey" + , "poop" + , "shit" + ] + , "tags": [ + "crap" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤡" + , "description": "clown face" + , "category": "Smileys & Emotion" + , "aliases": [ + "clown_face" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "👹" + , "description": "ogre" + , "category": "Smileys & Emotion" + , "aliases": [ + "japanese_ogre" + ] + , "tags": [ + "monster" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👺" + , "description": "goblin" + , "category": "Smileys & Emotion" + , "aliases": [ + "japanese_goblin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👻" + , "description": "ghost" + , "category": "Smileys & Emotion" + , "aliases": [ + "ghost" + ] + , "tags": [ + "halloween" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👽" + , "description": "alien" + , "category": "Smileys & Emotion" + , "aliases": [ + "alien" + ] + , "tags": [ + "ufo" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👾" + , "description": "alien monster" + , "category": "Smileys & Emotion" + , "aliases": [ + "space_invader" + ] + , "tags": [ + "game" + , "retro" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤖" + , "description": "robot" + , "category": "Smileys & Emotion" + , "aliases": [ + "robot" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "😺" + , "description": "grinning cat" + , "category": "Smileys & Emotion" + , "aliases": [ + "smiley_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😸" + , "description": "grinning cat with smiling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "smile_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😹" + , "description": "cat with tears of joy" + , "category": "Smileys & Emotion" + , "aliases": [ + "joy_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😻" + , "description": "smiling cat with heart-eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "heart_eyes_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😼" + , "description": "cat with wry smile" + , "category": "Smileys & Emotion" + , "aliases": [ + "smirk_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😽" + , "description": "kissing cat" + , "category": "Smileys & Emotion" + , "aliases": [ + "kissing_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙀" + , "description": "weary cat" + , "category": "Smileys & Emotion" + , "aliases": [ + "scream_cat" + ] + , "tags": [ + "horror" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😿" + , "description": "crying cat" + , "category": "Smileys & Emotion" + , "aliases": [ + "crying_cat_face" + ] + , "tags": [ + "sad" + , "tear" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😾" + , "description": "pouting cat" + , "category": "Smileys & Emotion" + , "aliases": [ + "pouting_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙈" + , "description": "see-no-evil monkey" + , "category": "Smileys & Emotion" + , "aliases": [ + "see_no_evil" + ] + , "tags": [ + "monkey" + , "blind" + , "ignore" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙉" + , "description": "hear-no-evil monkey" + , "category": "Smileys & Emotion" + , "aliases": [ + "hear_no_evil" + ] + , "tags": [ + "monkey" + , "deaf" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙊" + , "description": "speak-no-evil monkey" + , "category": "Smileys & Emotion" + , "aliases": [ + "speak_no_evil" + ] + , "tags": [ + "monkey" + , "mute" + , "hush" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💋" + , "description": "kiss mark" + , "category": "Smileys & Emotion" + , "aliases": [ + "kiss" + ] + , "tags": [ + "lipstick" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💌" + , "description": "love letter" + , "category": "Smileys & Emotion" + , "aliases": [ + "love_letter" + ] + , "tags": [ + "email" + , "envelope" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💘" + , "description": "heart with arrow" + , "category": "Smileys & Emotion" + , "aliases": [ + "cupid" + ] + , "tags": [ + "love" + , "heart" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💝" + , "description": "heart with ribbon" + , "category": "Smileys & Emotion" + , "aliases": [ + "gift_heart" + ] + , "tags": [ + "chocolates" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💖" + , "description": "sparkling heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "sparkling_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💗" + , "description": "growing heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "heartpulse" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💓" + , "description": "beating heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "heartbeat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💞" + , "description": "revolving hearts" + , "category": "Smileys & Emotion" + , "aliases": [ + "revolving_hearts" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💕" + , "description": "two hearts" + , "category": "Smileys & Emotion" + , "aliases": [ + "two_hearts" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💟" + , "description": "heart decoration" + , "category": "Smileys & Emotion" + , "aliases": [ + "heart_decoration" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❣️" + , "description": "heart exclamation" + , "category": "Smileys & Emotion" + , "aliases": [ + "heavy_heart_exclamation" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "💔" + , "description": "broken heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "broken_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❤️" + , "description": "red heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "heart" + ] + , "tags": [ + "love" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🧡" + , "description": "orange heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "orange_heart" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "💛" + , "description": "yellow heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "yellow_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💚" + , "description": "green heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "green_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💙" + , "description": "blue heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "blue_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💜" + , "description": "purple heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "purple_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤎" + , "description": "brown heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "brown_heart" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🖤" + , "description": "black heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "black_heart" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🤍" + , "description": "white heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "white_heart" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "💯" + , "description": "hundred points" + , "category": "Smileys & Emotion" + , "aliases": [ + "100" + ] + , "tags": [ + "score" + , "perfect" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💢" + , "description": "anger symbol" + , "category": "Smileys & Emotion" + , "aliases": [ + "anger" + ] + , "tags": [ + "angry" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💥" + , "description": "collision" + , "category": "Smileys & Emotion" + , "aliases": [ + "boom" + , "collision" + ] + , "tags": [ + "explode" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💫" + , "description": "dizzy" + , "category": "Smileys & Emotion" + , "aliases": [ + "dizzy" + ] + , "tags": [ + "star" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💦" + , "description": "sweat droplets" + , "category": "Smileys & Emotion" + , "aliases": [ + "sweat_drops" + ] + , "tags": [ + "water" + , "workout" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💨" + , "description": "dashing away" + , "category": "Smileys & Emotion" + , "aliases": [ + "dash" + ] + , "tags": [ + "wind" + , "blow" + , "fast" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕳" + , "description": "hole" + , "category": "Smileys & Emotion" + , "aliases": [ + "hole" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "💣" + , "description": "bomb" + , "category": "Smileys & Emotion" + , "aliases": [ + "bomb" + ] + , "tags": [ + "boom" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💬" + , "description": "speech balloon" + , "category": "Smileys & Emotion" + , "aliases": [ + "speech_balloon" + ] + , "tags": [ + "comment" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👁️🗨️" + , "description": "eye in speech bubble" + , "category": "Smileys & Emotion" + , "aliases": [ + "eye_speech_bubble" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🗨" + , "description": "left speech bubble" + , "category": "Smileys & Emotion" + , "aliases": [ + "left_speech_bubble" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🗯" + , "description": "right anger bubble" + , "category": "Smileys & Emotion" + , "aliases": [ + "right_anger_bubble" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "💭" + , "description": "thought balloon" + , "category": "Smileys & Emotion" + , "aliases": [ + "thought_balloon" + ] + , "tags": [ + "thinking" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💤" + , "description": "zzz" + , "category": "Smileys & Emotion" + , "aliases": [ + "zzz" + ] + , "tags": [ + "sleeping" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👋" + , "description": "waving hand" + , "category": "People & Body" + , "aliases": [ + "wave" + ] + , "tags": [ + "goodbye" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤚" + , "description": "raised back of hand" + , "category": "People & Body" + , "aliases": [ + "raised_back_of_hand" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🖐" + , "description": "hand with fingers splayed" + , "category": "People & Body" + , "aliases": [ + "raised_hand_with_fingers_splayed" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "✋" + , "description": "raised hand" + , "category": "People & Body" + , "aliases": [ + "hand" + , "raised_hand" + ] + , "tags": [ + "highfive" + , "stop" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🖖" + , "description": "vulcan salute" + , "category": "People & Body" + , "aliases": [ + "vulcan_salute" + ] + , "tags": [ + "prosper" + , "spock" + ] + , "unicode_version": "7.0" + , "ios_version": "8.3" + , "skin_tones": true + } +, { + "emoji": "👌" + , "description": "OK hand" + , "category": "People & Body" + , "aliases": [ + "ok_hand" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤏" + , "description": "pinching hand" + , "category": "People & Body" + , "aliases": [ + "pinching_hand" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "✌️" + , "description": "victory hand" + , "category": "People & Body" + , "aliases": [ + "v" + ] + , "tags": [ + "victory" + , "peace" + ] + , "unicode_version": "" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤞" + , "description": "crossed fingers" + , "category": "People & Body" + , "aliases": [ + "crossed_fingers" + ] + , "tags": [ + "luck" + , "hopeful" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤟" + , "description": "love-you gesture" + , "category": "People & Body" + , "aliases": [ + "love_you_gesture" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤘" + , "description": "sign of the horns" + , "category": "People & Body" + , "aliases": [ + "metal" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "🤙" + , "description": "call me hand" + , "category": "People & Body" + , "aliases": [ + "call_me_hand" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👈" + , "description": "backhand index pointing left" + , "category": "People & Body" + , "aliases": [ + "point_left" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👉" + , "description": "backhand index pointing right" + , "category": "People & Body" + , "aliases": [ + "point_right" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👆" + , "description": "backhand index pointing up" + , "category": "People & Body" + , "aliases": [ + "point_up_2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🖕" + , "description": "middle finger" + , "category": "People & Body" + , "aliases": [ + "middle_finger" + , "fu" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "👇" + , "description": "backhand index pointing down" + , "category": "People & Body" + , "aliases": [ + "point_down" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "☝️" + , "description": "index pointing up" + , "category": "People & Body" + , "aliases": [ + "point_up" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👍" + , "description": "thumbs up" + , "category": "People & Body" + , "aliases": [ + "+1" + , "thumbsup" + ] + , "tags": [ + "approve" + , "ok" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👎" + , "description": "thumbs down" + , "category": "People & Body" + , "aliases": [ + "-1" + , "thumbsdown" + ] + , "tags": [ + "disapprove" + , "bury" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "✊" + , "description": "raised fist" + , "category": "People & Body" + , "aliases": [ + "fist_raised" + , "fist" + ] + , "tags": [ + "power" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👊" + , "description": "oncoming fist" + , "category": "People & Body" + , "aliases": [ + "fist_oncoming" + , "facepunch" + , "punch" + ] + , "tags": [ + "attack" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤛" + , "description": "left-facing fist" + , "category": "People & Body" + , "aliases": [ + "fist_left" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤜" + , "description": "right-facing fist" + , "category": "People & Body" + , "aliases": [ + "fist_right" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👏" + , "description": "clapping hands" + , "category": "People & Body" + , "aliases": [ + "clap" + ] + , "tags": [ + "praise" + , "applause" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙌" + , "description": "raising hands" + , "category": "People & Body" + , "aliases": [ + "raised_hands" + ] + , "tags": [ + "hooray" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👐" + , "description": "open hands" + , "category": "People & Body" + , "aliases": [ + "open_hands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤲" + , "description": "palms up together" + , "category": "People & Body" + , "aliases": [ + "palms_up_together" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤝" + , "description": "handshake" + , "category": "People & Body" + , "aliases": [ + "handshake" + ] + , "tags": [ + "deal" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🙏" + , "description": "folded hands" + , "category": "People & Body" + , "aliases": [ + "pray" + ] + , "tags": [ + "please" + , "hope" + , "wish" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "✍️" + , "description": "writing hand" + , "category": "People & Body" + , "aliases": [ + "writing_hand" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "💅" + , "description": "nail polish" + , "category": "People & Body" + , "aliases": [ + "nail_care" + ] + , "tags": [ + "beauty" + , "manicure" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤳" + , "description": "selfie" + , "category": "People & Body" + , "aliases": [ + "selfie" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "💪" + , "description": "flexed biceps" + , "category": "People & Body" + , "aliases": [ + "muscle" + ] + , "tags": [ + "flex" + , "bicep" + , "strong" + , "workout" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🦾" + , "description": "mechanical arm" + , "category": "People & Body" + , "aliases": [ + "mechanical_arm" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦿" + , "description": "mechanical leg" + , "category": "People & Body" + , "aliases": [ + "mechanical_leg" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦵" + , "description": "leg" + , "category": "People & Body" + , "aliases": [ + "leg" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦶" + , "description": "foot" + , "category": "People & Body" + , "aliases": [ + "foot" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👂" + , "description": "ear" + , "category": "People & Body" + , "aliases": [ + "ear" + ] + , "tags": [ + "hear" + , "sound" + , "listen" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🦻" + , "description": "ear with hearing aid" + , "category": "People & Body" + , "aliases": [ + "ear_with_hearing_aid" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👃" + , "description": "nose" + , "category": "People & Body" + , "aliases": [ + "nose" + ] + , "tags": [ + "smell" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🧠" + , "description": "brain" + , "category": "People & Body" + , "aliases": [ + "brain" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦷" + , "description": "tooth" + , "category": "People & Body" + , "aliases": [ + "tooth" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦴" + , "description": "bone" + , "category": "People & Body" + , "aliases": [ + "bone" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👀" + , "description": "eyes" + , "category": "People & Body" + , "aliases": [ + "eyes" + ] + , "tags": [ + "look" + , "see" + , "watch" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👁" + , "description": "eye" + , "category": "People & Body" + , "aliases": [ + "eye" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "👅" + , "description": "tongue" + , "category": "People & Body" + , "aliases": [ + "tongue" + ] + , "tags": [ + "taste" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👄" + , "description": "mouth" + , "category": "People & Body" + , "aliases": [ + "lips" + ] + , "tags": [ + "kiss" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👶" + , "description": "baby" + , "category": "People & Body" + , "aliases": [ + "baby" + ] + , "tags": [ + "child" + , "newborn" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🧒" + , "description": "child" + , "category": "People & Body" + , "aliases": [ + "child" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👦" + , "description": "boy" + , "category": "People & Body" + , "aliases": [ + "boy" + ] + , "tags": [ + "child" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👧" + , "description": "girl" + , "category": "People & Body" + , "aliases": [ + "girl" + ] + , "tags": [ + "child" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🧑" + , "description": "person" + , "category": "People & Body" + , "aliases": [ + "adult" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👱" + , "description": "person: blond hair" + , "category": "People & Body" + , "aliases": [ + "blond_haired_person" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👨" + , "description": "man" + , "category": "People & Body" + , "aliases": [ + "man" + ] + , "tags": [ + "mustache" + , "father" + , "dad" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🧔" + , "description": "man: beard" + , "category": "People & Body" + , "aliases": [ + "bearded_person" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👱♂" + , "description": "man: blond hair" + , "category": "People & Body" + , "aliases": [ + "blond_haired_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👨🦰" + , "description": "man: red hair" + , "category": "People & Body" + , "aliases": [ + "red_haired_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👨🦱" + , "description": "man: curly hair" + , "category": "People & Body" + , "aliases": [ + "curly_haired_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👨🦳" + , "description": "man: white hair" + , "category": "People & Body" + , "aliases": [ + "white_haired_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👨🦲" + , "description": "man: bald" + , "category": "People & Body" + , "aliases": [ + "bald_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👩" + , "description": "woman" + , "category": "People & Body" + , "aliases": [ + "woman" + ] + , "tags": [ + "girls" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👱♀" + , "description": "woman: blond hair" + , "category": "People & Body" + , "aliases": [ + "blond_haired_woman" + , "blonde_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "👩🦰" + , "description": "woman: red hair" + , "category": "People & Body" + , "aliases": [ + "red_haired_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👩🦱" + , "description": "woman: curly hair" + , "category": "People & Body" + , "aliases": [ + "curly_haired_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👩🦳" + , "description": "woman: white hair" + , "category": "People & Body" + , "aliases": [ + "white_haired_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👩🦲" + , "description": "woman: bald" + , "category": "People & Body" + , "aliases": [ + "bald_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧓" + , "description": "older person" + , "category": "People & Body" + , "aliases": [ + "older_adult" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👴" + , "description": "old man" + , "category": "People & Body" + , "aliases": [ + "older_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👵" + , "description": "old woman" + , "category": "People & Body" + , "aliases": [ + "older_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙍" + , "description": "person frowning" + , "category": "People & Body" + , "aliases": [ + "frowning_person" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙍♂" + , "description": "man frowning" + , "category": "People & Body" + , "aliases": [ + "frowning_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🙍♀" + , "description": "woman frowning" + , "category": "People & Body" + , "aliases": [ + "frowning_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🙎" + , "description": "person pouting" + , "category": "People & Body" + , "aliases": [ + "pouting_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙎♂" + , "description": "man pouting" + , "category": "People & Body" + , "aliases": [ + "pouting_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🙎♀" + , "description": "woman pouting" + , "category": "People & Body" + , "aliases": [ + "pouting_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🙅" + , "description": "person gesturing NO" + , "category": "People & Body" + , "aliases": [ + "no_good" + ] + , "tags": [ + "stop" + , "halt" + , "denied" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙅♂" + , "description": "man gesturing NO" + , "category": "People & Body" + , "aliases": [ + "no_good_man" + , "ng_man" + ] + , "tags": [ + "stop" + , "halt" + , "denied" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🙅♀" + , "description": "woman gesturing NO" + , "category": "People & Body" + , "aliases": [ + "no_good_woman" + , "ng_woman" + ] + , "tags": [ + "stop" + , "halt" + , "denied" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🙆" + , "description": "person gesturing OK" + , "category": "People & Body" + , "aliases": [ + "ok_person" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙆♂" + , "description": "man gesturing OK" + , "category": "People & Body" + , "aliases": [ + "ok_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🙆♀" + , "description": "woman gesturing OK" + , "category": "People & Body" + , "aliases": [ + "ok_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "💁" + , "description": "person tipping hand" + , "category": "People & Body" + , "aliases": [ + "tipping_hand_person" + , "information_desk_person" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "💁♂" + , "description": "man tipping hand" + , "category": "People & Body" + , "aliases": [ + "tipping_hand_man" + , "sassy_man" + ] + , "tags": [ + "information" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "💁♀" + , "description": "woman tipping hand" + , "category": "People & Body" + , "aliases": [ + "tipping_hand_woman" + , "sassy_woman" + ] + , "tags": [ + "information" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🙋" + , "description": "person raising hand" + , "category": "People & Body" + , "aliases": [ + "raising_hand" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙋♂" + , "description": "man raising hand" + , "category": "People & Body" + , "aliases": [ + "raising_hand_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🙋♀" + , "description": "woman raising hand" + , "category": "People & Body" + , "aliases": [ + "raising_hand_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧏" + , "description": "deaf person" + , "category": "People & Body" + , "aliases": [ + "deaf_person" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧏♂" + , "description": "deaf man" + , "category": "People & Body" + , "aliases": [ + "deaf_man" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧏♀" + , "description": "deaf woman" + , "category": "People & Body" + , "aliases": [ + "deaf_woman" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🙇" + , "description": "person bowing" + , "category": "People & Body" + , "aliases": [ + "bow" + ] + , "tags": [ + "respect" + , "thanks" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙇♂" + , "description": "man bowing" + , "category": "People & Body" + , "aliases": [ + "bowing_man" + ] + , "tags": [ + "respect" + , "thanks" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🙇♀" + , "description": "woman bowing" + , "category": "People & Body" + , "aliases": [ + "bowing_woman" + ] + , "tags": [ + "respect" + , "thanks" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🤦" + , "description": "person facepalming" + , "category": "People & Body" + , "aliases": [ + "facepalm" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤦♂" + , "description": "man facepalming" + , "category": "People & Body" + , "aliases": [ + "man_facepalming" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤦♀" + , "description": "woman facepalming" + , "category": "People & Body" + , "aliases": [ + "woman_facepalming" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤷" + , "description": "person shrugging" + , "category": "People & Body" + , "aliases": [ + "shrug" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤷♂" + , "description": "man shrugging" + , "category": "People & Body" + , "aliases": [ + "man_shrugging" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤷♀" + , "description": "woman shrugging" + , "category": "People & Body" + , "aliases": [ + "woman_shrugging" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨⚕" + , "description": "man health worker" + , "category": "People & Body" + , "aliases": [ + "man_health_worker" + ] + , "tags": [ + "doctor" + , "nurse" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩⚕" + , "description": "woman health worker" + , "category": "People & Body" + , "aliases": [ + "woman_health_worker" + ] + , "tags": [ + "doctor" + , "nurse" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨🎓" + , "description": "man student" + , "category": "People & Body" + , "aliases": [ + "man_student" + ] + , "tags": [ + "graduation" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩🎓" + , "description": "woman student" + , "category": "People & Body" + , "aliases": [ + "woman_student" + ] + , "tags": [ + "graduation" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨🏫" + , "description": "man teacher" + , "category": "People & Body" + , "aliases": [ + "man_teacher" + ] + , "tags": [ + "school" + , "professor" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩🏫" + , "description": "woman teacher" + , "category": "People & Body" + , "aliases": [ + "woman_teacher" + ] + , "tags": [ + "school" + , "professor" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨⚖" + , "description": "man judge" + , "category": "People & Body" + , "aliases": [ + "man_judge" + ] + , "tags": [ + "justice" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩⚖" + , "description": "woman judge" + , "category": "People & Body" + , "aliases": [ + "woman_judge" + ] + , "tags": [ + "justice" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨🌾" + , "description": "man farmer" + , "category": "People & Body" + , "aliases": [ + "man_farmer" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩🌾" + , "description": "woman farmer" + , "category": "People & Body" + , "aliases": [ + "woman_farmer" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨🍳" + , "description": "man cook" + , "category": "People & Body" + , "aliases": [ + "man_cook" + ] + , "tags": [ + "chef" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩🍳" + , "description": "woman cook" + , "category": "People & Body" + , "aliases": [ + "woman_cook" + ] + , "tags": [ + "chef" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨🔧" + , "description": "man mechanic" + , "category": "People & Body" + , "aliases": [ + "man_mechanic" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩🔧" + , "description": "woman mechanic" + , "category": "People & Body" + , "aliases": [ + "woman_mechanic" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨🏭" + , "description": "man factory worker" + , "category": "People & Body" + , "aliases": [ + "man_factory_worker" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩🏭" + , "description": "woman factory worker" + , "category": "People & Body" + , "aliases": [ + "woman_factory_worker" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨💼" + , "description": "man office worker" + , "category": "People & Body" + , "aliases": [ + "man_office_worker" + ] + , "tags": [ + "business" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩💼" + , "description": "woman office worker" + , "category": "People & Body" + , "aliases": [ + "woman_office_worker" + ] + , "tags": [ + "business" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨🔬" + , "description": "man scientist" + , "category": "People & Body" + , "aliases": [ + "man_scientist" + ] + , "tags": [ + "research" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩🔬" + , "description": "woman scientist" + , "category": "People & Body" + , "aliases": [ + "woman_scientist" + ] + , "tags": [ + "research" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨💻" + , "description": "man technologist" + , "category": "People & Body" + , "aliases": [ + "man_technologist" + ] + , "tags": [ + "coder" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩💻" + , "description": "woman technologist" + , "category": "People & Body" + , "aliases": [ + "woman_technologist" + ] + , "tags": [ + "coder" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨🎤" + , "description": "man singer" + , "category": "People & Body" + , "aliases": [ + "man_singer" + ] + , "tags": [ + "rockstar" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩🎤" + , "description": "woman singer" + , "category": "People & Body" + , "aliases": [ + "woman_singer" + ] + , "tags": [ + "rockstar" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨🎨" + , "description": "man artist" + , "category": "People & Body" + , "aliases": [ + "man_artist" + ] + , "tags": [ + "painter" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩🎨" + , "description": "woman artist" + , "category": "People & Body" + , "aliases": [ + "woman_artist" + ] + , "tags": [ + "painter" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨✈" + , "description": "man pilot" + , "category": "People & Body" + , "aliases": [ + "man_pilot" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩✈" + , "description": "woman pilot" + , "category": "People & Body" + , "aliases": [ + "woman_pilot" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨🚀" + , "description": "man astronaut" + , "category": "People & Body" + , "aliases": [ + "man_astronaut" + ] + , "tags": [ + "space" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩🚀" + , "description": "woman astronaut" + , "category": "People & Body" + , "aliases": [ + "woman_astronaut" + ] + , "tags": [ + "space" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨🚒" + , "description": "man firefighter" + , "category": "People & Body" + , "aliases": [ + "man_firefighter" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩🚒" + , "description": "woman firefighter" + , "category": "People & Body" + , "aliases": [ + "woman_firefighter" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👮" + , "description": "police officer" + , "category": "People & Body" + , "aliases": [ + "police_officer" + , "cop" + ] + , "tags": [ + "law" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👮♂" + , "description": "man police officer" + , "category": "People & Body" + , "aliases": [ + "policeman" + ] + , "tags": [ + "law" + , "cop" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👮♀" + , "description": "woman police officer" + , "category": "People & Body" + , "aliases": [ + "policewoman" + ] + , "tags": [ + "law" + , "cop" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🕵" + , "description": "detective" + , "category": "People & Body" + , "aliases": [ + "detective" + ] + , "tags": [ + "sleuth" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "🕵️♂️" + , "description": "man detective" + , "category": "People & Body" + , "aliases": [ + "male_detective" + ] + , "tags": [ + "sleuth" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🕵️♀️" + , "description": "woman detective" + , "category": "People & Body" + , "aliases": [ + "female_detective" + ] + , "tags": [ + "sleuth" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "💂" + , "description": "guard" + , "category": "People & Body" + , "aliases": [ + "guard" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "💂♂" + , "description": "man guard" + , "category": "People & Body" + , "aliases": [ + "guardsman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "💂♀" + , "description": "woman guard" + , "category": "People & Body" + , "aliases": [ + "guardswoman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "👷" + , "description": "construction worker" + , "category": "People & Body" + , "aliases": [ + "construction_worker" + ] + , "tags": [ + "helmet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👷♂" + , "description": "man construction worker" + , "category": "People & Body" + , "aliases": [ + "construction_worker_man" + ] + , "tags": [ + "helmet" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👷♀" + , "description": "woman construction worker" + , "category": "People & Body" + , "aliases": [ + "construction_worker_woman" + ] + , "tags": [ + "helmet" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🤴" + , "description": "prince" + , "category": "People & Body" + , "aliases": [ + "prince" + ] + , "tags": [ + "crown" + , "royal" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👸" + , "description": "princess" + , "category": "People & Body" + , "aliases": [ + "princess" + ] + , "tags": [ + "crown" + , "royal" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👳" + , "description": "person wearing turban" + , "category": "People & Body" + , "aliases": [ + "person_with_turban" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👳♂" + , "description": "man wearing turban" + , "category": "People & Body" + , "aliases": [ + "man_with_turban" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👳♀" + , "description": "woman wearing turban" + , "category": "People & Body" + , "aliases": [ + "woman_with_turban" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "👲" + , "description": "man with Chinese cap" + , "category": "People & Body" + , "aliases": [ + "man_with_gua_pi_mao" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🧕" + , "description": "woman with headscarf" + , "category": "People & Body" + , "aliases": [ + "woman_with_headscarf" + ] + , "tags": [ + "hijab" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤵" + , "description": "man in tuxedo" + , "category": "People & Body" + , "aliases": [ + "man_in_tuxedo" + ] + , "tags": [ + "groom" + , "marriage" + , "wedding" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👰" + , "description": "bride with veil" + , "category": "People & Body" + , "aliases": [ + "bride_with_veil" + ] + , "tags": [ + "marriage" + , "wedding" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤰" + , "description": "pregnant woman" + , "category": "People & Body" + , "aliases": [ + "pregnant_woman" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤱" + , "description": "breast-feeding" + , "category": "People & Body" + , "aliases": [ + "breast_feeding" + ] + , "tags": [ + "nursing" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👼" + , "description": "baby angel" + , "category": "People & Body" + , "aliases": [ + "angel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🎅" + , "description": "Santa Claus" + , "category": "People & Body" + , "aliases": [ + "santa" + ] + , "tags": [ + "christmas" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤶" + , "description": "Mrs. Claus" + , "category": "People & Body" + , "aliases": [ + "mrs_claus" + ] + , "tags": [ + "santa" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🦸" + , "description": "superhero" + , "category": "People & Body" + , "aliases": [ + "superhero" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦸♂" + , "description": "man superhero" + , "category": "People & Body" + , "aliases": [ + "superhero_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦸♀" + , "description": "woman superhero" + , "category": "People & Body" + , "aliases": [ + "superhero_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦹" + , "description": "supervillain" + , "category": "People & Body" + , "aliases": [ + "supervillain" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦹♂" + , "description": "man supervillain" + , "category": "People & Body" + , "aliases": [ + "supervillain_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦹♀" + , "description": "woman supervillain" + , "category": "People & Body" + , "aliases": [ + "supervillain_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧙" + , "description": "mage" + , "category": "People & Body" + , "aliases": [ + "mage" + ] + , "tags": [ + "wizard" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧙♂" + , "description": "man mage" + , "category": "People & Body" + , "aliases": [ + "mage_man" + ] + , "tags": [ + "wizard" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧙♀" + , "description": "woman mage" + , "category": "People & Body" + , "aliases": [ + "mage_woman" + ] + , "tags": [ + "wizard" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧚" + , "description": "fairy" + , "category": "People & Body" + , "aliases": [ + "fairy" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧚♂" + , "description": "man fairy" + , "category": "People & Body" + , "aliases": [ + "fairy_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧚♀" + , "description": "woman fairy" + , "category": "People & Body" + , "aliases": [ + "fairy_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧛" + , "description": "vampire" + , "category": "People & Body" + , "aliases": [ + "vampire" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧛♂" + , "description": "man vampire" + , "category": "People & Body" + , "aliases": [ + "vampire_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧛♀" + , "description": "woman vampire" + , "category": "People & Body" + , "aliases": [ + "vampire_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧜" + , "description": "merperson" + , "category": "People & Body" + , "aliases": [ + "merperson" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧜♂" + , "description": "merman" + , "category": "People & Body" + , "aliases": [ + "merman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧜♀" + , "description": "mermaid" + , "category": "People & Body" + , "aliases": [ + "mermaid" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧝" + , "description": "elf" + , "category": "People & Body" + , "aliases": [ + "elf" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧝♂" + , "description": "man elf" + , "category": "People & Body" + , "aliases": [ + "elf_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧝♀" + , "description": "woman elf" + , "category": "People & Body" + , "aliases": [ + "elf_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧞" + , "description": "genie" + , "category": "People & Body" + , "aliases": [ + "genie" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧞♂" + , "description": "man genie" + , "category": "People & Body" + , "aliases": [ + "genie_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧞♀" + , "description": "woman genie" + , "category": "People & Body" + , "aliases": [ + "genie_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧟" + , "description": "zombie" + , "category": "People & Body" + , "aliases": [ + "zombie" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧟♂" + , "description": "man zombie" + , "category": "People & Body" + , "aliases": [ + "zombie_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧟♀" + , "description": "woman zombie" + , "category": "People & Body" + , "aliases": [ + "zombie_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "💆" + , "description": "person getting massage" + , "category": "People & Body" + , "aliases": [ + "massage" + ] + , "tags": [ + "spa" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "💆♂" + , "description": "man getting massage" + , "category": "People & Body" + , "aliases": [ + "massage_man" + ] + , "tags": [ + "spa" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "💆♀" + , "description": "woman getting massage" + , "category": "People & Body" + , "aliases": [ + "massage_woman" + ] + , "tags": [ + "spa" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "💇" + , "description": "person getting haircut" + , "category": "People & Body" + , "aliases": [ + "haircut" + ] + , "tags": [ + "beauty" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "💇♂" + , "description": "man getting haircut" + , "category": "People & Body" + , "aliases": [ + "haircut_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "💇♀" + , "description": "woman getting haircut" + , "category": "People & Body" + , "aliases": [ + "haircut_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🚶" + , "description": "person walking" + , "category": "People & Body" + , "aliases": [ + "walking" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🚶♂" + , "description": "man walking" + , "category": "People & Body" + , "aliases": [ + "walking_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🚶♀" + , "description": "woman walking" + , "category": "People & Body" + , "aliases": [ + "walking_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🧍" + , "description": "person standing" + , "category": "People & Body" + , "aliases": [ + "standing_person" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧍♂" + , "description": "man standing" + , "category": "People & Body" + , "aliases": [ + "standing_man" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧍♀" + , "description": "woman standing" + , "category": "People & Body" + , "aliases": [ + "standing_woman" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧎" + , "description": "person kneeling" + , "category": "People & Body" + , "aliases": [ + "kneeling_person" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧎♂" + , "description": "man kneeling" + , "category": "People & Body" + , "aliases": [ + "kneeling_man" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧎♀" + , "description": "woman kneeling" + , "category": "People & Body" + , "aliases": [ + "kneeling_woman" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👨🦯" + , "description": "man with probing cane" + , "category": "People & Body" + , "aliases": [ + "man_with_probing_cane" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👩🦯" + , "description": "woman with probing cane" + , "category": "People & Body" + , "aliases": [ + "woman_with_probing_cane" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👨🦼" + , "description": "man in motorized wheelchair" + , "category": "People & Body" + , "aliases": [ + "man_in_motorized_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👩🦼" + , "description": "woman in motorized wheelchair" + , "category": "People & Body" + , "aliases": [ + "woman_in_motorized_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👨🦽" + , "description": "man in manual wheelchair" + , "category": "People & Body" + , "aliases": [ + "man_in_manual_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👩🦽" + , "description": "woman in manual wheelchair" + , "category": "People & Body" + , "aliases": [ + "woman_in_manual_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🏃" + , "description": "person running" + , "category": "People & Body" + , "aliases": [ + "runner" + , "running" + ] + , "tags": [ + "exercise" + , "workout" + , "marathon" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🏃♂" + , "description": "man running" + , "category": "People & Body" + , "aliases": [ + "running_man" + ] + , "tags": [ + "exercise" + , "workout" + , "marathon" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🏃♀" + , "description": "woman running" + , "category": "People & Body" + , "aliases": [ + "running_woman" + ] + , "tags": [ + "exercise" + , "workout" + , "marathon" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "💃" + , "description": "woman dancing" + , "category": "People & Body" + , "aliases": [ + "woman_dancing" + , "dancer" + ] + , "tags": [ + "dress" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🕺" + , "description": "man dancing" + , "category": "People & Body" + , "aliases": [ + "man_dancing" + ] + , "tags": [ + "dancer" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🕴" + , "description": "man in suit levitating" + , "category": "People & Body" + , "aliases": [ + "business_suit_levitating" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "👯" + , "description": "people with bunny ears" + , "category": "People & Body" + , "aliases": [ + "dancers" + ] + , "tags": [ + "bunny" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👯♂" + , "description": "men with bunny ears" + , "category": "People & Body" + , "aliases": [ + "dancing_men" + ] + , "tags": [ + "bunny" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👯♀" + , "description": "women with bunny ears" + , "category": "People & Body" + , "aliases": [ + "dancing_women" + ] + , "tags": [ + "bunny" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧖" + , "description": "person in steamy room" + , "category": "People & Body" + , "aliases": [ + "sauna_person" + ] + , "tags": [ + "steamy" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧖♂" + , "description": "man in steamy room" + , "category": "People & Body" + , "aliases": [ + "sauna_man" + ] + , "tags": [ + "steamy" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧖♀" + , "description": "woman in steamy room" + , "category": "People & Body" + , "aliases": [ + "sauna_woman" + ] + , "tags": [ + "steamy" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧗" + , "description": "person climbing" + , "category": "People & Body" + , "aliases": [ + "climbing" + ] + , "tags": [ + "bouldering" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧗♂" + , "description": "man climbing" + , "category": "People & Body" + , "aliases": [ + "climbing_man" + ] + , "tags": [ + "bouldering" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧗♀" + , "description": "woman climbing" + , "category": "People & Body" + , "aliases": [ + "climbing_woman" + ] + , "tags": [ + "bouldering" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤺" + , "description": "person fencing" + , "category": "People & Body" + , "aliases": [ + "person_fencing" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🏇" + , "description": "horse racing" + , "category": "People & Body" + , "aliases": [ + "horse_racing" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "⛷" + , "description": "skier" + , "category": "People & Body" + , "aliases": [ + "skier" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🏂" + , "description": "snowboarder" + , "category": "People & Body" + , "aliases": [ + "snowboarder" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🏌" + , "description": "person golfing" + , "category": "People & Body" + , "aliases": [ + "golfing" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "🏌️♂️" + , "description": "man golfing" + , "category": "People & Body" + , "aliases": [ + "golfing_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🏌️♀️" + , "description": "woman golfing" + , "category": "People & Body" + , "aliases": [ + "golfing_woman" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🏄" + , "description": "person surfing" + , "category": "People & Body" + , "aliases": [ + "surfer" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🏄♂" + , "description": "man surfing" + , "category": "People & Body" + , "aliases": [ + "surfing_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🏄♀" + , "description": "woman surfing" + , "category": "People & Body" + , "aliases": [ + "surfing_woman" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🚣" + , "description": "person rowing boat" + , "category": "People & Body" + , "aliases": [ + "rowboat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🚣♂" + , "description": "man rowing boat" + , "category": "People & Body" + , "aliases": [ + "rowing_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🚣♀" + , "description": "woman rowing boat" + , "category": "People & Body" + , "aliases": [ + "rowing_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🏊" + , "description": "person swimming" + , "category": "People & Body" + , "aliases": [ + "swimmer" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🏊♂" + , "description": "man swimming" + , "category": "People & Body" + , "aliases": [ + "swimming_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🏊♀" + , "description": "woman swimming" + , "category": "People & Body" + , "aliases": [ + "swimming_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "⛹" + , "description": "person bouncing ball" + , "category": "People & Body" + , "aliases": [ + "bouncing_ball_person" + ] + , "tags": [ + "basketball" + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "⛹️♂️" + , "description": "man bouncing ball" + , "category": "People & Body" + , "aliases": [ + "bouncing_ball_man" + , "basketball_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "⛹️♀️" + , "description": "woman bouncing ball" + , "category": "People & Body" + , "aliases": [ + "bouncing_ball_woman" + , "basketball_woman" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🏋" + , "description": "person lifting weights" + , "category": "People & Body" + , "aliases": [ + "weight_lifting" + ] + , "tags": [ + "gym" + , "workout" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "🏋️♂️" + , "description": "man lifting weights" + , "category": "People & Body" + , "aliases": [ + "weight_lifting_man" + ] + , "tags": [ + "gym" + , "workout" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🏋️♀️" + , "description": "woman lifting weights" + , "category": "People & Body" + , "aliases": [ + "weight_lifting_woman" + ] + , "tags": [ + "gym" + , "workout" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🚴" + , "description": "person biking" + , "category": "People & Body" + , "aliases": [ + "bicyclist" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🚴♂" + , "description": "man biking" + , "category": "People & Body" + , "aliases": [ + "biking_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🚴♀" + , "description": "woman biking" + , "category": "People & Body" + , "aliases": [ + "biking_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🚵" + , "description": "person mountain biking" + , "category": "People & Body" + , "aliases": [ + "mountain_bicyclist" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🚵♂" + , "description": "man mountain biking" + , "category": "People & Body" + , "aliases": [ + "mountain_biking_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🚵♀" + , "description": "woman mountain biking" + , "category": "People & Body" + , "aliases": [ + "mountain_biking_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🤸" + , "description": "person cartwheeling" + , "category": "People & Body" + , "aliases": [ + "cartwheeling" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤸♂" + , "description": "man cartwheeling" + , "category": "People & Body" + , "aliases": [ + "man_cartwheeling" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤸♀" + , "description": "woman cartwheeling" + , "category": "People & Body" + , "aliases": [ + "woman_cartwheeling" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤼" + , "description": "people wrestling" + , "category": "People & Body" + , "aliases": [ + "wrestling" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🤼♂" + , "description": "men wrestling" + , "category": "People & Body" + , "aliases": [ + "men_wrestling" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🤼♀" + , "description": "women wrestling" + , "category": "People & Body" + , "aliases": [ + "women_wrestling" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🤽" + , "description": "person playing water polo" + , "category": "People & Body" + , "aliases": [ + "water_polo" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤽♂" + , "description": "man playing water polo" + , "category": "People & Body" + , "aliases": [ + "man_playing_water_polo" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤽♀" + , "description": "woman playing water polo" + , "category": "People & Body" + , "aliases": [ + "woman_playing_water_polo" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤾" + , "description": "person playing handball" + , "category": "People & Body" + , "aliases": [ + "handball_person" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤾♂" + , "description": "man playing handball" + , "category": "People & Body" + , "aliases": [ + "man_playing_handball" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤾♀" + , "description": "woman playing handball" + , "category": "People & Body" + , "aliases": [ + "woman_playing_handball" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤹" + , "description": "person juggling" + , "category": "People & Body" + , "aliases": [ + "juggling_person" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤹♂" + , "description": "man juggling" + , "category": "People & Body" + , "aliases": [ + "man_juggling" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤹♀" + , "description": "woman juggling" + , "category": "People & Body" + , "aliases": [ + "woman_juggling" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🧘" + , "description": "person in lotus position" + , "category": "People & Body" + , "aliases": [ + "lotus_position" + ] + , "tags": [ + "meditation" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧘♂" + , "description": "man in lotus position" + , "category": "People & Body" + , "aliases": [ + "lotus_position_man" + ] + , "tags": [ + "meditation" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧘♀" + , "description": "woman in lotus position" + , "category": "People & Body" + , "aliases": [ + "lotus_position_woman" + ] + , "tags": [ + "meditation" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🛀" + , "description": "person taking bath" + , "category": "People & Body" + , "aliases": [ + "bath" + ] + , "tags": [ + "shower" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🛌" + , "description": "person in bed" + , "category": "People & Body" + , "aliases": [ + "sleeping_bed" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "🧑🤝🧑" + , "description": "people holding hands" + , "category": "People & Body" + , "aliases": [ + "people_holding_hands" + ] + , "tags": [ + "couple" + , "date" + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👭" + , "description": "women holding hands" + , "category": "People & Body" + , "aliases": [ + "two_women_holding_hands" + ] + , "tags": [ + "couple" + , "date" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👫" + , "description": "woman and man holding hands" + , "category": "People & Body" + , "aliases": [ + "couple" + ] + , "tags": [ + "date" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👬" + , "description": "men holding hands" + , "category": "People & Body" + , "aliases": [ + "two_men_holding_hands" + ] + , "tags": [ + "couple" + , "date" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "💏" + , "description": "kiss" + , "category": "People & Body" + , "aliases": [ + "couplekiss" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👩❤️💋👨" + , "description": "kiss: woman, man" + , "category": "People & Body" + , "aliases": [ + "couplekiss_man_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👨❤️💋👨" + , "description": "kiss: man, man" + , "category": "People & Body" + , "aliases": [ + "couplekiss_man_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩❤️💋👩" + , "description": "kiss: woman, woman" + , "category": "People & Body" + , "aliases": [ + "couplekiss_woman_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "💑" + , "description": "couple with heart" + , "category": "People & Body" + , "aliases": [ + "couple_with_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👩❤️👨" + , "description": "couple with heart: woman, man" + , "category": "People & Body" + , "aliases": [ + "couple_with_heart_woman_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👨❤️👨" + , "description": "couple with heart: man, man" + , "category": "People & Body" + , "aliases": [ + "couple_with_heart_man_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩❤️👩" + , "description": "couple with heart: woman, woman" + , "category": "People & Body" + , "aliases": [ + "couple_with_heart_woman_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👪" + , "description": "family" + , "category": "People & Body" + , "aliases": [ + "family" + ] + , "tags": [ + "home" + , "parents" + , "child" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👨👩👦" + , "description": "family: man, woman, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_woman_boy" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👨👩👧" + , "description": "family: man, woman, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_woman_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨👩👧👦" + , "description": "family: man, woman, girl, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_woman_girl_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨👩👦👦" + , "description": "family: man, woman, boy, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_woman_boy_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨👩👧👧" + , "description": "family: man, woman, girl, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_woman_girl_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨👨👦" + , "description": "family: man, man, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_man_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨👨👧" + , "description": "family: man, man, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_man_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨👨👧👦" + , "description": "family: man, man, girl, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_man_girl_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨👨👦👦" + , "description": "family: man, man, boy, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_man_boy_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨👨👧👧" + , "description": "family: man, man, girl, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_man_girl_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩👩👦" + , "description": "family: woman, woman, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_woman_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩👩👧" + , "description": "family: woman, woman, girl" + , "category": "People & Body" + , "aliases": [ + "family_woman_woman_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩👩👧👦" + , "description": "family: woman, woman, girl, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_woman_girl_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩👩👦👦" + , "description": "family: woman, woman, boy, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_woman_boy_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩👩👧👧" + , "description": "family: woman, woman, girl, girl" + , "category": "People & Body" + , "aliases": [ + "family_woman_woman_girl_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨👦" + , "description": "family: man, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👨👦👦" + , "description": "family: man, boy, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_boy_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👨👧" + , "description": "family: man, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👨👧👦" + , "description": "family: man, girl, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_girl_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👨👧👧" + , "description": "family: man, girl, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_girl_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👩👦" + , "description": "family: woman, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👩👦👦" + , "description": "family: woman, boy, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_boy_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👩👧" + , "description": "family: woman, girl" + , "category": "People & Body" + , "aliases": [ + "family_woman_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👩👧👦" + , "description": "family: woman, girl, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_girl_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👩👧👧" + , "description": "family: woman, girl, girl" + , "category": "People & Body" + , "aliases": [ + "family_woman_girl_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "🗣" + , "description": "speaking head" + , "category": "People & Body" + , "aliases": [ + "speaking_head" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "👤" + , "description": "bust in silhouette" + , "category": "People & Body" + , "aliases": [ + "bust_in_silhouette" + ] + , "tags": [ + "user" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👥" + , "description": "busts in silhouette" + , "category": "People & Body" + , "aliases": [ + "busts_in_silhouette" + ] + , "tags": [ + "users" + , "group" + , "team" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👣" + , "description": "footprints" + , "category": "People & Body" + , "aliases": [ + "footprints" + ] + , "tags": [ + "feet" + , "tracks" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐵" + , "description": "monkey face" + , "category": "Animals & Nature" + , "aliases": [ + "monkey_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐒" + , "description": "monkey" + , "category": "Animals & Nature" + , "aliases": [ + "monkey" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦍" + , "description": "gorilla" + , "category": "Animals & Nature" + , "aliases": [ + "gorilla" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦧" + , "description": "orangutan" + , "category": "Animals & Nature" + , "aliases": [ + "orangutan" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🐶" + , "description": "dog face" + , "category": "Animals & Nature" + , "aliases": [ + "dog" + ] + , "tags": [ + "pet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐕" + , "description": "dog" + , "category": "Animals & Nature" + , "aliases": [ + "dog2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦮" + , "description": "guide dog" + , "category": "Animals & Nature" + , "aliases": [ + "guide_dog" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🐕🦺" + , "description": "service dog" + , "category": "Animals & Nature" + , "aliases": [ + "service_dog" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🐩" + , "description": "poodle" + , "category": "Animals & Nature" + , "aliases": [ + "poodle" + ] + , "tags": [ + "dog" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐺" + , "description": "wolf" + , "category": "Animals & Nature" + , "aliases": [ + "wolf" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦊" + , "description": "fox" + , "category": "Animals & Nature" + , "aliases": [ + "fox_face" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦝" + , "description": "raccoon" + , "category": "Animals & Nature" + , "aliases": [ + "raccoon" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐱" + , "description": "cat face" + , "category": "Animals & Nature" + , "aliases": [ + "cat" + ] + , "tags": [ + "pet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐈" + , "description": "cat" + , "category": "Animals & Nature" + , "aliases": [ + "cat2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦁" + , "description": "lion" + , "category": "Animals & Nature" + , "aliases": [ + "lion" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🐯" + , "description": "tiger face" + , "category": "Animals & Nature" + , "aliases": [ + "tiger" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐅" + , "description": "tiger" + , "category": "Animals & Nature" + , "aliases": [ + "tiger2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐆" + , "description": "leopard" + , "category": "Animals & Nature" + , "aliases": [ + "leopard" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐴" + , "description": "horse face" + , "category": "Animals & Nature" + , "aliases": [ + "horse" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐎" + , "description": "horse" + , "category": "Animals & Nature" + , "aliases": [ + "racehorse" + ] + , "tags": [ + "speed" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦄" + , "description": "unicorn" + , "category": "Animals & Nature" + , "aliases": [ + "unicorn" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦓" + , "description": "zebra" + , "category": "Animals & Nature" + , "aliases": [ + "zebra" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦌" + , "description": "deer" + , "category": "Animals & Nature" + , "aliases": [ + "deer" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🐮" + , "description": "cow face" + , "category": "Animals & Nature" + , "aliases": [ + "cow" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐂" + , "description": "ox" + , "category": "Animals & Nature" + , "aliases": [ + "ox" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐃" + , "description": "water buffalo" + , "category": "Animals & Nature" + , "aliases": [ + "water_buffalo" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐄" + , "description": "cow" + , "category": "Animals & Nature" + , "aliases": [ + "cow2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐷" + , "description": "pig face" + , "category": "Animals & Nature" + , "aliases": [ + "pig" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐖" + , "description": "pig" + , "category": "Animals & Nature" + , "aliases": [ + "pig2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐗" + , "description": "boar" + , "category": "Animals & Nature" + , "aliases": [ + "boar" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐽" + , "description": "pig nose" + , "category": "Animals & Nature" + , "aliases": [ + "pig_nose" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐏" + , "description": "ram" + , "category": "Animals & Nature" + , "aliases": [ + "ram" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐑" + , "description": "ewe" + , "category": "Animals & Nature" + , "aliases": [ + "sheep" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐐" + , "description": "goat" + , "category": "Animals & Nature" + , "aliases": [ + "goat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐪" + , "description": "camel" + , "category": "Animals & Nature" + , "aliases": [ + "dromedary_camel" + ] + , "tags": [ + "desert" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐫" + , "description": "two-hump camel" + , "category": "Animals & Nature" + , "aliases": [ + "camel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦙" + , "description": "llama" + , "category": "Animals & Nature" + , "aliases": [ + "llama" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦒" + , "description": "giraffe" + , "category": "Animals & Nature" + , "aliases": [ + "giraffe" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐘" + , "description": "elephant" + , "category": "Animals & Nature" + , "aliases": [ + "elephant" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦏" + , "description": "rhinoceros" + , "category": "Animals & Nature" + , "aliases": [ + "rhinoceros" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦛" + , "description": "hippopotamus" + , "category": "Animals & Nature" + , "aliases": [ + "hippopotamus" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐭" + , "description": "mouse face" + , "category": "Animals & Nature" + , "aliases": [ + "mouse" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐁" + , "description": "mouse" + , "category": "Animals & Nature" + , "aliases": [ + "mouse2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐀" + , "description": "rat" + , "category": "Animals & Nature" + , "aliases": [ + "rat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐹" + , "description": "hamster" + , "category": "Animals & Nature" + , "aliases": [ + "hamster" + ] + , "tags": [ + "pet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐰" + , "description": "rabbit face" + , "category": "Animals & Nature" + , "aliases": [ + "rabbit" + ] + , "tags": [ + "bunny" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐇" + , "description": "rabbit" + , "category": "Animals & Nature" + , "aliases": [ + "rabbit2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐿" + , "description": "chipmunk" + , "category": "Animals & Nature" + , "aliases": [ + "chipmunk" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦔" + , "description": "hedgehog" + , "category": "Animals & Nature" + , "aliases": [ + "hedgehog" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦇" + , "description": "bat" + , "category": "Animals & Nature" + , "aliases": [ + "bat" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🐻" + , "description": "bear" + , "category": "Animals & Nature" + , "aliases": [ + "bear" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐨" + , "description": "koala" + , "category": "Animals & Nature" + , "aliases": [ + "koala" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐼" + , "description": "panda" + , "category": "Animals & Nature" + , "aliases": [ + "panda_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦥" + , "description": "sloth" + , "category": "Animals & Nature" + , "aliases": [ + "sloth" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦦" + , "description": "otter" + , "category": "Animals & Nature" + , "aliases": [ + "otter" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦨" + , "description": "skunk" + , "category": "Animals & Nature" + , "aliases": [ + "skunk" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦘" + , "description": "kangaroo" + , "category": "Animals & Nature" + , "aliases": [ + "kangaroo" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦡" + , "description": "badger" + , "category": "Animals & Nature" + , "aliases": [ + "badger" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐾" + , "description": "paw prints" + , "category": "Animals & Nature" + , "aliases": [ + "feet" + , "paw_prints" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦃" + , "description": "turkey" + , "category": "Animals & Nature" + , "aliases": [ + "turkey" + ] + , "tags": [ + "thanksgiving" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🐔" + , "description": "chicken" + , "category": "Animals & Nature" + , "aliases": [ + "chicken" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐓" + , "description": "rooster" + , "category": "Animals & Nature" + , "aliases": [ + "rooster" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐣" + , "description": "hatching chick" + , "category": "Animals & Nature" + , "aliases": [ + "hatching_chick" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐤" + , "description": "baby chick" + , "category": "Animals & Nature" + , "aliases": [ + "baby_chick" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐥" + , "description": "front-facing baby chick" + , "category": "Animals & Nature" + , "aliases": [ + "hatched_chick" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐦" + , "description": "bird" + , "category": "Animals & Nature" + , "aliases": [ + "bird" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐧" + , "description": "penguin" + , "category": "Animals & Nature" + , "aliases": [ + "penguin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕊" + , "description": "dove" + , "category": "Animals & Nature" + , "aliases": [ + "dove" + ] + , "tags": [ + "peace" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦅" + , "description": "eagle" + , "category": "Animals & Nature" + , "aliases": [ + "eagle" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦆" + , "description": "duck" + , "category": "Animals & Nature" + , "aliases": [ + "duck" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦢" + , "description": "swan" + , "category": "Animals & Nature" + , "aliases": [ + "swan" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦉" + , "description": "owl" + , "category": "Animals & Nature" + , "aliases": [ + "owl" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦩" + , "description": "flamingo" + , "category": "Animals & Nature" + , "aliases": [ + "flamingo" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦚" + , "description": "peacock" + , "category": "Animals & Nature" + , "aliases": [ + "peacock" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦜" + , "description": "parrot" + , "category": "Animals & Nature" + , "aliases": [ + "parrot" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐸" + , "description": "frog" + , "category": "Animals & Nature" + , "aliases": [ + "frog" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐊" + , "description": "crocodile" + , "category": "Animals & Nature" + , "aliases": [ + "crocodile" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐢" + , "description": "turtle" + , "category": "Animals & Nature" + , "aliases": [ + "turtle" + ] + , "tags": [ + "slow" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦎" + , "description": "lizard" + , "category": "Animals & Nature" + , "aliases": [ + "lizard" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🐍" + , "description": "snake" + , "category": "Animals & Nature" + , "aliases": [ + "snake" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐲" + , "description": "dragon face" + , "category": "Animals & Nature" + , "aliases": [ + "dragon_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐉" + , "description": "dragon" + , "category": "Animals & Nature" + , "aliases": [ + "dragon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦕" + , "description": "sauropod" + , "category": "Animals & Nature" + , "aliases": [ + "sauropod" + ] + , "tags": [ + "dinosaur" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦖" + , "description": "T-Rex" + , "category": "Animals & Nature" + , "aliases": [ + "t-rex" + ] + , "tags": [ + "dinosaur" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐳" + , "description": "spouting whale" + , "category": "Animals & Nature" + , "aliases": [ + "whale" + ] + , "tags": [ + "sea" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐋" + , "description": "whale" + , "category": "Animals & Nature" + , "aliases": [ + "whale2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐬" + , "description": "dolphin" + , "category": "Animals & Nature" + , "aliases": [ + "dolphin" + , "flipper" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐟" + , "description": "fish" + , "category": "Animals & Nature" + , "aliases": [ + "fish" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐠" + , "description": "tropical fish" + , "category": "Animals & Nature" + , "aliases": [ + "tropical_fish" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐡" + , "description": "blowfish" + , "category": "Animals & Nature" + , "aliases": [ + "blowfish" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦈" + , "description": "shark" + , "category": "Animals & Nature" + , "aliases": [ + "shark" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🐙" + , "description": "octopus" + , "category": "Animals & Nature" + , "aliases": [ + "octopus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐚" + , "description": "spiral shell" + , "category": "Animals & Nature" + , "aliases": [ + "shell" + ] + , "tags": [ + "sea" + , "beach" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐌" + , "description": "snail" + , "category": "Animals & Nature" + , "aliases": [ + "snail" + ] + , "tags": [ + "slow" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦋" + , "description": "butterfly" + , "category": "Animals & Nature" + , "aliases": [ + "butterfly" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🐛" + , "description": "bug" + , "category": "Animals & Nature" + , "aliases": [ + "bug" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐜" + , "description": "ant" + , "category": "Animals & Nature" + , "aliases": [ + "ant" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐝" + , "description": "honeybee" + , "category": "Animals & Nature" + , "aliases": [ + "bee" + , "honeybee" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐞" + , "description": "lady beetle" + , "category": "Animals & Nature" + , "aliases": [ + "beetle" + ] + , "tags": [ + "bug" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦗" + , "description": "cricket" + , "category": "Animals & Nature" + , "aliases": [ + "cricket" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🕷" + , "description": "spider" + , "category": "Animals & Nature" + , "aliases": [ + "spider" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🕸" + , "description": "spider web" + , "category": "Animals & Nature" + , "aliases": [ + "spider_web" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦂" + , "description": "scorpion" + , "category": "Animals & Nature" + , "aliases": [ + "scorpion" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦟" + , "description": "mosquito" + , "category": "Animals & Nature" + , "aliases": [ + "mosquito" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦠" + , "description": "microbe" + , "category": "Animals & Nature" + , "aliases": [ + "microbe" + ] + , "tags": [ + "germ" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "💐" + , "description": "bouquet" + , "category": "Animals & Nature" + , "aliases": [ + "bouquet" + ] + , "tags": [ + "flowers" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌸" + , "description": "cherry blossom" + , "category": "Animals & Nature" + , "aliases": [ + "cherry_blossom" + ] + , "tags": [ + "flower" + , "spring" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💮" + , "description": "white flower" + , "category": "Animals & Nature" + , "aliases": [ + "white_flower" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏵" + , "description": "rosette" + , "category": "Animals & Nature" + , "aliases": [ + "rosette" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌹" + , "description": "rose" + , "category": "Animals & Nature" + , "aliases": [ + "rose" + ] + , "tags": [ + "flower" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥀" + , "description": "wilted flower" + , "category": "Animals & Nature" + , "aliases": [ + "wilted_flower" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🌺" + , "description": "hibiscus" + , "category": "Animals & Nature" + , "aliases": [ + "hibiscus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌻" + , "description": "sunflower" + , "category": "Animals & Nature" + , "aliases": [ + "sunflower" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌼" + , "description": "blossom" + , "category": "Animals & Nature" + , "aliases": [ + "blossom" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌷" + , "description": "tulip" + , "category": "Animals & Nature" + , "aliases": [ + "tulip" + ] + , "tags": [ + "flower" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌱" + , "description": "seedling" + , "category": "Animals & Nature" + , "aliases": [ + "seedling" + ] + , "tags": [ + "plant" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌲" + , "description": "evergreen tree" + , "category": "Animals & Nature" + , "aliases": [ + "evergreen_tree" + ] + , "tags": [ + "wood" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌳" + , "description": "deciduous tree" + , "category": "Animals & Nature" + , "aliases": [ + "deciduous_tree" + ] + , "tags": [ + "wood" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌴" + , "description": "palm tree" + , "category": "Animals & Nature" + , "aliases": [ + "palm_tree" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌵" + , "description": "cactus" + , "category": "Animals & Nature" + , "aliases": [ + "cactus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌾" + , "description": "sheaf of rice" + , "category": "Animals & Nature" + , "aliases": [ + "ear_of_rice" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌿" + , "description": "herb" + , "category": "Animals & Nature" + , "aliases": [ + "herb" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☘" + , "description": "shamrock" + , "category": "Animals & Nature" + , "aliases": [ + "shamrock" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🍀" + , "description": "four leaf clover" + , "category": "Animals & Nature" + , "aliases": [ + "four_leaf_clover" + ] + , "tags": [ + "luck" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍁" + , "description": "maple leaf" + , "category": "Animals & Nature" + , "aliases": [ + "maple_leaf" + ] + , "tags": [ + "canada" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍂" + , "description": "fallen leaf" + , "category": "Animals & Nature" + , "aliases": [ + "fallen_leaf" + ] + , "tags": [ + "autumn" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍃" + , "description": "leaf fluttering in wind" + , "category": "Animals & Nature" + , "aliases": [ + "leaves" + ] + , "tags": [ + "leaf" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍇" + , "description": "grapes" + , "category": "Food & Drink" + , "aliases": [ + "grapes" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍈" + , "description": "melon" + , "category": "Food & Drink" + , "aliases": [ + "melon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍉" + , "description": "watermelon" + , "category": "Food & Drink" + , "aliases": [ + "watermelon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍊" + , "description": "tangerine" + , "category": "Food & Drink" + , "aliases": [ + "tangerine" + , "orange" + , "mandarin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍋" + , "description": "lemon" + , "category": "Food & Drink" + , "aliases": [ + "lemon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍌" + , "description": "banana" + , "category": "Food & Drink" + , "aliases": [ + "banana" + ] + , "tags": [ + "fruit" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍍" + , "description": "pineapple" + , "category": "Food & Drink" + , "aliases": [ + "pineapple" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥭" + , "description": "mango" + , "category": "Food & Drink" + , "aliases": [ + "mango" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🍎" + , "description": "red apple" + , "category": "Food & Drink" + , "aliases": [ + "apple" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍏" + , "description": "green apple" + , "category": "Food & Drink" + , "aliases": [ + "green_apple" + ] + , "tags": [ + "fruit" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍐" + , "description": "pear" + , "category": "Food & Drink" + , "aliases": [ + "pear" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍑" + , "description": "peach" + , "category": "Food & Drink" + , "aliases": [ + "peach" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍒" + , "description": "cherries" + , "category": "Food & Drink" + , "aliases": [ + "cherries" + ] + , "tags": [ + "fruit" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍓" + , "description": "strawberry" + , "category": "Food & Drink" + , "aliases": [ + "strawberry" + ] + , "tags": [ + "fruit" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥝" + , "description": "kiwi fruit" + , "category": "Food & Drink" + , "aliases": [ + "kiwi_fruit" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🍅" + , "description": "tomato" + , "category": "Food & Drink" + , "aliases": [ + "tomato" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥥" + , "description": "coconut" + , "category": "Food & Drink" + , "aliases": [ + "coconut" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥑" + , "description": "avocado" + , "category": "Food & Drink" + , "aliases": [ + "avocado" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🍆" + , "description": "eggplant" + , "category": "Food & Drink" + , "aliases": [ + "eggplant" + ] + , "tags": [ + "aubergine" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥔" + , "description": "potato" + , "category": "Food & Drink" + , "aliases": [ + "potato" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥕" + , "description": "carrot" + , "category": "Food & Drink" + , "aliases": [ + "carrot" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🌽" + , "description": "ear of corn" + , "category": "Food & Drink" + , "aliases": [ + "corn" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌶" + , "description": "hot pepper" + , "category": "Food & Drink" + , "aliases": [ + "hot_pepper" + ] + , "tags": [ + "spicy" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥒" + , "description": "cucumber" + , "category": "Food & Drink" + , "aliases": [ + "cucumber" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥬" + , "description": "leafy green" + , "category": "Food & Drink" + , "aliases": [ + "leafy_green" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥦" + , "description": "broccoli" + , "category": "Food & Drink" + , "aliases": [ + "broccoli" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧄" + , "description": "garlic" + , "category": "Food & Drink" + , "aliases": [ + "garlic" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧅" + , "description": "onion" + , "category": "Food & Drink" + , "aliases": [ + "onion" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🍄" + , "description": "mushroom" + , "category": "Food & Drink" + , "aliases": [ + "mushroom" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥜" + , "description": "peanuts" + , "category": "Food & Drink" + , "aliases": [ + "peanuts" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🌰" + , "description": "chestnut" + , "category": "Food & Drink" + , "aliases": [ + "chestnut" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍞" + , "description": "bread" + , "category": "Food & Drink" + , "aliases": [ + "bread" + ] + , "tags": [ + "toast" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥐" + , "description": "croissant" + , "category": "Food & Drink" + , "aliases": [ + "croissant" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥖" + , "description": "baguette bread" + , "category": "Food & Drink" + , "aliases": [ + "baguette_bread" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥨" + , "description": "pretzel" + , "category": "Food & Drink" + , "aliases": [ + "pretzel" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥯" + , "description": "bagel" + , "category": "Food & Drink" + , "aliases": [ + "bagel" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥞" + , "description": "pancakes" + , "category": "Food & Drink" + , "aliases": [ + "pancakes" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🧇" + , "description": "waffle" + , "category": "Food & Drink" + , "aliases": [ + "waffle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧀" + , "description": "cheese wedge" + , "category": "Food & Drink" + , "aliases": [ + "cheese" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🍖" + , "description": "meat on bone" + , "category": "Food & Drink" + , "aliases": [ + "meat_on_bone" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍗" + , "description": "poultry leg" + , "category": "Food & Drink" + , "aliases": [ + "poultry_leg" + ] + , "tags": [ + "meat" + , "chicken" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥩" + , "description": "cut of meat" + , "category": "Food & Drink" + , "aliases": [ + "cut_of_meat" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥓" + , "description": "bacon" + , "category": "Food & Drink" + , "aliases": [ + "bacon" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🍔" + , "description": "hamburger" + , "category": "Food & Drink" + , "aliases": [ + "hamburger" + ] + , "tags": [ + "burger" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍟" + , "description": "french fries" + , "category": "Food & Drink" + , "aliases": [ + "fries" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍕" + , "description": "pizza" + , "category": "Food & Drink" + , "aliases": [ + "pizza" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌭" + , "description": "hot dog" + , "category": "Food & Drink" + , "aliases": [ + "hotdog" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥪" + , "description": "sandwich" + , "category": "Food & Drink" + , "aliases": [ + "sandwich" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🌮" + , "description": "taco" + , "category": "Food & Drink" + , "aliases": [ + "taco" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌯" + , "description": "burrito" + , "category": "Food & Drink" + , "aliases": [ + "burrito" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥙" + , "description": "stuffed flatbread" + , "category": "Food & Drink" + , "aliases": [ + "stuffed_flatbread" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🧆" + , "description": "falafel" + , "category": "Food & Drink" + , "aliases": [ + "falafel" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🥚" + , "description": "egg" + , "category": "Food & Drink" + , "aliases": [ + "egg" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🍳" + , "description": "cooking" + , "category": "Food & Drink" + , "aliases": [ + "fried_egg" + ] + , "tags": [ + "breakfast" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥘" + , "description": "shallow pan of food" + , "category": "Food & Drink" + , "aliases": [ + "shallow_pan_of_food" + ] + , "tags": [ + "paella" + , "curry" + ] + , "unicode_version": "" + , "ios_version": "10.2" + } +, { + "emoji": "🍲" + , "description": "pot of food" + , "category": "Food & Drink" + , "aliases": [ + "stew" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥣" + , "description": "bowl with spoon" + , "category": "Food & Drink" + , "aliases": [ + "bowl_with_spoon" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥗" + , "description": "green salad" + , "category": "Food & Drink" + , "aliases": [ + "green_salad" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🍿" + , "description": "popcorn" + , "category": "Food & Drink" + , "aliases": [ + "popcorn" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🧈" + , "description": "butter" + , "category": "Food & Drink" + , "aliases": [ + "butter" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧂" + , "description": "salt" + , "category": "Food & Drink" + , "aliases": [ + "salt" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥫" + , "description": "canned food" + , "category": "Food & Drink" + , "aliases": [ + "canned_food" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🍱" + , "description": "bento box" + , "category": "Food & Drink" + , "aliases": [ + "bento" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍘" + , "description": "rice cracker" + , "category": "Food & Drink" + , "aliases": [ + "rice_cracker" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍙" + , "description": "rice ball" + , "category": "Food & Drink" + , "aliases": [ + "rice_ball" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍚" + , "description": "cooked rice" + , "category": "Food & Drink" + , "aliases": [ + "rice" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍛" + , "description": "curry rice" + , "category": "Food & Drink" + , "aliases": [ + "curry" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍜" + , "description": "steaming bowl" + , "category": "Food & Drink" + , "aliases": [ + "ramen" + ] + , "tags": [ + "noodle" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍝" + , "description": "spaghetti" + , "category": "Food & Drink" + , "aliases": [ + "spaghetti" + ] + , "tags": [ + "pasta" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍠" + , "description": "roasted sweet potato" + , "category": "Food & Drink" + , "aliases": [ + "sweet_potato" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍢" + , "description": "oden" + , "category": "Food & Drink" + , "aliases": [ + "oden" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍣" + , "description": "sushi" + , "category": "Food & Drink" + , "aliases": [ + "sushi" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍤" + , "description": "fried shrimp" + , "category": "Food & Drink" + , "aliases": [ + "fried_shrimp" + ] + , "tags": [ + "tempura" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍥" + , "description": "fish cake with swirl" + , "category": "Food & Drink" + , "aliases": [ + "fish_cake" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥮" + , "description": "moon cake" + , "category": "Food & Drink" + , "aliases": [ + "moon_cake" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🍡" + , "description": "dango" + , "category": "Food & Drink" + , "aliases": [ + "dango" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥟" + , "description": "dumpling" + , "category": "Food & Drink" + , "aliases": [ + "dumpling" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥠" + , "description": "fortune cookie" + , "category": "Food & Drink" + , "aliases": [ + "fortune_cookie" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥡" + , "description": "takeout box" + , "category": "Food & Drink" + , "aliases": [ + "takeout_box" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦀" + , "description": "crab" + , "category": "Food & Drink" + , "aliases": [ + "crab" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦞" + , "description": "lobster" + , "category": "Food & Drink" + , "aliases": [ + "lobster" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦐" + , "description": "shrimp" + , "category": "Food & Drink" + , "aliases": [ + "shrimp" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦑" + , "description": "squid" + , "category": "Food & Drink" + , "aliases": [ + "squid" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦪" + , "description": "oyster" + , "category": "Food & Drink" + , "aliases": [ + "oyster" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🍦" + , "description": "soft ice cream" + , "category": "Food & Drink" + , "aliases": [ + "icecream" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍧" + , "description": "shaved ice" + , "category": "Food & Drink" + , "aliases": [ + "shaved_ice" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍨" + , "description": "ice cream" + , "category": "Food & Drink" + , "aliases": [ + "ice_cream" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍩" + , "description": "doughnut" + , "category": "Food & Drink" + , "aliases": [ + "doughnut" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍪" + , "description": "cookie" + , "category": "Food & Drink" + , "aliases": [ + "cookie" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎂" + , "description": "birthday cake" + , "category": "Food & Drink" + , "aliases": [ + "birthday" + ] + , "tags": [ + "party" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍰" + , "description": "shortcake" + , "category": "Food & Drink" + , "aliases": [ + "cake" + ] + , "tags": [ + "dessert" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧁" + , "description": "cupcake" + , "category": "Food & Drink" + , "aliases": [ + "cupcake" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥧" + , "description": "pie" + , "category": "Food & Drink" + , "aliases": [ + "pie" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🍫" + , "description": "chocolate bar" + , "category": "Food & Drink" + , "aliases": [ + "chocolate_bar" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍬" + , "description": "candy" + , "category": "Food & Drink" + , "aliases": [ + "candy" + ] + , "tags": [ + "sweet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍭" + , "description": "lollipop" + , "category": "Food & Drink" + , "aliases": [ + "lollipop" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍮" + , "description": "custard" + , "category": "Food & Drink" + , "aliases": [ + "custard" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍯" + , "description": "honey pot" + , "category": "Food & Drink" + , "aliases": [ + "honey_pot" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍼" + , "description": "baby bottle" + , "category": "Food & Drink" + , "aliases": [ + "baby_bottle" + ] + , "tags": [ + "milk" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥛" + , "description": "glass of milk" + , "category": "Food & Drink" + , "aliases": [ + "milk_glass" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "☕" + , "description": "hot beverage" + , "category": "Food & Drink" + , "aliases": [ + "coffee" + ] + , "tags": [ + "cafe" + , "espresso" + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍵" + , "description": "teacup without handle" + , "category": "Food & Drink" + , "aliases": [ + "tea" + ] + , "tags": [ + "green" + , "breakfast" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍶" + , "description": "sake" + , "category": "Food & Drink" + , "aliases": [ + "sake" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍾" + , "description": "bottle with popping cork" + , "category": "Food & Drink" + , "aliases": [ + "champagne" + ] + , "tags": [ + "bottle" + , "bubbly" + , "celebration" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🍷" + , "description": "wine glass" + , "category": "Food & Drink" + , "aliases": [ + "wine_glass" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍸" + , "description": "cocktail glass" + , "category": "Food & Drink" + , "aliases": [ + "cocktail" + ] + , "tags": [ + "drink" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍹" + , "description": "tropical drink" + , "category": "Food & Drink" + , "aliases": [ + "tropical_drink" + ] + , "tags": [ + "summer" + , "vacation" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍺" + , "description": "beer mug" + , "category": "Food & Drink" + , "aliases": [ + "beer" + ] + , "tags": [ + "drink" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍻" + , "description": "clinking beer mugs" + , "category": "Food & Drink" + , "aliases": [ + "beers" + ] + , "tags": [ + "drinks" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥂" + , "description": "clinking glasses" + , "category": "Food & Drink" + , "aliases": [ + "clinking_glasses" + ] + , "tags": [ + "cheers" + , "toast" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥃" + , "description": "tumbler glass" + , "category": "Food & Drink" + , "aliases": [ + "tumbler_glass" + ] + , "tags": [ + "whisky" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥤" + , "description": "cup with straw" + , "category": "Food & Drink" + , "aliases": [ + "cup_with_straw" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧃" + , "description": "beverage box" + , "category": "Food & Drink" + , "aliases": [ + "beverage_box" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧉" + , "description": "mate" + , "category": "Food & Drink" + , "aliases": [ + "mate" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧊" + , "description": "ice cube" + , "category": "Food & Drink" + , "aliases": [ + "ice_cube" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🥢" + , "description": "chopsticks" + , "category": "Food & Drink" + , "aliases": [ + "chopsticks" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🍽" + , "description": "fork and knife with plate" + , "category": "Food & Drink" + , "aliases": [ + "plate_with_cutlery" + ] + , "tags": [ + "dining" + , "dinner" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🍴" + , "description": "fork and knife" + , "category": "Food & Drink" + , "aliases": [ + "fork_and_knife" + ] + , "tags": [ + "cutlery" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥄" + , "description": "spoon" + , "category": "Food & Drink" + , "aliases": [ + "spoon" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🔪" + , "description": "kitchen knife" + , "category": "Food & Drink" + , "aliases": [ + "hocho" + , "knife" + ] + , "tags": [ + "cut" + , "chop" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏺" + , "description": "amphora" + , "category": "Food & Drink" + , "aliases": [ + "amphora" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌍" + , "description": "globe showing Europe-Africa" + , "category": "Travel & Places" + , "aliases": [ + "earth_africa" + ] + , "tags": [ + "globe" + , "world" + , "international" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌎" + , "description": "globe showing Americas" + , "category": "Travel & Places" + , "aliases": [ + "earth_americas" + ] + , "tags": [ + "globe" + , "world" + , "international" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌏" + , "description": "globe showing Asia-Australia" + , "category": "Travel & Places" + , "aliases": [ + "earth_asia" + ] + , "tags": [ + "globe" + , "world" + , "international" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌐" + , "description": "globe with meridians" + , "category": "Travel & Places" + , "aliases": [ + "globe_with_meridians" + ] + , "tags": [ + "world" + , "global" + , "international" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗺" + , "description": "world map" + , "category": "Travel & Places" + , "aliases": [ + "world_map" + ] + , "tags": [ + "travel" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🗾" + , "description": "map of Japan" + , "category": "Travel & Places" + , "aliases": [ + "japan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧭" + , "description": "compass" + , "category": "Travel & Places" + , "aliases": [ + "compass" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏔" + , "description": "snow-capped mountain" + , "category": "Travel & Places" + , "aliases": [ + "mountain_snow" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⛰" + , "description": "mountain" + , "category": "Travel & Places" + , "aliases": [ + "mountain" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🌋" + , "description": "volcano" + , "category": "Travel & Places" + , "aliases": [ + "volcano" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗻" + , "description": "mount fuji" + , "category": "Travel & Places" + , "aliases": [ + "mount_fuji" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏕" + , "description": "camping" + , "category": "Travel & Places" + , "aliases": [ + "camping" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏖" + , "description": "beach with umbrella" + , "category": "Travel & Places" + , "aliases": [ + "beach_umbrella" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏜" + , "description": "desert" + , "category": "Travel & Places" + , "aliases": [ + "desert" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏝" + , "description": "desert island" + , "category": "Travel & Places" + , "aliases": [ + "desert_island" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏞" + , "description": "national park" + , "category": "Travel & Places" + , "aliases": [ + "national_park" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏟" + , "description": "stadium" + , "category": "Travel & Places" + , "aliases": [ + "stadium" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏛" + , "description": "classical building" + , "category": "Travel & Places" + , "aliases": [ + "classical_building" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏗" + , "description": "building construction" + , "category": "Travel & Places" + , "aliases": [ + "building_construction" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🧱" + , "description": "brick" + , "category": "Travel & Places" + , "aliases": [ + "bricks" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏘" + , "description": "houses" + , "category": "Travel & Places" + , "aliases": [ + "houses" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏚" + , "description": "derelict house" + , "category": "Travel & Places" + , "aliases": [ + "derelict_house" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏠" + , "description": "house" + , "category": "Travel & Places" + , "aliases": [ + "house" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏡" + , "description": "house with garden" + , "category": "Travel & Places" + , "aliases": [ + "house_with_garden" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏢" + , "description": "office building" + , "category": "Travel & Places" + , "aliases": [ + "office" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏣" + , "description": "Japanese post office" + , "category": "Travel & Places" + , "aliases": [ + "post_office" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏤" + , "description": "post office" + , "category": "Travel & Places" + , "aliases": [ + "european_post_office" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏥" + , "description": "hospital" + , "category": "Travel & Places" + , "aliases": [ + "hospital" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏦" + , "description": "bank" + , "category": "Travel & Places" + , "aliases": [ + "bank" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏨" + , "description": "hotel" + , "category": "Travel & Places" + , "aliases": [ + "hotel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏩" + , "description": "love hotel" + , "category": "Travel & Places" + , "aliases": [ + "love_hotel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏪" + , "description": "convenience store" + , "category": "Travel & Places" + , "aliases": [ + "convenience_store" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏫" + , "description": "school" + , "category": "Travel & Places" + , "aliases": [ + "school" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏬" + , "description": "department store" + , "category": "Travel & Places" + , "aliases": [ + "department_store" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏭" + , "description": "factory" + , "category": "Travel & Places" + , "aliases": [ + "factory" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏯" + , "description": "Japanese castle" + , "category": "Travel & Places" + , "aliases": [ + "japanese_castle" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏰" + , "description": "castle" + , "category": "Travel & Places" + , "aliases": [ + "european_castle" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💒" + , "description": "wedding" + , "category": "Travel & Places" + , "aliases": [ + "wedding" + ] + , "tags": [ + "marriage" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗼" + , "description": "Tokyo tower" + , "category": "Travel & Places" + , "aliases": [ + "tokyo_tower" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗽" + , "description": "Statue of Liberty" + , "category": "Travel & Places" + , "aliases": [ + "statue_of_liberty" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⛪" + , "description": "church" + , "category": "Travel & Places" + , "aliases": [ + "church" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🕌" + , "description": "mosque" + , "category": "Travel & Places" + , "aliases": [ + "mosque" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛕" + , "description": "hindu temple" + , "category": "Travel & Places" + , "aliases": [ + "hindu_temple" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🕍" + , "description": "synagogue" + , "category": "Travel & Places" + , "aliases": [ + "synagogue" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "⛩" + , "description": "shinto shrine" + , "category": "Travel & Places" + , "aliases": [ + "shinto_shrine" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🕋" + , "description": "kaaba" + , "category": "Travel & Places" + , "aliases": [ + "kaaba" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "⛲" + , "description": "fountain" + , "category": "Travel & Places" + , "aliases": [ + "fountain" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "⛺" + , "description": "tent" + , "category": "Travel & Places" + , "aliases": [ + "tent" + ] + , "tags": [ + "camping" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🌁" + , "description": "foggy" + , "category": "Travel & Places" + , "aliases": [ + "foggy" + ] + , "tags": [ + "karl" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌃" + , "description": "night with stars" + , "category": "Travel & Places" + , "aliases": [ + "night_with_stars" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏙" + , "description": "cityscape" + , "category": "Travel & Places" + , "aliases": [ + "cityscape" + ] + , "tags": [ + "skyline" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌄" + , "description": "sunrise over mountains" + , "category": "Travel & Places" + , "aliases": [ + "sunrise_over_mountains" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌅" + , "description": "sunrise" + , "category": "Travel & Places" + , "aliases": [ + "sunrise" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌆" + , "description": "cityscape at dusk" + , "category": "Travel & Places" + , "aliases": [ + "city_sunset" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌇" + , "description": "sunset" + , "category": "Travel & Places" + , "aliases": [ + "city_sunrise" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌉" + , "description": "bridge at night" + , "category": "Travel & Places" + , "aliases": [ + "bridge_at_night" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "♨️" + , "description": "hot springs" + , "category": "Travel & Places" + , "aliases": [ + "hotsprings" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🎠" + , "description": "carousel horse" + , "category": "Travel & Places" + , "aliases": [ + "carousel_horse" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎡" + , "description": "ferris wheel" + , "category": "Travel & Places" + , "aliases": [ + "ferris_wheel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎢" + , "description": "roller coaster" + , "category": "Travel & Places" + , "aliases": [ + "roller_coaster" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💈" + , "description": "barber pole" + , "category": "Travel & Places" + , "aliases": [ + "barber" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎪" + , "description": "circus tent" + , "category": "Travel & Places" + , "aliases": [ + "circus_tent" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚂" + , "description": "locomotive" + , "category": "Travel & Places" + , "aliases": [ + "steam_locomotive" + ] + , "tags": [ + "train" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚃" + , "description": "railway car" + , "category": "Travel & Places" + , "aliases": [ + "railway_car" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚄" + , "description": "high-speed train" + , "category": "Travel & Places" + , "aliases": [ + "bullettrain_side" + ] + , "tags": [ + "train" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚅" + , "description": "bullet train" + , "category": "Travel & Places" + , "aliases": [ + "bullettrain_front" + ] + , "tags": [ + "train" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚆" + , "description": "train" + , "category": "Travel & Places" + , "aliases": [ + "train2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚇" + , "description": "metro" + , "category": "Travel & Places" + , "aliases": [ + "metro" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚈" + , "description": "light rail" + , "category": "Travel & Places" + , "aliases": [ + "light_rail" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚉" + , "description": "station" + , "category": "Travel & Places" + , "aliases": [ + "station" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚊" + , "description": "tram" + , "category": "Travel & Places" + , "aliases": [ + "tram" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚝" + , "description": "monorail" + , "category": "Travel & Places" + , "aliases": [ + "monorail" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚞" + , "description": "mountain railway" + , "category": "Travel & Places" + , "aliases": [ + "mountain_railway" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚋" + , "description": "tram car" + , "category": "Travel & Places" + , "aliases": [ + "train" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚌" + , "description": "bus" + , "category": "Travel & Places" + , "aliases": [ + "bus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚍" + , "description": "oncoming bus" + , "category": "Travel & Places" + , "aliases": [ + "oncoming_bus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚎" + , "description": "trolleybus" + , "category": "Travel & Places" + , "aliases": [ + "trolleybus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚐" + , "description": "minibus" + , "category": "Travel & Places" + , "aliases": [ + "minibus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚑" + , "description": "ambulance" + , "category": "Travel & Places" + , "aliases": [ + "ambulance" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚒" + , "description": "fire engine" + , "category": "Travel & Places" + , "aliases": [ + "fire_engine" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚓" + , "description": "police car" + , "category": "Travel & Places" + , "aliases": [ + "police_car" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚔" + , "description": "oncoming police car" + , "category": "Travel & Places" + , "aliases": [ + "oncoming_police_car" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚕" + , "description": "taxi" + , "category": "Travel & Places" + , "aliases": [ + "taxi" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚖" + , "description": "oncoming taxi" + , "category": "Travel & Places" + , "aliases": [ + "oncoming_taxi" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚗" + , "description": "automobile" + , "category": "Travel & Places" + , "aliases": [ + "car" + , "red_car" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚘" + , "description": "oncoming automobile" + , "category": "Travel & Places" + , "aliases": [ + "oncoming_automobile" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚙" + , "description": "sport utility vehicle" + , "category": "Travel & Places" + , "aliases": [ + "blue_car" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚚" + , "description": "delivery truck" + , "category": "Travel & Places" + , "aliases": [ + "truck" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚛" + , "description": "articulated lorry" + , "category": "Travel & Places" + , "aliases": [ + "articulated_lorry" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚜" + , "description": "tractor" + , "category": "Travel & Places" + , "aliases": [ + "tractor" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏎" + , "description": "racing car" + , "category": "Travel & Places" + , "aliases": [ + "racing_car" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏍" + , "description": "motorcycle" + , "category": "Travel & Places" + , "aliases": [ + "motorcycle" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛵" + , "description": "motor scooter" + , "category": "Travel & Places" + , "aliases": [ + "motor_scooter" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦽" + , "description": "manual wheelchair" + , "category": "Travel & Places" + , "aliases": [ + "manual_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦼" + , "description": "motorized wheelchair" + , "category": "Travel & Places" + , "aliases": [ + "motorized_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🛺" + , "description": "auto rickshaw" + , "category": "Travel & Places" + , "aliases": [ + "auto_rickshaw" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🚲" + , "description": "bicycle" + , "category": "Travel & Places" + , "aliases": [ + "bike" + ] + , "tags": [ + "bicycle" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛴" + , "description": "kick scooter" + , "category": "Travel & Places" + , "aliases": [ + "kick_scooter" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🛹" + , "description": "skateboard" + , "category": "Travel & Places" + , "aliases": [ + "skateboard" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🚏" + , "description": "bus stop" + , "category": "Travel & Places" + , "aliases": [ + "busstop" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛣" + , "description": "motorway" + , "category": "Travel & Places" + , "aliases": [ + "motorway" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛤" + , "description": "railway track" + , "category": "Travel & Places" + , "aliases": [ + "railway_track" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛢" + , "description": "oil drum" + , "category": "Travel & Places" + , "aliases": [ + "oil_drum" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⛽" + , "description": "fuel pump" + , "category": "Travel & Places" + , "aliases": [ + "fuelpump" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🚨" + , "description": "police car light" + , "category": "Travel & Places" + , "aliases": [ + "rotating_light" + ] + , "tags": [ + "911" + , "emergency" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚥" + , "description": "horizontal traffic light" + , "category": "Travel & Places" + , "aliases": [ + "traffic_light" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚦" + , "description": "vertical traffic light" + , "category": "Travel & Places" + , "aliases": [ + "vertical_traffic_light" + ] + , "tags": [ + "semaphore" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛑" + , "description": "stop sign" + , "category": "Travel & Places" + , "aliases": [ + "stop_sign" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🚧" + , "description": "construction" + , "category": "Travel & Places" + , "aliases": [ + "construction" + ] + , "tags": [ + "wip" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⚓" + , "description": "anchor" + , "category": "Travel & Places" + , "aliases": [ + "anchor" + ] + , "tags": [ + "ship" + ] + , "unicode_version": "4.1" + , "ios_version": "6.0" + } +, { + "emoji": "⛵" + , "description": "sailboat" + , "category": "Travel & Places" + , "aliases": [ + "boat" + , "sailboat" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🛶" + , "description": "canoe" + , "category": "Travel & Places" + , "aliases": [ + "canoe" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🚤" + , "description": "speedboat" + , "category": "Travel & Places" + , "aliases": [ + "speedboat" + ] + , "tags": [ + "ship" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛳" + , "description": "passenger ship" + , "category": "Travel & Places" + , "aliases": [ + "passenger_ship" + ] + , "tags": [ + "cruise" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⛴" + , "description": "ferry" + , "category": "Travel & Places" + , "aliases": [ + "ferry" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🛥" + , "description": "motor boat" + , "category": "Travel & Places" + , "aliases": [ + "motor_boat" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🚢" + , "description": "ship" + , "category": "Travel & Places" + , "aliases": [ + "ship" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "✈️" + , "description": "airplane" + , "category": "Travel & Places" + , "aliases": [ + "airplane" + ] + , "tags": [ + "flight" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🛩" + , "description": "small airplane" + , "category": "Travel & Places" + , "aliases": [ + "small_airplane" + ] + , "tags": [ + "flight" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛫" + , "description": "airplane departure" + , "category": "Travel & Places" + , "aliases": [ + "flight_departure" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛬" + , "description": "airplane arrival" + , "category": "Travel & Places" + , "aliases": [ + "flight_arrival" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🪂" + , "description": "parachute" + , "category": "Travel & Places" + , "aliases": [ + "parachute" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "💺" + , "description": "seat" + , "category": "Travel & Places" + , "aliases": [ + "seat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚁" + , "description": "helicopter" + , "category": "Travel & Places" + , "aliases": [ + "helicopter" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚟" + , "description": "suspension railway" + , "category": "Travel & Places" + , "aliases": [ + "suspension_railway" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚠" + , "description": "mountain cableway" + , "category": "Travel & Places" + , "aliases": [ + "mountain_cableway" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚡" + , "description": "aerial tramway" + , "category": "Travel & Places" + , "aliases": [ + "aerial_tramway" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛰" + , "description": "satellite" + , "category": "Travel & Places" + , "aliases": [ + "artificial_satellite" + ] + , "tags": [ + "orbit" + , "space" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🚀" + , "description": "rocket" + , "category": "Travel & Places" + , "aliases": [ + "rocket" + ] + , "tags": [ + "ship" + , "launch" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛸" + , "description": "flying saucer" + , "category": "Travel & Places" + , "aliases": [ + "flying_saucer" + ] + , "tags": [ + "ufo" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🛎" + , "description": "bellhop bell" + , "category": "Travel & Places" + , "aliases": [ + "bellhop_bell" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🧳" + , "description": "luggage" + , "category": "Travel & Places" + , "aliases": [ + "luggage" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "⌛" + , "description": "hourglass done" + , "category": "Travel & Places" + , "aliases": [ + "hourglass" + ] + , "tags": [ + "time" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⏳" + , "description": "hourglass not done" + , "category": "Travel & Places" + , "aliases": [ + "hourglass_flowing_sand" + ] + , "tags": [ + "time" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⌚" + , "description": "watch" + , "category": "Travel & Places" + , "aliases": [ + "watch" + ] + , "tags": [ + "time" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⏰" + , "description": "alarm clock" + , "category": "Travel & Places" + , "aliases": [ + "alarm_clock" + ] + , "tags": [ + "morning" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏱" + , "description": "stopwatch" + , "category": "Travel & Places" + , "aliases": [ + "stopwatch" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.1" + } +, { + "emoji": "⏲" + , "description": "timer clock" + , "category": "Travel & Places" + , "aliases": [ + "timer_clock" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.1" + } +, { + "emoji": "🕰" + , "description": "mantelpiece clock" + , "category": "Travel & Places" + , "aliases": [ + "mantelpiece_clock" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🕛" + , "description": "twelve o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock12" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕧" + , "description": "twelve-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock1230" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕐" + , "description": "one o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock1" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕜" + , "description": "one-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock130" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕑" + , "description": "two o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕝" + , "description": "two-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock230" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕒" + , "description": "three o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock3" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕞" + , "description": "three-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock330" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕓" + , "description": "four o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock4" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕟" + , "description": "four-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock430" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕔" + , "description": "five o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock5" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕠" + , "description": "five-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock530" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕕" + , "description": "six o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock6" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕡" + , "description": "six-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock630" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕖" + , "description": "seven o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock7" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕢" + , "description": "seven-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock730" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕗" + , "description": "eight o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock8" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕣" + , "description": "eight-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock830" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕘" + , "description": "nine o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock9" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕤" + , "description": "nine-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock930" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕙" + , "description": "ten o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock10" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕥" + , "description": "ten-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock1030" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕚" + , "description": "eleven o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock11" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕦" + , "description": "eleven-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock1130" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌑" + , "description": "new moon" + , "category": "Travel & Places" + , "aliases": [ + "new_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌒" + , "description": "waxing crescent moon" + , "category": "Travel & Places" + , "aliases": [ + "waxing_crescent_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌓" + , "description": "first quarter moon" + , "category": "Travel & Places" + , "aliases": [ + "first_quarter_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌔" + , "description": "waxing gibbous moon" + , "category": "Travel & Places" + , "aliases": [ + "moon" + , "waxing_gibbous_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌕" + , "description": "full moon" + , "category": "Travel & Places" + , "aliases": [ + "full_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌖" + , "description": "waning gibbous moon" + , "category": "Travel & Places" + , "aliases": [ + "waning_gibbous_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌗" + , "description": "last quarter moon" + , "category": "Travel & Places" + , "aliases": [ + "last_quarter_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌘" + , "description": "waning crescent moon" + , "category": "Travel & Places" + , "aliases": [ + "waning_crescent_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌙" + , "description": "crescent moon" + , "category": "Travel & Places" + , "aliases": [ + "crescent_moon" + ] + , "tags": [ + "night" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌚" + , "description": "new moon face" + , "category": "Travel & Places" + , "aliases": [ + "new_moon_with_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌛" + , "description": "first quarter moon face" + , "category": "Travel & Places" + , "aliases": [ + "first_quarter_moon_with_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌜" + , "description": "last quarter moon face" + , "category": "Travel & Places" + , "aliases": [ + "last_quarter_moon_with_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌡" + , "description": "thermometer" + , "category": "Travel & Places" + , "aliases": [ + "thermometer" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "☀️" + , "description": "sun" + , "category": "Travel & Places" + , "aliases": [ + "sunny" + ] + , "tags": [ + "weather" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🌝" + , "description": "full moon face" + , "category": "Travel & Places" + , "aliases": [ + "full_moon_with_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌞" + , "description": "sun with face" + , "category": "Travel & Places" + , "aliases": [ + "sun_with_face" + ] + , "tags": [ + "summer" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪐" + , "description": "ringed planet" + , "category": "Travel & Places" + , "aliases": [ + "ringed_planet" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "⭐" + , "description": "star" + , "category": "Travel & Places" + , "aliases": [ + "star" + ] + , "tags": [ + ] + , "unicode_version": "5.1" + , "ios_version": "6.0" + } +, { + "emoji": "🌟" + , "description": "glowing star" + , "category": "Travel & Places" + , "aliases": [ + "star2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌠" + , "description": "shooting star" + , "category": "Travel & Places" + , "aliases": [ + "stars" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌌" + , "description": "milky way" + , "category": "Travel & Places" + , "aliases": [ + "milky_way" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☁️" + , "description": "cloud" + , "category": "Travel & Places" + , "aliases": [ + "cloud" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⛅" + , "description": "sun behind cloud" + , "category": "Travel & Places" + , "aliases": [ + "partly_sunny" + ] + , "tags": [ + "weather" + , "cloud" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "⛈" + , "description": "cloud with lightning and rain" + , "category": "Travel & Places" + , "aliases": [ + "cloud_with_lightning_and_rain" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🌤" + , "description": "sun behind small cloud" + , "category": "Travel & Places" + , "aliases": [ + "sun_behind_small_cloud" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌥" + , "description": "sun behind large cloud" + , "category": "Travel & Places" + , "aliases": [ + "sun_behind_large_cloud" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌦" + , "description": "sun behind rain cloud" + , "category": "Travel & Places" + , "aliases": [ + "sun_behind_rain_cloud" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌧" + , "description": "cloud with rain" + , "category": "Travel & Places" + , "aliases": [ + "cloud_with_rain" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌨" + , "description": "cloud with snow" + , "category": "Travel & Places" + , "aliases": [ + "cloud_with_snow" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌩" + , "description": "cloud with lightning" + , "category": "Travel & Places" + , "aliases": [ + "cloud_with_lightning" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌪" + , "description": "tornado" + , "category": "Travel & Places" + , "aliases": [ + "tornado" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌫" + , "description": "fog" + , "category": "Travel & Places" + , "aliases": [ + "fog" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌬" + , "description": "wind face" + , "category": "Travel & Places" + , "aliases": [ + "wind_face" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌀" + , "description": "cyclone" + , "category": "Travel & Places" + , "aliases": [ + "cyclone" + ] + , "tags": [ + "swirl" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌈" + , "description": "rainbow" + , "category": "Travel & Places" + , "aliases": [ + "rainbow" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌂" + , "description": "closed umbrella" + , "category": "Travel & Places" + , "aliases": [ + "closed_umbrella" + ] + , "tags": [ + "weather" + , "rain" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☂️" + , "description": "umbrella" + , "category": "Travel & Places" + , "aliases": [ + "open_umbrella" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☔" + , "description": "umbrella with rain drops" + , "category": "Travel & Places" + , "aliases": [ + "umbrella" + ] + , "tags": [ + "rain" + , "weather" + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "⛱" + , "description": "umbrella on ground" + , "category": "Travel & Places" + , "aliases": [ + "parasol_on_ground" + ] + , "tags": [ + "beach_umbrella" + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "⚡" + , "description": "high voltage" + , "category": "Travel & Places" + , "aliases": [ + "zap" + ] + , "tags": [ + "lightning" + , "thunder" + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "❄️" + , "description": "snowflake" + , "category": "Travel & Places" + , "aliases": [ + "snowflake" + ] + , "tags": [ + "winter" + , "cold" + , "weather" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "☃️" + , "description": "snowman" + , "category": "Travel & Places" + , "aliases": [ + "snowman_with_snow" + ] + , "tags": [ + "winter" + , "christmas" + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "⛄" + , "description": "snowman without snow" + , "category": "Travel & Places" + , "aliases": [ + "snowman" + ] + , "tags": [ + "winter" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "☄" + , "description": "comet" + , "category": "Travel & Places" + , "aliases": [ + "comet" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "🔥" + , "description": "fire" + , "category": "Travel & Places" + , "aliases": [ + "fire" + ] + , "tags": [ + "burn" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💧" + , "description": "droplet" + , "category": "Travel & Places" + , "aliases": [ + "droplet" + ] + , "tags": [ + "water" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌊" + , "description": "water wave" + , "category": "Travel & Places" + , "aliases": [ + "ocean" + ] + , "tags": [ + "sea" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎃" + , "description": "jack-o-lantern" + , "category": "Activities" + , "aliases": [ + "jack_o_lantern" + ] + , "tags": [ + "halloween" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎄" + , "description": "Christmas tree" + , "category": "Activities" + , "aliases": [ + "christmas_tree" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎆" + , "description": "fireworks" + , "category": "Activities" + , "aliases": [ + "fireworks" + ] + , "tags": [ + "festival" + , "celebration" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎇" + , "description": "sparkler" + , "category": "Activities" + , "aliases": [ + "sparkler" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧨" + , "description": "firecracker" + , "category": "Activities" + , "aliases": [ + "firecracker" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "✨" + , "description": "sparkles" + , "category": "Activities" + , "aliases": [ + "sparkles" + ] + , "tags": [ + "shiny" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎈" + , "description": "balloon" + , "category": "Activities" + , "aliases": [ + "balloon" + ] + , "tags": [ + "party" + , "birthday" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎉" + , "description": "party popper" + , "category": "Activities" + , "aliases": [ + "tada" + ] + , "tags": [ + "hooray" + , "party" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎊" + , "description": "confetti ball" + , "category": "Activities" + , "aliases": [ + "confetti_ball" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎋" + , "description": "tanabata tree" + , "category": "Activities" + , "aliases": [ + "tanabata_tree" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎍" + , "description": "pine decoration" + , "category": "Activities" + , "aliases": [ + "bamboo" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎎" + , "description": "Japanese dolls" + , "category": "Activities" + , "aliases": [ + "dolls" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎏" + , "description": "carp streamer" + , "category": "Activities" + , "aliases": [ + "flags" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎐" + , "description": "wind chime" + , "category": "Activities" + , "aliases": [ + "wind_chime" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎑" + , "description": "moon viewing ceremony" + , "category": "Activities" + , "aliases": [ + "rice_scene" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧧" + , "description": "red envelope" + , "category": "Activities" + , "aliases": [ + "red_envelope" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎀" + , "description": "ribbon" + , "category": "Activities" + , "aliases": [ + "ribbon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎁" + , "description": "wrapped gift" + , "category": "Activities" + , "aliases": [ + "gift" + ] + , "tags": [ + "present" + , "birthday" + , "christmas" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎗" + , "description": "reminder ribbon" + , "category": "Activities" + , "aliases": [ + "reminder_ribbon" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎟" + , "description": "admission tickets" + , "category": "Activities" + , "aliases": [ + "tickets" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎫" + , "description": "ticket" + , "category": "Activities" + , "aliases": [ + "ticket" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎖" + , "description": "military medal" + , "category": "Activities" + , "aliases": [ + "medal_military" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏆" + , "description": "trophy" + , "category": "Activities" + , "aliases": [ + "trophy" + ] + , "tags": [ + "award" + , "contest" + , "winner" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏅" + , "description": "sports medal" + , "category": "Activities" + , "aliases": [ + "medal_sports" + ] + , "tags": [ + "gold" + , "winner" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥇" + , "description": "1st place medal" + , "category": "Activities" + , "aliases": [ + "1st_place_medal" + ] + , "tags": [ + "gold" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥈" + , "description": "2nd place medal" + , "category": "Activities" + , "aliases": [ + "2nd_place_medal" + ] + , "tags": [ + "silver" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥉" + , "description": "3rd place medal" + , "category": "Activities" + , "aliases": [ + "3rd_place_medal" + ] + , "tags": [ + "bronze" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "⚽" + , "description": "soccer ball" + , "category": "Activities" + , "aliases": [ + "soccer" + ] + , "tags": [ + "sports" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "⚾" + , "description": "baseball" + , "category": "Activities" + , "aliases": [ + "baseball" + ] + , "tags": [ + "sports" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🥎" + , "description": "softball" + , "category": "Activities" + , "aliases": [ + "softball" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏀" + , "description": "basketball" + , "category": "Activities" + , "aliases": [ + "basketball" + ] + , "tags": [ + "sports" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏐" + , "description": "volleyball" + , "category": "Activities" + , "aliases": [ + "volleyball" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏈" + , "description": "american football" + , "category": "Activities" + , "aliases": [ + "football" + ] + , "tags": [ + "sports" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏉" + , "description": "rugby football" + , "category": "Activities" + , "aliases": [ + "rugby_football" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎾" + , "description": "tennis" + , "category": "Activities" + , "aliases": [ + "tennis" + ] + , "tags": [ + "sports" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥏" + , "description": "flying disc" + , "category": "Activities" + , "aliases": [ + "flying_disc" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎳" + , "description": "bowling" + , "category": "Activities" + , "aliases": [ + "bowling" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏏" + , "description": "cricket game" + , "category": "Activities" + , "aliases": [ + "cricket_game" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏑" + , "description": "field hockey" + , "category": "Activities" + , "aliases": [ + "field_hockey" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏒" + , "description": "ice hockey" + , "category": "Activities" + , "aliases": [ + "ice_hockey" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥍" + , "description": "lacrosse" + , "category": "Activities" + , "aliases": [ + "lacrosse" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏓" + , "description": "ping pong" + , "category": "Activities" + , "aliases": [ + "ping_pong" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏸" + , "description": "badminton" + , "category": "Activities" + , "aliases": [ + "badminton" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥊" + , "description": "boxing glove" + , "category": "Activities" + , "aliases": [ + "boxing_glove" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥋" + , "description": "martial arts uniform" + , "category": "Activities" + , "aliases": [ + "martial_arts_uniform" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥅" + , "description": "goal net" + , "category": "Activities" + , "aliases": [ + "goal_net" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "⛳" + , "description": "flag in hole" + , "category": "Activities" + , "aliases": [ + "golf" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "⛸" + , "description": "ice skate" + , "category": "Activities" + , "aliases": [ + "ice_skate" + ] + , "tags": [ + "skating" + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🎣" + , "description": "fishing pole" + , "category": "Activities" + , "aliases": [ + "fishing_pole_and_fish" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤿" + , "description": "diving mask" + , "category": "Activities" + , "aliases": [ + "diving_mask" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🎽" + , "description": "running shirt" + , "category": "Activities" + , "aliases": [ + "running_shirt_with_sash" + ] + , "tags": [ + "marathon" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎿" + , "description": "skis" + , "category": "Activities" + , "aliases": [ + "ski" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛷" + , "description": "sled" + , "category": "Activities" + , "aliases": [ + "sled" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥌" + , "description": "curling stone" + , "category": "Activities" + , "aliases": [ + "curling_stone" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎯" + , "description": "direct hit" + , "category": "Activities" + , "aliases": [ + "dart" + ] + , "tags": [ + "target" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪀" + , "description": "yo-yo" + , "category": "Activities" + , "aliases": [ + "yo_yo" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🪁" + , "description": "kite" + , "category": "Activities" + , "aliases": [ + "kite" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🎱" + , "description": "pool 8 ball" + , "category": "Activities" + , "aliases": [ + "8ball" + ] + , "tags": [ + "pool" + , "billiards" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔮" + , "description": "crystal ball" + , "category": "Activities" + , "aliases": [ + "crystal_ball" + ] + , "tags": [ + "fortune" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧿" + , "description": "nazar amulet" + , "category": "Activities" + , "aliases": [ + "nazar_amulet" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎮" + , "description": "video game" + , "category": "Activities" + , "aliases": [ + "video_game" + ] + , "tags": [ + "play" + , "controller" + , "console" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕹" + , "description": "joystick" + , "category": "Activities" + , "aliases": [ + "joystick" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎰" + , "description": "slot machine" + , "category": "Activities" + , "aliases": [ + "slot_machine" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎲" + , "description": "game die" + , "category": "Activities" + , "aliases": [ + "game_die" + ] + , "tags": [ + "dice" + , "gambling" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧩" + , "description": "puzzle piece" + , "category": "Activities" + , "aliases": [ + "jigsaw" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧸" + , "description": "teddy bear" + , "category": "Activities" + , "aliases": [ + "teddy_bear" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "♠️" + , "description": "spade suit" + , "category": "Activities" + , "aliases": [ + "spades" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♥️" + , "description": "heart suit" + , "category": "Activities" + , "aliases": [ + "hearts" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♦️" + , "description": "diamond suit" + , "category": "Activities" + , "aliases": [ + "diamonds" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♣️" + , "description": "club suit" + , "category": "Activities" + , "aliases": [ + "clubs" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♟" + , "description": "chess pawn" + , "category": "Activities" + , "aliases": [ + "chess_pawn" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🃏" + , "description": "joker" + , "category": "Activities" + , "aliases": [ + "black_joker" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🀄" + , "description": "mahjong red dragon" + , "category": "Activities" + , "aliases": [ + "mahjong" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🎴" + , "description": "flower playing cards" + , "category": "Activities" + , "aliases": [ + "flower_playing_cards" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎭" + , "description": "performing arts" + , "category": "Activities" + , "aliases": [ + "performing_arts" + ] + , "tags": [ + "theater" + , "drama" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🖼" + , "description": "framed picture" + , "category": "Activities" + , "aliases": [ + "framed_picture" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎨" + , "description": "artist palette" + , "category": "Activities" + , "aliases": [ + "art" + ] + , "tags": [ + "design" + , "paint" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧵" + , "description": "thread" + , "category": "Activities" + , "aliases": [ + "thread" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧶" + , "description": "yarn" + , "category": "Activities" + , "aliases": [ + "yarn" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👓" + , "description": "glasses" + , "category": "Objects" + , "aliases": [ + "eyeglasses" + ] + , "tags": [ + "glasses" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕶" + , "description": "sunglasses" + , "category": "Objects" + , "aliases": [ + "dark_sunglasses" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥽" + , "description": "goggles" + , "category": "Objects" + , "aliases": [ + "goggles" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥼" + , "description": "lab coat" + , "category": "Objects" + , "aliases": [ + "lab_coat" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦺" + , "description": "safety vest" + , "category": "Objects" + , "aliases": [ + "safety_vest" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "👔" + , "description": "necktie" + , "category": "Objects" + , "aliases": [ + "necktie" + ] + , "tags": [ + "shirt" + , "formal" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👕" + , "description": "t-shirt" + , "category": "Objects" + , "aliases": [ + "shirt" + , "tshirt" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👖" + , "description": "jeans" + , "category": "Objects" + , "aliases": [ + "jeans" + ] + , "tags": [ + "pants" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧣" + , "description": "scarf" + , "category": "Objects" + , "aliases": [ + "scarf" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧤" + , "description": "gloves" + , "category": "Objects" + , "aliases": [ + "gloves" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧥" + , "description": "coat" + , "category": "Objects" + , "aliases": [ + "coat" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧦" + , "description": "socks" + , "category": "Objects" + , "aliases": [ + "socks" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👗" + , "description": "dress" + , "category": "Objects" + , "aliases": [ + "dress" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👘" + , "description": "kimono" + , "category": "Objects" + , "aliases": [ + "kimono" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥻" + , "description": "sari" + , "category": "Objects" + , "aliases": [ + "sari" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🩱" + , "description": "one-piece swimsuit" + , "category": "Objects" + , "aliases": [ + "one_piece_swimsuit" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🩲" + , "description": "swim brief" + , "category": "Objects" + , "aliases": [ + "swim_brief" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🩳" + , "description": "shorts" + , "category": "Objects" + , "aliases": [ + "shorts" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "👙" + , "description": "bikini" + , "category": "Objects" + , "aliases": [ + "bikini" + ] + , "tags": [ + "beach" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👚" + , "description": "woman’s clothes" + , "category": "Objects" + , "aliases": [ + "womans_clothes" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👛" + , "description": "purse" + , "category": "Objects" + , "aliases": [ + "purse" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👜" + , "description": "handbag" + , "category": "Objects" + , "aliases": [ + "handbag" + ] + , "tags": [ + "bag" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👝" + , "description": "clutch bag" + , "category": "Objects" + , "aliases": [ + "pouch" + ] + , "tags": [ + "bag" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛍" + , "description": "shopping bags" + , "category": "Objects" + , "aliases": [ + "shopping" + ] + , "tags": [ + "bags" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎒" + , "description": "backpack" + , "category": "Objects" + , "aliases": [ + "school_satchel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👞" + , "description": "man’s shoe" + , "category": "Objects" + , "aliases": [ + "mans_shoe" + , "shoe" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👟" + , "description": "running shoe" + , "category": "Objects" + , "aliases": [ + "athletic_shoe" + ] + , "tags": [ + "sneaker" + , "sport" + , "running" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥾" + , "description": "hiking boot" + , "category": "Objects" + , "aliases": [ + "hiking_boot" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥿" + , "description": "flat shoe" + , "category": "Objects" + , "aliases": [ + "flat_shoe" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👠" + , "description": "high-heeled shoe" + , "category": "Objects" + , "aliases": [ + "high_heel" + ] + , "tags": [ + "shoe" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👡" + , "description": "woman’s sandal" + , "category": "Objects" + , "aliases": [ + "sandal" + ] + , "tags": [ + "shoe" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🩰" + , "description": "ballet shoes" + , "category": "Objects" + , "aliases": [ + "ballet_shoes" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "👢" + , "description": "woman’s boot" + , "category": "Objects" + , "aliases": [ + "boot" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👑" + , "description": "crown" + , "category": "Objects" + , "aliases": [ + "crown" + ] + , "tags": [ + "king" + , "queen" + , "royal" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👒" + , "description": "woman’s hat" + , "category": "Objects" + , "aliases": [ + "womans_hat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎩" + , "description": "top hat" + , "category": "Objects" + , "aliases": [ + "tophat" + ] + , "tags": [ + "hat" + , "classy" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎓" + , "description": "graduation cap" + , "category": "Objects" + , "aliases": [ + "mortar_board" + ] + , "tags": [ + "education" + , "college" + , "university" + , "graduation" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧢" + , "description": "billed cap" + , "category": "Objects" + , "aliases": [ + "billed_cap" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "⛑" + , "description": "rescue worker’s helmet" + , "category": "Objects" + , "aliases": [ + "rescue_worker_helmet" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "📿" + , "description": "prayer beads" + , "category": "Objects" + , "aliases": [ + "prayer_beads" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "💄" + , "description": "lipstick" + , "category": "Objects" + , "aliases": [ + "lipstick" + ] + , "tags": [ + "makeup" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💍" + , "description": "ring" + , "category": "Objects" + , "aliases": [ + "ring" + ] + , "tags": [ + "wedding" + , "marriage" + , "engaged" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💎" + , "description": "gem stone" + , "category": "Objects" + , "aliases": [ + "gem" + ] + , "tags": [ + "diamond" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔇" + , "description": "muted speaker" + , "category": "Objects" + , "aliases": [ + "mute" + ] + , "tags": [ + "sound" + , "volume" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔈" + , "description": "speaker low volume" + , "category": "Objects" + , "aliases": [ + "speaker" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔉" + , "description": "speaker medium volume" + , "category": "Objects" + , "aliases": [ + "sound" + ] + , "tags": [ + "volume" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔊" + , "description": "speaker high volume" + , "category": "Objects" + , "aliases": [ + "loud_sound" + ] + , "tags": [ + "volume" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📢" + , "description": "loudspeaker" + , "category": "Objects" + , "aliases": [ + "loudspeaker" + ] + , "tags": [ + "announcement" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📣" + , "description": "megaphone" + , "category": "Objects" + , "aliases": [ + "mega" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📯" + , "description": "postal horn" + , "category": "Objects" + , "aliases": [ + "postal_horn" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔔" + , "description": "bell" + , "category": "Objects" + , "aliases": [ + "bell" + ] + , "tags": [ + "sound" + , "notification" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔕" + , "description": "bell with slash" + , "category": "Objects" + , "aliases": [ + "no_bell" + ] + , "tags": [ + "volume" + , "off" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎼" + , "description": "musical score" + , "category": "Objects" + , "aliases": [ + "musical_score" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎵" + , "description": "musical note" + , "category": "Objects" + , "aliases": [ + "musical_note" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎶" + , "description": "musical notes" + , "category": "Objects" + , "aliases": [ + "notes" + ] + , "tags": [ + "music" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎙" + , "description": "studio microphone" + , "category": "Objects" + , "aliases": [ + "studio_microphone" + ] + , "tags": [ + "podcast" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎚" + , "description": "level slider" + , "category": "Objects" + , "aliases": [ + "level_slider" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎛" + , "description": "control knobs" + , "category": "Objects" + , "aliases": [ + "control_knobs" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎤" + , "description": "microphone" + , "category": "Objects" + , "aliases": [ + "microphone" + ] + , "tags": [ + "sing" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎧" + , "description": "headphone" + , "category": "Objects" + , "aliases": [ + "headphones" + ] + , "tags": [ + "music" + , "earphones" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📻" + , "description": "radio" + , "category": "Objects" + , "aliases": [ + "radio" + ] + , "tags": [ + "podcast" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎷" + , "description": "saxophone" + , "category": "Objects" + , "aliases": [ + "saxophone" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎸" + , "description": "guitar" + , "category": "Objects" + , "aliases": [ + "guitar" + ] + , "tags": [ + "rock" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎹" + , "description": "musical keyboard" + , "category": "Objects" + , "aliases": [ + "musical_keyboard" + ] + , "tags": [ + "piano" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎺" + , "description": "trumpet" + , "category": "Objects" + , "aliases": [ + "trumpet" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎻" + , "description": "violin" + , "category": "Objects" + , "aliases": [ + "violin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪕" + , "description": "banjo" + , "category": "Objects" + , "aliases": [ + "banjo" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🥁" + , "description": "drum" + , "category": "Objects" + , "aliases": [ + "drum" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + } +, { + "emoji": "📱" + , "description": "mobile phone" + , "category": "Objects" + , "aliases": [ + "iphone" + ] + , "tags": [ + "smartphone" + , "mobile" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📲" + , "description": "mobile phone with arrow" + , "category": "Objects" + , "aliases": [ + "calling" + ] + , "tags": [ + "call" + , "incoming" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☎️" + , "description": "telephone" + , "category": "Objects" + , "aliases": [ + "phone" + , "telephone" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "📞" + , "description": "telephone receiver" + , "category": "Objects" + , "aliases": [ + "telephone_receiver" + ] + , "tags": [ + "phone" + , "call" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📟" + , "description": "pager" + , "category": "Objects" + , "aliases": [ + "pager" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📠" + , "description": "fax machine" + , "category": "Objects" + , "aliases": [ + "fax" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔋" + , "description": "battery" + , "category": "Objects" + , "aliases": [ + "battery" + ] + , "tags": [ + "power" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔌" + , "description": "electric plug" + , "category": "Objects" + , "aliases": [ + "electric_plug" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💻" + , "description": "laptop computer" + , "category": "Objects" + , "aliases": [ + "computer" + ] + , "tags": [ + "desktop" + , "screen" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🖥" + , "description": "desktop computer" + , "category": "Objects" + , "aliases": [ + "desktop_computer" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🖨" + , "description": "printer" + , "category": "Objects" + , "aliases": [ + "printer" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⌨" + , "description": "keyboard" + , "category": "Objects" + , "aliases": [ + "keyboard" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "🖱" + , "description": "computer mouse" + , "category": "Objects" + , "aliases": [ + "computer_mouse" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🖲" + , "description": "trackball" + , "category": "Objects" + , "aliases": [ + "trackball" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "💽" + , "description": "computer disk" + , "category": "Objects" + , "aliases": [ + "minidisc" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💾" + , "description": "floppy disk" + , "category": "Objects" + , "aliases": [ + "floppy_disk" + ] + , "tags": [ + "save" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💿" + , "description": "optical disk" + , "category": "Objects" + , "aliases": [ + "cd" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📀" + , "description": "dvd" + , "category": "Objects" + , "aliases": [ + "dvd" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧮" + , "description": "abacus" + , "category": "Objects" + , "aliases": [ + "abacus" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎥" + , "description": "movie camera" + , "category": "Objects" + , "aliases": [ + "movie_camera" + ] + , "tags": [ + "film" + , "video" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎞" + , "description": "film frames" + , "category": "Objects" + , "aliases": [ + "film_strip" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📽" + , "description": "film projector" + , "category": "Objects" + , "aliases": [ + "film_projector" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎬" + , "description": "clapper board" + , "category": "Objects" + , "aliases": [ + "clapper" + ] + , "tags": [ + "film" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📺" + , "description": "television" + , "category": "Objects" + , "aliases": [ + "tv" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📷" + , "description": "camera" + , "category": "Objects" + , "aliases": [ + "camera" + ] + , "tags": [ + "photo" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📸" + , "description": "camera with flash" + , "category": "Objects" + , "aliases": [ + "camera_flash" + ] + , "tags": [ + "photo" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📹" + , "description": "video camera" + , "category": "Objects" + , "aliases": [ + "video_camera" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📼" + , "description": "videocassette" + , "category": "Objects" + , "aliases": [ + "vhs" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔍" + , "description": "magnifying glass tilted left" + , "category": "Objects" + , "aliases": [ + "mag" + ] + , "tags": [ + "search" + , "zoom" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔎" + , "description": "magnifying glass tilted right" + , "category": "Objects" + , "aliases": [ + "mag_right" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕯" + , "description": "candle" + , "category": "Objects" + , "aliases": [ + "candle" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "💡" + , "description": "light bulb" + , "category": "Objects" + , "aliases": [ + "bulb" + ] + , "tags": [ + "idea" + , "light" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔦" + , "description": "flashlight" + , "category": "Objects" + , "aliases": [ + "flashlight" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏮" + , "description": "red paper lantern" + , "category": "Objects" + , "aliases": [ + "izakaya_lantern" + , "lantern" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪔" + , "description": "diya lamp" + , "category": "Objects" + , "aliases": [ + "diya_lamp" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "📔" + , "description": "notebook with decorative cover" + , "category": "Objects" + , "aliases": [ + "notebook_with_decorative_cover" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📕" + , "description": "closed book" + , "category": "Objects" + , "aliases": [ + "closed_book" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📖" + , "description": "open book" + , "category": "Objects" + , "aliases": [ + "book" + , "open_book" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📗" + , "description": "green book" + , "category": "Objects" + , "aliases": [ + "green_book" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📘" + , "description": "blue book" + , "category": "Objects" + , "aliases": [ + "blue_book" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📙" + , "description": "orange book" + , "category": "Objects" + , "aliases": [ + "orange_book" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📚" + , "description": "books" + , "category": "Objects" + , "aliases": [ + "books" + ] + , "tags": [ + "library" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📓" + , "description": "notebook" + , "category": "Objects" + , "aliases": [ + "notebook" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📒" + , "description": "ledger" + , "category": "Objects" + , "aliases": [ + "ledger" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📃" + , "description": "page with curl" + , "category": "Objects" + , "aliases": [ + "page_with_curl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📜" + , "description": "scroll" + , "category": "Objects" + , "aliases": [ + "scroll" + ] + , "tags": [ + "document" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📄" + , "description": "page facing up" + , "category": "Objects" + , "aliases": [ + "page_facing_up" + ] + , "tags": [ + "document" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📰" + , "description": "newspaper" + , "category": "Objects" + , "aliases": [ + "newspaper" + ] + , "tags": [ + "press" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗞" + , "description": "rolled-up newspaper" + , "category": "Objects" + , "aliases": [ + "newspaper_roll" + ] + , "tags": [ + "press" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📑" + , "description": "bookmark tabs" + , "category": "Objects" + , "aliases": [ + "bookmark_tabs" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔖" + , "description": "bookmark" + , "category": "Objects" + , "aliases": [ + "bookmark" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏷" + , "description": "label" + , "category": "Objects" + , "aliases": [ + "label" + ] + , "tags": [ + "tag" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "💰" + , "description": "money bag" + , "category": "Objects" + , "aliases": [ + "moneybag" + ] + , "tags": [ + "dollar" + , "cream" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💴" + , "description": "yen banknote" + , "category": "Objects" + , "aliases": [ + "yen" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💵" + , "description": "dollar banknote" + , "category": "Objects" + , "aliases": [ + "dollar" + ] + , "tags": [ + "money" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💶" + , "description": "euro banknote" + , "category": "Objects" + , "aliases": [ + "euro" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💷" + , "description": "pound banknote" + , "category": "Objects" + , "aliases": [ + "pound" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💸" + , "description": "money with wings" + , "category": "Objects" + , "aliases": [ + "money_with_wings" + ] + , "tags": [ + "dollar" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💳" + , "description": "credit card" + , "category": "Objects" + , "aliases": [ + "credit_card" + ] + , "tags": [ + "subscription" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧾" + , "description": "receipt" + , "category": "Objects" + , "aliases": [ + "receipt" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "💹" + , "description": "chart increasing with yen" + , "category": "Objects" + , "aliases": [ + "chart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💱" + , "description": "currency exchange" + , "category": "Objects" + , "aliases": [ + "currency_exchange" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💲" + , "description": "heavy dollar sign" + , "category": "Objects" + , "aliases": [ + "heavy_dollar_sign" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "✉️" + , "description": "envelope" + , "category": "Objects" + , "aliases": [ + "email" + , "envelope" + ] + , "tags": [ + "letter" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "📧" + , "description": "e-mail" + , "category": "Objects" + , "aliases": [ + "e-mail" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📨" + , "description": "incoming envelope" + , "category": "Objects" + , "aliases": [ + "incoming_envelope" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📩" + , "description": "envelope with arrow" + , "category": "Objects" + , "aliases": [ + "envelope_with_arrow" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📤" + , "description": "outbox tray" + , "category": "Objects" + , "aliases": [ + "outbox_tray" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📥" + , "description": "inbox tray" + , "category": "Objects" + , "aliases": [ + "inbox_tray" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📦" + , "description": "package" + , "category": "Objects" + , "aliases": [ + "package" + ] + , "tags": [ + "shipping" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📫" + , "description": "closed mailbox with raised flag" + , "category": "Objects" + , "aliases": [ + "mailbox" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📪" + , "description": "closed mailbox with lowered flag" + , "category": "Objects" + , "aliases": [ + "mailbox_closed" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📬" + , "description": "open mailbox with raised flag" + , "category": "Objects" + , "aliases": [ + "mailbox_with_mail" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📭" + , "description": "open mailbox with lowered flag" + , "category": "Objects" + , "aliases": [ + "mailbox_with_no_mail" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📮" + , "description": "postbox" + , "category": "Objects" + , "aliases": [ + "postbox" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗳" + , "description": "ballot box with ballot" + , "category": "Objects" + , "aliases": [ + "ballot_box" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "✏️" + , "description": "pencil" + , "category": "Objects" + , "aliases": [ + "pencil2" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "✒️" + , "description": "black nib" + , "category": "Objects" + , "aliases": [ + "black_nib" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🖋" + , "description": "fountain pen" + , "category": "Objects" + , "aliases": [ + "fountain_pen" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🖊" + , "description": "pen" + , "category": "Objects" + , "aliases": [ + "pen" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🖌" + , "description": "paintbrush" + , "category": "Objects" + , "aliases": [ + "paintbrush" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🖍" + , "description": "crayon" + , "category": "Objects" + , "aliases": [ + "crayon" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📝" + , "description": "memo" + , "category": "Objects" + , "aliases": [ + "memo" + , "pencil" + ] + , "tags": [ + "document" + , "note" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💼" + , "description": "briefcase" + , "category": "Objects" + , "aliases": [ + "briefcase" + ] + , "tags": [ + "business" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📁" + , "description": "file folder" + , "category": "Objects" + , "aliases": [ + "file_folder" + ] + , "tags": [ + "directory" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📂" + , "description": "open file folder" + , "category": "Objects" + , "aliases": [ + "open_file_folder" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗂" + , "description": "card index dividers" + , "category": "Objects" + , "aliases": [ + "card_index_dividers" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📅" + , "description": "calendar" + , "category": "Objects" + , "aliases": [ + "date" + ] + , "tags": [ + "calendar" + , "schedule" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📆" + , "description": "tear-off calendar" + , "category": "Objects" + , "aliases": [ + "calendar" + ] + , "tags": [ + "schedule" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗒" + , "description": "spiral notepad" + , "category": "Objects" + , "aliases": [ + "spiral_notepad" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🗓" + , "description": "spiral calendar" + , "category": "Objects" + , "aliases": [ + "spiral_calendar" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📇" + , "description": "card index" + , "category": "Objects" + , "aliases": [ + "card_index" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📈" + , "description": "chart increasing" + , "category": "Objects" + , "aliases": [ + "chart_with_upwards_trend" + ] + , "tags": [ + "graph" + , "metrics" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📉" + , "description": "chart decreasing" + , "category": "Objects" + , "aliases": [ + "chart_with_downwards_trend" + ] + , "tags": [ + "graph" + , "metrics" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📊" + , "description": "bar chart" + , "category": "Objects" + , "aliases": [ + "bar_chart" + ] + , "tags": [ + "stats" + , "metrics" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📋" + , "description": "clipboard" + , "category": "Objects" + , "aliases": [ + "clipboard" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📌" + , "description": "pushpin" + , "category": "Objects" + , "aliases": [ + "pushpin" + ] + , "tags": [ + "location" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📍" + , "description": "round pushpin" + , "category": "Objects" + , "aliases": [ + "round_pushpin" + ] + , "tags": [ + "location" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📎" + , "description": "paperclip" + , "category": "Objects" + , "aliases": [ + "paperclip" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🖇" + , "description": "linked paperclips" + , "category": "Objects" + , "aliases": [ + "paperclips" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📏" + , "description": "straight ruler" + , "category": "Objects" + , "aliases": [ + "straight_ruler" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📐" + , "description": "triangular ruler" + , "category": "Objects" + , "aliases": [ + "triangular_ruler" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "✂️" + , "description": "scissors" + , "category": "Objects" + , "aliases": [ + "scissors" + ] + , "tags": [ + "cut" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🗃" + , "description": "card file box" + , "category": "Objects" + , "aliases": [ + "card_file_box" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🗄" + , "description": "file cabinet" + , "category": "Objects" + , "aliases": [ + "file_cabinet" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🗑" + , "description": "wastebasket" + , "category": "Objects" + , "aliases": [ + "wastebasket" + ] + , "tags": [ + "trash" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🔒" + , "description": "locked" + , "category": "Objects" + , "aliases": [ + "lock" + ] + , "tags": [ + "security" + , "private" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔓" + , "description": "unlocked" + , "category": "Objects" + , "aliases": [ + "unlock" + ] + , "tags": [ + "security" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔏" + , "description": "locked with pen" + , "category": "Objects" + , "aliases": [ + "lock_with_ink_pen" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔐" + , "description": "locked with key" + , "category": "Objects" + , "aliases": [ + "closed_lock_with_key" + ] + , "tags": [ + "security" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔑" + , "description": "key" + , "category": "Objects" + , "aliases": [ + "key" + ] + , "tags": [ + "lock" + , "password" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗝" + , "description": "old key" + , "category": "Objects" + , "aliases": [ + "old_key" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🔨" + , "description": "hammer" + , "category": "Objects" + , "aliases": [ + "hammer" + ] + , "tags": [ + "tool" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪓" + , "description": "axe" + , "category": "Objects" + , "aliases": [ + "axe" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "⛏" + , "description": "pick" + , "category": "Objects" + , "aliases": [ + "pick" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "⚒" + , "description": "hammer and pick" + , "category": "Objects" + , "aliases": [ + "hammer_and_pick" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🛠" + , "description": "hammer and wrench" + , "category": "Objects" + , "aliases": [ + "hammer_and_wrench" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🗡" + , "description": "dagger" + , "category": "Objects" + , "aliases": [ + "dagger" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⚔" + , "description": "crossed swords" + , "category": "Objects" + , "aliases": [ + "crossed_swords" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🔫" + , "description": "pistol" + , "category": "Objects" + , "aliases": [ + "gun" + ] + , "tags": [ + "shoot" + , "weapon" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏹" + , "description": "bow and arrow" + , "category": "Objects" + , "aliases": [ + "bow_and_arrow" + ] + , "tags": [ + "archery" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛡" + , "description": "shield" + , "category": "Objects" + , "aliases": [ + "shield" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🔧" + , "description": "wrench" + , "category": "Objects" + , "aliases": [ + "wrench" + ] + , "tags": [ + "tool" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔩" + , "description": "nut and bolt" + , "category": "Objects" + , "aliases": [ + "nut_and_bolt" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⚙" + , "description": "gear" + , "category": "Objects" + , "aliases": [ + "gear" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🗜" + , "description": "clamp" + , "category": "Objects" + , "aliases": [ + "clamp" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⚖" + , "description": "balance scale" + , "category": "Objects" + , "aliases": [ + "balance_scale" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🦯" + , "description": "probing cane" + , "category": "Objects" + , "aliases": [ + "probing_cane" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🔗" + , "description": "link" + , "category": "Objects" + , "aliases": [ + "link" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⛓" + , "description": "chains" + , "category": "Objects" + , "aliases": [ + "chains" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🧰" + , "description": "toolbox" + , "category": "Objects" + , "aliases": [ + "toolbox" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧲" + , "description": "magnet" + , "category": "Objects" + , "aliases": [ + "magnet" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "⚗" + , "description": "alembic" + , "category": "Objects" + , "aliases": [ + "alembic" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🧪" + , "description": "test tube" + , "category": "Objects" + , "aliases": [ + "test_tube" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧫" + , "description": "petri dish" + , "category": "Objects" + , "aliases": [ + "petri_dish" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧬" + , "description": "dna" + , "category": "Objects" + , "aliases": [ + "dna" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🔬" + , "description": "microscope" + , "category": "Objects" + , "aliases": [ + "microscope" + ] + , "tags": [ + "science" + , "laboratory" + , "investigate" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔭" + , "description": "telescope" + , "category": "Objects" + , "aliases": [ + "telescope" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📡" + , "description": "satellite antenna" + , "category": "Objects" + , "aliases": [ + "satellite" + ] + , "tags": [ + "signal" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💉" + , "description": "syringe" + , "category": "Objects" + , "aliases": [ + "syringe" + ] + , "tags": [ + "health" + , "hospital" + , "needle" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🩸" + , "description": "drop of blood" + , "category": "Objects" + , "aliases": [ + "drop_of_blood" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "💊" + , "description": "pill" + , "category": "Objects" + , "aliases": [ + "pill" + ] + , "tags": [ + "health" + , "medicine" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🩹" + , "description": "adhesive bandage" + , "category": "Objects" + , "aliases": [ + "adhesive_bandage" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🩺" + , "description": "stethoscope" + , "category": "Objects" + , "aliases": [ + "stethoscope" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🚪" + , "description": "door" + , "category": "Objects" + , "aliases": [ + "door" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛏" + , "description": "bed" + , "category": "Objects" + , "aliases": [ + "bed" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛋" + , "description": "couch and lamp" + , "category": "Objects" + , "aliases": [ + "couch_and_lamp" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🪑" + , "description": "chair" + , "category": "Objects" + , "aliases": [ + "chair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🚽" + , "description": "toilet" + , "category": "Objects" + , "aliases": [ + "toilet" + ] + , "tags": [ + "wc" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚿" + , "description": "shower" + , "category": "Objects" + , "aliases": [ + "shower" + ] + , "tags": [ + "bath" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛁" + , "description": "bathtub" + , "category": "Objects" + , "aliases": [ + "bathtub" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪒" + , "description": "razor" + , "category": "Objects" + , "aliases": [ + "razor" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧴" + , "description": "lotion bottle" + , "category": "Objects" + , "aliases": [ + "lotion_bottle" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧷" + , "description": "safety pin" + , "category": "Objects" + , "aliases": [ + "safety_pin" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧹" + , "description": "broom" + , "category": "Objects" + , "aliases": [ + "broom" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧺" + , "description": "basket" + , "category": "Objects" + , "aliases": [ + "basket" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧻" + , "description": "roll of paper" + , "category": "Objects" + , "aliases": [ + "roll_of_paper" + ] + , "tags": [ + "toilet" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧼" + , "description": "soap" + , "category": "Objects" + , "aliases": [ + "soap" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧽" + , "description": "sponge" + , "category": "Objects" + , "aliases": [ + "sponge" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧯" + , "description": "fire extinguisher" + , "category": "Objects" + , "aliases": [ + "fire_extinguisher" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🛒" + , "description": "shopping cart" + , "category": "Objects" + , "aliases": [ + "shopping_cart" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🚬" + , "description": "cigarette" + , "category": "Objects" + , "aliases": [ + "smoking" + ] + , "tags": [ + "cigarette" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⚰" + , "description": "coffin" + , "category": "Objects" + , "aliases": [ + "coffin" + ] + , "tags": [ + "funeral" + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "⚱" + , "description": "funeral urn" + , "category": "Objects" + , "aliases": [ + "funeral_urn" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🗿" + , "description": "moai" + , "category": "Objects" + , "aliases": [ + "moyai" + ] + , "tags": [ + "stone" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏧" + , "description": "ATM sign" + , "category": "Symbols" + , "aliases": [ + "atm" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚮" + , "description": "litter in bin sign" + , "category": "Symbols" + , "aliases": [ + "put_litter_in_its_place" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚰" + , "description": "potable water" + , "category": "Symbols" + , "aliases": [ + "potable_water" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "♿" + , "description": "wheelchair symbol" + , "category": "Symbols" + , "aliases": [ + "wheelchair" + ] + , "tags": [ + "accessibility" + ] + , "unicode_version": "4.1" + , "ios_version": "6.0" + } +, { + "emoji": "🚹" + , "description": "men’s room" + , "category": "Symbols" + , "aliases": [ + "mens" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚺" + , "description": "women’s room" + , "category": "Symbols" + , "aliases": [ + "womens" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚻" + , "description": "restroom" + , "category": "Symbols" + , "aliases": [ + "restroom" + ] + , "tags": [ + "toilet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚼" + , "description": "baby symbol" + , "category": "Symbols" + , "aliases": [ + "baby_symbol" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚾" + , "description": "water closet" + , "category": "Symbols" + , "aliases": [ + "wc" + ] + , "tags": [ + "toilet" + , "restroom" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛂" + , "description": "passport control" + , "category": "Symbols" + , "aliases": [ + "passport_control" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛃" + , "description": "customs" + , "category": "Symbols" + , "aliases": [ + "customs" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛄" + , "description": "baggage claim" + , "category": "Symbols" + , "aliases": [ + "baggage_claim" + ] + , "tags": [ + "airport" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛅" + , "description": "left luggage" + , "category": "Symbols" + , "aliases": [ + "left_luggage" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⚠️" + , "description": "warning" + , "category": "Symbols" + , "aliases": [ + "warning" + ] + , "tags": [ + "wip" + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚸" + , "description": "children crossing" + , "category": "Symbols" + , "aliases": [ + "children_crossing" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⛔" + , "description": "no entry" + , "category": "Symbols" + , "aliases": [ + "no_entry" + ] + , "tags": [ + "limit" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🚫" + , "description": "prohibited" + , "category": "Symbols" + , "aliases": [ + "no_entry_sign" + ] + , "tags": [ + "block" + , "forbidden" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚳" + , "description": "no bicycles" + , "category": "Symbols" + , "aliases": [ + "no_bicycles" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚭" + , "description": "no smoking" + , "category": "Symbols" + , "aliases": [ + "no_smoking" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚯" + , "description": "no littering" + , "category": "Symbols" + , "aliases": [ + "do_not_litter" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚱" + , "description": "non-potable water" + , "category": "Symbols" + , "aliases": [ + "non-potable_water" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚷" + , "description": "no pedestrians" + , "category": "Symbols" + , "aliases": [ + "no_pedestrians" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📵" + , "description": "no mobile phones" + , "category": "Symbols" + , "aliases": [ + "no_mobile_phones" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔞" + , "description": "no one under eighteen" + , "category": "Symbols" + , "aliases": [ + "underage" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☢" + , "description": "radioactive" + , "category": "Symbols" + , "aliases": [ + "radioactive" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☣" + , "description": "biohazard" + , "category": "Symbols" + , "aliases": [ + "biohazard" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "⬆️" + , "description": "up arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_up" + ] + , "tags": [ + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "↗️" + , "description": "up-right arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_upper_right" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "➡️" + , "description": "right arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_right" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "↘️" + , "description": "down-right arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_lower_right" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⬇️" + , "description": "down arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_down" + ] + , "tags": [ + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "↙️" + , "description": "down-left arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_lower_left" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⬅️" + , "description": "left arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_left" + ] + , "tags": [ + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "↖️" + , "description": "up-left arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_upper_left" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "↕️" + , "description": "up-down arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_up_down" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "↔️" + , "description": "left-right arrow" + , "category": "Symbols" + , "aliases": [ + "left_right_arrow" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "↩️" + , "description": "right arrow curving left" + , "category": "Symbols" + , "aliases": [ + "leftwards_arrow_with_hook" + ] + , "tags": [ + "return" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "↪️" + , "description": "left arrow curving right" + , "category": "Symbols" + , "aliases": [ + "arrow_right_hook" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⤴️" + , "description": "right arrow curving up" + , "category": "Symbols" + , "aliases": [ + "arrow_heading_up" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⤵️" + , "description": "right arrow curving down" + , "category": "Symbols" + , "aliases": [ + "arrow_heading_down" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🔃" + , "description": "clockwise vertical arrows" + , "category": "Symbols" + , "aliases": [ + "arrows_clockwise" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔄" + , "description": "counterclockwise arrows button" + , "category": "Symbols" + , "aliases": [ + "arrows_counterclockwise" + ] + , "tags": [ + "sync" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔙" + , "description": "BACK arrow" + , "category": "Symbols" + , "aliases": [ + "back" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔚" + , "description": "END arrow" + , "category": "Symbols" + , "aliases": [ + "end" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔛" + , "description": "ON! arrow" + , "category": "Symbols" + , "aliases": [ + "on" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔜" + , "description": "SOON arrow" + , "category": "Symbols" + , "aliases": [ + "soon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔝" + , "description": "TOP arrow" + , "category": "Symbols" + , "aliases": [ + "top" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛐" + , "description": "place of worship" + , "category": "Symbols" + , "aliases": [ + "place_of_worship" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "⚛" + , "description": "atom symbol" + , "category": "Symbols" + , "aliases": [ + "atom_symbol" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🕉" + , "description": "om" + , "category": "Symbols" + , "aliases": [ + "om" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "✡️" + , "description": "star of David" + , "category": "Symbols" + , "aliases": [ + "star_of_david" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☸" + , "description": "wheel of dharma" + , "category": "Symbols" + , "aliases": [ + "wheel_of_dharma" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☯️" + , "description": "yin yang" + , "category": "Symbols" + , "aliases": [ + "yin_yang" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "✝️" + , "description": "latin cross" + , "category": "Symbols" + , "aliases": [ + "latin_cross" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☦" + , "description": "orthodox cross" + , "category": "Symbols" + , "aliases": [ + "orthodox_cross" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☪" + , "description": "star and crescent" + , "category": "Symbols" + , "aliases": [ + "star_and_crescent" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☮" + , "description": "peace symbol" + , "category": "Symbols" + , "aliases": [ + "peace_symbol" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "🕎" + , "description": "menorah" + , "category": "Symbols" + , "aliases": [ + "menorah" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🔯" + , "description": "dotted six-pointed star" + , "category": "Symbols" + , "aliases": [ + "six_pointed_star" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "♈" + , "description": "Aries" + , "category": "Symbols" + , "aliases": [ + "aries" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♉" + , "description": "Taurus" + , "category": "Symbols" + , "aliases": [ + "taurus" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♊" + , "description": "Gemini" + , "category": "Symbols" + , "aliases": [ + "gemini" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♋" + , "description": "Cancer" + , "category": "Symbols" + , "aliases": [ + "cancer" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♌" + , "description": "Leo" + , "category": "Symbols" + , "aliases": [ + "leo" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♍" + , "description": "Virgo" + , "category": "Symbols" + , "aliases": [ + "virgo" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♎" + , "description": "Libra" + , "category": "Symbols" + , "aliases": [ + "libra" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♏" + , "description": "Scorpio" + , "category": "Symbols" + , "aliases": [ + "scorpius" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♐" + , "description": "Sagittarius" + , "category": "Symbols" + , "aliases": [ + "sagittarius" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♑" + , "description": "Capricorn" + , "category": "Symbols" + , "aliases": [ + "capricorn" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♒" + , "description": "Aquarius" + , "category": "Symbols" + , "aliases": [ + "aquarius" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♓" + , "description": "Pisces" + , "category": "Symbols" + , "aliases": [ + "pisces" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⛎" + , "description": "Ophiuchus" + , "category": "Symbols" + , "aliases": [ + "ophiuchus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔀" + , "description": "shuffle tracks button" + , "category": "Symbols" + , "aliases": [ + "twisted_rightwards_arrows" + ] + , "tags": [ + "shuffle" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔁" + , "description": "repeat button" + , "category": "Symbols" + , "aliases": [ + "repeat" + ] + , "tags": [ + "loop" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔂" + , "description": "repeat single button" + , "category": "Symbols" + , "aliases": [ + "repeat_one" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "▶️" + , "description": "play button" + , "category": "Symbols" + , "aliases": [ + "arrow_forward" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⏩" + , "description": "fast-forward button" + , "category": "Symbols" + , "aliases": [ + "fast_forward" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏭" + , "description": "next track button" + , "category": "Symbols" + , "aliases": [ + "next_track_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.1" + } +, { + "emoji": "⏯" + , "description": "play or pause button" + , "category": "Symbols" + , "aliases": [ + "play_or_pause_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.1" + } +, { + "emoji": "◀️" + , "description": "reverse button" + , "category": "Symbols" + , "aliases": [ + "arrow_backward" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⏪" + , "description": "fast reverse button" + , "category": "Symbols" + , "aliases": [ + "rewind" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏮" + , "description": "last track button" + , "category": "Symbols" + , "aliases": [ + "previous_track_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.1" + } +, { + "emoji": "🔼" + , "description": "upwards button" + , "category": "Symbols" + , "aliases": [ + "arrow_up_small" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏫" + , "description": "fast up button" + , "category": "Symbols" + , "aliases": [ + "arrow_double_up" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔽" + , "description": "downwards button" + , "category": "Symbols" + , "aliases": [ + "arrow_down_small" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏬" + , "description": "fast down button" + , "category": "Symbols" + , "aliases": [ + "arrow_double_down" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏸" + , "description": "pause button" + , "category": "Symbols" + , "aliases": [ + "pause_button" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⏹" + , "description": "stop button" + , "category": "Symbols" + , "aliases": [ + "stop_button" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⏺" + , "description": "record button" + , "category": "Symbols" + , "aliases": [ + "record_button" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⏏️" + , "description": "eject button" + , "category": "Symbols" + , "aliases": [ + "eject_button" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎦" + , "description": "cinema" + , "category": "Symbols" + , "aliases": [ + "cinema" + ] + , "tags": [ + "film" + , "movie" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔅" + , "description": "dim button" + , "category": "Symbols" + , "aliases": [ + "low_brightness" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔆" + , "description": "bright button" + , "category": "Symbols" + , "aliases": [ + "high_brightness" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📶" + , "description": "antenna bars" + , "category": "Symbols" + , "aliases": [ + "signal_strength" + ] + , "tags": [ + "wifi" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📳" + , "description": "vibration mode" + , "category": "Symbols" + , "aliases": [ + "vibration_mode" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📴" + , "description": "mobile phone off" + , "category": "Symbols" + , "aliases": [ + "mobile_phone_off" + ] + , "tags": [ + "mute" + , "off" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "♀️" + , "description": "female sign" + , "category": "Symbols" + , "aliases": [ + "female_sign" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "♂️" + , "description": "male sign" + , "category": "Symbols" + , "aliases": [ + "male_sign" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "⚕" + , "description": "medical symbol" + , "category": "Symbols" + , "aliases": [ + "medical_symbol" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "♾" + , "description": "infinity" + , "category": "Symbols" + , "aliases": [ + "infinity" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "♻️" + , "description": "recycling symbol" + , "category": "Symbols" + , "aliases": [ + "recycle" + ] + , "tags": [ + "environment" + , "green" + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "⚜" + , "description": "fleur-de-lis" + , "category": "Symbols" + , "aliases": [ + "fleur_de_lis" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🔱" + , "description": "trident emblem" + , "category": "Symbols" + , "aliases": [ + "trident" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📛" + , "description": "name badge" + , "category": "Symbols" + , "aliases": [ + "name_badge" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔰" + , "description": "Japanese symbol for beginner" + , "category": "Symbols" + , "aliases": [ + "beginner" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⭕" + , "description": "hollow red circle" + , "category": "Symbols" + , "aliases": [ + "o" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "✅" + , "description": "check mark button" + , "category": "Symbols" + , "aliases": [ + "white_check_mark" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☑️" + , "description": "check box with check" + , "category": "Symbols" + , "aliases": [ + "ballot_box_with_check" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "✔️" + , "description": "check mark" + , "category": "Symbols" + , "aliases": [ + "heavy_check_mark" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "✖️" + , "description": "multiplication sign" + , "category": "Symbols" + , "aliases": [ + "heavy_multiplication_x" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "❌" + , "description": "cross mark" + , "category": "Symbols" + , "aliases": [ + "x" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❎" + , "description": "cross mark button" + , "category": "Symbols" + , "aliases": [ + "negative_squared_cross_mark" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "➕" + , "description": "plus sign" + , "category": "Symbols" + , "aliases": [ + "heavy_plus_sign" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "➖" + , "description": "minus sign" + , "category": "Symbols" + , "aliases": [ + "heavy_minus_sign" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "➗" + , "description": "division sign" + , "category": "Symbols" + , "aliases": [ + "heavy_division_sign" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "➰" + , "description": "curly loop" + , "category": "Symbols" + , "aliases": [ + "curly_loop" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "➿" + , "description": "double curly loop" + , "category": "Symbols" + , "aliases": [ + "loop" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "〽️" + , "description": "part alternation mark" + , "category": "Symbols" + , "aliases": [ + "part_alternation_mark" + ] + , "tags": [ + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "✳️" + , "description": "eight-spoked asterisk" + , "category": "Symbols" + , "aliases": [ + "eight_spoked_asterisk" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "✴️" + , "description": "eight-pointed star" + , "category": "Symbols" + , "aliases": [ + "eight_pointed_black_star" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "❇️" + , "description": "sparkle" + , "category": "Symbols" + , "aliases": [ + "sparkle" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "‼️" + , "description": "double exclamation mark" + , "category": "Symbols" + , "aliases": [ + "bangbang" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⁉️" + , "description": "exclamation question mark" + , "category": "Symbols" + , "aliases": [ + "interrobang" + ] + , "tags": [ + ] + , "unicode_version": "3.0" + , "ios_version": "6.0" + } +, { + "emoji": "❓" + , "description": "question mark" + , "category": "Symbols" + , "aliases": [ + "question" + ] + , "tags": [ + "confused" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❔" + , "description": "white question mark" + , "category": "Symbols" + , "aliases": [ + "grey_question" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❕" + , "description": "white exclamation mark" + , "category": "Symbols" + , "aliases": [ + "grey_exclamation" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❗" + , "description": "exclamation mark" + , "category": "Symbols" + , "aliases": [ + "exclamation" + , "heavy_exclamation_mark" + ] + , "tags": [ + "bang" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "〰️" + , "description": "wavy dash" + , "category": "Symbols" + , "aliases": [ + "wavy_dash" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "©️" + , "description": "copyright" + , "category": "Symbols" + , "aliases": [ + "copyright" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "®️" + , "description": "registered" + , "category": "Symbols" + , "aliases": [ + "registered" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "™️" + , "description": "trade mark" + , "category": "Symbols" + , "aliases": [ + "tm" + ] + , "tags": [ + "trademark" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "#️⃣" + , "description": "keycap: #" + , "category": "Symbols" + , "aliases": [ + "hash" + ] + , "tags": [ + "number" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "*️⃣" + , "description": "keycap: *" + , "category": "Symbols" + , "aliases": [ + "asterisk" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "0️⃣" + , "description": "keycap: 0" + , "category": "Symbols" + , "aliases": [ + "zero" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "1️⃣" + , "description": "keycap: 1" + , "category": "Symbols" + , "aliases": [ + "one" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "2️⃣" + , "description": "keycap: 2" + , "category": "Symbols" + , "aliases": [ + "two" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "3️⃣" + , "description": "keycap: 3" + , "category": "Symbols" + , "aliases": [ + "three" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "4️⃣" + , "description": "keycap: 4" + , "category": "Symbols" + , "aliases": [ + "four" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "5️⃣" + , "description": "keycap: 5" + , "category": "Symbols" + , "aliases": [ + "five" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "6️⃣" + , "description": "keycap: 6" + , "category": "Symbols" + , "aliases": [ + "six" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "7️⃣" + , "description": "keycap: 7" + , "category": "Symbols" + , "aliases": [ + "seven" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "8️⃣" + , "description": "keycap: 8" + , "category": "Symbols" + , "aliases": [ + "eight" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "9️⃣" + , "description": "keycap: 9" + , "category": "Symbols" + , "aliases": [ + "nine" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🔟" + , "description": "keycap: 10" + , "category": "Symbols" + , "aliases": [ + "keycap_ten" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔠" + , "description": "input latin uppercase" + , "category": "Symbols" + , "aliases": [ + "capital_abcd" + ] + , "tags": [ + "letters" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔡" + , "description": "input latin lowercase" + , "category": "Symbols" + , "aliases": [ + "abcd" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔢" + , "description": "input numbers" + , "category": "Symbols" + , "aliases": [ + "1234" + ] + , "tags": [ + "numbers" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔣" + , "description": "input symbols" + , "category": "Symbols" + , "aliases": [ + "symbols" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔤" + , "description": "input latin letters" + , "category": "Symbols" + , "aliases": [ + "abc" + ] + , "tags": [ + "alphabet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🅰️" + , "description": "A button (blood type)" + , "category": "Symbols" + , "aliases": [ + "a" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆎" + , "description": "AB button (blood type)" + , "category": "Symbols" + , "aliases": [ + "ab" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🅱️" + , "description": "B button (blood type)" + , "category": "Symbols" + , "aliases": [ + "b" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆑" + , "description": "CL button" + , "category": "Symbols" + , "aliases": [ + "cl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆒" + , "description": "COOL button" + , "category": "Symbols" + , "aliases": [ + "cool" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆓" + , "description": "FREE button" + , "category": "Symbols" + , "aliases": [ + "free" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "ℹ️" + , "description": "information" + , "category": "Symbols" + , "aliases": [ + "information_source" + ] + , "tags": [ + ] + , "unicode_version": "3.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆔" + , "description": "ID button" + , "category": "Symbols" + , "aliases": [ + "id" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "Ⓜ️" + , "description": "circled M" + , "category": "Symbols" + , "aliases": [ + "m" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🆕" + , "description": "NEW button" + , "category": "Symbols" + , "aliases": [ + "new" + ] + , "tags": [ + "fresh" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆖" + , "description": "NG button" + , "category": "Symbols" + , "aliases": [ + "ng" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🅾️" + , "description": "O button (blood type)" + , "category": "Symbols" + , "aliases": [ + "o2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆗" + , "description": "OK button" + , "category": "Symbols" + , "aliases": [ + "ok" + ] + , "tags": [ + "yes" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🅿️" + , "description": "P button" + , "category": "Symbols" + , "aliases": [ + "parking" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🆘" + , "description": "SOS button" + , "category": "Symbols" + , "aliases": [ + "sos" + ] + , "tags": [ + "help" + , "emergency" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆙" + , "description": "UP! button" + , "category": "Symbols" + , "aliases": [ + "up" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆚" + , "description": "VS button" + , "category": "Symbols" + , "aliases": [ + "vs" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈁" + , "description": "Japanese “here” button" + , "category": "Symbols" + , "aliases": [ + "koko" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈂️" + , "description": "Japanese “service charge” button" + , "category": "Symbols" + , "aliases": [ + "sa" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈷️" + , "description": "Japanese “monthly amount” button" + , "category": "Symbols" + , "aliases": [ + "u6708" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈶" + , "description": "Japanese “not free of charge” button" + , "category": "Symbols" + , "aliases": [ + "u6709" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈯" + , "description": "Japanese “reserved” button" + , "category": "Symbols" + , "aliases": [ + "u6307" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🉐" + , "description": "Japanese “bargain” button" + , "category": "Symbols" + , "aliases": [ + "ideograph_advantage" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈹" + , "description": "Japanese “discount” button" + , "category": "Symbols" + , "aliases": [ + "u5272" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈚" + , "description": "Japanese “free of charge” button" + , "category": "Symbols" + , "aliases": [ + "u7121" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🈲" + , "description": "Japanese “prohibited” button" + , "category": "Symbols" + , "aliases": [ + "u7981" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🉑" + , "description": "Japanese “acceptable” button" + , "category": "Symbols" + , "aliases": [ + "accept" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈸" + , "description": "Japanese “application” button" + , "category": "Symbols" + , "aliases": [ + "u7533" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈴" + , "description": "Japanese “passing grade” button" + , "category": "Symbols" + , "aliases": [ + "u5408" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈳" + , "description": "Japanese “vacancy” button" + , "category": "Symbols" + , "aliases": [ + "u7a7a" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "㊗️" + , "description": "Japanese “congratulations” button" + , "category": "Symbols" + , "aliases": [ + "congratulations" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "㊙️" + , "description": "Japanese “secret” button" + , "category": "Symbols" + , "aliases": [ + "secret" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🈺" + , "description": "Japanese “open for business” button" + , "category": "Symbols" + , "aliases": [ + "u55b6" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈵" + , "description": "Japanese “no vacancy” button" + , "category": "Symbols" + , "aliases": [ + "u6e80" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔴" + , "description": "red circle" + , "category": "Symbols" + , "aliases": [ + "red_circle" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🟠" + , "description": "orange circle" + , "category": "Symbols" + , "aliases": [ + "orange_circle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟡" + , "description": "yellow circle" + , "category": "Symbols" + , "aliases": [ + "yellow_circle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟢" + , "description": "green circle" + , "category": "Symbols" + , "aliases": [ + "green_circle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🔵" + , "description": "blue circle" + , "category": "Symbols" + , "aliases": [ + "large_blue_circle" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🟣" + , "description": "purple circle" + , "category": "Symbols" + , "aliases": [ + "purple_circle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟤" + , "description": "brown circle" + , "category": "Symbols" + , "aliases": [ + "brown_circle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "⚫" + , "description": "black circle" + , "category": "Symbols" + , "aliases": [ + "black_circle" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "6.0" + } +, { + "emoji": "⚪" + , "description": "white circle" + , "category": "Symbols" + , "aliases": [ + "white_circle" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "6.0" + } +, { + "emoji": "🟥" + , "description": "red square" + , "category": "Symbols" + , "aliases": [ + "red_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟧" + , "description": "orange square" + , "category": "Symbols" + , "aliases": [ + "orange_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟨" + , "description": "yellow square" + , "category": "Symbols" + , "aliases": [ + "yellow_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟩" + , "description": "green square" + , "category": "Symbols" + , "aliases": [ + "green_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟦" + , "description": "blue square" + , "category": "Symbols" + , "aliases": [ + "blue_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟪" + , "description": "purple square" + , "category": "Symbols" + , "aliases": [ + "purple_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟫" + , "description": "brown square" + , "category": "Symbols" + , "aliases": [ + "brown_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "⬛" + , "description": "black large square" + , "category": "Symbols" + , "aliases": [ + "black_large_square" + ] + , "tags": [ + ] + , "unicode_version": "5.1" + , "ios_version": "6.0" + } +, { + "emoji": "⬜" + , "description": "white large square" + , "category": "Symbols" + , "aliases": [ + "white_large_square" + ] + , "tags": [ + ] + , "unicode_version": "5.1" + , "ios_version": "6.0" + } +, { + "emoji": "◼️" + , "description": "black medium square" + , "category": "Symbols" + , "aliases": [ + "black_medium_square" + ] + , "tags": [ + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "◻️" + , "description": "white medium square" + , "category": "Symbols" + , "aliases": [ + "white_medium_square" + ] + , "tags": [ + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "◾" + , "description": "black medium-small square" + , "category": "Symbols" + , "aliases": [ + "black_medium_small_square" + ] + , "tags": [ + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "◽" + , "description": "white medium-small square" + , "category": "Symbols" + , "aliases": [ + "white_medium_small_square" + ] + , "tags": [ + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "▪️" + , "description": "black small square" + , "category": "Symbols" + , "aliases": [ + "black_small_square" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "▫️" + , "description": "white small square" + , "category": "Symbols" + , "aliases": [ + "white_small_square" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🔶" + , "description": "large orange diamond" + , "category": "Symbols" + , "aliases": [ + "large_orange_diamond" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔷" + , "description": "large blue diamond" + , "category": "Symbols" + , "aliases": [ + "large_blue_diamond" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔸" + , "description": "small orange diamond" + , "category": "Symbols" + , "aliases": [ + "small_orange_diamond" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔹" + , "description": "small blue diamond" + , "category": "Symbols" + , "aliases": [ + "small_blue_diamond" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔺" + , "description": "red triangle pointed up" + , "category": "Symbols" + , "aliases": [ + "small_red_triangle" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔻" + , "description": "red triangle pointed down" + , "category": "Symbols" + , "aliases": [ + "small_red_triangle_down" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💠" + , "description": "diamond with a dot" + , "category": "Symbols" + , "aliases": [ + "diamond_shape_with_a_dot_inside" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔘" + , "description": "radio button" + , "category": "Symbols" + , "aliases": [ + "radio_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔳" + , "description": "white square button" + , "category": "Symbols" + , "aliases": [ + "white_square_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔲" + , "description": "black square button" + , "category": "Symbols" + , "aliases": [ + "black_square_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏁" + , "description": "chequered flag" + , "category": "Flags" + , "aliases": [ + "checkered_flag" + ] + , "tags": [ + "milestone" + , "finish" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚩" + , "description": "triangular flag" + , "category": "Flags" + , "aliases": [ + "triangular_flag_on_post" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎌" + , "description": "crossed flags" + , "category": "Flags" + , "aliases": [ + "crossed_flags" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏴" + , "description": "black flag" + , "category": "Flags" + , "aliases": [ + "black_flag" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏳" + , "description": "white flag" + , "category": "Flags" + , "aliases": [ + "white_flag" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏳️🌈" + , "description": "rainbow flag" + , "category": "Flags" + , "aliases": [ + "rainbow_flag" + ] + , "tags": [ + "pride" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "🏴☠" + , "description": "pirate flag" + , "category": "Flags" + , "aliases": [ + "pirate_flag" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇦🇨" + , "description": "flag: Ascension Island" + , "category": "Flags" + , "aliases": [ + "ascension_island" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇦🇩" + , "description": "flag: Andorra" + , "category": "Flags" + , "aliases": [ + "andorra" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇪" + , "description": "flag: United Arab Emirates" + , "category": "Flags" + , "aliases": [ + "united_arab_emirates" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇫" + , "description": "flag: Afghanistan" + , "category": "Flags" + , "aliases": [ + "afghanistan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇬" + , "description": "flag: Antigua & Barbuda" + , "category": "Flags" + , "aliases": [ + "antigua_barbuda" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇮" + , "description": "flag: Anguilla" + , "category": "Flags" + , "aliases": [ + "anguilla" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇱" + , "description": "flag: Albania" + , "category": "Flags" + , "aliases": [ + "albania" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇲" + , "description": "flag: Armenia" + , "category": "Flags" + , "aliases": [ + "armenia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇴" + , "description": "flag: Angola" + , "category": "Flags" + , "aliases": [ + "angola" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇶" + , "description": "flag: Antarctica" + , "category": "Flags" + , "aliases": [ + "antarctica" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇦🇷" + , "description": "flag: Argentina" + , "category": "Flags" + , "aliases": [ + "argentina" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇸" + , "description": "flag: American Samoa" + , "category": "Flags" + , "aliases": [ + "american_samoa" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇹" + , "description": "flag: Austria" + , "category": "Flags" + , "aliases": [ + "austria" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇺" + , "description": "flag: Australia" + , "category": "Flags" + , "aliases": [ + "australia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇼" + , "description": "flag: Aruba" + , "category": "Flags" + , "aliases": [ + "aruba" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇽" + , "description": "flag: Åland Islands" + , "category": "Flags" + , "aliases": [ + "aland_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇦🇿" + , "description": "flag: Azerbaijan" + , "category": "Flags" + , "aliases": [ + "azerbaijan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇦" + , "description": "flag: Bosnia & Herzegovina" + , "category": "Flags" + , "aliases": [ + "bosnia_herzegovina" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇧" + , "description": "flag: Barbados" + , "category": "Flags" + , "aliases": [ + "barbados" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇩" + , "description": "flag: Bangladesh" + , "category": "Flags" + , "aliases": [ + "bangladesh" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇪" + , "description": "flag: Belgium" + , "category": "Flags" + , "aliases": [ + "belgium" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇫" + , "description": "flag: Burkina Faso" + , "category": "Flags" + , "aliases": [ + "burkina_faso" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇬" + , "description": "flag: Bulgaria" + , "category": "Flags" + , "aliases": [ + "bulgaria" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇭" + , "description": "flag: Bahrain" + , "category": "Flags" + , "aliases": [ + "bahrain" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇮" + , "description": "flag: Burundi" + , "category": "Flags" + , "aliases": [ + "burundi" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇯" + , "description": "flag: Benin" + , "category": "Flags" + , "aliases": [ + "benin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇱" + , "description": "flag: St. Barthélemy" + , "category": "Flags" + , "aliases": [ + "st_barthelemy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇧🇲" + , "description": "flag: Bermuda" + , "category": "Flags" + , "aliases": [ + "bermuda" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇳" + , "description": "flag: Brunei" + , "category": "Flags" + , "aliases": [ + "brunei" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇴" + , "description": "flag: Bolivia" + , "category": "Flags" + , "aliases": [ + "bolivia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇶" + , "description": "flag: Caribbean Netherlands" + , "category": "Flags" + , "aliases": [ + "caribbean_netherlands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇧🇷" + , "description": "flag: Brazil" + , "category": "Flags" + , "aliases": [ + "brazil" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇸" + , "description": "flag: Bahamas" + , "category": "Flags" + , "aliases": [ + "bahamas" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇹" + , "description": "flag: Bhutan" + , "category": "Flags" + , "aliases": [ + "bhutan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇻" + , "description": "flag: Bouvet Island" + , "category": "Flags" + , "aliases": [ + "bouvet_island" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇧🇼" + , "description": "flag: Botswana" + , "category": "Flags" + , "aliases": [ + "botswana" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇾" + , "description": "flag: Belarus" + , "category": "Flags" + , "aliases": [ + "belarus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇿" + , "description": "flag: Belize" + , "category": "Flags" + , "aliases": [ + "belize" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇦" + , "description": "flag: Canada" + , "category": "Flags" + , "aliases": [ + "canada" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇨" + , "description": "flag: Cocos (Keeling) Islands" + , "category": "Flags" + , "aliases": [ + "cocos_islands" + ] + , "tags": [ + "keeling" + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇨🇩" + , "description": "flag: Congo - Kinshasa" + , "category": "Flags" + , "aliases": [ + "congo_kinshasa" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇫" + , "description": "flag: Central African Republic" + , "category": "Flags" + , "aliases": [ + "central_african_republic" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇬" + , "description": "flag: Congo - Brazzaville" + , "category": "Flags" + , "aliases": [ + "congo_brazzaville" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇭" + , "description": "flag: Switzerland" + , "category": "Flags" + , "aliases": [ + "switzerland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇮" + , "description": "flag: Côte d’Ivoire" + , "category": "Flags" + , "aliases": [ + "cote_divoire" + ] + , "tags": [ + "ivory" + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇰" + , "description": "flag: Cook Islands" + , "category": "Flags" + , "aliases": [ + "cook_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇱" + , "description": "flag: Chile" + , "category": "Flags" + , "aliases": [ + "chile" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇲" + , "description": "flag: Cameroon" + , "category": "Flags" + , "aliases": [ + "cameroon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇳" + , "description": "flag: China" + , "category": "Flags" + , "aliases": [ + "cn" + ] + , "tags": [ + "china" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇨🇴" + , "description": "flag: Colombia" + , "category": "Flags" + , "aliases": [ + "colombia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇵" + , "description": "flag: Clipperton Island" + , "category": "Flags" + , "aliases": [ + "clipperton_island" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇨🇷" + , "description": "flag: Costa Rica" + , "category": "Flags" + , "aliases": [ + "costa_rica" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇺" + , "description": "flag: Cuba" + , "category": "Flags" + , "aliases": [ + "cuba" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇻" + , "description": "flag: Cape Verde" + , "category": "Flags" + , "aliases": [ + "cape_verde" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇼" + , "description": "flag: Curaçao" + , "category": "Flags" + , "aliases": [ + "curacao" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇽" + , "description": "flag: Christmas Island" + , "category": "Flags" + , "aliases": [ + "christmas_island" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇨🇾" + , "description": "flag: Cyprus" + , "category": "Flags" + , "aliases": [ + "cyprus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇿" + , "description": "flag: Czechia" + , "category": "Flags" + , "aliases": [ + "czech_republic" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇩🇪" + , "description": "flag: Germany" + , "category": "Flags" + , "aliases": [ + "de" + ] + , "tags": [ + "flag" + , "germany" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇩🇬" + , "description": "flag: Diego Garcia" + , "category": "Flags" + , "aliases": [ + "diego_garcia" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇩🇯" + , "description": "flag: Djibouti" + , "category": "Flags" + , "aliases": [ + "djibouti" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇩🇰" + , "description": "flag: Denmark" + , "category": "Flags" + , "aliases": [ + "denmark" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇩🇲" + , "description": "flag: Dominica" + , "category": "Flags" + , "aliases": [ + "dominica" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇩🇴" + , "description": "flag: Dominican Republic" + , "category": "Flags" + , "aliases": [ + "dominican_republic" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇩🇿" + , "description": "flag: Algeria" + , "category": "Flags" + , "aliases": [ + "algeria" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇦" + , "description": "flag: Ceuta & Melilla" + , "category": "Flags" + , "aliases": [ + "ceuta_melilla" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇪🇨" + , "description": "flag: Ecuador" + , "category": "Flags" + , "aliases": [ + "ecuador" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇪" + , "description": "flag: Estonia" + , "category": "Flags" + , "aliases": [ + "estonia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇬" + , "description": "flag: Egypt" + , "category": "Flags" + , "aliases": [ + "egypt" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇭" + , "description": "flag: Western Sahara" + , "category": "Flags" + , "aliases": [ + "western_sahara" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇪🇷" + , "description": "flag: Eritrea" + , "category": "Flags" + , "aliases": [ + "eritrea" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇸" + , "description": "flag: Spain" + , "category": "Flags" + , "aliases": [ + "es" + ] + , "tags": [ + "spain" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇪🇹" + , "description": "flag: Ethiopia" + , "category": "Flags" + , "aliases": [ + "ethiopia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇺" + , "description": "flag: European Union" + , "category": "Flags" + , "aliases": [ + "eu" + , "european_union" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇫🇮" + , "description": "flag: Finland" + , "category": "Flags" + , "aliases": [ + "finland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇫🇯" + , "description": "flag: Fiji" + , "category": "Flags" + , "aliases": [ + "fiji" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇫🇰" + , "description": "flag: Falkland Islands" + , "category": "Flags" + , "aliases": [ + "falkland_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇫🇲" + , "description": "flag: Micronesia" + , "category": "Flags" + , "aliases": [ + "micronesia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇫🇴" + , "description": "flag: Faroe Islands" + , "category": "Flags" + , "aliases": [ + "faroe_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇫🇷" + , "description": "flag: France" + , "category": "Flags" + , "aliases": [ + "fr" + ] + , "tags": [ + "france" + , "french" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇬🇦" + , "description": "flag: Gabon" + , "category": "Flags" + , "aliases": [ + "gabon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇧" + , "description": "flag: United Kingdom" + , "category": "Flags" + , "aliases": [ + "gb" + , "uk" + ] + , "tags": [ + "flag" + , "british" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇬🇩" + , "description": "flag: Grenada" + , "category": "Flags" + , "aliases": [ + "grenada" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇪" + , "description": "flag: Georgia" + , "category": "Flags" + , "aliases": [ + "georgia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇫" + , "description": "flag: French Guiana" + , "category": "Flags" + , "aliases": [ + "french_guiana" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇬" + , "description": "flag: Guernsey" + , "category": "Flags" + , "aliases": [ + "guernsey" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇬🇭" + , "description": "flag: Ghana" + , "category": "Flags" + , "aliases": [ + "ghana" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇮" + , "description": "flag: Gibraltar" + , "category": "Flags" + , "aliases": [ + "gibraltar" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇱" + , "description": "flag: Greenland" + , "category": "Flags" + , "aliases": [ + "greenland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇬🇲" + , "description": "flag: Gambia" + , "category": "Flags" + , "aliases": [ + "gambia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇳" + , "description": "flag: Guinea" + , "category": "Flags" + , "aliases": [ + "guinea" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇵" + , "description": "flag: Guadeloupe" + , "category": "Flags" + , "aliases": [ + "guadeloupe" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇬🇶" + , "description": "flag: Equatorial Guinea" + , "category": "Flags" + , "aliases": [ + "equatorial_guinea" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇷" + , "description": "flag: Greece" + , "category": "Flags" + , "aliases": [ + "greece" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇸" + , "description": "flag: South Georgia & South Sandwich Islands" + , "category": "Flags" + , "aliases": [ + "south_georgia_south_sandwich_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇬🇹" + , "description": "flag: Guatemala" + , "category": "Flags" + , "aliases": [ + "guatemala" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇺" + , "description": "flag: Guam" + , "category": "Flags" + , "aliases": [ + "guam" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇼" + , "description": "flag: Guinea-Bissau" + , "category": "Flags" + , "aliases": [ + "guinea_bissau" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇾" + , "description": "flag: Guyana" + , "category": "Flags" + , "aliases": [ + "guyana" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇭🇰" + , "description": "flag: Hong Kong SAR China" + , "category": "Flags" + , "aliases": [ + "hong_kong" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇭🇲" + , "description": "flag: Heard & McDonald Islands" + , "category": "Flags" + , "aliases": [ + "heard_mcdonald_islands" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇭🇳" + , "description": "flag: Honduras" + , "category": "Flags" + , "aliases": [ + "honduras" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇭🇷" + , "description": "flag: Croatia" + , "category": "Flags" + , "aliases": [ + "croatia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇭🇹" + , "description": "flag: Haiti" + , "category": "Flags" + , "aliases": [ + "haiti" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇭🇺" + , "description": "flag: Hungary" + , "category": "Flags" + , "aliases": [ + "hungary" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇨" + , "description": "flag: Canary Islands" + , "category": "Flags" + , "aliases": [ + "canary_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇮🇩" + , "description": "flag: Indonesia" + , "category": "Flags" + , "aliases": [ + "indonesia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇪" + , "description": "flag: Ireland" + , "category": "Flags" + , "aliases": [ + "ireland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇱" + , "description": "flag: Israel" + , "category": "Flags" + , "aliases": [ + "israel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇲" + , "description": "flag: Isle of Man" + , "category": "Flags" + , "aliases": [ + "isle_of_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇮🇳" + , "description": "flag: India" + , "category": "Flags" + , "aliases": [ + "india" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇴" + , "description": "flag: British Indian Ocean Territory" + , "category": "Flags" + , "aliases": [ + "british_indian_ocean_territory" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇮🇶" + , "description": "flag: Iraq" + , "category": "Flags" + , "aliases": [ + "iraq" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇷" + , "description": "flag: Iran" + , "category": "Flags" + , "aliases": [ + "iran" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇸" + , "description": "flag: Iceland" + , "category": "Flags" + , "aliases": [ + "iceland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇹" + , "description": "flag: Italy" + , "category": "Flags" + , "aliases": [ + "it" + ] + , "tags": [ + "italy" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇯🇪" + , "description": "flag: Jersey" + , "category": "Flags" + , "aliases": [ + "jersey" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇯🇲" + , "description": "flag: Jamaica" + , "category": "Flags" + , "aliases": [ + "jamaica" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇯🇴" + , "description": "flag: Jordan" + , "category": "Flags" + , "aliases": [ + "jordan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇯🇵" + , "description": "flag: Japan" + , "category": "Flags" + , "aliases": [ + "jp" + ] + , "tags": [ + "japan" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇰🇪" + , "description": "flag: Kenya" + , "category": "Flags" + , "aliases": [ + "kenya" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇬" + , "description": "flag: Kyrgyzstan" + , "category": "Flags" + , "aliases": [ + "kyrgyzstan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇭" + , "description": "flag: Cambodia" + , "category": "Flags" + , "aliases": [ + "cambodia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇮" + , "description": "flag: Kiribati" + , "category": "Flags" + , "aliases": [ + "kiribati" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇲" + , "description": "flag: Comoros" + , "category": "Flags" + , "aliases": [ + "comoros" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇳" + , "description": "flag: St. Kitts & Nevis" + , "category": "Flags" + , "aliases": [ + "st_kitts_nevis" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇵" + , "description": "flag: North Korea" + , "category": "Flags" + , "aliases": [ + "north_korea" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇷" + , "description": "flag: South Korea" + , "category": "Flags" + , "aliases": [ + "kr" + ] + , "tags": [ + "korea" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇰🇼" + , "description": "flag: Kuwait" + , "category": "Flags" + , "aliases": [ + "kuwait" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇾" + , "description": "flag: Cayman Islands" + , "category": "Flags" + , "aliases": [ + "cayman_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇿" + , "description": "flag: Kazakhstan" + , "category": "Flags" + , "aliases": [ + "kazakhstan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇦" + , "description": "flag: Laos" + , "category": "Flags" + , "aliases": [ + "laos" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇧" + , "description": "flag: Lebanon" + , "category": "Flags" + , "aliases": [ + "lebanon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇨" + , "description": "flag: St. Lucia" + , "category": "Flags" + , "aliases": [ + "st_lucia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇮" + , "description": "flag: Liechtenstein" + , "category": "Flags" + , "aliases": [ + "liechtenstein" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇰" + , "description": "flag: Sri Lanka" + , "category": "Flags" + , "aliases": [ + "sri_lanka" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇷" + , "description": "flag: Liberia" + , "category": "Flags" + , "aliases": [ + "liberia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇸" + , "description": "flag: Lesotho" + , "category": "Flags" + , "aliases": [ + "lesotho" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇹" + , "description": "flag: Lithuania" + , "category": "Flags" + , "aliases": [ + "lithuania" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇺" + , "description": "flag: Luxembourg" + , "category": "Flags" + , "aliases": [ + "luxembourg" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇻" + , "description": "flag: Latvia" + , "category": "Flags" + , "aliases": [ + "latvia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇾" + , "description": "flag: Libya" + , "category": "Flags" + , "aliases": [ + "libya" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇦" + , "description": "flag: Morocco" + , "category": "Flags" + , "aliases": [ + "morocco" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇨" + , "description": "flag: Monaco" + , "category": "Flags" + , "aliases": [ + "monaco" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇲🇩" + , "description": "flag: Moldova" + , "category": "Flags" + , "aliases": [ + "moldova" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇪" + , "description": "flag: Montenegro" + , "category": "Flags" + , "aliases": [ + "montenegro" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇫" + , "description": "flag: St. Martin" + , "category": "Flags" + , "aliases": [ + "st_martin" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇲🇬" + , "description": "flag: Madagascar" + , "category": "Flags" + , "aliases": [ + "madagascar" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇭" + , "description": "flag: Marshall Islands" + , "category": "Flags" + , "aliases": [ + "marshall_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇲🇰" + , "description": "flag: Macedonia" + , "category": "Flags" + , "aliases": [ + "macedonia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇱" + , "description": "flag: Mali" + , "category": "Flags" + , "aliases": [ + "mali" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇲" + , "description": "flag: Myanmar (Burma)" + , "category": "Flags" + , "aliases": [ + "myanmar" + ] + , "tags": [ + "burma" + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇳" + , "description": "flag: Mongolia" + , "category": "Flags" + , "aliases": [ + "mongolia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇴" + , "description": "flag: Macao SAR China" + , "category": "Flags" + , "aliases": [ + "macau" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇵" + , "description": "flag: Northern Mariana Islands" + , "category": "Flags" + , "aliases": [ + "northern_mariana_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇶" + , "description": "flag: Martinique" + , "category": "Flags" + , "aliases": [ + "martinique" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇲🇷" + , "description": "flag: Mauritania" + , "category": "Flags" + , "aliases": [ + "mauritania" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇸" + , "description": "flag: Montserrat" + , "category": "Flags" + , "aliases": [ + "montserrat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇹" + , "description": "flag: Malta" + , "category": "Flags" + , "aliases": [ + "malta" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇺" + , "description": "flag: Mauritius" + , "category": "Flags" + , "aliases": [ + "mauritius" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇲🇻" + , "description": "flag: Maldives" + , "category": "Flags" + , "aliases": [ + "maldives" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇼" + , "description": "flag: Malawi" + , "category": "Flags" + , "aliases": [ + "malawi" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇽" + , "description": "flag: Mexico" + , "category": "Flags" + , "aliases": [ + "mexico" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇾" + , "description": "flag: Malaysia" + , "category": "Flags" + , "aliases": [ + "malaysia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇿" + , "description": "flag: Mozambique" + , "category": "Flags" + , "aliases": [ + "mozambique" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇦" + , "description": "flag: Namibia" + , "category": "Flags" + , "aliases": [ + "namibia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇨" + , "description": "flag: New Caledonia" + , "category": "Flags" + , "aliases": [ + "new_caledonia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇪" + , "description": "flag: Niger" + , "category": "Flags" + , "aliases": [ + "niger" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇫" + , "description": "flag: Norfolk Island" + , "category": "Flags" + , "aliases": [ + "norfolk_island" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇳🇬" + , "description": "flag: Nigeria" + , "category": "Flags" + , "aliases": [ + "nigeria" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇮" + , "description": "flag: Nicaragua" + , "category": "Flags" + , "aliases": [ + "nicaragua" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇱" + , "description": "flag: Netherlands" + , "category": "Flags" + , "aliases": [ + "netherlands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇴" + , "description": "flag: Norway" + , "category": "Flags" + , "aliases": [ + "norway" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇵" + , "description": "flag: Nepal" + , "category": "Flags" + , "aliases": [ + "nepal" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇷" + , "description": "flag: Nauru" + , "category": "Flags" + , "aliases": [ + "nauru" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇳🇺" + , "description": "flag: Niue" + , "category": "Flags" + , "aliases": [ + "niue" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇿" + , "description": "flag: New Zealand" + , "category": "Flags" + , "aliases": [ + "new_zealand" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇴🇲" + , "description": "flag: Oman" + , "category": "Flags" + , "aliases": [ + "oman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇦" + , "description": "flag: Panama" + , "category": "Flags" + , "aliases": [ + "panama" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇪" + , "description": "flag: Peru" + , "category": "Flags" + , "aliases": [ + "peru" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇫" + , "description": "flag: French Polynesia" + , "category": "Flags" + , "aliases": [ + "french_polynesia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇵🇬" + , "description": "flag: Papua New Guinea" + , "category": "Flags" + , "aliases": [ + "papua_new_guinea" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇭" + , "description": "flag: Philippines" + , "category": "Flags" + , "aliases": [ + "philippines" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇰" + , "description": "flag: Pakistan" + , "category": "Flags" + , "aliases": [ + "pakistan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇱" + , "description": "flag: Poland" + , "category": "Flags" + , "aliases": [ + "poland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇲" + , "description": "flag: St. Pierre & Miquelon" + , "category": "Flags" + , "aliases": [ + "st_pierre_miquelon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇵🇳" + , "description": "flag: Pitcairn Islands" + , "category": "Flags" + , "aliases": [ + "pitcairn_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇵🇷" + , "description": "flag: Puerto Rico" + , "category": "Flags" + , "aliases": [ + "puerto_rico" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇸" + , "description": "flag: Palestinian Territories" + , "category": "Flags" + , "aliases": [ + "palestinian_territories" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇹" + , "description": "flag: Portugal" + , "category": "Flags" + , "aliases": [ + "portugal" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇼" + , "description": "flag: Palau" + , "category": "Flags" + , "aliases": [ + "palau" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇾" + , "description": "flag: Paraguay" + , "category": "Flags" + , "aliases": [ + "paraguay" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇶🇦" + , "description": "flag: Qatar" + , "category": "Flags" + , "aliases": [ + "qatar" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇷🇪" + , "description": "flag: Réunion" + , "category": "Flags" + , "aliases": [ + "reunion" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇷🇴" + , "description": "flag: Romania" + , "category": "Flags" + , "aliases": [ + "romania" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇷🇸" + , "description": "flag: Serbia" + , "category": "Flags" + , "aliases": [ + "serbia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇷🇺" + , "description": "flag: Russia" + , "category": "Flags" + , "aliases": [ + "ru" + ] + , "tags": [ + "russia" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇷🇼" + , "description": "flag: Rwanda" + , "category": "Flags" + , "aliases": [ + "rwanda" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇦" + , "description": "flag: Saudi Arabia" + , "category": "Flags" + , "aliases": [ + "saudi_arabia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇧" + , "description": "flag: Solomon Islands" + , "category": "Flags" + , "aliases": [ + "solomon_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇨" + , "description": "flag: Seychelles" + , "category": "Flags" + , "aliases": [ + "seychelles" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇩" + , "description": "flag: Sudan" + , "category": "Flags" + , "aliases": [ + "sudan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇪" + , "description": "flag: Sweden" + , "category": "Flags" + , "aliases": [ + "sweden" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇬" + , "description": "flag: Singapore" + , "category": "Flags" + , "aliases": [ + "singapore" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇭" + , "description": "flag: St. Helena" + , "category": "Flags" + , "aliases": [ + "st_helena" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇸🇮" + , "description": "flag: Slovenia" + , "category": "Flags" + , "aliases": [ + "slovenia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇯" + , "description": "flag: Svalbard & Jan Mayen" + , "category": "Flags" + , "aliases": [ + "svalbard_jan_mayen" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇸🇰" + , "description": "flag: Slovakia" + , "category": "Flags" + , "aliases": [ + "slovakia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇱" + , "description": "flag: Sierra Leone" + , "category": "Flags" + , "aliases": [ + "sierra_leone" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇲" + , "description": "flag: San Marino" + , "category": "Flags" + , "aliases": [ + "san_marino" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇳" + , "description": "flag: Senegal" + , "category": "Flags" + , "aliases": [ + "senegal" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇴" + , "description": "flag: Somalia" + , "category": "Flags" + , "aliases": [ + "somalia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇷" + , "description": "flag: Suriname" + , "category": "Flags" + , "aliases": [ + "suriname" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇸" + , "description": "flag: South Sudan" + , "category": "Flags" + , "aliases": [ + "south_sudan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇹" + , "description": "flag: São Tomé & Príncipe" + , "category": "Flags" + , "aliases": [ + "sao_tome_principe" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇻" + , "description": "flag: El Salvador" + , "category": "Flags" + , "aliases": [ + "el_salvador" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇽" + , "description": "flag: Sint Maarten" + , "category": "Flags" + , "aliases": [ + "sint_maarten" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇾" + , "description": "flag: Syria" + , "category": "Flags" + , "aliases": [ + "syria" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇿" + , "description": "flag: Eswatini" + , "category": "Flags" + , "aliases": [ + "swaziland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇦" + , "description": "flag: Tristan da Cunha" + , "category": "Flags" + , "aliases": [ + "tristan_da_cunha" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇹🇨" + , "description": "flag: Turks & Caicos Islands" + , "category": "Flags" + , "aliases": [ + "turks_caicos_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇩" + , "description": "flag: Chad" + , "category": "Flags" + , "aliases": [ + "chad" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇹🇫" + , "description": "flag: French Southern Territories" + , "category": "Flags" + , "aliases": [ + "french_southern_territories" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇬" + , "description": "flag: Togo" + , "category": "Flags" + , "aliases": [ + "togo" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇭" + , "description": "flag: Thailand" + , "category": "Flags" + , "aliases": [ + "thailand" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇯" + , "description": "flag: Tajikistan" + , "category": "Flags" + , "aliases": [ + "tajikistan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇰" + , "description": "flag: Tokelau" + , "category": "Flags" + , "aliases": [ + "tokelau" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇹🇱" + , "description": "flag: Timor-Leste" + , "category": "Flags" + , "aliases": [ + "timor_leste" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇲" + , "description": "flag: Turkmenistan" + , "category": "Flags" + , "aliases": [ + "turkmenistan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇳" + , "description": "flag: Tunisia" + , "category": "Flags" + , "aliases": [ + "tunisia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇴" + , "description": "flag: Tonga" + , "category": "Flags" + , "aliases": [ + "tonga" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇷" + , "description": "flag: Turkey" + , "category": "Flags" + , "aliases": [ + "tr" + ] + , "tags": [ + "turkey" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🇹🇹" + , "description": "flag: Trinidad & Tobago" + , "category": "Flags" + , "aliases": [ + "trinidad_tobago" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇻" + , "description": "flag: Tuvalu" + , "category": "Flags" + , "aliases": [ + "tuvalu" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇼" + , "description": "flag: Taiwan" + , "category": "Flags" + , "aliases": [ + "taiwan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇹🇿" + , "description": "flag: Tanzania" + , "category": "Flags" + , "aliases": [ + "tanzania" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇺🇦" + , "description": "flag: Ukraine" + , "category": "Flags" + , "aliases": [ + "ukraine" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇺🇬" + , "description": "flag: Uganda" + , "category": "Flags" + , "aliases": [ + "uganda" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇺🇲" + , "description": "flag: U.S. Outlying Islands" + , "category": "Flags" + , "aliases": [ + "us_outlying_islands" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇺🇳" + , "description": "flag: United Nations" + , "category": "Flags" + , "aliases": [ + "united_nations" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇺🇸" + , "description": "flag: United States" + , "category": "Flags" + , "aliases": [ + "us" + ] + , "tags": [ + "flag" + , "united" + , "america" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇺🇾" + , "description": "flag: Uruguay" + , "category": "Flags" + , "aliases": [ + "uruguay" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇺🇿" + , "description": "flag: Uzbekistan" + , "category": "Flags" + , "aliases": [ + "uzbekistan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇦" + , "description": "flag: Vatican City" + , "category": "Flags" + , "aliases": [ + "vatican_city" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇻🇨" + , "description": "flag: St. Vincent & Grenadines" + , "category": "Flags" + , "aliases": [ + "st_vincent_grenadines" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇪" + , "description": "flag: Venezuela" + , "category": "Flags" + , "aliases": [ + "venezuela" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇬" + , "description": "flag: British Virgin Islands" + , "category": "Flags" + , "aliases": [ + "british_virgin_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇮" + , "description": "flag: U.S. Virgin Islands" + , "category": "Flags" + , "aliases": [ + "us_virgin_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇳" + , "description": "flag: Vietnam" + , "category": "Flags" + , "aliases": [ + "vietnam" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇺" + , "description": "flag: Vanuatu" + , "category": "Flags" + , "aliases": [ + "vanuatu" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇼🇫" + , "description": "flag: Wallis & Futuna" + , "category": "Flags" + , "aliases": [ + "wallis_futuna" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇼🇸" + , "description": "flag: Samoa" + , "category": "Flags" + , "aliases": [ + "samoa" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇽🇰" + , "description": "flag: Kosovo" + , "category": "Flags" + , "aliases": [ + "kosovo" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇾🇪" + , "description": "flag: Yemen" + , "category": "Flags" + , "aliases": [ + "yemen" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇾🇹" + , "description": "flag: Mayotte" + , "category": "Flags" + , "aliases": [ + "mayotte" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇿🇦" + , "description": "flag: South Africa" + , "category": "Flags" + , "aliases": [ + "south_africa" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇿🇲" + , "description": "flag: Zambia" + , "category": "Flags" + , "aliases": [ + "zambia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇿🇼" + , "description": "flag: Zimbabwe" + , "category": "Flags" + , "aliases": [ + "zimbabwe" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🏴" + , "description": "flag: England" + , "category": "Flags" + , "aliases": [ + "england" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏴" + , "description": "flag: Scotland" + , "category": "Flags" + , "aliases": [ + "scotland" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏴" + , "description": "flag: Wales" + , "category": "Flags" + , "aliases": [ + "wales" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +] diff --git a/plugins/emoji/update_emoji.pl b/plugins/emoji/update_emoji.pl deleted file mode 100644 index 8034052b7..000000000 --- a/plugins/emoji/update_emoji.pl +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/perl -w -# -# update_emoji.pl -# -# This script generates the emoji.plugin.zsh emoji definitions from the Unicode -# character data for the emoji characters. -# -# The data file can be found at https://unicode.org/Public/emoji/latest/emoji-data.txt -# as referenced in Unicode TR51 (https://www.unicode.org/reports/tr51/index.html). -# -# This is known to work with the data file from version 1.0. It may not work with later -# versions if the format changes. In particular, this reads line comments to get the -# emoji character name and unicode version. -# -# Country names have punctuation and other non-letter characters removed from their name, -# to avoid possible complications with having to escape the strings when using them as -# array subscripts. The definition file seems to use some combining characters like accents -# that get stripped during this process. - -use strict; -use warnings; -use 5.010; -use autodie; - -use Path::Class; -use File::Copy; - -# Parse definitions out of the data file and convert -sub process_emoji_data_file { - my ( $infile, $outfilename ) = @_; - my $file = file($infile); - my $outfile = file($outfilename); - my $outfilebase = $outfile->basename(); - my $tempfilename = "$outfilename.tmp"; - my $tempfile = file($tempfilename); - my $outfh = $tempfile->openw(); - $outfh->print(" -# $outfilebase - Emoji character definitions for oh-my-zsh emoji plugin -# -# This file is auto-generated by update_emoji.pl. Do not edit it manually. -# -# This contains the definition for: -# \$emoji - which maps character names to Unicode characters -# \$emoji_flags - maps country names to Unicode flag characters using region indicators - -# Main emoji -typeset -gAH emoji -# National flags -typeset -gAH emoji_flags -# Combining modifiers -typeset -gAH emoji_mod - -"); - - my $fh = $file->openr(); - my $line_num = 0; - while ( my $line = $fh->getline() ) { - $line_num++; - $_ = $line; - # Skip all-comment lines (from the header) and blank lines - # (But don't strip comments on normal lines; we need to parse those for - # the emoji names.) - next if /^\s*#/ or /^\s*$/; - - if (/^(\S.*?\S)\s*;\s*(\w+)\s*;\s*(\w+)\s*;\s*(\w+)\s*;\s*(\w.*?)\s*#\s*V(\S+)\s\(.*?\)\s*(\w.*\S)\s*$/) { - my ($code, $style, $level, $modifier_status, $sources, $version, $keycap_name) - = ($1, $2, $3, $4, $5, $6, $7); - #print "code=$code style=$style level=$level modifier_status=$modifier_status sources=$sources version=$version name=$keycap_name\n"; - my @code_points = split /\s+/, $code; - my @sources = split /\s+/, $sources; - - my $flag_country = ""; - if ( $keycap_name =~ /^flag for (\S.*?)\s*$/) { - $flag_country = $1; - } - - my $zsh_code = join '', map { "\\U$_" } @code_points; - # Convert keycap names to valid associative array names that do not require any - # quoting. Works fine for most stuff, but is clumsy for flags. - my $omz_name = lc($keycap_name); - $omz_name =~ s/[^A-Za-z0-9]/_/g; - my $zsh_flag_country = $flag_country; - $zsh_flag_country =~ s/[^\p{Letter}]/_/g; - if ($flag_country) { - $outfh->print("emoji_flags[$zsh_flag_country]=\$'$zsh_code'\n"); - } else { - $outfh->print("emoji[$omz_name]=\$'$zsh_code'\n"); - } - # Modifiers are included in both the main set and their separate map, - # because they have a standalone representation as a color swatch. - if ( $modifier_status eq "modifier" ) { - $outfh->print("emoji_mod[$omz_name]=\$'$zsh_code'\n"); - } - } else { - die "Failed parsing line $line_num: '$_'"; - } - } - $fh->close(); - $outfh->print("\n"); - $outfh->close(); - - move($tempfilename, $outfilename) - or die "Failed moving temp file to $outfilename: $!"; -} - -my $datafile = "emoji-data.txt"; -my $zsh_def_file = "emoji-char-definitions.zsh"; -process_emoji_data_file($datafile, $zsh_def_file); - -print "Updated definition file $zsh_def_file\n"; - - - diff --git a/plugins/emoji/update_emoji.py b/plugins/emoji/update_emoji.py new file mode 100644 index 000000000..eb945b9ef --- /dev/null +++ b/plugins/emoji/update_emoji.py @@ -0,0 +1,213 @@ +""" +Update Emoji.py +Refeshes OMZ emoji database based on the latest Unicode spec +""" +import re +import json + +spec = open("emoji-data.txt", "r") + +# Regexes +# regex_emoji will return, respectively: +# the code points, its type (status), the actual emoji, and its official name +regex_emoji = r"^([\w ].*?\S)\s*;\s*([\w-]+)\s*#\s*(.*?)\s(\S.*).*$" +# regex_group returns the group of subgroup that a line opens +regex_group = r"^#\s*(group|subgroup):\s*(.*)$" + +headers = """ +# emoji-char-definitions.zsh - Emoji definitions for oh-my-zsh emoji plugin +# +# This file is auto-generated by update_emoji.py. Do not edit it manually. +# +# This contains the definition for: +# $emoji - which maps character names to Unicode characters +# $emoji_flags - maps country names to Unicode flag characters using region +# indicators +# $emoji_mod - maps modifier components to Unicode characters +# $emoji_groups - a single associative array to avoid cluttering up the +# global namespace, and to allow adding additional group +# definitions at run time. The keys are the group names, and +# the values are whitespace-separated lists of emoji +# character names. + +# Main emoji +typeset -gAH emoji +# National flags +typeset -gAH emoji_flags +# Combining modifiers +typeset -gAH emoji_mod +# Emoji groups +typeset -gAH emoji_groups +""" + +####### +# Adding country codes +####### +# This is the only part of this script that relies on an external library +# (country_converter), and is hence commented out by default. +# You can uncomment it to have country codes added as aliases for flag +# emojis. (By default, when you install this extension, country codes are +# included as aliases, but not if you re-run this script without uncommenting.) +# Warning: country_converter is very verbose, and will print warnings all over +# your terminal. + +# import country_converter as coco # pylint: disable=wrong-import-position +# cc = coco.CountryConverter() + +# def country_iso(_all_names, _omz_name): +# """ Using the external library country_converter, +# this funciton can detect the ISO2 and ISO3 codes +# of the country. It takes as argument the array +# with all the names of the emoji, and returns that array.""" +# omz_no_underscore = re.sub(r'_', r' ', _omz_name) +# iso2 = cc.convert(names=[omz_no_underscore], to='ISO2') +# if iso2 != 'not found': +# _all_names.append(iso2) +# iso3 = cc.convert(names=[omz_no_underscore], to='ISO3') +# _all_names.append(iso3) +# return _all_names + + +####### +# Helper functions +####### + +def code_to_omz(_code_points): + """ Returns a ZSH-compatible Unicode string from the code point(s) """ + return r'\U' + r'\U'.join(_code_points.split(' ')) + +def name_to_omz(_name, _group, _subgroup, _status): + """ Returns a reasonable snake_case name for the emoji. """ + def snake_case(_string): + """ Does the regex work of snake_case """ + remove_dots = re.sub(r'\.\(\)', r'', _string) + replace_ands = re.sub(r'\&', r'and', remove_dots) + remove_whitespace = re.sub(r'[^\#\*\w]', r'_', replace_ands) + return re.sub(r'__', r'_', remove_whitespace) + + shortname = "" + split_at_colon = lambda s: s.split(": ") + # Special treatment by group and subgroup + # If the emoji is a flag, we strip "flag" from its name + if _group == "Flags" and len(split_at_colon(_name)) > 1: + shortname = snake_case(split_at_colon(_name)[1]) + else: + shortname = snake_case(_name) + # Special treatment by status + # Enables us to have every emoji combination, + # even the one that are not officially sanctionned + # and are implemeted by, say, only one vendor + if _status == "unqualified": + shortname += "_unqualified" + elif _status == "minimally-qualified": + shortname += "_minimally" + return shortname + +def increment_name(_shortname): + """ Increment the short name by 1. If you get, say, + 'woman_detective_unqualified', it returns + 'woman_detective_unqualified_1', and then + 'woman_detective_unqualified_2', etc. """ + last_char = _shortname[-1] + if last_char.isdigit(): + num = int(last_char) + return _shortname[:-1] + str(num + 1) + return _shortname + "_1" + +######## +# Going through every line +######## + +group, subgroup, short_name_buffer = "", "", "" +emoji_database = [] +for line in spec: + # First, test if this line opens a group or subgroup + group_match = re.findall(regex_group, line) + if group_match != []: + gr_or_sub, name = group_match[0] + if gr_or_sub == "group": + group = name + elif gr_or_sub == "subgroup": + subgroup = name + continue # Moving on... + # Second, test if this line references one emoji + emoji_match = re.findall(regex_emoji, line) + if emoji_match != []: + code_points, status, emoji, name = emoji_match[0] + omz_codes = code_to_omz(code_points) + omz_name = name_to_omz(name, group, subgroup, status) + # If this emoji has the same shortname as the preceding one + if omz_name in short_name_buffer: + omz_name = increment_name(short_name_buffer) + short_name_buffer = omz_name + emoji_database.append( + [omz_codes, status, emoji, omz_name, group, subgroup]) +spec.close() + +######## +# Write to emoji-char-definitions.zsh +######## + +# Aliases for emojis are retrieved through the DB of Gemoji +# Retrieved on Aug 9 2019 from the following URL: +# https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json + +gemoji_db = open("gemoji_db.json") +j = json.load(gemoji_db) +aliases_map = {entry['emoji']: entry['aliases'] for entry in j} +all_omz_names = [emoji_data[3] for emoji_data in emoji_database] + +# Let's begin writing to this file +output = open("emoji-char-definitions.zsh", "w") +output.write(headers) + +emoji_groups = {"fruits": "\n", "vehicles": "\n", "hands": "\n", + "people": "\n", "animals": "\n", "faces": "\n", + "flags": "\n"} + +# First, write every emoji down +for _omz_codes, _status, _emoji, _omz_name, _group, _subgroup in emoji_database: + + # One emoji can be mapped to multiple names (aliases or country codes) + names_for_this_emoji = [_omz_name] + + # Variable that indicates in which map the emoji will be located + emoji_map = "emoji" + if _status == "component": + emoji_map = "emoji_mod" + if _group == "Flags": + emoji_map = "emoji_flags" + # Adding country codes (Optional, see above) + # names_for_this_emoji = country_iso(names_for_this_emoji, _omz_name) + + # Check if there is an alias available in the Gemoji DB + if _emoji in aliases_map.keys(): + for alias in aliases_map[_emoji]: + if alias not in all_omz_names: + names_for_this_emoji.append(alias) + + # And now we write to the definitions file + for one_name in names_for_this_emoji: + output.write(f"{emoji_map}[{one_name}]=$'{_omz_codes}'\n") + + # Storing the emoji in defined subgroups for the next step + if _status == "fully-qualified": + if _subgroup == "food-fruit": + emoji_groups["fruits"] += f" {_omz_name}\n" + elif "transport-" in _subgroup: + emoji_groups["vehicles"] += f" {_omz_name}\n" + elif "hand-" in _subgroup: + emoji_groups["hands"] += f" {_omz_name}\n" + elif "person-" in _subgroup or _subgroup == "family": + emoji_groups["people"] += f" {_omz_name}\n" + elif "animal-" in _subgroup: + emoji_groups["animals"] += f" {_omz_name}\n" + elif "face-" in _subgroup: + emoji_groups["faces"] += f" {_omz_name}\n" + elif _group == "Flags": + emoji_groups["flags"] += f" {_omz_name}\n" + +# Second, write the subgroups to the end of the file +for name, string in emoji_groups.items(): + output.write(f'\nemoji_groups[{name}]="{string}"\n') +output.close() diff --git a/plugins/emotty/emotty.plugin.zsh b/plugins/emotty/emotty.plugin.zsh index 4511275d6..661169a8b 100644 --- a/plugins/emotty/emotty.plugin.zsh +++ b/plugins/emotty/emotty.plugin.zsh @@ -10,6 +10,11 @@ # % export emotty_set=nature # ------------------------------------------------------------------------------ +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + typeset -gAH _emotty_sets local _emotty_plugin_dir="${0:h}" source "$_emotty_plugin_dir/emotty_stellar_set.zsh" diff --git a/plugins/fastfile/README.md b/plugins/fastfile/README.md index 37f5b2f53..32f619ffd 100644 --- a/plugins/fastfile/README.md +++ b/plugins/fastfile/README.md @@ -4,6 +4,7 @@ This plugin adds a way to reference certain files or folders used frequently usi a global alias or shortcut. To use it, add `fastfile` to the plugins array in your zshrc file: + ```zsh plugins=(... fastfile) ``` @@ -13,36 +14,38 @@ plugins=(... fastfile) Example: you access folder `/code/project/backend/database` very frequently. First, generate a shortcut with the name `pjdb`: + ```zsh $ fastfile pjdb /code/project/backend/database ``` Next time you want to access it, use `§pjdb`. For example: + ```zsh $ cd §pjdb $ subl §pjdb ``` + where § is the fastfile prefix (see [below](#options) for how to change). **Note:** shortcuts with spaces in the name are assigned a global alias where the spaces have been substituted with underscores (`_`). For example: a shortcut named `"hello world"` corresponds with `§hello_world`. - ## Functions -- `fastfile <shortcut_name> <path/to/file/or/folder>`: generate a shortcut. +- `fastfile <shortcut_name> [path/to/file/or/folder]`: generate a shortcut. + If the second argument is not provided, the current directory is used. - `fastfile_print <shortcut_name>`: prints a shortcut, with the format `<prefix><shortcut_name> -> <shortcut_path>`. - `fastfile_ls`: lists all shortcuts. -- `fastfile_rm <shortcut_name> `: remove a shortcut. +- `fastfile_rm <shortcut_name>`: remove a shortcut. - `fastfile_sync`: generates the global aliases for the shortcuts. - ### Internal functions - `fastfile_resolv <shortcut_name>`: resolves the location of the shortcut @@ -51,7 +54,6 @@ a shortcut named `"hello world"` corresponds with `§hello_world`. - `fastfile_get <shortcut_name>`: get the real path of the shortcut. - ## Aliases | Alias | Function | @@ -62,7 +64,6 @@ a shortcut named `"hello world"` corresponds with `§hello_world`. | ffls | `fastfile_ls` | | ffsync | `fastfile_sync` | - ## Options These are options you can set to change certain parts of the plugin. To change diff --git a/plugins/fastfile/fastfile.plugin.zsh b/plugins/fastfile/fastfile.plugin.zsh index 6288bb275..896fed5f7 100644 --- a/plugins/fastfile/fastfile.plugin.zsh +++ b/plugins/fastfile/fastfile.plugin.zsh @@ -44,7 +44,7 @@ function fastfile() { # The path to the shortcut file # function fastfile_resolv() { - echo "${fastfile_dir}${1}" + echo "${fastfile_dir}/${1}" } # @@ -78,9 +78,9 @@ function fastfile_print() { # (=> fastfile_print) for each shortcut # function fastfile_ls() { - for f in "${fastfile_dir}"/*(NF); do - file=`basename "$f"` # To enable simpler handling of spaces in file names - varkey=`echo "$file" | tr " " "_"` + for f in "${fastfile_dir}"/*(N); do + file=$(basename "$f") # To enable simpler handling of spaces in file names + varkey=$(echo "$file" | tr " " "_") # Special format for columns echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")" @@ -98,15 +98,16 @@ function fastfile_ls() { function fastfile_rm() { fastfile_print "$1" rm "$(fastfile_resolv "$1")" + unalias "${fastfile_var_prefix}${1}" } # # Generate the aliases for the shortcuts # function fastfile_sync() { - for f in "${fastfile_dir}"/*(NF); do - file=`basename "$f"` # To enable simpler handling of spaces in file names - varkey=`echo "$file" | tr " " "_"` + for f in "${fastfile_dir}"/*(N); do + file=$(basename "$f") # To enable simpler handling of spaces in file names + varkey=$(echo "$file" | tr " " "_") alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'" done diff --git a/plugins/fd/README.md b/plugins/fd/README.md index 4d9cf190f..cf9f7815d 100644 --- a/plugins/fd/README.md +++ b/plugins/fd/README.md @@ -8,6 +8,6 @@ To use it, add `fd` to the plugins array in your zshrc file: plugins=(... fd) ``` -Completion is taken from the fd release [`7.3.0`](https://github.com/sharkdp/fd/releases/tag/v7.3.0). +Completion is taken from the fd release [`8.2.1`](https://github.com/sharkdp/fd/releases/tag/v8.2.1). -Updated on February 13th, 2019. +Updated on April 1st, 2021. diff --git a/plugins/fd/_fd b/plugins/fd/_fd index 7a4c38753..f5d9e01d2 100644 --- a/plugins/fd/_fd +++ b/plugins/fd/_fd @@ -1,83 +1,268 @@ #compdef fd fdfind +## +# zsh completion function for fd +# +# Based on ripgrep completion function. +# Originally based on code from the zsh-users project — see copyright notice +# below. + autoload -U is-at-least _fd() { - typeset -A opt_args - typeset -a _arguments_options - local ret=1 - - if is-at-least 5.2; then - _arguments_options=(-s -S -C) - else - _arguments_options=(-s -C) - fi - - local context curcontext="$curcontext" state line - _arguments "${_arguments_options[@]}" \ -'-d+[Set maximum search depth (default: none)]' \ -'--max-depth=[Set maximum search depth (default: none)]' \ -'--maxdepth=[See --max-depth]' \ -'*-t+[Filter by type: file (f), directory (d), symlink (l), -executable (x), empty (e)]: :(f file d directory l symlink x executable e empty)' \ -'*--type=[Filter by type: file (f), directory (d), symlink (l), -executable (x), empty (e)]: :(f file d directory l symlink x executable e empty)' \ -'*-e+[Filter by file extension]' \ -'*--extension=[Filter by file extension]' \ -'-x+[Execute a command for each search result]' \ -'--exec=[Execute a command for each search result]' \ -'(-x --exec)-X+[Execute a command with all search results at once]' \ -'(-x --exec)--exec-batch=[Execute a command with all search results at once]' \ -'*-E+[Exclude entries that match the given glob pattern]' \ -'*--exclude=[Exclude entries that match the given glob pattern]' \ -'*--ignore-file=[Add a custom ignore-file in .gitignore format]' \ -'-c+[When to use colors: never, *auto*, always]: :(never auto always)' \ -'--color=[When to use colors: never, *auto*, always]: :(never auto always)' \ -'-j+[Set number of threads to use for searching & executing]' \ -'--threads=[Set number of threads to use for searching & executing]' \ -'*-S+[Limit results based on the size of files.]' \ -'*--size=[Limit results based on the size of files.]' \ -'--max-buffer-time=[the time (in ms) to buffer, before streaming to the console]' \ -'--changed-within=[Filter by file modification time (newer than)]' \ -'--changed-before=[Filter by file modification time (older than)]' \ -'*--search-path=[(hidden)]' \ -'-H[Search hidden files and directories]' \ -'--hidden[Search hidden files and directories]' \ -'-I[Do not respect .(git|fd)ignore files]' \ -'--no-ignore[Do not respect .(git|fd)ignore files]' \ -'--no-ignore-vcs[Do not respect .gitignore files]' \ -'*-u[Alias for no-ignore and/or hidden]' \ -'-s[Case-sensitive search (default: smart case)]' \ -'--case-sensitive[Case-sensitive search (default: smart case)]' \ -'-i[Case-insensitive search (default: smart case)]' \ -'--ignore-case[Case-insensitive search (default: smart case)]' \ -'-F[Treat the pattern as a literal string]' \ -'--fixed-strings[Treat the pattern as a literal string]' \ -'-a[Show absolute instead of relative paths]' \ -'--absolute-path[Show absolute instead of relative paths]' \ -'-L[Follow symbolic links]' \ -'--follow[Follow symbolic links]' \ -'-p[Search full path (default: file-/dirname only)]' \ -'--full-path[Search full path (default: file-/dirname only)]' \ -'-0[Separate results by the null character]' \ -'--print0[Separate results by the null character]' \ -'--show-errors[Enable display of filesystem errors]' \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'::pattern -- the search pattern, a regular expression (optional):_files' \ -'::path -- the root directory for the filesystem search (optional):_files' \ -&& ret=0 + local curcontext="$curcontext" no='!' ret=1 + local -a context line state state_descr _arguments_options fd_types fd_args + local -A opt_args -} + if is-at-least 5.2; then + _arguments_options=( -s -S ) + else + _arguments_options=( -s ) + fi + + fd_types=( + {f,file}'\:"regular files"' + {d,directory}'\:"directories"' + {l,symlink}'\:"symbolic links"' + {e,empty}'\:"empty files or directories"' + {x,executable}'\:"executable (files)"' + {s,socket}'\:"sockets"' + {p,pipe}'\:"named pipes (FIFOs)"' + ) + + # Do not complete rare options unless either the current prefix + # matches one of those options or the user has the `complete-all` + # style set. Note that this prefix check has to be updated manually to account + # for all of the potential negation options listed below! + if + # (--[bpsu]* => match all options marked with '$no') + [[ $PREFIX$SUFFIX == --[bopsu]* ]] || + zstyle -t ":complete:$curcontext:*" complete-all + then + no= + fi + + # We make heavy use of argument groups here to prevent the option specs from + # growing unwieldy. These aren't supported in zsh <5.4, though, so we'll strip + # them out below if necessary. This makes the exclusions inaccurate on those + # older versions, but oh well — it's not that big a deal + fd_args=( + + '(hidden)' # hidden files + {-H,--hidden}'[search hidden files/directories]' + + + '(no-ignore-full)' # all ignore files + '(no-ignore-partial)'{-I,--no-ignore}"[don't respect .(git|fd)ignore and global ignore files]" + $no'(no-ignore-partial)*'{-u,--unrestricted}'[alias for --no-ignore, when repeated also alias for --hidden]' + + + no-ignore-partial # some ignore files + "(no-ignore-full --no-ignore-vcs)--no-ignore-vcs[don't respect .gitignore files]" + "!(no-ignore-full --no-global-ignore-file)--no-global-ignore-file[don't respect the global ignore file]" + + + '(case)' # case-sensitivity + {-s,--case-sensitive}'[perform a case-sensitive search]' + {-i,--ignore-case}'[perform a case-insensitive search]' + + + '(regex-pattern)' # regex-based search pattern + '(no-regex-pattern)--regex[perform a regex-based search (default)]' + + + '(no-regex-pattern)' # non-regex-based search pattern + {-g,--glob}'[perform a glob-based search]' + {-F,--fixed-strings}'[treat pattern as literal string instead of a regex]' + + + '(match-full)' # match against full path + {-p,--full-path}'[match the pattern against the full path instead of the basename]' + + + '(follow)' # follow symlinks + {-L,--follow}'[follow symbolic links to directories]' + + + '(abs-path)' # show absolute paths + '(long-listing)'{-a,--absolute-path}'[show absolute paths instead of relative paths]' + + + '(null-sep)' # use null separator for output + '(long-listing)'{-0,--print0}'[separate search results by the null character]' + + + '(long-listing)' # long-listing output + '(abs-path null-sep max-results exec-cmds)'{-l,--list-details}'[use a long listing format with file metadata]' + + + '(max-results)' # max number of results + '(long-listing exec-cmds)--max-results=[limit number of search results to given count and quit]:count' + '(long-listing exec-cmds)-1[limit to a single search result and quit]' + + + '(fs-errors)' # file-system errors + $no'--show-errors[enable the display of filesystem errors]' + + + '(fs-traversal)' # file-system traversal + $no"--one-file-system[don't descend into directories on other file systems]" + '!--mount' + '!--xdev' + + + dir-depth # directory depth + '(--exact-depth -d --max-depth)'{-d+,--max-depth=}'[set max directory depth to descend when searching]:depth' + '!(--exact-depth -d --max-depth)--maxdepth:depth' + '(--exact-depth --min-depth)--min-depth=[set directory depth to descend before start searching]:depth' + '(--exact-depth -d --max-depth --maxdepth --min-depth)--exact-depth=[only search at the exact given directory depth]:depth' -(( $+functions[_fd_commands] )) || -_fd_commands() { - local commands; commands=( + + prune # pruning + "--prune[don't traverse into matching directories]" - ) - _describe -t commands 'fd commands' commands "$@" + + filter-misc # filter search + '*'{-t+,--type=}"[filter search by type]:type:(($fd_types))" + '*'{-e+,--extension=}'[filter search by file extension]:extension' + '*'{-E+,--exclude=}'[exclude files/directories that match the given glob pattern]:glob pattern' + '*'{-S+,--size=}'[limit search by file size]:size limit:->size' + '(-o --owner)'{-o+,--owner=}'[filter by owning user and/or group]:owner and/or group:->owner' + + + ignore-file # extra ignore files + '*--ignore-file=[add a custom, low-precedence ignore-file with .gitignore format]: :_files' + + + '(filter-mtime-newer)' # filter by files modified after than + '--changed-within=[limit search to files/directories modified within the given date/duration]:date or duration' + '!--change-newer-than=:date/duration' + '!--newer=:date/duration' + + + '(filter-mtime-older)' # filter by files modified before than + '--changed-before=[limit search to files/directories modified before the given date/duration]:date or duration' + '!--change-older-than=:date/duration' + '!--older=:date/duration' + + + '(color)' # colorize output + {-c+,--color=}'[declare when to colorize search results]:when to colorize:(( + auto\:"show colors if the output goes to an interactive console (default)" + never\:"do not use colorized output" + always\:"always use colorized output" + ))' + + + '(threads)' + {-j+,--threads=}'[set the number of threads for searching and executing]:number of threads' + + + '(exec-cmds)' # execute command + '(long-listing max-results)'{-x+,--exec=}'[execute command for each search result]:command: _command_names -e:*\;::program arguments: _normal' + '(long-listing max-results)'{-X+,--exec-batch=}'[execute command for all search results at once]:command: _command_names -e:*\;::program arguments: _normal' + + + other + '!(--max-buffer-time)--max-buffer-time=[set amount of time to buffer before showing output]:time (ms)' + + + '(about)' # about flags + '(: * -)'{-h,--help}'[display help message]' + '(: * -)'{-v,--version}'[display version information]' + + + path-sep # set path separator for output + $no'(--path-separator)--path-separator=[set the path separator to use when printing file paths]:path separator' + + + search-path + $no'(--base-directory)--base-directory=[change the current working directory to the given path]:directory:_files -/' + $no'(*)*--search-path=[set search path (instead of positional <path> arguments)]:directory:_files -/' + + + args # positional arguments + '1: :_guard "^-*" pattern' + '(--search-path)*:directory:_files -/' + ) + + # Strip out argument groups where unsupported (see above) + is-at-least 5.4 || + fd_args=( ${(@)args:#(#i)(+|[a-z0-9][a-z0-9_-]#|\([a-z0-9][a-z0-9_-]#\))} ) + + _arguments $_arguments_options : $fd_args && ret=0 + + case ${state} in + owner) + compset -P '(\\|)\!' + if compset -P '*:'; then + _groups && ret=0 + else + if + compset -S ':*' || + # Do not add the colon suffix when completing "!user<TAB> + # (with a starting double-quote) otherwise pressing tab again + # after the inserted colon "!user:<TAB> will complete history modifiers + [[ $IPREFIX == (\\|\!)* && ($QIPREFIX == \"* && -z $QISUFFIX) ]] + then + _users && ret=0 + else + local q + # Since quotes are needed when using the negation prefix !, + # automatically remove the colon suffix also when closing the quote + if [[ $QIPREFIX == [\'\"]* ]]; then + q=${QIPREFIX:0:1} + fi + _users -r ": \t\n\-$q" -S : && ret=0 + fi + fi + ;; + + size) + if compset -P '[-+][0-9]##'; then + local -a suff=( + 'B:bytes' + 'K:kilobytes (10^3 = 1000 bytes)' + 'M:megabytes (10^6 = 1000^2 bytes)' + 'G:gigabytes (10^9 = 1000^3 bytes)' + 'T:terabytes (10^12 = 1000^4 bytes)' + 'Ki:kibibytes ( 2^10 = 1024 bytes)' + 'Mi:mebibytes ( 2^20 = 1024^2 bytes)' + 'Gi:gigibytes ( 2^30 = 1024^3 bytes)' + 'Ti:tebibytes ( 2^40 = 1024^4 bytes)' + ) + _describe -t units 'size limit units' suff -V 'units' + elif compset -P '[-+]'; then + _message -e 'size limit number (full format: <+-><number><unit>)' + else + _values 'size limit prefix (full format: <prefix><number><unit>)' \ + '\+[file size must be greater or equal to]'\ + '-[file size must be less than or equal to]' && ret=0 + fi + ;; + esac + + return ret } _fd "$@" + +# ------------------------------------------------------------------------------ +# Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the zsh-users nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------ +# Description +# ----------- +# +# Completion script for fd +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * smancill (https://github.com/smancill) +# +# ------------------------------------------------------------------------------ + +# Local Variables: +# mode: shell-script +# coding: utf-8-unix +# indent-tabs-mode: nil +# sh-indentation: 2 +# sh-basic-offset: 2 +# End: +# vim: ft=zsh sw=2 ts=2 et diff --git a/plugins/flutter/README.md b/plugins/flutter/README.md index 9c8169afc..e5a4fd2ea 100644 --- a/plugins/flutter/README.md +++ b/plugins/flutter/README.md @@ -2,20 +2,27 @@ The Flutter plugin provides completion and useful aliases -To use it, add flutter to the plugins array of your zshrc file: +To use it, add `flutter` to the plugins array of your zshrc file: -``` +```zsh plugins=(... flutter) ``` ## Aliases -| Alias | Command | Description | -| :--------- | :--------------------- | :------------------------------------------------------------------------- | -| `fl` | `flutter` | Shorthand for flutter command | -| `flr` | `flutter run` | Runs flutter app | -| `fldoc` | `flutter doctor` | Runs flutter doctor | -| `flb` | `flutter build` | Build flutter application | -| `flattach` | `flutter attach` | Attaches flutter to a running flutter application with enabled observatory | -| `flget` | `flutter packages get` | Installs dependencies | -| `flc` | `flutter clean` | Cleans flutter project | +| Alias | Command | Description | +| :--------- | :---------------------- | :------------------------------------------------------------------------- | +| `fl` | `flutter` | Shorthand for flutter command | +| `flattach` | `flutter attach` | Attaches flutter to a running flutter application with enabled observatory | +| `flb` | `flutter build` | Build flutter application | +| `flchnl` | `flutter channel` | Switches flutter channel (requires input of desired channel) | +| `flc` | `flutter clean` | Cleans flutter project | +| `fldvcs` | `flutter devices` | List connected devices (if any) | +| `fldoc` | `flutter doctor` | Runs flutter doctor | +| `flpub` | `flutter pub` | Shorthand for flutter pub command | +| `flget` | `flutter pub get` | Installs dependencies | +| `flr` | `flutter run` | Runs flutter app | +| `flrd` | `flutter run --debug` | Runs flutter app in debug mode (default mode) | +| `flrp` | `flutter run --profile` | Runs flutter app in profile mode | +| `flrr` | `flutter run --release` | Runs flutter app in release mode | +| `flupgrd` | `flutter upgrade` | Upgrades flutter version depending on the current channel | diff --git a/plugins/flutter/flutter.plugin.zsh b/plugins/flutter/flutter.plugin.zsh index 01c4c9f5f..80b74f64a 100644 --- a/plugins/flutter/flutter.plugin.zsh +++ b/plugins/flutter/flutter.plugin.zsh @@ -1,7 +1,14 @@ alias fl="flutter" -alias flr="flutter run" -alias fldoc="flutter doctor" -alias flb="flutter build" alias flattach="flutter attach" -alias flget="flutter packages get" +alias flb="flutter build" +alias flchnl="flutter channel" alias flc="flutter clean" +alias fldvcs="flutter devices" +alias fldoc="flutter doctor" +alias flpub="flutter pub" +alias flget="flutter pub get" +alias flr="flutter run" +alias flrd="flutter run --debug" +alias flrp="flutter run --profile" +alias flrr="flutter run --release" +alias flupgrd="flutter upgrade" diff --git a/plugins/fnm/fnm.plugin.zsh b/plugins/fnm/fnm.plugin.zsh index c161b27cd..e22588792 100644 --- a/plugins/fnm/fnm.plugin.zsh +++ b/plugins/fnm/fnm.plugin.zsh @@ -1,23 +1,26 @@ -if (( $+commands[fnm] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_fnm" - - ver="$(fnm --version)" - ver_file="$ZSH_CACHE_DIR/fnm_version" - comp_file="$ZSH_CACHE_DIR/completions/_fnm" +if (( ! $+commands[fnm] )); then + return +fi - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) +# TODO: 2021-12-28: remove this block +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" +# remove old generated files +command rm -f "${0:A:h}/_fnm" "$ZSH_CACHE_DIR/fnm_version" - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - fnm completions --shell=zsh >| "$comp_file" - echo "$ver" >| "$ver_file" - fi +# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh +# Add completions folder in $ZSH_CACHE_DIR +command mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `fnm`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_fnm" ]]; then declare -A _comps autoload -Uz _fnm _comps[fnm]=_fnm - - unset ver ver_file comp_file fi +fnm completions --shell=zsh >| "$ZSH_CACHE_DIR/completions/_fnm" &| diff --git a/plugins/fossil/_fossil b/plugins/fossil/_fossil new file mode 100644 index 000000000..d2d48bdec --- /dev/null +++ b/plugins/fossil/_fossil @@ -0,0 +1,32 @@ +#compdef fossil + +function _fossil_get_command_list () { + fossil help -a | grep -v "Usage|Common|This is" +} + +function _fossil () { + local context state state_descr line + typeset -A opt_args + + _arguments \ + '1: :->command'\ + '2: :->subcommand' + + case $state in + command) + local _OUTPUT=$(fossil branch 2>&1 | grep "use --repo") + if [[ -z "$_OUTPUT" ]]; then + compadd "$(_fossil_get_command_list)" + else + compadd clone init import help version + fi ;; + subcommand) + case "$words[2]" in + help) compadd "$(_fossil_get_command_list)" ;; + add) compadd "$(fossil extra)" ;; + *) compcall -D ;; + esac ;; + esac +} + +_fossil "$@" diff --git a/plugins/fossil/fossil.plugin.zsh b/plugins/fossil/fossil.plugin.zsh index 25a8d121d..dfad73d36 100644 --- a/plugins/fossil/fossil.plugin.zsh +++ b/plugins/fossil/fossil.plugin.zsh @@ -12,7 +12,7 @@ ZSH_THEME_FOSSIL_PROMPT_DIRTY=" %{$fg_bold[red]%}✖" # Text to display if the branch is clean ZSH_THEME_FOSSIL_PROMPT_CLEAN=" %{$fg_bold[green]%}✔" -function fossil_prompt_info () { +function fossil_prompt_info() { local _OUTPUT=`fossil branch 2>&1` local _STATUS=`echo $_OUTPUT | grep "use --repo"` if [ "$_STATUS" = "" ]; then @@ -32,37 +32,6 @@ function fossil_prompt_info () { fi } -function _fossil_get_command_list () { - fossil help -a | grep -v "Usage|Common|This is" -} - -function _fossil () { - local context state state_descr line - typeset -A opt_args - - _arguments \ - '1: :->command'\ - '2: :->subcommand' - - case $state in - command) - local _OUTPUT=`fossil branch 2>&1 | grep "use --repo"` - if [ "$_OUTPUT" = "" ]; then - compadd `_fossil_get_command_list` - else - compadd clone init import help version - fi - ;; - subcommand) - if [ "$words[2]" = "help" ]; then - compadd `_fossil_get_command_list` - else - compcall -D - fi - ;; - esac -} - function _fossil_prompt () { local current=`echo $PROMPT $RPROMPT | grep fossil` @@ -82,8 +51,5 @@ function _fossil_prompt () { fi } -compdef _fossil fossil - autoload -U add-zsh-hook - add-zsh-hook precmd _fossil_prompt diff --git a/plugins/gh/gh.plugin.zsh b/plugins/gh/gh.plugin.zsh index 3e4cdee5e..17995e1cf 100644 --- a/plugins/gh/gh.plugin.zsh +++ b/plugins/gh/gh.plugin.zsh @@ -1,24 +1,27 @@ # Autocompletion for the GitHub CLI (gh). -if (( $+commands[gh] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_gh" - - ver="$(gh --version)" - ver_file="$ZSH_CACHE_DIR/gh_version" - comp_file="$ZSH_CACHE_DIR/completions/_gh" +if (( ! $+commands[gh] )); then + return +fi - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) +# TODO: 2021-12-28: remove this block +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" +# Remove old generated files +command rm -f "${0:A:h}/_gh" "$ZSH_CACHE_DIR/gh_version" - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - gh completion --shell zsh >| "$comp_file" - echo "$ver" >| "$ver_file" - fi +# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh +# Add completions folder in $ZSH_CACHE_DIR +command mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `gh`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_gh" ]]; then declare -A _comps autoload -Uz _gh _comps[gh]=_gh - - unset ver ver_file comp_file fi +gh completion --shell zsh >| "$ZSH_CACHE_DIR/completions/_gh" &| diff --git a/plugins/git-flow/README.md b/plugins/git-flow/README.md index 9c25dec83..fc8ccf0a0 100644 --- a/plugins/git-flow/README.md +++ b/plugins/git-flow/README.md @@ -10,22 +10,31 @@ plugins=(... git-flow) ## Aliases -| Alias | Command | Description | -|---------|----------------------------|----------------------------------------| -| `gfl` | `git flow` | Git-Flow command | -| `gfli` | `git flow init` | Initialize git-flow repository | -| `gcd` | `git checkout develop` | Check out develop branch | -| `gch` | `git checkout hotfix` | Check out hotfix branch | -| `gcr` | `git checkout release` | Check out release branch | -| `gflf` | `git flow feature` | List existing feature branches | -| `gflh` | `git flow hotfix` | List existing hotfix branches | -| `gflr` | `git flow release` | List existing release branches | -| `gflfs` | `git flow feature start` | Start a new feature: `gflfs <name>` | -| `gflhs` | `git flow hotfix start` | Start a new hotfix: `gflhs <version>` | -| `gflrs` | `git flow release start` | Start a new release: `gflrs <version>` | -| `gflff` | `git flow feature finish` | Finish feature: `gflff <name>` | -| `gflfp` | `git flow feature publish` | Publish feature: `gflfp <name>` | -| `gflhf` | `git flow hotfix finish` | Finish hotfix: `gflhf <version>` | -| `gflrf` | `git flow release finish` | Finish release: `gflrf <version>` | +| Alias | Command | Description | +| --------- | ----------------------------------------- | ---------------------------------------------- | +| `gcd` | `git checkout develop` | Check out develop branch | +| `gch` | `git checkout hotfix` | Check out hotfix branch | +| `gcr` | `git checkout release` | Check out release branch | +| `gfl` | `git flow` | Git-Flow command | +| `gflf` | `git flow feature` | List existing feature branches | +| `gflff` | `git flow feature finish` | Finish feature: `gflff <name>` | +| `gflffc` | `gflff ${$(git_current_branch)#feature/}` | Finish current feature | +| `gflfp` | `git flow feature publish` | Publish feature: `gflfp <name>` | +| `gflfpc` | `gflfp ${$(git_current_branch)#feature/}` | Publish current feature | +| `gflfpll` | `git flow feature pull` | Pull remote feature: `gflfpll <remote> <name>` | +| `gflfs` | `git flow feature start` | Start a new feature: `gflfs <name>` | +| `gflh` | `git flow hotfix` | List existing hotfix branches | +| `gflhf` | `git flow hotfix finish` | Finish hotfix: `gflhf <version>` | +| `gflhfc` | `gflhf ${$(git_current_branch)#hotfix/}` | Finish current hotfix | +| `gflhp` | `git flow hotfix publish` | Publish hostfix: `gflhp <version>` | +| `gflhpc` | `gflhp ${$(git_current_branch)#hotfix/}` | Finish current hotfix | +| `gflhs` | `git flow hotfix start` | Start a new hotfix: `gflhs <version>` | +| `gfli` | `git flow init` | Initialize git-flow repository | +| `gflr` | `git flow release` | List existing release branches | +| `gflrf` | `git flow release finish` | Finish release: `gflrf <version>` | +| `gflrfc` | `gflrf ${$(git_current_branch)#release/}` | Finish current release | +| `gflrp` | `git flow release publish` | Publish release: `gflrp <version>` | +| `gflrpc` | `gflrp ${$(git_current_branch)#release/}` | Publish current release | +| `gflrs` | `git flow release start` | Start a new release: `gflrs <version>` | [More information about `git-flow` commands](https://github.com/nvie/gitflow/wiki/Command-Line-Arguments). diff --git a/plugins/git-flow/_git-flow b/plugins/git-flow/_git-flow new file mode 100644 index 000000000..eab712707 --- /dev/null +++ b/plugins/git-flow/_git-flow @@ -0,0 +1,327 @@ +#compdef git-flow + +_git-flow () { + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'init:Initialize a new git repo with support for the branching model.' + 'feature:Manage your feature branches.' + 'release:Manage your release branches.' + 'hotfix:Manage your hotfix branches.' + 'support:Manage your support branches.' + 'version:Shows version information.' + ) + _describe -t commands 'git flow' subcommands + ;; + + (options) + case $line[1] in + + (init) + _arguments \ + -f'[Force setting of gitflow branches, even if already configured]' + ;; + + (version) + ;; + + (hotfix) + __git-flow-hotfix + ;; + + (release) + __git-flow-release + ;; + + (feature) + __git-flow-feature + ;; + esac + ;; + esac +} + +__git-flow-release () { + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new release branch.' + 'finish:Finish a release branch.' + 'list:List all your release branches. (Alias to `git flow release`)' + 'publish: public' + 'track: track' + ) + _describe -t commands 'git flow release' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':version:__git_flow_version_list' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -s'[Sign the release tag cryptographically]'\ + -u'[Use the given GPG-key for the digital signature (implies -s)]'\ + -m'[Use the given tag message]'\ + -p'[Push to $ORIGIN after performing finish]'\ + -k'[Keep branch after performing finish]'\ + -n"[Don't tag this release]"\ + ':version:__git_flow_version_list' + ;; + + (publish) + _arguments \ + ':version:__git_flow_version_list'\ + ;; + + (track) + _arguments \ + ':version:__git_flow_version_list'\ + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git-flow-hotfix () { + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new hotfix branch.' + 'finish:Finish a hotfix branch.' + 'list:List all your hotfix branches. (Alias to `git flow hotfix`)' + ) + _describe -t commands 'git flow hotfix' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':hotfix:__git_flow_version_list'\ + ':branch-name:__git_branch_names' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -s'[Sign the release tag cryptographically]'\ + -u'[Use the given GPG-key for the digital signature (implies -s)]'\ + -m'[Use the given tag message]'\ + -p'[Push to $ORIGIN after performing finish]'\ + -k'[Keep branch after performing finish]'\ + -n"[Don't tag this release]"\ + ':hotfix:__git_flow_hotfix_list' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git-flow-feature () { + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new feature branch.' + 'finish:Finish a feature branch.' + 'list:List all your feature branches. (Alias to `git flow feature`)' + 'publish: publish' + 'track: track' + 'diff: diff' + 'rebase: rebase' + 'checkout: checkout' + 'pull: pull' + ) + _describe -t commands 'git flow feature' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':feature:__git_flow_feature_list'\ + ':branch-name:__git_branch_names' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -r'[Rebase instead of merge]'\ + -k'[Keep branch after performing finish]'\ + ':feature:__git_flow_feature_list' + ;; + + (publish) + _arguments \ + ':feature:__git_flow_feature_list'\ + ;; + + (track) + _arguments \ + ':feature:__git_flow_feature_list'\ + ;; + + (diff) + _arguments \ + ':branch:__git_flow_feature_list'\ + ;; + + (rebase) + _arguments \ + -i'[Do an interactive rebase]' \ + ':branch:__git_flow_feature_list' + ;; + + (checkout) + _arguments \ + ':branch:__git_flow_feature_list'\ + ;; + + (pull) + _arguments \ + ':remote:__git_remotes'\ + ':branch:__git_flow_feature_list' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git_flow_version_list () { + local expl + declare -a versions + + versions=(${${(f)"$(_call_program versions git flow release list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted versions expl 'version' compadd $versions +} + +__git_flow_feature_list () { + local expl + declare -a features + + features=(${${(f)"$(_call_program features git flow feature list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted features expl 'feature' compadd $features +} + +__git_remotes () { + local expl gitdir remotes + + gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) + __git_command_successful || return + + remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]}) + __git_command_successful || return + + # TODO: Should combine the two instead of either or. + if (( $#remotes > 0 )); then + _wanted remotes expl remote compadd $* - $remotes + else + _wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*" + fi +} + +__git_flow_hotfix_list () { + local expl + declare -a hotfixes + + hotfixes=(${${(f)"$(_call_program hotfixes git flow hotfix list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted hotfixes expl 'hotfix' compadd $hotfixes +} + +__git_branch_names () { + local expl + declare -a branch_names + + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) + __git_command_successful || return + + _wanted branch-names expl branch-name compadd $* - $branch_names +} + +__git_command_successful () { + if (( ${#pipestatus:#0} > 0 )); then + _message 'not a git repository' + return 1 + fi + return 0 +} + +zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' + +# Detect if script is sourced or called via autoload +[[ "$ZSH_EVAL_CONTEXT" != *:file ]] || return + +_git-flow "$@" diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh index 8f0714b16..f842de998 100644 --- a/plugins/git-flow/git-flow.plugin.zsh +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -1,369 +1,32 @@ -#!zsh -# -# Installation -# ------------ -# -# To achieve git-flow completion nirvana: -# -# 0. Update your zsh's git-completion module to the newest version. -# From here. https://raw.githubusercontent.com/zsh-users/zsh/master/Completion/Unix/Command/_git -# -# 1. Install this file. Either: -# -# a. Place it in your .zshrc: -# -# b. Or, copy it somewhere (e.g. ~/.git-flow-completion.zsh) and put the following line in -# your .zshrc: -# -# source ~/.git-flow-completion.zsh -# -# c. Or, use this file as an oh-my-zsh plugin. -# - -#Alias -alias gfl='git flow' -alias gfli='git flow init' +# Aliases alias gcd='git checkout $(git config gitflow.branch.develop)' alias gch='git checkout $(git config gitflow.prefix.hotfix)' alias gcr='git checkout $(git config gitflow.prefix.release)' +alias gfl='git flow' alias gflf='git flow feature' -alias gflh='git flow hotfix' -alias gflr='git flow release' -alias gflfs='git flow feature start' -alias gflhs='git flow hotfix start' -alias gflrs='git flow release start' alias gflff='git flow feature finish' +alias gflffc='git flow feature finish ${$(git_current_branch)#feature/}' alias gflfp='git flow feature publish' +alias gflfpc='git flow feature publish ${$(git_current_branch)#feature/}' +alias gflfpll='git flow feature pull' +alias gflfs='git flow feature start' +alias gflh='git flow hotfix' alias gflhf='git flow hotfix finish' -alias gflrf='git flow release finish' +alias gflhfc='git flow hotfix finish ${$(git_current_branch)#hotfix/}' alias gflhp='git flow hotfix publish' +alias gflhpc='git flow hotfix publish ${$(git_current_branch)#hotfix/}' +alias gflhs='git flow hotfix start' +alias gfli='git flow init' +alias gflr='git flow release' +alias gflrf='git flow release finish' +alias gflrfc='git flow release finish ${$(git_current_branch)#release/}' alias gflrp='git flow release publish' -alias gflfpll='git flow feature pull' - -_git-flow () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'init:Initialize a new git repo with support for the branching model.' - 'feature:Manage your feature branches.' - 'release:Manage your release branches.' - 'hotfix:Manage your hotfix branches.' - 'support:Manage your support branches.' - 'version:Shows version information.' - ) - _describe -t commands 'git flow' subcommands - ;; - - (options) - case $line[1] in - - (init) - _arguments \ - -f'[Force setting of gitflow branches, even if already configured]' - ;; - - (version) - ;; - - (hotfix) - __git-flow-hotfix - ;; - - (release) - __git-flow-release - ;; - - (feature) - __git-flow-feature - ;; - esac - ;; - esac -} - -__git-flow-release () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new release branch.' - 'finish:Finish a release branch.' - 'list:List all your release branches. (Alias to `git flow release`)' - 'publish: public' - 'track: track' - ) - _describe -t commands 'git flow release' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':version:__git_flow_version_list' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -s'[Sign the release tag cryptographically]'\ - -u'[Use the given GPG-key for the digital signature (implies -s)]'\ - -m'[Use the given tag message]'\ - -p'[Push to $ORIGIN after performing finish]'\ - -k'[Keep branch after performing finish]'\ - -n"[Don't tag this release]"\ - ':version:__git_flow_version_list' - ;; - - (publish) - _arguments \ - ':version:__git_flow_version_list'\ - ;; - - (track) - _arguments \ - ':version:__git_flow_version_list'\ - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-flow-hotfix () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new hotfix branch.' - 'finish:Finish a hotfix branch.' - 'list:List all your hotfix branches. (Alias to `git flow hotfix`)' - ) - _describe -t commands 'git flow hotfix' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':hotfix:__git_flow_version_list'\ - ':branch-name:__git_branch_names' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -s'[Sign the release tag cryptographically]'\ - -u'[Use the given GPG-key for the digital signature (implies -s)]'\ - -m'[Use the given tag message]'\ - -p'[Push to $ORIGIN after performing finish]'\ - -k'[Keep branch after performing finish]'\ - -n"[Don't tag this release]"\ - ':hotfix:__git_flow_hotfix_list' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-flow-feature () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new feature branch.' - 'finish:Finish a feature branch.' - 'list:List all your feature branches. (Alias to `git flow feature`)' - 'publish: publish' - 'track: track' - 'diff: diff' - 'rebase: rebase' - 'checkout: checkout' - 'pull: pull' - ) - _describe -t commands 'git flow feature' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':feature:__git_flow_feature_list'\ - ':branch-name:__git_branch_names' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -r'[Rebase instead of merge]'\ - -k'[Keep branch after performing finish]'\ - ':feature:__git_flow_feature_list' - ;; - - (publish) - _arguments \ - ':feature:__git_flow_feature_list'\ - ;; - - (track) - _arguments \ - ':feature:__git_flow_feature_list'\ - ;; - - (diff) - _arguments \ - ':branch:__git_flow_feature_list'\ - ;; - - (rebase) - _arguments \ - -i'[Do an interactive rebase]' \ - ':branch:__git_flow_feature_list' - ;; - - (checkout) - _arguments \ - ':branch:__git_flow_feature_list'\ - ;; - - (pull) - _arguments \ - ':remote:__git_remotes'\ - ':branch:__git_flow_feature_list' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git_flow_version_list () -{ - local expl - declare -a versions - - versions=(${${(f)"$(_call_program versions git flow release list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted versions expl 'version' compadd $versions -} - -__git_flow_feature_list () -{ - local expl - declare -a features - - features=(${${(f)"$(_call_program features git flow feature list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted features expl 'feature' compadd $features -} - -__git_remotes () { - local expl gitdir remotes - - gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) - __git_command_successful || return - - remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]}) - __git_command_successful || return - - # TODO: Should combine the two instead of either or. - if (( $#remotes > 0 )); then - _wanted remotes expl remote compadd $* - $remotes - else - _wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*" - fi -} - -__git_flow_hotfix_list () -{ - local expl - declare -a hotfixes - - hotfixes=(${${(f)"$(_call_program hotfixes git flow hotfix list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted hotfixes expl 'hotfix' compadd $hotfixes -} - -__git_branch_names () { - local expl - declare -a branch_names - - branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) - __git_command_successful || return - - _wanted branch-names expl branch-name compadd $* - $branch_names -} - -__git_command_successful () { - if (( ${#pipestatus:#0} > 0 )); then - _message 'not a git repository' - return 1 - fi - return 0 -} +alias gflrpc='git flow release publish ${$(git_current_branch)#release/}' +alias gflrs='git flow release start' -zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' +# Source completion script +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" +source "${0:A:h}/_git-flow" diff --git a/plugins/git-prompt/README.md b/plugins/git-prompt/README.md index c6610fa94..83d365c84 100644 --- a/plugins/git-prompt/README.md +++ b/plugins/git-prompt/README.md @@ -11,7 +11,8 @@ plugins=(... git-prompt) See the [original repository](https://github.com/olivierverdier/zsh-git-prompt). -## Prerequisites +## Requirements + This plugin uses `python`, so your host needs to have it installed ## Examples @@ -30,7 +31,7 @@ The prompt may look like the following: By default, the general appearance of the prompt is: -``` +```text (<branch><branch tracking>|<local status>) ``` @@ -58,9 +59,8 @@ The symbols are as follows: ## Customisation - Set the variable `ZSH_THEME_GIT_PROMPT_CACHE` to any value in order to enable caching. -- You may also change a number of variables (whose name start with `ZSH_THEME_GIT_PROMPT_`) +- You may also change a number of variables (whose name start with `ZSH_THEME_GIT_PROMPT_`) to change the appearance of the prompt. Take a look at the bottom of the [plugin file](git-prompt.plugin.zsh)` to see what variables are available. - **Enjoy!** diff --git a/plugins/git-prompt/git-prompt.plugin.zsh b/plugins/git-prompt/git-prompt.plugin.zsh index a4c952471..c86c1f59b 100644 --- a/plugins/git-prompt/git-prompt.plugin.zsh +++ b/plugins/git-prompt/git-prompt.plugin.zsh @@ -1,3 +1,8 @@ +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + __GIT_PROMPT_DIR="${0:A:h}" ## Hook function definitions diff --git a/plugins/git-prompt/gitstatus.py b/plugins/git-prompt/gitstatus.py index 786274a71..4dea8000f 100644 --- a/plugins/git-prompt/gitstatus.py +++ b/plugins/git-prompt/gitstatus.py @@ -81,7 +81,7 @@ for st in status: staged.append(st) stashed = get_stash() -if not changed and not staged and not conflicts and not untracked and not stashed: +if not changed and not staged and not conflicts and not untracked: clean = 1 else: clean = 0 diff --git a/plugins/gitfast/gitfast.plugin.zsh b/plugins/gitfast/gitfast.plugin.zsh index 7b6b67e92..a6db0c6bd 100644 --- a/plugins/gitfast/gitfast.plugin.zsh +++ b/plugins/gitfast/gitfast.plugin.zsh @@ -1,3 +1,8 @@ +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + source "${0:A:h}/git-prompt.sh" function git_prompt_info() { diff --git a/plugins/gnu-utils/gnu-utils.plugin.zsh b/plugins/gnu-utils/gnu-utils.plugin.zsh index 539e7fe4d..6ede9e3a7 100644 --- a/plugins/gnu-utils/gnu-utils.plugin.zsh +++ b/plugins/gnu-utils/gnu-utils.plugin.zsh @@ -11,11 +11,8 @@ if [[ ! -x "${commands[gwhoami]}" ]]; then fi __gnu_utils() { - emulate -L zsh - local gcmds + local -a gcmds local gcmd - local cmd - local prefix # coreutils gcmds=('g[' 'gbase64' 'gbasename' 'gcat' 'gchcon' 'gchgrp' 'gchmod' @@ -43,41 +40,21 @@ __gnu_utils() { (( ${+commands[$gcmd]} )) || continue # This method allows for builtin commands to be primary but it's - # lost if hash -r or rehash -f is executed. Thus, those two - # functions have to be wrapped. + # lost if hash -r or rehash is executed, or if $PATH is updated. + # Thus, a preexec hook is needed, which will only run if whoami + # is not already rehashed. # hash ${gcmd[2,-1]}=${commands[$gcmd]} - - # This method generates wrapper functions. - # It will override shell builtins. - # - # eval "function $gcmd[2,-1]() { \"${prefix}/${gcmd//"["/"\\["}\" \"\$@\"; }" - - # This method is inflexible since the aliases are at risk of being - # overridden resulting in the BSD coreutils being called. - # - # alias "$gcmd[2,-1]"="${prefix}/${gcmd//"["/"\\["}" done return 0 } -__gnu_utils - -function hash() { - if [[ "$*" =~ "-(r|f)" ]]; then - builtin hash "$@" - __gnu_utils - else - builtin hash "$@" - fi -} -function rehash() { - if [[ "$*" =~ "-f" ]]; then - builtin rehash "$@" - __gnu_utils - else - builtin rehash "$@" - fi +__gnu_utils_preexec() { + # Run __gnu_utils when the whoami command is not already rehashed. + # This acts as a sign that we need to rehash all GNU utils. + [[ "${commands[whoami]}" = "${commands[gwhoami]}" ]] || __gnu_utils } +autoload -Uz add-zsh-hook +add-zsh-hook preexec __gnu_utils_preexec diff --git a/plugins/golang/README.md b/plugins/golang/README.md index af2c4dff9..979c89010 100644 --- a/plugins/golang/README.md +++ b/plugins/golang/README.md @@ -11,22 +11,27 @@ plugins=(... golang) ## Aliases -| Alias | Command | Description | -| ------- | ----------------------- | ------------------------------------------------------------- | -| gob | `go build` | Build your code | -| goc | `go clean` | Removes object files from package source directories | -| god | `go doc` | Prints documentation comments | -| gof | `go fmt` | Gofmt formats (aligns and indents) Go programs. | -| gofa | `go fmt ./...` | Run go fmt for all packages in current directory, recursively | -| gog | `go get` | Downloads packages and then installs them to $GOPATH | -| gog | `go get ./...` | Installs all dependencies in current directory, recursively | -| goi | `go install` | Compiles and installs packages to $GOPATH | -| gol | `go list` | Lists Go packages | -| gom | `go mod` | Access to operations on modules | -| gop | `cd $GOPATH` | Takes you to $GOPATH | -| gopb | `cd $GOPATH/bin` | Takes you to $GOPATH/bin | -| gops | `cd $GOPATH/src` | Takes you to $GOPATH/src | -| gor | `go run` | Compiles and runs your code | -| got | `go test` | Runs tests | -| gota | `go test ./...` | Runs tests in all subdirectories | -| gov | `go vet` | Vet examines Go source code and reports suspicious constructs | +| Alias | Command | Description | +| ------ | ----------------- | ------------------------------------------------------------- | +| gob | `go build` | Build your code | +| goc | `go clean` | Removes object files from package source directories | +| god | `go doc` | Prints documentation comments | +| gof | `go fmt` | Gofmt formats (aligns and indents) Go programs. | +| gofa | `go fmt ./...` | Run go fmt for all packages in current directory, recursively | +| gofx | `go fix` | Update packages to use a new API | +| gog | `go get` | Downloads packages and then installs them to $GOPATH | +| gog | `go get ./...` | Installs all dependencies in current directory, recursively | +| goi | `go install` | Compiles and installs packages to $GOPATH | +| gol | `go list` | Lists Go packages | +| gom | `go mod` | Access to operations on modules | +| gopa | `cd $GOPATH` | Takes you to `$GOPATH` | +| gopb | `cd $GOPATH/bin` | Takes you to `$GOPATH/bin` | +| gops | `cd $GOPATH/src` | Takes you to `$GOPATH/src` | +| gor | `go run` | Compiles and runs your code | +| got | `go test` | Runs tests | +| gota | `go test ./...` | Runs tests in all subdirectories | +| goto | `go tool` | Prints all the available tools | +| gotoc | `go tool compile` | Generates object file | +| gotod | `go tool dist` | Utility to bootstrap, build and test go runtime | +| gotofx | `go tool fix` | Fixes an application to use newer features | +| gov | `go vet` | Vet examines Go source code and reports suspicious constructs | diff --git a/plugins/golang/_golang b/plugins/golang/_golang new file mode 100644 index 000000000..01b976b12 --- /dev/null +++ b/plugins/golang/_golang @@ -0,0 +1,249 @@ +#compdef go + +__go_packages() { + local gopaths + declare -a gopaths + gopaths=("${(s/:/)$(go env GOPATH)}") + gopaths+=("$(go env GOROOT)") + for p in $gopaths; do + _path_files -W "$p/src" -/ + done +} + +__go_identifiers() { + local tmpl_path="${functions_source[$0]:h}/templates" + compadd $(godoc -templates "$tmpl_path" ${words[-2]} 2> /dev/null) +} + +_go() { + typeset -a commands build_flags + commands+=( + 'build[compile packages and dependencies]' + 'clean[remove object files]' + 'doc[run godoc on package sources]' + 'env[print Go environment information]' + 'fix[run go tool fix on packages]' + 'fmt[run gofmt on package sources]' + 'generate[generate Go files by processing source]' + 'get[download and install packages and dependencies]' + 'help[display help]' + 'install[compile and install packages and dependencies]' + 'list[list packages]' + 'mod[modules maintenance]' + 'run[compile and run Go program]' + 'test[test packages]' + 'tool[run specified go tool]' + 'version[print Go version]' + 'vet[run go tool vet on packages]' + ) + if (( CURRENT == 2 )); then + # explain go commands + _values 'go tool commands' ${commands[@]} + return + fi + build_flags=( + '-a[force reinstallation of packages that are already up to date]' + '-n[print the commands but do not run them]' + '-p[number of parallel builds]:number' + '-race[enable data race detection]' + '-x[print the commands]' + '-work[print temporary directory name and keep it]' + '-ccflags[flags for 5c/6c/8c]:flags' + '-gcflags[flags for 5g/6g/8g]:flags' + '-ldflags[flags for 5l/6l/8l]:flags' + '-gccgoflags[flags for gccgo]:flags' + '-compiler[name of compiler to use]:name' + '-installsuffix[suffix to add to package directory]:suffix' + '-tags[list of build tags to consider satisfied]:tags' + ) + + case ${words[2]} in + doc) + _arguments -s -w \ + "-c[symbol matching honors case (paths not affected)]" \ + "-cmd[show symbols with package docs even if package is a command]" \ + "-u[show unexported symbols as well as exported]" \ + "2:importpaths:__go_packages" \ + ":next identifiers:__go_identifiers" + ;; + clean) + _arguments -s -w \ + "-i[remove the corresponding installed archive or binary (what 'go install' would create)]" \ + "-n[print the remove commands it would execute, but not run them]" \ + "-r[apply recursively to all the dependencies of the packages named by the import paths]" \ + "-x[print remove commands as it executes them]" \ + "*:importpaths:__go_packages" + ;; + fix|fmt|vet) + _alternative ':importpaths:__go_packages' ':files:_path_files -g "*.go"' + ;; + install) + _arguments -s -w : ${build_flags[@]} \ + "-v[show package names]" \ + '*:importpaths:__go_packages' + ;; + get) + _arguments -s -w : \ + ${build_flags[@]} + ;; + build) + _arguments -s -w : \ + ${build_flags[@]} \ + "-v[show package names]" \ + "-o[output file]:file:_files" \ + "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }" + ;; + test) + _arguments -s -w : \ + ${build_flags[@]} \ + "-c[do not run, compile the test binary]" \ + "-i[do not run, install dependencies]" \ + "-v[print test output]" \ + "-x[print the commands]" \ + "-short[use short mode]" \ + "-parallel[number of parallel tests]:number" \ + "-cpu[values of GOMAXPROCS to use]:number list" \ + "-run[run tests and examples matching regexp]:regexp" \ + "-bench[run benchmarks matching regexp]:regexp" \ + "-benchmem[print memory allocation stats]" \ + "-benchtime[run each benchmark until taking this long]:duration" \ + "-blockprofile[write goroutine blocking profile to file]:file" \ + "-blockprofilerate[set sampling rate of goroutine blocking profile]:number" \ + "-timeout[kill test after that duration]:duration" \ + "-cpuprofile[write CPU profile to file]:file:_files" \ + "-memprofile[write heap profile to file]:file:_files" \ + "-memprofilerate[set heap profiling rate]:number" \ + "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }" + ;; + list) + _arguments -s -w : \ + "-f[alternative format for the list]:format" \ + "-json[print data in json format]" \ + "-compiled[set CompiledGoFiles to the Go source files presented to the compiler]" \ + "-deps[iterate over not just the named packages but also all their dependencies]" \ + "-e[change the handling of erroneous packages]" \ + "-export[set the Export field to the name of a file containing up-to-date export information for the given package]" \ + "-find[identify the named packages but not resolve their dependencies]" \ + "-test[report not only the named packages but also their test binaries]" \ + "-m[list modules instead of packages]" \ + "-u[adds information about available upgrades]" \ + "-versions[set the Module's Versions field to a list of all known versions of that module]:number" \ + "*:importpaths:__go_packages" + ;; + mod) + local -a mod_commands + mod_commands+=( + 'download[download modules to local cache]' + 'edit[edit go.mod from tools or scripts]' + 'graph[print module requirement graph]' + 'init[initialize new module in current directory]' + 'tidy[add missing and remove unused modules]' + 'vendor[make vendored copy of dependencies]' + 'verify[verify dependencies have expected content]' + 'why[explain why packages or modules are needed]' + ) + + if (( CURRENT == 3 )); then + _values 'go mod commands' ${mod_commands[@]} "help[display help]" + return + fi + + case ${words[3]} in + help) + _values 'go mod commands' ${mod_commands[@]} + ;; + download) + _arguments -s -w : \ + "-json[print a sequence of JSON objects standard output]" \ + "*:flags" + ;; + edit) + _arguments -s -w : \ + "-fmt[reformat the go.mod file]" \ + "-module[change the module's path]" \ + "-replace[=old{@v}=new{@v} add a replacement of the given module path and version pair]:name" \ + "-dropreplace[=old{@v}=new{@v} drop a replacement of the given module path and version pair]:name" \ + "-go[={version} set the expected Go language version]:number" \ + "-print[print the final go.mod in its text format]" \ + "-json[print the final go.mod file in JSON format]" \ + "*:flags" + ;; + graph) + ;; + init) + ;; + tidy) + _arguments -s -w : \ + "-v[print information about removed modules]" \ + "*:flags" + ;; + vendor) + _arguments -s -w : \ + "-v[print the names of vendored]" \ + "*:flags" + ;; + verify) + ;; + why) + _arguments -s -w : \ + "-m[treats the arguments as a list of modules and finds a path to any package in each of the modules]" \ + "-vendor[exclude tests of dependencies]" \ + "*:importpaths:__go_packages" + ;; + esac + ;; + help) + _values "${commands[@]}" \ + 'environment[show Go environment variables available]' \ + 'gopath[GOPATH environment variable]' \ + 'packages[description of package lists]' \ + 'remote[remote import path syntax]' \ + 'testflag[description of testing flags]' \ + 'testfunc[description of testing functions]' + ;; + run) + _arguments -s -w : \ + ${build_flags[@]} \ + '*:file:_files -g "*.go"' + ;; + tool) + if (( CURRENT == 3 )); then + _values "go tool" $(go tool) + return + fi + case ${words[3]} in + [568]g) + _arguments -s -w : \ + '-I[search for packages in DIR]:includes:_path_files -/' \ + '-L[show full path in file:line prints]' \ + '-S[print the assembly language]' \ + '-V[print the compiler version]' \ + '-e[no limit on number of errors printed]' \ + '-h[panic on an error]' \ + '-l[disable inlining]' \ + '-m[print optimization decisions]' \ + '-o[file specify output file]:file' \ + '-p[assumed import path for this code]:importpath' \ + '-u[disable package unsafe]' \ + "*:file:_files -g '*.go'" + ;; + [568]l) + local O=${words[3]%l} + _arguments -s -w : \ + '-o[file specify output file]:file' \ + '-L[search for packages in DIR]:includes:_path_files -/' \ + "*:file:_files -g '*.[ao$O]'" + ;; + dist) + _values "dist tool" banner bootstrap clean env install version + ;; + *) + # use files by default + _files + ;; + esac + ;; + esac +} + +_go "$@" diff --git a/plugins/golang/golang.plugin.zsh b/plugins/golang/golang.plugin.zsh index fce663fd6..4dafecd86 100644 --- a/plugins/golang/golang.plugin.zsh +++ b/plugins/golang/golang.plugin.zsh @@ -1,276 +1,34 @@ -# install in /etc/zsh/zshrc or your personal .zshrc +## completion +compctl -g "*.go" gofmt # standard go tools +compctl -g "*.go" gccgo # gccgo # gc -prefixes=(5 6 8) -for p in $prefixes; do - compctl -g "*.${p}" ${p}l - compctl -g "*.go" ${p}g +for p in 5 6 8; do + compctl -g "*.${p}" ${p}l + compctl -g "*.go" ${p}g done +unset p -# standard go tools -compctl -g "*.go" gofmt - -# gccgo -compctl -g "*.go" gccgo - -# go tool -__go_tool_complete() { - typeset -a commands build_flags - commands+=( - 'build[compile packages and dependencies]' - 'clean[remove object files]' - 'doc[run godoc on package sources]' - 'env[print Go environment information]' - 'fix[run go tool fix on packages]' - 'fmt[run gofmt on package sources]' - 'generate[generate Go files by processing source]' - 'get[download and install packages and dependencies]' - 'help[display help]' - 'install[compile and install packages and dependencies]' - 'list[list packages]' - 'mod[modules maintenance]' - 'run[compile and run Go program]' - 'test[test packages]' - 'tool[run specified go tool]' - 'version[print Go version]' - 'vet[run go tool vet on packages]' - ) - if (( CURRENT == 2 )); then - # explain go commands - _values 'go tool commands' ${commands[@]} - return - fi - build_flags=( - '-a[force reinstallation of packages that are already up to date]' - '-n[print the commands but do not run them]' - '-p[number of parallel builds]:number' - '-race[enable data race detection]' - '-x[print the commands]' - '-work[print temporary directory name and keep it]' - '-ccflags[flags for 5c/6c/8c]:flags' - '-gcflags[flags for 5g/6g/8g]:flags' - '-ldflags[flags for 5l/6l/8l]:flags' - '-gccgoflags[flags for gccgo]:flags' - '-compiler[name of compiler to use]:name' - '-installsuffix[suffix to add to package directory]:suffix' - '-tags[list of build tags to consider satisfied]:tags' - ) - __go_packages() { - local gopaths - declare -a gopaths - gopaths=("${(s/:/)$(go env GOPATH)}") - gopaths+=("$(go env GOROOT)") - for p in $gopaths; do - _path_files -W "$p/src" -/ - done - } - __go_identifiers() { - compadd $(godoc -templates $ZSH/plugins/golang/templates ${words[-2]} 2> /dev/null) - } - case ${words[2]} in - doc) - _arguments -s -w \ - "-c[symbol matching honors case (paths not affected)]" \ - "-cmd[show symbols with package docs even if package is a command]" \ - "-u[show unexported symbols as well as exported]" \ - "2:importpaths:__go_packages" \ - ":next identifiers:__go_identifiers" - ;; - clean) - _arguments -s -w \ - "-i[remove the corresponding installed archive or binary (what 'go install' would create)]" \ - "-n[print the remove commands it would execute, but not run them]" \ - "-r[apply recursively to all the dependencies of the packages named by the import paths]" \ - "-x[print remove commands as it executes them]" \ - "*:importpaths:__go_packages" - ;; - fix|fmt|vet) - _alternative ':importpaths:__go_packages' ':files:_path_files -g "*.go"' - ;; - install) - _arguments -s -w : ${build_flags[@]} \ - "-v[show package names]" \ - '*:importpaths:__go_packages' - ;; - get) - _arguments -s -w : \ - ${build_flags[@]} - ;; - build) - _arguments -s -w : \ - ${build_flags[@]} \ - "-v[show package names]" \ - "-o[output file]:file:_files" \ - "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }" - ;; - test) - _arguments -s -w : \ - ${build_flags[@]} \ - "-c[do not run, compile the test binary]" \ - "-i[do not run, install dependencies]" \ - "-v[print test output]" \ - "-x[print the commands]" \ - "-short[use short mode]" \ - "-parallel[number of parallel tests]:number" \ - "-cpu[values of GOMAXPROCS to use]:number list" \ - "-run[run tests and examples matching regexp]:regexp" \ - "-bench[run benchmarks matching regexp]:regexp" \ - "-benchmem[print memory allocation stats]" \ - "-benchtime[run each benchmark until taking this long]:duration" \ - "-blockprofile[write goroutine blocking profile to file]:file" \ - "-blockprofilerate[set sampling rate of goroutine blocking profile]:number" \ - "-timeout[kill test after that duration]:duration" \ - "-cpuprofile[write CPU profile to file]:file:_files" \ - "-memprofile[write heap profile to file]:file:_files" \ - "-memprofilerate[set heap profiling rate]:number" \ - "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }" - ;; - list) - _arguments -s -w : \ - "-f[alternative format for the list]:format" \ - "-json[print data in json format]" \ - "-compiled[set CompiledGoFiles to the Go source files presented to the compiler]" \ - "-deps[iterate over not just the named packages but also all their dependencies]" \ - "-e[change the handling of erroneous packages]" \ - "-export[set the Export field to the name of a file containing up-to-date export information for the given package]" \ - "-find[identify the named packages but not resolve their dependencies]" \ - "-test[report not only the named packages but also their test binaries]" \ - "-m[list modules instead of packages]" \ - "-u[adds information about available upgrades]" \ - "-versions[set the Module's Versions field to a list of all known versions of that module]:number" \ - "*:importpaths:__go_packages" - ;; - mod) - typeset -a mod_commands - mod_commands+=( - 'download[download modules to local cache]' - 'edit[edit go.mod from tools or scripts]' - 'graph[print module requirement graph]' - 'init[initialize new module in current directory]' - 'tidy[add missing and remove unused modules]' - 'vendor[make vendored copy of dependencies]' - 'verify[verify dependencies have expected content]' - 'why[explain why packages or modules are needed]' - ) - if (( CURRENT == 3 )); then - _values 'go mod commands' ${mod_commands[@]} "help[display help]" - return - fi - case ${words[3]} in - help) - _values 'go mod commands' ${mod_commands[@]} - ;; - download) - _arguments -s -w : \ - "-json[print a sequence of JSON objects standard output]" \ - "*:flags" - ;; - edit) - _arguments -s -w : \ - "-fmt[reformat the go.mod file]" \ - "-module[change the module's path]" \ - "-replace[=old{@v}=new{@v} add a replacement of the given module path and version pair]:name" \ - "-dropreplace[=old{@v}=new{@v} drop a replacement of the given module path and version pair]:name" \ - "-go[={version} set the expected Go language version]:number" \ - "-print[print the final go.mod in its text format]" \ - "-json[print the final go.mod file in JSON format]" \ - "*:flags" - ;; - graph) - ;; - init) - ;; - tidy) - _arguments -s -w : \ - "-v[print information about removed modules]" \ - "*:flags" - ;; - vendor) - _arguments -s -w : \ - "-v[print the names of vendored]" \ - "*:flags" - ;; - verify) - ;; - why) - _arguments -s -w : \ - "-m[treats the arguments as a list of modules and finds a path to any package in each of the modules]" \ - "-vendor[exclude tests of dependencies]" \ - "*:importpaths:__go_packages" - ;; - esac - ;; - help) - _values "${commands[@]}" \ - 'environment[show Go environment variables available]' \ - 'gopath[GOPATH environment variable]' \ - 'packages[description of package lists]' \ - 'remote[remote import path syntax]' \ - 'testflag[description of testing flags]' \ - 'testfunc[description of testing functions]' - ;; - run) - _arguments -s -w : \ - ${build_flags[@]} \ - '*:file:_files -g "*.go"' - ;; - tool) - if (( CURRENT == 3 )); then - _values "go tool" $(go tool) - return - fi - case ${words[3]} in - [568]g) - _arguments -s -w : \ - '-I[search for packages in DIR]:includes:_path_files -/' \ - '-L[show full path in file:line prints]' \ - '-S[print the assembly language]' \ - '-V[print the compiler version]' \ - '-e[no limit on number of errors printed]' \ - '-h[panic on an error]' \ - '-l[disable inlining]' \ - '-m[print optimization decisions]' \ - '-o[file specify output file]:file' \ - '-p[assumed import path for this code]:importpath' \ - '-u[disable package unsafe]' \ - "*:file:_files -g '*.go'" - ;; - [568]l) - local O=${words[3]%l} - _arguments -s -w : \ - '-o[file specify output file]:file' \ - '-L[search for packages in DIR]:includes:_path_files -/' \ - "*:file:_files -g '*.[ao$O]'" - ;; - dist) - _values "dist tool" banner bootstrap clean env install version - ;; - *) - # use files by default - _files - ;; - esac - ;; - esac -} - -compdef __go_tool_complete go - -# aliases: go<~> +## aliases alias gob='go build' alias goc='go clean' alias god='go doc' alias gof='go fmt' alias gofa='go fmt ./...' +alias gofx='go fix' alias gog='go get' alias goga='go get ./...' alias goi='go install' alias gol='go list' alias gom='go mod' -alias gop='cd $GOPATH' +alias gopa='cd $GOPATH' alias gopb='cd $GOPATH/bin' alias gops='cd $GOPATH/src' alias gor='go run' alias got='go test' alias gota='go test ./...' +alias goto='go tool' +alias gotoc='go tool compile' +alias gotod='go tool dist' +alias gotofx='go tool fix' alias gov='go vet' diff --git a/plugins/helm/helm.plugin.zsh b/plugins/helm/helm.plugin.zsh index 78499c15d..472c1c9dd 100644 --- a/plugins/helm/helm.plugin.zsh +++ b/plugins/helm/helm.plugin.zsh @@ -1,7 +1,22 @@ -# Autocompletion for helm. -# -# Copy from kubectl : https://github.com/pstadler +if (( ! $+commands[helm] )); then + return +fi + +# TODO: 2021-12-28: delete this block +# Remove old generated file +command rm -f "${ZSH_CACHE_DIR}/helm_completion" -if [ $commands[helm] ]; then - source <(helm completion zsh) +# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh +# Add completions folder in $ZSH_CACHE_DIR +command mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `helm`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_helm" ]]; then + declare -A _comps + autoload -Uz _helm + _comps[helm]=_helm fi + +helm completion zsh >| "$ZSH_CACHE_DIR/completions/_helm" &| diff --git a/plugins/history-substring-search/history-substring-search.plugin.zsh b/plugins/history-substring-search/history-substring-search.plugin.zsh index d2c749bc3..63f0bdd42 100644 --- a/plugins/history-substring-search/history-substring-search.plugin.zsh +++ b/plugins/history-substring-search/history-substring-search.plugin.zsh @@ -1,4 +1,8 @@ -0=${(%):-%N} +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + source ${0:A:h}/history-substring-search.zsh diff --git a/plugins/hitchhiker/hitchhiker.plugin.zsh b/plugins/hitchhiker/hitchhiker.plugin.zsh index aeafaf01e..0b1a30119 100644 --- a/plugins/hitchhiker/hitchhiker.plugin.zsh +++ b/plugins/hitchhiker/hitchhiker.plugin.zsh @@ -1,3 +1,8 @@ +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + HITCHHIKER_DIR="${0:h}/fortunes" # Aliases diff --git a/plugins/ipfs/_ipfs b/plugins/ipfs/_ipfs index 90c0a61c8..8771bc4ba 100644 --- a/plugins/ipfs/_ipfs +++ b/plugins/ipfs/_ipfs @@ -93,7 +93,8 @@ _ipfs_subcommand(){ (pin) _arguments \ '(-t --type)'{-t,--type}'[The type of pinned keys to list. Can be "direct", "indirect", "recursive", or "all". Default: all.]' \ - '(-q --quiet)'{-q,--quiet}'[Write just hashes of objects.]' + '(-q --quiet)'{-q,--quiet}'[Write just hashes of objects.]' \ + '(-s --stream)'{-s,--stream}'[Enable streaming of pins as they are discovered.]' ;; (p2p) _arguments '(-v --headers)'{-v,--headers}'[Print table headers (Protocol, Listen, Target).]' @@ -116,7 +117,14 @@ _ipfs_subcommand(){ ;; esac ;; - (get|query|findpeer) + (query|findpeer) + case $MAIN_SUBCOMMAND in + (dht) + _arguments '(-v --verbose)'{-v,--verbose}'[Print extra information.]' + ;; + esac + ;; + (get) case $MAIN_SUBCOMMAND in (dht) _arguments '(-v --verbose)'{-v,--verbose}'[Print extra information.]' @@ -158,22 +166,33 @@ _ipfs_subcommand(){ ;; esac ;; - (cmds|diff) + (cmds) case $MAIN_SUBCOMMAND in - (diag|object) + (diag) + _arguments '(-v --verbose)'{-v,--verbose}'[Print extra information.]' + ;; + esac + ;; + (diff) + case $MAIN_SUBCOMMAND in + (object) _arguments '(-v --verbose)'{-v,--verbose}'[Print extra information.]' ;; esac ;; (stat) case $MAIN_SUBCOMMAND in + (dag) + _arguments \ + '(-p --progress)'{-p,--progress}'[Return progressive data while reading through the DAG. Default: true.]' + ;; (object) _arguments '--human[Print sizes in human readable format (e.g., 1K 234M 2G).]' ;; (repo) _arguments \ - '--size-only[Only report RepoSize and StorageMax.]' \ - '--human[Print sizes in human readable format (e.g., 1K 234M 2G).]' + '(-s --size-only)'{-s,--size-only}'[Only report RepoSize and StorageMax.]' \ + '(-H --human)'{-H,--human}'[Print sizes in human readable format (e.g., 1K 234M 2G).]' ;; esac ;; @@ -186,7 +205,8 @@ _ipfs_subcommand(){ '--allow-offline[When offline, save the IPNS record to the the local datastore without broadcasting to the network instead of simply failing.]' \ '--ttl[Time duration this record should be cached for. Uses the same syntax as the lifetime option. (caution: experimental).]' \ '(-k --key)'{-k,--key}"[Name of the key to be used or a valid PeerID, as listed by 'ipfs key list -l'. Default: self.]" \ - '(-Q --quieter)'{-Q,--quieter}'[Write only final hash.]' + '(-Q --quieter)'{-Q,--quieter}'[Write only final hash.]' \ + '--ipns-base[Encoding used for keys: Can either be a multibase encoded CID or a base58btc encoded multihash. Takes {b58mh|base36|k|base32|b...}. Default: base36.]' ;; esac ;; @@ -254,7 +274,7 @@ _ipfs_subcommand(){ '(-p --peer)'{-p,--peer}'[Specify a peer to print bandwidth for.]' \ '(-t --proto)'{-t,--proto}'[Specify a protocol to print bandwidth for.]' \ '--poll[Print bandwidth at an interval.]' \ - '(-i --interval)'{-i,--interval}'[Time interval to wait between updating output, if 'poll' is true.]' + '(-i --interval)'{-i,--interval}"[Time interval to wait between updating output, if 'poll' is true.]" ;; esac ;; @@ -289,6 +309,7 @@ _ipfs_subcommand(){ _arguments \ '-f[Printf style format string. Default: %s.]' \ '-v[CID version to convert to.]' \ + '--codec[CID codec to convert to.]' \ '-b[Multibase to display CID in.]' ;; esac @@ -367,6 +388,45 @@ _ipfs_subcommand(){ ;; esac ;; + (export) + case $MAIN_SUBCOMMAND in + (dag) + _arguments \ + '(-p --progress)'{-p,--progress}'[Display progress on CLI. Defaults to true when STDERR is a TTY.]' + ;; + (key) + _arguments \ + '(-o --output)'{-o,--output}'[The path where the output should be stored.]' + ;; + esac + ;; + (import) + case $MAIN_SUBCOMMAND in + (dag) + _arguments \ + '--silent[No output.]' \ + '--pin-roots[Pin optional roots listed in the .car headers after importing. Default: true.]' + ;; + (key) + _arguments \ + '--ipns-base[Encoding used for keys: Can either be a multibase encoded CID or a base58btc encoded multihash. Takes {b58mh|base36|k|base32|b...}. Default: base36.]' + ;; + esac + ;; + (remote) + case $MAIN_SUBCOMMAND in + (pin) + local -a _pin_remote_arguments + _pin_remote_arguments=( + 'add:Pin object to remote pinning service.' + 'ls:List objects pinned to remote pinning service.' + 'rm:Remove pins from remote pinning service.' + 'service:Configure remote pinning services.' + ) + _ipfs_subcommand _pin_remote_arguments + ;; + esac + ;; esac ;; esac @@ -402,6 +462,8 @@ case $MAIN_SUBCOMMAND in '(--dereference-args)--dereference-args[Symlinks supplied in arguments are dereferenced.]' \ '(--stdin-name)--stdin-name[Assign a name if the file source is stdin.]' \ '(-H --hidden)'{-H,--hidden}'[Include files that are hidden. Only takes effect on recursive add.]' \ + '(--ignore)--ignore[A rule (.gitignore-stype) defining which file(s) should be ignored (variadic, experimental).]' \ + '(--ignore-rules-path)--ignore-rules-path[A path to a file with .gitignore-style ignore rules (experimental).]' \ '(-q --quiet)'{-q,--quiet}'[Write minimal output.]' \ '(-Q --quieter)'{-Q,--quieter}'[Write only final hash.]' \ '(--silent)--silent[Write no output.]' \ @@ -483,6 +545,7 @@ case $MAIN_SUBCOMMAND in (daemon) _arguments \ '--init[Initialize ipfs with default settings if not already initialized.]' \ + '--init-config[Path to existing configuration file to be loaded during --init.]' \ '--init-profile[Configuration profiles to apply for --init. See ipfs init --help for more.]' \ '--routing[Overrides the routing option. Default: default.]' \ '--mount[Mounts IPFS to the filesystem.]' \ @@ -501,9 +564,12 @@ case $MAIN_SUBCOMMAND in (dag) local -a _dag_arguments _dag_arguments=( + 'export:Streams the selected DAG as a .car stream on stdout.' 'get:Get a dag node from ipfs.' + 'import:Import the contents of .car files' 'put:Add a dag node to ipfs.' 'resolve:Resolve ipld block.' + 'stat:Gets stats for a DAG' ) _ipfs_subcommand _dag_arguments ;; @@ -564,21 +630,27 @@ case $MAIN_SUBCOMMAND in '(-l --compression-level)'{-l,--compression-level}'[The level of compression (1-9).]' ;; (id) - _arguments '(-f --format)'{-f,--format}'[Optional output format.]' + _arguments \ + '(-f --format)'{-f,--format}'[Optional output format.]' \ + '--peerid-base[Encoding used for peer IDs: Can either be a multibase encoded CID or a base58btc encoded multihash. Takes {b58mh|base36|k|base32|b...}. Default: b58mh.]' ;; (init) _arguments \ - '(-b --bits)'{-b,--bits}'[Number of bits to use in the generated RSA private key. Default: 2048.]' \ + '(-a --algorithm)'{-a, --algorithm}'[Cryptographic algorithm to use for key generation. Default: ed25519.]' \ + '(-b --bits)'{-b,--bits}'[Number of bits to use in the generated RSA private key.]' \ '(-e --empty-repo)'{-e,--empty-repo}"[Don't add and pin help files to the local storage.]" \ '(-p --profile)'{-p,--profile}"[Apply profile settings to config. Multiple profiles can be separated by ','.]" ;; (key) local -a _key_arguments _key_arguments=( + 'export:Export a keypair' 'gen:Create a new keypair' + 'import:Import a key and prints imported key id' 'list:List all local keypairs' 'rename:Rename a keypair' 'rm:Remove a keypair' + 'rotate:Rotates the ipfs identity.' ) _ipfs_subcommand _key_arguments ;; @@ -642,6 +714,7 @@ case $MAIN_SUBCOMMAND in _pin_arguments=( 'add:Pin objects to local storage.' 'ls:List objects pinned to local storage.' + 'remote:Pin (and unpin) objects to remote pinning service.' 'rm:Remove pinned objects from local storage.' 'update:Update a recursive pin' 'verify:Verify that recursive pins are complete.' @@ -684,6 +757,7 @@ case $MAIN_SUBCOMMAND in _stats_arguments=( 'bitswap:Show some diagnostic information on the bitswap agent.' 'bw:Print ipfs bandwidth information.' + "dht:Returns statistics about the node's DHT(s)" 'repo:Get stats for the currently used repo.' ) _ipfs_subcommand _stats_arguments diff --git a/plugins/lpass/README.md b/plugins/lpass/README.md new file mode 100644 index 000000000..d3923ea67 --- /dev/null +++ b/plugins/lpass/README.md @@ -0,0 +1,13 @@ +# lpass (LastPass CLI) + +This plugin adds completion for LastPass CLI [`lpass`](https://github.com/lastpass/lastpass-cli). + +To use it, add `lpass` to the plugins array in your zshrc file: + +```zsh +plugins=(... lpass) +``` + +Completion is taken from the `lpass` release [`1.3.3`](https://github.com/lastpass/lastpass-cli/releases/tag/v1.3.3). + +Updated on October 9th, 2020. diff --git a/plugins/lpass/_lpass b/plugins/lpass/_lpass new file mode 100644 index 000000000..e6193a22d --- /dev/null +++ b/plugins/lpass/_lpass @@ -0,0 +1,169 @@ +#compdef lpass + +_lpass() { + local cmd has_color has_sync has_interactive + if (( CURRENT > 2)); then + cmd=${words[2]} + # Set the context for the subcommand. + curcontext="${curcontext%:*:*}:lpass-$cmd" + # Narrow the range of words we are looking at to exclude `lpass' + (( CURRENT-- )) + shift words + # Run the completion for the subcommand + case "${cmd}" in + login) + _arguments : \ + '--trust[Cause subsequent logins to not require multifactor authentication.]' \ + '--plaintext-key[Save plaintext decryption key to the hard disk]' \ + '--force[Do not ask on saving plaintext key]' + has_color=1 + ;; + + logout) + _arguments : '--force[Force confirmation]' + has_color=1 + ;; + show) + _arguments : \ + '(-c --clip)'{-c,--clip}'[Copy output to clipboard]' \ + '(-x --expand-multi)'{-x,---expand-multi}'[Show the requested information from all of the matching sites]' \ + '(--all --username --password --url --notes --field= --id --name --attach=)'{--all,--username,--password,--url,--notes,--field=,--id,--name,--attach=}'[Output the specific field]' \ + '(--basic-regexp,--fixed-string)'{-G,--basic-regexp}'[Find a site by substring or regular expression]' \ + '--format=[Format output with printf-style placeholders]' + _lpass_complete_uniqenames + has_color=1 + has_sync=1 + ;; + + ls) + _arguments : \ + '(-l --long)'{-l,--long}'[Also list the last modification time and username]' \ + '-u[List username]' \ + '-m[List modification time]' \ + '--format=[Format output with printf-style placeholders]' + _lpass_complete_groups + has_color=1 + has_sync=1 + ;; + mv) + _lpass_complete_uniqenames + _lpass_complete_groups + has_color=1 + ;; + duplicate|rm) + _lpass_complete_uniqenames + has_color=1 + has_sync=1 + ;; + add) + _arguments : '(--username --password --url --notes --field=)'{--username,--password,--url,--notes,--field=}'[Add field]' + _lpass_complete_uniqenames + has_color=1 + has_sync=1 + has_interactive=1 + ;; + edit) + _arguments : '(--name --username --password --url --notes --field=)'{--name,--username,--password,--url,--notes,--field=}'[Update field]' + _lpass_complete_uniqenames + has_color=1 + has_sync=1 + has_interactive=1 + ;; + generate) + _arguments : \ + '(-c --clip)'{-c,--clip}'[Copy output to clipboard]' \ + '--username=[USERNAME]' \ + '--url=[URL]' \ + '--no-symbols[Do not use symbols]' + has_sync=1 + ;; + status) + _arguments : '(-q --quiet)'{-q,--quiet}'[Supress output to stdout]' + has_color=1 + ;; + sync) + _arguments : '(-b --background)'{-b,--background}'[Run sync in background]' + has_color=1 + ;; + export) + _arguments : '--fields=[Field list]' + has_color=1 + has_sync=1 + ;; + import) + if ((CURRENT < 3)); then + _files + fi + ;; + esac + + if [ -n "$has_sync" ] || [ -n "$has_color" ] || [ -n "$has_interactive" ]; then + local -a generic_options + if [ "$has_sync" -eq 1 ]; then + generic_options+=('--sync=[Synchronize local cache with server: auto | now | no]') + fi + if [ "$has_color" -eq 1 ]; then + generic_options+=('--color=[Color: auto | never | always]') + fi + if [ "$has_interactive" -eq 1 ]; then + generic_options+=("--non-interactive[Use stardard input instead of $EDITOR]") + fi + _arguments $generic_options + fi + else + local -a subcommands + subcommands=( + "login:Authenticate with the LastPass server and initialize a local cache" + "logout:Remove the local cache and stored encryption keys" + "passwd:Change your LastPass password" + "show:Display a password or selected field" + "ls:List names in groups in a tree structure" + "mv:Move the specified entry to a new group" + "add:Add a new entry" + "edit:Edit the selected field" + "generate:Create a randomly generated password" + "duplicate:Create a duplicate entry of the one specified" + "rm:Remove the specified entry" + "status:Show current login status" + "sync:Synchronize local cache with server" + "export:Dump all account information including passwords as unencrypted csv to stdout" + "import:Upload accounts from an unencrypted CSV file to the server" + "share:Manipulate shared folders (only enterprise or premium user)" + ) + _describe -t commands 'lpass' subcommands + _arguments : \ + '(-h --help)'{-h,--help}'[show help]' \ + '(-v --version)'{-v,--version}'[show version]' + + fi +} + +_lpass_complete_uniqenames(){ + local -a entries + while read i; do + if [ -n "$i" ]; then + entries+=("$i") + fi + done < <(lpass ls --sync auto --format "%an" --color=never) + compadd -a entries +} + + +_lpass_complete_groups() { + local -a entries + while read i; do + if [ -n "$i" ]; then + entries+=("$i") + fi + done < <(lpass ls --sync auto --format "%aN" --color=never | grep -E "\/$") + compadd -a entries +} + +_lpass +# Local Variables: +# mode: Shell-Script +# sh-indentation: 2 +# indent-tabs-mode: nil +# sh-basic-offset: 2 +# End: +# vim: ft=zsh sw=2 ts=2 et diff --git a/plugins/macos/macos.plugin.zsh b/plugins/macos/macos.plugin.zsh index 6a91be336..b540eecb5 100644 --- a/plugins/macos/macos.plugin.zsh +++ b/plugins/macos/macos.plugin.zsh @@ -1,3 +1,8 @@ +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + # Open the current directory in a Finder window alias ofd='open_command $PWD' diff --git a/plugins/macports/README.md b/plugins/macports/README.md index ded823f3f..09bd42df2 100644 --- a/plugins/macports/README.md +++ b/plugins/macports/README.md @@ -15,7 +15,33 @@ plugins=(... macports) |-------|------------------------------------|--------------------------------------------------------------| | pc | `sudo port clean --all installed` | Clean up intermediate installation files for installed ports | | pi | `sudo port install` | Install package given as argument | +| pli | `port livecheck installed` | Check for updates for installed ports | +| plm | `port-livecheck-maintainer` | Check for updates of ports mainained by the specified users | | psu | `sudo port selfupdate` | Update ports tree with MacPorts repository | | puni | `sudo port uninstall inactive` | Uninstall inactive ports | | puo | `sudo port upgrade outdated` | Upgrade ports with newer versions available | | pup | `psu && puo` | Update ports tree, then upgrade ports to newest versions | + +## Commands + +### port-livecheck-maintainer + +```text +Usage: + port-livecheck-maintainer + port-livecheck-maintainer (maintainer)+ + port-livecheck-maintainer -h|--help + +Check + +Options: + maintainer maintainer id + -h print this help message and exit +``` + +Checks whether updates are available for ports whose maintainer is the current +user, or any of a specified list of maintainer expressions. The current user +maintainer id is retrieved as follows: + +* The value of the `MACPORTS_MAINTAINER` variable, if set and not null. +* The value of the `USER` variable. diff --git a/plugins/macports/macports.plugin.zsh b/plugins/macports/macports.plugin.zsh index d1fde30d4..d438057f9 100644 --- a/plugins/macports/macports.plugin.zsh +++ b/plugins/macports/macports.plugin.zsh @@ -1,6 +1,44 @@ alias pc="sudo port clean --all installed" alias pi="sudo port install" +alias pli="port livecheck installed" +alias plm="port-livecheck-maintainer" alias psu="sudo port selfupdate" alias puni="sudo port uninstall inactive" alias puo="sudo port upgrade outdated" -alias pup="psu && puo" +alias pup="sudo port selfupdate && sudo port upgrade outdated" + +port-livecheck-maintainer() { + (( ${+commands[port]} == 0 )) || { + print -- "port: not found" >&2 + return 1 + } + + local -a help_flag + zparseopts -D -E h=help_flag -help=help_flag + + (( ${#help_flag} )) && { + cat << EOF >&2 +Usage: + port-livecheck-maintainer + port-livecheck-maintainer (maintainer)+ + port-livecheck-maintainer -h|--help + +Check + +Options: + maintainer maintainer id + -h print this help message and exit +EOF + return 1 + } + + if (( $# == 0 )); then + local default=${MACPORTS_MAINTAINER:-${USER}} + port livecheck maintainer:${default} + return $? + fi + + for i in $@; do + port livecheck maintainer:${i} + done +} diff --git a/plugins/ng/_ng b/plugins/ng/_ng new file mode 100644 index 000000000..9c96cf7e3 --- /dev/null +++ b/plugins/ng/_ng @@ -0,0 +1,56 @@ +#compdef ng + +setopt localoptions extendedglob + +if (( CURRENT == 2 )); then + local -a cmds alias + # Sample output (ng help): + # Available Commands: + # add Adds support for an external library to your project. + for line in ${(@f)"$(ng help 2>/dev/null | sed -n '/^ /p')"}; do + if [[ "$line" =~ '^ ([^ ]+) \(([^)]+)\) (.*)$' ]]; then + alias=(${match[1]} ${(s:, :)match[2]}) + cmds+=(${^alias}:"${match[3]//:/}") + elif [[ "$line" =~ '^ ([^ ]+) (.*)$' ]]; then + cmds+=("${match[1]}:${match[2]//:/}") + fi + done + _describe commands cmds && return 0 +elif (( CURRENT == 3 )); then + local -a flags args + local section description + # Sample output (ng build --help): + # --configuration (-c) + # One or more named builder configurations as a comma-separated list as specified in the "configurations" section of angular.json. + # The builder uses the named configurations to run the given target. + # For more information, see https://angular.io/guide/workspace-config#alternate-build-configurations. + # Prefix --flags with literal \0, and split on that to get each flag section + for section in ${(s:\0:)"$(ng ${words[2]} --help 2>/dev/null | sed -e '1,/^options/ d;s/^ --/\\0--/')"}; do + # Split by newline and discard extra description lines (lines > 2) + for args description in ${${(@f)section}[1,2]}; do + args=(${(s: :)${${args%% #}## #}//[(),]/}) + description=${${description%% #}## #} + flags+=(${^args}":$description") + done + done + _describe flags flags + + case "$words[2]" in + b|build|l|lint|t|test) + # Sample output (ng config projects): + # { + # "angular-project-1": { + # ... + # }, + # "angular-project-2": { + # ... + # } + # } + # In abscence of a proper JSON parser, just grab the lines with + # a 2-space indentation and only the stuff inside quotes + local -a projects + projects=(${(@f)"$(ng config projects 2>/dev/null | sed -n 's/^ "\([^"]\+\)".*$/\1/p')"}) + _describe projects projects + ;; + esac +fi diff --git a/plugins/ng/ng.plugin.zsh b/plugins/ng/ng.plugin.zsh deleted file mode 100644 index 44102e2a6..000000000 --- a/plugins/ng/ng.plugin.zsh +++ /dev/null @@ -1,78 +0,0 @@ -ng_opts='addon asset-sizes b build completion d destroy doc e2e g generate get github-pages:deploy gh-pages:deploy h help i init install lint make-this-awesome new s serve server set t test update v version -h --help' - -_ng_completion () { - local words cword opts - read -Ac words - read -cn cword - let cword-=1 - - case $words[cword] in - addon ) - opts='-b --blueprint -d -dir --directory --dry-run -sb --skip-bower -sg --skip-git -sn --skip-npm -v --verbose' - ;; - - asset-sizes ) - opts='-o --output-path' - ;; - - b | build ) - opts='--environment --output-path --suppress-sizes --target --watch --watcher -dev -e -prod' - ;; - - d | destroy ) - opts='--dry-run --verbose --pod --classic --dummy --in-repo --in-repo-addon -d -v -p -c -dum -id -ir' - ;; - - g | generate ) - opts='class component directive enum module pipe route service --generate -d --dry-run --verbose -v --pod -p --classic -c --dummy -dum -id --in-repo --in-repo-addon -ir' - ;; - - gh-pages:deploy | github-pages:deploy ) - opts='--environment --gh-token --gh-username --skip-build --user-page --message' - ;; - - h | help | -h | --help) - opts='--json --verbose -v' - ;; - - init ) - opts='--blueprint --dry-run --link-cli --mobile --name --prefix --skip-bower --skip-npm --source-dir --style --verbose -b -d -lc -n -p -sb -sd -sn -v' - ;; - - new ) - opts='--blueprint --directory --dry-run --link-cli --mobile --prefix --skip-bower --skip-git --skip-npm --source-dir --style --verbose -b -d -dir -lc -p -sb -sd -sg -sn -v' - ;; - - s | serve | server ) - opts='--environment --host --insecure-proxy --inspr --live-reload --live-reload-base-url --live-reload-host --live-reload-live-css --live-reload-port --output-path --port --proxy --ssl --ssl-cert --ssl-key --target --watcher -H -dev -e -lr -lrbu -lrh -lrp -op -out -p -pr -prod -pxy -t -w' - ;; - - set ) - opts='--global -g' - ;; - - t | test ) - opts='--browsers --colors --config-file --environment --filter --host --launch --log-level --module --path --port --query --reporter --server --silent --test-page --test-port --watch -H -c -cf -e -f -m -r -s -tp -w' - ;; - - update ) - opts='--all --dryRun --force --from --migrate-only --next --registry --to -d' - ;; - - v | version ) - opts='--verbose' - ;; - - ng ) - opts=$ng_opts - ;; - - * ) - opts='' - ;; - esac - - reply=(${=opts}) -} - -compctl -K _ng_completion ng diff --git a/plugins/npm/README.md b/plugins/npm/README.md index e970c3c7a..8eafc6d61 100644 --- a/plugins/npm/README.md +++ b/plugins/npm/README.md @@ -29,3 +29,20 @@ plugins=(... npm) | `npmI` | `npm init` | Run npm init | | `npmi` | `npm info` | Run npm info | | `npmSe` | `npm search` | Run npm search | + +## `npm install` / `npm uninstall` toggle + +The plugin adds a function that toggles between `npm install` and `npm uninstall` in +the current command or the last command, for up to 2 previous commands. **The default +key binding is pressing <kbd>F2</kbd> twice**. + +You can change this key binding by adding the following line to your zshrc file: + +```zsh +bindkey -M emacs '<seq>' npm_toggle_install_uninstall +bindkey -M vicmd '<seq>' npm_toggle_install_uninstall +bindkey -M viins '<seq>' npm_toggle_install_uninstall +``` + +where `<seq>` is a key sequence obtained by running `cat` and pressing the keyboard +sequence you want. diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh index f7d6d3939..6c768d614 100644 --- a/plugins/npm/npm.plugin.zsh +++ b/plugins/npm/npm.plugin.zsh @@ -69,3 +69,43 @@ alias npmi="npm info" # Run npm search alias npmSe="npm search" + +npm_toggle_install_uninstall() { + # Look up to the previous 2 history commands + local line + for line in "$BUFFER" \ + "${history[$((HISTCMD-1))]}" \ + "${history[$((HISTCMD-2))]}" + do + case "$line" in + "npm uninstall"*) + BUFFER="${line/npm uninstall/npm install}" + (( CURSOR = CURSOR + 2 )) # uninstall -> install: 2 chars removed + ;; + "npm install"*) + BUFFER="${line/npm install/npm uninstall}" + (( CURSOR = CURSOR + 2 )) # install -> uninstall: 2 chars added + ;; + "npm un "*) + BUFFER="${line/npm un/npm install}" + (( CURSOR = CURSOR + 5 )) # un -> install: 5 chars added + ;; + "npm i "*) + BUFFER="${line/npm i/npm uninstall}" + (( CURSOR = CURSOR + 8 )) # i -> uninstall: 8 chars added + ;; + *) continue ;; + esac + return 0 + done + + BUFFER="npm install" + CURSOR=${#BUFFER} +} + +zle -N npm_toggle_install_uninstall + +# Defined shortcut keys: [F2] [F2] +bindkey -M emacs '^[OQ^[OQ' npm_toggle_install_uninstall +bindkey -M vicmd '^[OQ^[OQ' npm_toggle_install_uninstall +bindkey -M viins '^[OQ^[OQ' npm_toggle_install_uninstall diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md index 0c2bbf9f0..a8bc34ae7 100644 --- a/plugins/nvm/README.md +++ b/plugins/nvm/README.md @@ -17,7 +17,9 @@ where you installed nvm. These settings should go in your zshrc file, before Oh My Zsh is sourced: - **`NVM_HOMEBREW`**: if you installed nvm via Homebrew, in a directory other than `/usr/local/opt/nvm`, you - can set `NVM_HOMEBREW` to be the directory where you installed it. + can set `NVM_HOMEBREW` to be the directory where you installed it. For example, on Apple Silicon-based Macs, + [Homebrew is installed in `/opt/homebrew`](https://docs.brew.sh/Installation). To get the directory where + nvm has been installed, regardless of chip architecture, use `NVM_HOMEBREW=$(brew --prefix nvm)`. - **`NVM_LAZY`**: if you want the plugin to defer the load of nvm to speed-up the start of your zsh session, set `NVM_LAZY` to `1`. This will use the `--no-use` parameter when loading nvm, and will create a function diff --git a/plugins/oc/README.md b/plugins/oc/README.md index deae9b2d0..b7903eafe 100644 --- a/plugins/oc/README.md +++ b/plugins/oc/README.md @@ -1,6 +1,6 @@ # OC - OpenShift CLI -This plugin provides autocompletion for [OC](https://docs.openshift.com/container-platform/3.7/cli_reference/index.html) commands, building, managing and updating operations. +This plugin provides autocompletion for [OC](https://docs.openshift.com/container-platform/latest/cli_reference/openshift_cli/getting-started-cli.html) commands, building, managing and updating operations. To use it, add `oc` to the plugins array of your zshrc file: diff --git a/plugins/pass/_pass b/plugins/pass/_pass index 75f3feb4f..d911e122f 100644 --- a/plugins/pass/_pass +++ b/plugins/pass/_pass @@ -6,8 +6,7 @@ # Brian Mattern <rephorm@rephorm.com> # Jason A. Donenfeld <Jason@zx2c4.com>. # All Rights Reserved. -# This file is licensed under the GPLv2+. -# Please visit https://git.zx2c4.com/password-store/tree/COPYING for more information. +# This file is licensed under the GPLv2+. Please see COPYING for more information. # If you use multiple repositories, you can configure completion like this: @@ -18,14 +17,6 @@ # PASSWORD_STORE_DIR=$HOME/work/pass pass $@ # } -# If you use multiple repositories, you can configure completion like this: -# -# compdef _pass workpass -# zstyle ':completion::complete:workpass::' prefix "$HOME/work/pass" -# workpass() { -# PASSWORD_STORE_DIR=$HOME/work/pass pass $@ -# } - _pass () { local cmd @@ -133,7 +124,7 @@ _pass_complete_entries_helper () { local IFS=$'\n' local prefix zstyle -s ":completion:${curcontext}:" prefix prefix || prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}" - _values -C 'passwords' ${$(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print 2>/dev/null | sed -e "s#${prefix}/\{0,1\}##" -e 's#\.gpg##' -e 's#\\#\\\\#' | sort):-""} + _values -C 'passwords' ${$(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print 2>/dev/null | sed -e "s#${prefix}/\{0,1\}##" -e 's#\.gpg##' -e 's#\\#\\\\#g' -e 's#:#\\:#g' | sort):-""} } _pass_complete_entries_with_subdirs () { diff --git a/plugins/pip/_pip b/plugins/pip/_pip index a5adead4a..e03be6afe 100644 --- a/plugins/pip/_pip +++ b/plugins/pip/_pip @@ -13,7 +13,7 @@ _pip_all() { } _pip_installed() { - installed_pkgs=(`pip freeze | cut -d '=' -f 1`) + installed_pkgs=($($service freeze | cut -d '=' -f 1)) } local -a _1st_arguments diff --git a/plugins/pip/pip.plugin.zsh b/plugins/pip/pip.plugin.zsh index 629147bae..7eb2d2a35 100644 --- a/plugins/pip/pip.plugin.zsh +++ b/plugins/pip/pip.plugin.zsh @@ -82,16 +82,30 @@ zsh-pip-test-clean-packages() { fi } -alias pip="noglob pip" # allows square brackets for pip command invocation +if (( $+commands[pip3] && !$+commands[pip] )); then + alias pip="noglob pip3" +else + alias pip="noglob pip" +fi # Create requirements file alias pipreq="pip freeze > requirements.txt" -# Update all installed packages -alias pipupall="pipreq && sed -i 's/==/>=/g' requirements.txt && pip install -r requirements.txt --upgrade && rm -rf requirements.txt" - # Install packages from requirements file alias pipir="pip install -r requirements.txt" +# Update all installed packages +function pipupall { + # non-GNU xargs does not support nor need `--no-run-if-empty` + local xargs="xargs --no-run-if-empty" + xargs --version 2>/dev/null | grep -q GNU || xargs="xargs" + pip list --outdated --format freeze | cut -d= -f1 | ${=xargs} pip install --upgrade +} + # Uninstalled all installed packages -alias pipunall="pipreq && pip uninstall -r requirements.txt -y && rm -rf requirements.txt" +function pipunall { + # non-GNU xargs does not support nor need `--no-run-if-empty` + local xargs="xargs --no-run-if-empty" + xargs --version 2>/dev/null | grep -q GNU || xargs="xargs" + pip list --format freeze | cut -d= -f1 | ${=xargs} pip uninstall +} diff --git a/plugins/python/README.md b/plugins/python/README.md index b95ffe679..c1f0adef8 100644 --- a/plugins/python/README.md +++ b/plugins/python/README.md @@ -1,19 +1,29 @@ -# python plugin +# Python plugin -The plugin adds several aliases for useful [python](https://www.python.org/) commands. +The plugin adds several aliases for useful [Python](https://www.python.org/) commands. -To use it, add `python` to the plugins array of your zshrc file: -``` +To use it, add `python` to the plugins array in your zshrc file: + +```zsh plugins=(... python) ``` ## Aliases -| Command | Description | -|------------------|---------------------------------------------------------------------------------| -| `py` | Runs `python` | -| `ipython` | Runs the appropriate `ipython` version according to the activated virtualenv | -| `pyfind` | Finds .py files recursively in the current directory | -| `pyclean [dirs]` | Deletes byte-code and cache files from a list of directories or the current one | -| `pygrep <text>` | Looks for `text` in .py files | -| `pyuserpaths` | Add --user site-packages to PYTHONPATH, for all installed python versions. | +| Command | Description | +| ---------------- | -------------------------------------------------------------------------------------- | +| `py` | Runs `python` | +| `ipython` | Runs the appropriate `ipython` version according to the activated virtualenv | +| `pyfind` | Finds .py files recursively in the current directory | +| `pyclean [dirs]` | Deletes byte-code and cache files from a list of directories or the current one | +| `pygrep <text>` | Looks for `text` in `*.py` files in the current directory, recursively | +| `pyuserpaths` | Add user site-packages folders to `PYTHONPATH`, for Python 2 and 3 | +| `pyserver` | Starts an HTTP server on the current directory (use `--directory` for a different one) | + +## Virtual environments + +The plugin provides two utilities to manage Python venvs: + +- `mkv [name]`: make a new virtual environment called `name` (default: `venv`) in current directory. + +- `vrun [name]`: activate virtual environment called `name` (default: `venv`) in current directory. diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh index 276eb6f91..7a73ab92a 100644 --- a/plugins/python/python.plugin.zsh +++ b/plugins/python/python.plugin.zsh @@ -7,40 +7,37 @@ alias pyfind='find . -name "*.py"' # Remove python compiled byte-code and mypy/pytest cache in either the current # directory or in a list of specified directories (including sub directories). function pyclean() { - ZSH_PYCLEAN_PLACES=${*:-'.'} - find ${ZSH_PYCLEAN_PLACES} -type f -name "*.py[co]" -delete - find ${ZSH_PYCLEAN_PLACES} -type d -name "__pycache__" -delete - find ${ZSH_PYCLEAN_PLACES} -depth -type d -name ".mypy_cache" -exec rm -r "{}" + - find ${ZSH_PYCLEAN_PLACES} -depth -type d -name ".pytest_cache" -exec rm -r "{}" + + find "${@:-.}" -type f -name "*.py[co]" -delete + find "${@:-.}" -type d -name "__pycache__" -delete + find "${@:-.}" -depth -type d -name ".mypy_cache" -exec rm -r "{}" + + find "${@:-.}" -depth -type d -name ".pytest_cache" -exec rm -r "{}" + } # Add the user installed site-packages paths to PYTHONPATH, only if the # directory exists. Also preserve the current PYTHONPATH value. # Feel free to autorun this when .zshrc loads. function pyuserpaths() { - local targets=("python2" "python3") # bins - - # Get existing interpreters. - local interps=() - for target in $targets; do - [ `command -v $target` ] && interps+=($target) - done - - # Check for a non-standard install directory. - local user_base="${HOME}/.local" - [ $PYTHONUSERBASE ] && user_base=$PYTHONUSERBASE - - # Add version specific paths, if: - # it exists in the filesystem; - # it isn't in PYTHONPATH already. - for interp in $interps; do - # Get minor release version. - local ver=`$interp -V 2>&1` - ver=`echo ${ver:7} | cut -d '.' -f 1,2` # The patch version is variable length, truncate it. - - local site_pkgs="${user_base}/lib/python${ver}/site-packages" - [[ -d $site_pkgs && ! $PYTHONPATH =~ $site_pkgs ]] && export PYTHONPATH=${site_pkgs}:$PYTHONPATH - done + setopt localoptions extendedglob + + # Check for a non-standard install directory. + local user_base="${PYTHONUSERBASE:-"${HOME}/.local"}" + + local python version site_pkgs + for python in python2 python3; do + # Check if command exists + (( ${+commands[$python]} )) || continue + + # Get minor release version. + # The patch version is variable length, truncate it. + version=${(M)${"$($python -V 2>&1)":7}#[^.]##.[^.]##} + + # Add version specific path, if: + # - it exists in the filesystem + # - it isn't in $PYTHONPATH already. + site_pkgs="${user_base}/lib/python${version}/site-packages" + [[ -d "$site_pkgs" && ! "$PYTHONPATH" =~ (^|:)"$site_pkgs"(:|$) ]] || continue + export PYTHONPATH="${site_pkgs}${PYTHONPATH+":${PYTHONPATH}"}" + done } # Grep among .py files @@ -48,3 +45,39 @@ alias pygrep='grep -nr --include="*.py"' # Run proper IPython regarding current virtualenv (if any) alias ipython="python -c 'import IPython; IPython.terminal.ipapp.launch_new_instance()'" + +# Share local directory as a HTTP server +alias pyserver="python -m http.server" + + +## venv utilities + +# Activate a the python virtual environment specified. +# If none specified, use 'venv'. +function vrun() { + local name="${1:-venv}" + local venvpath="${name:P}" + + if [[ ! -d "$venvpath" ]]; then + echo >&2 "Error: no such venv in current directory: $name" + return 1 + fi + + if [[ ! -f "${venvpath}/bin/activate" ]]; then + echo >&2 "Error: '${name}' is not a proper virtual environment" + return 1 + fi + + . "${venvpath}/bin/activate" || return $? + echo "Activated virtual environment ${name}" +} + +# Create a new virtual environment, with default name 'venv'. +function mkv() { + local name="${1:-venv}" + local venvpath="${name:P}" + + python3 -m venv "${name}" || return + echo >&2 "Created venv in '${venvpath}'" + vrun "${name}" +} diff --git a/plugins/rake/README.md b/plugins/rake/README.md index e888c0785..72f2a8525 100644 --- a/plugins/rake/README.md +++ b/plugins/rake/README.md @@ -13,25 +13,29 @@ plugins=(... rake) The plugin aliases the rake command so you can pass arguments when invoking rake tasks without having to escape the brackets, i.e., you can run -``` + +```sh rake namespace:task['argument'] ``` + instead of having to do -``` + +```sh rake namespace:task\['argument'\] ``` -| Alias | Command | Description | -|--------|--------------------------------|-----------------------------------------------| -| rake | `noglob rake` | Allows unescaped square brackets | -| brake | `noglob bundle exec rake` | Same as above but call rake using bundler | -| srake | `noglob sudo rake` | Same as rake but using sudo | -| sbrake | `noglob sudo bundle exec rake` | Same as above but using both sudo and bundler | +| Alias | Command | Description | +| ---------- | ------------------------------ | --------------------------------------------- | +| `rake` | `noglob rake` | Allows unescaped square brackets | +| `bin/rake` | `noglob bin/rake` | Same as above but using rake binstub | +| `brake` | `noglob bundle exec rake` | Same as above but call rake using bundler | +| `srake` | `noglob sudo rake` | Same as rake but using sudo | +| `sbrake` | `noglob sudo bundle exec rake` | Same as above but using both sudo and bundler | ## Jim Weirich The plugin also aliases `rake` to [`jimweirich`](https://github.com/jimweirich), author of Rake and big time contributor to the Ruby open source community. He passed away in 2014: -> Thank you Jim for everything you contributed to the Ruby and open source community +> Thank you Jim for everything you contributed to the Ruby and open source community > over the years. We will miss you dearly. — [**@robbyrussell**](https://github.com/ohmyzsh/ohmyzsh/commit/598a9c6f990756386517d66b6bcf77e53791e905) diff --git a/plugins/rake/rake.plugin.zsh b/plugins/rake/rake.plugin.zsh index 3ceb20fea..0c507e628 100644 --- a/plugins/rake/rake.plugin.zsh +++ b/plugins/rake/rake.plugin.zsh @@ -1,10 +1,9 @@ -# Thank you Jim for everything you contributed to the Ruby and open source community +# Thank you Jim for everything you contributed to the Ruby and open source community # over the years. We will miss you dearly. -alias jimweirich="rake" - -alias rake="noglob rake" # allows square brackets for rake task invocation -alias brake='noglob bundle exec rake' # execute the bundled rake gem -alias srake='noglob sudo rake' # noglob must come before sudo -alias sbrake='noglob sudo bundle exec rake' # altogether now ... - +alias jimweirich='rake' +alias rake='noglob rake' # allows square brackts for rake task invocation +alias 'bin/rake'='noglob bin/rake' # support use of binstub +alias brake='noglob bundle exec rake' # execute the bundled rake gem +alias srake='noglob sudo rake' # noglob must come before sudo +alias sbrake='noglob sudo bundle exec rake' # altogether now ... diff --git a/plugins/rbw/README.md b/plugins/rbw/README.md new file mode 100644 index 000000000..87d073d24 --- /dev/null +++ b/plugins/rbw/README.md @@ -0,0 +1,12 @@ +# Bitwarden (unofficial) CLI plugin + +This plugin adds completion for [rbw](https://github.com/doy/rbw), an unofficial +CLI for [Bitwarden](https://bitwarden.com). + +To use it, add `rbw` to the plugins array in your zshrc file: + +```zsh +plugins=(... rbw) +``` + +This plugin does not add any aliases. diff --git a/plugins/rbw/rbw.plugin.zsh b/plugins/rbw/rbw.plugin.zsh new file mode 100644 index 000000000..3825be7a6 --- /dev/null +++ b/plugins/rbw/rbw.plugin.zsh @@ -0,0 +1,19 @@ +if (( ! $+commands[rbw] )); then + return +fi + +# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh +# Add completions folder in $ZSH_CACHE_DIR +command mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) + + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `rbw`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_rbw" ]]; then + declare -A _comps + autoload -Uz _rbw + _comps[rbw]=_rbw +fi + +rbw gen-completions zsh >| "$ZSH_CACHE_DIR/completions/_rbw" &| diff --git a/plugins/repo/_repo b/plugins/repo/_repo index db0ecd14d..2b1f165f1 100644 --- a/plugins/repo/_repo +++ b/plugins/repo/_repo @@ -114,7 +114,9 @@ _repo() (start) _arguments : \ "(-h --help)"{-h,--help}"[Show help]" \ - "(--all)--all=[begin branch in all projects]"\ + "(--all)--all[begin branch in all projects]"\ + "(-r --rev --revision)"{-r,--rev,--revision=}"[point branch at this revision instead of upstream]":branch_or_rev:__repo__repo_branch_or_rev\ + "(--head)--head[abbreviation for --rev HEAD]"\ ':branch name:__repo_new__repo_branch_name' \ ':projects:__repo_projects_or_all' \ && ret=0 @@ -143,6 +145,13 @@ _repo() "(-h --help)"{-h,--help}"[Show help]" \ && ret=0 ;; + (stage) + _arguments : \ + "(-h --help)"{-h,--help}"[Show help]" \ + "(-i --interactive)"{-i,--interactive}"[use interactive staging]" \ + ':projects:__repo_projects' \ + && ret=0 + ;; (status) _arguments : \ "(-h --help)"{-h,--help}"[Show help]" \ diff --git a/plugins/ripgrep/README.md b/plugins/ripgrep/README.md index 937f73c81..a26f45823 100644 --- a/plugins/ripgrep/README.md +++ b/plugins/ripgrep/README.md @@ -8,6 +8,6 @@ To use it, add `ripgrep` to the plugins array in your zshrc file: plugins=(... ripgrep) ``` -Completion is taken from the ripgrep release [`11.0.2`](https://github.com/BurntSushi/ripgrep/releases/tag/11.0.2). +Completion is taken from the ripgrep release [`12.1.1`](https://github.com/BurntSushi/ripgrep/releases/tag/12.1.1). -Updated on August 16th, 2019. +Updated on April 1st, 2021. diff --git a/plugins/ripgrep/_ripgrep b/plugins/ripgrep/_ripgrep index d7dcfd64a..828a6e601 100644 --- a/plugins/ripgrep/_ripgrep +++ b/plugins/ripgrep/_ripgrep @@ -3,7 +3,7 @@ ## # zsh completion function for ripgrep # -# Run ci/test_complete.sh after building to ensure that the options supported by +# Run ci/test-complete after building to ensure that the options supported by # this function stay in synch with the `rg` binary. # # For convenience, a completion reference guide is included at the bottom of @@ -72,11 +72,19 @@ _rg() { + '(count)' # Counting options {-c,--count}'[only show count of matching lines for each file]' '--count-matches[only show count of individual matches for each file]' + '--include-zero[include files with zero matches in summary]' + '(encoding)' # Encoding options {-E+,--encoding=}'[specify text encoding of files to search]: :_rg_encodings' $no'--no-encoding[use default text encoding]' + + '(engine)' # Engine choice options + '--engine=[select which regex engine to use]:when:(( + default\:"use default engine" + pcre2\:"identical to --pcre2" + auto\:"identical to --auto-hybrid-regex" + ))' + + file # File-input options '(1)*'{-f+,--file=}'[specify file containing patterns to search for]: :_files' @@ -128,6 +136,10 @@ _rg() { '--ignore-file-case-insensitive[process ignore files case insensitively]' $no'--no-ignore-file-case-insensitive[process ignore files case sensitively]' + + '(ignore-exclude)' # Local exclude (ignore)-file options + "--no-ignore-exclude[don't respect local exclude (ignore) files]" + $no'--ignore-exclude[respect local exclude (ignore) files]' + + '(ignore-global)' # Global ignore-file options "--no-ignore-global[don't respect global ignore files]" $no'--ignore-global[respect global ignore files]' @@ -140,10 +152,18 @@ _rg() { "--no-ignore-vcs[don't respect version control ignore files]" $no'--ignore-vcs[respect version control ignore files]' - + '(ignore-dot)' # .ignore-file options + + '(require-git)' # git specific settings + "--no-require-git[don't require git repository to respect gitignore rules]" + $no'--require-git[require git repository to respect gitignore rules]' + + + '(ignore-dot)' # .ignore options "--no-ignore-dot[don't respect .ignore files]" $no'--ignore-dot[respect .ignore files]' + + '(ignore-files)' # custom global ignore file options + "--no-ignore-files[don't respect --ignore-file flags]" + $no'--ignore-files[respect --ignore-file files]' + + '(json)' # JSON options '--json[output results in JSON Lines format]' $no"--no-json[don't output results in JSON Lines format]" @@ -263,6 +283,10 @@ _rg() { {-w,--word-regexp}'[only show matches surrounded by word boundaries]' {-x,--line-regexp}'[only show matches surrounded by line boundaries]' + + '(unicode)' # Unicode options + $no'--unicode[enable Unicode mode]' + '--no-unicode[disable Unicode mode]' + + '(zip)' # Compression options '(--pre)'{-z,--search-zip}'[search in compressed files]' $no"--no-search-zip[don't search in compressed files]" @@ -277,7 +301,9 @@ _rg() { ))' '*--colors=[specify color and style settings]: :->colorspec' '--context-separator=[specify string used to separate non-continuous context lines in output]:separator' + $no"--no-context-separator[don't print context separators]" '--debug[show debug messages]' + '--trace[show more verbose debug messages]' '--dfa-size-limit=[specify upper size limit of generated DFA]:DFA size (bytes)' "(1 stats)--files[show each file that would be searched (but don't search)]" '*--ignore-file=[specify additional ignore file]:ignore file:_files' @@ -297,7 +323,7 @@ _rg() { '(--type-list)*: :_files' ) - # This is used with test_complete.sh to verify that there are no options + # This is used with test-complete to verify that there are no options # listed in the help output that aren't also defined here [[ $_RG_COMPLETE_LIST_ARGS == (1|t*|y*) ]] && { print -rl - $args diff --git a/plugins/ruby/README.md b/plugins/ruby/README.md index 59594ade7..59d839c5c 100644 --- a/plugins/ruby/README.md +++ b/plugins/ruby/README.md @@ -10,22 +10,24 @@ plugins=(... ruby) ## Aliases -| Alias | Command | Description | -|--------|----------------------------------------|------------------------------------------------------| -| rb | `ruby` | The Ruby command | -| sgem | `sudo gem` | Run sudo gem on the system ruby, not the active ruby | -| rfind | `find . -name "*.rb" \| xargs grep -n` | Find ruby file | -| gein | `gem install` | Install a gem into the local repository | -| geun | `gem uninstall` | Uninstall gems from the local repository | -| geli | `gem list` | Display gems installed locally | -| gei | `gem info` | Show information for the given gem | -| geiall | `gem info --all` | Display all gem versions | -| geca | `gem cert --add` | Add a trusted certificate | -| gecr | `gem cert --remove` | Remove a trusted certificate | -| gecb | `gem cert --build` | Build private key and self-signed certificate | -| geclup | `gem cleanup -n` | Do not uninstall gem | -| gegi | `gem generate_index` | Generate index file for gem server | -| geh | `gem help` | Provide additional help | -| gel | `gem lock` | Generate a lockdown list of gems | -| geo | `gem open` | Open gem source in default editor | -| geoe | `gem open -e` | Open gem sources in preferred editor | +| Alias | Command | Description | +| ------- | -------------------------------------- | ---------------------------------------------------- | +| rb | `ruby` | The Ruby command | +| sgem | `sudo gem` | Run sudo gem on the system ruby, not the active ruby | +| rfind | `find . -name "*.rb" \| xargs grep -n` | Find ruby file | +| rrun | `ruby -e` | Execute some code: E.g: `rrun "puts 'Hello world!'"` | +| rserver | `ruby -e httpd . -p 8080` | Start HTTP Webrick serving local directory/files | +| gein | `gem install` | Install a gem into the local repository | +| geun | `gem uninstall` | Uninstall gems from the local repository | +| geli | `gem list` | Display gems installed locally | +| gei | `gem info` | Show information for the given gem | +| geiall | `gem info --all` | Display all gem versions | +| geca | `gem cert --add` | Add a trusted certificate | +| gecr | `gem cert --remove` | Remove a trusted certificate | +| gecb | `gem cert --build` | Build private key and self-signed certificate | +| geclup | `gem cleanup -n` | Do not uninstall gem | +| gegi | `gem generate_index` | Generate index file for gem server | +| geh | `gem help` | Provide additional help | +| gel | `gem lock` | Generate a lockdown list of gems | +| geo | `gem open` | Open gem source in default editor | +| geoe | `gem open -e` | Open gem sources in preferred editor | diff --git a/plugins/ruby/ruby.plugin.zsh b/plugins/ruby/ruby.plugin.zsh index 890fcb179..408512110 100644 --- a/plugins/ruby/ruby.plugin.zsh +++ b/plugins/ruby/ruby.plugin.zsh @@ -22,3 +22,5 @@ alias geh="gem help" alias gel="gem lock" alias geo="gem open" alias geoe="gem open -e" +alias rrun="ruby -e" +alias rserver="ruby -e httpd . -p 8080" # requires webrick diff --git a/plugins/rust/README.md b/plugins/rust/README.md index 83d7d91ba..e05364474 100644 --- a/plugins/rust/README.md +++ b/plugins/rust/README.md @@ -1,6 +1,6 @@ # rust -This plugin adds completion for [`rustc`](https://doc.rust-lang.org/rustc/index.html), the compiler for the Rust programming language. +This plugin adds completion for [`rustc`](https://doc.rust-lang.org/rustc/index.html), the compiler for the Rust programming language, as well as for `rustup` and `cargo` if you have the Rust toolchain installed. To use it, add `rust` to the plugins array in your zshrc file: diff --git a/plugins/rust/_rust b/plugins/rust/_rustc index 6e3f344cd..6e3f344cd 100644 --- a/plugins/rust/_rust +++ b/plugins/rust/_rustc diff --git a/plugins/rust/rust.plugin.zsh b/plugins/rust/rust.plugin.zsh new file mode 100644 index 000000000..014c73b3b --- /dev/null +++ b/plugins/rust/rust.plugin.zsh @@ -0,0 +1,31 @@ +if ! (( $+commands[rustup] && $+commands[cargo] )); then + return +fi + +# Add completions folder in $ZSH_CACHE_DIR +# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh +command mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `cargo`. Otherwise, compinit will have already done that +if [[ ! -f "$ZSH_CACHE_DIR/completions/_cargo" ]]; then + autoload -Uz _cargo + declare -A _comps + _comps[cargo]=_cargo +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `rustup`. Otherwise, compinit will have already done that +if [[ ! -f "$ZSH_CACHE_DIR/completions/_rustup" ]]; then + autoload -Uz _rustup + declare -A _comps + _comps[rustup]=_rustup +fi + +# Generate completion files in the background +rustup completions zsh >| "$ZSH_CACHE_DIR/completions/_rustup" &| +cat >| "$ZSH_CACHE_DIR/completions/_cargo" <<'EOF' +#compdef cargo +source $(rustc +${${(z)$(rustup default)}[1]} --print sysroot)/share/zsh/site-functions/_cargo +EOF diff --git a/plugins/rustup/README.md b/plugins/rustup/README.md index ba037f8f6..c620e72a8 100644 --- a/plugins/rustup/README.md +++ b/plugins/rustup/README.md @@ -1,9 +1,3 @@ # rustup -This plugin adds completion for [`rustup`](https://rustup.rs/), the toolchain installer for the Rust programming language. - -To use it, add `rustup` to the plugins array in your zshrc file: - -```zsh -plugins=(... rustup) -``` +**Deprecated: use the [`rust`](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/rust) plugin instead.** diff --git a/plugins/rustup/rustup.plugin.zsh b/plugins/rustup/rustup.plugin.zsh index c6efc1b13..3d59c1c54 100644 --- a/plugins/rustup/rustup.plugin.zsh +++ b/plugins/rustup/rustup.plugin.zsh @@ -1,22 +1,15 @@ -if (( $+commands[rustup] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_rustup" - - ver="$(rustup --version 2>/dev/null)" - ver_file="$ZSH_CACHE_DIR/rustup_version" - comp_file="$ZSH_CACHE_DIR/completions/_rustup" - - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) - - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - rustup completions zsh >| "$comp_file" - echo "$ver" >| "$ver_file" - fi - - declare -A _comps - autoload -Uz _rustup - _comps[rustup]=_rustup - - unset ver ver_file comp_file -fi +print ${(%):-'%F{yellow}The `rustup` plugin is deprecated and has been moved to the `rust` plugin.'} +print ${(%):-'Please update your .zshrc to use the `%Brust%b` plugin instead.%f'} + +# TODO: 2021-12-28: remove this block +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" +# Remove old generated completion file +command rm -f "${0:A:h}/_rustup" "$ZSH_CACHE_DIR/rustup_version" + +(( ${fpath[(Ie)$ZSH/plugins/rust]} )) || { + fpath=("$ZSH/plugins/rust" $fpath) + source "$ZSH/plugins/rust/rust.plugin.zsh" +} diff --git a/plugins/rvm/README.md b/plugins/rvm/README.md index b0977f53a..258c89420 100644 --- a/plugins/rvm/README.md +++ b/plugins/rvm/README.md @@ -10,12 +10,26 @@ plugins=(... rvm) ## Aliases -| Alias | Command | -|----------------|----------------------| -| `rb18` | `rvm use ruby-1.8.7` | -| `rb19` | `rvm use ruby-1.9.3` | -| `rb20` | `rvm use ruby-2.0.0` | -| `rb21` | `rvm use ruby-2.1.2` | -| `rvm-update` | `rvm get head` | -| `gems` | `gem list` | -| `rvms` | `rvm gemset` | +| Alias | Command | +| ------------ | -------------------- | +| `rb18` | `rvm use ruby-1.8.7` | +| `rb19` | `rvm use ruby-1.9.3` | +| `rb20` | `rvm use ruby-2.0.0` | +| `rb21` | `rvm use ruby-2.1` | +| `rb22` | `rvm use ruby-2.2` | +| `rb23` | `rvm use ruby-2.3` | +| `rb24` | `rvm use ruby-2.4` | +| `rb25` | `rvm use ruby-2.5` | +| `rb26` | `rvm use ruby-2.6` | +| `rb27` | `rvm use ruby-2.7` | +| `rb30` | `rvm use ruby-3.0` | +| `rvm-update` | `rvm get head` | +| `gems` | `gem list` | +| `rvms` | `rvm gemset` | + +## Deprecated versions + +At the time of writing this (2021-12-28), Ruby versions until 2.5 are [EOL][1], +and will be removed in the future. + +[1]: https://endoflife.date/ruby diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index c5918f289..4ba885563 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -1,75 +1,54 @@ -fpath=($rvm_path/scripts/zsh/Completion $fpath) +# Completion +fpath+=("${rvm_path}/scripts/zsh/Completion") +declare -A _comps +autoload -Uz _rvm +_comps[rvm]=_rvm + +# Aliases alias rubies='rvm list rubies' alias rvms='rvm gemset' alias gemsets='rvms list' -local ruby18='ruby-1.8.7' -local ruby19='ruby-1.9.3' -local ruby20='ruby-2.0.0' -local ruby21='ruby-2.1.2' - -function rb18 { - if [ -z "$1" ]; then - rvm use "$ruby18" - else - rvm use "$ruby18@$1" - fi -} - -_rb18() {compadd `ls -1 $rvm_path/gems | grep "^$ruby18@" | sed -e "s/^$ruby18@//" | awk '{print $1}'`} -compdef _rb18 rb18 - -function rb19 { - if [ -z "$1" ]; then - rvm use "$ruby19" - else - rvm use "$ruby19@$1" - fi -} - -_rb19() {compadd `ls -1 $rvm_path/gems | grep "^$ruby19@" | sed -e "s/^$ruby19@//" | awk '{print $1}'`} -compdef _rb19 rb19 -function rb20 { - if [ -z "$1" ]; then - rvm use "$ruby20" - else - rvm use "$ruby20@$1" - fi -} - -_rb20() {compadd `ls -1 $rvm_path/gems | grep "^$ruby20@" | sed -e "s/^$ruby20@//" | awk '{print $1}'`} -compdef _rb20 rb20 - -function rb21 { - if [ -z "$1" ]; then - rvm use "$ruby21" - else - rvm use "$ruby21@$1" - fi -} +# rb{version} utilities +# From `rvm list known` +typeset -A rubies +rubies=( + 18 'ruby-1.8.7' + 19 'ruby-1.9.3' + 20 'ruby-2.0.0' + 21 'ruby-2.1' + 22 'ruby-2.2' + 23 'ruby-2.3' + 24 'ruby-2.4' + 25 'ruby-2.5' + 26 'ruby-2.6' + 27 'ruby-2.7' + 30 'ruby-3.0' +) + +for v in ${(k)rubies}; do + version="${rubies[$v]}" + functions[rb${v}]="rvm use ${version}\${1+"@\$1"}" + functions[_rb${v}]="compadd \$(ls -1 \"\${rvm_path}/gems\" | grep '^${version}@' | sed -e 's/^${version}@//' | awk '{print $1}')" + compdef _rb$v rb$v +done +unset rubies v version -_rb21() {compadd `ls -1 $rvm_path/gems | grep "^$ruby21@" | sed -e "s/^$ruby21@//" | awk '{print $1}'`} -compdef _rb21 rb21 function rvm-update { - rvm get head + rvm get head } # TODO: Make this usable w/o rvm. function gems { - local current_ruby=`rvm-prompt i v p` - local current_gemset=`rvm-prompt g` - - gem list $@ | sed -E \ - -e "s/\([0-9, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \ - -e "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \ - -e "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ - -e "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" -} - -function _rvm_completion { - source $rvm_path"/scripts/zsh/Completion/_rvm" + local current_ruby=`rvm-prompt i v p` + local current_gemset=`rvm-prompt g` + + gem list $@ | sed -E \ + -e "s/\([0-9, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \ + -e "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \ + -e "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ + -e "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" } -compdef _rvm_completion rvm diff --git a/plugins/shell-proxy/ssh-proxy.py b/plugins/shell-proxy/ssh-proxy.py index 5efd5fd21..6773a77bc 100755 --- a/plugins/shell-proxy/ssh-proxy.py +++ b/plugins/shell-proxy/ssh-proxy.py @@ -2,15 +2,30 @@ import os import subprocess import sys -import urllib.parse +from urllib.parse import urlparse proxy = next(os.environ[_] for _ in ("HTTP_PROXY", "HTTPS_PROXY") if _ in os.environ) + +parsed = urlparse(proxy) + +proxy_protocols = { + "http": "connect", + "https": "connect", + "socks": "5", + "socks5": "5", + "socks4": "4", + "socks4a": "4", +} + +if parsed.scheme not in proxy_protocols: + raise TypeError('unsupported proxy protocol: "{}"'.format(parsed.scheme)) + argv = [ "nc", "-X", - "connect", + proxy_protocols[parsed.scheme], # Supported protocols are 4 (SOCKS v4), 5 (SOCKS v5) and connect (HTTP proxy). Default SOCKS v5 is used. "-x", - urllib.parse.urlparse(proxy).netloc, # proxy-host:proxy-port + parsed.netloc, # proxy-host:proxy-port sys.argv[1], # host sys.argv[2], # port ] diff --git a/plugins/sudo/README.md b/plugins/sudo/README.md index 4f3973ef8..012fc5325 100644 --- a/plugins/sudo/README.md +++ b/plugins/sudo/README.md @@ -1,6 +1,6 @@ # sudo -Easily prefix your current or previous commands with `sudo` by pressing <kbd>esc</kbd> twice +Easily prefix your current or previous commands with `sudo` by pressing <kbd>esc</kbd> twice. To use it, add `sudo` to the plugins array in your zshrc file: @@ -43,3 +43,17 @@ $ sudo rm some-system-file.txt Password: $ ``` + +## Key binding + +By default, the `sudo` plugin uses <kbd>Esc</kbd><kbd>Esc</kbd> as the trigger. +If you want to change it, you can use the `bindkey` command to bind it to a different key: + +```sh +bindkey -M emacs '<seq>' sudo-command-line +bindkey -M vicmd '<seq>' sudo-command-line +bindkey -M viins '<seq>' sudo-command-line +``` + +where `<seq>` is the sequence you want to use. You can find the keyboard sequence +by running `cat` and pressing the keyboard combination you want to use. diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh index 1498e8d02..e23809df4 100644 --- a/plugins/symfony2/symfony2.plugin.zsh +++ b/plugins/symfony2/symfony2.plugin.zsh @@ -5,7 +5,7 @@ _symfony_console () { } _symfony2_get_command_list () { - `_symfony_console` --no-ansi | sed "1,/Available commands/d" | awk '/^ ?[^ ]+ / { print $1 }' + `_symfony_console` --no-ansi --no-debug | sed "1,/Available commands/d" | awk '/^ ?[^ ]+ / { print $1 }' } _symfony2 () { diff --git a/plugins/systemd/README.md b/plugins/systemd/README.md index 3fa1d2118..ffa0567a8 100644 --- a/plugins/systemd/README.md +++ b/plugins/systemd/README.md @@ -3,7 +3,8 @@ The systemd plugin provides many useful aliases for systemd. To use it, add systemd to the plugins array of your zshrc file: -``` + +```zsh plugins=(... systemd) ``` @@ -22,7 +23,7 @@ plugins=(... systemd) | `sc-show-environment` | `systemctl show-environment` | Dump the systemd manager environment block | | `sc-cat` | `systemctl cat` | Show backing files of one or more units | | `sc-list-timers` | `systemctl list-timers` | List timer units currently in memory | -| **Aliases with sudo** | +| **Aliases with sudo** ||| | `sc-start` | `sudo systemctl start` | Start Unit(s) | | `sc-stop` | `sudo systemctl stop` | Stop Unit(s) | | `sc-reload` | `sudo systemctl reload` | Reload Unit(s) | @@ -59,9 +60,11 @@ to your prompt, drop `$(systemd_prompt_info [unit]...)` into your prompt (more t may be specified). The plugin will add the following to your prompt for each `$unit`. -``` + +```text <prefix><unit>:<active|notactive><suffix> ``` + You can control these parts with the following variables: - `<prefix>`: Set `$ZSH_THEME_SYSTEMD_PROMPT_PREFIX`. @@ -79,7 +82,7 @@ You can control these parts with the following variables: For example, if your prompt contains `PROMPT='$(systemd_prompt_info dhcpd httpd)'` and you set the following variables: -``` +```sh ZSH_THEME_SYSTEMD_PROMPT_PREFIX="[" ZSH_THEME_SYSTEMD_PROMPT_SUFFIX="]" ZSH_THEME_SYSTEMD_PROMPT_ACTIVE="+" @@ -89,6 +92,6 @@ ZSH_THEME_SYSTEMD_PROMPT_CAPS=1 If `dhcpd` is running, and `httpd` is not, then your prompt will look like this: -``` +```text [DHCPD: +][HTTPD: X] ``` diff --git a/plugins/systemd/systemd.plugin.zsh b/plugins/systemd/systemd.plugin.zsh index c6fd52990..7afd2be58 100644 --- a/plugins/systemd/systemd.plugin.zsh +++ b/plugins/systemd/systemd.plugin.zsh @@ -1,3 +1,4 @@ +# systemctl aliases user_commands=( cat get-default @@ -14,7 +15,8 @@ user_commands=( list-units show show-environment - status) + status +) sudo_commands=( add-requires @@ -28,8 +30,6 @@ sudo_commands=( emergency enable halt - hibernate - hybrid-sleep import-environment isolate kexec @@ -38,10 +38,8 @@ sudo_commands=( list-machines load mask - poweroff preset preset-all - reboot reenable reload reload-or-restart @@ -54,18 +52,39 @@ sudo_commands=( set-property start stop - suspend switch-root try-reload-or-restart try-restart unmask - unset-environment) + unset-environment +) + +power_commands=( + hibernate + hybrid-sleep + poweroff + reboot + suspend +) -for c in $user_commands; do; alias sc-$c="systemctl $c"; done -for c in $sudo_commands; do; alias sc-$c="sudo systemctl $c"; done -for c in $user_commands; do; alias scu-$c="systemctl --user $c"; done -for c in $sudo_commands; do; alias scu-$c="systemctl --user $c"; done +for c in $user_commands; do + alias "sc-$c"="systemctl $c" + alias "scu-$c"="systemctl --user $c" +done +for c in $sudo_commands; do + alias "sc-$c"="sudo systemctl $c" + alias "scu-$c"="systemctl --user $c" +done + +for c in $power_commands; do + alias "sc-$c"="systemctl $c" +done + +unset c user_commands sudo_commands power_commands + + +# --now commands alias sc-enable-now="sc-enable --now" alias sc-disable-now="sc-disable --now" alias sc-mask-now="sc-mask --now" @@ -74,17 +93,24 @@ alias scu-enable-now="scu-enable --now" alias scu-disable-now="scu-disable --now" alias scu-mask-now="scu-mask --now" + function systemd_prompt_info { local unit - for unit in $@; do + for unit in "$@"; do echo -n "$ZSH_THEME_SYSTEMD_PROMPT_PREFIX" - [[ -n "$ZSH_THEME_SYSTEMD_PROMPT_CAPS" ]] && echo -n "${(U)unit}:" || echo -n "$unit:" - if systemctl is-active $unit &>/dev/null; then - echo -n "$ZSH_THEME_SYSTEMD_PROMPT_ACTIVE" + + if [[ -n "$ZSH_THEME_SYSTEMD_PROMPT_CAPS" ]]; then + echo -n "${(U)unit:gs/%/%%}:" else - echo -n "$ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE" + echo -n "${unit:gs/%/%%}:" fi + + if systemctl is-active "$unit" &>/dev/null; then + echo -n "$ZSH_THEME_SYSTEMD_PROMPT_ACTIVE" + else + echo -n "$ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE" + fi + echo -n "$ZSH_THEME_SYSTEMD_PROMPT_SUFFIX" done } - diff --git a/plugins/terraform/README.md b/plugins/terraform/README.md index 9e9f0cdfb..474346dc0 100644 --- a/plugins/terraform/README.md +++ b/plugins/terraform/README.md @@ -1,14 +1,7 @@ -## Terraform oh-my-zsh plugin +# Terraform plugin Plugin for Terraform, a tool from Hashicorp for managing infrastructure safely and efficiently. - -Current as of Terraform v0.13 - -### Requirements - - * [Terraform](https://terraform.io/) - -### Usage +It adds completion for `terraform`, as well as aliases and a prompt function. To use it, add `terraform` to the plugins array of your `~/.zshrc` file: @@ -16,14 +9,34 @@ To use it, add `terraform` to the plugins array of your `~/.zshrc` file: plugins=(... terraform) ``` - * Type `terraform` into your prompt and hit `TAB` to see available completion options - * Type `tf` into your prompt as a short alias to `terraform` +## Requirements -### Expanding ZSH prompt with current Terraform workspace name +* [Terraform](https://terraform.io/) -If you want to get current Terraform workspace name in your ZSH prompt open -your .zsh-theme file and in a chosen place insert: +## Aliases -```shell -PROMPT=$'%{$fg[white]%}$(tf_prompt_info)%{$reset_color%} ' +| Alias | Command | +| ----- | -------------------- | +| `tf` | `terraform` | +| `tfa` | `terraform apply` | +| `tfd` | `terraform destroy` | +| `tff` | `terraform fmt` | +| `tfi` | `terraform init` | +| `tfp` | `terraform plan` | +| `tfv` | `terraform validate` | + +## Prompt function + +You can add the current Terraform workspace in your prompt by adding `$(tf_prompt_info)` +to your `PROMPT` or `RPROMPT` variable. + +```sh +RPROMPT='$(tf_prompt_info)' +``` + +You can also specify the PREFIX and SUFFIX for the workspace with the following variables: + +```sh +ZSH_THEME_TF_PROMPT_PREFIX="%{$fg[white]%}" +ZSH_THEME_TF_PROMPT_SUFFIX="%{$reset_color%}" ``` diff --git a/plugins/terraform/terraform.plugin.zsh b/plugins/terraform/terraform.plugin.zsh index 997241c9a..f224b79f0 100644 --- a/plugins/terraform/terraform.plugin.zsh +++ b/plugins/terraform/terraform.plugin.zsh @@ -1,11 +1,17 @@ function tf_prompt_info() { - # dont show 'default' workspace in home dir - [[ "$PWD" == ~ ]] && return - # check if in terraform dir - if [[ -d .terraform && -r .terraform/environment ]]; then - workspace=$(cat .terraform/environment) || return - echo "[${workspace}]" - fi + # dont show 'default' workspace in home dir + [[ "$PWD" != ~ ]] || return + # check if in terraform dir and file exists + [[ -d .terraform && -r .terraform/environment ]] || return + + local workspace="$(< .terraform/environment)" + echo "${ZSH_THEME_TF_PROMPT_PREFIX-[}${workspace:gs/%/%%}${ZSH_THEME_TF_PROMPT_SUFFIX-]}" } alias tf='terraform' +alias tfa='terraform apply' +alias tfd='terraform destroy' +alias tff='terraform fmt' +alias tfi='terraform init' +alias tfp='terraform plan' +alias tfv='terraform validate' diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 0ea3aa02a..5474c3522 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -46,6 +46,11 @@ else export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR fi +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + # Set the correct local config file to use. if [[ "$ZSH_TMUX_ITERM2" == "false" && -e "$ZSH_TMUX_CONFIG" ]]; then export ZSH_TMUX_CONFIG diff --git a/plugins/transfer/README.md b/plugins/transfer/README.md index 5fa064445..825c9a283 100644 --- a/plugins/transfer/README.md +++ b/plugins/transfer/README.md @@ -2,23 +2,40 @@ [`transfer.sh`](https://transfer.sh) is an easy to use file sharing service from the command line -## Usage +To use it, add `transfer` to the plugins array in your zshrc file: -Add `transfer` to your plugins array in your zshrc file: ```zsh plugins=(... transfer) ``` -Then you can: +## Usage -- transfer a file: +- Transfer a file: `transfer file.txt`. -```zsh -transfer file.txt -``` +- Transfer a whole directory (it will be automatically compressed): `transfer dir`. -- transfer a whole directory (it will be automatically compressed): +### Encryption / Decryption -```zsh -transfer directory/ -``` +- Encrypt and upload a file with symmetric cipher and create ASCII armored output: + + ```zsh + transfer file -ca + ``` + +- Encrypt and upload directory with symmetric cipher and gpg output: + + ```zsh + transfer directory -ca + ``` + +- Decrypt file: + + ```zsh + gpg -d file -ca + ``` + +- Decrypt directory: + + ```zsh + gpg -d your_archive.tgz.gpg | tar xz + ``` diff --git a/plugins/transfer/transfer.plugin.zsh b/plugins/transfer/transfer.plugin.zsh index db744b0cd..b34e115ce 100644 --- a/plugins/transfer/transfer.plugin.zsh +++ b/plugins/transfer/transfer.plugin.zsh @@ -1,69 +1,97 @@ -# transfer.sh Easy file sharing from the command line -# transfer Plugin -# Usage Example : -# > transfer file.txt -# > transfer directory/ - - - # Author: # Remco Verhoef <remco@dutchcoders.io> # https://gist.github.com/nl5887/a511f172d3fb3cd0e42d # Modified to use tar command instead of zip # -curl --version 2>&1 > /dev/null -if [ $? -ne 0 ]; then - echo "Could not find curl." +transfer() { + # check arguments + if [[ $# -eq 0 ]]; then + cat <<EOF +Error: no arguments specified. + +Usage: transfer [file/folder] [options] + +Examples: + transfer /tmp/test.md + transfer /tmp/test.md -ca + cat /tmp/test.md | transfer test.md + cat /tmp/test.md | transfer test.md -ca + +Options: + -ca Encrypt file with symmetric cipher and create ASCII armored output +EOF return 1 -fi + fi -transfer() { - # check arguments - if [ $# -eq 0 ]; - then - echo "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md" - return 1 + if (( ! $+commands[curl] )); then + echo "Error: curl is not installed" + return 1 + fi + + local tmpfile tarfile item basename + + # get temporarily filename, output is written to this file show progress can be showed + tmpfile=$(mktemp -t transferXXX) + + # upload stdin or file + item="$1" + + # crypt file with symmetric cipher and create ASCII armored output + local crypt=0 + if [[ "$2" = -ca ]]; then + crypt=1 + if (( ! $+commands[gpg] )); then + echo "Error: gpg is not installed" + return 1 + fi + fi + + if ! tty -s; then + # transfer from pipe + if (( crypt )); then + gpg -aco - | curl -X PUT --progress-bar -T - "https://transfer.sh/$item" >> $tmpfile + else + curl --progress-bar --upload-file - "https://transfer.sh/$item" >> $tmpfile fi + else + basename=$(basename "$item" | sed -e 's/[^a-zA-Z0-9._-]/-/g') - # get temporarily filename, output is written to this file show progress can be showed - tmpfile=$( mktemp -t transferXXX ) - - # upload stdin or file - file=$1 + if [[ ! -e $item ]]; then + echo "File $item doesn't exist." + return 1 + fi - if tty -s; - then - basefile=$(basename "$file" | sed -e 's/[^a-zA-Z0-9._-]/-/g') + if [[ -d $item ]]; then + # tar directory and transfer + tarfile=$(mktemp -t transferXXX.tar.gz) + cd $(dirname $item) || { + echo "Error: Could not change to directory $(dirname $item)" + return 1 + } - if [ ! -e $file ]; - then - echo "File $file doesn't exists." - return 1 - fi - - if [ -d $file ]; - then - echo $file - # tar directory and transfer - tarfile=$( mktemp -t transferXXX.tar.gz ) - cd $(dirname $file) && tar -czf $tarfile $(basename $file) - curl --progress-bar --upload-file "$tarfile" "https://transfer.sh/$basefile.tar.gz" >> $tmpfile - rm -f $tarfile - else - # transfer file - curl --progress-bar --upload-file "$file" "https://transfer.sh/$basefile" >> $tmpfile - fi - else - # transfer pipe - curl --progress-bar --upload-file "-" "https://transfer.sh/$file" >> $tmpfile + tar -czf $tarfile $(basename $item) + if (( crypt )); then + gpg -cao - "$tarfile" | curl --progress-bar -T "-" "https://transfer.sh/$basename.tar.gz.gpg" >> $tmpfile + else + curl --progress-bar --upload-file "$tarfile" "https://transfer.sh/$basename.tar.gz" >> $tmpfile + fi + rm -f $tarfile + else + # transfer file + if (( crypt )); then + gpg -cao - "$item" | curl --progress-bar -T "-" "https://transfer.sh/$basename.gpg" >> $tmpfile + else + curl --progress-bar --upload-file "$item" "https://transfer.sh/$basename" >> $tmpfile + fi fi - - # cat output link - cat $tmpfile - # add newline - echo + fi + + # cat output link + cat $tmpfile + # add newline + echo - # cleanup - rm -f $tmpfile + # cleanup + rm -f $tmpfile } diff --git a/plugins/ubuntu/README.md b/plugins/ubuntu/README.md index 9efef0732..20f5c65ee 100644 --- a/plugins/ubuntu/README.md +++ b/plugins/ubuntu/README.md @@ -16,6 +16,7 @@ Commands that use `$APT` will use `apt` if installed or defer to `apt-get` other |---------|--------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| | age | `sudo $APT` | Run apt-get with sudo | | acs | `apt-cache search` | Search the apt-cache with the specified criteria | +| acsp | `apt-cache showpkg` | Shows information about the listed packages | | acp | `apt-cache policy` | Display the package source priorities | | afs | `apt-file search --regexp` | Perform a regular expression apt-file search | | afu | `sudo apt-file update` | Generates or updates the apt-file package database | diff --git a/plugins/vi-mode/README.md b/plugins/vi-mode/README.md index 46bb6d070..a1d6bc6b0 100644 --- a/plugins/vi-mode/README.md +++ b/plugins/vi-mode/README.md @@ -32,16 +32,21 @@ plugins=(... vi-mode) - `MODE_INDICATOR`: controls the string displayed when the shell is in normal mode. See [Mode indicator](#mode-indicator) for details. -## Mode indicator +- `INSERT_MODE_INDICATOR`: controls the string displayed when the shell is in insert mode. + See [Mode indicator](#mode-indicator) for details. + +## Mode indicators *Normal mode* is indicated with a red `<<<` mark at the right prompt, when it -hasn't been defined by theme. +hasn't been defined by theme, *Insert mode* is not displayed by default. -You can change this indicator by setting the `MODE_INDICATOR` variable. This setting -supports Prompt Expansion sequences. For example: +You can change these indicators by setting the `MODE_INDICATOR` (*Normal mode*) and +`INSERT_MODE_INDICATORS` (*Insert mode*) variables. +This settings support Prompt Expansion sequences. For example: ```zsh -MODE_INDICATOR="%F{yellow}+%f" +MODE_INDICATOR="%F{white}+%f" +INSERT_MODE_INDICATOR="%F{yellow}+%f" ``` You can also use the `vi_mode_prompt_info` function in your prompt, which will display diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index dd4afdd8b..b40b29961 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -123,7 +123,7 @@ wrap_clipboard_widgets copy vi-yank vi-yank-eol vi-backward-kill-word vi-change- wrap_clipboard_widgets paste vi-put-{before,after} unfunction wrap_clipboard_widgets -# if mode indicator wasn't setup by theme, define default +# if mode indicator wasn't setup by theme, define default, we'll leave INSERT_MODE_INDICATOR empty by default if [[ -z "$MODE_INDICATOR" ]]; then MODE_INDICATOR='%B%F{red}<%b<<%f' fi @@ -136,7 +136,7 @@ function vi_mode_prompt_info() { # set RPS1/RPROMPT to something else in their custom config. : "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE:=true}" - echo "${${VI_KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}" + echo "${${VI_KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/$INSERT_MODE_INDICATOR}" } # define right prompt, if it wasn't defined by a theme diff --git a/plugins/volta/_volta b/plugins/volta/_volta deleted file mode 100644 index 295b80362..000000000 --- a/plugins/volta/_volta +++ /dev/null @@ -1,298 +0,0 @@ -#compdef volta - -autoload -U is-at-least - -_volta() { - typeset -A opt_args - typeset -a _arguments_options - local ret=1 - - if is-at-least 5.2; then - _arguments_options=(-s -S -C) - else - _arguments_options=(-s -C) - fi - - local context curcontext="$curcontext" state line - _arguments "${_arguments_options[@]}" \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -'-v[Prints the current version of Volta]' \ -'--version[Prints the current version of Volta]' \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -":: :_volta_commands" \ -"*::: :->Volta" \ -&& ret=0 - case $state in - (Volta) - words=($line[1] "${words[@]}") - (( CURRENT += 1 )) - curcontext="${curcontext%:*:*}:volta-command-$line[1]:" - case $line[1] in - (fetch) -_arguments "${_arguments_options[@]}" \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -':tool[@version] -- Tools to fetch, like `node`, `yarn@latest` or `your-package@^14.4.3`.:_files' \ -&& ret=0 -;; -(install) -_arguments "${_arguments_options[@]}" \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -':tool[@version] -- Tools to install, like `node`, `yarn@latest` or `your-package@^14.4.3`.:_files' \ -&& ret=0 -;; -(uninstall) -_arguments "${_arguments_options[@]}" \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -':tool -- The tool to uninstall, e.g. `node`, `npm`, `yarn`, or <package>:_files' \ -&& ret=0 -;; -(pin) -_arguments "${_arguments_options[@]}" \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -':tool[@version] -- Tools to pin, like `node@lts` or `yarn@^1.14`.:_files' \ -&& ret=0 -;; -(ls) -_arguments "${_arguments_options[@]}" \ -'--format=[Specify the output format]: :(human plain)' \ -'(-d --default)-c[Show the currently-active tool(s)]' \ -'(-d --default)--current[Show the currently-active tool(s)]' \ -'(-c --current)-d[Show your default tool(s).]' \ -'(-c --current)--default[Show your default tool(s).]' \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -'::tool -- The tool to lookup - `all`, `node`, `yarn`, or the name of a package or binary.:_files' \ -&& ret=0 -;; -(list) -_arguments "${_arguments_options[@]}" \ -'--format=[Specify the output format]: :(human plain)' \ -'(-d --default)-c[Show the currently-active tool(s)]' \ -'(-d --default)--current[Show the currently-active tool(s)]' \ -'(-c --current)-d[Show your default tool(s).]' \ -'(-c --current)--default[Show your default tool(s).]' \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -'::tool -- The tool to lookup - `all`, `node`, `yarn`, or the name of a package or binary.:_files' \ -&& ret=0 -;; -(completions) -_arguments "${_arguments_options[@]}" \ -'-o+[File to write generated completions to]' \ -'--output=[File to write generated completions to]' \ -'-f[Write over an existing file, if any.]' \ -'--force[Write over an existing file, if any.]' \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -':shell -- Shell to generate completions for:(zsh bash fish powershell elvish)' \ -&& ret=0 -;; -(which) -_arguments "${_arguments_options[@]}" \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -':binary -- The binary to find, e.g. `node` or `npm`:_files' \ -&& ret=0 -;; -(use) -_arguments "${_arguments_options[@]}" \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -'::anything:_files' \ -&& ret=0 -;; -(setup) -_arguments "${_arguments_options[@]}" \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -&& ret=0 -;; -(run) -_arguments "${_arguments_options[@]}" \ -'--node=[Set the custom Node version]' \ -'(--bundled-npm)--npm=[Set the custom npm version]' \ -'(--no-yarn)--yarn=[Set the custom Yarn version]' \ -'*--env=[Set an environment variable (can be used multiple times)]' \ -'(--npm)--bundled-npm[Forces npm to be the version bundled with Node]' \ -'(--yarn)--no-yarn[Disables Yarn]' \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -':command -- The command to run:_files' \ -'::args -- Arguments to pass to the command:_files' \ -&& ret=0 -;; -(help) -_arguments "${_arguments_options[@]}" \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'--verbose[Enables verbose diagnostics]' \ -'(--verbose)--quiet[Prevents unnecessary output]' \ -&& ret=0 -;; - esac - ;; -esac -} - -(( $+functions[_volta_commands] )) || -_volta_commands() { - local commands; commands=( - "fetch:Fetches a tool to the local machine" \ -"install:Installs a tool in your toolchain" \ -"uninstall:Uninstalls a tool from your toolchain" \ -"pin:Pins your project's runtime or package manager" \ -"list:Displays the current toolchain" \ -"completions:Generates Volta completions" \ -"which:Locates the actual binary that will be called by Volta" \ -"use:" \ -"setup:Enables Volta for the current user / shell" \ -"run:Run a command with custom Node, npm, and/or Yarn versions" \ -"help:Prints this message or the help of the given subcommand(s)" \ - ) - _describe -t commands 'volta commands' commands "$@" -} -(( $+functions[_volta__completions_commands] )) || -_volta__completions_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta completions commands' commands "$@" -} -(( $+functions[_volta__fetch_commands] )) || -_volta__fetch_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta fetch commands' commands "$@" -} -(( $+functions[_volta__help_commands] )) || -_volta__help_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta help commands' commands "$@" -} -(( $+functions[_volta__install_commands] )) || -_volta__install_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta install commands' commands "$@" -} -(( $+functions[_volta__list_commands] )) || -_volta__list_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta list commands' commands "$@" -} -(( $+functions[_ls_commands] )) || -_ls_commands() { - local commands; commands=( - - ) - _describe -t commands 'ls commands' commands "$@" -} -(( $+functions[_volta__ls_commands] )) || -_volta__ls_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta ls commands' commands "$@" -} -(( $+functions[_volta__pin_commands] )) || -_volta__pin_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta pin commands' commands "$@" -} -(( $+functions[_volta__run_commands] )) || -_volta__run_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta run commands' commands "$@" -} -(( $+functions[_volta__setup_commands] )) || -_volta__setup_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta setup commands' commands "$@" -} -(( $+functions[_volta__uninstall_commands] )) || -_volta__uninstall_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta uninstall commands' commands "$@" -} -(( $+functions[_volta__use_commands] )) || -_volta__use_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta use commands' commands "$@" -} -(( $+functions[_volta__which_commands] )) || -_volta__which_commands() { - local commands; commands=( - - ) - _describe -t commands 'volta which commands' commands "$@" -} - -_volta "$@"
\ No newline at end of file diff --git a/plugins/volta/volta.plugin.zsh b/plugins/volta/volta.plugin.zsh new file mode 100644 index 000000000..756dc84b3 --- /dev/null +++ b/plugins/volta/volta.plugin.zsh @@ -0,0 +1,19 @@ +# COMPLETION FUNCTION +if (( ! $+commands[volta] )); then + return +fi + +# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh +# Add completions folder in $ZSH_CACHE_DIR +command mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `deno`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_volta" ]]; then + declare -A _comps + autoload -Uz _volta + _comps[volta]=_volta +fi + +volta completions zsh >| "$ZSH_CACHE_DIR/completions/_volta" &| diff --git a/plugins/wd/wd.plugin.zsh b/plugins/wd/wd.plugin.zsh index 87d1d0858..ca2ca7c65 100644 --- a/plugins/wd/wd.plugin.zsh +++ b/plugins/wd/wd.plugin.zsh @@ -7,4 +7,9 @@ # # @github.com/mfaerevaag/wd +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + eval "wd() { source '${0:A:h}/wd.sh' }" diff --git a/plugins/yarn/_yarn b/plugins/yarn/_yarn index 9173eca20..9db02602e 100644 --- a/plugins/yarn/_yarn +++ b/plugins/yarn/_yarn @@ -85,36 +85,67 @@ _global_commands=( 'upgrade-interactive:Interactively upgrade packages' ) +_yarn_find_package_json() { + local dir=$(cd "$1" && pwd) + + while true + do + if [[ -e "${dir}/package.json" ]]; then + echo "${dir}/package.json" + return + fi + + if [[ $dir == '/' ]]; then + break + fi + + dir=$(dirname $dir) + done +} + _yarn_commands_scripts() { - local -a scripts + local -a scripts binaries + local packageJson + if [[ -n $opt_args[--cwd] ]]; then - scripts=($(cd $opt_args[--cwd] && yarn run --json 2>/dev/null | sed -E '/Commands available|possibleCommands/!d;s/.*Commands available from binary scripts: ([^"]+)".*/\1/;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g' | tr , '\n' | sed -e 's/:/\\:/g')) + packageJson=$(_yarn_find_package_json $opt_args[--cwd]) + binaries=($(cd $opt_args[--cwd] && echo node_modules/.bin/*(x:t))) else - scripts=($(yarn run --json 2>/dev/null | sed -E '/Commands available|possibleCommands/!d;s/.*Commands available from binary scripts: ([^"]+)".*/\1/;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g' | tr , '\n' | sed -e 's/:/\\:/g')) + packageJson=$(_yarn_find_package_json $pwd) + binaries=($(echo node_modules/.bin/*(x:t))) fi - _describe 'command or script' _commands -- _global_commands -- scripts + if [[ -n $packageJson ]]; then + scripts=($(cat "$packageJson" | perl -0777 -MJSON::PP -n -E '%r=decode_json($_); say for sort keys %{$r->{scripts}}')) + fi + + _describe 'command or script' _commands -- _global_commands -- scripts -- binaries } _yarn_scripts() { - local -a commands binaries scripts - local -a scriptNames scriptCommands - local i runJSON + local -a binaries scripts + local -a commands + local packageJson if [[ -n $_yarn_run_cwd ]]; then - runJSON=$(cd $_yarn_run_cwd && yarn run --json 2>/dev/null) + packageJson=$(_yarn_find_package_json $_yarn_run_cwd) + if [[ -d "${_yarn_run_cwd}/node_modules" ]]; then + binaries=($(cd $_yarn_run_cwd && echo node_modules/.bin/*(x:t))) + else + binaries=($(cd $_yarn_run_cwd && yarn bin | perl -wln -e 'm{^[^:]+: (\S+)$} and print $1')) + fi else - runJSON=$(yarn run --json 2>/dev/null) + packageJson=$(_yarn_find_package_json $pwd) + if [[ -d node_modules ]]; then + binaries=($(echo node_modules/.bin/*(x:t))) + else + binaries=($(yarn bin | perl -wln -e 'm{^[^:]+: (\S+)$} and print $1')) + fi + fi + + if [[ -n $packageJson ]]; then + scripts=("${(@f)$(cat ${packageJson} | perl -0777 -MJSON::PP -n -E '%r=%{decode_json($_)->{scripts}}; printf "$_:$r{$_}\n" for sort keys %r')}") fi - # Some sed utilities (e.g. Mac OS / BSD) don't interpret `\n` in a replacement - # pattern as a newline. See https://superuser.com/q/307165 - binaries=($(sed -E '/Commands available/!d;s/.*Commands available from binary scripts: ([^"]+)".*/\1/;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\'$'\n/g' <<< "$runJSON")) - scriptNames=($(sed -E '/possibleCommands/!d;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\'$'\n/g' <<< "$runJSON")) - scriptCommands=("${(@f)$(sed -E '/possibleCommands/!d;s/.*"hints":\{(.+")\}.*/\1/;s/"[^"]+"://g;s/:/\\:/g;s/","/\'$'\n/g;s/(^"|"$)//g' <<< "$runJSON")}") - - for (( i=1; i <= $#scriptNames; i++ )); do - scripts+=("${scriptNames[$i]}:${scriptCommands[$i]}") - done commands=('env' $scripts $binaries) _describe 'command' commands @@ -137,7 +168,13 @@ _yarn_add_files() { } _yarn_workspaces() { - local -a workspaces=(${(@f)$(yarn workspaces info |sed -n -e 's/^ "\([^"]*\)": {/\1/p')}) + local version=$(yarn --version |sed -n 's|\([0-9]*\).*|\1|p') + local -a workspaces + if [[ $version == "1" ]]; then + workspaces=(${(@f)$(yarn workspaces info |sed -n -e 's/^ "\([^"]*\)": {/\1/p')}) + else + workspaces=(${(@f)$(yarn workspaces list --json | sed -n 's|.*"name":"\([^"]*\)"}|\1|p')}) + fi _describe 'workspace' workspaces } diff --git a/plugins/yarn/yarn.plugin.zsh b/plugins/yarn/yarn.plugin.zsh index a4f595c61..9ba24420a 100644 --- a/plugins/yarn/yarn.plugin.zsh +++ b/plugins/yarn/yarn.plugin.zsh @@ -1,5 +1,8 @@ -# Add yarn bin directory to $PATH if it exists and not in $PATH already -bindir=$(yarn global bin 2>/dev/null) \ +# Skip yarn call if default global bin dir exists +[[ -d "$HOME/.yarn/bin" ]] && bindir="$HOME/.yarn/bin" || bindir="$(yarn global bin 2>/dev/null)" + +# Add yarn bin directory to $PATH if it exists and not already in $PATH +[[ $? -eq 0 ]] \ && [[ -d "$bindir" ]] \ && (( ! ${path[(Ie)$bindir]} )) \ && path+=("$bindir") diff --git a/plugins/z/z.plugin.zsh b/plugins/z/z.plugin.zsh index 96abee890..7d3eacac0 100644 --- a/plugins/z/z.plugin.zsh +++ b/plugins/z/z.plugin.zsh @@ -1 +1,6 @@ +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + source "${0:h}/z.sh" diff --git a/plugins/zbell/README.md b/plugins/zbell/README.md index 1c1c13546..eb87699c4 100644 --- a/plugins/zbell/README.md +++ b/plugins/zbell/README.md @@ -24,6 +24,9 @@ These settings need to be set in your zshrc file, before Oh My Zsh is sourced. zbell_ignore=($EDITOR $PAGER) ``` +- `zbell_use_notify_send`: If set to `true`, `notify-send` tool is used -- if + available -- to display a popup on the screen. Default: `true` (enabled). + ## Author Adapted from an original version by [Jean-Philippe Ouellet](https://github.com/jpouellet). diff --git a/plugins/zbell/zbell.plugin.zsh b/plugins/zbell/zbell.plugin.zsh index 6d0416502..8e374029b 100644 --- a/plugins/zbell/zbell.plugin.zsh +++ b/plugins/zbell/zbell.plugin.zsh @@ -29,18 +29,31 @@ autoload -Uz regexp-replace || return # initialize zbell_ignore if not set (( ${+zbell_ignore} )) || zbell_ignore=($EDITOR $PAGER) +# initialize zbell_use_notify_send if not set +(( ${+zbell_use_notify_send} )) || zbell_use_notify_send=true + # initialize it because otherwise we compare a date and an empty string # the first time we see the prompt. it's fine to have lastcmd empty on the # initial run because it evaluates to an empty string, and splitting an # empty string just results in an empty array. zbell_timestamp=$EPOCHSECONDS +# UI notification function +# $1: command +# $2: duration in seconds +zbell_ui_notify() { + [[ $zbell_use_notify_send != "true" ]] && return + + if type notify-send > /dev/null; then + notify-send -i terminal "Command completed in ${2}s:" $1 + fi +} + # default notification function # $1: command # $2: duration in seconds zbell_notify() { - type notify-send > /dev/null && \ - notify-send -i terminal "Command completed in ${2}s:" $1 + zbell_ui_notify "${@}" print -n "\a" } diff --git a/plugins/zsh-navigation-tools/.config/znt/README.txt b/plugins/zsh-navigation-tools/.config/znt/README.txt deleted file mode 100644 index c3d6c821a..000000000 --- a/plugins/zsh-navigation-tools/.config/znt/README.txt +++ /dev/null @@ -1 +0,0 @@ -These are skeletons, configuration is read from ~/.config/znt/* diff --git a/plugins/zsh-navigation-tools/README.md b/plugins/zsh-navigation-tools/README.md index 7d2ce99f4..bdbfac976 100644 --- a/plugins/zsh-navigation-tools/README.md +++ b/plugins/zsh-navigation-tools/README.md @@ -1,207 +1,41 @@ [![License (GPL version 3)](https://img.shields.io/badge/license-GNU%20GPL%20version%203-blue.svg?style=flat-square)](./LICENSE) [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](./LICENSE) ![ZSH 5.0.0](https://img.shields.io/badge/zsh-v5.0.0-orange.svg?style=flat-square) +[![Gitter][gitter-image]][gitter-link] -![znt logo](http://imageshack.com/a/img905/2629/WK9qjN.png) - -[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=D6XDCHDSBDSDG) +![znt logo](https://imageshack.com/a/img905/2629/WK9qjN.png) # Zsh Navigation Tools -Also check out [![ZCA](http://imageshack.com/a/img911/8084/qSpO8a.png) Zsh Command Architect](https://github.com/psprint/zsh-cmd-architect) -and [Zconvey](https://github.com/psprint/zconvey) - - - -Videos: -- [https://youtu.be/QwZ8IJEgXRE](https://youtu.be/QwZ8IJEgXRE) -- [https://youtu.be/DN9QqssAYB8](https://youtu.be/DN9QqssAYB8) - -Screenshots: - -![n-history](http://imageshack.com/a/img921/5046/bqr0mk.png) - -![n-history](http://imageshack.com/a/img633/9905/WzfSdl.gif) - -Set of tools like `n-history` – multi-word history searcher, `n-cd` – directory -bookmark manager, `n-kill` – `htop` like kill utility, and more. Based on +Set of tools like `n-history` – multi-word history searcher, `n-cd` – directory +bookmark manager, `n-kill` – `htop` like kill utility, and more. Based on `n-list`, a tool generating selectable curses-based list of elements that has access to current `Zsh` session, i.e. has broad capabilities to work together with it. Feature highlights include incremental multi-word searching, approximate matching, ANSI coloring, themes, unique mode, horizontal scroll, grepping, advanced history management and various integrations with `Zsh`. -## News -* 06-10-2016 - - **Tmux-integration** – `Ctrl-B H` in Tmux to open `n-history` in new window. - Then select history entry, it will be copied to the original Tmux window. - Use this to execute local commands on remote hosts: - - ![tmux integration](http://imageshack.com/a/img922/4760/oyX7eN.gif) - - All that is needed is this line added to `~/.tmux.conf`: - - ``` - bind h run-shell -b "$ZNT_REPO_DIR/doc/znt-tmux.zsh" - ``` - - or – if Homebrew or other package manager is used: - - ``` - bind h run-shell -b "$ZNT_REPO_DIR/znt-tmux.zsh" - ``` - -* 16-05-2016 - - `n-kill` has completion. It proposes **words** from what's in `ps -A`. Giving `n-kill` - arguments means grepping – it will start only with matching `ps` entries. - -* 15-05-2016 - - Fixed problem where zsh-syntax-highlighting could render `n-history` slow (for - long history entries). - -* 14-05-2016 - - Configuration can be set from `zshrc` (starting from `v2.1.12`). Documentation is [below](#configuration). Example: - - ```zsh - znt_list_instant_select=1 - znt_list_border=0 - znt_list_bold=1 - znt_list_colorpair="green/black" - znt_functions_keywords=( "zplg" "zgen" "match" ) - znt_cd_active_text="underline" - znt_env_nlist_coloring_color=$'\x1b[00;33m' - znt_cd_hotlist=( "~/.config/znt" "/usr/share/zsh/site-functions" "/usr/share/zsh" - "/usr/local/share/zsh/site-functions" "/usr/local/share/zsh" - "/usr/local/bin" ) - ``` - -* 10-05-2016 - - Search query rotation – use `Ctrl-A` to rotate entered words right. - Words `1 2 3` become `3 1 2`. - -* 09-05-2016 - - New feature: n-help tool, available also from n-history via `H` key. It - displays help screen with various information on `ZNT`. - - ![n-help](http://imageshack.com/a/img922/7595/MvtJdI.gif) - -* 08-05-2016 - - Approximate matching – pressing `f` or `Ctrl-F` will enter "`FIX`" mode, - in which `1` or `2` errors are allowed in what's searched. This utilizes - original Zsh approximate matching features and is intended to be used - after entering search query, when a typo is discovered. - - ![fix mode](http://imageshack.com/a/img921/5756/64lFnv.gif) - -* 06-05-2016 - - Private history can be edited. Use `e` key or `Ctrl-E` for that when in - n-history. Your `$EDITOR` will start. This is a way to have handy set of - bookmarks prepared in private history's file. - - Border can be disabled. Use following snippet in `~/.config/znt/n-list.conf` - or any other tool-targetted config file: - - ```zsh - # Should draw the border? - local border=0 - ``` - -* 30-04-2016 - - New feature: color themes. Use `Ctrl-T` and `Ctrl-G` to browse predefined - themes. They are listed in [~/.config/znt/n-list.conf](https://github.com/psprint/zsh-navigation-tools/blob/master/.config/znt/n-list.conf). - Use the file to permanently set a color scheme. Also, I sent a patch to Zsh developers - and starting from Zsh > 5.2 (not yet released) supported will be 256 colors. - The file [~/.config/znt/n-list.conf](https://github.com/psprint/zsh-navigation-tools/blob/master/.config/znt/n-list.conf) - already has set of 256-color themes prepared :) - - ![themes](http://imageshack.com/a/img924/4310/EbRh30.gif) - -* 29-04-2016 - - New feature: private history – n-history tracks selected history entries, - exposes them via new view (activated with `F1`). It is shared across all - sessions - -* 28-04-2016 - - New features: - 1. New n-history view (activated with `F1`): Most Frequent History Words - 2. Predefined search keywords – use F2 to quickly search for chosen - keywords (video: [https://youtu.be/DN9QqssAYB8](https://youtu.be/DN9QqssAYB8)) - 3. Configuration option for doing instant selection in search mode - -## Installation - -``` -sh -c "$(curl -fsSL https://raw.githubusercontent.com/psprint/zsh-navigation-tools/master/doc/install.sh)" -``` - -To update run the command again. - -`ZNT` will be installed at `~/.config/znt/zsh-navigation-tools`, config files will be copied to `~/.config/znt`. `.zshrc` -will be updated with only `8` lines of code, which will be added at the bottom. - -After installing and reloading shell give `ZNT` a quick try with `Ctrl-R` – this keyboard shortcut will open `n-history`. - -## Installation With [Zplugin](https://github.com/psprint/zplugin) -Add `zplugin load psprint/zsh-navigation-tools` to `.zshrc`. The config files will be in `~/.config/znt`. - -## Installation With Zgen - -Add `zgen load psprint/zsh-navigation-tools` to `.zshrc` and issue a `zgen reset` (this assumes that there is a proper `zgen save` construct in `.zshrc`). -The config files will be available in `~/.config/znt`. - -## Installation With Antigen -Add `antigen bundle psprint/zsh-navigation-tools` to `.zshrc`. There also -should be `antigen apply`. The config files will be in `~/.config/znt`. - -## Single File Manual Installation - -Running script `doc/generate_single_file` will create single-file version of `ZNT`. -It can be sourced from `.zshrc`. Don't forget about configuration files as described -above. - -## Manual Installation - -After extracting `ZNT` to `{some-directory}` add following two lines -to `~/.zshrc`: +To use it, add `zsh-navigation-tools` to the plugins array in your zshrc file: ```zsh -fpath+=( {some-directory} ) -source "{some-directory}/zsh-navigation-tools.plugin.zsh" +plugins=(... zsh-navigation-tools) ``` -As you can see, no plugin manager is needed to use the `*.plugin.zsh` -file. The above two lines of code are all that almost **all** plugin -managers do. In fact, what's actually needed is only: +Also check out [![ZCA](https://imageshack.com/a/img911/8084/qSpO8a.png) Zsh Command Architect](https://github.com/zdharma-continuum/zsh-cmd-architect) +and [Zconvey](https://github.com/zdharma-continuum/zconvey) -```zsh -source "{some-directory}/zsh-navigation-tools.plugin.zsh" -``` - -because `ZNT` detects if it is used by **any** plugin manager and can -handle `$fpath` update by itself. - -## Truly Manual Installation -Copy (or link) all `n-*` and `znt-*` files to **/usr/share/zsh/site-functions/** -(or **/usr/local/share/zsh/site-functions/**, check with `echo $fpath[1]`) and then add: - autoload n-list n-cd n-env n-kill n-panelize n-options n-aliases n-functions n-history n-help -to `~/.zshrc`. - -Create aliases to avoid typing of the minus sign "-": +Videos: +- [https://youtu.be/QwZ8IJEgXRE](https://youtu.be/QwZ8IJEgXRE) +- [https://youtu.be/DN9QqssAYB8](https://youtu.be/DN9QqssAYB8) -```zsh -alias naliases=n-aliases ncd=n-cd nenv=n-env nfunctions=n-functions nhistory=n-history -alias nkill=n-kill noptions=n-options npanelize=n-panelize nhelp=n-help -``` +Screenshots: -Don't forget to copy [configuration files](https://github.com/psprint/zsh-navigation-tools/tree/master/.config/znt). They should go to `~/.config/znt`. Moreover, `n-cd` works together with option `AUTO_PUSHD` and you should have: +![n-history](https://imageshack.com/a/img921/5046/bqr0mk.png) -```zsh -setopt AUTO_PUSHD -``` +![n-history](https://imageshack.com/a/img633/9905/WzfSdl.gif) -in `.zshrc` (also recommend `PUSHD_IGNORE_DUPS`). Without the option `n-cd` -will just work as incremental searcher of directory bookmarks. ## History Widget @@ -397,15 +231,7 @@ The same with doing any non-typical Zsh Navigation Tools installation. ## More -- be aware of [this](https://github.com/psprint/zsh-navigation-tools/blob/f49f910d239ae5bc6e1a5bb34930307b4f4e3ffe/zsh-navigation-tools.plugin.zsh#L35-L49) - -## IRC Channel - -Channel `#zplugin@freenode` is a support place for all author's projects. Connect to: -[chat.freenode.net:6697](ircs://chat.freenode.net:6697/%23zplugin) (SSL) or [chat.freenode.net:6667](irc://chat.freenode.net:6667/%23zplugin) - and join #zplugin. - -Following is a quick access via Webchat [![IRC](https://kiwiirc.com/buttons/chat.freenode.net/zplugin.png)](https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin) +- be aware of [this](https://github.com/zdharma-continuum/zsh-navigation-tools/blob/f49f910d239ae5bc6e1a5bb34930307b4f4e3ffe/zsh-navigation-tools.plugin.zsh#L35-L49) # Fixing tmux, screen and linux vt @@ -429,3 +255,5 @@ It will not display underline properly, but will instead highlight by a color, which is quite nice. The same will not work for FreeBSD's vt, `ZNT` will detect if that vt is used and will revert to highlighting elements via `reverse` mode. +[gitter-image]: https://badges.gitter.im/zdharma-continuum/community.svg +[gitter-link]: https://gitter.im/zdharma-continuum/community diff --git a/plugins/zsh-navigation-tools/doc/generate_single_file b/plugins/zsh-navigation-tools/doc/generate_single_file new file mode 100755 index 000000000..d3d393834 --- /dev/null +++ b/plugins/zsh-navigation-tools/doc/generate_single_file @@ -0,0 +1,35 @@ +#!/bin/zsh + +local PLUGIN_FILE="doc/zshnavigationtools.plugin.zsh" + +[ -d doc ] || cd .. + +rm -vf "$PLUGIN_FILE" +echo "# The preamble comments apply when using ZNT as autoload functions" >>"$PLUGIN_FILE" +echo "# https://github.com/psprint/zsh-navigation-tools" >>"$PLUGIN_FILE" +echo "# License is GPLv3 and MIT" >>"$PLUGIN_FILE" +echo -n "# " >>"$PLUGIN_FILE" +git show-ref master | head -1 >>"$PLUGIN_FILE" +echo >>"$PLUGIN_FILE" + +for i in n-*(on); do + echo "$i() {" >>"$PLUGIN_FILE" + cat "$i" >>"$PLUGIN_FILE" + echo "}" >>"$PLUGIN_FILE" + echo "alias n${i#n-}=$i" >>"$PLUGIN_FILE" + echo >>"$PLUGIN_FILE" +done + +# Append znt-* files +for i in znt-*(on); do + echo "$i() {" >>"$PLUGIN_FILE" + cat "$i" >>"$PLUGIN_FILE" + echo "}" >>"$PLUGIN_FILE" + echo >>"$PLUGIN_FILE" +done + +# Append ^R bind +echo "zle -N znt-history-widget" >>"$PLUGIN_FILE" +echo "bindkey '^R' znt-history-widget" >>"$PLUGIN_FILE" +echo "setopt AUTO_PUSHD HIST_IGNORE_DUPS PUSHD_IGNORE_DUPS" >>"$PLUGIN_FILE" + diff --git a/plugins/zsh-navigation-tools/doc/img/n-history2.png b/plugins/zsh-navigation-tools/doc/img/n-history2.png Binary files differnew file mode 100644 index 000000000..fa23de00d --- /dev/null +++ b/plugins/zsh-navigation-tools/doc/img/n-history2.png diff --git a/plugins/zsh-navigation-tools/doc/install.sh b/plugins/zsh-navigation-tools/doc/install.sh new file mode 100755 index 000000000..2b71aa3b4 --- /dev/null +++ b/plugins/zsh-navigation-tools/doc/install.sh @@ -0,0 +1,70 @@ +#!/bin/sh + +if ! type git 2>/dev/null 1>&2; then + echo "Please install GIT first" + echo "Exiting" + exit 1 +fi + +# +# Clone or pull +# + +if ! test -d "$HOME/.config"; then + mkdir "$HOME/.config" +fi + +if ! test -d "$HOME/.config/znt"; then + mkdir "$HOME/.config/znt" +fi + +echo ">>> Downloading zsh-navigation-tools to ~/.config/znt" +if test -d ~/.config/znt/zsh-navigation-tools; then + cd ~/.config/znt/zsh-navigation-tools + git pull origin master +else + cd ~/.config/znt + git clone https://github.com/psprint/zsh-navigation-tools.git zsh-navigation-tools +fi +echo ">>> Done" + +# +# Copy configs +# + +echo ">>> Copying config files" + +cd ~/.config/znt + +set n-aliases.conf n-env.conf n-history.conf n-list.conf n-panelize.conf n-cd.conf n-functions.conf n-kill.conf n-options.conf + +for i; do + if ! test -f "$i"; then + cp -v zsh-navigation-tools/.config/znt/$i . + fi +done + +echo ">>> Done" + +# +# Modify .zshrc +# + +echo ">>> Updating .zshrc" +if ! grep zsh-navigation-tools ~/.zshrc >/dev/null 2>&1; then + echo >> ~/.zshrc + echo "### ZNT's installer added snippet ###" >> ~/.zshrc + echo "fpath=( \"\$fpath[@]\" \"\$HOME/.config/znt/zsh-navigation-tools\" )" >> ~/.zshrc + echo "autoload n-aliases n-cd n-env n-functions n-history n-kill n-list n-list-draw n-list-input n-options n-panelize n-help" >> ~/.zshrc + echo "autoload znt-usetty-wrapper znt-history-widget znt-cd-widget znt-kill-widget" >> ~/.zshrc + echo "alias naliases=n-aliases ncd=n-cd nenv=n-env nfunctions=n-functions nhistory=n-history" >> ~/.zshrc + echo "alias nkill=n-kill noptions=n-options npanelize=n-panelize nhelp=n-help" >> ~/.zshrc + echo "zle -N znt-history-widget" >> ~/.zshrc + echo "bindkey '^R' znt-history-widget" >> ~/.zshrc + echo "setopt AUTO_PUSHD HIST_IGNORE_DUPS PUSHD_IGNORE_DUPS" >> ~/.zshrc + echo "zstyle ':completion::complete:n-kill::bits' matcher 'r:|=** l:|=*'" >> ~/.zshrc + echo "### END ###" >> ~/.zshrc + echo ">>> Done" +else + echo ">>> .zshrc already updated, not making changes" +fi diff --git a/plugins/zsh-navigation-tools/doc/n-preview b/plugins/zsh-navigation-tools/doc/n-preview new file mode 100644 index 000000000..2d8eea3fb --- /dev/null +++ b/plugins/zsh-navigation-tools/doc/n-preview @@ -0,0 +1,224 @@ +# Copy this file into /usr/share/zsh/site-functions/ +# and add 'autoload n-preview` to .zshrc +# +# This is partially a test if n-list-draw and n-list-input can be +# used multiple times to create multiple lists. It might become +# more usable if someone adds more features like previewing of +# archive contents. + +emulate -L zsh + +zmodload zsh/curses + +setopt typesetsilent extendedglob +trap "return" TERM INT QUIT +trap "_vpreview_exit" EXIT + +local IFS=" +" + +[ -f ~/.config/znt/n-list.conf ] && . ~/.config/znt/n-list.conf + +[[ "$colorpair" = "" ]] && colorpair="white/black" +local background="${colorpair#*/}" + +# Drawing and input +autoload n-list-draw n-list-input + +# Cleanup before any exit +_vpreview_exit() { + zcurses 2>/dev/null delwin files + zcurses 2>/dev/null delwin body + zcurses 2>/dev/null delwin status + zcurses 2>/dev/null refresh + zcurses end +} + +# Outputs a message in the bottom of the screen +_vpreview_status_msg() { + zcurses move status 1 2 + zcurses clear status eol + zcurses string status "$1" +} + +# Prefer tput, then module terminfo +_nlist_cursor_visibility() { + if type tput 2>/dev/null 1>&2; then + [ "$1" = "1" ] && tput cvvis + [ "$1" = "0" ] && tput civis + elif [ "$has_termcap" = "1" ]; then + [ "$1" = "1" ] && [ -n $terminfo[cvvis] ] && echo -n $terminfo[cvvis] + [ "$1" = "0" ] && [ -n $terminfo[civis] ] && echo -n $terminfo[civis] + fi +} + +# +# Main code +# + +integer term_height="$LINES" +integer term_width="$COLUMNS" +if [[ "$term_height" -lt 1 || "$term_width" -lt 1 ]]; then + local stty_out=$( stty size ) + term_height="${stty_out% *}" + term_width="${stty_out#* }" +fi + +integer status_height=3 +integer status_width=term_width +integer status_page_height=1 +integer status_page_width=term_width-2 + +integer files_height=term_height-status_height +integer files_width=term_width/5 +integer files_page_height=files_height-2 +integer files_page_width=files_width-2 + +integer body_height=term_height-status_height +integer body_width=term_width-files_width +integer body_page_height=body_height-2 +integer body_page_width=body_width + +integer _from_what_idx_list_is_shown_1=1 +integer current_1=1 + +integer _from_what_idx_list_is_shown_2=1 +integer current_2=1 +integer hscroll_2=0 + +integer active_window=0 + +local ansi_mode="ansi" +[ -f ~/.config/znt/n-preview.conf ] && . ~/.config/znt/n-preview.conf +typeset -a hcmd +#if type pygmentize 2>/dev/null 1>&2; then +# hcmd=( pygmentize -g ) +if type highlight 2>/dev/null 1>&2; then + hcmd=( highlight -q --force -O ansi ) +elif type source-highlight 2>/dev/null 1>&2; then + # Warning: source-highlight can have problems + hcmd=( source-highlight --failsafe -fesc -o STDOUT -i ) +else + ansi_mode="noansi" +fi + +zcurses init +zcurses addwin status "$status_height" "$status_width" $(( term_height - status_height )) 0 +zcurses addwin files "$files_height" "$files_width" 0 0 +zcurses addwin body "$body_height" "$body_width" 0 "$files_width" +zcurses bg status white/black +zcurses bg files white/black +zcurses bg body white/black + +# +# Listening for input +# + +local key keypad + +# Clear input buffer +zcurses timeout status 0 +zcurses input status key keypad +zcurses timeout status -1 +key="" +keypad="" + +typeset -a filenames +integer last_element_1 + +typeset -a body +integer last_element_2 + +filenames=( *(N) ) +filenames=( "${(@M)filenames:#(#i)*$1*}" ) + +local NLIST_GREP_STRING="$1" + +integer last_element_1="$#filenames" +integer last_element_2=0 + +local selection action final_key + +while (( 1 )); do + # Output the lists + integer end_idx=$(( _from_what_idx_list_is_shown_1 + files_page_height - 1 )) + [ "$end_idx" -gt "$last_element_1" ] && end_idx=last_element_1 + + n-list-draw "$(( (current_1 -1) % files_page_height + 1 ))" \ + "$files_page_height" "$files_page_width" 1 2 0 files \ + "${(@)filenames[_from_what_idx_list_is_shown_1, end_idx]}" + + if [ "$#body" -ge 1 ]; then + end_idx=$(( _from_what_idx_list_is_shown_2 + body_page_height - 1 )) + [ "$end_idx" -gt "$last_element_2" ] && end_idx=last_element_2 + + n-list-draw "$(( (current_2 -1) % body_page_height + 1 ))" \ + "$body_page_height" "$body_page_width" 1 0 "$hscroll_2" body \ + "${(@)body[_from_what_idx_list_is_shown_2, end_idx]}" + fi + + [[ "$active_window" -eq 0 ]] && zcurses border files + zcurses border status + zcurses refresh files body status + + # Wait for input + zcurses input status key keypad + + # Get the special (i.e. "keypad") key or regular key + if [ -n "$key" ]; then + final_key="$key" + elif [ -n "$keypad" ]; then + final_key="$keypad" + else + _vpreview_status_msg "Inproper input detected" + zcurses refresh status + fi + + if [ "$active_window" -eq 0 ]; then + zcurses clear files + n-list-input "$current_1" "$_from_what_idx_list_is_shown_1" "$files_page_height" \ + "$files_page_width" "$last_element_1" 0 "$final_key" + + selection="$reply[1]" + action="$reply[2]" + current_1="$reply[3]" + _from_what_idx_list_is_shown_1="$reply[4]" + + if [ "$action" = "SELECT" ]; then + # Load new file and refresh the displaying window + local filename="$filenames[$selection]" + if [ "$ansi_mode" = "ansi" ]; then + body=( "${(@f)"$( "$hcmd[@]" "$filename" )"}" ) + else + body=( "${(@f)"$(<$filename)"}" ) + fi + last_element_2="$#body" + current_2=1 + _from_what_idx_list_is_shown_2=1 + zcurses clear body + fi + elif [ "$active_window" -eq 1 ]; then + zcurses clear body + n-list-input "$current_2" "$_from_what_idx_list_is_shown_2" "$body_page_height" \ + "$body_page_width" "$last_element_2" "$hscroll_2" "$final_key" + + selection="$reply[1]" + action="$reply[2]" + current_2="$reply[3]" + _from_what_idx_list_is_shown_2="$reply[4]" + hscroll_2="$reply[5]" + + fi + + if [ "$action" = "LEAVE" ]; then + active_window=1-active_window + elif [ "$action" = "QUIT" ]; then + break + elif [ "$action" = "REDRAW" ]; then + zcurses clear files redraw + zcurses clear body redraw + zcurses clear status redraw + fi +done + +# vim: set filetype=zsh: diff --git a/plugins/zsh-navigation-tools/znt-tmux.zsh b/plugins/zsh-navigation-tools/doc/znt-tmux.zsh index 6a96e97a1..309c11a0b 100755 --- a/plugins/zsh-navigation-tools/znt-tmux.zsh +++ b/plugins/zsh-navigation-tools/doc/znt-tmux.zsh @@ -12,7 +12,7 @@ # To use, put this line to your ~/.tmux.conf. The tool is invoked with: # Ctrl+b h # -# bind h run-shell -b "$ZNT_REPO_DIR/znt-tmux.zsh" +# bind h run-shell -b "$ZNT_REPO_DIR/doc/znt-tmux.zsh" # # get and save the current active tmux pane id diff --git a/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh b/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh index f015620f5..54c819810 100644 --- a/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh +++ b/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh @@ -8,9 +8,10 @@ # # According to the standard: -# http://zdharma.org/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html 0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" 0="${${(M)0:#/*}:-$PWD/$0}" + export ZNT_REPO_DIR="${0:h}" export ZNT_CONFIG_DIR="$HOME/.config/znt" diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme index d939d546f..2ef9b02d7 100644 --- a/themes/af-magic.zsh-theme +++ b/themes/af-magic.zsh-theme @@ -30,13 +30,13 @@ fi RPS1+=" ${FG[237]}%n@%m%{$reset_color%}" # git settings -ZSH_THEME_GIT_PROMPT_PREFIX="${FG[075]}(${FG[078]}" +ZSH_THEME_GIT_PROMPT_PREFIX=" ${FG[075]}(${FG[078]}" ZSH_THEME_GIT_PROMPT_CLEAN="" ZSH_THEME_GIT_PROMPT_DIRTY="${FG[214]}*%{$reset_color%}" ZSH_THEME_GIT_PROMPT_SUFFIX="${FG[075]})%{$reset_color%}" # hg settings -ZSH_THEME_HG_PROMPT_PREFIX="${FG[075]}(${FG[078]}" +ZSH_THEME_HG_PROMPT_PREFIX=" ${FG[075]}(${FG[078]}" ZSH_THEME_HG_PROMPT_CLEAN="" ZSH_THEME_HG_PROMPT_DIRTY="${FG[214]}*%{$reset_color%}" ZSH_THEME_HG_PROMPT_SUFFIX="${FG[075]})%{$reset_color%}" diff --git a/themes/random.zsh-theme b/themes/random.zsh-theme index f0b8e5c18..28af84e23 100644 --- a/themes/random.zsh-theme +++ b/themes/random.zsh-theme @@ -42,6 +42,6 @@ else return 1 fi -if [[ -z "$ZSH_THEME_RANDOM_QUIET" ]]; then +if [[ "$ZSH_THEME_RANDOM_QUIET" != true ]]; then echo "[oh-my-zsh] Random theme '${RANDOM_THEME}' loaded" fi diff --git a/tools/install.sh b/tools/install.sh index 47166059d..731d89a29 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -250,9 +250,9 @@ setup_zshrc() { echo "${GREEN}Using the Oh My Zsh template file and adding it to ~/.zshrc.${RESET}" - sed "/^export ZSH=/ c\\ -export ZSH=\"$ZSH\" -" "$ZSH/templates/zshrc.zsh-template" > ~/.zshrc-omztemp + # Replace $HOME path with '$HOME' in $ZSH variable in .zshrc file + omz=$(echo "$ZSH" | sed "s|^$HOME/|\$HOME/|") + sed "s|^export ZSH=.*$|export ZSH=\"${omz}\"|" "$ZSH/templates/zshrc.zsh-template" > ~/.zshrc-omztemp mv -f ~/.zshrc-omztemp ~/.zshrc echo |