using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using AxCopilot.SDK;

namespace AxCopilot.Handlers;

public class EmojiHandler : IActionHandler
{
	private static readonly (string Emoji, string Name, string Tags)[] _emojis = new(string, string, string)[462]
	{
		("\ud83d\ude00", "크게 웃는 얼굴", "smile happy grin 웃음 행복"),
		("\ud83d\ude03", "웃는 얼굴", "smile happy joy 웃음"),
		("\ud83d\ude04", "눈 웃음", "smile laugh 웃음 기쁨"),
		("\ud83d\ude01", "히죽 웃음", "grin beam 씩 웃다"),
		("\ud83d\ude06", "크게 웃음", "laughing 폭소"),
		("\ud83d\ude05", "식은땀 웃음", "sweat smile 안도"),
		("\ud83e\udd23", "바닥 구르며 웃음", "rofl lol 빵 웃음"),
		("\ud83d\ude02", "눈물 나게 웃음", "joy tears laugh 폭소"),
		("\ud83d\ude42", "살짝 웃음", "slightly smiling 미소"),
		("\ud83d\ude43", "거꾸로 웃음", "upside down 뒤집힌"),
		("\ud83d\ude09", "윙크", "wink 윙크"),
		("\ud83d\ude0a", "볼 빨개진 웃음", "blush 부끄러움 미소"),
		("\ud83d\ude07", "천사", "angel halo 천사 선량"),
		("\ud83e\udd70", "사랑스러운 얼굴", "love hearts 사랑 하트"),
		("\ud83d\ude0d", "하트 눈", "heart eyes 사랑 반함"),
		("\ud83e\udd29", "별 눈", "star struck 감동 황홀"),
		("\ud83d\ude18", "뽀뽀", "kiss blow 키스 뽀뽀"),
		("\ud83d\ude17", "오므린 입", "kiss whistle 키스"),
		("\ud83d\ude1a", "눈 감고 뽀뽀", "kiss 키스"),
		("\ud83d\ude19", "볼 뽀뽀", "kiss 키스"),
		("\ud83d\ude0b", "맛있다", "yum delicious 맛 음식"),
		("\ud83d\ude1b", "혀 내밀기", "tongue out 혀 놀림"),
		("\ud83d\ude1c", "윙크하며 혀", "wink tongue 장난"),
		("\ud83e\udd2a", "미친 표정", "zany crazy 정신없음"),
		("\ud83d\ude1d", "눈 감고 혀", "tongue 혀"),
		("\ud83e\udd11", "돈 눈", "money face 돈 부자"),
		("\ud83e\udd17", "포옹", "hugging hug 안아줘 포옹"),
		("\ud83e\udd2d", "입 가리고", "hand over mouth 헉 깜짝"),
		("\ud83e\udd2b", "쉿", "shushing quiet 조용 쉿"),
		("\ud83e\udd14", "생각 중", "thinking 고민 생각"),
		("\ud83e\udd10", "입 막음", "zipper mouth 비밀"),
		("\ud83e\udd28", "의심", "raised eyebrow 의심 의아"),
		("\ud83d\ude10", "무표정", "neutral 무감각 무표정"),
		("\ud83d\ude11", "표정 없음", "expressionless 냉담"),
		("\ud83d\ude36", "입 없는 얼굴", "no mouth 침묵"),
		("\ud83d\ude0f", "비웃음", "smirk 비웃 냉소"),
		("\ud83d\ude12", "불만", "unamused 불만 짜증"),
		("\ud83d\ude44", "눈 굴리기", "eye roll 어이없음"),
		("\ud83d\ude2c", "이 드러냄", "grimace 으 민망"),
		("\ud83e\udd25", "거짓말", "lying pinocchio 거짓말"),
		("\ud83d\ude0c", "안도/평온", "relieved 안도 평온"),
		("\ud83d\ude14", "슬픔", "pensive sad 슬픔 우울"),
		("\ud83d\ude2a", "졸림", "sleepy 졸음"),
		("\ud83e\udd24", "침 흘림", "drooling 군침 식욕"),
		("\ud83d\ude34", "잠", "sleeping sleep 수면 잠"),
		("\ud83d\ude37", "마스크", "mask sick 마스크 아픔"),
		("\ud83e\udd12", "열 나는", "sick fever 열 아픔"),
		("\ud83e\udd15", "머리 붕대", "injured hurt 부상"),
		("\ud83e\udd22", "구역질", "nauseated sick 구역 메스꺼움"),
		("\ud83e\udd2e", "토하는", "vomit 구토"),
		("\ud83e\udd27", "재채기", "sneezing sick 재채기 감기"),
		("\ud83e\udd75", "더운", "hot overheated 더움 열"),
		("\ud83e\udd76", "추운", "cold freezing 추움 냉기"),
		("\ud83e\udd74", "어지러운", "woozy 어지럼 취함"),
		("\ud83d\ude35", "어질어질", "dizzy 어지럼 충격"),
		("\ud83e\udd2f", "머리 폭발", "exploding head 충격 대박"),
		("\ud83e\udd20", "카우보이", "cowboy hat 카우보이"),
		("\ud83e\udd78", "변장", "disguise 변장 선글라스"),
		("\ud83d\ude0e", "쿨한", "cool sunglasses 선글라스 쿨"),
		("\ud83e\udd13", "공부벌레", "nerd glasses 공부 안경"),
		("\ud83e\uddd0", "모노클", "monocle curious 고상 탐정"),
		("\ud83d\ude15", "당황", "confused 당황 모호"),
		("\ud83d\ude1f", "걱정", "worried concern 걱정"),
		("\ud83d\ude41", "살짝 찡그림", "frown 슬픔"),
		("☹\ufe0f", "찡그린 얼굴", "frown sad 슬픔"),
		("\ud83d\ude2e", "입 벌림", "open mouth surprised 놀람"),
		("\ud83d\ude2f", "놀람", "hushed surprised 깜짝"),
		("\ud83d\ude32", "충격", "astonished 충격 놀람"),
		("\ud83d\ude33", "얼굴 빨개짐", "flushed embarrassed 부끄럼 당황"),
		("\ud83e\udd7a", "애원", "pleading eyes 부탁 눈빛"),
		("\ud83d\ude26", "찡그리며 벌린 입", "frowning 불안"),
		("\ud83d\ude27", "고통", "anguished 고통"),
		("\ud83d\ude28", "무서움", "fearful scared 무서움 공포"),
		("\ud83d\ude30", "식은땀", "anxious sweat 불안 걱정"),
		("\ud83d\ude25", "눈물 조금", "sad disappointed 실망 눈물"),
		("\ud83d\ude22", "울음", "cry sad 슬픔 눈물"),
		("\ud83d\ude2d", "엉엉 울음", "loudly crying sob 통곡"),
		("\ud83d\ude31", "공포에 질림", "screaming fear 비명 공포"),
		("\ud83d\ude16", "혼란", "confounded 혼란"),
		("\ud83d\ude23", "힘듦", "persevering 고생"),
		("\ud83d\ude1e", "실망", "disappointed 실망"),
		("\ud83d\ude13", "땀", "downcast sweat 땀 힘듦"),
		("\ud83d\ude29", "피곤", "weary tired 지침 피곤"),
		("\ud83d\ude2b", "극도로 지침", "tired exhausted 탈진"),
		("\ud83e\udd71", "하품", "yawning bored 하품 지루함"),
		("\ud83d\ude24", "콧김", "triumph snort 분노 콧김"),
		("\ud83d\ude21", "화남", "angry mad 화남 분노"),
		("\ud83d\ude20", "성남", "angry 화 성남"),
		("\ud83e\udd2c", "욕", "cursing swearing 욕 분노"),
		("\ud83d\ude08", "나쁜 미소", "smiling devil 악마 장난"),
		("\ud83d\udc7f", "화난 악마", "angry devil 악마"),
		("\ud83d\udc80", "해골", "skull death 해골 죽음"),
		("☠\ufe0f", "해골 십자", "skull crossbones 독"),
		("\ud83d\udca9", "응가", "poop 똥 응가"),
		("\ud83e\udd21", "피에로", "clown 광대"),
		("\ud83d\udc79", "도깨비", "ogre 도깨비 귀신"),
		("\ud83d\udc7a", "텐구", "goblin 텐구"),
		("\ud83d\udc7b", "유령", "ghost 유령 귀신"),
		("\ud83d\udc7e", "우주인", "alien monster 외계인 게임"),
		("\ud83e\udd16", "로봇", "robot 로봇"),
		("\ud83d\udc4b", "손 흔들기", "wave waving hi bye 안녕"),
		("\ud83e\udd1a", "손 뒤", "raised back hand 손"),
		("\ud83d\udd90\ufe0f", "손바닥", "hand palm 다섯 손가락"),
		("✋", "손 들기", "raised hand 손 들기 멈춤"),
		("\ud83d\udd96", "스팍 손인사", "vulcan salute 스타트렉"),
		("\ud83d\udc4c", "오케이", "ok perfect 오케이 좋아"),
		("\ud83e\udd0c", "손가락 모아", "pinched fingers 이탈리아"),
		("✌\ufe0f", "브이", "victory peace v 브이 평화"),
		("\ud83e\udd1e", "행운 손가락", "crossed fingers lucky 행운 기도"),
		("\ud83e\udd1f", "아이 러브 유", "love you 사랑해"),
		("\ud83e\udd18", "록 손", "rock on metal 록"),
		("\ud83e\udd19", "전화해", "call me shaka 전화 샤카"),
		("\ud83d\udc48", "왼쪽 가리킴", "backhand left 왼쪽"),
		("\ud83d\udc49", "오른쪽 가리킴", "backhand right 오른쪽"),
		("\ud83d\udc46", "위 가리킴", "backhand up 위"),
		("\ud83d\udd95", "욕", "middle finger 욕"),
		("\ud83d\udc47", "아래 가리킴", "backhand down 아래"),
		("☝\ufe0f", "검지 들기", "index pointing up 하나 포인트"),
		("\ud83d\udc4d", "좋아요", "thumbs up like good 좋아 최고"),
		("\ud83d\udc4e", "싫어요", "thumbs down dislike 싫어 별로"),
		("✊", "주먹", "fist punch 주먹"),
		("\ud83d\udc4a", "주먹 치기", "punch fist 주먹"),
		("\ud83e\udd1b", "왼 주먹", "left fist 주먹"),
		("\ud83e\udd1c", "오른 주먹", "right fist 주먹"),
		("\ud83d\udc4f", "박수", "clapping applause 박수 응원"),
		("\ud83d\ude4c", "만세", "raising hands celebrate 만세"),
		("\ud83d\udc50", "양손 펼침", "open hands 환영"),
		("\ud83e\udd32", "두 손 모음", "palms up together 기도 바람"),
		("\ud83d\ude4f", "두 손 합장", "pray please thanks 감사 부탁 기도"),
		("✍\ufe0f", "글쓰기", "writing pen 글쓰기"),
		("\ud83d\udc85", "네일", "nail polish manicure 네일 손톱"),
		("\ud83e\udd33", "셀카", "selfie 셀카"),
		("\ud83d\udcaa", "근육", "muscle strong 근육 힘"),
		("\ud83e\uddbe", "기계 팔", "mechanical arm 로봇 팔"),
		("\ud83e\uddbf", "기계 다리", "mechanical leg 로봇 다리"),
		("\ud83e\uddb5", "다리", "leg kick 다리"),
		("\ud83e\uddb6", "발", "foot kick 발"),
		("\ud83d\udc42", "귀", "ear hear 귀"),
		("\ud83e\uddbb", "보청기 귀", "ear hearing aid 보청기"),
		("\ud83d\udc43", "코", "nose smell 코"),
		("\ud83e\udec0", "심장", "heart anatomical 심장"),
		("\ud83e\udec1", "폐", "lungs 폐"),
		("\ud83e\udde0", "뇌", "brain mind 뇌 지능"),
		("\ud83e\uddb7", "치아", "tooth dental 치아"),
		("\ud83e\uddb4", "뼈", "bone 뼈"),
		("\ud83d\udc40", "눈", "eyes look see 눈 보기"),
		("\ud83d\udc41\ufe0f", "한쪽 눈", "eye 눈"),
		("\ud83d\udc45", "혀", "tongue 혀"),
		("\ud83d\udc44", "입술", "lips mouth 입술"),
		("\ud83d\udc8b", "입맞춤", "kiss lips 키스 입술"),
		("\ud83e\ude78", "피", "blood drop 피 혈액"),
		("❤\ufe0f", "빨간 하트", "red heart love 사랑 빨강"),
		("\ud83e\udde1", "주황 하트", "orange heart 사랑"),
		("\ud83d\udc9b", "노란 하트", "yellow heart 사랑"),
		("\ud83d\udc9a", "초록 하트", "green heart 사랑"),
		("\ud83d\udc99", "파란 하트", "blue heart 사랑"),
		("\ud83d\udc9c", "보라 하트", "purple heart 사랑"),
		("\ud83d\udda4", "검은 하트", "black heart 사랑 다크"),
		("\ud83e\udd0d", "흰 하트", "white heart 사랑"),
		("\ud83e\udd0e", "갈색 하트", "brown heart 사랑"),
		("\ud83d\udc94", "깨진 하트", "broken heart 이별 상처"),
		("❣\ufe0f", "느낌표 하트", "heart exclamation 사랑"),
		("\ud83d\udc95", "두 하트", "two hearts 사랑"),
		("\ud83d\udc9e", "회전 하트", "revolving hearts 사랑"),
		("\ud83d\udc93", "뛰는 하트", "beating heart 설렘"),
		("\ud83d\udc97", "성장 하트", "growing heart 사랑"),
		("\ud83d\udc96", "반짝 하트", "sparkling heart 사랑"),
		("\ud83d\udc98", "화살 하트", "heart arrow 큐피드"),
		("\ud83d\udc9d", "리본 하트", "heart ribbon 선물 사랑"),
		("\ud83d\udc9f", "하트 장식", "heart decoration 사랑"),
		("☮\ufe0f", "평화", "peace 평화"),
		("✝\ufe0f", "십자가", "cross 기독교"),
		("☯\ufe0f", "음양", "yin yang 음양 균형"),
		("\ud83d\udd2e", "수정구", "crystal ball magic 마법 점"),
		("✨", "반짝임", "sparkles glitter 빛 반짝"),
		("⭐", "별", "star 별"),
		("\ud83c\udf1f", "빛나는 별", "glowing star 별빛"),
		("\ud83d\udcab", "현기증", "dizzy star 빙글"),
		("⚡", "번개", "lightning bolt 번개 전기"),
		("\ud83d\udd25", "불", "fire hot 불 열정"),
		("\ud83d\udca5", "폭발", "explosion boom 폭발"),
		("❄\ufe0f", "눈송이", "snowflake cold 눈 추위"),
		("\ud83c\udf08", "무지개", "rainbow 무지개"),
		("☀\ufe0f", "태양", "sun sunny 태양 맑음"),
		("\ud83c\udf19", "달", "moon crescent 달"),
		("\ud83c\udf0a", "파도", "wave ocean 파도 바다"),
		("\ud83d\udca8", "바람", "wind dash 바람"),
		("\ud83d\udca6", "물방울", "sweat droplets water 물"),
		("\ud83c\udf38", "벚꽃", "cherry blossom 벚꽃 봄"),
		("\ud83c\udf39", "장미", "rose 장미 꽃"),
		("\ud83c\udf3a", "히비스커스", "hibiscus 꽃"),
		("\ud83c\udf3b", "해바라기", "sunflower 해바라기"),
		("\ud83c\udf3c", "꽃", "blossom flower 꽃"),
		("\ud83c\udf37", "튤립", "tulip 튤립"),
		("\ud83d\udc90", "꽃다발", "bouquet flowers 꽃다발"),
		("\ud83c\udf40", "네잎클로버", "four leaf clover lucky 행운"),
		("\ud83c\udf3f", "허브", "herb green 풀 허브"),
		("\ud83c\udf43", "잎사귀", "leaf 잎"),
		("\ud83c\udf55", "피자", "pizza 피자"),
		("\ud83c\udf54", "햄버거", "hamburger burger 버거"),
		("\ud83c\udf2e", "타코", "taco 타코"),
		("\ud83c\udf5c", "라면", "ramen noodles 라면 국수"),
		("\ud83c\udf71", "도시락", "bento box 도시락"),
		("\ud83c\udf63", "초밥", "sushi 초밥"),
		("\ud83c\udf5a", "밥", "rice 밥"),
		("\ud83c\udf5b", "카레", "curry rice 카레"),
		("\ud83c\udf5d", "파스타", "pasta spaghetti 파스타"),
		("\ud83c\udf66", "소프트 아이스크림", "ice cream soft serve 아이스크림"),
		("\ud83c\udf82", "생일 케이크", "cake birthday 생일 케이크"),
		("\ud83c\udf70", "케이크 조각", "cake slice 케이크"),
		("\ud83e\uddc1", "컵케이크", "cupcake 컵케이크"),
		("\ud83c\udf69", "도넛", "donut 도넛"),
		("\ud83c\udf6a", "쿠키", "cookie 쿠키"),
		("\ud83c\udf6b", "초콜릿", "chocolate bar 초콜릿"),
		("\ud83c\udf6c", "사탕", "candy 사탕"),
		("\ud83c\udf6d", "막대 사탕", "lollipop 막대사탕"),
		("\ud83c\udf7a", "맥주", "beer mug 맥주"),
		("\ud83c\udf7b", "건배", "clinking beer 건배"),
		("\ud83e\udd42", "샴페인 건배", "champagne 샴페인 건배"),
		("\ud83c\udf77", "와인", "wine 와인"),
		("☕", "커피", "coffee hot 커피"),
		("\ud83e\uddc3", "주스", "juice 주스"),
		("\ud83e\udd64", "음료", "drink cup 음료 컵"),
		("\ud83e\uddcb", "버블티", "bubble tea boba 버블티"),
		("\ud83c\udf75", "녹차", "tea matcha 차 녹차"),
		("\ud83d\udc36", "강아지", "dog puppy 강아지 개"),
		("\ud83d\udc31", "고양이", "cat kitten 고양이"),
		("\ud83d\udc2d", "쥐", "mouse 쥐"),
		("\ud83d\udc39", "햄스터", "hamster 햄스터"),
		("\ud83d\udc30", "토끼", "rabbit bunny 토끼"),
		("\ud83e\udd8a", "여우", "fox 여우"),
		("\ud83d\udc3b", "곰", "bear 곰"),
		("\ud83d\udc3c", "판다", "panda 판다"),
		("\ud83d\udc28", "코알라", "koala 코알라"),
		("\ud83d\udc2f", "호랑이", "tiger 호랑이"),
		("\ud83e\udd81", "사자", "lion 사자"),
		("\ud83d\udc2e", "소", "cow 소"),
		("\ud83d\udc37", "돼지", "pig 돼지"),
		("\ud83d\udc38", "개구리", "frog 개구리"),
		("\ud83d\udc35", "원숭이", "monkey 원숭이"),
		("\ud83d\ude48", "눈 가린 원숭이", "see no evil monkey 안 봐"),
		("\ud83d\ude49", "귀 가린 원숭이", "hear no evil monkey 안 들어"),
		("\ud83d\ude4a", "입 가린 원숭이", "speak no evil monkey 안 말해"),
		("\ud83d\udc14", "닭", "chicken 닭"),
		("\ud83d\udc27", "펭귄", "penguin 펭귄"),
		("\ud83d\udc26", "새", "bird 새"),
		("\ud83e\udd86", "오리", "duck 오리"),
		("\ud83e\udd85", "독수리", "eagle 독수리"),
		("\ud83e\udd89", "부엉이", "owl 부엉이"),
		("\ud83d\udc0d", "뱀", "snake 뱀"),
		("\ud83d\udc22", "거북이", "turtle 거북이"),
		("\ud83e\udd8b", "나비", "butterfly 나비"),
		("\ud83d\udc0c", "달팽이", "snail 달팽이"),
		("\ud83d\udc1b", "애벌레", "bug caterpillar 애벌레"),
		("\ud83d\udc1d", "꿀벌", "bee honeybee 벌"),
		("\ud83e\udd91", "오징어", "squid 오징어"),
		("\ud83d\udc19", "문어", "octopus 문어"),
		("\ud83d\udc20", "열대어", "tropical fish 열대어"),
		("\ud83d\udc21", "복어", "blowfish puffer 복어"),
		("\ud83e\udd88", "상어", "shark 상어"),
		("\ud83d\udc2c", "돌고래", "dolphin 돌고래"),
		("\ud83d\udc33", "고래", "whale 고래"),
		("\ud83d\udc32", "용", "dragon 용"),
		("\ud83e\udd84", "유니콘", "unicorn 유니콘"),
		("\ud83d\udcf1", "스마트폰", "phone mobile smartphone 폰"),
		("\ud83d\udcbb", "노트북", "laptop computer 노트북"),
		("\ud83d\udda5\ufe0f", "데스크톱", "desktop computer 컴퓨터"),
		("⌨\ufe0f", "키보드", "keyboard 키보드"),
		("\ud83d\uddb1\ufe0f", "마우스", "mouse 마우스"),
		("\ud83d\udda8\ufe0f", "프린터", "printer 프린터"),
		("\ud83d\udcf7", "카메라", "camera 카메라"),
		("\ud83d\udcf8", "플래시 카메라", "camera flash 사진"),
		("\ud83d\udcf9", "비디오 카메라", "video camera 동영상"),
		("\ud83c\udfa5", "영화 카메라", "movie camera film 영화"),
		("\ud83d\udcfa", "TV", "television tv 텔레비전"),
		("\ud83d\udcfb", "라디오", "radio 라디오"),
		("\ud83c\udf99\ufe0f", "마이크", "microphone studio 마이크"),
		("\ud83c\udfa4", "마이크 핸드헬드", "microphone karaoke 마이크"),
		("\ud83c\udfa7", "헤드폰", "headphones 헤드폰"),
		("\ud83d\udce1", "안테나", "satellite antenna 안테나"),
		("\ud83d\udd0b", "배터리", "battery 배터리"),
		("\ud83d\udd0c", "전원 플러그", "plug electric 플러그"),
		("\ud83d\udca1", "전구", "bulb idea light 전구 아이디어"),
		("\ud83d\udd26", "손전등", "flashlight torch 손전등"),
		("\ud83d\udd6f\ufe0f", "양초", "candle 양초"),
		("\ud83d\udcda", "책", "books stack 책"),
		("\ud83d\udcd6", "열린 책", "open book read 독서"),
		("\ud83d\udcdd", "메모", "memo note pencil 메모 노트"),
		("✏\ufe0f", "연필", "pencil 연필"),
		("\ud83d\udd8a\ufe0f", "펜", "pen 펜"),
		("\ud83d\udccc", "압정", "pushpin pin 압정"),
		("\ud83d\udcce", "클립", "paperclip 클립"),
		("✂\ufe0f", "가위", "scissors cut 가위"),
		("\ud83d\uddc2\ufe0f", "파일 폴더", "card index dividers folder 파일"),
		("\ud83d\udcc1", "폴더", "folder 폴더"),
		("\ud83d\udcc2", "열린 폴더", "open folder 폴더"),
		("\ud83d\uddc3\ufe0f", "파일 박스", "card file box 서류함"),
		("\ud83d\uddd1\ufe0f", "휴지통", "wastebasket trash 휴지통"),
		("\ud83d\udd12", "잠금", "locked lock 잠금"),
		("\ud83d\udd13", "열림", "unlocked 열림"),
		("\ud83d\udd11", "열쇠", "key 열쇠"),
		("\ud83d\udddd\ufe0f", "구식 열쇠", "old key 열쇠"),
		("\ud83d\udd28", "망치", "hammer 망치"),
		("\ud83d\udd27", "렌치", "wrench tool 렌치"),
		("\ud83d\udd29", "나사", "nut bolt 나사"),
		("⚙\ufe0f", "톱니바퀴", "gear settings 설정 톱니"),
		("\ud83d\udee0\ufe0f", "도구", "tools hammer wrench 도구"),
		("\ud83d\udc8a", "알약", "pill medicine 약 알약"),
		("\ud83d\udc89", "주사기", "syringe injection 주사"),
		("\ud83e\ude7a", "청진기", "stethoscope doctor 청진기"),
		("\ud83c\udfc6", "트로피", "trophy award 트로피 우승"),
		("\ud83e\udd47", "금메달", "first gold medal 금메달"),
		("\ud83e\udd48", "은메달", "second silver 은메달"),
		("\ud83e\udd49", "동메달", "third bronze 동메달"),
		("\ud83c\udf96\ufe0f", "훈장", "medal military 훈장"),
		("\ud83c\udf97\ufe0f", "리본", "ribbon awareness 리본"),
		("\ud83c\udfab", "티켓", "ticket admission 티켓"),
		("\ud83c\udf9f\ufe0f", "입장권", "admission tickets 티켓"),
		("\ud83c\udfaa", "서커스", "circus tent 서커스"),
		("\ud83c\udfa8", "팔레트", "art palette paint 그림 예술"),
		("\ud83c\udfad", "연극", "performing arts theater 연극"),
		("\ud83c\udfac", "클래퍼보드", "clapper film 영화 촬영"),
		("\ud83c\udfae", "게임 컨트롤러", "video game controller 게임"),
		("\ud83c\udfb2", "주사위", "dice game 주사위"),
		("\ud83c\udfaf", "다트", "bullseye target dart 다트 목표"),
		("\ud83c\udfb3", "볼링", "bowling 볼링"),
		("⚽", "축구", "soccer football 축구"),
		("\ud83c\udfc0", "농구", "basketball 농구"),
		("\ud83c\udfc8", "미식축구", "american football 미식축구"),
		("⚾", "야구", "baseball 야구"),
		("\ud83c\udfbe", "테니스", "tennis 테니스"),
		("\ud83c\udfd0", "배구", "volleyball 배구"),
		("\ud83c\udfc9", "럭비", "rugby 럭비"),
		("\ud83c\udfb1", "당구", "billiards pool 당구"),
		("\ud83c\udfd3", "탁구", "ping pong table tennis 탁구"),
		("\ud83c\udff8", "배드민턴", "badminton 배드민턴"),
		("\ud83e\udd4a", "권투 장갑", "boxing glove 권투"),
		("\ud83c\udfa3", "낚시", "fishing 낚시"),
		("\ud83c\udfcb\ufe0f", "역도", "weightlifting gym 헬스 역도"),
		("\ud83e\uddd8", "명상", "yoga meditation 명상 요가"),
		("\ud83d\ude97", "자동차", "car automobile 자동차"),
		("\ud83d\ude95", "택시", "taxi cab 택시"),
		("\ud83d\ude99", "SUV", "suv car 차"),
		("\ud83d\ude8c", "버스", "bus 버스"),
		("\ud83d\ude8e", "무궤도 전차", "trolleybus 버스"),
		("\ud83c\udfce\ufe0f", "레이싱카", "racing car 레이싱"),
		("\ud83d\ude93", "경찰차", "police car 경찰"),
		("\ud83d\ude91", "구급차", "ambulance 구급차"),
		("\ud83d\ude92", "소방차", "fire truck 소방차"),
		("\ud83d\ude90", "미니밴", "minibus van 밴"),
		("\ud83d\ude9a", "트럭", "truck delivery 트럭"),
		("✈\ufe0f", "비행기", "airplane flight plane 비행기"),
		("\ud83d\ude80", "로켓", "rocket space launch 로켓"),
		("\ud83d\udef8", "UFO", "flying saucer ufo 유에프오"),
		("\ud83d\ude81", "헬리콥터", "helicopter 헬리콥터"),
		("\ud83d\ude82", "기차", "train locomotive 기차"),
		("\ud83d\ude86", "고속열차", "train 기차"),
		("\ud83d\ude87", "지하철", "metro subway 지하철"),
		("⛵", "돛단배", "sailboat 요트"),
		("\ud83d\udea2", "배", "ship cruise 배"),
		("\ud83d\udeb2", "자전거", "bicycle bike 자전거"),
		("\ud83d\udef5", "스쿠터", "scooter moped 스쿠터"),
		("\ud83c\udfcd\ufe0f", "오토바이", "motorcycle 오토바이"),
		("\ud83c\udfe0", "집", "house home 집"),
		("\ud83c\udfe1", "마당 있는 집", "house garden 집"),
		("\ud83c\udfe2", "빌딩", "office building 빌딩"),
		("\ud83c\udfe3", "우체국", "post office 우체국"),
		("\ud83c\udfe5", "병원", "hospital 병원"),
		("\ud83c\udfe6", "은행", "bank 은행"),
		("\ud83c\udfe8", "호텔", "hotel 호텔"),
		("\ud83c\udfeb", "학교", "school 학교"),
		("\ud83c\udfea", "편의점", "convenience store shop 편의점"),
		("\ud83c\udfec", "백화점", "department store 백화점"),
		("\ud83c\udff0", "성", "castle 성"),
		("⛪", "교회", "church 교회"),
		("\ud83d\udd4c", "모스크", "mosque 모스크"),
		("\ud83d\uddfc", "에펠탑", "eiffel tower paris 파리"),
		("\ud83d\uddfd", "자유의 여신상", "statue of liberty new york 뉴욕"),
		("\ud83c\udfd4\ufe0f", "산", "mountain snow 산"),
		("\ud83c\udf0b", "화산", "volcano 화산"),
		("\ud83d\uddfb", "후지산", "mount fuji japan 후지산"),
		("\ud83c\udfd5\ufe0f", "캠핑", "camping tent 캠핑"),
		("\ud83c\udfd6\ufe0f", "해변", "beach summer 해변 해수욕"),
		("\ud83c\udf0f", "지구", "earth globe asia 지구"),
		("\ud83d\udcaf", "100점", "hundred percent perfect 완벽 100"),
		("\ud83d\udd22", "숫자", "numbers 숫자"),
		("\ud83c\udd97", "OK", "ok button 오케이"),
		("\ud83c\udd99", "업", "up button 업"),
		("\ud83c\udd92", "쿨", "cool button 쿨"),
		("\ud83c\udd95", "새것", "new button 새"),
		("\ud83c\udd93", "무료", "free button 무료"),
		("\ud83c\udd98", "SOS", "sos emergency 긴급 구조"),
		("⚠\ufe0f", "경고", "warning caution 경고 주의"),
		("\ud83d\udeab", "금지", "prohibited no 금지"),
		("✅", "체크", "check mark done 완료 확인"),
		("❌", "엑스", "x cross error 실패 오류"),
		("❓", "물음표", "question mark 물음표"),
		("❗", "느낌표", "exclamation mark 느낌표"),
		("➕", "더하기", "plus add 더하기"),
		("➖", "빼기", "minus subtract 빼기"),
		("➗", "나누기", "divide 나누기"),
		("✖\ufe0f", "곱하기", "multiply times 곱하기"),
		("♾\ufe0f", "무한대", "infinity 무한"),
		("\ud83d\udd01", "반복", "repeat loop 반복"),
		("\ud83d\udd00", "셔플", "shuffle random 랜덤"),
		("▶\ufe0f", "재생", "play 재생"),
		("⏸\ufe0f", "일시정지", "pause 일시정지"),
		("⏹\ufe0f", "정지", "stop 정지"),
		("⏩", "빨리 감기", "fast forward 빨리감기"),
		("⏪", "되감기", "rewind 되감기"),
		("\ud83d\udd14", "알림", "bell notification 알림 벨"),
		("\ud83d\udd15", "알림 끔", "bell off 알림끔"),
		("\ud83d\udd0a", "볼륨 크게", "loud speaker volume up 볼륨"),
		("\ud83d\udd07", "음소거", "muted speaker 음소거"),
		("\ud83d\udce3", "메가폰", "megaphone loud 확성기"),
		("\ud83d\udce2", "스피커", "loudspeaker 스피커"),
		("\ud83d\udcac", "말풍선", "speech bubble chat 대화"),
		("\ud83d\udcad", "생각 말풍선", "thought bubble thinking 생각"),
		("\ud83d\udce7", "이메일", "email mail 이메일 메일"),
		("\ud83d\udce8", "수신 봉투", "incoming envelope 수신"),
		("\ud83d\udce9", "발신 봉투", "envelope outbox 발신"),
		("\ud83d\udcec", "우편함", "mailbox 우편함"),
		("\ud83d\udce6", "택배 박스", "package box parcel 택배 상자"),
		("\ud83c\udf81", "선물", "gift present 선물"),
		("\ud83c\udf80", "리본 묶음", "ribbon bow 리본"),
		("\ud83c\udf8a", "색종이", "confetti 파티 축하"),
		("\ud83c\udf89", "파티 폭죽", "party popper celebrate 파티 축하"),
		("\ud83c\udf88", "풍선", "balloon party 풍선"),
		("\ud83d\udd50", "1시", "one o'clock 1시 시간"),
		("\ud83d\udd52", "3시", "three o'clock 3시 시간"),
		("\ud83d\udd54", "4시", "four o'clock 4시 시간"),
		("⏰", "알람 시계", "alarm clock 알람 시계"),
		("⏱\ufe0f", "스톱워치", "stopwatch timer 스톱워치 타이머"),
		("\ud83d\udcc5", "달력", "calendar date 달력 날짜"),
		("\ud83d\udcc6", "찢는 달력", "tear-off calendar 달력"),
		("\ud83d\udcb0", "돈 가방", "money bag 돈 부자"),
		("\ud83d\udcb3", "신용카드", "credit card payment 카드 결제"),
		("\ud83d\udcb5", "달러", "dollar banknote 달러"),
		("\ud83d\udcb4", "엔화", "yen banknote 엔"),
		("\ud83d\udcb6", "유로", "euro banknote 유로"),
		("\ud83d\udcb7", "파운드", "pound banknote 파운드"),
		("\ud83d\udcca", "막대 그래프", "bar chart graph 그래프"),
		("\ud83d\udcc8", "상승 그래프", "chart increasing trend 상승 트렌드"),
		("\ud83d\udcc9", "하락 그래프", "chart decreasing trend 하락"),
		("\ud83d\udd0d", "돋보기", "magnifying glass search 검색 돋보기"),
		("\ud83d\udd0e", "오른쪽 돋보기", "magnifying glass right search 검색"),
		("\ud83c\udff3\ufe0f", "흰 깃발", "white flag 항복"),
		("\ud83c\udff4", "검은 깃발", "black flag 해적"),
		("\ud83d\udea9", "빨간 삼각기", "triangular flag 경고 깃발"),
		("\ud83c\udfc1", "체크무늬 깃발", "chequered flag finish race 결승"),
		("\ud83c\udf10", "지구본", "globe internet web 인터넷 웹"),
		("⚓", "닻", "anchor 닻"),
		("\ud83c\udfb5", "음표", "music note 음악 음표"),
		("\ud83c\udfb6", "음표들", "musical notes 음악"),
		("\ud83c\udfbc", "악보", "musical score 악보"),
		("\ud83c\udfb9", "피아노", "piano keyboard 피아노"),
		("\ud83c\udfb8", "기타", "guitar 기타"),
		("\ud83e\udd41", "드럼", "drum 드럼"),
		("\ud83e\ude97", "아코디언", "accordion 아코디언"),
		("\ud83c\udfb7", "색소폰", "saxophone 색소폰"),
		("\ud83c\udfba", "트럼펫", "trumpet 트럼펫"),
		("\ud83c\udfbb", "바이올린", "violin 바이올린")
	};

	public string? Prefix => "emoji";

	public PluginMetadata Metadata => new PluginMetadata("Emoji", "이모지 피커 — emoji 뒤에 이름 입력", "1.0", "AX");

	public Task<IEnumerable<LauncherItem>> GetItemsAsync(string query, CancellationToken ct)
	{
		IEnumerable<(string, string, string)> source;
		if (string.IsNullOrWhiteSpace(query))
		{
			source = _emojis.Take(30);
		}
		else
		{
			string q = query.Trim().ToLowerInvariant();
			source = _emojis.Where(((string Emoji, string Name, string Tags) e) => e.Name.Contains(q, StringComparison.OrdinalIgnoreCase) || e.Tags.Contains(q, StringComparison.OrdinalIgnoreCase) || e.Emoji.Contains(q)).Take(20);
		}
		List<LauncherItem> list = source.Select<(string, string, string), LauncherItem>(((string Emoji, string Name, string Tags) e) => new LauncherItem(e.Emoji + "  " + e.Name, "Enter로 클립보드에 복사", null, e.Emoji, null, "\ue76e")).ToList();
		if (!list.Any() && !string.IsNullOrWhiteSpace(query))
		{
			list.Add(new LauncherItem("검색 결과 없음", "'" + query + "'에 해당하는 이모지가 없습니다", null, null, null, "\ue946"));
		}
		return Task.FromResult((IEnumerable<LauncherItem>)list);
	}

	public Task ExecuteAsync(LauncherItem item, CancellationToken ct)
	{
		if (item.Data is string text)
		{
			try
			{
				Clipboard.SetText(text);
			}
			catch
			{
			}
		}
		return Task.CompletedTask;
	}
}
