diff --git a/.gitignore b/.gitignore index 1043fcea8e..48f4c60786 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,12 @@ service_account_credentials.json __pycache__/ release/ +TMessagesProj/.cxx/ +TMessagesProj/jniLibs/ +TMessagesProj/jniRes/ +**/.DS_Store +TMessagesProj/afat/ +TMessagesProj_App/afat/ +TMessagesProj_AppHockeyApp/afat/ +TMessagesProj_AppStandalone/afat/ +TMessagesProj_AppHuawei/afat/ diff --git a/.gitmodules b/.gitmodules index 10b802f2fa..ae9cfd9625 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,10 +1,6 @@ [submodule "TMessagesProj/jni/libwebp"] path = TMessagesProj/jni/libwebp url = https://github.com/webmproject/libwebp -[submodule "TMessagesProj/jni/ffmpeg"] - path = TMessagesProj/jni/ffmpeg - url = https://github.com/FFmpeg/FFmpeg - ignore = dirty [submodule "TMessagesProj/jni/boringssl"] path = TMessagesProj/jni/boringssl url = https://github.com/google/boringssl @@ -13,3 +9,6 @@ path = TMessagesProj/jni/libvpx url = https://github.com/webmproject/libvpx ignore = dirty +[submodule "TMessagesProj/jni/ffmpeg"] + path = TMessagesProj/jni/ffmpeg + url = https://github.com/FFmpeg/FFmpeg diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index 036ec26d37..597dea5681 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -10,12 +10,12 @@ repositories { } } -def verName = "10.9.1" -def verCode = 1165 +def verName = "10.10.1" +def verCode = 1168 -def officialVer = "10.9.1" -def officialCode = 4464 +def officialVer = "10.10.1" +def officialCode = 4583 def serviceAccountCredentialsFile = rootProject.file("service_account_credentials.json") @@ -195,7 +195,7 @@ android { sourceSets { main { - assets.srcDirs = ["src/main/assets", "src/emojis/twitter"] + assets.srcDirs = ["src/main/assets"] } debug { @@ -256,6 +256,7 @@ dependencies { implementation "androidx.viewpager:viewpager:1.0.0" implementation "androidx.exifinterface:exifinterface:1.3.7" implementation "androidx.interpolator:interpolator:1.0.0" + implementation 'androidx.biometric:biometric:1.1.0' implementation "androidx.dynamicanimation:dynamicanimation:1.0.0" implementation "androidx.multidex:multidex:2.0.1" implementation "androidx.sharetarget:sharetarget:1.2.0" @@ -302,6 +303,8 @@ dependencies { implementation "com.google.firebase:firebase-crashlytics:$crashlyticsVersion" implementation "com.google.android.play:core:$playCoreVersion" + implementation 'com.android.billingclient:billing:5.1.0' + testImplementation "junit:junit:4.13.2" testImplementation "androidx.test:core:1.5.0" testImplementation "org.robolectric:robolectric:4.5.1" diff --git a/TMessagesProj/jni/CMakeLists.txt b/TMessagesProj/jni/CMakeLists.txt index 27ce626757..13c57bcffc 100644 --- a/TMessagesProj/jni/CMakeLists.txt +++ b/TMessagesProj/jni/CMakeLists.txt @@ -484,12 +484,13 @@ target_include_directories(breakpad PUBLIC #voip include(${CMAKE_HOME_DIRECTORY}/voip/CMakeLists.txt) -set(NATIVE_LIB "tmessages.48") +set(NATIVE_LIB "tmessages.49") #tmessages add_library(${NATIVE_LIB} SHARED jni.c audio.c + webm_encoder.c image.cpp video.c intro/IntroRenderer.c diff --git a/TMessagesProj/jni/TgNetWrapper.cpp b/TMessagesProj/jni/TgNetWrapper.cpp index 03764664ac..d5078f8957 100644 --- a/TMessagesProj/jni/TgNetWrapper.cpp +++ b/TMessagesProj/jni/TgNetWrapper.cpp @@ -30,6 +30,7 @@ jmethodID jclass_ConnectionsManager_onRequestNewServerIpAndPort; jmethodID jclass_ConnectionsManager_onProxyError; jmethodID jclass_ConnectionsManager_getHostByName; jmethodID jclass_ConnectionsManager_getInitFlags; +jmethodID jclass_ConnectionsManager_onPremiumFloodWait; bool check_utf8(const char *data, size_t len); @@ -371,6 +372,10 @@ class Delegate : public ConnectiosManagerDelegate { return (int32_t) jniEnv[instanceNum]->CallStaticIntMethod(jclass_ConnectionsManager, jclass_ConnectionsManager_getInitFlags); } + + void onPremiumFloodWait(int32_t instanceNum, int32_t requestToken, bool isUpload) { + jniEnv[instanceNum]->CallStaticVoidMethod(jclass_ConnectionsManager, jclass_ConnectionsManager_onPremiumFloodWait, instanceNum, requestToken, isUpload); + } }; void @@ -660,6 +665,10 @@ extern "C" int registerNativeTgNetFunctions(JavaVM *vm, JNIEnv *env) { if (jclass_ConnectionsManager_getInitFlags == 0) { return JNI_FALSE; } + jclass_ConnectionsManager_onPremiumFloodWait = env->GetStaticMethodID(jclass_ConnectionsManager, "onPremiumFloodWait", "(IIZ)V"); + if (jclass_ConnectionsManager_onPremiumFloodWait == 0) { + return JNI_FALSE; + } return JNI_TRUE; } diff --git a/TMessagesProj/jni/audio.c b/TMessagesProj/jni/audio.c index 7f310bc295..f5202f3e1f 100644 --- a/TMessagesProj/jni/audio.c +++ b/TMessagesProj/jni/audio.c @@ -63,6 +63,7 @@ typedef struct { ogg_int64_t last_granulepos; opus_int32 min_bytes; int max_frame_bytes; + int serialno; } resume_data; static int write_uint32(Packet *p, ogg_uint32_t val) { @@ -261,6 +262,7 @@ ogg_int64_t enc_granulepos; ogg_int64_t last_granulepos; int size_segments; int last_segments; +int serialno; void cleanupRecorder() { @@ -381,7 +383,7 @@ int initRecorder(const char *path, opus_int32 sampleRate) { header.preskip = (int)(inopt.skip * (48000.0 / coding_rate)); inopt.extraout = (int)(header.preskip * (rate / 48000.0)); - if (ogg_stream_init(&os, rand()) == -1) { + if (ogg_stream_init(&os, serialno = rand()) == -1) { LOGE("Error: stream init failed"); return 0; } @@ -465,6 +467,7 @@ void saveResumeData() { data.last_granulepos = last_granulepos; data.min_bytes = min_bytes; data.max_frame_bytes = max_frame_bytes; + data.serialno = serialno; if (fwrite(&data, sizeof(resume_data), 1, resumeFile) != 1) { LOGE("error writing resume data to file: %s", _resumeFilePath); @@ -527,6 +530,7 @@ int resumeRecorder(const char *path, opus_int32 sampleRate) { last_granulepos = resumeData.last_granulepos; min_bytes = resumeData.min_bytes; max_frame_bytes = resumeData.max_frame_bytes; + serialno = resumeData.serialno; _fileOs = fopen(path, "a"); if (!_fileOs) { @@ -557,7 +561,7 @@ int resumeRecorder(const char *path, opus_int32 sampleRate) { } #endif - if (ogg_stream_init(&os, rand()) == -1) { + if (ogg_stream_init(&os, serialno) == -1) { LOGE("Error: stream init failed"); return 0; } diff --git a/TMessagesProj/jni/build_boringssl.sh b/TMessagesProj/jni/build_boringssl.sh index d194fb1707..1d6e1ba478 100755 --- a/TMessagesProj/jni/build_boringssl.sh +++ b/TMessagesProj/jni/build_boringssl.sh @@ -80,7 +80,7 @@ function build { } if (( $# == 0 )); then - build x86_64 arm64 arm x86 + build arm64 arm else build $@ fi diff --git a/TMessagesProj/jni/build_ffmpeg_clang.sh b/TMessagesProj/jni/build_ffmpeg_clang.sh index 47ec5cff8a..d30a00f527 100755 --- a/TMessagesProj/jni/build_ffmpeg_clang.sh +++ b/TMessagesProj/jni/build_ffmpeg_clang.sh @@ -75,6 +75,10 @@ function build_one { \ --enable-libvpx \ --enable-decoder=libvpx_vp9 \ + --enable-encoder=libvpx_vp9 \ + --enable-muxer=matroska \ + --enable-bsf=vp9_superframe \ + --enable-bsf=vp9_raw_reorder \ --enable-runtime-cpudetect \ --enable-pthreads \ --enable-avresample \ @@ -223,7 +227,7 @@ function build { } if (( $# == 0 )); then - build x86_64 arm64 arm x86 + build arm64 arm else build $@ fi diff --git a/TMessagesProj/jni/build_libvpx_clang.sh b/TMessagesProj/jni/build_libvpx_clang.sh index 7429f15c5b..f086d5ff8f 100755 --- a/TMessagesProj/jni/build_libvpx_clang.sh +++ b/TMessagesProj/jni/build_libvpx_clang.sh @@ -55,6 +55,7 @@ function build_one { --disable-examples \ --disable-tools \ --disable-debug \ + --disable-neon-asm \ --disable-unit-tests \ --disable-install-docs \ --enable-realtime-only \ @@ -184,7 +185,7 @@ function build { } if (( $# == 0 )); then - build x86 x86_64 arm arm64 + build arm arm64 else build $@ fi diff --git a/TMessagesProj/jni/tgnet/ConnectionsManager.cpp b/TMessagesProj/jni/tgnet/ConnectionsManager.cpp index e160aa0e70..fb59229bc2 100644 --- a/TMessagesProj/jni/tgnet/ConnectionsManager.cpp +++ b/TMessagesProj/jni/tgnet/ConnectionsManager.cpp @@ -1322,12 +1322,24 @@ void ConnectionsManager::processServerResponse(TLObject *message, int64_t messag request->startTime = 0; request->startTimeMillis = 0; request->minStartTime = (int32_t) (getCurrentTimeMonotonicMillis() / 1000 + 2); - } else if (error->error_code == 420 && (request->requestFlags & RequestFlagIgnoreFloodWait) == 0 && error->error_message.find("STORY_SEND_FLOOD") == std::string::npos) { + } else if ( + error->error_code == 420 && (request->requestFlags & RequestFlagIgnoreFloodWait) == 0 && + error->error_message.find("STORY_SEND_FLOOD") == std::string::npos + ) { int32_t waitTime = 2; static std::string floodWait = "FLOOD_WAIT_"; + static std::string premiumFloodWait = "FLOOD_PREMIUM_WAIT_"; static std::string slowmodeWait = "SLOWMODE_WAIT_"; + bool isPremiumFloodWait = false; discardResponse = true; - if (error->error_message.find(floodWait) != std::string::npos) { + if (error->error_message.find(premiumFloodWait) != std::string::npos) { + isPremiumFloodWait = true; + std::string num = error->error_message.substr(premiumFloodWait.size(), error->error_message.size() - premiumFloodWait.size()); + waitTime = atoi(num.c_str()); + if (waitTime <= 0) { + waitTime = 2; + } + } else if (error->error_message.find(floodWait) != std::string::npos) { std::string num = error->error_message.substr(floodWait.size(), error->error_message.size() - floodWait.size()); waitTime = atoi(num.c_str()); if (waitTime <= 0) { @@ -1341,10 +1353,14 @@ void ConnectionsManager::processServerResponse(TLObject *message, int64_t messag } discardResponse = false; } + request->premiumFloodWait = isPremiumFloodWait; request->failedByFloodWait = waitTime; request->startTime = 0; request->startTimeMillis = 0; request->minStartTime = (int32_t) (getCurrentTimeMonotonicMillis() / 1000 + waitTime); + if (isPremiumFloodWait && delegate != nullptr) { + delegate->onPremiumFloodWait(instanceNum, request->requestToken, (request->connectionType & ConnectionTypeUpload) != 0); + } } else if (error->error_code == 400) { static std::string waitFailed = "MSG_WAIT_FAILED"; static std::string bindFailed = "ENCRYPTED_MESSAGE_INVALID"; @@ -2494,7 +2510,7 @@ void ConnectionsManager::processRequestQueue(uint32_t connectionTypes, uint32_t retryMax = 6; } } - if (request->retryCount >= retryMax) { + if (request->retryCount >= retryMax && !request->premiumFloodWait) { if (LOGS_ENABLED) DEBUG_E("timed out %s, message_id = 0x%" PRIx64, typeInfo.name(), request->messageId); auto error = new TL_error(); error->code = -123; diff --git a/TMessagesProj/jni/tgnet/Defines.h b/TMessagesProj/jni/tgnet/Defines.h index 9d444ffbf3..d407694ee0 100644 --- a/TMessagesProj/jni/tgnet/Defines.h +++ b/TMessagesProj/jni/tgnet/Defines.h @@ -153,6 +153,7 @@ typedef struct ConnectiosManagerDelegate { virtual void onProxyError(int32_t instanceNum) = 0; virtual void getHostByName(std::string domain, int32_t instanceNum, ConnectionSocket *socket) = 0; virtual int32_t getInitFlags(int32_t instanceNum) = 0; + virtual void onPremiumFloodWait(int32_t instanceNum, int32_t requestToken, bool isUpload) = 0; } ConnectiosManagerDelegate; typedef struct HandshakeDelegate { diff --git a/TMessagesProj/jni/tgnet/Request.h b/TMessagesProj/jni/tgnet/Request.h index bf360f9d45..81007b7bba 100644 --- a/TMessagesProj/jni/tgnet/Request.h +++ b/TMessagesProj/jni/tgnet/Request.h @@ -35,6 +35,7 @@ class Request { uint32_t retryCount = 0; bool failedBySalt = false; int32_t failedByFloodWait = 0; + bool premiumFloodWait = false; ConnectionType connectionType; uint32_t requestFlags; bool completedSent = false; diff --git a/TMessagesProj/jni/webm_encoder.c b/TMessagesProj/jni/webm_encoder.c new file mode 100644 index 0000000000..99a0c27554 --- /dev/null +++ b/TMessagesProj/jni/webm_encoder.c @@ -0,0 +1,245 @@ +#include +#include "libavformat/avio.h" +#include "libavcodec/codec.h" +#include "libavformat/avformat.h" +#include "c_utils.h" +#include "libavutil/opt.h" +#include "libswscale/swscale.h" + +typedef struct { + AVCodecContext *codec_ctx; + AVFormatContext *fmt_ctx; + AVStream *video_stream; + AVFrame *frame; + int frame_count; + struct SwsContext *sws_ctx; +} EncoderContext; + +JNIEXPORT jlong JNICALL Java_org_telegram_messenger_video_WebmEncoder_createEncoder( + JNIEnv *env, jobject obj, + jstring outputPath_, + jint width, jint height, + jint fps, + jlong bitrate +) { + + int ret; + const char* outputPath = (*env)->GetStringUTFChars(env, outputPath_, 0); + + EncoderContext* ctx = (EncoderContext*) malloc(sizeof(EncoderContext)); + if (!ctx) { + LOGE("vp9: failed to alloc context"); + return (jlong)0; + } + memset(ctx, 0, sizeof(EncoderContext)); + + avformat_alloc_output_context2(&ctx->fmt_ctx, NULL, "matroska", outputPath); + if (!ctx->fmt_ctx) { + LOGE("vp9: no context created!"); + return (jlong)0; + } + + if (!(ctx->fmt_ctx->oformat->flags & AVFMT_NOFILE)) { + ret = avio_open(&ctx->fmt_ctx->pb, outputPath, AVIO_FLAG_WRITE); + if (ret < 0) { + LOGE("vp9: failed to write open file %d", ret); + return (jlong) 0; + } + } + + AVCodec* codec = avcodec_find_encoder(AV_CODEC_ID_VP9); + if (!codec) { + LOGE("vp9: no encoder found!"); + return 0; + } + + ctx->codec_ctx = avcodec_alloc_context3(codec); + if (!ctx->codec_ctx) { + LOGE("vp9: failed to create codec ctx"); + return (jlong) 0; + } + + ctx->codec_ctx->codec_id = AV_CODEC_ID_VP9; + ctx->codec_ctx->codec_type = AVMEDIA_TYPE_VIDEO; + ctx->codec_ctx->width = width; + ctx->codec_ctx->height = height; + ctx->codec_ctx->pix_fmt = AV_PIX_FMT_YUVA420P; + ctx->codec_ctx->color_range = AVCOL_RANGE_MPEG; + ctx->codec_ctx->color_primaries = AVCOL_PRI_BT709; + ctx->codec_ctx->colorspace = AVCOL_SPC_BT709; + ctx->codec_ctx->time_base = (AVRational){ 1, fps }; + ctx->codec_ctx->framerate = (AVRational){ fps, 1 }; + ctx->codec_ctx->bit_rate = bitrate; + ctx->codec_ctx->gop_size = 10; + ctx->codec_ctx->max_b_frames = 1; + + if (ctx->fmt_ctx->oformat->flags & AVFMT_GLOBALHEADER) { + ctx->codec_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; + } + + ctx->video_stream = avformat_new_stream(ctx->fmt_ctx, codec); + if (!ctx->video_stream) { + LOGE("vp9: failed to create stream"); + return (jlong) 0; + } + + ctx->video_stream->codecpar->codec_id = ctx->codec_ctx->codec_id; + ctx->video_stream->codecpar->codec_type = ctx->codec_ctx->codec_type; + ctx->video_stream->codecpar->width = ctx->codec_ctx->width; + ctx->video_stream->codecpar->height = ctx->codec_ctx->height; + ctx->video_stream->codecpar->format = ctx->codec_ctx->pix_fmt; + ctx->video_stream->time_base = ctx->codec_ctx->time_base; + + ret = avcodec_open2(ctx->codec_ctx, codec, NULL); + if (ret < 0) { + LOGE("vp9: failed to open codec %s", av_err2str(ret)); + return (jlong) 0; + } + + ctx->sws_ctx = sws_getContext(width, height, AV_PIX_FMT_RGBA, width, height, AV_PIX_FMT_YUVA420P, 0, 0, 0, 0); + if (!ctx->sws_ctx) { + LOGE("vp9: failed to sws_ctx"); + return (jlong) 0; + } + + ctx->frame = av_frame_alloc(); + if (!ctx->frame) { + LOGE("vp9: failed to alloc frame"); + return (jlong)0; + } + + ctx->frame->format = ctx->codec_ctx->pix_fmt; + ctx->frame->width = ctx->codec_ctx->width; + ctx->frame->height = ctx->codec_ctx->height; + ret = av_frame_get_buffer(ctx->frame, 0); + if (ret < 0) { + LOGE("vp9: failed to get frame buffer %d", ret); + return (jlong)0; + } + + if (avcodec_parameters_from_context(ctx->video_stream->codecpar, ctx->codec_ctx) < 0) { + LOGE("vp9: failed to copy codec parameters to stream"); + return (jlong) 0; + } + + ret = avformat_write_header(ctx->fmt_ctx, NULL); + if (ret < 0) { + LOGE("vp9: failed to write header %d", ret); + return (jlong) 0; + } + + (*env)->ReleaseStringUTFChars(env, outputPath_, outputPath); + + return (jlong)ctx; +} + +JNIEXPORT jboolean JNICALL Java_org_telegram_messenger_video_WebmEncoder_writeFrame( + JNIEnv *env, jobject obj, + jlong ptr, + jobject argbPixels, + jint width, jint height +) { + EncoderContext *ctx = (EncoderContext *) ptr; + + uint8_t *pixels = (*env)->GetDirectBufferAddress(env, argbPixels); + + if (!ctx || !pixels) { + LOGE("vp9: no ctx or no pixels"); + return JNI_FALSE; + } + + int ret; + AVPacket pkt; + av_init_packet(&pkt); + pkt.data = NULL; + pkt.size = 0; + + ret = av_frame_make_writable(ctx->frame); + if (ret < 0) { + LOGE("vp9: failed to make writable %d", ret); + return JNI_FALSE; + } + + const uint8_t* srcSlice[1] = { pixels }; + int srcStride[1] = { 4 * width }; + sws_scale(ctx->sws_ctx, srcSlice, srcStride, 0, ctx->codec_ctx->height, ctx->frame->data, ctx->frame->linesize); + + ctx->frame->pts = ctx->frame_count++; + + ret = avcodec_send_frame(ctx->codec_ctx, ctx->frame); + if (ret < 0) { + LOGE("vp9: failed to send packet %d", ret); + return JNI_FALSE; + } + + while (ret >= 0) { + ret = avcodec_receive_packet(ctx->codec_ctx, &pkt); + if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) { + break; + } else if (ret < 0) { + LOGE("vp9: failed to receive packet %d", ret); + return JNI_FALSE; + } + + av_packet_rescale_ts(&pkt, ctx->codec_ctx->time_base, ctx->video_stream->time_base); + pkt.stream_index = ctx->video_stream->index; + + ret = av_interleaved_write_frame(ctx->fmt_ctx, &pkt); + av_packet_unref(&pkt); + } + + return JNI_TRUE; +} + +JNIEXPORT void JNICALL Java_org_telegram_messenger_video_WebmEncoder_stop( + JNIEnv *env, jobject obj, + jlong ptr +) { + EncoderContext *ctx = (EncoderContext *) ptr; + if (!ctx || !ctx->fmt_ctx) { + return; + } + + avcodec_send_frame(ctx->codec_ctx, NULL); + AVPacket pkt; + av_init_packet(&pkt); + pkt.data = NULL; + pkt.size = 0; + + int ret; + while (1) { + ret = avcodec_receive_packet(ctx->codec_ctx, &pkt); + if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) { + break; + } else if (ret < 0) { + LOGE("vp9: failed to receive packet %d", ret); + return; + } + + av_packet_rescale_ts(&pkt, ctx->codec_ctx->time_base, ctx->video_stream->time_base); + pkt.stream_index = ctx->video_stream->index; + + ret = av_interleaved_write_frame(ctx->fmt_ctx, &pkt); + av_packet_unref(&pkt); + } + + av_write_trailer(ctx->fmt_ctx); + + if (ctx->frame) { + av_frame_free(&ctx->frame); + } + if (ctx->codec_ctx) { + avcodec_free_context(&ctx->codec_ctx); + } + if (ctx->sws_ctx) { + sws_freeContext(ctx->sws_ctx); + } + if (ctx->fmt_ctx) { + if (!(ctx->fmt_ctx->oformat->flags & AVFMT_NOFILE)) { + avio_closep(&ctx->fmt_ctx->pb); + } + avformat_free_context(ctx->fmt_ctx); + } + + free(ctx); +} \ No newline at end of file diff --git a/TMessagesProj/src/emojis/apple/emoji/0_0.png b/TMessagesProj/src/emojis/apple/emoji/0_0.png deleted file mode 100644 index 3977ec0b15..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1.png b/TMessagesProj/src/emojis/apple/emoji/0_1.png deleted file mode 100644 index 8dbe7b2031..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_10.png b/TMessagesProj/src/emojis/apple/emoji/0_10.png deleted file mode 100644 index bdf97aff10..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_100.png b/TMessagesProj/src/emojis/apple/emoji/0_100.png deleted file mode 100644 index c2ab8c199a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1000.png b/TMessagesProj/src/emojis/apple/emoji/0_1000.png deleted file mode 100644 index 0194ecac21..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1000.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1001.png b/TMessagesProj/src/emojis/apple/emoji/0_1001.png deleted file mode 100644 index 58164e5ba9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1001.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1002.png b/TMessagesProj/src/emojis/apple/emoji/0_1002.png deleted file mode 100644 index 98fdf8ad8a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1002.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1003.png b/TMessagesProj/src/emojis/apple/emoji/0_1003.png deleted file mode 100644 index 80dc0dd324..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1003.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1004.png b/TMessagesProj/src/emojis/apple/emoji/0_1004.png deleted file mode 100644 index e342ae1f53..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1004.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1005.png b/TMessagesProj/src/emojis/apple/emoji/0_1005.png deleted file mode 100644 index 90f174b604..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1005.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1006.png b/TMessagesProj/src/emojis/apple/emoji/0_1006.png deleted file mode 100644 index 930424571e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1006.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1007.png b/TMessagesProj/src/emojis/apple/emoji/0_1007.png deleted file mode 100644 index f1ccf1b675..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1007.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1008.png b/TMessagesProj/src/emojis/apple/emoji/0_1008.png deleted file mode 100644 index c225fe0f77..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1008.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1009.png b/TMessagesProj/src/emojis/apple/emoji/0_1009.png deleted file mode 100644 index 84341a6146..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1009.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_101.png b/TMessagesProj/src/emojis/apple/emoji/0_101.png deleted file mode 100644 index d26e60ae32..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1010.png b/TMessagesProj/src/emojis/apple/emoji/0_1010.png deleted file mode 100644 index 5f5dcfcd87..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1010.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1011.png b/TMessagesProj/src/emojis/apple/emoji/0_1011.png deleted file mode 100644 index 1323993c71..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1011.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1012.png b/TMessagesProj/src/emojis/apple/emoji/0_1012.png deleted file mode 100644 index 92773cb058..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1012.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1013.png b/TMessagesProj/src/emojis/apple/emoji/0_1013.png deleted file mode 100644 index b3f7012cb1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1013.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1014.png b/TMessagesProj/src/emojis/apple/emoji/0_1014.png deleted file mode 100644 index df045504e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1014.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1015.png b/TMessagesProj/src/emojis/apple/emoji/0_1015.png deleted file mode 100644 index 692649aa75..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1015.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1016.png b/TMessagesProj/src/emojis/apple/emoji/0_1016.png deleted file mode 100644 index 1a1a530750..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1016.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1017.png b/TMessagesProj/src/emojis/apple/emoji/0_1017.png deleted file mode 100644 index 4dada7c139..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1017.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1018.png b/TMessagesProj/src/emojis/apple/emoji/0_1018.png deleted file mode 100644 index 316c80ef89..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1018.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1019.png b/TMessagesProj/src/emojis/apple/emoji/0_1019.png deleted file mode 100644 index 992dbfb080..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1019.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_102.png b/TMessagesProj/src/emojis/apple/emoji/0_102.png deleted file mode 100644 index 15a751f5b4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1020.png b/TMessagesProj/src/emojis/apple/emoji/0_1020.png deleted file mode 100644 index 9229e0ce7a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1020.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1021.png b/TMessagesProj/src/emojis/apple/emoji/0_1021.png deleted file mode 100644 index 5919371192..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1021.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1022.png b/TMessagesProj/src/emojis/apple/emoji/0_1022.png deleted file mode 100644 index 906d249b72..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1022.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1023.png b/TMessagesProj/src/emojis/apple/emoji/0_1023.png deleted file mode 100644 index 3c330156fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1023.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1024.png b/TMessagesProj/src/emojis/apple/emoji/0_1024.png deleted file mode 100644 index 1482c83dc8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1024.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1025.png b/TMessagesProj/src/emojis/apple/emoji/0_1025.png deleted file mode 100644 index 2020f05a7b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1025.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1026.png b/TMessagesProj/src/emojis/apple/emoji/0_1026.png deleted file mode 100644 index b18703b449..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1026.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1027.png b/TMessagesProj/src/emojis/apple/emoji/0_1027.png deleted file mode 100644 index 79349c327a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1027.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1028.png b/TMessagesProj/src/emojis/apple/emoji/0_1028.png deleted file mode 100644 index d4e6e86dde..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1028.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1029.png b/TMessagesProj/src/emojis/apple/emoji/0_1029.png deleted file mode 100644 index ec2aea024e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1029.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_103.png b/TMessagesProj/src/emojis/apple/emoji/0_103.png deleted file mode 100644 index 94f1015010..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1030.png b/TMessagesProj/src/emojis/apple/emoji/0_1030.png deleted file mode 100644 index a336013cd2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1030.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1031.png b/TMessagesProj/src/emojis/apple/emoji/0_1031.png deleted file mode 100644 index 48825e09ff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1031.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1032.png b/TMessagesProj/src/emojis/apple/emoji/0_1032.png deleted file mode 100644 index d8419ddd4b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1032.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1033.png b/TMessagesProj/src/emojis/apple/emoji/0_1033.png deleted file mode 100644 index f35ef8e252..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1033.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1034.png b/TMessagesProj/src/emojis/apple/emoji/0_1034.png deleted file mode 100644 index 1fb589906f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1034.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1035.png b/TMessagesProj/src/emojis/apple/emoji/0_1035.png deleted file mode 100644 index 1248aa87dc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1035.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1036.png b/TMessagesProj/src/emojis/apple/emoji/0_1036.png deleted file mode 100644 index 599412049a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1036.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1037.png b/TMessagesProj/src/emojis/apple/emoji/0_1037.png deleted file mode 100644 index 822b4d3b5d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1037.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1038.png b/TMessagesProj/src/emojis/apple/emoji/0_1038.png deleted file mode 100644 index 167e6809fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1038.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1039.png b/TMessagesProj/src/emojis/apple/emoji/0_1039.png deleted file mode 100644 index 43da8e18d8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1039.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_104.png b/TMessagesProj/src/emojis/apple/emoji/0_104.png deleted file mode 100644 index c60382dfc4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1040.png b/TMessagesProj/src/emojis/apple/emoji/0_1040.png deleted file mode 100644 index 52caadbab4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1040.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1041.png b/TMessagesProj/src/emojis/apple/emoji/0_1041.png deleted file mode 100644 index 22f4678e1a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1041.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1042.png b/TMessagesProj/src/emojis/apple/emoji/0_1042.png deleted file mode 100644 index f57009fedb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1042.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1043.png b/TMessagesProj/src/emojis/apple/emoji/0_1043.png deleted file mode 100644 index 3bd836903f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1043.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1044.png b/TMessagesProj/src/emojis/apple/emoji/0_1044.png deleted file mode 100644 index d776b8796a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1044.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1045.png b/TMessagesProj/src/emojis/apple/emoji/0_1045.png deleted file mode 100644 index a66e443b0b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1045.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1046.png b/TMessagesProj/src/emojis/apple/emoji/0_1046.png deleted file mode 100644 index 3f0b79df16..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1046.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1047.png b/TMessagesProj/src/emojis/apple/emoji/0_1047.png deleted file mode 100644 index a3a599d08e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1047.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1048.png b/TMessagesProj/src/emojis/apple/emoji/0_1048.png deleted file mode 100644 index 5b99bdf916..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1048.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1049.png b/TMessagesProj/src/emojis/apple/emoji/0_1049.png deleted file mode 100644 index 5d08f8a1b7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1049.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_105.png b/TMessagesProj/src/emojis/apple/emoji/0_105.png deleted file mode 100644 index 5aed64bc6a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1050.png b/TMessagesProj/src/emojis/apple/emoji/0_1050.png deleted file mode 100644 index fa045231d7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1050.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1051.png b/TMessagesProj/src/emojis/apple/emoji/0_1051.png deleted file mode 100644 index 9c03876d6f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1051.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1052.png b/TMessagesProj/src/emojis/apple/emoji/0_1052.png deleted file mode 100644 index 74ccbddb33..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1052.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1053.png b/TMessagesProj/src/emojis/apple/emoji/0_1053.png deleted file mode 100644 index 8d9c3d4112..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1053.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1054.png b/TMessagesProj/src/emojis/apple/emoji/0_1054.png deleted file mode 100644 index b0b29b83ff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1054.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1055.png b/TMessagesProj/src/emojis/apple/emoji/0_1055.png deleted file mode 100644 index 4fb8cb32e5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1055.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1056.png b/TMessagesProj/src/emojis/apple/emoji/0_1056.png deleted file mode 100644 index 336f745160..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1056.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1057.png b/TMessagesProj/src/emojis/apple/emoji/0_1057.png deleted file mode 100644 index a1e6044256..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1057.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1058.png b/TMessagesProj/src/emojis/apple/emoji/0_1058.png deleted file mode 100644 index 83aa32c165..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1058.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1059.png b/TMessagesProj/src/emojis/apple/emoji/0_1059.png deleted file mode 100644 index 3ad8904510..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1059.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_106.png b/TMessagesProj/src/emojis/apple/emoji/0_106.png deleted file mode 100644 index 25661d2283..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1060.png b/TMessagesProj/src/emojis/apple/emoji/0_1060.png deleted file mode 100644 index a600c6d642..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1060.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1061.png b/TMessagesProj/src/emojis/apple/emoji/0_1061.png deleted file mode 100644 index b9d77231c3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1061.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1062.png b/TMessagesProj/src/emojis/apple/emoji/0_1062.png deleted file mode 100644 index 432fabc9e2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1062.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1063.png b/TMessagesProj/src/emojis/apple/emoji/0_1063.png deleted file mode 100644 index f31f82640e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1063.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1064.png b/TMessagesProj/src/emojis/apple/emoji/0_1064.png deleted file mode 100644 index eda08953b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1064.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1065.png b/TMessagesProj/src/emojis/apple/emoji/0_1065.png deleted file mode 100644 index c5a0a28c13..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1065.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1066.png b/TMessagesProj/src/emojis/apple/emoji/0_1066.png deleted file mode 100644 index f9e5531a7c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1066.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1067.png b/TMessagesProj/src/emojis/apple/emoji/0_1067.png deleted file mode 100644 index 3e9867b9e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1067.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1068.png b/TMessagesProj/src/emojis/apple/emoji/0_1068.png deleted file mode 100644 index cfe979fdd0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1068.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1069.png b/TMessagesProj/src/emojis/apple/emoji/0_1069.png deleted file mode 100644 index 92b944cd0c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1069.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_107.png b/TMessagesProj/src/emojis/apple/emoji/0_107.png deleted file mode 100644 index 61ba275873..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1070.png b/TMessagesProj/src/emojis/apple/emoji/0_1070.png deleted file mode 100644 index 5e5343ddfa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1070.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1071.png b/TMessagesProj/src/emojis/apple/emoji/0_1071.png deleted file mode 100644 index a986cb9d4a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1071.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1072.png b/TMessagesProj/src/emojis/apple/emoji/0_1072.png deleted file mode 100644 index 094fe64a28..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1072.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1073.png b/TMessagesProj/src/emojis/apple/emoji/0_1073.png deleted file mode 100644 index 6c078b7c44..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1073.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1074.png b/TMessagesProj/src/emojis/apple/emoji/0_1074.png deleted file mode 100644 index fe27c23f00..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1074.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1075.png b/TMessagesProj/src/emojis/apple/emoji/0_1075.png deleted file mode 100644 index 898fafb471..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1075.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1076.png b/TMessagesProj/src/emojis/apple/emoji/0_1076.png deleted file mode 100644 index d597207f21..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1076.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1077.png b/TMessagesProj/src/emojis/apple/emoji/0_1077.png deleted file mode 100644 index 3d2921d929..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1077.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1078.png b/TMessagesProj/src/emojis/apple/emoji/0_1078.png deleted file mode 100644 index cd840c27f1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1078.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1079.png b/TMessagesProj/src/emojis/apple/emoji/0_1079.png deleted file mode 100644 index d5209e1b21..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1079.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_108.png b/TMessagesProj/src/emojis/apple/emoji/0_108.png deleted file mode 100644 index c69ef93bfd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1080.png b/TMessagesProj/src/emojis/apple/emoji/0_1080.png deleted file mode 100644 index 5a53533eb4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1080.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1081.png b/TMessagesProj/src/emojis/apple/emoji/0_1081.png deleted file mode 100644 index d2f23824f6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1081.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1082.png b/TMessagesProj/src/emojis/apple/emoji/0_1082.png deleted file mode 100644 index fcf663e29a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1082.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1083.png b/TMessagesProj/src/emojis/apple/emoji/0_1083.png deleted file mode 100644 index a841bd07f3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1083.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1084.png b/TMessagesProj/src/emojis/apple/emoji/0_1084.png deleted file mode 100644 index 8e2044ddcb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1084.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1085.png b/TMessagesProj/src/emojis/apple/emoji/0_1085.png deleted file mode 100644 index 328a2e062d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1085.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1086.png b/TMessagesProj/src/emojis/apple/emoji/0_1086.png deleted file mode 100644 index 65507998e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1086.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1087.png b/TMessagesProj/src/emojis/apple/emoji/0_1087.png deleted file mode 100644 index 2c6ab9bcfe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1087.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1088.png b/TMessagesProj/src/emojis/apple/emoji/0_1088.png deleted file mode 100644 index ccf484fe58..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1088.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1089.png b/TMessagesProj/src/emojis/apple/emoji/0_1089.png deleted file mode 100644 index 8728b83ba9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1089.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_109.png b/TMessagesProj/src/emojis/apple/emoji/0_109.png deleted file mode 100644 index 95f6c170f7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1090.png b/TMessagesProj/src/emojis/apple/emoji/0_1090.png deleted file mode 100644 index 4a20531b6b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1090.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1091.png b/TMessagesProj/src/emojis/apple/emoji/0_1091.png deleted file mode 100644 index e7f15d4ff0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1091.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1092.png b/TMessagesProj/src/emojis/apple/emoji/0_1092.png deleted file mode 100644 index 0b17f0126c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1092.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1093.png b/TMessagesProj/src/emojis/apple/emoji/0_1093.png deleted file mode 100644 index 6c1052712e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1093.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1094.png b/TMessagesProj/src/emojis/apple/emoji/0_1094.png deleted file mode 100644 index 5811a9fc9a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1094.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1095.png b/TMessagesProj/src/emojis/apple/emoji/0_1095.png deleted file mode 100644 index 446bfaad22..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1095.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1096.png b/TMessagesProj/src/emojis/apple/emoji/0_1096.png deleted file mode 100644 index ed5be6f4c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1096.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1097.png b/TMessagesProj/src/emojis/apple/emoji/0_1097.png deleted file mode 100644 index 17ba634817..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1097.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1098.png b/TMessagesProj/src/emojis/apple/emoji/0_1098.png deleted file mode 100644 index ac435e3d7c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1098.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1099.png b/TMessagesProj/src/emojis/apple/emoji/0_1099.png deleted file mode 100644 index 3f2cc656db..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1099.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_11.png b/TMessagesProj/src/emojis/apple/emoji/0_11.png deleted file mode 100644 index 275f5c7a92..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_110.png b/TMessagesProj/src/emojis/apple/emoji/0_110.png deleted file mode 100644 index 33db597795..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1100.png b/TMessagesProj/src/emojis/apple/emoji/0_1100.png deleted file mode 100644 index f8fc5576c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1101.png b/TMessagesProj/src/emojis/apple/emoji/0_1101.png deleted file mode 100644 index 98a9d790cb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1102.png b/TMessagesProj/src/emojis/apple/emoji/0_1102.png deleted file mode 100644 index 882cdd7232..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1103.png b/TMessagesProj/src/emojis/apple/emoji/0_1103.png deleted file mode 100644 index 6e6243ea94..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1104.png b/TMessagesProj/src/emojis/apple/emoji/0_1104.png deleted file mode 100644 index 74764e741f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1105.png b/TMessagesProj/src/emojis/apple/emoji/0_1105.png deleted file mode 100644 index 6b5417857e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1106.png b/TMessagesProj/src/emojis/apple/emoji/0_1106.png deleted file mode 100644 index 02d459870b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1107.png b/TMessagesProj/src/emojis/apple/emoji/0_1107.png deleted file mode 100644 index a602003551..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1108.png b/TMessagesProj/src/emojis/apple/emoji/0_1108.png deleted file mode 100644 index dd87cdaba5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1109.png b/TMessagesProj/src/emojis/apple/emoji/0_1109.png deleted file mode 100644 index 366da32c0e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_111.png b/TMessagesProj/src/emojis/apple/emoji/0_111.png deleted file mode 100644 index 30838f4b2b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1110.png b/TMessagesProj/src/emojis/apple/emoji/0_1110.png deleted file mode 100644 index 4a8841fe05..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1111.png b/TMessagesProj/src/emojis/apple/emoji/0_1111.png deleted file mode 100644 index 7b19e6103b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1112.png b/TMessagesProj/src/emojis/apple/emoji/0_1112.png deleted file mode 100644 index 059451b32e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1113.png b/TMessagesProj/src/emojis/apple/emoji/0_1113.png deleted file mode 100644 index bfb4ee7cf6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1114.png b/TMessagesProj/src/emojis/apple/emoji/0_1114.png deleted file mode 100644 index 033effa12a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1115.png b/TMessagesProj/src/emojis/apple/emoji/0_1115.png deleted file mode 100644 index 9441ff8b30..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1116.png b/TMessagesProj/src/emojis/apple/emoji/0_1116.png deleted file mode 100644 index 5bec8cbaaa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1117.png b/TMessagesProj/src/emojis/apple/emoji/0_1117.png deleted file mode 100644 index 52a611d0aa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1118.png b/TMessagesProj/src/emojis/apple/emoji/0_1118.png deleted file mode 100644 index 90ccec49a6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1119.png b/TMessagesProj/src/emojis/apple/emoji/0_1119.png deleted file mode 100644 index 526d789ec1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_112.png b/TMessagesProj/src/emojis/apple/emoji/0_112.png deleted file mode 100644 index 2620a740cd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1120.png b/TMessagesProj/src/emojis/apple/emoji/0_1120.png deleted file mode 100644 index 92bd178544..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1121.png b/TMessagesProj/src/emojis/apple/emoji/0_1121.png deleted file mode 100644 index 6a9a2d72f9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1122.png b/TMessagesProj/src/emojis/apple/emoji/0_1122.png deleted file mode 100644 index 3e216b2753..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1123.png b/TMessagesProj/src/emojis/apple/emoji/0_1123.png deleted file mode 100644 index 655b4b4a27..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1124.png b/TMessagesProj/src/emojis/apple/emoji/0_1124.png deleted file mode 100644 index 0917f2cab6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1125.png b/TMessagesProj/src/emojis/apple/emoji/0_1125.png deleted file mode 100644 index 80781406be..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1126.png b/TMessagesProj/src/emojis/apple/emoji/0_1126.png deleted file mode 100644 index 964cccb6f5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1127.png b/TMessagesProj/src/emojis/apple/emoji/0_1127.png deleted file mode 100644 index f31c90f1dc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1128.png b/TMessagesProj/src/emojis/apple/emoji/0_1128.png deleted file mode 100644 index 0573075fb7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1129.png b/TMessagesProj/src/emojis/apple/emoji/0_1129.png deleted file mode 100644 index fa68d3f538..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_113.png b/TMessagesProj/src/emojis/apple/emoji/0_113.png deleted file mode 100644 index 0355ae99e6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1130.png b/TMessagesProj/src/emojis/apple/emoji/0_1130.png deleted file mode 100644 index d3caaab554..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1131.png b/TMessagesProj/src/emojis/apple/emoji/0_1131.png deleted file mode 100644 index 99a7f077c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1132.png b/TMessagesProj/src/emojis/apple/emoji/0_1132.png deleted file mode 100644 index d5291ed831..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1133.png b/TMessagesProj/src/emojis/apple/emoji/0_1133.png deleted file mode 100644 index c4a54ff2b4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1134.png b/TMessagesProj/src/emojis/apple/emoji/0_1134.png deleted file mode 100644 index d3a03b6d0f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1135.png b/TMessagesProj/src/emojis/apple/emoji/0_1135.png deleted file mode 100644 index 3031c0b449..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1136.png b/TMessagesProj/src/emojis/apple/emoji/0_1136.png deleted file mode 100644 index e3a79db5fc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1137.png b/TMessagesProj/src/emojis/apple/emoji/0_1137.png deleted file mode 100644 index 891a4da08c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1138.png b/TMessagesProj/src/emojis/apple/emoji/0_1138.png deleted file mode 100644 index 4e82b73b91..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1139.png b/TMessagesProj/src/emojis/apple/emoji/0_1139.png deleted file mode 100644 index 55db5bd6f1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_114.png b/TMessagesProj/src/emojis/apple/emoji/0_114.png deleted file mode 100644 index 7d7551b20c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1140.png b/TMessagesProj/src/emojis/apple/emoji/0_1140.png deleted file mode 100644 index 68d15d6d49..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1141.png b/TMessagesProj/src/emojis/apple/emoji/0_1141.png deleted file mode 100644 index d897f924fa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1142.png b/TMessagesProj/src/emojis/apple/emoji/0_1142.png deleted file mode 100644 index dadaf8fead..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1143.png b/TMessagesProj/src/emojis/apple/emoji/0_1143.png deleted file mode 100644 index e086ea4e23..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1144.png b/TMessagesProj/src/emojis/apple/emoji/0_1144.png deleted file mode 100644 index 754a54c7a1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1145.png b/TMessagesProj/src/emojis/apple/emoji/0_1145.png deleted file mode 100644 index 348e71cbc8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1146.png b/TMessagesProj/src/emojis/apple/emoji/0_1146.png deleted file mode 100644 index 5edfe9e6a9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1147.png b/TMessagesProj/src/emojis/apple/emoji/0_1147.png deleted file mode 100644 index ecfdae8cbd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1148.png b/TMessagesProj/src/emojis/apple/emoji/0_1148.png deleted file mode 100644 index 7e600fcd30..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1149.png b/TMessagesProj/src/emojis/apple/emoji/0_1149.png deleted file mode 100644 index 9d0d05181b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_115.png b/TMessagesProj/src/emojis/apple/emoji/0_115.png deleted file mode 100644 index 1c61e8c891..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1150.png b/TMessagesProj/src/emojis/apple/emoji/0_1150.png deleted file mode 100644 index 0dcea1fd13..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1151.png b/TMessagesProj/src/emojis/apple/emoji/0_1151.png deleted file mode 100644 index d5febd3aaf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1152.png b/TMessagesProj/src/emojis/apple/emoji/0_1152.png deleted file mode 100644 index 438b1c471a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1153.png b/TMessagesProj/src/emojis/apple/emoji/0_1153.png deleted file mode 100644 index b05a8b2672..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1154.png b/TMessagesProj/src/emojis/apple/emoji/0_1154.png deleted file mode 100644 index 1b4e64e343..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1155.png b/TMessagesProj/src/emojis/apple/emoji/0_1155.png deleted file mode 100644 index 9b92501f1b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1156.png b/TMessagesProj/src/emojis/apple/emoji/0_1156.png deleted file mode 100644 index 746a036ff6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1157.png b/TMessagesProj/src/emojis/apple/emoji/0_1157.png deleted file mode 100644 index fe4d0f2582..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1158.png b/TMessagesProj/src/emojis/apple/emoji/0_1158.png deleted file mode 100644 index 278b448152..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1159.png b/TMessagesProj/src/emojis/apple/emoji/0_1159.png deleted file mode 100644 index ded03640a3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_116.png b/TMessagesProj/src/emojis/apple/emoji/0_116.png deleted file mode 100644 index 5661cea414..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1160.png b/TMessagesProj/src/emojis/apple/emoji/0_1160.png deleted file mode 100644 index c34b3deeb7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1161.png b/TMessagesProj/src/emojis/apple/emoji/0_1161.png deleted file mode 100644 index 46d20f606c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1162.png b/TMessagesProj/src/emojis/apple/emoji/0_1162.png deleted file mode 100644 index 8e13e958c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1163.png b/TMessagesProj/src/emojis/apple/emoji/0_1163.png deleted file mode 100644 index 836d73c58a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1164.png b/TMessagesProj/src/emojis/apple/emoji/0_1164.png deleted file mode 100644 index 6798996f1f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1165.png b/TMessagesProj/src/emojis/apple/emoji/0_1165.png deleted file mode 100644 index 4ec3deccdb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1166.png b/TMessagesProj/src/emojis/apple/emoji/0_1166.png deleted file mode 100644 index 6ee256687d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1167.png b/TMessagesProj/src/emojis/apple/emoji/0_1167.png deleted file mode 100644 index 123fea5f4c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1168.png b/TMessagesProj/src/emojis/apple/emoji/0_1168.png deleted file mode 100644 index b3c45e48ec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1169.png b/TMessagesProj/src/emojis/apple/emoji/0_1169.png deleted file mode 100644 index 9cd05edcbd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_117.png b/TMessagesProj/src/emojis/apple/emoji/0_117.png deleted file mode 100644 index d507526470..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1170.png b/TMessagesProj/src/emojis/apple/emoji/0_1170.png deleted file mode 100644 index dc10f69e17..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1171.png b/TMessagesProj/src/emojis/apple/emoji/0_1171.png deleted file mode 100644 index 7f7f20469a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1172.png b/TMessagesProj/src/emojis/apple/emoji/0_1172.png deleted file mode 100644 index 54e2a9d443..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1173.png b/TMessagesProj/src/emojis/apple/emoji/0_1173.png deleted file mode 100644 index 422a1d3937..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1174.png b/TMessagesProj/src/emojis/apple/emoji/0_1174.png deleted file mode 100644 index 8b17945150..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1175.png b/TMessagesProj/src/emojis/apple/emoji/0_1175.png deleted file mode 100644 index 7a1bb4ac02..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1176.png b/TMessagesProj/src/emojis/apple/emoji/0_1176.png deleted file mode 100644 index 127ddc27bb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1177.png b/TMessagesProj/src/emojis/apple/emoji/0_1177.png deleted file mode 100644 index 07e722e798..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1178.png b/TMessagesProj/src/emojis/apple/emoji/0_1178.png deleted file mode 100644 index d58bb67e38..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1179.png b/TMessagesProj/src/emojis/apple/emoji/0_1179.png deleted file mode 100644 index b7277fedab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_118.png b/TMessagesProj/src/emojis/apple/emoji/0_118.png deleted file mode 100644 index efd3d1ec1f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1180.png b/TMessagesProj/src/emojis/apple/emoji/0_1180.png deleted file mode 100644 index 7d6cbf08c5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1181.png b/TMessagesProj/src/emojis/apple/emoji/0_1181.png deleted file mode 100644 index f2eac83682..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1182.png b/TMessagesProj/src/emojis/apple/emoji/0_1182.png deleted file mode 100644 index a9b6eeb5fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1183.png b/TMessagesProj/src/emojis/apple/emoji/0_1183.png deleted file mode 100644 index f9ffc15d25..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1184.png b/TMessagesProj/src/emojis/apple/emoji/0_1184.png deleted file mode 100644 index bdebfd0adf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1185.png b/TMessagesProj/src/emojis/apple/emoji/0_1185.png deleted file mode 100644 index be6a5e6a40..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1186.png b/TMessagesProj/src/emojis/apple/emoji/0_1186.png deleted file mode 100644 index 19c2802fe4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1187.png b/TMessagesProj/src/emojis/apple/emoji/0_1187.png deleted file mode 100644 index 59acd587d7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1188.png b/TMessagesProj/src/emojis/apple/emoji/0_1188.png deleted file mode 100644 index bda3f1f607..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1189.png b/TMessagesProj/src/emojis/apple/emoji/0_1189.png deleted file mode 100644 index 070628f76d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_119.png b/TMessagesProj/src/emojis/apple/emoji/0_119.png deleted file mode 100644 index 880f93f608..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1190.png b/TMessagesProj/src/emojis/apple/emoji/0_1190.png deleted file mode 100644 index 3cfc376e44..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1191.png b/TMessagesProj/src/emojis/apple/emoji/0_1191.png deleted file mode 100644 index 377c7ab542..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1192.png b/TMessagesProj/src/emojis/apple/emoji/0_1192.png deleted file mode 100644 index 77b5b73189..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1193.png b/TMessagesProj/src/emojis/apple/emoji/0_1193.png deleted file mode 100644 index ecf94f100c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1194.png b/TMessagesProj/src/emojis/apple/emoji/0_1194.png deleted file mode 100644 index 7c3235bff8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1195.png b/TMessagesProj/src/emojis/apple/emoji/0_1195.png deleted file mode 100644 index eebee24a79..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1196.png b/TMessagesProj/src/emojis/apple/emoji/0_1196.png deleted file mode 100644 index 5907f0a04b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1197.png b/TMessagesProj/src/emojis/apple/emoji/0_1197.png deleted file mode 100644 index 34b9911dbe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1198.png b/TMessagesProj/src/emojis/apple/emoji/0_1198.png deleted file mode 100644 index d8108897e0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1199.png b/TMessagesProj/src/emojis/apple/emoji/0_1199.png deleted file mode 100644 index 51ad2311db..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_12.png b/TMessagesProj/src/emojis/apple/emoji/0_12.png deleted file mode 100644 index 08675733e8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_120.png b/TMessagesProj/src/emojis/apple/emoji/0_120.png deleted file mode 100644 index c07d5d1e2d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1200.png b/TMessagesProj/src/emojis/apple/emoji/0_1200.png deleted file mode 100644 index 0d2ba7b238..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1201.png b/TMessagesProj/src/emojis/apple/emoji/0_1201.png deleted file mode 100644 index 420a14a363..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1202.png b/TMessagesProj/src/emojis/apple/emoji/0_1202.png deleted file mode 100644 index 09fd601dce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1203.png b/TMessagesProj/src/emojis/apple/emoji/0_1203.png deleted file mode 100644 index 0df86446f5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1204.png b/TMessagesProj/src/emojis/apple/emoji/0_1204.png deleted file mode 100644 index 496840d5be..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1205.png b/TMessagesProj/src/emojis/apple/emoji/0_1205.png deleted file mode 100644 index f2b951d0c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1206.png b/TMessagesProj/src/emojis/apple/emoji/0_1206.png deleted file mode 100644 index 0f28d769fe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1207.png b/TMessagesProj/src/emojis/apple/emoji/0_1207.png deleted file mode 100644 index 4df6c2a21a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1208.png b/TMessagesProj/src/emojis/apple/emoji/0_1208.png deleted file mode 100644 index 35a675dce9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1209.png b/TMessagesProj/src/emojis/apple/emoji/0_1209.png deleted file mode 100644 index 31bcbf81b0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_121.png b/TMessagesProj/src/emojis/apple/emoji/0_121.png deleted file mode 100644 index 0ec4e1794d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1210.png b/TMessagesProj/src/emojis/apple/emoji/0_1210.png deleted file mode 100644 index 55bcfa35cd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1211.png b/TMessagesProj/src/emojis/apple/emoji/0_1211.png deleted file mode 100644 index aac2a9ab4f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1212.png b/TMessagesProj/src/emojis/apple/emoji/0_1212.png deleted file mode 100644 index 46da51e6b0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1213.png b/TMessagesProj/src/emojis/apple/emoji/0_1213.png deleted file mode 100644 index b064b3813a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1214.png b/TMessagesProj/src/emojis/apple/emoji/0_1214.png deleted file mode 100644 index 1f5ff39381..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1215.png b/TMessagesProj/src/emojis/apple/emoji/0_1215.png deleted file mode 100644 index e42d33d84b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1216.png b/TMessagesProj/src/emojis/apple/emoji/0_1216.png deleted file mode 100644 index b3d9e7a88e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1217.png b/TMessagesProj/src/emojis/apple/emoji/0_1217.png deleted file mode 100644 index a133cc9f7c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1218.png b/TMessagesProj/src/emojis/apple/emoji/0_1218.png deleted file mode 100644 index 4409d57fd6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1219.png b/TMessagesProj/src/emojis/apple/emoji/0_1219.png deleted file mode 100644 index 3268986860..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_122.png b/TMessagesProj/src/emojis/apple/emoji/0_122.png deleted file mode 100644 index d421583694..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1220.png b/TMessagesProj/src/emojis/apple/emoji/0_1220.png deleted file mode 100644 index 3c81d5da59..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1221.png b/TMessagesProj/src/emojis/apple/emoji/0_1221.png deleted file mode 100644 index 092be145da..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1222.png b/TMessagesProj/src/emojis/apple/emoji/0_1222.png deleted file mode 100644 index 706efef5f2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1223.png b/TMessagesProj/src/emojis/apple/emoji/0_1223.png deleted file mode 100644 index 8895229478..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1224.png b/TMessagesProj/src/emojis/apple/emoji/0_1224.png deleted file mode 100644 index a75abcac79..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1225.png b/TMessagesProj/src/emojis/apple/emoji/0_1225.png deleted file mode 100644 index d9dc1aefab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1226.png b/TMessagesProj/src/emojis/apple/emoji/0_1226.png deleted file mode 100644 index 0fb5a4e183..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1227.png b/TMessagesProj/src/emojis/apple/emoji/0_1227.png deleted file mode 100644 index 653cf9b9a6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1228.png b/TMessagesProj/src/emojis/apple/emoji/0_1228.png deleted file mode 100644 index 133f37f23a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1229.png b/TMessagesProj/src/emojis/apple/emoji/0_1229.png deleted file mode 100644 index 873771537e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1229.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_123.png b/TMessagesProj/src/emojis/apple/emoji/0_123.png deleted file mode 100644 index de5ea75d99..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1230.png b/TMessagesProj/src/emojis/apple/emoji/0_1230.png deleted file mode 100644 index 909f977c73..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1230.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1231.png b/TMessagesProj/src/emojis/apple/emoji/0_1231.png deleted file mode 100644 index e155aded64..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1231.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1232.png b/TMessagesProj/src/emojis/apple/emoji/0_1232.png deleted file mode 100644 index c0117ede22..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1232.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1233.png b/TMessagesProj/src/emojis/apple/emoji/0_1233.png deleted file mode 100644 index a65b94ba6f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1233.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1234.png b/TMessagesProj/src/emojis/apple/emoji/0_1234.png deleted file mode 100644 index c9577f7e5d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1234.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1235.png b/TMessagesProj/src/emojis/apple/emoji/0_1235.png deleted file mode 100644 index 0b2a50e187..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1235.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1236.png b/TMessagesProj/src/emojis/apple/emoji/0_1236.png deleted file mode 100644 index d846d11a11..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1236.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1237.png b/TMessagesProj/src/emojis/apple/emoji/0_1237.png deleted file mode 100644 index 30c6e8a1bc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1237.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1238.png b/TMessagesProj/src/emojis/apple/emoji/0_1238.png deleted file mode 100644 index 6767727c68..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1238.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1239.png b/TMessagesProj/src/emojis/apple/emoji/0_1239.png deleted file mode 100644 index 26b82f5323..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1239.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_124.png b/TMessagesProj/src/emojis/apple/emoji/0_124.png deleted file mode 100644 index f17ab5ca85..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1240.png b/TMessagesProj/src/emojis/apple/emoji/0_1240.png deleted file mode 100644 index 84446dc3a2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1240.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1241.png b/TMessagesProj/src/emojis/apple/emoji/0_1241.png deleted file mode 100644 index a83416df48..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1241.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1242.png b/TMessagesProj/src/emojis/apple/emoji/0_1242.png deleted file mode 100644 index d704252bcb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1242.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1243.png b/TMessagesProj/src/emojis/apple/emoji/0_1243.png deleted file mode 100644 index 3724491dec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1243.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1244.png b/TMessagesProj/src/emojis/apple/emoji/0_1244.png deleted file mode 100644 index 43bb243682..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1244.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1245.png b/TMessagesProj/src/emojis/apple/emoji/0_1245.png deleted file mode 100644 index 3434af5d24..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1245.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1246.png b/TMessagesProj/src/emojis/apple/emoji/0_1246.png deleted file mode 100644 index 5d77c0c592..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1246.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1247.png b/TMessagesProj/src/emojis/apple/emoji/0_1247.png deleted file mode 100644 index b7c61b0bc8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1247.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1248.png b/TMessagesProj/src/emojis/apple/emoji/0_1248.png deleted file mode 100644 index 0e360ff6ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1248.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1249.png b/TMessagesProj/src/emojis/apple/emoji/0_1249.png deleted file mode 100644 index 6f06cfa70c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1249.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_125.png b/TMessagesProj/src/emojis/apple/emoji/0_125.png deleted file mode 100644 index c0d0bf7f75..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1250.png b/TMessagesProj/src/emojis/apple/emoji/0_1250.png deleted file mode 100644 index 5c9502af69..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1250.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1251.png b/TMessagesProj/src/emojis/apple/emoji/0_1251.png deleted file mode 100644 index 8c8cdec58b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1251.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1252.png b/TMessagesProj/src/emojis/apple/emoji/0_1252.png deleted file mode 100644 index 3df7473ce2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1252.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1253.png b/TMessagesProj/src/emojis/apple/emoji/0_1253.png deleted file mode 100644 index 24abff0efb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1253.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1254.png b/TMessagesProj/src/emojis/apple/emoji/0_1254.png deleted file mode 100644 index be04a6be11..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1254.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1255.png b/TMessagesProj/src/emojis/apple/emoji/0_1255.png deleted file mode 100644 index 52431d1199..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1255.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1256.png b/TMessagesProj/src/emojis/apple/emoji/0_1256.png deleted file mode 100644 index f0d32b5598..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1256.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1257.png b/TMessagesProj/src/emojis/apple/emoji/0_1257.png deleted file mode 100644 index 490d3c4b83..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1257.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1258.png b/TMessagesProj/src/emojis/apple/emoji/0_1258.png deleted file mode 100644 index 55d4784ea5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1258.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1259.png b/TMessagesProj/src/emojis/apple/emoji/0_1259.png deleted file mode 100644 index f81c462314..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1259.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_126.png b/TMessagesProj/src/emojis/apple/emoji/0_126.png deleted file mode 100644 index 94a8d56fba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1260.png b/TMessagesProj/src/emojis/apple/emoji/0_1260.png deleted file mode 100644 index 5a64860e63..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1260.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1261.png b/TMessagesProj/src/emojis/apple/emoji/0_1261.png deleted file mode 100644 index 7e8e8c1fee..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1261.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1262.png b/TMessagesProj/src/emojis/apple/emoji/0_1262.png deleted file mode 100644 index 8547a4d2ea..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1262.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1263.png b/TMessagesProj/src/emojis/apple/emoji/0_1263.png deleted file mode 100644 index ab87d147e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1263.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1264.png b/TMessagesProj/src/emojis/apple/emoji/0_1264.png deleted file mode 100644 index 489cf19c71..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1264.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1265.png b/TMessagesProj/src/emojis/apple/emoji/0_1265.png deleted file mode 100644 index e0f5555bb5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1265.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1266.png b/TMessagesProj/src/emojis/apple/emoji/0_1266.png deleted file mode 100644 index d6221b04f5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1266.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1267.png b/TMessagesProj/src/emojis/apple/emoji/0_1267.png deleted file mode 100644 index 4b28981ed5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1267.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1268.png b/TMessagesProj/src/emojis/apple/emoji/0_1268.png deleted file mode 100644 index cee3b22568..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1268.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1269.png b/TMessagesProj/src/emojis/apple/emoji/0_1269.png deleted file mode 100644 index 2b35397439..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1269.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_127.png b/TMessagesProj/src/emojis/apple/emoji/0_127.png deleted file mode 100644 index a7d45e2c41..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1270.png b/TMessagesProj/src/emojis/apple/emoji/0_1270.png deleted file mode 100644 index 935f51c53d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1270.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1271.png b/TMessagesProj/src/emojis/apple/emoji/0_1271.png deleted file mode 100644 index b5d4e2f38b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1271.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1272.png b/TMessagesProj/src/emojis/apple/emoji/0_1272.png deleted file mode 100644 index 8c6f0caacb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1272.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1273.png b/TMessagesProj/src/emojis/apple/emoji/0_1273.png deleted file mode 100644 index 7809f69729..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1273.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1274.png b/TMessagesProj/src/emojis/apple/emoji/0_1274.png deleted file mode 100644 index 9b3d89d088..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1274.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1275.png b/TMessagesProj/src/emojis/apple/emoji/0_1275.png deleted file mode 100644 index a3a1897709..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1275.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1276.png b/TMessagesProj/src/emojis/apple/emoji/0_1276.png deleted file mode 100644 index ebf5a3a86c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1276.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1277.png b/TMessagesProj/src/emojis/apple/emoji/0_1277.png deleted file mode 100644 index 325591ecc3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1277.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1278.png b/TMessagesProj/src/emojis/apple/emoji/0_1278.png deleted file mode 100644 index 9df347781f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1278.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1279.png b/TMessagesProj/src/emojis/apple/emoji/0_1279.png deleted file mode 100644 index c42a849772..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1279.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_128.png b/TMessagesProj/src/emojis/apple/emoji/0_128.png deleted file mode 100644 index 0dc03573fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1280.png b/TMessagesProj/src/emojis/apple/emoji/0_1280.png deleted file mode 100644 index 5555672d71..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1280.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1281.png b/TMessagesProj/src/emojis/apple/emoji/0_1281.png deleted file mode 100644 index d3eef14f32..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1281.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1282.png b/TMessagesProj/src/emojis/apple/emoji/0_1282.png deleted file mode 100644 index b9335073bd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1282.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1283.png b/TMessagesProj/src/emojis/apple/emoji/0_1283.png deleted file mode 100644 index 6750973422..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1283.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1284.png b/TMessagesProj/src/emojis/apple/emoji/0_1284.png deleted file mode 100644 index b1076d1c34..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1284.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1285.png b/TMessagesProj/src/emojis/apple/emoji/0_1285.png deleted file mode 100644 index 374a87d44e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1285.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1286.png b/TMessagesProj/src/emojis/apple/emoji/0_1286.png deleted file mode 100644 index e8d0ae922d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1286.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1287.png b/TMessagesProj/src/emojis/apple/emoji/0_1287.png deleted file mode 100644 index f1e702c917..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1287.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1288.png b/TMessagesProj/src/emojis/apple/emoji/0_1288.png deleted file mode 100644 index bfe8340f27..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1288.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1289.png b/TMessagesProj/src/emojis/apple/emoji/0_1289.png deleted file mode 100644 index 281529703c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1289.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_129.png b/TMessagesProj/src/emojis/apple/emoji/0_129.png deleted file mode 100644 index 6592b8b023..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1290.png b/TMessagesProj/src/emojis/apple/emoji/0_1290.png deleted file mode 100644 index 93041b04bc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1290.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1291.png b/TMessagesProj/src/emojis/apple/emoji/0_1291.png deleted file mode 100644 index 279353d795..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1291.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1292.png b/TMessagesProj/src/emojis/apple/emoji/0_1292.png deleted file mode 100644 index cfef507cb7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1292.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1293.png b/TMessagesProj/src/emojis/apple/emoji/0_1293.png deleted file mode 100644 index 9c1a13513d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1293.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1294.png b/TMessagesProj/src/emojis/apple/emoji/0_1294.png deleted file mode 100644 index 2c3b4c2921..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1294.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1295.png b/TMessagesProj/src/emojis/apple/emoji/0_1295.png deleted file mode 100644 index c3eff5cfa6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1295.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1296.png b/TMessagesProj/src/emojis/apple/emoji/0_1296.png deleted file mode 100644 index 892cf2f7c1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1296.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1297.png b/TMessagesProj/src/emojis/apple/emoji/0_1297.png deleted file mode 100644 index 6654ee0a94..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1297.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1298.png b/TMessagesProj/src/emojis/apple/emoji/0_1298.png deleted file mode 100644 index 62629a9741..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1298.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1299.png b/TMessagesProj/src/emojis/apple/emoji/0_1299.png deleted file mode 100644 index a2ef023314..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1299.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_13.png b/TMessagesProj/src/emojis/apple/emoji/0_13.png deleted file mode 100644 index 972d5d786f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_130.png b/TMessagesProj/src/emojis/apple/emoji/0_130.png deleted file mode 100644 index 5d5997ab89..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1300.png b/TMessagesProj/src/emojis/apple/emoji/0_1300.png deleted file mode 100644 index bdf1f5f47c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1300.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1301.png b/TMessagesProj/src/emojis/apple/emoji/0_1301.png deleted file mode 100644 index 097853269d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1301.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1302.png b/TMessagesProj/src/emojis/apple/emoji/0_1302.png deleted file mode 100644 index 12cbf6aeda..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1302.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1303.png b/TMessagesProj/src/emojis/apple/emoji/0_1303.png deleted file mode 100644 index 699388bf65..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1303.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1304.png b/TMessagesProj/src/emojis/apple/emoji/0_1304.png deleted file mode 100644 index bf1cf62703..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1304.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1305.png b/TMessagesProj/src/emojis/apple/emoji/0_1305.png deleted file mode 100644 index f3716a1761..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1305.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1306.png b/TMessagesProj/src/emojis/apple/emoji/0_1306.png deleted file mode 100644 index ee109b78e1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1306.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1307.png b/TMessagesProj/src/emojis/apple/emoji/0_1307.png deleted file mode 100644 index 0d80dd33ea..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1307.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1308.png b/TMessagesProj/src/emojis/apple/emoji/0_1308.png deleted file mode 100644 index 7c5ba958d6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1308.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1309.png b/TMessagesProj/src/emojis/apple/emoji/0_1309.png deleted file mode 100644 index 15cfd76011..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1309.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_131.png b/TMessagesProj/src/emojis/apple/emoji/0_131.png deleted file mode 100644 index 04dffd3634..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1310.png b/TMessagesProj/src/emojis/apple/emoji/0_1310.png deleted file mode 100644 index f95144dcc9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1310.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1311.png b/TMessagesProj/src/emojis/apple/emoji/0_1311.png deleted file mode 100644 index e970feb5d6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1311.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1312.png b/TMessagesProj/src/emojis/apple/emoji/0_1312.png deleted file mode 100644 index 211ee2881a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1312.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1313.png b/TMessagesProj/src/emojis/apple/emoji/0_1313.png deleted file mode 100644 index 58acacf7e4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1313.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1314.png b/TMessagesProj/src/emojis/apple/emoji/0_1314.png deleted file mode 100644 index 6fb116e015..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1314.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1315.png b/TMessagesProj/src/emojis/apple/emoji/0_1315.png deleted file mode 100644 index e38b35e737..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1315.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1316.png b/TMessagesProj/src/emojis/apple/emoji/0_1316.png deleted file mode 100644 index 159c1eead7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1316.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1317.png b/TMessagesProj/src/emojis/apple/emoji/0_1317.png deleted file mode 100644 index 1334c236c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1317.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1318.png b/TMessagesProj/src/emojis/apple/emoji/0_1318.png deleted file mode 100644 index adf519eb2e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1318.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1319.png b/TMessagesProj/src/emojis/apple/emoji/0_1319.png deleted file mode 100644 index bf7fd0a1e4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1319.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_132.png b/TMessagesProj/src/emojis/apple/emoji/0_132.png deleted file mode 100644 index f90a6db3e0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1320.png b/TMessagesProj/src/emojis/apple/emoji/0_1320.png deleted file mode 100644 index 00ce88731a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1320.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1321.png b/TMessagesProj/src/emojis/apple/emoji/0_1321.png deleted file mode 100644 index 6aa8939a70..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1321.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1322.png b/TMessagesProj/src/emojis/apple/emoji/0_1322.png deleted file mode 100644 index 2b2e062425..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1322.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1323.png b/TMessagesProj/src/emojis/apple/emoji/0_1323.png deleted file mode 100644 index a70864ff4c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1323.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1324.png b/TMessagesProj/src/emojis/apple/emoji/0_1324.png deleted file mode 100644 index 2e2d60a226..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1324.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1325.png b/TMessagesProj/src/emojis/apple/emoji/0_1325.png deleted file mode 100644 index 9c828afc84..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1325.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1326.png b/TMessagesProj/src/emojis/apple/emoji/0_1326.png deleted file mode 100644 index 38ebb52e63..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1326.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1327.png b/TMessagesProj/src/emojis/apple/emoji/0_1327.png deleted file mode 100644 index 1d27161c90..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1327.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1328.png b/TMessagesProj/src/emojis/apple/emoji/0_1328.png deleted file mode 100644 index a96c6fed40..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1328.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1329.png b/TMessagesProj/src/emojis/apple/emoji/0_1329.png deleted file mode 100644 index 5acc2599f0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1329.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_133.png b/TMessagesProj/src/emojis/apple/emoji/0_133.png deleted file mode 100644 index 0ff2ca1bf9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1330.png b/TMessagesProj/src/emojis/apple/emoji/0_1330.png deleted file mode 100644 index 20edf68c69..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1330.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1331.png b/TMessagesProj/src/emojis/apple/emoji/0_1331.png deleted file mode 100644 index 2abc20573b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1331.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1332.png b/TMessagesProj/src/emojis/apple/emoji/0_1332.png deleted file mode 100644 index debd9e76d6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1332.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1333.png b/TMessagesProj/src/emojis/apple/emoji/0_1333.png deleted file mode 100644 index e9c3fdde06..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1333.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1334.png b/TMessagesProj/src/emojis/apple/emoji/0_1334.png deleted file mode 100644 index 1627f9370a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1334.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1335.png b/TMessagesProj/src/emojis/apple/emoji/0_1335.png deleted file mode 100644 index ab304460f6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1335.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1336.png b/TMessagesProj/src/emojis/apple/emoji/0_1336.png deleted file mode 100644 index 4db6405caf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1336.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1337.png b/TMessagesProj/src/emojis/apple/emoji/0_1337.png deleted file mode 100644 index a510d6cddd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1337.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1338.png b/TMessagesProj/src/emojis/apple/emoji/0_1338.png deleted file mode 100644 index e2a07172a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1338.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1339.png b/TMessagesProj/src/emojis/apple/emoji/0_1339.png deleted file mode 100644 index a424b731f2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1339.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_134.png b/TMessagesProj/src/emojis/apple/emoji/0_134.png deleted file mode 100644 index 28bf1d9bff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1340.png b/TMessagesProj/src/emojis/apple/emoji/0_1340.png deleted file mode 100644 index 96e6f6772b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1340.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1341.png b/TMessagesProj/src/emojis/apple/emoji/0_1341.png deleted file mode 100644 index a0b0953a30..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1341.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1342.png b/TMessagesProj/src/emojis/apple/emoji/0_1342.png deleted file mode 100644 index f823b8742b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1342.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1343.png b/TMessagesProj/src/emojis/apple/emoji/0_1343.png deleted file mode 100644 index 61cc4d05a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1343.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1344.png b/TMessagesProj/src/emojis/apple/emoji/0_1344.png deleted file mode 100644 index 1453050706..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1344.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1345.png b/TMessagesProj/src/emojis/apple/emoji/0_1345.png deleted file mode 100644 index 9bc159370b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1345.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1346.png b/TMessagesProj/src/emojis/apple/emoji/0_1346.png deleted file mode 100644 index 40be6db3e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1346.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1347.png b/TMessagesProj/src/emojis/apple/emoji/0_1347.png deleted file mode 100644 index 9e8fe026ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1347.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1348.png b/TMessagesProj/src/emojis/apple/emoji/0_1348.png deleted file mode 100644 index 8323666f41..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1348.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1349.png b/TMessagesProj/src/emojis/apple/emoji/0_1349.png deleted file mode 100644 index 6205c94bf6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1349.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_135.png b/TMessagesProj/src/emojis/apple/emoji/0_135.png deleted file mode 100644 index 4e91fa38da..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1350.png b/TMessagesProj/src/emojis/apple/emoji/0_1350.png deleted file mode 100644 index a1cd8895c5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1350.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1351.png b/TMessagesProj/src/emojis/apple/emoji/0_1351.png deleted file mode 100644 index 51616967d0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1351.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1352.png b/TMessagesProj/src/emojis/apple/emoji/0_1352.png deleted file mode 100644 index 3d261526da..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1352.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1353.png b/TMessagesProj/src/emojis/apple/emoji/0_1353.png deleted file mode 100644 index d897843109..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1353.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1354.png b/TMessagesProj/src/emojis/apple/emoji/0_1354.png deleted file mode 100644 index b553178891..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1354.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1355.png b/TMessagesProj/src/emojis/apple/emoji/0_1355.png deleted file mode 100644 index 49fb18e518..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1355.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1356.png b/TMessagesProj/src/emojis/apple/emoji/0_1356.png deleted file mode 100644 index f3fb254939..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1356.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1357.png b/TMessagesProj/src/emojis/apple/emoji/0_1357.png deleted file mode 100644 index b1d9c023d0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1357.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1358.png b/TMessagesProj/src/emojis/apple/emoji/0_1358.png deleted file mode 100644 index f9306e5b8d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1358.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1359.png b/TMessagesProj/src/emojis/apple/emoji/0_1359.png deleted file mode 100644 index e3ef8617a4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1359.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_136.png b/TMessagesProj/src/emojis/apple/emoji/0_136.png deleted file mode 100644 index cd0ac8efab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1360.png b/TMessagesProj/src/emojis/apple/emoji/0_1360.png deleted file mode 100644 index 43b740777e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1360.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1361.png b/TMessagesProj/src/emojis/apple/emoji/0_1361.png deleted file mode 100644 index 3ea9039ce8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1361.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1362.png b/TMessagesProj/src/emojis/apple/emoji/0_1362.png deleted file mode 100644 index 05ece06650..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1362.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1363.png b/TMessagesProj/src/emojis/apple/emoji/0_1363.png deleted file mode 100644 index dc1c89ed9d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1363.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1364.png b/TMessagesProj/src/emojis/apple/emoji/0_1364.png deleted file mode 100644 index a0f0fb811c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1364.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1365.png b/TMessagesProj/src/emojis/apple/emoji/0_1365.png deleted file mode 100644 index 82dc7e8504..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1365.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1366.png b/TMessagesProj/src/emojis/apple/emoji/0_1366.png deleted file mode 100644 index 2466f3cede..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1366.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1367.png b/TMessagesProj/src/emojis/apple/emoji/0_1367.png deleted file mode 100644 index 1be28164b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1367.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1368.png b/TMessagesProj/src/emojis/apple/emoji/0_1368.png deleted file mode 100644 index 2d0d87bde5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1368.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1369.png b/TMessagesProj/src/emojis/apple/emoji/0_1369.png deleted file mode 100644 index c70e547f35..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1369.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_137.png b/TMessagesProj/src/emojis/apple/emoji/0_137.png deleted file mode 100644 index aa305aa558..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1370.png b/TMessagesProj/src/emojis/apple/emoji/0_1370.png deleted file mode 100644 index 07babfb842..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1370.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1371.png b/TMessagesProj/src/emojis/apple/emoji/0_1371.png deleted file mode 100644 index aa053cbe02..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1371.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1372.png b/TMessagesProj/src/emojis/apple/emoji/0_1372.png deleted file mode 100644 index df10f157bf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1372.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1373.png b/TMessagesProj/src/emojis/apple/emoji/0_1373.png deleted file mode 100644 index 3914c9cc2a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1373.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1374.png b/TMessagesProj/src/emojis/apple/emoji/0_1374.png deleted file mode 100644 index 190fb673f7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1374.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1375.png b/TMessagesProj/src/emojis/apple/emoji/0_1375.png deleted file mode 100644 index 00e6ce45d3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1375.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1376.png b/TMessagesProj/src/emojis/apple/emoji/0_1376.png deleted file mode 100644 index c823de457e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1376.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1377.png b/TMessagesProj/src/emojis/apple/emoji/0_1377.png deleted file mode 100644 index 01390f1ca8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1377.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1378.png b/TMessagesProj/src/emojis/apple/emoji/0_1378.png deleted file mode 100644 index 9af61a6991..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1378.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1379.png b/TMessagesProj/src/emojis/apple/emoji/0_1379.png deleted file mode 100644 index 0145ae7508..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1379.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_138.png b/TMessagesProj/src/emojis/apple/emoji/0_138.png deleted file mode 100644 index e1f70443ce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1380.png b/TMessagesProj/src/emojis/apple/emoji/0_1380.png deleted file mode 100644 index 6e92097e2e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1380.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1381.png b/TMessagesProj/src/emojis/apple/emoji/0_1381.png deleted file mode 100644 index a887aca171..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1381.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1382.png b/TMessagesProj/src/emojis/apple/emoji/0_1382.png deleted file mode 100644 index b8b9f6a8ac..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1382.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1383.png b/TMessagesProj/src/emojis/apple/emoji/0_1383.png deleted file mode 100644 index e395d60151..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1383.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1384.png b/TMessagesProj/src/emojis/apple/emoji/0_1384.png deleted file mode 100644 index dcbd30831c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1384.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1385.png b/TMessagesProj/src/emojis/apple/emoji/0_1385.png deleted file mode 100644 index 25fa9d925d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1385.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1386.png b/TMessagesProj/src/emojis/apple/emoji/0_1386.png deleted file mode 100644 index 75520e512b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1386.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1387.png b/TMessagesProj/src/emojis/apple/emoji/0_1387.png deleted file mode 100644 index 04f520827a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1387.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1388.png b/TMessagesProj/src/emojis/apple/emoji/0_1388.png deleted file mode 100644 index 68893a02d0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1388.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1389.png b/TMessagesProj/src/emojis/apple/emoji/0_1389.png deleted file mode 100644 index 9ad2ba6fec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1389.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_139.png b/TMessagesProj/src/emojis/apple/emoji/0_139.png deleted file mode 100644 index 221214081e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1390.png b/TMessagesProj/src/emojis/apple/emoji/0_1390.png deleted file mode 100644 index 94b8d1421e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1390.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1391.png b/TMessagesProj/src/emojis/apple/emoji/0_1391.png deleted file mode 100644 index d686fb7070..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1391.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1392.png b/TMessagesProj/src/emojis/apple/emoji/0_1392.png deleted file mode 100644 index a75b530238..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1392.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1393.png b/TMessagesProj/src/emojis/apple/emoji/0_1393.png deleted file mode 100644 index c5d390b852..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1393.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1394.png b/TMessagesProj/src/emojis/apple/emoji/0_1394.png deleted file mode 100644 index 191734e26b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1394.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1395.png b/TMessagesProj/src/emojis/apple/emoji/0_1395.png deleted file mode 100644 index 64d9bfaf71..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1395.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1396.png b/TMessagesProj/src/emojis/apple/emoji/0_1396.png deleted file mode 100644 index 38cf10ad1f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1396.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1397.png b/TMessagesProj/src/emojis/apple/emoji/0_1397.png deleted file mode 100644 index b388072679..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1397.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1398.png b/TMessagesProj/src/emojis/apple/emoji/0_1398.png deleted file mode 100644 index d5740d8150..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1398.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1399.png b/TMessagesProj/src/emojis/apple/emoji/0_1399.png deleted file mode 100644 index 321006f6d4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1399.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_14.png b/TMessagesProj/src/emojis/apple/emoji/0_14.png deleted file mode 100644 index 5ac11d67fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_140.png b/TMessagesProj/src/emojis/apple/emoji/0_140.png deleted file mode 100644 index aa98b0160d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1400.png b/TMessagesProj/src/emojis/apple/emoji/0_1400.png deleted file mode 100644 index b46671a9c3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1400.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1401.png b/TMessagesProj/src/emojis/apple/emoji/0_1401.png deleted file mode 100644 index 707d3a6fd8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1401.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1402.png b/TMessagesProj/src/emojis/apple/emoji/0_1402.png deleted file mode 100644 index aa0c767f79..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1402.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1403.png b/TMessagesProj/src/emojis/apple/emoji/0_1403.png deleted file mode 100644 index 8a7b6d3729..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1403.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1404.png b/TMessagesProj/src/emojis/apple/emoji/0_1404.png deleted file mode 100644 index d282d2598a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1404.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1405.png b/TMessagesProj/src/emojis/apple/emoji/0_1405.png deleted file mode 100644 index 134a494352..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1405.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1406.png b/TMessagesProj/src/emojis/apple/emoji/0_1406.png deleted file mode 100644 index b604735b98..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1406.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1407.png b/TMessagesProj/src/emojis/apple/emoji/0_1407.png deleted file mode 100644 index f4baf974d5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1407.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1408.png b/TMessagesProj/src/emojis/apple/emoji/0_1408.png deleted file mode 100644 index b11d0cedda..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1408.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1409.png b/TMessagesProj/src/emojis/apple/emoji/0_1409.png deleted file mode 100644 index c41f3d7864..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1409.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_141.png b/TMessagesProj/src/emojis/apple/emoji/0_141.png deleted file mode 100644 index c7e21e39a1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1410.png b/TMessagesProj/src/emojis/apple/emoji/0_1410.png deleted file mode 100644 index 243a29fb32..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1410.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1411.png b/TMessagesProj/src/emojis/apple/emoji/0_1411.png deleted file mode 100644 index f40f38bb18..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1411.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1412.png b/TMessagesProj/src/emojis/apple/emoji/0_1412.png deleted file mode 100644 index 28c11f117e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1412.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1413.png b/TMessagesProj/src/emojis/apple/emoji/0_1413.png deleted file mode 100644 index 103ffc1c1e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1413.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1414.png b/TMessagesProj/src/emojis/apple/emoji/0_1414.png deleted file mode 100644 index 1105b3d601..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1414.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1415.png b/TMessagesProj/src/emojis/apple/emoji/0_1415.png deleted file mode 100644 index bdb6fb214e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1415.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1416.png b/TMessagesProj/src/emojis/apple/emoji/0_1416.png deleted file mode 100644 index 546e1b3e17..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1416.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1417.png b/TMessagesProj/src/emojis/apple/emoji/0_1417.png deleted file mode 100644 index b67d521978..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1417.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1418.png b/TMessagesProj/src/emojis/apple/emoji/0_1418.png deleted file mode 100644 index 1470844344..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1418.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1419.png b/TMessagesProj/src/emojis/apple/emoji/0_1419.png deleted file mode 100644 index 03d21766d9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1419.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_142.png b/TMessagesProj/src/emojis/apple/emoji/0_142.png deleted file mode 100644 index 88a6d42901..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1420.png b/TMessagesProj/src/emojis/apple/emoji/0_1420.png deleted file mode 100644 index a73668d5ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1420.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1421.png b/TMessagesProj/src/emojis/apple/emoji/0_1421.png deleted file mode 100644 index 51182909df..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1421.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1422.png b/TMessagesProj/src/emojis/apple/emoji/0_1422.png deleted file mode 100644 index 8b6aeeec2f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1422.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1423.png b/TMessagesProj/src/emojis/apple/emoji/0_1423.png deleted file mode 100644 index ad637b3f9f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1423.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1424.png b/TMessagesProj/src/emojis/apple/emoji/0_1424.png deleted file mode 100644 index d3dd9b5acd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1424.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1425.png b/TMessagesProj/src/emojis/apple/emoji/0_1425.png deleted file mode 100644 index 28470f00f5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1425.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1426.png b/TMessagesProj/src/emojis/apple/emoji/0_1426.png deleted file mode 100644 index 720cb4ef74..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1426.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1427.png b/TMessagesProj/src/emojis/apple/emoji/0_1427.png deleted file mode 100644 index b59f59820c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1427.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1428.png b/TMessagesProj/src/emojis/apple/emoji/0_1428.png deleted file mode 100644 index 3feb11a053..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1428.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1429.png b/TMessagesProj/src/emojis/apple/emoji/0_1429.png deleted file mode 100644 index c615aa216e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1429.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_143.png b/TMessagesProj/src/emojis/apple/emoji/0_143.png deleted file mode 100644 index f7a44012cf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1430.png b/TMessagesProj/src/emojis/apple/emoji/0_1430.png deleted file mode 100644 index ebf93bf4d7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1430.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1431.png b/TMessagesProj/src/emojis/apple/emoji/0_1431.png deleted file mode 100644 index 7ddcf3bb62..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1431.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1432.png b/TMessagesProj/src/emojis/apple/emoji/0_1432.png deleted file mode 100644 index 956d77d7fe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1432.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1433.png b/TMessagesProj/src/emojis/apple/emoji/0_1433.png deleted file mode 100644 index 6ffea9132b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1433.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1434.png b/TMessagesProj/src/emojis/apple/emoji/0_1434.png deleted file mode 100644 index 3b9e1a7d19..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1434.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1435.png b/TMessagesProj/src/emojis/apple/emoji/0_1435.png deleted file mode 100644 index df2bd519fc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1435.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1436.png b/TMessagesProj/src/emojis/apple/emoji/0_1436.png deleted file mode 100644 index c51cfd4fd6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1436.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1437.png b/TMessagesProj/src/emojis/apple/emoji/0_1437.png deleted file mode 100644 index 8a93c6d639..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1437.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1438.png b/TMessagesProj/src/emojis/apple/emoji/0_1438.png deleted file mode 100644 index fa1f71967e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1438.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1439.png b/TMessagesProj/src/emojis/apple/emoji/0_1439.png deleted file mode 100644 index f356c9d9b4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1439.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_144.png b/TMessagesProj/src/emojis/apple/emoji/0_144.png deleted file mode 100644 index f663b625e4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1440.png b/TMessagesProj/src/emojis/apple/emoji/0_1440.png deleted file mode 100644 index 8476988e61..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1440.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1441.png b/TMessagesProj/src/emojis/apple/emoji/0_1441.png deleted file mode 100644 index 564ef44201..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1441.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1442.png b/TMessagesProj/src/emojis/apple/emoji/0_1442.png deleted file mode 100644 index c4e9de2cef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1442.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1443.png b/TMessagesProj/src/emojis/apple/emoji/0_1443.png deleted file mode 100644 index 07ed203cbc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1443.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1444.png b/TMessagesProj/src/emojis/apple/emoji/0_1444.png deleted file mode 100644 index 4ceaa480e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1444.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1445.png b/TMessagesProj/src/emojis/apple/emoji/0_1445.png deleted file mode 100644 index 3aeebb01fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1445.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1446.png b/TMessagesProj/src/emojis/apple/emoji/0_1446.png deleted file mode 100644 index fb8783d722..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1446.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1447.png b/TMessagesProj/src/emojis/apple/emoji/0_1447.png deleted file mode 100644 index 367b7724b0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1447.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1448.png b/TMessagesProj/src/emojis/apple/emoji/0_1448.png deleted file mode 100644 index ff8abd2590..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1448.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1449.png b/TMessagesProj/src/emojis/apple/emoji/0_1449.png deleted file mode 100644 index c3a103b180..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1449.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_145.png b/TMessagesProj/src/emojis/apple/emoji/0_145.png deleted file mode 100644 index 007545b38f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1450.png b/TMessagesProj/src/emojis/apple/emoji/0_1450.png deleted file mode 100644 index 70ca81d894..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1450.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1451.png b/TMessagesProj/src/emojis/apple/emoji/0_1451.png deleted file mode 100644 index 33fede404d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1451.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1452.png b/TMessagesProj/src/emojis/apple/emoji/0_1452.png deleted file mode 100644 index f4cf3dcdc7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1452.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1453.png b/TMessagesProj/src/emojis/apple/emoji/0_1453.png deleted file mode 100644 index 73b7d61fd7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1453.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1454.png b/TMessagesProj/src/emojis/apple/emoji/0_1454.png deleted file mode 100644 index a5697a8092..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1454.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1455.png b/TMessagesProj/src/emojis/apple/emoji/0_1455.png deleted file mode 100644 index eedc97859d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1455.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1456.png b/TMessagesProj/src/emojis/apple/emoji/0_1456.png deleted file mode 100644 index 3185e7382c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1456.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1457.png b/TMessagesProj/src/emojis/apple/emoji/0_1457.png deleted file mode 100644 index f0509e480a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1457.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1458.png b/TMessagesProj/src/emojis/apple/emoji/0_1458.png deleted file mode 100644 index 765652b42f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1458.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1459.png b/TMessagesProj/src/emojis/apple/emoji/0_1459.png deleted file mode 100644 index 11f9b4669e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1459.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_146.png b/TMessagesProj/src/emojis/apple/emoji/0_146.png deleted file mode 100644 index 553847320e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1460.png b/TMessagesProj/src/emojis/apple/emoji/0_1460.png deleted file mode 100644 index 587e309513..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1460.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1461.png b/TMessagesProj/src/emojis/apple/emoji/0_1461.png deleted file mode 100644 index 16925cee0a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1461.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1462.png b/TMessagesProj/src/emojis/apple/emoji/0_1462.png deleted file mode 100644 index e6cbd7f208..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1462.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1463.png b/TMessagesProj/src/emojis/apple/emoji/0_1463.png deleted file mode 100644 index 2f3bb179bc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1463.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1464.png b/TMessagesProj/src/emojis/apple/emoji/0_1464.png deleted file mode 100644 index 71f1d27f79..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1464.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1465.png b/TMessagesProj/src/emojis/apple/emoji/0_1465.png deleted file mode 100644 index 3a80bf0bc5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1465.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1466.png b/TMessagesProj/src/emojis/apple/emoji/0_1466.png deleted file mode 100644 index 722027e0e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1466.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1467.png b/TMessagesProj/src/emojis/apple/emoji/0_1467.png deleted file mode 100644 index 58958e6f2a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1467.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1468.png b/TMessagesProj/src/emojis/apple/emoji/0_1468.png deleted file mode 100644 index 523915516a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1468.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1469.png b/TMessagesProj/src/emojis/apple/emoji/0_1469.png deleted file mode 100644 index 3415914735..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1469.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_147.png b/TMessagesProj/src/emojis/apple/emoji/0_147.png deleted file mode 100644 index f32816096f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1470.png b/TMessagesProj/src/emojis/apple/emoji/0_1470.png deleted file mode 100644 index 2e3f4da69b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1470.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1471.png b/TMessagesProj/src/emojis/apple/emoji/0_1471.png deleted file mode 100644 index 520df20598..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1471.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1472.png b/TMessagesProj/src/emojis/apple/emoji/0_1472.png deleted file mode 100644 index fd2bf8a18b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1472.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1473.png b/TMessagesProj/src/emojis/apple/emoji/0_1473.png deleted file mode 100644 index 189fc488a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1473.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1474.png b/TMessagesProj/src/emojis/apple/emoji/0_1474.png deleted file mode 100644 index d7ac548847..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1474.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1475.png b/TMessagesProj/src/emojis/apple/emoji/0_1475.png deleted file mode 100644 index 37aad71d59..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1475.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1476.png b/TMessagesProj/src/emojis/apple/emoji/0_1476.png deleted file mode 100644 index 1736a7b420..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1476.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1477.png b/TMessagesProj/src/emojis/apple/emoji/0_1477.png deleted file mode 100644 index 53eeca1a0c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1477.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1478.png b/TMessagesProj/src/emojis/apple/emoji/0_1478.png deleted file mode 100644 index 7a74fb0385..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1478.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1479.png b/TMessagesProj/src/emojis/apple/emoji/0_1479.png deleted file mode 100644 index cb467e5787..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1479.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_148.png b/TMessagesProj/src/emojis/apple/emoji/0_148.png deleted file mode 100644 index c89ac165bf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1480.png b/TMessagesProj/src/emojis/apple/emoji/0_1480.png deleted file mode 100644 index 416628bf7f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1480.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1481.png b/TMessagesProj/src/emojis/apple/emoji/0_1481.png deleted file mode 100644 index 6a12f6fb24..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1481.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1482.png b/TMessagesProj/src/emojis/apple/emoji/0_1482.png deleted file mode 100644 index 881da3c43b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1482.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1483.png b/TMessagesProj/src/emojis/apple/emoji/0_1483.png deleted file mode 100644 index 58241395c3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1483.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1484.png b/TMessagesProj/src/emojis/apple/emoji/0_1484.png deleted file mode 100644 index 2ad7d7620b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1484.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1485.png b/TMessagesProj/src/emojis/apple/emoji/0_1485.png deleted file mode 100644 index 81bddfc1c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1485.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1486.png b/TMessagesProj/src/emojis/apple/emoji/0_1486.png deleted file mode 100644 index 63ba8bd837..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1486.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1487.png b/TMessagesProj/src/emojis/apple/emoji/0_1487.png deleted file mode 100644 index aa7618e715..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1487.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1488.png b/TMessagesProj/src/emojis/apple/emoji/0_1488.png deleted file mode 100644 index 6db861fb88..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1488.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1489.png b/TMessagesProj/src/emojis/apple/emoji/0_1489.png deleted file mode 100644 index d00d24817a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1489.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_149.png b/TMessagesProj/src/emojis/apple/emoji/0_149.png deleted file mode 100644 index 83e58865a3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1490.png b/TMessagesProj/src/emojis/apple/emoji/0_1490.png deleted file mode 100644 index bb1e9eebbb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1490.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1491.png b/TMessagesProj/src/emojis/apple/emoji/0_1491.png deleted file mode 100644 index 644ce650e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1491.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1492.png b/TMessagesProj/src/emojis/apple/emoji/0_1492.png deleted file mode 100644 index c04c9bb6cb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1492.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1493.png b/TMessagesProj/src/emojis/apple/emoji/0_1493.png deleted file mode 100644 index 6a0bd1a7d0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1493.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1494.png b/TMessagesProj/src/emojis/apple/emoji/0_1494.png deleted file mode 100644 index 9d31e09f26..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1494.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1495.png b/TMessagesProj/src/emojis/apple/emoji/0_1495.png deleted file mode 100644 index 2a14d5099a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1495.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1496.png b/TMessagesProj/src/emojis/apple/emoji/0_1496.png deleted file mode 100644 index 7f958a99fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1496.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1497.png b/TMessagesProj/src/emojis/apple/emoji/0_1497.png deleted file mode 100644 index 10b81bec28..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1497.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1498.png b/TMessagesProj/src/emojis/apple/emoji/0_1498.png deleted file mode 100644 index aeddf9bf47..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1498.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1499.png b/TMessagesProj/src/emojis/apple/emoji/0_1499.png deleted file mode 100644 index 432ad394be..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1499.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_15.png b/TMessagesProj/src/emojis/apple/emoji/0_15.png deleted file mode 100644 index e58ec92f9c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_150.png b/TMessagesProj/src/emojis/apple/emoji/0_150.png deleted file mode 100644 index b8818f8b38..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1500.png b/TMessagesProj/src/emojis/apple/emoji/0_1500.png deleted file mode 100644 index 665b4541fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1500.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1501.png b/TMessagesProj/src/emojis/apple/emoji/0_1501.png deleted file mode 100644 index 6641f9cae1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1501.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1502.png b/TMessagesProj/src/emojis/apple/emoji/0_1502.png deleted file mode 100644 index 229f3a88f5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1502.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1503.png b/TMessagesProj/src/emojis/apple/emoji/0_1503.png deleted file mode 100644 index dcd6189556..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1503.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1504.png b/TMessagesProj/src/emojis/apple/emoji/0_1504.png deleted file mode 100644 index 4997a7f88c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1504.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1505.png b/TMessagesProj/src/emojis/apple/emoji/0_1505.png deleted file mode 100644 index 58ac155ec2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1505.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1506.png b/TMessagesProj/src/emojis/apple/emoji/0_1506.png deleted file mode 100644 index 5ab2bab435..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1506.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1507.png b/TMessagesProj/src/emojis/apple/emoji/0_1507.png deleted file mode 100644 index 5cfd7faa96..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1507.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1508.png b/TMessagesProj/src/emojis/apple/emoji/0_1508.png deleted file mode 100644 index cbd391d27a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1508.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1509.png b/TMessagesProj/src/emojis/apple/emoji/0_1509.png deleted file mode 100644 index e0687288a7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1509.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_151.png b/TMessagesProj/src/emojis/apple/emoji/0_151.png deleted file mode 100644 index 1b9231ad66..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1510.png b/TMessagesProj/src/emojis/apple/emoji/0_1510.png deleted file mode 100644 index 3a9d460709..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1510.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1511.png b/TMessagesProj/src/emojis/apple/emoji/0_1511.png deleted file mode 100644 index 07b90efec3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1511.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1512.png b/TMessagesProj/src/emojis/apple/emoji/0_1512.png deleted file mode 100644 index 33ad6c1bb6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1512.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1513.png b/TMessagesProj/src/emojis/apple/emoji/0_1513.png deleted file mode 100644 index 4d6940a973..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1513.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1514.png b/TMessagesProj/src/emojis/apple/emoji/0_1514.png deleted file mode 100644 index 3db82e9f03..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1514.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1515.png b/TMessagesProj/src/emojis/apple/emoji/0_1515.png deleted file mode 100644 index 530e874fce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1515.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1516.png b/TMessagesProj/src/emojis/apple/emoji/0_1516.png deleted file mode 100644 index 5f9457bcde..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1516.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1517.png b/TMessagesProj/src/emojis/apple/emoji/0_1517.png deleted file mode 100644 index 3d1ddf5063..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1517.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1518.png b/TMessagesProj/src/emojis/apple/emoji/0_1518.png deleted file mode 100644 index 4c3f81631d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1518.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1519.png b/TMessagesProj/src/emojis/apple/emoji/0_1519.png deleted file mode 100644 index 2ea9d777ba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1519.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_152.png b/TMessagesProj/src/emojis/apple/emoji/0_152.png deleted file mode 100644 index c0073aec1b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1520.png b/TMessagesProj/src/emojis/apple/emoji/0_1520.png deleted file mode 100644 index df18727d65..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1520.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1521.png b/TMessagesProj/src/emojis/apple/emoji/0_1521.png deleted file mode 100644 index e3b98dfa7a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1521.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1522.png b/TMessagesProj/src/emojis/apple/emoji/0_1522.png deleted file mode 100644 index 465ef319d7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1522.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1523.png b/TMessagesProj/src/emojis/apple/emoji/0_1523.png deleted file mode 100644 index 4d6c09acf3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1523.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1524.png b/TMessagesProj/src/emojis/apple/emoji/0_1524.png deleted file mode 100644 index 6168965bf3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1524.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1525.png b/TMessagesProj/src/emojis/apple/emoji/0_1525.png deleted file mode 100644 index a4f955adf0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1525.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1526.png b/TMessagesProj/src/emojis/apple/emoji/0_1526.png deleted file mode 100644 index 103f6d4191..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1526.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1527.png b/TMessagesProj/src/emojis/apple/emoji/0_1527.png deleted file mode 100644 index 624bc997b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1527.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1528.png b/TMessagesProj/src/emojis/apple/emoji/0_1528.png deleted file mode 100644 index 8e961255e4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1528.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1529.png b/TMessagesProj/src/emojis/apple/emoji/0_1529.png deleted file mode 100644 index cbe9d48001..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1529.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_153.png b/TMessagesProj/src/emojis/apple/emoji/0_153.png deleted file mode 100644 index 76d3daf15c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1530.png b/TMessagesProj/src/emojis/apple/emoji/0_1530.png deleted file mode 100644 index 83d3b62197..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1530.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1531.png b/TMessagesProj/src/emojis/apple/emoji/0_1531.png deleted file mode 100644 index 4fc96cbfec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1531.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1532.png b/TMessagesProj/src/emojis/apple/emoji/0_1532.png deleted file mode 100644 index 461b30e624..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1532.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1533.png b/TMessagesProj/src/emojis/apple/emoji/0_1533.png deleted file mode 100644 index 8342fa5881..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1533.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1534.png b/TMessagesProj/src/emojis/apple/emoji/0_1534.png deleted file mode 100644 index 181abcde72..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1534.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1535.png b/TMessagesProj/src/emojis/apple/emoji/0_1535.png deleted file mode 100644 index b75363f2ca..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1535.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1536.png b/TMessagesProj/src/emojis/apple/emoji/0_1536.png deleted file mode 100644 index 4c954b4ec3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1536.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1537.png b/TMessagesProj/src/emojis/apple/emoji/0_1537.png deleted file mode 100644 index 1ce2032ff6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1537.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1538.png b/TMessagesProj/src/emojis/apple/emoji/0_1538.png deleted file mode 100644 index 61aa3df0ff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1538.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1539.png b/TMessagesProj/src/emojis/apple/emoji/0_1539.png deleted file mode 100644 index 0de8109b01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1539.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_154.png b/TMessagesProj/src/emojis/apple/emoji/0_154.png deleted file mode 100644 index 2add17a922..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1540.png b/TMessagesProj/src/emojis/apple/emoji/0_1540.png deleted file mode 100644 index c55831058b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1540.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1541.png b/TMessagesProj/src/emojis/apple/emoji/0_1541.png deleted file mode 100644 index 83deed7653..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1541.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1542.png b/TMessagesProj/src/emojis/apple/emoji/0_1542.png deleted file mode 100644 index 6a60c8cff6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1542.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1543.png b/TMessagesProj/src/emojis/apple/emoji/0_1543.png deleted file mode 100644 index d85f2a78e7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1543.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1544.png b/TMessagesProj/src/emojis/apple/emoji/0_1544.png deleted file mode 100644 index 3a7dd4f04b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1544.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1545.png b/TMessagesProj/src/emojis/apple/emoji/0_1545.png deleted file mode 100644 index 52070f1e42..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1545.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1546.png b/TMessagesProj/src/emojis/apple/emoji/0_1546.png deleted file mode 100644 index 1e09dbf1a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1546.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1547.png b/TMessagesProj/src/emojis/apple/emoji/0_1547.png deleted file mode 100644 index bffa1596b4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1547.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1548.png b/TMessagesProj/src/emojis/apple/emoji/0_1548.png deleted file mode 100644 index cea9ef16fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1548.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1549.png b/TMessagesProj/src/emojis/apple/emoji/0_1549.png deleted file mode 100644 index 606611bf98..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1549.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_155.png b/TMessagesProj/src/emojis/apple/emoji/0_155.png deleted file mode 100644 index 4f10344562..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1550.png b/TMessagesProj/src/emojis/apple/emoji/0_1550.png deleted file mode 100644 index 8aa4555a5c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1550.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1551.png b/TMessagesProj/src/emojis/apple/emoji/0_1551.png deleted file mode 100644 index ca2883347c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1551.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1552.png b/TMessagesProj/src/emojis/apple/emoji/0_1552.png deleted file mode 100644 index 805ba35d2e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1552.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1553.png b/TMessagesProj/src/emojis/apple/emoji/0_1553.png deleted file mode 100644 index 2c8defb452..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1553.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1554.png b/TMessagesProj/src/emojis/apple/emoji/0_1554.png deleted file mode 100644 index 43d67c172c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1554.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1555.png b/TMessagesProj/src/emojis/apple/emoji/0_1555.png deleted file mode 100644 index cb02b0681b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1555.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1556.png b/TMessagesProj/src/emojis/apple/emoji/0_1556.png deleted file mode 100644 index 4be52e7542..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1556.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1557.png b/TMessagesProj/src/emojis/apple/emoji/0_1557.png deleted file mode 100644 index db73b42067..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1557.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1558.png b/TMessagesProj/src/emojis/apple/emoji/0_1558.png deleted file mode 100644 index 2d17783dba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1558.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1559.png b/TMessagesProj/src/emojis/apple/emoji/0_1559.png deleted file mode 100644 index 1986f9c74b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1559.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_156.png b/TMessagesProj/src/emojis/apple/emoji/0_156.png deleted file mode 100644 index 6670d897ae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1560.png b/TMessagesProj/src/emojis/apple/emoji/0_1560.png deleted file mode 100644 index c1da317f0d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1560.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1561.png b/TMessagesProj/src/emojis/apple/emoji/0_1561.png deleted file mode 100644 index 5feaba92bb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1561.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1562.png b/TMessagesProj/src/emojis/apple/emoji/0_1562.png deleted file mode 100644 index fd3f3c8aa2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1562.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1563.png b/TMessagesProj/src/emojis/apple/emoji/0_1563.png deleted file mode 100644 index 80679df624..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1563.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1564.png b/TMessagesProj/src/emojis/apple/emoji/0_1564.png deleted file mode 100644 index 8e0866ff11..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1564.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1565.png b/TMessagesProj/src/emojis/apple/emoji/0_1565.png deleted file mode 100644 index 5085ba3974..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1565.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1566.png b/TMessagesProj/src/emojis/apple/emoji/0_1566.png deleted file mode 100644 index 99a5538591..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1566.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1567.png b/TMessagesProj/src/emojis/apple/emoji/0_1567.png deleted file mode 100644 index fb6a3623d3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1567.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1568.png b/TMessagesProj/src/emojis/apple/emoji/0_1568.png deleted file mode 100644 index 83201171a2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1568.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1569.png b/TMessagesProj/src/emojis/apple/emoji/0_1569.png deleted file mode 100644 index d18f5bfa13..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1569.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_157.png b/TMessagesProj/src/emojis/apple/emoji/0_157.png deleted file mode 100644 index 96149b097c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1570.png b/TMessagesProj/src/emojis/apple/emoji/0_1570.png deleted file mode 100644 index e78a045e18..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1570.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1571.png b/TMessagesProj/src/emojis/apple/emoji/0_1571.png deleted file mode 100644 index 0018629c7f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1571.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1572.png b/TMessagesProj/src/emojis/apple/emoji/0_1572.png deleted file mode 100644 index 8a19ec682b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1572.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1573.png b/TMessagesProj/src/emojis/apple/emoji/0_1573.png deleted file mode 100644 index 737f02ddc4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1573.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1574.png b/TMessagesProj/src/emojis/apple/emoji/0_1574.png deleted file mode 100644 index ac83e23474..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1574.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1575.png b/TMessagesProj/src/emojis/apple/emoji/0_1575.png deleted file mode 100644 index 91dd33c5f6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1575.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1576.png b/TMessagesProj/src/emojis/apple/emoji/0_1576.png deleted file mode 100644 index 1854f6b95c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1576.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1577.png b/TMessagesProj/src/emojis/apple/emoji/0_1577.png deleted file mode 100644 index 6e03c500dd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1577.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1578.png b/TMessagesProj/src/emojis/apple/emoji/0_1578.png deleted file mode 100644 index 091eb70d3e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1578.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1579.png b/TMessagesProj/src/emojis/apple/emoji/0_1579.png deleted file mode 100644 index 342f95ae76..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1579.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_158.png b/TMessagesProj/src/emojis/apple/emoji/0_158.png deleted file mode 100644 index a358f619c1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1580.png b/TMessagesProj/src/emojis/apple/emoji/0_1580.png deleted file mode 100644 index 407a808481..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1580.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1581.png b/TMessagesProj/src/emojis/apple/emoji/0_1581.png deleted file mode 100644 index 126374db1d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1581.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1582.png b/TMessagesProj/src/emojis/apple/emoji/0_1582.png deleted file mode 100644 index 223f5c64fa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1582.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1583.png b/TMessagesProj/src/emojis/apple/emoji/0_1583.png deleted file mode 100644 index 722a2e3ec3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1583.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1584.png b/TMessagesProj/src/emojis/apple/emoji/0_1584.png deleted file mode 100644 index 35083d0827..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1584.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1585.png b/TMessagesProj/src/emojis/apple/emoji/0_1585.png deleted file mode 100644 index eabe8a6f15..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1585.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1586.png b/TMessagesProj/src/emojis/apple/emoji/0_1586.png deleted file mode 100644 index e0da28fb7b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1586.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1587.png b/TMessagesProj/src/emojis/apple/emoji/0_1587.png deleted file mode 100644 index 56e189f0f5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1587.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1588.png b/TMessagesProj/src/emojis/apple/emoji/0_1588.png deleted file mode 100644 index 5cadab1a59..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1588.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1589.png b/TMessagesProj/src/emojis/apple/emoji/0_1589.png deleted file mode 100644 index f276af0362..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1589.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_159.png b/TMessagesProj/src/emojis/apple/emoji/0_159.png deleted file mode 100644 index 1193ad79c1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1590.png b/TMessagesProj/src/emojis/apple/emoji/0_1590.png deleted file mode 100644 index 43033615d4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1590.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1591.png b/TMessagesProj/src/emojis/apple/emoji/0_1591.png deleted file mode 100644 index 660c74eb19..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1591.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1592.png b/TMessagesProj/src/emojis/apple/emoji/0_1592.png deleted file mode 100644 index 60f32a123d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1592.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1593.png b/TMessagesProj/src/emojis/apple/emoji/0_1593.png deleted file mode 100644 index 544dd9d566..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1593.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1594.png b/TMessagesProj/src/emojis/apple/emoji/0_1594.png deleted file mode 100644 index 84eeda9dbf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1594.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1595.png b/TMessagesProj/src/emojis/apple/emoji/0_1595.png deleted file mode 100644 index f0f57b3767..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1595.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1596.png b/TMessagesProj/src/emojis/apple/emoji/0_1596.png deleted file mode 100644 index fe26c220b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1596.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1597.png b/TMessagesProj/src/emojis/apple/emoji/0_1597.png deleted file mode 100644 index 1ff38e1312..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1597.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1598.png b/TMessagesProj/src/emojis/apple/emoji/0_1598.png deleted file mode 100644 index 5102347fff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1598.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1599.png b/TMessagesProj/src/emojis/apple/emoji/0_1599.png deleted file mode 100644 index d97b138e79..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1599.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_16.png b/TMessagesProj/src/emojis/apple/emoji/0_16.png deleted file mode 100644 index bb115dc5f3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_160.png b/TMessagesProj/src/emojis/apple/emoji/0_160.png deleted file mode 100644 index 2721d7632a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1600.png b/TMessagesProj/src/emojis/apple/emoji/0_1600.png deleted file mode 100644 index 68cf1cab7c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1600.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1601.png b/TMessagesProj/src/emojis/apple/emoji/0_1601.png deleted file mode 100644 index 6fca268099..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1601.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1602.png b/TMessagesProj/src/emojis/apple/emoji/0_1602.png deleted file mode 100644 index 76f542e594..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1602.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1603.png b/TMessagesProj/src/emojis/apple/emoji/0_1603.png deleted file mode 100644 index 3ad59f3260..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1603.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1604.png b/TMessagesProj/src/emojis/apple/emoji/0_1604.png deleted file mode 100644 index 15898fc171..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1604.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1605.png b/TMessagesProj/src/emojis/apple/emoji/0_1605.png deleted file mode 100644 index 15588ce487..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1605.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1606.png b/TMessagesProj/src/emojis/apple/emoji/0_1606.png deleted file mode 100644 index b2a9cd3239..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1606.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1607.png b/TMessagesProj/src/emojis/apple/emoji/0_1607.png deleted file mode 100644 index 6ce988b15b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1607.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1608.png b/TMessagesProj/src/emojis/apple/emoji/0_1608.png deleted file mode 100644 index a6d637263a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1608.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1609.png b/TMessagesProj/src/emojis/apple/emoji/0_1609.png deleted file mode 100644 index d2fda5230f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1609.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_161.png b/TMessagesProj/src/emojis/apple/emoji/0_161.png deleted file mode 100644 index 96e2e961c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1610.png b/TMessagesProj/src/emojis/apple/emoji/0_1610.png deleted file mode 100644 index 179a3093b0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1610.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1611.png b/TMessagesProj/src/emojis/apple/emoji/0_1611.png deleted file mode 100644 index 177f52a839..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1611.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1612.png b/TMessagesProj/src/emojis/apple/emoji/0_1612.png deleted file mode 100644 index c473c1ea37..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1612.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1613.png b/TMessagesProj/src/emojis/apple/emoji/0_1613.png deleted file mode 100644 index af2e2ba53b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1613.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1614.png b/TMessagesProj/src/emojis/apple/emoji/0_1614.png deleted file mode 100644 index 3e91e24efb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1614.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1615.png b/TMessagesProj/src/emojis/apple/emoji/0_1615.png deleted file mode 100644 index 0254c49bd8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1615.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1616.png b/TMessagesProj/src/emojis/apple/emoji/0_1616.png deleted file mode 100644 index 114c27b655..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1616.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1617.png b/TMessagesProj/src/emojis/apple/emoji/0_1617.png deleted file mode 100644 index 50d5b10cc3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1617.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1618.png b/TMessagesProj/src/emojis/apple/emoji/0_1618.png deleted file mode 100644 index 6a87cb1312..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1618.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1619.png b/TMessagesProj/src/emojis/apple/emoji/0_1619.png deleted file mode 100644 index b0e64deb16..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1619.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_162.png b/TMessagesProj/src/emojis/apple/emoji/0_162.png deleted file mode 100644 index cb7ef678c0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1620.png b/TMessagesProj/src/emojis/apple/emoji/0_1620.png deleted file mode 100644 index 382e87f2b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1620.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1621.png b/TMessagesProj/src/emojis/apple/emoji/0_1621.png deleted file mode 100644 index ba80f9427c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1621.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1622.png b/TMessagesProj/src/emojis/apple/emoji/0_1622.png deleted file mode 100644 index 73a71ab7f7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1622.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1623.png b/TMessagesProj/src/emojis/apple/emoji/0_1623.png deleted file mode 100644 index b558dcf978..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1623.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1624.png b/TMessagesProj/src/emojis/apple/emoji/0_1624.png deleted file mode 100644 index 728a20d1cb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1624.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1625.png b/TMessagesProj/src/emojis/apple/emoji/0_1625.png deleted file mode 100644 index 173d444a06..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1625.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1626.png b/TMessagesProj/src/emojis/apple/emoji/0_1626.png deleted file mode 100644 index 6d55a4d343..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1626.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1627.png b/TMessagesProj/src/emojis/apple/emoji/0_1627.png deleted file mode 100644 index 4b2bd68292..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1627.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1628.png b/TMessagesProj/src/emojis/apple/emoji/0_1628.png deleted file mode 100644 index 76b929dfee..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1628.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1629.png b/TMessagesProj/src/emojis/apple/emoji/0_1629.png deleted file mode 100644 index 9170719df8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1629.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_163.png b/TMessagesProj/src/emojis/apple/emoji/0_163.png deleted file mode 100644 index 711ee3900d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1630.png b/TMessagesProj/src/emojis/apple/emoji/0_1630.png deleted file mode 100644 index d11268ee6c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1630.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1631.png b/TMessagesProj/src/emojis/apple/emoji/0_1631.png deleted file mode 100644 index 402626117c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1631.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1632.png b/TMessagesProj/src/emojis/apple/emoji/0_1632.png deleted file mode 100644 index 1e1c9dfa0e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1632.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1633.png b/TMessagesProj/src/emojis/apple/emoji/0_1633.png deleted file mode 100644 index aa51b0e6eb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1633.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1634.png b/TMessagesProj/src/emojis/apple/emoji/0_1634.png deleted file mode 100644 index d0069aafb3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1634.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1635.png b/TMessagesProj/src/emojis/apple/emoji/0_1635.png deleted file mode 100644 index 5af05883e8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1635.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1636.png b/TMessagesProj/src/emojis/apple/emoji/0_1636.png deleted file mode 100644 index be58167772..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1636.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1637.png b/TMessagesProj/src/emojis/apple/emoji/0_1637.png deleted file mode 100644 index fc9bd2d7bf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1637.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1638.png b/TMessagesProj/src/emojis/apple/emoji/0_1638.png deleted file mode 100644 index 803e5260a2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1638.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1639.png b/TMessagesProj/src/emojis/apple/emoji/0_1639.png deleted file mode 100644 index 599f243e93..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1639.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_164.png b/TMessagesProj/src/emojis/apple/emoji/0_164.png deleted file mode 100644 index 08fc03e438..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1640.png b/TMessagesProj/src/emojis/apple/emoji/0_1640.png deleted file mode 100644 index 16ac67364e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1640.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1641.png b/TMessagesProj/src/emojis/apple/emoji/0_1641.png deleted file mode 100644 index 4b4830cf1e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1641.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1642.png b/TMessagesProj/src/emojis/apple/emoji/0_1642.png deleted file mode 100644 index de4fcb08b9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1642.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1643.png b/TMessagesProj/src/emojis/apple/emoji/0_1643.png deleted file mode 100644 index e22d5b84c3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1643.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1644.png b/TMessagesProj/src/emojis/apple/emoji/0_1644.png deleted file mode 100644 index 7f61ef1e44..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1644.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1645.png b/TMessagesProj/src/emojis/apple/emoji/0_1645.png deleted file mode 100644 index 17ce64d4d4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1645.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1646.png b/TMessagesProj/src/emojis/apple/emoji/0_1646.png deleted file mode 100644 index 737ed5eca2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1646.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1647.png b/TMessagesProj/src/emojis/apple/emoji/0_1647.png deleted file mode 100644 index df47d4a6fc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1647.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1648.png b/TMessagesProj/src/emojis/apple/emoji/0_1648.png deleted file mode 100644 index 49493d26e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1648.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1649.png b/TMessagesProj/src/emojis/apple/emoji/0_1649.png deleted file mode 100644 index 597ab94d81..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1649.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_165.png b/TMessagesProj/src/emojis/apple/emoji/0_165.png deleted file mode 100644 index bf70f9687c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1650.png b/TMessagesProj/src/emojis/apple/emoji/0_1650.png deleted file mode 100644 index 3eda7d2db6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1650.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1651.png b/TMessagesProj/src/emojis/apple/emoji/0_1651.png deleted file mode 100644 index 70ad3cd570..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1651.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1652.png b/TMessagesProj/src/emojis/apple/emoji/0_1652.png deleted file mode 100644 index f297c2ba55..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1652.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1653.png b/TMessagesProj/src/emojis/apple/emoji/0_1653.png deleted file mode 100644 index 3e7af12245..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1653.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1654.png b/TMessagesProj/src/emojis/apple/emoji/0_1654.png deleted file mode 100644 index d5ea027b62..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1654.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1655.png b/TMessagesProj/src/emojis/apple/emoji/0_1655.png deleted file mode 100644 index c90d1ce2b7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1655.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1656.png b/TMessagesProj/src/emojis/apple/emoji/0_1656.png deleted file mode 100644 index f0e252b9a0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1656.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1657.png b/TMessagesProj/src/emojis/apple/emoji/0_1657.png deleted file mode 100644 index 3382ee2237..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1657.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1658.png b/TMessagesProj/src/emojis/apple/emoji/0_1658.png deleted file mode 100644 index 00ae42cb30..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1658.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1659.png b/TMessagesProj/src/emojis/apple/emoji/0_1659.png deleted file mode 100644 index fa78241e3c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1659.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_166.png b/TMessagesProj/src/emojis/apple/emoji/0_166.png deleted file mode 100644 index 06c17cc34c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1660.png b/TMessagesProj/src/emojis/apple/emoji/0_1660.png deleted file mode 100644 index b885e2f011..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1660.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1661.png b/TMessagesProj/src/emojis/apple/emoji/0_1661.png deleted file mode 100644 index a5b1d95f84..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1661.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1662.png b/TMessagesProj/src/emojis/apple/emoji/0_1662.png deleted file mode 100644 index bc6846cfcf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1662.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1663.png b/TMessagesProj/src/emojis/apple/emoji/0_1663.png deleted file mode 100644 index ffefaf9d40..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1663.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1664.png b/TMessagesProj/src/emojis/apple/emoji/0_1664.png deleted file mode 100644 index e3277bfcce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1664.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1665.png b/TMessagesProj/src/emojis/apple/emoji/0_1665.png deleted file mode 100644 index eb2c63aaf4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1665.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1666.png b/TMessagesProj/src/emojis/apple/emoji/0_1666.png deleted file mode 100644 index 47da60fb0a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1666.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1667.png b/TMessagesProj/src/emojis/apple/emoji/0_1667.png deleted file mode 100644 index 781fae0a32..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1667.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1668.png b/TMessagesProj/src/emojis/apple/emoji/0_1668.png deleted file mode 100644 index b0bc54a254..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1668.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1669.png b/TMessagesProj/src/emojis/apple/emoji/0_1669.png deleted file mode 100644 index bea82981b5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1669.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_167.png b/TMessagesProj/src/emojis/apple/emoji/0_167.png deleted file mode 100644 index 6b33759d57..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1670.png b/TMessagesProj/src/emojis/apple/emoji/0_1670.png deleted file mode 100644 index 682f58d2f6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1670.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1671.png b/TMessagesProj/src/emojis/apple/emoji/0_1671.png deleted file mode 100644 index 1351eb679e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1671.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1672.png b/TMessagesProj/src/emojis/apple/emoji/0_1672.png deleted file mode 100644 index e657132a5e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1672.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1673.png b/TMessagesProj/src/emojis/apple/emoji/0_1673.png deleted file mode 100644 index a4954dfadd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1673.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1674.png b/TMessagesProj/src/emojis/apple/emoji/0_1674.png deleted file mode 100644 index d76507f0bd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1674.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1675.png b/TMessagesProj/src/emojis/apple/emoji/0_1675.png deleted file mode 100644 index 721f49a996..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1675.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1676.png b/TMessagesProj/src/emojis/apple/emoji/0_1676.png deleted file mode 100644 index 70717f4874..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1676.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1677.png b/TMessagesProj/src/emojis/apple/emoji/0_1677.png deleted file mode 100644 index 9ea42a017a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1677.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1678.png b/TMessagesProj/src/emojis/apple/emoji/0_1678.png deleted file mode 100644 index 07f7dbfcb1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1678.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1679.png b/TMessagesProj/src/emojis/apple/emoji/0_1679.png deleted file mode 100644 index d6c549e97f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1679.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_168.png b/TMessagesProj/src/emojis/apple/emoji/0_168.png deleted file mode 100644 index 829d93d4e6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1680.png b/TMessagesProj/src/emojis/apple/emoji/0_1680.png deleted file mode 100644 index 491a1d8953..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1680.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1681.png b/TMessagesProj/src/emojis/apple/emoji/0_1681.png deleted file mode 100644 index 80357978ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1681.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1682.png b/TMessagesProj/src/emojis/apple/emoji/0_1682.png deleted file mode 100644 index 631f1f8a34..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1682.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1683.png b/TMessagesProj/src/emojis/apple/emoji/0_1683.png deleted file mode 100644 index 61153e94d9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1683.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1684.png b/TMessagesProj/src/emojis/apple/emoji/0_1684.png deleted file mode 100644 index 883e348ff7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1684.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1685.png b/TMessagesProj/src/emojis/apple/emoji/0_1685.png deleted file mode 100644 index 495eece85c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1685.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1686.png b/TMessagesProj/src/emojis/apple/emoji/0_1686.png deleted file mode 100644 index 7f2e2439fc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1686.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1687.png b/TMessagesProj/src/emojis/apple/emoji/0_1687.png deleted file mode 100644 index b29f3858cf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1687.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1688.png b/TMessagesProj/src/emojis/apple/emoji/0_1688.png deleted file mode 100644 index ceda121c4d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1688.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1689.png b/TMessagesProj/src/emojis/apple/emoji/0_1689.png deleted file mode 100644 index 602ae5b6bd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1689.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_169.png b/TMessagesProj/src/emojis/apple/emoji/0_169.png deleted file mode 100644 index ae19ad413f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1690.png b/TMessagesProj/src/emojis/apple/emoji/0_1690.png deleted file mode 100644 index dd2c8be177..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1690.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1691.png b/TMessagesProj/src/emojis/apple/emoji/0_1691.png deleted file mode 100644 index c0f7983b78..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1691.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1692.png b/TMessagesProj/src/emojis/apple/emoji/0_1692.png deleted file mode 100644 index 5dc916b124..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1692.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1693.png b/TMessagesProj/src/emojis/apple/emoji/0_1693.png deleted file mode 100644 index 973b273d23..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1693.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1694.png b/TMessagesProj/src/emojis/apple/emoji/0_1694.png deleted file mode 100644 index 1f6feaaa9c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1694.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1695.png b/TMessagesProj/src/emojis/apple/emoji/0_1695.png deleted file mode 100644 index 0a1e6f1f72..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1695.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1696.png b/TMessagesProj/src/emojis/apple/emoji/0_1696.png deleted file mode 100644 index 0395803f20..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1696.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1697.png b/TMessagesProj/src/emojis/apple/emoji/0_1697.png deleted file mode 100644 index 5803995ae6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1697.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1698.png b/TMessagesProj/src/emojis/apple/emoji/0_1698.png deleted file mode 100644 index 0abf0e5c99..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1698.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1699.png b/TMessagesProj/src/emojis/apple/emoji/0_1699.png deleted file mode 100644 index 3248ffb3c2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1699.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_17.png b/TMessagesProj/src/emojis/apple/emoji/0_17.png deleted file mode 100644 index ff79cece2a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_170.png b/TMessagesProj/src/emojis/apple/emoji/0_170.png deleted file mode 100644 index a113d52367..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1700.png b/TMessagesProj/src/emojis/apple/emoji/0_1700.png deleted file mode 100644 index 83e09cb96d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1700.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1701.png b/TMessagesProj/src/emojis/apple/emoji/0_1701.png deleted file mode 100644 index 548be52316..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1701.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1702.png b/TMessagesProj/src/emojis/apple/emoji/0_1702.png deleted file mode 100644 index a657b6fd1e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1702.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1703.png b/TMessagesProj/src/emojis/apple/emoji/0_1703.png deleted file mode 100644 index 4002c5bf2f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1703.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1704.png b/TMessagesProj/src/emojis/apple/emoji/0_1704.png deleted file mode 100644 index cae24c9469..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1704.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1705.png b/TMessagesProj/src/emojis/apple/emoji/0_1705.png deleted file mode 100644 index 812e25790d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1705.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1706.png b/TMessagesProj/src/emojis/apple/emoji/0_1706.png deleted file mode 100644 index 305f8012f1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1706.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1707.png b/TMessagesProj/src/emojis/apple/emoji/0_1707.png deleted file mode 100644 index 236bcedbf1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1707.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1708.png b/TMessagesProj/src/emojis/apple/emoji/0_1708.png deleted file mode 100644 index 419966b4b9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1708.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1709.png b/TMessagesProj/src/emojis/apple/emoji/0_1709.png deleted file mode 100644 index 42a0f6086d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1709.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_171.png b/TMessagesProj/src/emojis/apple/emoji/0_171.png deleted file mode 100644 index dcc1bcac58..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1710.png b/TMessagesProj/src/emojis/apple/emoji/0_1710.png deleted file mode 100644 index a8cd255b41..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1710.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1711.png b/TMessagesProj/src/emojis/apple/emoji/0_1711.png deleted file mode 100644 index 0c21ec7099..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1711.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1712.png b/TMessagesProj/src/emojis/apple/emoji/0_1712.png deleted file mode 100644 index 0dc7e56da7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1712.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1713.png b/TMessagesProj/src/emojis/apple/emoji/0_1713.png deleted file mode 100644 index 45fdd69e33..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1713.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1714.png b/TMessagesProj/src/emojis/apple/emoji/0_1714.png deleted file mode 100644 index ba73c8d6ce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1714.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1715.png b/TMessagesProj/src/emojis/apple/emoji/0_1715.png deleted file mode 100644 index 742f18bdf4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1715.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1716.png b/TMessagesProj/src/emojis/apple/emoji/0_1716.png deleted file mode 100644 index a5d38d4b68..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1716.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1717.png b/TMessagesProj/src/emojis/apple/emoji/0_1717.png deleted file mode 100644 index c690c61302..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1717.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1718.png b/TMessagesProj/src/emojis/apple/emoji/0_1718.png deleted file mode 100644 index 92f8deb599..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1718.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1719.png b/TMessagesProj/src/emojis/apple/emoji/0_1719.png deleted file mode 100644 index 801ea0815c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1719.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_172.png b/TMessagesProj/src/emojis/apple/emoji/0_172.png deleted file mode 100644 index ce3be27082..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1720.png b/TMessagesProj/src/emojis/apple/emoji/0_1720.png deleted file mode 100644 index 25340b03ff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1720.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1721.png b/TMessagesProj/src/emojis/apple/emoji/0_1721.png deleted file mode 100644 index b5dcc4e480..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1721.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1722.png b/TMessagesProj/src/emojis/apple/emoji/0_1722.png deleted file mode 100644 index ff2b62d0b3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1722.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1723.png b/TMessagesProj/src/emojis/apple/emoji/0_1723.png deleted file mode 100644 index a99f3348ef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1723.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1724.png b/TMessagesProj/src/emojis/apple/emoji/0_1724.png deleted file mode 100644 index b5ef905356..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1724.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1725.png b/TMessagesProj/src/emojis/apple/emoji/0_1725.png deleted file mode 100644 index 361c818925..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1725.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1726.png b/TMessagesProj/src/emojis/apple/emoji/0_1726.png deleted file mode 100644 index 5430e8ec71..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1726.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1727.png b/TMessagesProj/src/emojis/apple/emoji/0_1727.png deleted file mode 100644 index f6e4a40061..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1727.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1728.png b/TMessagesProj/src/emojis/apple/emoji/0_1728.png deleted file mode 100644 index cc78ec26c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1728.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1729.png b/TMessagesProj/src/emojis/apple/emoji/0_1729.png deleted file mode 100644 index 42e0594d0f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1729.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_173.png b/TMessagesProj/src/emojis/apple/emoji/0_173.png deleted file mode 100644 index 03dbde408c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1730.png b/TMessagesProj/src/emojis/apple/emoji/0_1730.png deleted file mode 100644 index 3bb83835f7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1730.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1731.png b/TMessagesProj/src/emojis/apple/emoji/0_1731.png deleted file mode 100644 index 4f73b9c34f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1731.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1732.png b/TMessagesProj/src/emojis/apple/emoji/0_1732.png deleted file mode 100644 index 11c957b1c3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1732.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1733.png b/TMessagesProj/src/emojis/apple/emoji/0_1733.png deleted file mode 100644 index bbf27d13ec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1733.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1734.png b/TMessagesProj/src/emojis/apple/emoji/0_1734.png deleted file mode 100644 index d35108116c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1734.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1735.png b/TMessagesProj/src/emojis/apple/emoji/0_1735.png deleted file mode 100644 index 8c4df540c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1735.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1736.png b/TMessagesProj/src/emojis/apple/emoji/0_1736.png deleted file mode 100644 index ba119aa609..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1736.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1737.png b/TMessagesProj/src/emojis/apple/emoji/0_1737.png deleted file mode 100644 index 07082dd063..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1737.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1738.png b/TMessagesProj/src/emojis/apple/emoji/0_1738.png deleted file mode 100644 index 366551f4ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1738.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1739.png b/TMessagesProj/src/emojis/apple/emoji/0_1739.png deleted file mode 100644 index 3bcf8e73cb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1739.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_174.png b/TMessagesProj/src/emojis/apple/emoji/0_174.png deleted file mode 100644 index 688a7bec54..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1740.png b/TMessagesProj/src/emojis/apple/emoji/0_1740.png deleted file mode 100644 index 201ed26e61..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1740.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1741.png b/TMessagesProj/src/emojis/apple/emoji/0_1741.png deleted file mode 100644 index edb6112782..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1741.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1742.png b/TMessagesProj/src/emojis/apple/emoji/0_1742.png deleted file mode 100644 index 11f48721ed..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1742.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1743.png b/TMessagesProj/src/emojis/apple/emoji/0_1743.png deleted file mode 100644 index 9c56d2ff07..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1743.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1744.png b/TMessagesProj/src/emojis/apple/emoji/0_1744.png deleted file mode 100644 index e0ff80928b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1744.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1745.png b/TMessagesProj/src/emojis/apple/emoji/0_1745.png deleted file mode 100644 index da0b08faf9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1745.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1746.png b/TMessagesProj/src/emojis/apple/emoji/0_1746.png deleted file mode 100644 index 5a88598411..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1746.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1747.png b/TMessagesProj/src/emojis/apple/emoji/0_1747.png deleted file mode 100644 index 3fe7f0ae37..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1747.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1748.png b/TMessagesProj/src/emojis/apple/emoji/0_1748.png deleted file mode 100644 index 8538076dac..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1748.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1749.png b/TMessagesProj/src/emojis/apple/emoji/0_1749.png deleted file mode 100644 index 8f88a85604..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1749.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_175.png b/TMessagesProj/src/emojis/apple/emoji/0_175.png deleted file mode 100644 index fc3255b9e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1750.png b/TMessagesProj/src/emojis/apple/emoji/0_1750.png deleted file mode 100644 index 48686b421b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1750.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1751.png b/TMessagesProj/src/emojis/apple/emoji/0_1751.png deleted file mode 100644 index fb970c2a79..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1751.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1752.png b/TMessagesProj/src/emojis/apple/emoji/0_1752.png deleted file mode 100644 index 1a0c869681..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1752.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1753.png b/TMessagesProj/src/emojis/apple/emoji/0_1753.png deleted file mode 100644 index 625d10cf1b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1753.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1754.png b/TMessagesProj/src/emojis/apple/emoji/0_1754.png deleted file mode 100644 index 9e87fc1627..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1754.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1755.png b/TMessagesProj/src/emojis/apple/emoji/0_1755.png deleted file mode 100644 index 7b2c474778..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1755.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1756.png b/TMessagesProj/src/emojis/apple/emoji/0_1756.png deleted file mode 100644 index 49694edf11..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1756.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1757.png b/TMessagesProj/src/emojis/apple/emoji/0_1757.png deleted file mode 100644 index e76d6be654..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1757.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1758.png b/TMessagesProj/src/emojis/apple/emoji/0_1758.png deleted file mode 100644 index 8db8bc2d64..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1758.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1759.png b/TMessagesProj/src/emojis/apple/emoji/0_1759.png deleted file mode 100644 index 784c5590f8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1759.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_176.png b/TMessagesProj/src/emojis/apple/emoji/0_176.png deleted file mode 100644 index 267db2b8a3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1760.png b/TMessagesProj/src/emojis/apple/emoji/0_1760.png deleted file mode 100644 index 85ba04736e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1760.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1761.png b/TMessagesProj/src/emojis/apple/emoji/0_1761.png deleted file mode 100644 index 2efa9c50a6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1761.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1762.png b/TMessagesProj/src/emojis/apple/emoji/0_1762.png deleted file mode 100644 index 8227ec2758..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1762.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1763.png b/TMessagesProj/src/emojis/apple/emoji/0_1763.png deleted file mode 100644 index 915d3f4c26..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1763.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1764.png b/TMessagesProj/src/emojis/apple/emoji/0_1764.png deleted file mode 100644 index f6b3f190d5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1764.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1765.png b/TMessagesProj/src/emojis/apple/emoji/0_1765.png deleted file mode 100644 index 8f6a321b7d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1765.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1766.png b/TMessagesProj/src/emojis/apple/emoji/0_1766.png deleted file mode 100644 index 6826f27ccb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1766.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1767.png b/TMessagesProj/src/emojis/apple/emoji/0_1767.png deleted file mode 100644 index 462b133540..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1767.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1768.png b/TMessagesProj/src/emojis/apple/emoji/0_1768.png deleted file mode 100644 index 07fc648659..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1768.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1769.png b/TMessagesProj/src/emojis/apple/emoji/0_1769.png deleted file mode 100644 index 72dc7b00fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1769.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_177.png b/TMessagesProj/src/emojis/apple/emoji/0_177.png deleted file mode 100644 index 55f4d1a302..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1770.png b/TMessagesProj/src/emojis/apple/emoji/0_1770.png deleted file mode 100644 index e4217c47fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1770.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1771.png b/TMessagesProj/src/emojis/apple/emoji/0_1771.png deleted file mode 100644 index c6032b8360..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1771.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1772.png b/TMessagesProj/src/emojis/apple/emoji/0_1772.png deleted file mode 100644 index f476a178b3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1772.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1773.png b/TMessagesProj/src/emojis/apple/emoji/0_1773.png deleted file mode 100644 index 21c464829a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1773.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1774.png b/TMessagesProj/src/emojis/apple/emoji/0_1774.png deleted file mode 100644 index 946409f931..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1774.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1775.png b/TMessagesProj/src/emojis/apple/emoji/0_1775.png deleted file mode 100644 index db7eee6c80..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1775.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1776.png b/TMessagesProj/src/emojis/apple/emoji/0_1776.png deleted file mode 100644 index ccd9f501d3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1776.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1777.png b/TMessagesProj/src/emojis/apple/emoji/0_1777.png deleted file mode 100644 index bd4b2d7964..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1777.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1778.png b/TMessagesProj/src/emojis/apple/emoji/0_1778.png deleted file mode 100644 index 5e2d511d1c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1778.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1779.png b/TMessagesProj/src/emojis/apple/emoji/0_1779.png deleted file mode 100644 index 472b775ae0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1779.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_178.png b/TMessagesProj/src/emojis/apple/emoji/0_178.png deleted file mode 100644 index 463d9428ac..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1780.png b/TMessagesProj/src/emojis/apple/emoji/0_1780.png deleted file mode 100644 index 9ca6c68538..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1780.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1781.png b/TMessagesProj/src/emojis/apple/emoji/0_1781.png deleted file mode 100644 index 2abca50217..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1781.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1782.png b/TMessagesProj/src/emojis/apple/emoji/0_1782.png deleted file mode 100644 index 569aaa7a3a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1782.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1783.png b/TMessagesProj/src/emojis/apple/emoji/0_1783.png deleted file mode 100644 index 51c5787806..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1783.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1784.png b/TMessagesProj/src/emojis/apple/emoji/0_1784.png deleted file mode 100644 index 926aa2b7b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1784.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1785.png b/TMessagesProj/src/emojis/apple/emoji/0_1785.png deleted file mode 100644 index 52c967113d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1785.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1786.png b/TMessagesProj/src/emojis/apple/emoji/0_1786.png deleted file mode 100644 index 18e82e5ddc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1786.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1787.png b/TMessagesProj/src/emojis/apple/emoji/0_1787.png deleted file mode 100644 index 773fa8f28c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1787.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1788.png b/TMessagesProj/src/emojis/apple/emoji/0_1788.png deleted file mode 100644 index 3645f8d9b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1788.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1789.png b/TMessagesProj/src/emojis/apple/emoji/0_1789.png deleted file mode 100644 index 4ef37cd7ed..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1789.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_179.png b/TMessagesProj/src/emojis/apple/emoji/0_179.png deleted file mode 100644 index 47ab79dd8c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1790.png b/TMessagesProj/src/emojis/apple/emoji/0_1790.png deleted file mode 100644 index 7c9747892e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1790.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1791.png b/TMessagesProj/src/emojis/apple/emoji/0_1791.png deleted file mode 100644 index 9196717b2d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1791.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1792.png b/TMessagesProj/src/emojis/apple/emoji/0_1792.png deleted file mode 100644 index e1ddbd6f98..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1792.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1793.png b/TMessagesProj/src/emojis/apple/emoji/0_1793.png deleted file mode 100644 index 3ff6849152..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1793.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1794.png b/TMessagesProj/src/emojis/apple/emoji/0_1794.png deleted file mode 100644 index 04e3ad210b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1794.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1795.png b/TMessagesProj/src/emojis/apple/emoji/0_1795.png deleted file mode 100644 index 004b8090da..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1795.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1796.png b/TMessagesProj/src/emojis/apple/emoji/0_1796.png deleted file mode 100644 index 9e80d3a39f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1796.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1797.png b/TMessagesProj/src/emojis/apple/emoji/0_1797.png deleted file mode 100644 index 5f3080769d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1797.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1798.png b/TMessagesProj/src/emojis/apple/emoji/0_1798.png deleted file mode 100644 index fb26343eb0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1798.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1799.png b/TMessagesProj/src/emojis/apple/emoji/0_1799.png deleted file mode 100644 index fb065be00f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1799.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_18.png b/TMessagesProj/src/emojis/apple/emoji/0_18.png deleted file mode 100644 index 978736fd89..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_180.png b/TMessagesProj/src/emojis/apple/emoji/0_180.png deleted file mode 100644 index 680a659c3e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1800.png b/TMessagesProj/src/emojis/apple/emoji/0_1800.png deleted file mode 100644 index 23d4312999..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1800.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1801.png b/TMessagesProj/src/emojis/apple/emoji/0_1801.png deleted file mode 100644 index 28ccba2710..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1801.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1802.png b/TMessagesProj/src/emojis/apple/emoji/0_1802.png deleted file mode 100644 index 40af53d65a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1802.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1803.png b/TMessagesProj/src/emojis/apple/emoji/0_1803.png deleted file mode 100644 index 011bf647bd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1803.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1804.png b/TMessagesProj/src/emojis/apple/emoji/0_1804.png deleted file mode 100644 index ce4c07941a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1804.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1805.png b/TMessagesProj/src/emojis/apple/emoji/0_1805.png deleted file mode 100644 index 75fcc1b249..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1805.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1806.png b/TMessagesProj/src/emojis/apple/emoji/0_1806.png deleted file mode 100644 index d64a58a9a0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1806.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1807.png b/TMessagesProj/src/emojis/apple/emoji/0_1807.png deleted file mode 100644 index d0f70c9362..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1807.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1808.png b/TMessagesProj/src/emojis/apple/emoji/0_1808.png deleted file mode 100644 index 3c7d7aef02..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1808.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1809.png b/TMessagesProj/src/emojis/apple/emoji/0_1809.png deleted file mode 100644 index aaa293b028..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1809.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_181.png b/TMessagesProj/src/emojis/apple/emoji/0_181.png deleted file mode 100644 index 609277b69c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1810.png b/TMessagesProj/src/emojis/apple/emoji/0_1810.png deleted file mode 100644 index bb24d714e4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1810.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1811.png b/TMessagesProj/src/emojis/apple/emoji/0_1811.png deleted file mode 100644 index 1192999d07..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1811.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1812.png b/TMessagesProj/src/emojis/apple/emoji/0_1812.png deleted file mode 100644 index 67b31f402e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1812.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1813.png b/TMessagesProj/src/emojis/apple/emoji/0_1813.png deleted file mode 100644 index cf55b06b9a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1813.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1814.png b/TMessagesProj/src/emojis/apple/emoji/0_1814.png deleted file mode 100644 index 738e105d14..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1814.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1815.png b/TMessagesProj/src/emojis/apple/emoji/0_1815.png deleted file mode 100644 index 6dbfbf9daa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1815.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1816.png b/TMessagesProj/src/emojis/apple/emoji/0_1816.png deleted file mode 100644 index 1aaf4867b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1816.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1817.png b/TMessagesProj/src/emojis/apple/emoji/0_1817.png deleted file mode 100644 index 8cddcef7c5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1817.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1818.png b/TMessagesProj/src/emojis/apple/emoji/0_1818.png deleted file mode 100644 index ec7a77ec6d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1818.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1819.png b/TMessagesProj/src/emojis/apple/emoji/0_1819.png deleted file mode 100644 index 373c092847..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1819.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_182.png b/TMessagesProj/src/emojis/apple/emoji/0_182.png deleted file mode 100644 index 035cf5e92d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1820.png b/TMessagesProj/src/emojis/apple/emoji/0_1820.png deleted file mode 100644 index 4442df1c14..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1820.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1821.png b/TMessagesProj/src/emojis/apple/emoji/0_1821.png deleted file mode 100644 index e4932d66f6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1821.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1822.png b/TMessagesProj/src/emojis/apple/emoji/0_1822.png deleted file mode 100644 index 38c85ce2e7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1822.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1823.png b/TMessagesProj/src/emojis/apple/emoji/0_1823.png deleted file mode 100644 index cd00e3c219..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1823.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1824.png b/TMessagesProj/src/emojis/apple/emoji/0_1824.png deleted file mode 100644 index ef8f920050..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1824.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1825.png b/TMessagesProj/src/emojis/apple/emoji/0_1825.png deleted file mode 100644 index 5d3d552b67..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1825.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1826.png b/TMessagesProj/src/emojis/apple/emoji/0_1826.png deleted file mode 100644 index faa638ca0c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1826.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1827.png b/TMessagesProj/src/emojis/apple/emoji/0_1827.png deleted file mode 100644 index 5ec81f45e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1827.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1828.png b/TMessagesProj/src/emojis/apple/emoji/0_1828.png deleted file mode 100644 index 878223c47a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1828.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1829.png b/TMessagesProj/src/emojis/apple/emoji/0_1829.png deleted file mode 100644 index 8c1d8a3259..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1829.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_183.png b/TMessagesProj/src/emojis/apple/emoji/0_183.png deleted file mode 100644 index fcf111010e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1830.png b/TMessagesProj/src/emojis/apple/emoji/0_1830.png deleted file mode 100644 index 026b6034c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1830.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1831.png b/TMessagesProj/src/emojis/apple/emoji/0_1831.png deleted file mode 100644 index 031997259f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1831.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1832.png b/TMessagesProj/src/emojis/apple/emoji/0_1832.png deleted file mode 100644 index 36b5669c68..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1832.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1833.png b/TMessagesProj/src/emojis/apple/emoji/0_1833.png deleted file mode 100644 index 8ca93a59a6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1833.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1834.png b/TMessagesProj/src/emojis/apple/emoji/0_1834.png deleted file mode 100644 index e73b80e4db..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1834.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1835.png b/TMessagesProj/src/emojis/apple/emoji/0_1835.png deleted file mode 100644 index f9c472c16f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1835.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1836.png b/TMessagesProj/src/emojis/apple/emoji/0_1836.png deleted file mode 100644 index 200c15b60f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1836.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1837.png b/TMessagesProj/src/emojis/apple/emoji/0_1837.png deleted file mode 100644 index 7e7ab5a150..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1837.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1838.png b/TMessagesProj/src/emojis/apple/emoji/0_1838.png deleted file mode 100644 index 18db0a26ac..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1838.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1839.png b/TMessagesProj/src/emojis/apple/emoji/0_1839.png deleted file mode 100644 index 313f16ce63..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1839.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_184.png b/TMessagesProj/src/emojis/apple/emoji/0_184.png deleted file mode 100644 index 08ac775e38..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1840.png b/TMessagesProj/src/emojis/apple/emoji/0_1840.png deleted file mode 100644 index a4e2797df7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1840.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1841.png b/TMessagesProj/src/emojis/apple/emoji/0_1841.png deleted file mode 100644 index 723fe25ef3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1841.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1842.png b/TMessagesProj/src/emojis/apple/emoji/0_1842.png deleted file mode 100644 index 9e130b219f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1842.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1843.png b/TMessagesProj/src/emojis/apple/emoji/0_1843.png deleted file mode 100644 index feae3968de..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1843.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1844.png b/TMessagesProj/src/emojis/apple/emoji/0_1844.png deleted file mode 100644 index 9374d1f20e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1844.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1845.png b/TMessagesProj/src/emojis/apple/emoji/0_1845.png deleted file mode 100644 index c98ca7d4b7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1845.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1846.png b/TMessagesProj/src/emojis/apple/emoji/0_1846.png deleted file mode 100644 index f92a9c533e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1846.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1847.png b/TMessagesProj/src/emojis/apple/emoji/0_1847.png deleted file mode 100644 index 349ce80d38..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1847.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1848.png b/TMessagesProj/src/emojis/apple/emoji/0_1848.png deleted file mode 100644 index c6d650692f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1848.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1849.png b/TMessagesProj/src/emojis/apple/emoji/0_1849.png deleted file mode 100644 index c2d03bb812..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1849.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_185.png b/TMessagesProj/src/emojis/apple/emoji/0_185.png deleted file mode 100644 index 6c846c7706..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1850.png b/TMessagesProj/src/emojis/apple/emoji/0_1850.png deleted file mode 100644 index caf01b84ec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1850.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1851.png b/TMessagesProj/src/emojis/apple/emoji/0_1851.png deleted file mode 100644 index b40794472b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1851.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1852.png b/TMessagesProj/src/emojis/apple/emoji/0_1852.png deleted file mode 100644 index 9ecc0b1d4b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1852.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1853.png b/TMessagesProj/src/emojis/apple/emoji/0_1853.png deleted file mode 100644 index 9742c0e48f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1853.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1854.png b/TMessagesProj/src/emojis/apple/emoji/0_1854.png deleted file mode 100644 index 6a045ee168..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1854.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1855.png b/TMessagesProj/src/emojis/apple/emoji/0_1855.png deleted file mode 100644 index 363debe95c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1855.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1856.png b/TMessagesProj/src/emojis/apple/emoji/0_1856.png deleted file mode 100644 index deeb38927d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1856.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1857.png b/TMessagesProj/src/emojis/apple/emoji/0_1857.png deleted file mode 100644 index 484e19797c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1857.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1858.png b/TMessagesProj/src/emojis/apple/emoji/0_1858.png deleted file mode 100644 index fe34ec8356..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1858.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1859.png b/TMessagesProj/src/emojis/apple/emoji/0_1859.png deleted file mode 100644 index 4b353dcaa2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1859.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_186.png b/TMessagesProj/src/emojis/apple/emoji/0_186.png deleted file mode 100644 index 0f234bdcfa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1860.png b/TMessagesProj/src/emojis/apple/emoji/0_1860.png deleted file mode 100644 index 98bf9e64dc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1860.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1861.png b/TMessagesProj/src/emojis/apple/emoji/0_1861.png deleted file mode 100644 index fc9ec5fc12..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1861.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1862.png b/TMessagesProj/src/emojis/apple/emoji/0_1862.png deleted file mode 100644 index 458e9828e2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1862.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1863.png b/TMessagesProj/src/emojis/apple/emoji/0_1863.png deleted file mode 100644 index 4c7d96ec41..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1863.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1864.png b/TMessagesProj/src/emojis/apple/emoji/0_1864.png deleted file mode 100644 index 464333a8de..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1864.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1865.png b/TMessagesProj/src/emojis/apple/emoji/0_1865.png deleted file mode 100644 index 917df7f6d0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1865.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1866.png b/TMessagesProj/src/emojis/apple/emoji/0_1866.png deleted file mode 100644 index ad719be70c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1866.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1867.png b/TMessagesProj/src/emojis/apple/emoji/0_1867.png deleted file mode 100644 index 268dbfca16..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1867.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1868.png b/TMessagesProj/src/emojis/apple/emoji/0_1868.png deleted file mode 100644 index 0d7740dbc6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1868.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1869.png b/TMessagesProj/src/emojis/apple/emoji/0_1869.png deleted file mode 100644 index 1580dd7657..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1869.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_187.png b/TMessagesProj/src/emojis/apple/emoji/0_187.png deleted file mode 100644 index 955b0e9b9e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1870.png b/TMessagesProj/src/emojis/apple/emoji/0_1870.png deleted file mode 100644 index 99afae6231..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1870.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1871.png b/TMessagesProj/src/emojis/apple/emoji/0_1871.png deleted file mode 100644 index 8f76738fe3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1871.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1872.png b/TMessagesProj/src/emojis/apple/emoji/0_1872.png deleted file mode 100644 index 2450e3f852..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1872.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1873.png b/TMessagesProj/src/emojis/apple/emoji/0_1873.png deleted file mode 100644 index 33d3ff1360..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1873.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1874.png b/TMessagesProj/src/emojis/apple/emoji/0_1874.png deleted file mode 100644 index 514b33ab7c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1874.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1875.png b/TMessagesProj/src/emojis/apple/emoji/0_1875.png deleted file mode 100644 index 554d7977a3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1875.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1876.png b/TMessagesProj/src/emojis/apple/emoji/0_1876.png deleted file mode 100644 index 659d231e52..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1876.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1877.png b/TMessagesProj/src/emojis/apple/emoji/0_1877.png deleted file mode 100644 index 0a3e3507c0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1877.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1878.png b/TMessagesProj/src/emojis/apple/emoji/0_1878.png deleted file mode 100644 index 447610e129..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1878.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1879.png b/TMessagesProj/src/emojis/apple/emoji/0_1879.png deleted file mode 100644 index 518ab9cec8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1879.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_188.png b/TMessagesProj/src/emojis/apple/emoji/0_188.png deleted file mode 100644 index 1b65ce93a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1880.png b/TMessagesProj/src/emojis/apple/emoji/0_1880.png deleted file mode 100644 index 3a22cc3778..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1880.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1881.png b/TMessagesProj/src/emojis/apple/emoji/0_1881.png deleted file mode 100644 index 5c5b882450..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1881.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1882.png b/TMessagesProj/src/emojis/apple/emoji/0_1882.png deleted file mode 100644 index 5b3b281f01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1882.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1883.png b/TMessagesProj/src/emojis/apple/emoji/0_1883.png deleted file mode 100644 index 73ee12b4d7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1883.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1884.png b/TMessagesProj/src/emojis/apple/emoji/0_1884.png deleted file mode 100644 index 00bfdcb1f4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1884.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1885.png b/TMessagesProj/src/emojis/apple/emoji/0_1885.png deleted file mode 100644 index 48c7f4020c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1885.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1886.png b/TMessagesProj/src/emojis/apple/emoji/0_1886.png deleted file mode 100644 index f8ee4631e1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1886.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1887.png b/TMessagesProj/src/emojis/apple/emoji/0_1887.png deleted file mode 100644 index 586dd2b43c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1887.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1888.png b/TMessagesProj/src/emojis/apple/emoji/0_1888.png deleted file mode 100644 index 8d4d22d554..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1888.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1889.png b/TMessagesProj/src/emojis/apple/emoji/0_1889.png deleted file mode 100644 index 736bbb0878..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1889.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_189.png b/TMessagesProj/src/emojis/apple/emoji/0_189.png deleted file mode 100644 index a4bb3a9922..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1890.png b/TMessagesProj/src/emojis/apple/emoji/0_1890.png deleted file mode 100644 index 6b618b5753..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1890.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1891.png b/TMessagesProj/src/emojis/apple/emoji/0_1891.png deleted file mode 100644 index 7b52ff016f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1891.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1892.png b/TMessagesProj/src/emojis/apple/emoji/0_1892.png deleted file mode 100644 index 167db99ea7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1892.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1893.png b/TMessagesProj/src/emojis/apple/emoji/0_1893.png deleted file mode 100644 index 8d04e6934c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1893.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1894.png b/TMessagesProj/src/emojis/apple/emoji/0_1894.png deleted file mode 100644 index 1d67afc5e1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1894.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1895.png b/TMessagesProj/src/emojis/apple/emoji/0_1895.png deleted file mode 100644 index 2e038ece6e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1895.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1896.png b/TMessagesProj/src/emojis/apple/emoji/0_1896.png deleted file mode 100644 index fee075b40a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1896.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1897.png b/TMessagesProj/src/emojis/apple/emoji/0_1897.png deleted file mode 100644 index d433258be5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1897.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1898.png b/TMessagesProj/src/emojis/apple/emoji/0_1898.png deleted file mode 100644 index 6d14d46659..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1898.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1899.png b/TMessagesProj/src/emojis/apple/emoji/0_1899.png deleted file mode 100644 index c5aa51a049..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1899.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_19.png b/TMessagesProj/src/emojis/apple/emoji/0_19.png deleted file mode 100644 index a9958864d0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_190.png b/TMessagesProj/src/emojis/apple/emoji/0_190.png deleted file mode 100644 index c26c6be8e6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1900.png b/TMessagesProj/src/emojis/apple/emoji/0_1900.png deleted file mode 100644 index 7523629d45..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1900.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1901.png b/TMessagesProj/src/emojis/apple/emoji/0_1901.png deleted file mode 100644 index e96f3d1fa3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1901.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1902.png b/TMessagesProj/src/emojis/apple/emoji/0_1902.png deleted file mode 100644 index 42e3dd4eb5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1902.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1903.png b/TMessagesProj/src/emojis/apple/emoji/0_1903.png deleted file mode 100644 index 950a83acf2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1903.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1904.png b/TMessagesProj/src/emojis/apple/emoji/0_1904.png deleted file mode 100644 index a66b5ca2de..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1904.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1905.png b/TMessagesProj/src/emojis/apple/emoji/0_1905.png deleted file mode 100644 index 414b0dfdc7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1905.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1906.png b/TMessagesProj/src/emojis/apple/emoji/0_1906.png deleted file mode 100644 index ee82c6653d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1906.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1907.png b/TMessagesProj/src/emojis/apple/emoji/0_1907.png deleted file mode 100644 index 8031f01256..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1907.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1908.png b/TMessagesProj/src/emojis/apple/emoji/0_1908.png deleted file mode 100644 index 35510cf1a3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1908.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1909.png b/TMessagesProj/src/emojis/apple/emoji/0_1909.png deleted file mode 100644 index 3786be0f21..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1909.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_191.png b/TMessagesProj/src/emojis/apple/emoji/0_191.png deleted file mode 100644 index a90ce0c040..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1910.png b/TMessagesProj/src/emojis/apple/emoji/0_1910.png deleted file mode 100644 index 79b22df25c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1910.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1911.png b/TMessagesProj/src/emojis/apple/emoji/0_1911.png deleted file mode 100644 index b3fde0d61d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1911.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1912.png b/TMessagesProj/src/emojis/apple/emoji/0_1912.png deleted file mode 100644 index 9389110f4b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1912.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1913.png b/TMessagesProj/src/emojis/apple/emoji/0_1913.png deleted file mode 100644 index 7a72c88f08..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1913.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1914.png b/TMessagesProj/src/emojis/apple/emoji/0_1914.png deleted file mode 100644 index 82d34d3bca..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1914.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1915.png b/TMessagesProj/src/emojis/apple/emoji/0_1915.png deleted file mode 100644 index cbc8094c23..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1915.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1916.png b/TMessagesProj/src/emojis/apple/emoji/0_1916.png deleted file mode 100644 index 1413b513e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1916.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1917.png b/TMessagesProj/src/emojis/apple/emoji/0_1917.png deleted file mode 100644 index 50912886ab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1917.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1918.png b/TMessagesProj/src/emojis/apple/emoji/0_1918.png deleted file mode 100644 index f77ede85db..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1918.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1919.png b/TMessagesProj/src/emojis/apple/emoji/0_1919.png deleted file mode 100644 index 4b0382731b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1919.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_192.png b/TMessagesProj/src/emojis/apple/emoji/0_192.png deleted file mode 100644 index 8cb759eedd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1920.png b/TMessagesProj/src/emojis/apple/emoji/0_1920.png deleted file mode 100644 index de8810dc16..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1920.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1921.png b/TMessagesProj/src/emojis/apple/emoji/0_1921.png deleted file mode 100644 index 5f3ca38423..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1921.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1922.png b/TMessagesProj/src/emojis/apple/emoji/0_1922.png deleted file mode 100644 index 42764476d6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1922.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1923.png b/TMessagesProj/src/emojis/apple/emoji/0_1923.png deleted file mode 100644 index 1c2bca65ab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1923.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1924.png b/TMessagesProj/src/emojis/apple/emoji/0_1924.png deleted file mode 100644 index 3550e7244d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1924.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1925.png b/TMessagesProj/src/emojis/apple/emoji/0_1925.png deleted file mode 100644 index 828b2870dc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1925.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1926.png b/TMessagesProj/src/emojis/apple/emoji/0_1926.png deleted file mode 100644 index 76d7f30c0d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1926.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1927.png b/TMessagesProj/src/emojis/apple/emoji/0_1927.png deleted file mode 100644 index 1456998353..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1927.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1928.png b/TMessagesProj/src/emojis/apple/emoji/0_1928.png deleted file mode 100644 index ccfbd30388..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1928.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1929.png b/TMessagesProj/src/emojis/apple/emoji/0_1929.png deleted file mode 100644 index ed2de51ca6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1929.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_193.png b/TMessagesProj/src/emojis/apple/emoji/0_193.png deleted file mode 100644 index 59cf31e74c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1930.png b/TMessagesProj/src/emojis/apple/emoji/0_1930.png deleted file mode 100644 index 4eefbdb785..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1930.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1931.png b/TMessagesProj/src/emojis/apple/emoji/0_1931.png deleted file mode 100644 index d447139e71..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1931.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1932.png b/TMessagesProj/src/emojis/apple/emoji/0_1932.png deleted file mode 100644 index ae3f784cb0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1932.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1933.png b/TMessagesProj/src/emojis/apple/emoji/0_1933.png deleted file mode 100644 index 3dc5773d8e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1933.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1934.png b/TMessagesProj/src/emojis/apple/emoji/0_1934.png deleted file mode 100644 index f72824cfad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1934.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1935.png b/TMessagesProj/src/emojis/apple/emoji/0_1935.png deleted file mode 100644 index 757c539aef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1935.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1936.png b/TMessagesProj/src/emojis/apple/emoji/0_1936.png deleted file mode 100644 index 530924c341..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1936.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1937.png b/TMessagesProj/src/emojis/apple/emoji/0_1937.png deleted file mode 100644 index c7378ba578..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1937.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1938.png b/TMessagesProj/src/emojis/apple/emoji/0_1938.png deleted file mode 100644 index 38d3ec2b23..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1938.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1939.png b/TMessagesProj/src/emojis/apple/emoji/0_1939.png deleted file mode 100644 index 9a9778f5d8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1939.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_194.png b/TMessagesProj/src/emojis/apple/emoji/0_194.png deleted file mode 100644 index dfe8c23473..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1940.png b/TMessagesProj/src/emojis/apple/emoji/0_1940.png deleted file mode 100644 index 933d99d852..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1940.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1941.png b/TMessagesProj/src/emojis/apple/emoji/0_1941.png deleted file mode 100644 index fbc4e4763c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1941.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1942.png b/TMessagesProj/src/emojis/apple/emoji/0_1942.png deleted file mode 100644 index ec5da6f3f3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1942.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1943.png b/TMessagesProj/src/emojis/apple/emoji/0_1943.png deleted file mode 100644 index 4615b22a8d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1943.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1944.png b/TMessagesProj/src/emojis/apple/emoji/0_1944.png deleted file mode 100644 index 644aa82171..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1944.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1945.png b/TMessagesProj/src/emojis/apple/emoji/0_1945.png deleted file mode 100644 index 0d90fa1fbd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1945.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1946.png b/TMessagesProj/src/emojis/apple/emoji/0_1946.png deleted file mode 100644 index aff1308eeb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1946.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1947.png b/TMessagesProj/src/emojis/apple/emoji/0_1947.png deleted file mode 100644 index c35d52b418..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1947.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1948.png b/TMessagesProj/src/emojis/apple/emoji/0_1948.png deleted file mode 100644 index edaad77467..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1948.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1949.png b/TMessagesProj/src/emojis/apple/emoji/0_1949.png deleted file mode 100644 index d9e1767a77..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1949.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_195.png b/TMessagesProj/src/emojis/apple/emoji/0_195.png deleted file mode 100644 index f0f2a8d4ba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1950.png b/TMessagesProj/src/emojis/apple/emoji/0_1950.png deleted file mode 100644 index a86198738a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1950.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1951.png b/TMessagesProj/src/emojis/apple/emoji/0_1951.png deleted file mode 100644 index a4e1be9ad5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1951.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1952.png b/TMessagesProj/src/emojis/apple/emoji/0_1952.png deleted file mode 100644 index 415d6b94ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1952.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1953.png b/TMessagesProj/src/emojis/apple/emoji/0_1953.png deleted file mode 100644 index 16c0c20dcc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1953.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1954.png b/TMessagesProj/src/emojis/apple/emoji/0_1954.png deleted file mode 100644 index ee21a09a07..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1954.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1955.png b/TMessagesProj/src/emojis/apple/emoji/0_1955.png deleted file mode 100644 index 0107ad9241..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1955.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1956.png b/TMessagesProj/src/emojis/apple/emoji/0_1956.png deleted file mode 100644 index 2992b67746..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1956.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1957.png b/TMessagesProj/src/emojis/apple/emoji/0_1957.png deleted file mode 100644 index 6d9585eba8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1957.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1958.png b/TMessagesProj/src/emojis/apple/emoji/0_1958.png deleted file mode 100644 index a20f01a662..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1958.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1959.png b/TMessagesProj/src/emojis/apple/emoji/0_1959.png deleted file mode 100644 index 1cdc8b07b0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1959.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_196.png b/TMessagesProj/src/emojis/apple/emoji/0_196.png deleted file mode 100644 index dfeadd55b7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1960.png b/TMessagesProj/src/emojis/apple/emoji/0_1960.png deleted file mode 100644 index 7caad1dae8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1960.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1961.png b/TMessagesProj/src/emojis/apple/emoji/0_1961.png deleted file mode 100644 index f0908725da..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1961.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1962.png b/TMessagesProj/src/emojis/apple/emoji/0_1962.png deleted file mode 100644 index c44b74bc36..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1962.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1963.png b/TMessagesProj/src/emojis/apple/emoji/0_1963.png deleted file mode 100644 index bced729fa7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1963.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1964.png b/TMessagesProj/src/emojis/apple/emoji/0_1964.png deleted file mode 100644 index aedb47834e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1964.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1965.png b/TMessagesProj/src/emojis/apple/emoji/0_1965.png deleted file mode 100644 index 3f7ebc108c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1965.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1966.png b/TMessagesProj/src/emojis/apple/emoji/0_1966.png deleted file mode 100644 index fff9c6300b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1966.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1967.png b/TMessagesProj/src/emojis/apple/emoji/0_1967.png deleted file mode 100644 index 65a3e61f37..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1967.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1968.png b/TMessagesProj/src/emojis/apple/emoji/0_1968.png deleted file mode 100644 index e26892d158..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1968.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1969.png b/TMessagesProj/src/emojis/apple/emoji/0_1969.png deleted file mode 100644 index cf3d2fac70..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1969.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_197.png b/TMessagesProj/src/emojis/apple/emoji/0_197.png deleted file mode 100644 index 71d9de9bb8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1970.png b/TMessagesProj/src/emojis/apple/emoji/0_1970.png deleted file mode 100644 index 5e23d05f4e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1970.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1971.png b/TMessagesProj/src/emojis/apple/emoji/0_1971.png deleted file mode 100644 index 1cba603554..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1971.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1972.png b/TMessagesProj/src/emojis/apple/emoji/0_1972.png deleted file mode 100644 index a3e5191722..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1972.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1973.png b/TMessagesProj/src/emojis/apple/emoji/0_1973.png deleted file mode 100644 index 0a4fc41a10..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1973.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1974.png b/TMessagesProj/src/emojis/apple/emoji/0_1974.png deleted file mode 100644 index 9b352feecb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1974.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1975.png b/TMessagesProj/src/emojis/apple/emoji/0_1975.png deleted file mode 100644 index 60f4cb0de2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1975.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1976.png b/TMessagesProj/src/emojis/apple/emoji/0_1976.png deleted file mode 100644 index 8761dac47b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1976.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1977.png b/TMessagesProj/src/emojis/apple/emoji/0_1977.png deleted file mode 100644 index c4780b3878..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1977.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1978.png b/TMessagesProj/src/emojis/apple/emoji/0_1978.png deleted file mode 100644 index e62fe3cefc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1978.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1979.png b/TMessagesProj/src/emojis/apple/emoji/0_1979.png deleted file mode 100644 index 225924e6bd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1979.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_198.png b/TMessagesProj/src/emojis/apple/emoji/0_198.png deleted file mode 100644 index 34768a2a09..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1980.png b/TMessagesProj/src/emojis/apple/emoji/0_1980.png deleted file mode 100644 index 76f4631bae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1980.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1981.png b/TMessagesProj/src/emojis/apple/emoji/0_1981.png deleted file mode 100644 index ab5975bca1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1981.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1982.png b/TMessagesProj/src/emojis/apple/emoji/0_1982.png deleted file mode 100644 index c741559834..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1982.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1983.png b/TMessagesProj/src/emojis/apple/emoji/0_1983.png deleted file mode 100644 index 7e6cda2e0c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1983.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1984.png b/TMessagesProj/src/emojis/apple/emoji/0_1984.png deleted file mode 100644 index 47e6b5d3c0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1984.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1985.png b/TMessagesProj/src/emojis/apple/emoji/0_1985.png deleted file mode 100644 index 547b384a67..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1985.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1986.png b/TMessagesProj/src/emojis/apple/emoji/0_1986.png deleted file mode 100644 index befcf27cb4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1986.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_1987.png b/TMessagesProj/src/emojis/apple/emoji/0_1987.png deleted file mode 100644 index 076b4ebf44..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_1987.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_199.png b/TMessagesProj/src/emojis/apple/emoji/0_199.png deleted file mode 100644 index cc4d929867..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_2.png b/TMessagesProj/src/emojis/apple/emoji/0_2.png deleted file mode 100644 index 4e874d0879..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_20.png b/TMessagesProj/src/emojis/apple/emoji/0_20.png deleted file mode 100644 index f90c8885c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_200.png b/TMessagesProj/src/emojis/apple/emoji/0_200.png deleted file mode 100644 index 2f02e3370a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_201.png b/TMessagesProj/src/emojis/apple/emoji/0_201.png deleted file mode 100644 index 81056c4648..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_202.png b/TMessagesProj/src/emojis/apple/emoji/0_202.png deleted file mode 100644 index e5cb5eafe8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_203.png b/TMessagesProj/src/emojis/apple/emoji/0_203.png deleted file mode 100644 index 96d733c249..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_204.png b/TMessagesProj/src/emojis/apple/emoji/0_204.png deleted file mode 100644 index f5692890e7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_205.png b/TMessagesProj/src/emojis/apple/emoji/0_205.png deleted file mode 100644 index 40a2b479d6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_206.png b/TMessagesProj/src/emojis/apple/emoji/0_206.png deleted file mode 100644 index 24eef66270..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_207.png b/TMessagesProj/src/emojis/apple/emoji/0_207.png deleted file mode 100644 index 0d76e880c2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_208.png b/TMessagesProj/src/emojis/apple/emoji/0_208.png deleted file mode 100644 index 61d399a95b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_209.png b/TMessagesProj/src/emojis/apple/emoji/0_209.png deleted file mode 100644 index 84236d0e59..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_21.png b/TMessagesProj/src/emojis/apple/emoji/0_21.png deleted file mode 100644 index 2fc6dbc42a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_210.png b/TMessagesProj/src/emojis/apple/emoji/0_210.png deleted file mode 100644 index 29d3b11fff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_211.png b/TMessagesProj/src/emojis/apple/emoji/0_211.png deleted file mode 100644 index e670b00342..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_212.png b/TMessagesProj/src/emojis/apple/emoji/0_212.png deleted file mode 100644 index 621f71f3a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_213.png b/TMessagesProj/src/emojis/apple/emoji/0_213.png deleted file mode 100644 index c386f83cb2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_214.png b/TMessagesProj/src/emojis/apple/emoji/0_214.png deleted file mode 100644 index c402088bc3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_215.png b/TMessagesProj/src/emojis/apple/emoji/0_215.png deleted file mode 100644 index 1e66909d45..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_216.png b/TMessagesProj/src/emojis/apple/emoji/0_216.png deleted file mode 100644 index bdcc2d689d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_217.png b/TMessagesProj/src/emojis/apple/emoji/0_217.png deleted file mode 100644 index 8d6d9f1dfb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_218.png b/TMessagesProj/src/emojis/apple/emoji/0_218.png deleted file mode 100644 index 068ec49c37..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_219.png b/TMessagesProj/src/emojis/apple/emoji/0_219.png deleted file mode 100644 index 43c6527f33..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_22.png b/TMessagesProj/src/emojis/apple/emoji/0_22.png deleted file mode 100644 index e7ccf70c6c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_220.png b/TMessagesProj/src/emojis/apple/emoji/0_220.png deleted file mode 100644 index bfb068eb64..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_221.png b/TMessagesProj/src/emojis/apple/emoji/0_221.png deleted file mode 100644 index c2c8ee6a5d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_222.png b/TMessagesProj/src/emojis/apple/emoji/0_222.png deleted file mode 100644 index 75c053ac11..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_223.png b/TMessagesProj/src/emojis/apple/emoji/0_223.png deleted file mode 100644 index 6f9670cf85..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_224.png b/TMessagesProj/src/emojis/apple/emoji/0_224.png deleted file mode 100644 index df00ae63c8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_225.png b/TMessagesProj/src/emojis/apple/emoji/0_225.png deleted file mode 100644 index 78018f1bc1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_226.png b/TMessagesProj/src/emojis/apple/emoji/0_226.png deleted file mode 100644 index 1f208a53f9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_227.png b/TMessagesProj/src/emojis/apple/emoji/0_227.png deleted file mode 100644 index b3b3e9978e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_228.png b/TMessagesProj/src/emojis/apple/emoji/0_228.png deleted file mode 100644 index 0bfade75a0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_229.png b/TMessagesProj/src/emojis/apple/emoji/0_229.png deleted file mode 100644 index 07afce04bd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_229.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_23.png b/TMessagesProj/src/emojis/apple/emoji/0_23.png deleted file mode 100644 index f0e3abcc1d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_230.png b/TMessagesProj/src/emojis/apple/emoji/0_230.png deleted file mode 100644 index dae027141c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_230.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_231.png b/TMessagesProj/src/emojis/apple/emoji/0_231.png deleted file mode 100644 index 311da664c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_231.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_232.png b/TMessagesProj/src/emojis/apple/emoji/0_232.png deleted file mode 100644 index 04370b5354..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_232.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_233.png b/TMessagesProj/src/emojis/apple/emoji/0_233.png deleted file mode 100644 index 16d15e9356..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_233.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_234.png b/TMessagesProj/src/emojis/apple/emoji/0_234.png deleted file mode 100644 index f08e3a663e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_234.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_235.png b/TMessagesProj/src/emojis/apple/emoji/0_235.png deleted file mode 100644 index ea4f12f3be..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_235.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_236.png b/TMessagesProj/src/emojis/apple/emoji/0_236.png deleted file mode 100644 index c744d08242..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_236.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_237.png b/TMessagesProj/src/emojis/apple/emoji/0_237.png deleted file mode 100644 index 3920dc8685..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_237.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_238.png b/TMessagesProj/src/emojis/apple/emoji/0_238.png deleted file mode 100644 index f148796c33..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_238.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_239.png b/TMessagesProj/src/emojis/apple/emoji/0_239.png deleted file mode 100644 index f7a1b85637..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_239.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_24.png b/TMessagesProj/src/emojis/apple/emoji/0_24.png deleted file mode 100644 index 2a2f7a9dab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_240.png b/TMessagesProj/src/emojis/apple/emoji/0_240.png deleted file mode 100644 index 9f4aadeba5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_240.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_241.png b/TMessagesProj/src/emojis/apple/emoji/0_241.png deleted file mode 100644 index 350f2f3a10..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_241.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_242.png b/TMessagesProj/src/emojis/apple/emoji/0_242.png deleted file mode 100644 index 584faa6cdd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_242.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_243.png b/TMessagesProj/src/emojis/apple/emoji/0_243.png deleted file mode 100644 index 14a5a81c47..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_243.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_244.png b/TMessagesProj/src/emojis/apple/emoji/0_244.png deleted file mode 100644 index 5d12e33fde..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_244.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_245.png b/TMessagesProj/src/emojis/apple/emoji/0_245.png deleted file mode 100644 index 752123afb1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_245.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_246.png b/TMessagesProj/src/emojis/apple/emoji/0_246.png deleted file mode 100644 index 2ac006df01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_246.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_247.png b/TMessagesProj/src/emojis/apple/emoji/0_247.png deleted file mode 100644 index 5828ed9dce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_247.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_248.png b/TMessagesProj/src/emojis/apple/emoji/0_248.png deleted file mode 100644 index 96d2960073..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_248.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_249.png b/TMessagesProj/src/emojis/apple/emoji/0_249.png deleted file mode 100644 index 38ad775108..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_249.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_25.png b/TMessagesProj/src/emojis/apple/emoji/0_25.png deleted file mode 100644 index c3005a9c49..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_250.png b/TMessagesProj/src/emojis/apple/emoji/0_250.png deleted file mode 100644 index 396ff7bfff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_250.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_251.png b/TMessagesProj/src/emojis/apple/emoji/0_251.png deleted file mode 100644 index 85adaebce9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_251.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_252.png b/TMessagesProj/src/emojis/apple/emoji/0_252.png deleted file mode 100644 index ea08c0ee7d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_252.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_253.png b/TMessagesProj/src/emojis/apple/emoji/0_253.png deleted file mode 100644 index b44bd804d4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_253.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_254.png b/TMessagesProj/src/emojis/apple/emoji/0_254.png deleted file mode 100644 index 3142f7e698..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_254.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_255.png b/TMessagesProj/src/emojis/apple/emoji/0_255.png deleted file mode 100644 index fa467e0719..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_255.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_256.png b/TMessagesProj/src/emojis/apple/emoji/0_256.png deleted file mode 100644 index 2a756e9634..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_256.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_257.png b/TMessagesProj/src/emojis/apple/emoji/0_257.png deleted file mode 100644 index 6e2d5f28f4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_257.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_258.png b/TMessagesProj/src/emojis/apple/emoji/0_258.png deleted file mode 100644 index 57a5d3dc4c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_258.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_259.png b/TMessagesProj/src/emojis/apple/emoji/0_259.png deleted file mode 100644 index 1dcdcf3663..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_259.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_26.png b/TMessagesProj/src/emojis/apple/emoji/0_26.png deleted file mode 100644 index f0c4c47ab2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_260.png b/TMessagesProj/src/emojis/apple/emoji/0_260.png deleted file mode 100644 index cc5220c4d7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_260.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_261.png b/TMessagesProj/src/emojis/apple/emoji/0_261.png deleted file mode 100644 index ae4e9ba4d4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_261.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_262.png b/TMessagesProj/src/emojis/apple/emoji/0_262.png deleted file mode 100644 index 92681146fc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_262.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_263.png b/TMessagesProj/src/emojis/apple/emoji/0_263.png deleted file mode 100644 index fc3a283689..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_263.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_264.png b/TMessagesProj/src/emojis/apple/emoji/0_264.png deleted file mode 100644 index 58aa43ec9d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_264.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_265.png b/TMessagesProj/src/emojis/apple/emoji/0_265.png deleted file mode 100644 index 5a33892042..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_265.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_266.png b/TMessagesProj/src/emojis/apple/emoji/0_266.png deleted file mode 100644 index a6dded035e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_266.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_267.png b/TMessagesProj/src/emojis/apple/emoji/0_267.png deleted file mode 100644 index 937a86e71a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_267.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_268.png b/TMessagesProj/src/emojis/apple/emoji/0_268.png deleted file mode 100644 index fd86eed8c5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_268.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_269.png b/TMessagesProj/src/emojis/apple/emoji/0_269.png deleted file mode 100644 index a61b986300..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_269.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_27.png b/TMessagesProj/src/emojis/apple/emoji/0_27.png deleted file mode 100644 index 6ab709ba81..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_270.png b/TMessagesProj/src/emojis/apple/emoji/0_270.png deleted file mode 100644 index c1fc7d9d00..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_270.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_271.png b/TMessagesProj/src/emojis/apple/emoji/0_271.png deleted file mode 100644 index 90169a521f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_271.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_272.png b/TMessagesProj/src/emojis/apple/emoji/0_272.png deleted file mode 100644 index dca3bb8e03..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_272.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_273.png b/TMessagesProj/src/emojis/apple/emoji/0_273.png deleted file mode 100644 index 3c71f883e1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_273.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_274.png b/TMessagesProj/src/emojis/apple/emoji/0_274.png deleted file mode 100644 index 6d0435c09e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_274.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_275.png b/TMessagesProj/src/emojis/apple/emoji/0_275.png deleted file mode 100644 index 3374c81b0d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_275.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_276.png b/TMessagesProj/src/emojis/apple/emoji/0_276.png deleted file mode 100644 index c07ab92fc4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_276.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_277.png b/TMessagesProj/src/emojis/apple/emoji/0_277.png deleted file mode 100644 index c280580d88..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_277.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_278.png b/TMessagesProj/src/emojis/apple/emoji/0_278.png deleted file mode 100644 index 78ef3677b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_278.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_279.png b/TMessagesProj/src/emojis/apple/emoji/0_279.png deleted file mode 100644 index 956cbfe674..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_279.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_28.png b/TMessagesProj/src/emojis/apple/emoji/0_28.png deleted file mode 100644 index 6293fc1489..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_280.png b/TMessagesProj/src/emojis/apple/emoji/0_280.png deleted file mode 100644 index 6103a88608..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_280.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_281.png b/TMessagesProj/src/emojis/apple/emoji/0_281.png deleted file mode 100644 index 964c66e176..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_281.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_282.png b/TMessagesProj/src/emojis/apple/emoji/0_282.png deleted file mode 100644 index 6faa9406ab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_282.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_283.png b/TMessagesProj/src/emojis/apple/emoji/0_283.png deleted file mode 100644 index 8f28816baa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_283.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_284.png b/TMessagesProj/src/emojis/apple/emoji/0_284.png deleted file mode 100644 index 7c23766f68..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_284.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_285.png b/TMessagesProj/src/emojis/apple/emoji/0_285.png deleted file mode 100644 index 32a3bd7cb1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_285.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_286.png b/TMessagesProj/src/emojis/apple/emoji/0_286.png deleted file mode 100644 index 5f09a3102c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_286.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_287.png b/TMessagesProj/src/emojis/apple/emoji/0_287.png deleted file mode 100644 index b64f5b28ae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_287.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_288.png b/TMessagesProj/src/emojis/apple/emoji/0_288.png deleted file mode 100644 index 46c0f74533..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_288.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_289.png b/TMessagesProj/src/emojis/apple/emoji/0_289.png deleted file mode 100644 index 3b0490afa1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_289.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_29.png b/TMessagesProj/src/emojis/apple/emoji/0_29.png deleted file mode 100644 index 668789ec57..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_290.png b/TMessagesProj/src/emojis/apple/emoji/0_290.png deleted file mode 100644 index 7cb6088c1d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_290.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_291.png b/TMessagesProj/src/emojis/apple/emoji/0_291.png deleted file mode 100644 index 31b4e0af04..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_291.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_292.png b/TMessagesProj/src/emojis/apple/emoji/0_292.png deleted file mode 100644 index f9ed4afb82..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_292.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_293.png b/TMessagesProj/src/emojis/apple/emoji/0_293.png deleted file mode 100644 index f699b2a053..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_293.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_294.png b/TMessagesProj/src/emojis/apple/emoji/0_294.png deleted file mode 100644 index 94cc0aa8a4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_294.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_295.png b/TMessagesProj/src/emojis/apple/emoji/0_295.png deleted file mode 100644 index 2acd36be89..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_295.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_296.png b/TMessagesProj/src/emojis/apple/emoji/0_296.png deleted file mode 100644 index c81144bd15..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_296.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_297.png b/TMessagesProj/src/emojis/apple/emoji/0_297.png deleted file mode 100644 index 6141b8ccd4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_297.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_298.png b/TMessagesProj/src/emojis/apple/emoji/0_298.png deleted file mode 100644 index d098140075..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_298.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_299.png b/TMessagesProj/src/emojis/apple/emoji/0_299.png deleted file mode 100644 index 191bf57764..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_299.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_3.png b/TMessagesProj/src/emojis/apple/emoji/0_3.png deleted file mode 100644 index 198e087c06..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_30.png b/TMessagesProj/src/emojis/apple/emoji/0_30.png deleted file mode 100644 index 58ce887986..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_300.png b/TMessagesProj/src/emojis/apple/emoji/0_300.png deleted file mode 100644 index f260a87432..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_300.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_301.png b/TMessagesProj/src/emojis/apple/emoji/0_301.png deleted file mode 100644 index 6cea54ee62..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_301.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_302.png b/TMessagesProj/src/emojis/apple/emoji/0_302.png deleted file mode 100644 index 50ad8f1382..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_302.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_303.png b/TMessagesProj/src/emojis/apple/emoji/0_303.png deleted file mode 100644 index a80bd7fe22..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_303.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_304.png b/TMessagesProj/src/emojis/apple/emoji/0_304.png deleted file mode 100644 index b05a46d30b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_304.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_305.png b/TMessagesProj/src/emojis/apple/emoji/0_305.png deleted file mode 100644 index 12d64c5168..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_305.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_306.png b/TMessagesProj/src/emojis/apple/emoji/0_306.png deleted file mode 100644 index d087c5a00a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_306.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_307.png b/TMessagesProj/src/emojis/apple/emoji/0_307.png deleted file mode 100644 index cdc876abf4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_307.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_308.png b/TMessagesProj/src/emojis/apple/emoji/0_308.png deleted file mode 100644 index f06f6dfbe8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_308.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_309.png b/TMessagesProj/src/emojis/apple/emoji/0_309.png deleted file mode 100644 index 7e2c219142..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_309.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_31.png b/TMessagesProj/src/emojis/apple/emoji/0_31.png deleted file mode 100644 index 3eb7749f8f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_310.png b/TMessagesProj/src/emojis/apple/emoji/0_310.png deleted file mode 100644 index bc21f8ce1f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_310.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_311.png b/TMessagesProj/src/emojis/apple/emoji/0_311.png deleted file mode 100644 index e95c41a3e4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_311.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_312.png b/TMessagesProj/src/emojis/apple/emoji/0_312.png deleted file mode 100644 index d50a210339..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_312.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_313.png b/TMessagesProj/src/emojis/apple/emoji/0_313.png deleted file mode 100644 index cfb129399c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_313.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_314.png b/TMessagesProj/src/emojis/apple/emoji/0_314.png deleted file mode 100644 index de5b4420a2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_314.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_315.png b/TMessagesProj/src/emojis/apple/emoji/0_315.png deleted file mode 100644 index 59f44d7f0c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_315.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_316.png b/TMessagesProj/src/emojis/apple/emoji/0_316.png deleted file mode 100644 index 936a669476..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_316.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_317.png b/TMessagesProj/src/emojis/apple/emoji/0_317.png deleted file mode 100644 index e19208a4b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_317.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_318.png b/TMessagesProj/src/emojis/apple/emoji/0_318.png deleted file mode 100644 index debb78ec32..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_318.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_319.png b/TMessagesProj/src/emojis/apple/emoji/0_319.png deleted file mode 100644 index 01762ba21d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_319.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_32.png b/TMessagesProj/src/emojis/apple/emoji/0_32.png deleted file mode 100644 index 49082569b9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_320.png b/TMessagesProj/src/emojis/apple/emoji/0_320.png deleted file mode 100644 index fdb4e47faf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_320.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_321.png b/TMessagesProj/src/emojis/apple/emoji/0_321.png deleted file mode 100644 index 0c6e9b7340..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_321.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_322.png b/TMessagesProj/src/emojis/apple/emoji/0_322.png deleted file mode 100644 index a15db317a0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_322.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_323.png b/TMessagesProj/src/emojis/apple/emoji/0_323.png deleted file mode 100644 index e29e95ec23..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_323.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_324.png b/TMessagesProj/src/emojis/apple/emoji/0_324.png deleted file mode 100644 index 6cb2c2a878..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_324.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_325.png b/TMessagesProj/src/emojis/apple/emoji/0_325.png deleted file mode 100644 index ee0312b102..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_325.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_326.png b/TMessagesProj/src/emojis/apple/emoji/0_326.png deleted file mode 100644 index dadf8881b2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_326.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_327.png b/TMessagesProj/src/emojis/apple/emoji/0_327.png deleted file mode 100644 index ec985d045c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_327.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_328.png b/TMessagesProj/src/emojis/apple/emoji/0_328.png deleted file mode 100644 index 9949a510b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_328.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_329.png b/TMessagesProj/src/emojis/apple/emoji/0_329.png deleted file mode 100644 index 676f516ff1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_329.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_33.png b/TMessagesProj/src/emojis/apple/emoji/0_33.png deleted file mode 100644 index 3176692689..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_330.png b/TMessagesProj/src/emojis/apple/emoji/0_330.png deleted file mode 100644 index 4ff8baf14d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_330.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_331.png b/TMessagesProj/src/emojis/apple/emoji/0_331.png deleted file mode 100644 index 598c2dcf55..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_331.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_332.png b/TMessagesProj/src/emojis/apple/emoji/0_332.png deleted file mode 100644 index b6ba44a6b4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_332.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_333.png b/TMessagesProj/src/emojis/apple/emoji/0_333.png deleted file mode 100644 index 49c5f9ed65..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_333.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_334.png b/TMessagesProj/src/emojis/apple/emoji/0_334.png deleted file mode 100644 index 1a55ddcddb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_334.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_335.png b/TMessagesProj/src/emojis/apple/emoji/0_335.png deleted file mode 100644 index 81b7363d23..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_335.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_336.png b/TMessagesProj/src/emojis/apple/emoji/0_336.png deleted file mode 100644 index 5546441757..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_336.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_337.png b/TMessagesProj/src/emojis/apple/emoji/0_337.png deleted file mode 100644 index 7462e38b66..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_337.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_338.png b/TMessagesProj/src/emojis/apple/emoji/0_338.png deleted file mode 100644 index e781a26e2a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_338.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_339.png b/TMessagesProj/src/emojis/apple/emoji/0_339.png deleted file mode 100644 index c9f3e17acb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_339.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_34.png b/TMessagesProj/src/emojis/apple/emoji/0_34.png deleted file mode 100644 index 7e7040660c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_340.png b/TMessagesProj/src/emojis/apple/emoji/0_340.png deleted file mode 100644 index 6a877a187d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_340.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_341.png b/TMessagesProj/src/emojis/apple/emoji/0_341.png deleted file mode 100644 index 350e741efd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_341.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_342.png b/TMessagesProj/src/emojis/apple/emoji/0_342.png deleted file mode 100644 index c555102807..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_342.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_343.png b/TMessagesProj/src/emojis/apple/emoji/0_343.png deleted file mode 100644 index e1dcd59572..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_343.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_344.png b/TMessagesProj/src/emojis/apple/emoji/0_344.png deleted file mode 100644 index ca365ebd9a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_344.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_345.png b/TMessagesProj/src/emojis/apple/emoji/0_345.png deleted file mode 100644 index 5cce87fa50..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_345.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_346.png b/TMessagesProj/src/emojis/apple/emoji/0_346.png deleted file mode 100644 index fd89a3b0e0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_346.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_347.png b/TMessagesProj/src/emojis/apple/emoji/0_347.png deleted file mode 100644 index 5e68f866a6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_347.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_348.png b/TMessagesProj/src/emojis/apple/emoji/0_348.png deleted file mode 100644 index ad261bf48d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_348.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_349.png b/TMessagesProj/src/emojis/apple/emoji/0_349.png deleted file mode 100644 index 5077baf341..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_349.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_35.png b/TMessagesProj/src/emojis/apple/emoji/0_35.png deleted file mode 100644 index 6891d13e36..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_350.png b/TMessagesProj/src/emojis/apple/emoji/0_350.png deleted file mode 100644 index d9958cada7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_350.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_351.png b/TMessagesProj/src/emojis/apple/emoji/0_351.png deleted file mode 100644 index 7e717f4b5b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_351.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_352.png b/TMessagesProj/src/emojis/apple/emoji/0_352.png deleted file mode 100644 index bafb8aec7f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_352.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_353.png b/TMessagesProj/src/emojis/apple/emoji/0_353.png deleted file mode 100644 index 156bffc6a1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_353.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_354.png b/TMessagesProj/src/emojis/apple/emoji/0_354.png deleted file mode 100644 index 907be0cfbb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_354.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_355.png b/TMessagesProj/src/emojis/apple/emoji/0_355.png deleted file mode 100644 index d03c72f80e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_355.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_356.png b/TMessagesProj/src/emojis/apple/emoji/0_356.png deleted file mode 100644 index bd54554fcb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_356.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_357.png b/TMessagesProj/src/emojis/apple/emoji/0_357.png deleted file mode 100644 index 8dae314e4f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_357.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_358.png b/TMessagesProj/src/emojis/apple/emoji/0_358.png deleted file mode 100644 index 57effe4211..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_358.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_359.png b/TMessagesProj/src/emojis/apple/emoji/0_359.png deleted file mode 100644 index c74a800552..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_359.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_36.png b/TMessagesProj/src/emojis/apple/emoji/0_36.png deleted file mode 100644 index 93af66f263..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_360.png b/TMessagesProj/src/emojis/apple/emoji/0_360.png deleted file mode 100644 index 499b733c16..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_360.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_361.png b/TMessagesProj/src/emojis/apple/emoji/0_361.png deleted file mode 100644 index 5bc37c9c28..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_361.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_362.png b/TMessagesProj/src/emojis/apple/emoji/0_362.png deleted file mode 100644 index 294ead3949..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_362.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_363.png b/TMessagesProj/src/emojis/apple/emoji/0_363.png deleted file mode 100644 index 02679b5377..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_363.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_364.png b/TMessagesProj/src/emojis/apple/emoji/0_364.png deleted file mode 100644 index b82551ffd1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_364.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_365.png b/TMessagesProj/src/emojis/apple/emoji/0_365.png deleted file mode 100644 index f861800124..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_365.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_366.png b/TMessagesProj/src/emojis/apple/emoji/0_366.png deleted file mode 100644 index 74af3651d0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_366.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_367.png b/TMessagesProj/src/emojis/apple/emoji/0_367.png deleted file mode 100644 index 5832dece8f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_367.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_368.png b/TMessagesProj/src/emojis/apple/emoji/0_368.png deleted file mode 100644 index 4512d8d7b9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_368.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_369.png b/TMessagesProj/src/emojis/apple/emoji/0_369.png deleted file mode 100644 index 9582f1f57a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_369.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_37.png b/TMessagesProj/src/emojis/apple/emoji/0_37.png deleted file mode 100644 index 3512a9a5f0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_370.png b/TMessagesProj/src/emojis/apple/emoji/0_370.png deleted file mode 100644 index c084e3da8c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_370.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_371.png b/TMessagesProj/src/emojis/apple/emoji/0_371.png deleted file mode 100644 index fe6fcdfb7d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_371.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_372.png b/TMessagesProj/src/emojis/apple/emoji/0_372.png deleted file mode 100644 index 51a8e350a6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_372.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_373.png b/TMessagesProj/src/emojis/apple/emoji/0_373.png deleted file mode 100644 index 1b5b5e809c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_373.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_374.png b/TMessagesProj/src/emojis/apple/emoji/0_374.png deleted file mode 100644 index 1dcc60dfb1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_374.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_375.png b/TMessagesProj/src/emojis/apple/emoji/0_375.png deleted file mode 100644 index 89af235703..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_375.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_376.png b/TMessagesProj/src/emojis/apple/emoji/0_376.png deleted file mode 100644 index 4192cf2e7c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_376.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_377.png b/TMessagesProj/src/emojis/apple/emoji/0_377.png deleted file mode 100644 index 2aecfda183..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_377.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_378.png b/TMessagesProj/src/emojis/apple/emoji/0_378.png deleted file mode 100644 index fff541983e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_378.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_379.png b/TMessagesProj/src/emojis/apple/emoji/0_379.png deleted file mode 100644 index a95c0f2166..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_379.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_38.png b/TMessagesProj/src/emojis/apple/emoji/0_38.png deleted file mode 100644 index 5194e232c0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_380.png b/TMessagesProj/src/emojis/apple/emoji/0_380.png deleted file mode 100644 index 0df9e502ea..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_380.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_381.png b/TMessagesProj/src/emojis/apple/emoji/0_381.png deleted file mode 100644 index 4dd1519d8a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_381.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_382.png b/TMessagesProj/src/emojis/apple/emoji/0_382.png deleted file mode 100644 index d747d7d578..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_382.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_383.png b/TMessagesProj/src/emojis/apple/emoji/0_383.png deleted file mode 100644 index 26361e9eaa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_383.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_384.png b/TMessagesProj/src/emojis/apple/emoji/0_384.png deleted file mode 100644 index 4e686108a9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_384.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_385.png b/TMessagesProj/src/emojis/apple/emoji/0_385.png deleted file mode 100644 index f470bdf292..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_385.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_386.png b/TMessagesProj/src/emojis/apple/emoji/0_386.png deleted file mode 100644 index 1473964f6a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_386.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_387.png b/TMessagesProj/src/emojis/apple/emoji/0_387.png deleted file mode 100644 index 919088f033..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_387.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_388.png b/TMessagesProj/src/emojis/apple/emoji/0_388.png deleted file mode 100644 index f7b5b7fc13..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_388.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_389.png b/TMessagesProj/src/emojis/apple/emoji/0_389.png deleted file mode 100644 index b7b55726e0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_389.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_39.png b/TMessagesProj/src/emojis/apple/emoji/0_39.png deleted file mode 100644 index 1ae53e2ad9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_390.png b/TMessagesProj/src/emojis/apple/emoji/0_390.png deleted file mode 100644 index 72c7948800..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_390.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_391.png b/TMessagesProj/src/emojis/apple/emoji/0_391.png deleted file mode 100644 index 05bdde3d7c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_391.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_392.png b/TMessagesProj/src/emojis/apple/emoji/0_392.png deleted file mode 100644 index 9d68f23dfd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_392.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_393.png b/TMessagesProj/src/emojis/apple/emoji/0_393.png deleted file mode 100644 index e4571ee884..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_393.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_394.png b/TMessagesProj/src/emojis/apple/emoji/0_394.png deleted file mode 100644 index 7827387fe4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_394.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_395.png b/TMessagesProj/src/emojis/apple/emoji/0_395.png deleted file mode 100644 index 76725ab82c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_395.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_396.png b/TMessagesProj/src/emojis/apple/emoji/0_396.png deleted file mode 100644 index 5b66a130ff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_396.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_397.png b/TMessagesProj/src/emojis/apple/emoji/0_397.png deleted file mode 100644 index afcb84d8db..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_397.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_398.png b/TMessagesProj/src/emojis/apple/emoji/0_398.png deleted file mode 100644 index a2dcf47ae0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_398.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_399.png b/TMessagesProj/src/emojis/apple/emoji/0_399.png deleted file mode 100644 index 3d285b99d3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_399.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_4.png b/TMessagesProj/src/emojis/apple/emoji/0_4.png deleted file mode 100644 index 995b06ecf1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_40.png b/TMessagesProj/src/emojis/apple/emoji/0_40.png deleted file mode 100644 index 96e077f5cb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_400.png b/TMessagesProj/src/emojis/apple/emoji/0_400.png deleted file mode 100644 index 0eae6f7da9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_400.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_401.png b/TMessagesProj/src/emojis/apple/emoji/0_401.png deleted file mode 100644 index b27f1001c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_401.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_402.png b/TMessagesProj/src/emojis/apple/emoji/0_402.png deleted file mode 100644 index 44d039e10c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_402.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_403.png b/TMessagesProj/src/emojis/apple/emoji/0_403.png deleted file mode 100644 index 9a56e86fef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_403.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_404.png b/TMessagesProj/src/emojis/apple/emoji/0_404.png deleted file mode 100644 index c672d17c8e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_404.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_405.png b/TMessagesProj/src/emojis/apple/emoji/0_405.png deleted file mode 100644 index a2d25d856a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_405.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_406.png b/TMessagesProj/src/emojis/apple/emoji/0_406.png deleted file mode 100644 index d913774868..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_406.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_407.png b/TMessagesProj/src/emojis/apple/emoji/0_407.png deleted file mode 100644 index 66de001c26..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_407.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_408.png b/TMessagesProj/src/emojis/apple/emoji/0_408.png deleted file mode 100644 index 758319646b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_408.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_409.png b/TMessagesProj/src/emojis/apple/emoji/0_409.png deleted file mode 100644 index 643926bbce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_409.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_41.png b/TMessagesProj/src/emojis/apple/emoji/0_41.png deleted file mode 100644 index ec3735fe10..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_410.png b/TMessagesProj/src/emojis/apple/emoji/0_410.png deleted file mode 100644 index 43f2f04478..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_410.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_411.png b/TMessagesProj/src/emojis/apple/emoji/0_411.png deleted file mode 100644 index fdca965cb9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_411.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_412.png b/TMessagesProj/src/emojis/apple/emoji/0_412.png deleted file mode 100644 index f30384b07f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_412.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_413.png b/TMessagesProj/src/emojis/apple/emoji/0_413.png deleted file mode 100644 index cfa1247f25..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_413.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_414.png b/TMessagesProj/src/emojis/apple/emoji/0_414.png deleted file mode 100644 index 364c2bfafe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_414.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_415.png b/TMessagesProj/src/emojis/apple/emoji/0_415.png deleted file mode 100644 index 68dbff3ef1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_415.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_416.png b/TMessagesProj/src/emojis/apple/emoji/0_416.png deleted file mode 100644 index 61b8247ff8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_416.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_417.png b/TMessagesProj/src/emojis/apple/emoji/0_417.png deleted file mode 100644 index d094eb1c57..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_417.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_418.png b/TMessagesProj/src/emojis/apple/emoji/0_418.png deleted file mode 100644 index 5779c1abf3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_418.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_419.png b/TMessagesProj/src/emojis/apple/emoji/0_419.png deleted file mode 100644 index 96424cfc38..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_419.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_42.png b/TMessagesProj/src/emojis/apple/emoji/0_42.png deleted file mode 100644 index fc107db775..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_420.png b/TMessagesProj/src/emojis/apple/emoji/0_420.png deleted file mode 100644 index d3f741745d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_420.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_421.png b/TMessagesProj/src/emojis/apple/emoji/0_421.png deleted file mode 100644 index b9f35ad1b5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_421.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_422.png b/TMessagesProj/src/emojis/apple/emoji/0_422.png deleted file mode 100644 index 307d46204b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_422.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_423.png b/TMessagesProj/src/emojis/apple/emoji/0_423.png deleted file mode 100644 index 859f231958..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_423.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_424.png b/TMessagesProj/src/emojis/apple/emoji/0_424.png deleted file mode 100644 index 5c30df8318..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_424.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_425.png b/TMessagesProj/src/emojis/apple/emoji/0_425.png deleted file mode 100644 index eab2d25d75..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_425.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_426.png b/TMessagesProj/src/emojis/apple/emoji/0_426.png deleted file mode 100644 index 414441ab1d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_426.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_427.png b/TMessagesProj/src/emojis/apple/emoji/0_427.png deleted file mode 100644 index 9b5ffec1b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_427.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_428.png b/TMessagesProj/src/emojis/apple/emoji/0_428.png deleted file mode 100644 index 5c05a81e47..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_428.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_429.png b/TMessagesProj/src/emojis/apple/emoji/0_429.png deleted file mode 100644 index 1e412ca88a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_429.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_43.png b/TMessagesProj/src/emojis/apple/emoji/0_43.png deleted file mode 100644 index aa618bd383..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_430.png b/TMessagesProj/src/emojis/apple/emoji/0_430.png deleted file mode 100644 index 0065552867..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_430.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_431.png b/TMessagesProj/src/emojis/apple/emoji/0_431.png deleted file mode 100644 index 1bd0147cf0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_431.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_432.png b/TMessagesProj/src/emojis/apple/emoji/0_432.png deleted file mode 100644 index 5eea315669..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_432.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_433.png b/TMessagesProj/src/emojis/apple/emoji/0_433.png deleted file mode 100644 index bf8287cf32..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_433.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_434.png b/TMessagesProj/src/emojis/apple/emoji/0_434.png deleted file mode 100644 index 3cfbd1a09e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_434.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_435.png b/TMessagesProj/src/emojis/apple/emoji/0_435.png deleted file mode 100644 index ad4d9cbb18..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_435.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_436.png b/TMessagesProj/src/emojis/apple/emoji/0_436.png deleted file mode 100644 index 1fcef74ae3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_436.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_437.png b/TMessagesProj/src/emojis/apple/emoji/0_437.png deleted file mode 100644 index be32290883..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_437.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_438.png b/TMessagesProj/src/emojis/apple/emoji/0_438.png deleted file mode 100644 index a4c2875ebc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_438.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_439.png b/TMessagesProj/src/emojis/apple/emoji/0_439.png deleted file mode 100644 index fa2ad532aa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_439.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_44.png b/TMessagesProj/src/emojis/apple/emoji/0_44.png deleted file mode 100644 index 84b8eac12b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_440.png b/TMessagesProj/src/emojis/apple/emoji/0_440.png deleted file mode 100644 index dd3da75e0f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_440.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_441.png b/TMessagesProj/src/emojis/apple/emoji/0_441.png deleted file mode 100644 index a7000f82c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_441.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_442.png b/TMessagesProj/src/emojis/apple/emoji/0_442.png deleted file mode 100644 index 93bb2384a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_442.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_443.png b/TMessagesProj/src/emojis/apple/emoji/0_443.png deleted file mode 100644 index df5e7d0784..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_443.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_444.png b/TMessagesProj/src/emojis/apple/emoji/0_444.png deleted file mode 100644 index 96faf4687f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_444.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_445.png b/TMessagesProj/src/emojis/apple/emoji/0_445.png deleted file mode 100644 index e816ff2f0f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_445.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_446.png b/TMessagesProj/src/emojis/apple/emoji/0_446.png deleted file mode 100644 index 4a6d75b787..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_446.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_447.png b/TMessagesProj/src/emojis/apple/emoji/0_447.png deleted file mode 100644 index 13ee655655..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_447.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_448.png b/TMessagesProj/src/emojis/apple/emoji/0_448.png deleted file mode 100644 index c40ab75f29..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_448.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_449.png b/TMessagesProj/src/emojis/apple/emoji/0_449.png deleted file mode 100644 index c56d2735b9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_449.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_45.png b/TMessagesProj/src/emojis/apple/emoji/0_45.png deleted file mode 100644 index c833101bec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_450.png b/TMessagesProj/src/emojis/apple/emoji/0_450.png deleted file mode 100644 index decc462804..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_450.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_451.png b/TMessagesProj/src/emojis/apple/emoji/0_451.png deleted file mode 100644 index 376817df77..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_451.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_452.png b/TMessagesProj/src/emojis/apple/emoji/0_452.png deleted file mode 100644 index 2c02d9215f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_452.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_453.png b/TMessagesProj/src/emojis/apple/emoji/0_453.png deleted file mode 100644 index 07dc1d8794..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_453.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_454.png b/TMessagesProj/src/emojis/apple/emoji/0_454.png deleted file mode 100644 index 75ffd54b3b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_454.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_455.png b/TMessagesProj/src/emojis/apple/emoji/0_455.png deleted file mode 100644 index e1216e8aa6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_455.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_456.png b/TMessagesProj/src/emojis/apple/emoji/0_456.png deleted file mode 100644 index d24f2804a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_456.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_457.png b/TMessagesProj/src/emojis/apple/emoji/0_457.png deleted file mode 100644 index 2705869bf5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_457.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_458.png b/TMessagesProj/src/emojis/apple/emoji/0_458.png deleted file mode 100644 index a9e24505cd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_458.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_459.png b/TMessagesProj/src/emojis/apple/emoji/0_459.png deleted file mode 100644 index fd5f65243b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_459.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_46.png b/TMessagesProj/src/emojis/apple/emoji/0_46.png deleted file mode 100644 index 2bf1c95df2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_460.png b/TMessagesProj/src/emojis/apple/emoji/0_460.png deleted file mode 100644 index 7c989dac94..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_460.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_461.png b/TMessagesProj/src/emojis/apple/emoji/0_461.png deleted file mode 100644 index ddbac822a6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_461.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_462.png b/TMessagesProj/src/emojis/apple/emoji/0_462.png deleted file mode 100644 index 952d54a9a9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_462.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_463.png b/TMessagesProj/src/emojis/apple/emoji/0_463.png deleted file mode 100644 index 9edfbb7fca..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_463.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_464.png b/TMessagesProj/src/emojis/apple/emoji/0_464.png deleted file mode 100644 index ac91c23fd1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_464.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_465.png b/TMessagesProj/src/emojis/apple/emoji/0_465.png deleted file mode 100644 index aa4e3ec204..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_465.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_466.png b/TMessagesProj/src/emojis/apple/emoji/0_466.png deleted file mode 100644 index a193ff0d7d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_466.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_467.png b/TMessagesProj/src/emojis/apple/emoji/0_467.png deleted file mode 100644 index faf746782f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_467.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_468.png b/TMessagesProj/src/emojis/apple/emoji/0_468.png deleted file mode 100644 index 27a588385e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_468.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_469.png b/TMessagesProj/src/emojis/apple/emoji/0_469.png deleted file mode 100644 index d512be9c32..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_469.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_47.png b/TMessagesProj/src/emojis/apple/emoji/0_47.png deleted file mode 100644 index b9aff6a76a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_470.png b/TMessagesProj/src/emojis/apple/emoji/0_470.png deleted file mode 100644 index d90a9ea177..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_470.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_471.png b/TMessagesProj/src/emojis/apple/emoji/0_471.png deleted file mode 100644 index 206ca1e34b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_471.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_472.png b/TMessagesProj/src/emojis/apple/emoji/0_472.png deleted file mode 100644 index 972e4c477c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_472.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_473.png b/TMessagesProj/src/emojis/apple/emoji/0_473.png deleted file mode 100644 index b5f571c9a2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_473.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_474.png b/TMessagesProj/src/emojis/apple/emoji/0_474.png deleted file mode 100644 index 1d458525c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_474.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_475.png b/TMessagesProj/src/emojis/apple/emoji/0_475.png deleted file mode 100644 index 6b343ff689..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_475.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_476.png b/TMessagesProj/src/emojis/apple/emoji/0_476.png deleted file mode 100644 index d23b49396c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_476.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_477.png b/TMessagesProj/src/emojis/apple/emoji/0_477.png deleted file mode 100644 index cb1fe3fe68..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_477.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_478.png b/TMessagesProj/src/emojis/apple/emoji/0_478.png deleted file mode 100644 index c5fbfcf2fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_478.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_479.png b/TMessagesProj/src/emojis/apple/emoji/0_479.png deleted file mode 100644 index 501d98a40a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_479.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_48.png b/TMessagesProj/src/emojis/apple/emoji/0_48.png deleted file mode 100644 index fa12cc36ab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_480.png b/TMessagesProj/src/emojis/apple/emoji/0_480.png deleted file mode 100644 index a2e41af4b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_480.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_481.png b/TMessagesProj/src/emojis/apple/emoji/0_481.png deleted file mode 100644 index 99f5a51b2a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_481.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_482.png b/TMessagesProj/src/emojis/apple/emoji/0_482.png deleted file mode 100644 index c065079736..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_482.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_483.png b/TMessagesProj/src/emojis/apple/emoji/0_483.png deleted file mode 100644 index 88237f12a1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_483.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_484.png b/TMessagesProj/src/emojis/apple/emoji/0_484.png deleted file mode 100644 index ca2ac660db..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_484.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_485.png b/TMessagesProj/src/emojis/apple/emoji/0_485.png deleted file mode 100644 index ac3d6dc78b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_485.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_486.png b/TMessagesProj/src/emojis/apple/emoji/0_486.png deleted file mode 100644 index 2fe025ec9f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_486.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_487.png b/TMessagesProj/src/emojis/apple/emoji/0_487.png deleted file mode 100644 index 2d709f1937..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_487.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_488.png b/TMessagesProj/src/emojis/apple/emoji/0_488.png deleted file mode 100644 index 5ca666c4c1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_488.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_489.png b/TMessagesProj/src/emojis/apple/emoji/0_489.png deleted file mode 100644 index 0a15c59f4a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_489.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_49.png b/TMessagesProj/src/emojis/apple/emoji/0_49.png deleted file mode 100644 index 46d2724233..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_490.png b/TMessagesProj/src/emojis/apple/emoji/0_490.png deleted file mode 100644 index b21dce041b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_490.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_491.png b/TMessagesProj/src/emojis/apple/emoji/0_491.png deleted file mode 100644 index 5d8ad49647..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_491.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_492.png b/TMessagesProj/src/emojis/apple/emoji/0_492.png deleted file mode 100644 index e121e11c28..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_492.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_493.png b/TMessagesProj/src/emojis/apple/emoji/0_493.png deleted file mode 100644 index c69c80ded6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_493.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_494.png b/TMessagesProj/src/emojis/apple/emoji/0_494.png deleted file mode 100644 index 33621d3230..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_494.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_495.png b/TMessagesProj/src/emojis/apple/emoji/0_495.png deleted file mode 100644 index 264f4fcd1c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_495.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_496.png b/TMessagesProj/src/emojis/apple/emoji/0_496.png deleted file mode 100644 index 7030b39041..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_496.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_497.png b/TMessagesProj/src/emojis/apple/emoji/0_497.png deleted file mode 100644 index ac93720348..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_497.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_498.png b/TMessagesProj/src/emojis/apple/emoji/0_498.png deleted file mode 100644 index 6b3fda0dc2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_498.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_499.png b/TMessagesProj/src/emojis/apple/emoji/0_499.png deleted file mode 100644 index 412cf99887..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_499.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_5.png b/TMessagesProj/src/emojis/apple/emoji/0_5.png deleted file mode 100644 index 84b75e67a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_50.png b/TMessagesProj/src/emojis/apple/emoji/0_50.png deleted file mode 100644 index 339729f96d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_500.png b/TMessagesProj/src/emojis/apple/emoji/0_500.png deleted file mode 100644 index 0e26612418..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_500.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_501.png b/TMessagesProj/src/emojis/apple/emoji/0_501.png deleted file mode 100644 index 8580c4b297..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_501.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_502.png b/TMessagesProj/src/emojis/apple/emoji/0_502.png deleted file mode 100644 index 7e5872d602..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_502.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_503.png b/TMessagesProj/src/emojis/apple/emoji/0_503.png deleted file mode 100644 index fd3f954786..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_503.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_504.png b/TMessagesProj/src/emojis/apple/emoji/0_504.png deleted file mode 100644 index a67a593def..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_504.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_505.png b/TMessagesProj/src/emojis/apple/emoji/0_505.png deleted file mode 100644 index c9f093c1ec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_505.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_506.png b/TMessagesProj/src/emojis/apple/emoji/0_506.png deleted file mode 100644 index 0db7d5a48a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_506.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_507.png b/TMessagesProj/src/emojis/apple/emoji/0_507.png deleted file mode 100644 index 30824c15c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_507.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_508.png b/TMessagesProj/src/emojis/apple/emoji/0_508.png deleted file mode 100644 index caca8c5efc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_508.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_509.png b/TMessagesProj/src/emojis/apple/emoji/0_509.png deleted file mode 100644 index ecc88bfb3a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_509.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_51.png b/TMessagesProj/src/emojis/apple/emoji/0_51.png deleted file mode 100644 index 9eeeb6d813..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_510.png b/TMessagesProj/src/emojis/apple/emoji/0_510.png deleted file mode 100644 index fc437fbd49..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_510.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_511.png b/TMessagesProj/src/emojis/apple/emoji/0_511.png deleted file mode 100644 index 62b173ddfd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_511.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_512.png b/TMessagesProj/src/emojis/apple/emoji/0_512.png deleted file mode 100644 index 749c358bef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_512.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_513.png b/TMessagesProj/src/emojis/apple/emoji/0_513.png deleted file mode 100644 index 4bd5336650..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_513.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_514.png b/TMessagesProj/src/emojis/apple/emoji/0_514.png deleted file mode 100644 index 1db025c9cc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_514.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_515.png b/TMessagesProj/src/emojis/apple/emoji/0_515.png deleted file mode 100644 index 6d8071dd01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_515.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_516.png b/TMessagesProj/src/emojis/apple/emoji/0_516.png deleted file mode 100644 index 29f346e198..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_516.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_517.png b/TMessagesProj/src/emojis/apple/emoji/0_517.png deleted file mode 100644 index b64285c4a4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_517.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_518.png b/TMessagesProj/src/emojis/apple/emoji/0_518.png deleted file mode 100644 index f34834ee1b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_518.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_519.png b/TMessagesProj/src/emojis/apple/emoji/0_519.png deleted file mode 100644 index 7d8ef95b3f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_519.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_52.png b/TMessagesProj/src/emojis/apple/emoji/0_52.png deleted file mode 100644 index 35ef311126..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_520.png b/TMessagesProj/src/emojis/apple/emoji/0_520.png deleted file mode 100644 index 660f865cd2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_520.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_521.png b/TMessagesProj/src/emojis/apple/emoji/0_521.png deleted file mode 100644 index 5991d737d1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_521.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_522.png b/TMessagesProj/src/emojis/apple/emoji/0_522.png deleted file mode 100644 index 11661a6443..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_522.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_523.png b/TMessagesProj/src/emojis/apple/emoji/0_523.png deleted file mode 100644 index b82d00c474..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_523.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_524.png b/TMessagesProj/src/emojis/apple/emoji/0_524.png deleted file mode 100644 index 2b080d2f21..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_524.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_525.png b/TMessagesProj/src/emojis/apple/emoji/0_525.png deleted file mode 100644 index 531b4a5d3c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_525.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_526.png b/TMessagesProj/src/emojis/apple/emoji/0_526.png deleted file mode 100644 index 3d28a361c3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_526.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_527.png b/TMessagesProj/src/emojis/apple/emoji/0_527.png deleted file mode 100644 index 0c2ed30592..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_527.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_528.png b/TMessagesProj/src/emojis/apple/emoji/0_528.png deleted file mode 100644 index b4bc1b6040..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_528.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_529.png b/TMessagesProj/src/emojis/apple/emoji/0_529.png deleted file mode 100644 index 4e99b59a4a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_529.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_53.png b/TMessagesProj/src/emojis/apple/emoji/0_53.png deleted file mode 100644 index 0a2557fc4f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_530.png b/TMessagesProj/src/emojis/apple/emoji/0_530.png deleted file mode 100644 index 486dc162e2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_530.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_531.png b/TMessagesProj/src/emojis/apple/emoji/0_531.png deleted file mode 100644 index 0ebb421318..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_531.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_532.png b/TMessagesProj/src/emojis/apple/emoji/0_532.png deleted file mode 100644 index f66023779a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_532.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_533.png b/TMessagesProj/src/emojis/apple/emoji/0_533.png deleted file mode 100644 index 5fe26b08ee..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_533.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_534.png b/TMessagesProj/src/emojis/apple/emoji/0_534.png deleted file mode 100644 index 364d7c2de7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_534.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_535.png b/TMessagesProj/src/emojis/apple/emoji/0_535.png deleted file mode 100644 index dac50b9f51..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_535.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_536.png b/TMessagesProj/src/emojis/apple/emoji/0_536.png deleted file mode 100644 index d35806f041..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_536.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_537.png b/TMessagesProj/src/emojis/apple/emoji/0_537.png deleted file mode 100644 index 7ddf04f2a7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_537.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_538.png b/TMessagesProj/src/emojis/apple/emoji/0_538.png deleted file mode 100644 index 72e1f10cc5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_538.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_539.png b/TMessagesProj/src/emojis/apple/emoji/0_539.png deleted file mode 100644 index 7906ffd761..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_539.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_54.png b/TMessagesProj/src/emojis/apple/emoji/0_54.png deleted file mode 100644 index f126b1eeb1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_540.png b/TMessagesProj/src/emojis/apple/emoji/0_540.png deleted file mode 100644 index e8720d9623..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_540.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_541.png b/TMessagesProj/src/emojis/apple/emoji/0_541.png deleted file mode 100644 index 5b855ea48e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_541.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_542.png b/TMessagesProj/src/emojis/apple/emoji/0_542.png deleted file mode 100644 index e452498286..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_542.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_543.png b/TMessagesProj/src/emojis/apple/emoji/0_543.png deleted file mode 100644 index 59712a3b07..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_543.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_544.png b/TMessagesProj/src/emojis/apple/emoji/0_544.png deleted file mode 100644 index 5198fa5fc4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_544.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_545.png b/TMessagesProj/src/emojis/apple/emoji/0_545.png deleted file mode 100644 index 5c8aefa370..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_545.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_546.png b/TMessagesProj/src/emojis/apple/emoji/0_546.png deleted file mode 100644 index 3910264c6b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_546.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_547.png b/TMessagesProj/src/emojis/apple/emoji/0_547.png deleted file mode 100644 index 4e735be5fe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_547.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_548.png b/TMessagesProj/src/emojis/apple/emoji/0_548.png deleted file mode 100644 index f2a0e31780..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_548.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_549.png b/TMessagesProj/src/emojis/apple/emoji/0_549.png deleted file mode 100644 index a1a318ed3f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_549.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_55.png b/TMessagesProj/src/emojis/apple/emoji/0_55.png deleted file mode 100644 index 6cc1924d08..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_550.png b/TMessagesProj/src/emojis/apple/emoji/0_550.png deleted file mode 100644 index f07daef7c2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_550.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_551.png b/TMessagesProj/src/emojis/apple/emoji/0_551.png deleted file mode 100644 index f0b9037db1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_551.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_552.png b/TMessagesProj/src/emojis/apple/emoji/0_552.png deleted file mode 100644 index c583ab4699..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_552.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_553.png b/TMessagesProj/src/emojis/apple/emoji/0_553.png deleted file mode 100644 index 5a22a2e41d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_553.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_554.png b/TMessagesProj/src/emojis/apple/emoji/0_554.png deleted file mode 100644 index f718ac9efc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_554.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_555.png b/TMessagesProj/src/emojis/apple/emoji/0_555.png deleted file mode 100644 index 64235f0f45..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_555.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_556.png b/TMessagesProj/src/emojis/apple/emoji/0_556.png deleted file mode 100644 index 3ff656c378..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_556.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_557.png b/TMessagesProj/src/emojis/apple/emoji/0_557.png deleted file mode 100644 index d9c8fbf75f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_557.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_558.png b/TMessagesProj/src/emojis/apple/emoji/0_558.png deleted file mode 100644 index e5ab3db1d2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_558.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_559.png b/TMessagesProj/src/emojis/apple/emoji/0_559.png deleted file mode 100644 index 1d36458199..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_559.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_56.png b/TMessagesProj/src/emojis/apple/emoji/0_56.png deleted file mode 100644 index 231f11c8ef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_560.png b/TMessagesProj/src/emojis/apple/emoji/0_560.png deleted file mode 100644 index 3188e807fa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_560.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_561.png b/TMessagesProj/src/emojis/apple/emoji/0_561.png deleted file mode 100644 index aa91918fea..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_561.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_562.png b/TMessagesProj/src/emojis/apple/emoji/0_562.png deleted file mode 100644 index 434cd1115d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_562.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_563.png b/TMessagesProj/src/emojis/apple/emoji/0_563.png deleted file mode 100644 index c93aadbaf6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_563.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_564.png b/TMessagesProj/src/emojis/apple/emoji/0_564.png deleted file mode 100644 index 8763b39058..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_564.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_565.png b/TMessagesProj/src/emojis/apple/emoji/0_565.png deleted file mode 100644 index 38574d97d0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_565.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_566.png b/TMessagesProj/src/emojis/apple/emoji/0_566.png deleted file mode 100644 index 55206621e1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_566.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_567.png b/TMessagesProj/src/emojis/apple/emoji/0_567.png deleted file mode 100644 index 8a4ae2f239..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_567.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_568.png b/TMessagesProj/src/emojis/apple/emoji/0_568.png deleted file mode 100644 index 472794cb34..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_568.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_569.png b/TMessagesProj/src/emojis/apple/emoji/0_569.png deleted file mode 100644 index 4c975d0fb3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_569.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_57.png b/TMessagesProj/src/emojis/apple/emoji/0_57.png deleted file mode 100644 index fec4bddcec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_570.png b/TMessagesProj/src/emojis/apple/emoji/0_570.png deleted file mode 100644 index 1261244d3a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_570.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_571.png b/TMessagesProj/src/emojis/apple/emoji/0_571.png deleted file mode 100644 index 14283dc9b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_571.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_572.png b/TMessagesProj/src/emojis/apple/emoji/0_572.png deleted file mode 100644 index c95fc9359e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_572.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_573.png b/TMessagesProj/src/emojis/apple/emoji/0_573.png deleted file mode 100644 index ee533d5b96..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_573.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_574.png b/TMessagesProj/src/emojis/apple/emoji/0_574.png deleted file mode 100644 index fdb63860a7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_574.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_575.png b/TMessagesProj/src/emojis/apple/emoji/0_575.png deleted file mode 100644 index 874a2048f4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_575.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_576.png b/TMessagesProj/src/emojis/apple/emoji/0_576.png deleted file mode 100644 index 4cefa3180b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_576.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_577.png b/TMessagesProj/src/emojis/apple/emoji/0_577.png deleted file mode 100644 index 208e82d821..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_577.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_578.png b/TMessagesProj/src/emojis/apple/emoji/0_578.png deleted file mode 100644 index d230e42706..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_578.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_579.png b/TMessagesProj/src/emojis/apple/emoji/0_579.png deleted file mode 100644 index 3518beeaf1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_579.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_58.png b/TMessagesProj/src/emojis/apple/emoji/0_58.png deleted file mode 100644 index 051bace597..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_580.png b/TMessagesProj/src/emojis/apple/emoji/0_580.png deleted file mode 100644 index e4c26135b5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_580.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_581.png b/TMessagesProj/src/emojis/apple/emoji/0_581.png deleted file mode 100644 index fc708464bf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_581.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_582.png b/TMessagesProj/src/emojis/apple/emoji/0_582.png deleted file mode 100644 index a7b6726d54..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_582.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_583.png b/TMessagesProj/src/emojis/apple/emoji/0_583.png deleted file mode 100644 index 462b4d6f5b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_583.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_584.png b/TMessagesProj/src/emojis/apple/emoji/0_584.png deleted file mode 100644 index 8b156939f3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_584.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_585.png b/TMessagesProj/src/emojis/apple/emoji/0_585.png deleted file mode 100644 index 4dc0c66db7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_585.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_586.png b/TMessagesProj/src/emojis/apple/emoji/0_586.png deleted file mode 100644 index 5316e571bc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_586.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_587.png b/TMessagesProj/src/emojis/apple/emoji/0_587.png deleted file mode 100644 index 25e16452a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_587.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_588.png b/TMessagesProj/src/emojis/apple/emoji/0_588.png deleted file mode 100644 index 809000b2cf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_588.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_589.png b/TMessagesProj/src/emojis/apple/emoji/0_589.png deleted file mode 100644 index 5985f7d6c3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_589.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_59.png b/TMessagesProj/src/emojis/apple/emoji/0_59.png deleted file mode 100644 index 5af551ebb8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_590.png b/TMessagesProj/src/emojis/apple/emoji/0_590.png deleted file mode 100644 index dfe7cd6fd9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_590.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_591.png b/TMessagesProj/src/emojis/apple/emoji/0_591.png deleted file mode 100644 index 7861649819..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_591.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_592.png b/TMessagesProj/src/emojis/apple/emoji/0_592.png deleted file mode 100644 index c144e58bb3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_592.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_593.png b/TMessagesProj/src/emojis/apple/emoji/0_593.png deleted file mode 100644 index 6d5870aaae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_593.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_594.png b/TMessagesProj/src/emojis/apple/emoji/0_594.png deleted file mode 100644 index 1b455637a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_594.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_595.png b/TMessagesProj/src/emojis/apple/emoji/0_595.png deleted file mode 100644 index 7730a84c8d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_595.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_596.png b/TMessagesProj/src/emojis/apple/emoji/0_596.png deleted file mode 100644 index 979f526bbc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_596.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_597.png b/TMessagesProj/src/emojis/apple/emoji/0_597.png deleted file mode 100644 index de6b586688..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_597.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_598.png b/TMessagesProj/src/emojis/apple/emoji/0_598.png deleted file mode 100644 index 607d6c2ec2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_598.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_599.png b/TMessagesProj/src/emojis/apple/emoji/0_599.png deleted file mode 100644 index 9ea998ee22..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_599.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_6.png b/TMessagesProj/src/emojis/apple/emoji/0_6.png deleted file mode 100644 index 04ed80c9ef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_60.png b/TMessagesProj/src/emojis/apple/emoji/0_60.png deleted file mode 100644 index 88b0077795..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_600.png b/TMessagesProj/src/emojis/apple/emoji/0_600.png deleted file mode 100644 index 682fef47b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_600.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_601.png b/TMessagesProj/src/emojis/apple/emoji/0_601.png deleted file mode 100644 index cea2db8b7a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_601.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_602.png b/TMessagesProj/src/emojis/apple/emoji/0_602.png deleted file mode 100644 index 7fba1c73b5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_602.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_603.png b/TMessagesProj/src/emojis/apple/emoji/0_603.png deleted file mode 100644 index d1903ea681..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_603.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_604.png b/TMessagesProj/src/emojis/apple/emoji/0_604.png deleted file mode 100644 index 3732b10894..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_604.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_605.png b/TMessagesProj/src/emojis/apple/emoji/0_605.png deleted file mode 100644 index 03cf50936d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_605.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_606.png b/TMessagesProj/src/emojis/apple/emoji/0_606.png deleted file mode 100644 index 3aacbfee56..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_606.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_607.png b/TMessagesProj/src/emojis/apple/emoji/0_607.png deleted file mode 100644 index 3cf91758b4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_607.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_608.png b/TMessagesProj/src/emojis/apple/emoji/0_608.png deleted file mode 100644 index 4dce60b838..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_608.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_609.png b/TMessagesProj/src/emojis/apple/emoji/0_609.png deleted file mode 100644 index 7d7a964986..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_609.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_61.png b/TMessagesProj/src/emojis/apple/emoji/0_61.png deleted file mode 100644 index 1312c5204b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_610.png b/TMessagesProj/src/emojis/apple/emoji/0_610.png deleted file mode 100644 index b3f487d5c3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_610.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_611.png b/TMessagesProj/src/emojis/apple/emoji/0_611.png deleted file mode 100644 index 84c09317ac..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_611.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_612.png b/TMessagesProj/src/emojis/apple/emoji/0_612.png deleted file mode 100644 index 40c2285f5c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_612.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_613.png b/TMessagesProj/src/emojis/apple/emoji/0_613.png deleted file mode 100644 index 059010fa8a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_613.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_614.png b/TMessagesProj/src/emojis/apple/emoji/0_614.png deleted file mode 100644 index f16bcd5fef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_614.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_615.png b/TMessagesProj/src/emojis/apple/emoji/0_615.png deleted file mode 100644 index aeda4519d4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_615.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_616.png b/TMessagesProj/src/emojis/apple/emoji/0_616.png deleted file mode 100644 index 10087c260b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_616.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_617.png b/TMessagesProj/src/emojis/apple/emoji/0_617.png deleted file mode 100644 index ea4d4dd929..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_617.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_618.png b/TMessagesProj/src/emojis/apple/emoji/0_618.png deleted file mode 100644 index d9947c898d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_618.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_619.png b/TMessagesProj/src/emojis/apple/emoji/0_619.png deleted file mode 100644 index 43426de5c5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_619.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_62.png b/TMessagesProj/src/emojis/apple/emoji/0_62.png deleted file mode 100644 index a59eb7d739..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_620.png b/TMessagesProj/src/emojis/apple/emoji/0_620.png deleted file mode 100644 index 168e9589fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_620.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_621.png b/TMessagesProj/src/emojis/apple/emoji/0_621.png deleted file mode 100644 index 478b3b5144..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_621.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_622.png b/TMessagesProj/src/emojis/apple/emoji/0_622.png deleted file mode 100644 index acb57beb9c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_622.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_623.png b/TMessagesProj/src/emojis/apple/emoji/0_623.png deleted file mode 100644 index 501c2ddd8b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_623.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_624.png b/TMessagesProj/src/emojis/apple/emoji/0_624.png deleted file mode 100644 index c1cbae7d8b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_624.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_625.png b/TMessagesProj/src/emojis/apple/emoji/0_625.png deleted file mode 100644 index 4e430ced12..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_625.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_626.png b/TMessagesProj/src/emojis/apple/emoji/0_626.png deleted file mode 100644 index 7b2c9c3f23..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_626.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_627.png b/TMessagesProj/src/emojis/apple/emoji/0_627.png deleted file mode 100644 index e74ac6a957..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_627.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_628.png b/TMessagesProj/src/emojis/apple/emoji/0_628.png deleted file mode 100644 index 2956d277ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_628.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_629.png b/TMessagesProj/src/emojis/apple/emoji/0_629.png deleted file mode 100644 index a8cd0c2252..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_629.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_63.png b/TMessagesProj/src/emojis/apple/emoji/0_63.png deleted file mode 100644 index c96a39eb94..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_630.png b/TMessagesProj/src/emojis/apple/emoji/0_630.png deleted file mode 100644 index 28dee271dd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_630.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_631.png b/TMessagesProj/src/emojis/apple/emoji/0_631.png deleted file mode 100644 index d9c9842df0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_631.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_632.png b/TMessagesProj/src/emojis/apple/emoji/0_632.png deleted file mode 100644 index 5d0a74d3ef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_632.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_633.png b/TMessagesProj/src/emojis/apple/emoji/0_633.png deleted file mode 100644 index c92a065f27..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_633.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_634.png b/TMessagesProj/src/emojis/apple/emoji/0_634.png deleted file mode 100644 index 50420329ca..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_634.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_635.png b/TMessagesProj/src/emojis/apple/emoji/0_635.png deleted file mode 100644 index 05c5f7f9be..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_635.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_636.png b/TMessagesProj/src/emojis/apple/emoji/0_636.png deleted file mode 100644 index d0f5efe955..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_636.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_637.png b/TMessagesProj/src/emojis/apple/emoji/0_637.png deleted file mode 100644 index 156cb26786..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_637.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_638.png b/TMessagesProj/src/emojis/apple/emoji/0_638.png deleted file mode 100644 index 00bd959fa5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_638.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_639.png b/TMessagesProj/src/emojis/apple/emoji/0_639.png deleted file mode 100644 index 46bd0f76a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_639.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_64.png b/TMessagesProj/src/emojis/apple/emoji/0_64.png deleted file mode 100644 index c30a9053ce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_640.png b/TMessagesProj/src/emojis/apple/emoji/0_640.png deleted file mode 100644 index 49a683d91f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_640.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_641.png b/TMessagesProj/src/emojis/apple/emoji/0_641.png deleted file mode 100644 index 661fd45429..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_641.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_642.png b/TMessagesProj/src/emojis/apple/emoji/0_642.png deleted file mode 100644 index b882448456..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_642.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_643.png b/TMessagesProj/src/emojis/apple/emoji/0_643.png deleted file mode 100644 index fcea72f415..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_643.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_644.png b/TMessagesProj/src/emojis/apple/emoji/0_644.png deleted file mode 100644 index 70e7195324..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_644.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_645.png b/TMessagesProj/src/emojis/apple/emoji/0_645.png deleted file mode 100644 index bb1f98971b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_645.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_646.png b/TMessagesProj/src/emojis/apple/emoji/0_646.png deleted file mode 100644 index 403e6d9bb6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_646.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_647.png b/TMessagesProj/src/emojis/apple/emoji/0_647.png deleted file mode 100644 index e42940d04c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_647.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_648.png b/TMessagesProj/src/emojis/apple/emoji/0_648.png deleted file mode 100644 index e5bdff17db..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_648.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_649.png b/TMessagesProj/src/emojis/apple/emoji/0_649.png deleted file mode 100644 index 9660ffde80..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_649.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_65.png b/TMessagesProj/src/emojis/apple/emoji/0_65.png deleted file mode 100644 index 2b3112e3e5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_650.png b/TMessagesProj/src/emojis/apple/emoji/0_650.png deleted file mode 100644 index 15d4a7a909..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_650.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_651.png b/TMessagesProj/src/emojis/apple/emoji/0_651.png deleted file mode 100644 index 6cd0822913..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_651.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_652.png b/TMessagesProj/src/emojis/apple/emoji/0_652.png deleted file mode 100644 index b2967cbbf0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_652.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_653.png b/TMessagesProj/src/emojis/apple/emoji/0_653.png deleted file mode 100644 index 2149b987c8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_653.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_654.png b/TMessagesProj/src/emojis/apple/emoji/0_654.png deleted file mode 100644 index a639599cc9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_654.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_655.png b/TMessagesProj/src/emojis/apple/emoji/0_655.png deleted file mode 100644 index fb85f99726..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_655.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_656.png b/TMessagesProj/src/emojis/apple/emoji/0_656.png deleted file mode 100644 index b51f841c8c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_656.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_657.png b/TMessagesProj/src/emojis/apple/emoji/0_657.png deleted file mode 100644 index d54ddb683d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_657.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_658.png b/TMessagesProj/src/emojis/apple/emoji/0_658.png deleted file mode 100644 index e6aabdfcd6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_658.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_659.png b/TMessagesProj/src/emojis/apple/emoji/0_659.png deleted file mode 100644 index 69897d6833..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_659.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_66.png b/TMessagesProj/src/emojis/apple/emoji/0_66.png deleted file mode 100644 index b5640ab2c8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_660.png b/TMessagesProj/src/emojis/apple/emoji/0_660.png deleted file mode 100644 index afcc1fe7e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_660.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_661.png b/TMessagesProj/src/emojis/apple/emoji/0_661.png deleted file mode 100644 index 01304f0952..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_661.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_662.png b/TMessagesProj/src/emojis/apple/emoji/0_662.png deleted file mode 100644 index d77caba6fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_662.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_663.png b/TMessagesProj/src/emojis/apple/emoji/0_663.png deleted file mode 100644 index c37333be82..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_663.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_664.png b/TMessagesProj/src/emojis/apple/emoji/0_664.png deleted file mode 100644 index c7175548b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_664.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_665.png b/TMessagesProj/src/emojis/apple/emoji/0_665.png deleted file mode 100644 index 488ec5d6c1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_665.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_666.png b/TMessagesProj/src/emojis/apple/emoji/0_666.png deleted file mode 100644 index 713a2774a7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_666.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_667.png b/TMessagesProj/src/emojis/apple/emoji/0_667.png deleted file mode 100644 index 2d1af04043..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_667.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_668.png b/TMessagesProj/src/emojis/apple/emoji/0_668.png deleted file mode 100644 index 198597be5e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_668.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_669.png b/TMessagesProj/src/emojis/apple/emoji/0_669.png deleted file mode 100644 index 4994d4f243..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_669.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_67.png b/TMessagesProj/src/emojis/apple/emoji/0_67.png deleted file mode 100644 index da9bee198a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_670.png b/TMessagesProj/src/emojis/apple/emoji/0_670.png deleted file mode 100644 index 2a43285643..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_670.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_671.png b/TMessagesProj/src/emojis/apple/emoji/0_671.png deleted file mode 100644 index 03b1cceba5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_671.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_672.png b/TMessagesProj/src/emojis/apple/emoji/0_672.png deleted file mode 100644 index 5d810de5d5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_672.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_673.png b/TMessagesProj/src/emojis/apple/emoji/0_673.png deleted file mode 100644 index 4e70e4a5de..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_673.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_674.png b/TMessagesProj/src/emojis/apple/emoji/0_674.png deleted file mode 100644 index 24ca6f7bc3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_674.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_675.png b/TMessagesProj/src/emojis/apple/emoji/0_675.png deleted file mode 100644 index 2c8259de4a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_675.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_676.png b/TMessagesProj/src/emojis/apple/emoji/0_676.png deleted file mode 100644 index 932d68ad07..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_676.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_677.png b/TMessagesProj/src/emojis/apple/emoji/0_677.png deleted file mode 100644 index 5ebf4663a4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_677.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_678.png b/TMessagesProj/src/emojis/apple/emoji/0_678.png deleted file mode 100644 index cb00083368..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_678.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_679.png b/TMessagesProj/src/emojis/apple/emoji/0_679.png deleted file mode 100644 index 19d66f7e40..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_679.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_68.png b/TMessagesProj/src/emojis/apple/emoji/0_68.png deleted file mode 100644 index cfcc4d88cf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_680.png b/TMessagesProj/src/emojis/apple/emoji/0_680.png deleted file mode 100644 index 5471146a19..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_680.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_681.png b/TMessagesProj/src/emojis/apple/emoji/0_681.png deleted file mode 100644 index c7f4c430b0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_681.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_682.png b/TMessagesProj/src/emojis/apple/emoji/0_682.png deleted file mode 100644 index a6bb5e24f6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_682.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_683.png b/TMessagesProj/src/emojis/apple/emoji/0_683.png deleted file mode 100644 index d552c37a01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_683.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_684.png b/TMessagesProj/src/emojis/apple/emoji/0_684.png deleted file mode 100644 index 1e1a22043f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_684.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_685.png b/TMessagesProj/src/emojis/apple/emoji/0_685.png deleted file mode 100644 index 576a70b13d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_685.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_686.png b/TMessagesProj/src/emojis/apple/emoji/0_686.png deleted file mode 100644 index 12c050728e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_686.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_687.png b/TMessagesProj/src/emojis/apple/emoji/0_687.png deleted file mode 100644 index f3b90ff4b7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_687.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_688.png b/TMessagesProj/src/emojis/apple/emoji/0_688.png deleted file mode 100644 index 94fff3c604..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_688.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_689.png b/TMessagesProj/src/emojis/apple/emoji/0_689.png deleted file mode 100644 index ebcac48274..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_689.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_69.png b/TMessagesProj/src/emojis/apple/emoji/0_69.png deleted file mode 100644 index 6532702d46..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_690.png b/TMessagesProj/src/emojis/apple/emoji/0_690.png deleted file mode 100644 index d07a786234..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_690.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_691.png b/TMessagesProj/src/emojis/apple/emoji/0_691.png deleted file mode 100644 index 09f2b68886..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_691.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_692.png b/TMessagesProj/src/emojis/apple/emoji/0_692.png deleted file mode 100644 index a644c6ebd2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_692.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_693.png b/TMessagesProj/src/emojis/apple/emoji/0_693.png deleted file mode 100644 index 4b59d8d78d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_693.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_694.png b/TMessagesProj/src/emojis/apple/emoji/0_694.png deleted file mode 100644 index 5734d8cb74..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_694.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_695.png b/TMessagesProj/src/emojis/apple/emoji/0_695.png deleted file mode 100644 index 43f1c01b3c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_695.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_696.png b/TMessagesProj/src/emojis/apple/emoji/0_696.png deleted file mode 100644 index de6c9d3310..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_696.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_697.png b/TMessagesProj/src/emojis/apple/emoji/0_697.png deleted file mode 100644 index bfa78926d3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_697.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_698.png b/TMessagesProj/src/emojis/apple/emoji/0_698.png deleted file mode 100644 index 542db0434f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_698.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_699.png b/TMessagesProj/src/emojis/apple/emoji/0_699.png deleted file mode 100644 index ae1d9adbc1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_699.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_7.png b/TMessagesProj/src/emojis/apple/emoji/0_7.png deleted file mode 100644 index 3538b9617c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_70.png b/TMessagesProj/src/emojis/apple/emoji/0_70.png deleted file mode 100644 index 376facf760..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_700.png b/TMessagesProj/src/emojis/apple/emoji/0_700.png deleted file mode 100644 index 3e9ca6b674..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_700.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_701.png b/TMessagesProj/src/emojis/apple/emoji/0_701.png deleted file mode 100644 index aa55c1ba19..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_701.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_702.png b/TMessagesProj/src/emojis/apple/emoji/0_702.png deleted file mode 100644 index a169933e41..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_702.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_703.png b/TMessagesProj/src/emojis/apple/emoji/0_703.png deleted file mode 100644 index a95408d8fe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_703.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_704.png b/TMessagesProj/src/emojis/apple/emoji/0_704.png deleted file mode 100644 index 8438b584e6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_704.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_705.png b/TMessagesProj/src/emojis/apple/emoji/0_705.png deleted file mode 100644 index 869bbb4df8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_705.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_706.png b/TMessagesProj/src/emojis/apple/emoji/0_706.png deleted file mode 100644 index 1bf3bcf71d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_706.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_707.png b/TMessagesProj/src/emojis/apple/emoji/0_707.png deleted file mode 100644 index 8816cbddcb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_707.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_708.png b/TMessagesProj/src/emojis/apple/emoji/0_708.png deleted file mode 100644 index 44d819642a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_708.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_709.png b/TMessagesProj/src/emojis/apple/emoji/0_709.png deleted file mode 100644 index 0be7777cb2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_709.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_71.png b/TMessagesProj/src/emojis/apple/emoji/0_71.png deleted file mode 100644 index 47a9abcd01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_710.png b/TMessagesProj/src/emojis/apple/emoji/0_710.png deleted file mode 100644 index 1dd0071319..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_710.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_711.png b/TMessagesProj/src/emojis/apple/emoji/0_711.png deleted file mode 100644 index a800bb29dc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_711.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_712.png b/TMessagesProj/src/emojis/apple/emoji/0_712.png deleted file mode 100644 index feb63accff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_712.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_713.png b/TMessagesProj/src/emojis/apple/emoji/0_713.png deleted file mode 100644 index 23db9aa39e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_713.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_714.png b/TMessagesProj/src/emojis/apple/emoji/0_714.png deleted file mode 100644 index ec58059575..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_714.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_715.png b/TMessagesProj/src/emojis/apple/emoji/0_715.png deleted file mode 100644 index 3174c191a9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_715.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_716.png b/TMessagesProj/src/emojis/apple/emoji/0_716.png deleted file mode 100644 index 27f22ebd60..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_716.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_717.png b/TMessagesProj/src/emojis/apple/emoji/0_717.png deleted file mode 100644 index 6793e0eef8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_717.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_718.png b/TMessagesProj/src/emojis/apple/emoji/0_718.png deleted file mode 100644 index e7f003f65a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_718.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_719.png b/TMessagesProj/src/emojis/apple/emoji/0_719.png deleted file mode 100644 index cf9c1fc919..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_719.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_72.png b/TMessagesProj/src/emojis/apple/emoji/0_72.png deleted file mode 100644 index 85da915190..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_720.png b/TMessagesProj/src/emojis/apple/emoji/0_720.png deleted file mode 100644 index ce0fee3a4f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_720.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_721.png b/TMessagesProj/src/emojis/apple/emoji/0_721.png deleted file mode 100644 index e66f426911..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_721.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_722.png b/TMessagesProj/src/emojis/apple/emoji/0_722.png deleted file mode 100644 index 36d5d46a17..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_722.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_723.png b/TMessagesProj/src/emojis/apple/emoji/0_723.png deleted file mode 100644 index e669032e45..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_723.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_724.png b/TMessagesProj/src/emojis/apple/emoji/0_724.png deleted file mode 100644 index 904cac265e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_724.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_725.png b/TMessagesProj/src/emojis/apple/emoji/0_725.png deleted file mode 100644 index 75d8a64cdd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_725.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_726.png b/TMessagesProj/src/emojis/apple/emoji/0_726.png deleted file mode 100644 index 5e14e32b40..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_726.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_727.png b/TMessagesProj/src/emojis/apple/emoji/0_727.png deleted file mode 100644 index abce8cac2d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_727.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_728.png b/TMessagesProj/src/emojis/apple/emoji/0_728.png deleted file mode 100644 index 0b623f793d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_728.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_729.png b/TMessagesProj/src/emojis/apple/emoji/0_729.png deleted file mode 100644 index 1911481415..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_729.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_73.png b/TMessagesProj/src/emojis/apple/emoji/0_73.png deleted file mode 100644 index 38b01d07a0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_730.png b/TMessagesProj/src/emojis/apple/emoji/0_730.png deleted file mode 100644 index cde6ecdd82..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_730.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_731.png b/TMessagesProj/src/emojis/apple/emoji/0_731.png deleted file mode 100644 index afad29c04c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_731.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_732.png b/TMessagesProj/src/emojis/apple/emoji/0_732.png deleted file mode 100644 index 3d8afa85fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_732.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_733.png b/TMessagesProj/src/emojis/apple/emoji/0_733.png deleted file mode 100644 index 40e0b9c114..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_733.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_734.png b/TMessagesProj/src/emojis/apple/emoji/0_734.png deleted file mode 100644 index 26396f7252..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_734.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_735.png b/TMessagesProj/src/emojis/apple/emoji/0_735.png deleted file mode 100644 index edf787510c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_735.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_736.png b/TMessagesProj/src/emojis/apple/emoji/0_736.png deleted file mode 100644 index f16d789e59..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_736.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_737.png b/TMessagesProj/src/emojis/apple/emoji/0_737.png deleted file mode 100644 index efc5f1076a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_737.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_738.png b/TMessagesProj/src/emojis/apple/emoji/0_738.png deleted file mode 100644 index 3f30675e68..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_738.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_739.png b/TMessagesProj/src/emojis/apple/emoji/0_739.png deleted file mode 100644 index 3abae7fd5c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_739.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_74.png b/TMessagesProj/src/emojis/apple/emoji/0_74.png deleted file mode 100644 index 99b075b103..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_740.png b/TMessagesProj/src/emojis/apple/emoji/0_740.png deleted file mode 100644 index 6a106def2b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_740.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_741.png b/TMessagesProj/src/emojis/apple/emoji/0_741.png deleted file mode 100644 index c79532ec09..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_741.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_742.png b/TMessagesProj/src/emojis/apple/emoji/0_742.png deleted file mode 100644 index f2777500a0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_742.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_743.png b/TMessagesProj/src/emojis/apple/emoji/0_743.png deleted file mode 100644 index 8a54f70ffe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_743.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_744.png b/TMessagesProj/src/emojis/apple/emoji/0_744.png deleted file mode 100644 index 5df6ef602e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_744.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_745.png b/TMessagesProj/src/emojis/apple/emoji/0_745.png deleted file mode 100644 index 76c9bd5ac7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_745.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_746.png b/TMessagesProj/src/emojis/apple/emoji/0_746.png deleted file mode 100644 index 70d4d02236..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_746.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_747.png b/TMessagesProj/src/emojis/apple/emoji/0_747.png deleted file mode 100644 index dee6c42e95..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_747.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_748.png b/TMessagesProj/src/emojis/apple/emoji/0_748.png deleted file mode 100644 index 4e5afd33be..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_748.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_749.png b/TMessagesProj/src/emojis/apple/emoji/0_749.png deleted file mode 100644 index 88c9f5326d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_749.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_75.png b/TMessagesProj/src/emojis/apple/emoji/0_75.png deleted file mode 100644 index 96cf5b361c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_750.png b/TMessagesProj/src/emojis/apple/emoji/0_750.png deleted file mode 100644 index 33ce2888d6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_750.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_751.png b/TMessagesProj/src/emojis/apple/emoji/0_751.png deleted file mode 100644 index 8cdd3d8044..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_751.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_752.png b/TMessagesProj/src/emojis/apple/emoji/0_752.png deleted file mode 100644 index 017cfdae0d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_752.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_753.png b/TMessagesProj/src/emojis/apple/emoji/0_753.png deleted file mode 100644 index b95d42b5de..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_753.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_754.png b/TMessagesProj/src/emojis/apple/emoji/0_754.png deleted file mode 100644 index 7cdecd8766..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_754.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_755.png b/TMessagesProj/src/emojis/apple/emoji/0_755.png deleted file mode 100644 index 987db4a2c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_755.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_756.png b/TMessagesProj/src/emojis/apple/emoji/0_756.png deleted file mode 100644 index 551bb0abd7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_756.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_757.png b/TMessagesProj/src/emojis/apple/emoji/0_757.png deleted file mode 100644 index f1cdb54488..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_757.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_758.png b/TMessagesProj/src/emojis/apple/emoji/0_758.png deleted file mode 100644 index 928ce6fbc4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_758.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_759.png b/TMessagesProj/src/emojis/apple/emoji/0_759.png deleted file mode 100644 index 225e860d19..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_759.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_76.png b/TMessagesProj/src/emojis/apple/emoji/0_76.png deleted file mode 100644 index a65a7860fa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_760.png b/TMessagesProj/src/emojis/apple/emoji/0_760.png deleted file mode 100644 index 1c201d3e38..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_760.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_761.png b/TMessagesProj/src/emojis/apple/emoji/0_761.png deleted file mode 100644 index e0b5b654aa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_761.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_762.png b/TMessagesProj/src/emojis/apple/emoji/0_762.png deleted file mode 100644 index 3c8d8a20b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_762.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_763.png b/TMessagesProj/src/emojis/apple/emoji/0_763.png deleted file mode 100644 index 6339cfa54d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_763.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_764.png b/TMessagesProj/src/emojis/apple/emoji/0_764.png deleted file mode 100644 index 93aaae908b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_764.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_765.png b/TMessagesProj/src/emojis/apple/emoji/0_765.png deleted file mode 100644 index 3a4f5fc04f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_765.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_766.png b/TMessagesProj/src/emojis/apple/emoji/0_766.png deleted file mode 100644 index aaa57343a6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_766.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_767.png b/TMessagesProj/src/emojis/apple/emoji/0_767.png deleted file mode 100644 index 1a415a882b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_767.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_768.png b/TMessagesProj/src/emojis/apple/emoji/0_768.png deleted file mode 100644 index 6f2577051c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_768.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_769.png b/TMessagesProj/src/emojis/apple/emoji/0_769.png deleted file mode 100644 index 3bc3ec80cf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_769.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_77.png b/TMessagesProj/src/emojis/apple/emoji/0_77.png deleted file mode 100644 index 8cbaedff9d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_770.png b/TMessagesProj/src/emojis/apple/emoji/0_770.png deleted file mode 100644 index 4b9643879b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_770.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_771.png b/TMessagesProj/src/emojis/apple/emoji/0_771.png deleted file mode 100644 index 65fe61d129..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_771.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_772.png b/TMessagesProj/src/emojis/apple/emoji/0_772.png deleted file mode 100644 index 4edf9bea90..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_772.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_773.png b/TMessagesProj/src/emojis/apple/emoji/0_773.png deleted file mode 100644 index 79185009d0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_773.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_774.png b/TMessagesProj/src/emojis/apple/emoji/0_774.png deleted file mode 100644 index da6af89407..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_774.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_775.png b/TMessagesProj/src/emojis/apple/emoji/0_775.png deleted file mode 100644 index 53459b52f3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_775.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_776.png b/TMessagesProj/src/emojis/apple/emoji/0_776.png deleted file mode 100644 index 3ae39e7bf0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_776.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_777.png b/TMessagesProj/src/emojis/apple/emoji/0_777.png deleted file mode 100644 index c088df06ae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_777.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_778.png b/TMessagesProj/src/emojis/apple/emoji/0_778.png deleted file mode 100644 index 7bfb17b314..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_778.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_779.png b/TMessagesProj/src/emojis/apple/emoji/0_779.png deleted file mode 100644 index 0b3f70eda5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_779.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_78.png b/TMessagesProj/src/emojis/apple/emoji/0_78.png deleted file mode 100644 index 13cedac889..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_780.png b/TMessagesProj/src/emojis/apple/emoji/0_780.png deleted file mode 100644 index 053e8292cb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_780.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_781.png b/TMessagesProj/src/emojis/apple/emoji/0_781.png deleted file mode 100644 index a77d43b430..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_781.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_782.png b/TMessagesProj/src/emojis/apple/emoji/0_782.png deleted file mode 100644 index f8f106d1fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_782.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_783.png b/TMessagesProj/src/emojis/apple/emoji/0_783.png deleted file mode 100644 index c516f327dc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_783.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_784.png b/TMessagesProj/src/emojis/apple/emoji/0_784.png deleted file mode 100644 index 3a3f105cf6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_784.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_785.png b/TMessagesProj/src/emojis/apple/emoji/0_785.png deleted file mode 100644 index 2b6d1173fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_785.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_786.png b/TMessagesProj/src/emojis/apple/emoji/0_786.png deleted file mode 100644 index b3d5ef6dc3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_786.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_787.png b/TMessagesProj/src/emojis/apple/emoji/0_787.png deleted file mode 100644 index b6b3e66ddc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_787.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_788.png b/TMessagesProj/src/emojis/apple/emoji/0_788.png deleted file mode 100644 index fbcbf3cfbf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_788.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_789.png b/TMessagesProj/src/emojis/apple/emoji/0_789.png deleted file mode 100644 index 61804fbda2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_789.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_79.png b/TMessagesProj/src/emojis/apple/emoji/0_79.png deleted file mode 100644 index ed359b9893..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_790.png b/TMessagesProj/src/emojis/apple/emoji/0_790.png deleted file mode 100644 index 67b068df28..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_790.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_791.png b/TMessagesProj/src/emojis/apple/emoji/0_791.png deleted file mode 100644 index ad1121cfd9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_791.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_792.png b/TMessagesProj/src/emojis/apple/emoji/0_792.png deleted file mode 100644 index 4a3a604b24..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_792.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_793.png b/TMessagesProj/src/emojis/apple/emoji/0_793.png deleted file mode 100644 index b11a9afc16..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_793.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_794.png b/TMessagesProj/src/emojis/apple/emoji/0_794.png deleted file mode 100644 index d92d029c12..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_794.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_795.png b/TMessagesProj/src/emojis/apple/emoji/0_795.png deleted file mode 100644 index b3343ca22a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_795.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_796.png b/TMessagesProj/src/emojis/apple/emoji/0_796.png deleted file mode 100644 index 7f3231aaa3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_796.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_797.png b/TMessagesProj/src/emojis/apple/emoji/0_797.png deleted file mode 100644 index 66a389e0fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_797.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_798.png b/TMessagesProj/src/emojis/apple/emoji/0_798.png deleted file mode 100644 index a26cf616ef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_798.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_799.png b/TMessagesProj/src/emojis/apple/emoji/0_799.png deleted file mode 100644 index 031605faa4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_799.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_8.png b/TMessagesProj/src/emojis/apple/emoji/0_8.png deleted file mode 100644 index 7ef0402126..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_80.png b/TMessagesProj/src/emojis/apple/emoji/0_80.png deleted file mode 100644 index d8e3ec5b42..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_800.png b/TMessagesProj/src/emojis/apple/emoji/0_800.png deleted file mode 100644 index 85bafaf20c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_800.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_801.png b/TMessagesProj/src/emojis/apple/emoji/0_801.png deleted file mode 100644 index 67d9b32cc3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_801.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_802.png b/TMessagesProj/src/emojis/apple/emoji/0_802.png deleted file mode 100644 index 17cbcde8c4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_802.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_803.png b/TMessagesProj/src/emojis/apple/emoji/0_803.png deleted file mode 100644 index d7efdaa4f0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_803.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_804.png b/TMessagesProj/src/emojis/apple/emoji/0_804.png deleted file mode 100644 index 98ea2a3359..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_804.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_805.png b/TMessagesProj/src/emojis/apple/emoji/0_805.png deleted file mode 100644 index ef7d844b57..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_805.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_806.png b/TMessagesProj/src/emojis/apple/emoji/0_806.png deleted file mode 100644 index a15d44e086..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_806.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_807.png b/TMessagesProj/src/emojis/apple/emoji/0_807.png deleted file mode 100644 index 8fdaeab0aa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_807.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_808.png b/TMessagesProj/src/emojis/apple/emoji/0_808.png deleted file mode 100644 index 30d939fb2e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_808.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_809.png b/TMessagesProj/src/emojis/apple/emoji/0_809.png deleted file mode 100644 index 7b12748a3b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_809.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_81.png b/TMessagesProj/src/emojis/apple/emoji/0_81.png deleted file mode 100644 index de1b70b595..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_810.png b/TMessagesProj/src/emojis/apple/emoji/0_810.png deleted file mode 100644 index 5a2ece30c8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_810.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_811.png b/TMessagesProj/src/emojis/apple/emoji/0_811.png deleted file mode 100644 index b569adb2f3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_811.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_812.png b/TMessagesProj/src/emojis/apple/emoji/0_812.png deleted file mode 100644 index 23e0daece0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_812.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_813.png b/TMessagesProj/src/emojis/apple/emoji/0_813.png deleted file mode 100644 index 20bc5084ff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_813.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_814.png b/TMessagesProj/src/emojis/apple/emoji/0_814.png deleted file mode 100644 index 3a0dcf3bae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_814.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_815.png b/TMessagesProj/src/emojis/apple/emoji/0_815.png deleted file mode 100644 index 5d46066e1c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_815.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_816.png b/TMessagesProj/src/emojis/apple/emoji/0_816.png deleted file mode 100644 index 69b89b956d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_816.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_817.png b/TMessagesProj/src/emojis/apple/emoji/0_817.png deleted file mode 100644 index 65b5acda1c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_817.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_818.png b/TMessagesProj/src/emojis/apple/emoji/0_818.png deleted file mode 100644 index 7b4f5b6e4f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_818.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_819.png b/TMessagesProj/src/emojis/apple/emoji/0_819.png deleted file mode 100644 index 7ed489277a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_819.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_82.png b/TMessagesProj/src/emojis/apple/emoji/0_82.png deleted file mode 100644 index 72cde4f980..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_820.png b/TMessagesProj/src/emojis/apple/emoji/0_820.png deleted file mode 100644 index 77de7291ce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_820.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_821.png b/TMessagesProj/src/emojis/apple/emoji/0_821.png deleted file mode 100644 index cffa27600d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_821.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_822.png b/TMessagesProj/src/emojis/apple/emoji/0_822.png deleted file mode 100644 index 539d3c56fa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_822.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_823.png b/TMessagesProj/src/emojis/apple/emoji/0_823.png deleted file mode 100644 index 04c9d22b28..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_823.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_824.png b/TMessagesProj/src/emojis/apple/emoji/0_824.png deleted file mode 100644 index e664ddf6ab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_824.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_825.png b/TMessagesProj/src/emojis/apple/emoji/0_825.png deleted file mode 100644 index 11fcb6cddd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_825.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_826.png b/TMessagesProj/src/emojis/apple/emoji/0_826.png deleted file mode 100644 index 1d0e04be23..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_826.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_827.png b/TMessagesProj/src/emojis/apple/emoji/0_827.png deleted file mode 100644 index acca4c997a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_827.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_828.png b/TMessagesProj/src/emojis/apple/emoji/0_828.png deleted file mode 100644 index 3a8b52c6ff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_828.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_829.png b/TMessagesProj/src/emojis/apple/emoji/0_829.png deleted file mode 100644 index b4d9389bba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_829.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_83.png b/TMessagesProj/src/emojis/apple/emoji/0_83.png deleted file mode 100644 index ea52d5156d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_830.png b/TMessagesProj/src/emojis/apple/emoji/0_830.png deleted file mode 100644 index e90f9ac7c2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_830.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_831.png b/TMessagesProj/src/emojis/apple/emoji/0_831.png deleted file mode 100644 index c4f30a1124..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_831.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_832.png b/TMessagesProj/src/emojis/apple/emoji/0_832.png deleted file mode 100644 index 2e187a356e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_832.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_833.png b/TMessagesProj/src/emojis/apple/emoji/0_833.png deleted file mode 100644 index 1cab85bb7f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_833.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_834.png b/TMessagesProj/src/emojis/apple/emoji/0_834.png deleted file mode 100644 index 3f2b6c1874..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_834.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_835.png b/TMessagesProj/src/emojis/apple/emoji/0_835.png deleted file mode 100644 index 94aebf38fc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_835.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_836.png b/TMessagesProj/src/emojis/apple/emoji/0_836.png deleted file mode 100644 index 238a73ed93..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_836.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_837.png b/TMessagesProj/src/emojis/apple/emoji/0_837.png deleted file mode 100644 index b41da590a7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_837.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_838.png b/TMessagesProj/src/emojis/apple/emoji/0_838.png deleted file mode 100644 index 29042b51e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_838.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_839.png b/TMessagesProj/src/emojis/apple/emoji/0_839.png deleted file mode 100644 index 5936daf009..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_839.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_84.png b/TMessagesProj/src/emojis/apple/emoji/0_84.png deleted file mode 100644 index eaa290cd74..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_840.png b/TMessagesProj/src/emojis/apple/emoji/0_840.png deleted file mode 100644 index 26d687de0f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_840.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_841.png b/TMessagesProj/src/emojis/apple/emoji/0_841.png deleted file mode 100644 index 547e4dea36..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_841.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_842.png b/TMessagesProj/src/emojis/apple/emoji/0_842.png deleted file mode 100644 index 18bf7c28ce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_842.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_843.png b/TMessagesProj/src/emojis/apple/emoji/0_843.png deleted file mode 100644 index 83277044fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_843.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_844.png b/TMessagesProj/src/emojis/apple/emoji/0_844.png deleted file mode 100644 index 6d1241dfed..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_844.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_845.png b/TMessagesProj/src/emojis/apple/emoji/0_845.png deleted file mode 100644 index 4c43352473..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_845.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_846.png b/TMessagesProj/src/emojis/apple/emoji/0_846.png deleted file mode 100644 index b4d835459a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_846.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_847.png b/TMessagesProj/src/emojis/apple/emoji/0_847.png deleted file mode 100644 index 8af8fdb2d9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_847.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_848.png b/TMessagesProj/src/emojis/apple/emoji/0_848.png deleted file mode 100644 index 8e0359df95..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_848.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_849.png b/TMessagesProj/src/emojis/apple/emoji/0_849.png deleted file mode 100644 index 704e2476de..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_849.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_85.png b/TMessagesProj/src/emojis/apple/emoji/0_85.png deleted file mode 100644 index 5713640268..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_850.png b/TMessagesProj/src/emojis/apple/emoji/0_850.png deleted file mode 100644 index 4ad822d6ff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_850.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_851.png b/TMessagesProj/src/emojis/apple/emoji/0_851.png deleted file mode 100644 index 8b20851807..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_851.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_852.png b/TMessagesProj/src/emojis/apple/emoji/0_852.png deleted file mode 100644 index ed4893af36..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_852.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_853.png b/TMessagesProj/src/emojis/apple/emoji/0_853.png deleted file mode 100644 index 036e1284c3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_853.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_854.png b/TMessagesProj/src/emojis/apple/emoji/0_854.png deleted file mode 100644 index de8332fd68..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_854.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_855.png b/TMessagesProj/src/emojis/apple/emoji/0_855.png deleted file mode 100644 index 6bc3ee5e9d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_855.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_856.png b/TMessagesProj/src/emojis/apple/emoji/0_856.png deleted file mode 100644 index 4f1d7ead93..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_856.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_857.png b/TMessagesProj/src/emojis/apple/emoji/0_857.png deleted file mode 100644 index 9843dd3261..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_857.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_858.png b/TMessagesProj/src/emojis/apple/emoji/0_858.png deleted file mode 100644 index 63173561c4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_858.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_859.png b/TMessagesProj/src/emojis/apple/emoji/0_859.png deleted file mode 100644 index d5c20aa0d7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_859.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_86.png b/TMessagesProj/src/emojis/apple/emoji/0_86.png deleted file mode 100644 index 5ca02ffd1b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_860.png b/TMessagesProj/src/emojis/apple/emoji/0_860.png deleted file mode 100644 index c038c51224..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_860.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_861.png b/TMessagesProj/src/emojis/apple/emoji/0_861.png deleted file mode 100644 index 92e135e349..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_861.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_862.png b/TMessagesProj/src/emojis/apple/emoji/0_862.png deleted file mode 100644 index 8f9fa73d15..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_862.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_863.png b/TMessagesProj/src/emojis/apple/emoji/0_863.png deleted file mode 100644 index 60e7e78cee..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_863.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_864.png b/TMessagesProj/src/emojis/apple/emoji/0_864.png deleted file mode 100644 index 29e1dae04c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_864.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_865.png b/TMessagesProj/src/emojis/apple/emoji/0_865.png deleted file mode 100644 index a186174c51..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_865.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_866.png b/TMessagesProj/src/emojis/apple/emoji/0_866.png deleted file mode 100644 index 0183b292c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_866.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_867.png b/TMessagesProj/src/emojis/apple/emoji/0_867.png deleted file mode 100644 index 2ab42a75a1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_867.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_868.png b/TMessagesProj/src/emojis/apple/emoji/0_868.png deleted file mode 100644 index 8d67add65e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_868.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_869.png b/TMessagesProj/src/emojis/apple/emoji/0_869.png deleted file mode 100644 index e68dc2febc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_869.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_87.png b/TMessagesProj/src/emojis/apple/emoji/0_87.png deleted file mode 100644 index adab8bd21e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_870.png b/TMessagesProj/src/emojis/apple/emoji/0_870.png deleted file mode 100644 index 5d2ca23226..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_870.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_871.png b/TMessagesProj/src/emojis/apple/emoji/0_871.png deleted file mode 100644 index 62aed36f71..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_871.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_872.png b/TMessagesProj/src/emojis/apple/emoji/0_872.png deleted file mode 100644 index f3ca118b8f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_872.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_873.png b/TMessagesProj/src/emojis/apple/emoji/0_873.png deleted file mode 100644 index f95977634e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_873.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_874.png b/TMessagesProj/src/emojis/apple/emoji/0_874.png deleted file mode 100644 index b0cd68e9ee..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_874.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_875.png b/TMessagesProj/src/emojis/apple/emoji/0_875.png deleted file mode 100644 index 97e68ad2e7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_875.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_876.png b/TMessagesProj/src/emojis/apple/emoji/0_876.png deleted file mode 100644 index 46a825e13e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_876.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_877.png b/TMessagesProj/src/emojis/apple/emoji/0_877.png deleted file mode 100644 index e6e902f626..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_877.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_878.png b/TMessagesProj/src/emojis/apple/emoji/0_878.png deleted file mode 100644 index 0dbb789825..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_878.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_879.png b/TMessagesProj/src/emojis/apple/emoji/0_879.png deleted file mode 100644 index 0ba50ba0bd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_879.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_88.png b/TMessagesProj/src/emojis/apple/emoji/0_88.png deleted file mode 100644 index dfaeb10407..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_880.png b/TMessagesProj/src/emojis/apple/emoji/0_880.png deleted file mode 100644 index 175e349cf2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_880.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_881.png b/TMessagesProj/src/emojis/apple/emoji/0_881.png deleted file mode 100644 index c8aeca8112..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_881.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_882.png b/TMessagesProj/src/emojis/apple/emoji/0_882.png deleted file mode 100644 index 5f2ee4794a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_882.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_883.png b/TMessagesProj/src/emojis/apple/emoji/0_883.png deleted file mode 100644 index 1b0fa6ee9e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_883.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_884.png b/TMessagesProj/src/emojis/apple/emoji/0_884.png deleted file mode 100644 index 0f6e820161..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_884.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_885.png b/TMessagesProj/src/emojis/apple/emoji/0_885.png deleted file mode 100644 index 3b744838e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_885.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_886.png b/TMessagesProj/src/emojis/apple/emoji/0_886.png deleted file mode 100644 index b96c766663..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_886.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_887.png b/TMessagesProj/src/emojis/apple/emoji/0_887.png deleted file mode 100644 index d573ac3238..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_887.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_888.png b/TMessagesProj/src/emojis/apple/emoji/0_888.png deleted file mode 100644 index 03e3c89620..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_888.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_889.png b/TMessagesProj/src/emojis/apple/emoji/0_889.png deleted file mode 100644 index cbf6afb7ff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_889.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_89.png b/TMessagesProj/src/emojis/apple/emoji/0_89.png deleted file mode 100644 index 2dfcea6169..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_890.png b/TMessagesProj/src/emojis/apple/emoji/0_890.png deleted file mode 100644 index 57cb670703..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_890.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_891.png b/TMessagesProj/src/emojis/apple/emoji/0_891.png deleted file mode 100644 index ad06e2df0c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_891.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_892.png b/TMessagesProj/src/emojis/apple/emoji/0_892.png deleted file mode 100644 index c6f1e8f04e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_892.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_893.png b/TMessagesProj/src/emojis/apple/emoji/0_893.png deleted file mode 100644 index 3218e6741c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_893.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_894.png b/TMessagesProj/src/emojis/apple/emoji/0_894.png deleted file mode 100644 index 6f3d024e45..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_894.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_895.png b/TMessagesProj/src/emojis/apple/emoji/0_895.png deleted file mode 100644 index 92cff2e7f3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_895.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_896.png b/TMessagesProj/src/emojis/apple/emoji/0_896.png deleted file mode 100644 index 3f0b89b0c2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_896.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_897.png b/TMessagesProj/src/emojis/apple/emoji/0_897.png deleted file mode 100644 index c5c71fa6e0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_897.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_898.png b/TMessagesProj/src/emojis/apple/emoji/0_898.png deleted file mode 100644 index a5492ac7e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_898.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_899.png b/TMessagesProj/src/emojis/apple/emoji/0_899.png deleted file mode 100644 index 06b94e57c5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_899.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_9.png b/TMessagesProj/src/emojis/apple/emoji/0_9.png deleted file mode 100644 index aaa18d47f6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_90.png b/TMessagesProj/src/emojis/apple/emoji/0_90.png deleted file mode 100644 index aa5f62703e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_900.png b/TMessagesProj/src/emojis/apple/emoji/0_900.png deleted file mode 100644 index a6ea34c679..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_900.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_901.png b/TMessagesProj/src/emojis/apple/emoji/0_901.png deleted file mode 100644 index 627afed6a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_901.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_902.png b/TMessagesProj/src/emojis/apple/emoji/0_902.png deleted file mode 100644 index c91a22e07a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_902.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_903.png b/TMessagesProj/src/emojis/apple/emoji/0_903.png deleted file mode 100644 index 6c5c545073..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_903.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_904.png b/TMessagesProj/src/emojis/apple/emoji/0_904.png deleted file mode 100644 index 56a649e005..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_904.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_905.png b/TMessagesProj/src/emojis/apple/emoji/0_905.png deleted file mode 100644 index c4af08f046..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_905.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_906.png b/TMessagesProj/src/emojis/apple/emoji/0_906.png deleted file mode 100644 index ff5c513630..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_906.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_907.png b/TMessagesProj/src/emojis/apple/emoji/0_907.png deleted file mode 100644 index 57fcd7bc34..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_907.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_908.png b/TMessagesProj/src/emojis/apple/emoji/0_908.png deleted file mode 100644 index 29105f22de..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_908.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_909.png b/TMessagesProj/src/emojis/apple/emoji/0_909.png deleted file mode 100644 index aa7ab2d4a0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_909.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_91.png b/TMessagesProj/src/emojis/apple/emoji/0_91.png deleted file mode 100644 index f899ac9248..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_910.png b/TMessagesProj/src/emojis/apple/emoji/0_910.png deleted file mode 100644 index 82c6ac962f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_910.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_911.png b/TMessagesProj/src/emojis/apple/emoji/0_911.png deleted file mode 100644 index 217f8ce02d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_911.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_912.png b/TMessagesProj/src/emojis/apple/emoji/0_912.png deleted file mode 100644 index f703f3dd3d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_912.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_913.png b/TMessagesProj/src/emojis/apple/emoji/0_913.png deleted file mode 100644 index 1bce9710b9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_913.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_914.png b/TMessagesProj/src/emojis/apple/emoji/0_914.png deleted file mode 100644 index 9cc10de837..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_914.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_915.png b/TMessagesProj/src/emojis/apple/emoji/0_915.png deleted file mode 100644 index 809cc611c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_915.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_916.png b/TMessagesProj/src/emojis/apple/emoji/0_916.png deleted file mode 100644 index ba28449e10..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_916.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_917.png b/TMessagesProj/src/emojis/apple/emoji/0_917.png deleted file mode 100644 index a6424c0c81..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_917.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_918.png b/TMessagesProj/src/emojis/apple/emoji/0_918.png deleted file mode 100644 index 480af9c2f4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_918.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_919.png b/TMessagesProj/src/emojis/apple/emoji/0_919.png deleted file mode 100644 index d00a9878c0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_919.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_92.png b/TMessagesProj/src/emojis/apple/emoji/0_92.png deleted file mode 100644 index 4f7836cc2a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_920.png b/TMessagesProj/src/emojis/apple/emoji/0_920.png deleted file mode 100644 index 7d6901afbc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_920.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_921.png b/TMessagesProj/src/emojis/apple/emoji/0_921.png deleted file mode 100644 index 119ac42319..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_921.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_922.png b/TMessagesProj/src/emojis/apple/emoji/0_922.png deleted file mode 100644 index 301c283ff2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_922.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_923.png b/TMessagesProj/src/emojis/apple/emoji/0_923.png deleted file mode 100644 index fb940c716e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_923.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_924.png b/TMessagesProj/src/emojis/apple/emoji/0_924.png deleted file mode 100644 index 1c1e37d13c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_924.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_925.png b/TMessagesProj/src/emojis/apple/emoji/0_925.png deleted file mode 100644 index b8cd74e6f6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_925.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_926.png b/TMessagesProj/src/emojis/apple/emoji/0_926.png deleted file mode 100644 index 71dddf64a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_926.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_927.png b/TMessagesProj/src/emojis/apple/emoji/0_927.png deleted file mode 100644 index 982ae4110c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_927.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_928.png b/TMessagesProj/src/emojis/apple/emoji/0_928.png deleted file mode 100644 index eff103d684..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_928.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_929.png b/TMessagesProj/src/emojis/apple/emoji/0_929.png deleted file mode 100644 index 687c5b7425..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_929.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_93.png b/TMessagesProj/src/emojis/apple/emoji/0_93.png deleted file mode 100644 index 15a241c488..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_930.png b/TMessagesProj/src/emojis/apple/emoji/0_930.png deleted file mode 100644 index 3a1082732a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_930.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_931.png b/TMessagesProj/src/emojis/apple/emoji/0_931.png deleted file mode 100644 index eb797d0f50..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_931.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_932.png b/TMessagesProj/src/emojis/apple/emoji/0_932.png deleted file mode 100644 index ba7d2ab8a1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_932.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_933.png b/TMessagesProj/src/emojis/apple/emoji/0_933.png deleted file mode 100644 index 182743edd6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_933.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_934.png b/TMessagesProj/src/emojis/apple/emoji/0_934.png deleted file mode 100644 index e37002b9d9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_934.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_935.png b/TMessagesProj/src/emojis/apple/emoji/0_935.png deleted file mode 100644 index 191a70209f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_935.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_936.png b/TMessagesProj/src/emojis/apple/emoji/0_936.png deleted file mode 100644 index af00bb38ba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_936.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_937.png b/TMessagesProj/src/emojis/apple/emoji/0_937.png deleted file mode 100644 index 76b7595f71..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_937.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_938.png b/TMessagesProj/src/emojis/apple/emoji/0_938.png deleted file mode 100644 index 7f991d63ed..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_938.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_939.png b/TMessagesProj/src/emojis/apple/emoji/0_939.png deleted file mode 100644 index 7d7cdf99e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_939.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_94.png b/TMessagesProj/src/emojis/apple/emoji/0_94.png deleted file mode 100644 index 927369a9e6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_940.png b/TMessagesProj/src/emojis/apple/emoji/0_940.png deleted file mode 100644 index 39d6a2c15e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_940.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_941.png b/TMessagesProj/src/emojis/apple/emoji/0_941.png deleted file mode 100644 index ddac83ce69..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_941.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_942.png b/TMessagesProj/src/emojis/apple/emoji/0_942.png deleted file mode 100644 index 1d275daa51..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_942.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_943.png b/TMessagesProj/src/emojis/apple/emoji/0_943.png deleted file mode 100644 index f240af2bb4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_943.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_944.png b/TMessagesProj/src/emojis/apple/emoji/0_944.png deleted file mode 100644 index a61ebd30a9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_944.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_945.png b/TMessagesProj/src/emojis/apple/emoji/0_945.png deleted file mode 100644 index 7aa6d5d0e1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_945.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_946.png b/TMessagesProj/src/emojis/apple/emoji/0_946.png deleted file mode 100644 index 4c9683d91f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_946.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_947.png b/TMessagesProj/src/emojis/apple/emoji/0_947.png deleted file mode 100644 index c091df6eca..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_947.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_948.png b/TMessagesProj/src/emojis/apple/emoji/0_948.png deleted file mode 100644 index b369951f0d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_948.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_949.png b/TMessagesProj/src/emojis/apple/emoji/0_949.png deleted file mode 100644 index a33699f8bf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_949.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_95.png b/TMessagesProj/src/emojis/apple/emoji/0_95.png deleted file mode 100644 index feb9573eb6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_950.png b/TMessagesProj/src/emojis/apple/emoji/0_950.png deleted file mode 100644 index ec700c63b2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_950.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_951.png b/TMessagesProj/src/emojis/apple/emoji/0_951.png deleted file mode 100644 index 6a1bc71d3a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_951.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_952.png b/TMessagesProj/src/emojis/apple/emoji/0_952.png deleted file mode 100644 index 8041f0a3ef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_952.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_953.png b/TMessagesProj/src/emojis/apple/emoji/0_953.png deleted file mode 100644 index 1e4bbe4b72..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_953.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_954.png b/TMessagesProj/src/emojis/apple/emoji/0_954.png deleted file mode 100644 index 155ccf14b4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_954.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_955.png b/TMessagesProj/src/emojis/apple/emoji/0_955.png deleted file mode 100644 index 22c4b25430..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_955.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_956.png b/TMessagesProj/src/emojis/apple/emoji/0_956.png deleted file mode 100644 index 49c64af121..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_956.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_957.png b/TMessagesProj/src/emojis/apple/emoji/0_957.png deleted file mode 100644 index c9181120e8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_957.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_958.png b/TMessagesProj/src/emojis/apple/emoji/0_958.png deleted file mode 100644 index c7860dfd59..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_958.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_959.png b/TMessagesProj/src/emojis/apple/emoji/0_959.png deleted file mode 100644 index 68f68d83e4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_959.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_96.png b/TMessagesProj/src/emojis/apple/emoji/0_96.png deleted file mode 100644 index 6165b2f6cd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_960.png b/TMessagesProj/src/emojis/apple/emoji/0_960.png deleted file mode 100644 index 9274b9af8c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_960.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_961.png b/TMessagesProj/src/emojis/apple/emoji/0_961.png deleted file mode 100644 index c8c14fbc91..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_961.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_962.png b/TMessagesProj/src/emojis/apple/emoji/0_962.png deleted file mode 100644 index c7adba3d16..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_962.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_963.png b/TMessagesProj/src/emojis/apple/emoji/0_963.png deleted file mode 100644 index d37f62f732..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_963.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_964.png b/TMessagesProj/src/emojis/apple/emoji/0_964.png deleted file mode 100644 index 3a926a5b78..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_964.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_965.png b/TMessagesProj/src/emojis/apple/emoji/0_965.png deleted file mode 100644 index ba2f276641..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_965.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_966.png b/TMessagesProj/src/emojis/apple/emoji/0_966.png deleted file mode 100644 index da309a91a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_966.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_967.png b/TMessagesProj/src/emojis/apple/emoji/0_967.png deleted file mode 100644 index 02ff5e4670..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_967.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_968.png b/TMessagesProj/src/emojis/apple/emoji/0_968.png deleted file mode 100644 index b7d34c25bb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_968.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_969.png b/TMessagesProj/src/emojis/apple/emoji/0_969.png deleted file mode 100644 index d1dca0634b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_969.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_97.png b/TMessagesProj/src/emojis/apple/emoji/0_97.png deleted file mode 100644 index 0216572b63..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_970.png b/TMessagesProj/src/emojis/apple/emoji/0_970.png deleted file mode 100644 index c23647a442..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_970.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_971.png b/TMessagesProj/src/emojis/apple/emoji/0_971.png deleted file mode 100644 index 794805d52f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_971.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_972.png b/TMessagesProj/src/emojis/apple/emoji/0_972.png deleted file mode 100644 index 09f6041f9b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_972.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_973.png b/TMessagesProj/src/emojis/apple/emoji/0_973.png deleted file mode 100644 index 8bf1ec5f64..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_973.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_974.png b/TMessagesProj/src/emojis/apple/emoji/0_974.png deleted file mode 100644 index 732ffb1e73..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_974.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_975.png b/TMessagesProj/src/emojis/apple/emoji/0_975.png deleted file mode 100644 index 7dfce6e294..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_975.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_976.png b/TMessagesProj/src/emojis/apple/emoji/0_976.png deleted file mode 100644 index 2fe0c4b996..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_976.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_977.png b/TMessagesProj/src/emojis/apple/emoji/0_977.png deleted file mode 100644 index 5ba006e4cd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_977.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_978.png b/TMessagesProj/src/emojis/apple/emoji/0_978.png deleted file mode 100644 index cc71aee135..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_978.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_979.png b/TMessagesProj/src/emojis/apple/emoji/0_979.png deleted file mode 100644 index e40398a91c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_979.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_98.png b/TMessagesProj/src/emojis/apple/emoji/0_98.png deleted file mode 100644 index 5c8a55d39d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_980.png b/TMessagesProj/src/emojis/apple/emoji/0_980.png deleted file mode 100644 index ddabb9b6a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_980.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_981.png b/TMessagesProj/src/emojis/apple/emoji/0_981.png deleted file mode 100644 index 5922a70caf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_981.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_982.png b/TMessagesProj/src/emojis/apple/emoji/0_982.png deleted file mode 100644 index f16740f491..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_982.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_983.png b/TMessagesProj/src/emojis/apple/emoji/0_983.png deleted file mode 100644 index d14a7ae404..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_983.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_984.png b/TMessagesProj/src/emojis/apple/emoji/0_984.png deleted file mode 100644 index a9370560fc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_984.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_985.png b/TMessagesProj/src/emojis/apple/emoji/0_985.png deleted file mode 100644 index b8c2355708..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_985.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_986.png b/TMessagesProj/src/emojis/apple/emoji/0_986.png deleted file mode 100644 index f1dc933f87..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_986.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_987.png b/TMessagesProj/src/emojis/apple/emoji/0_987.png deleted file mode 100644 index a6ecea5507..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_987.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_988.png b/TMessagesProj/src/emojis/apple/emoji/0_988.png deleted file mode 100644 index 0fb6cb86ba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_988.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_989.png b/TMessagesProj/src/emojis/apple/emoji/0_989.png deleted file mode 100644 index cdf31e226e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_989.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_99.png b/TMessagesProj/src/emojis/apple/emoji/0_99.png deleted file mode 100644 index a33b3c320a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_990.png b/TMessagesProj/src/emojis/apple/emoji/0_990.png deleted file mode 100644 index f7da903cb1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_990.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_991.png b/TMessagesProj/src/emojis/apple/emoji/0_991.png deleted file mode 100644 index fbb0128a87..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_991.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_992.png b/TMessagesProj/src/emojis/apple/emoji/0_992.png deleted file mode 100644 index 87a9490ba0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_992.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_993.png b/TMessagesProj/src/emojis/apple/emoji/0_993.png deleted file mode 100644 index e7d01bf953..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_993.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_994.png b/TMessagesProj/src/emojis/apple/emoji/0_994.png deleted file mode 100644 index ae0f2786fe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_994.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_995.png b/TMessagesProj/src/emojis/apple/emoji/0_995.png deleted file mode 100644 index 273754648c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_995.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_996.png b/TMessagesProj/src/emojis/apple/emoji/0_996.png deleted file mode 100644 index 3fd647cbf4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_996.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_997.png b/TMessagesProj/src/emojis/apple/emoji/0_997.png deleted file mode 100644 index bb58a495a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_997.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_998.png b/TMessagesProj/src/emojis/apple/emoji/0_998.png deleted file mode 100644 index e446b46981..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_998.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/0_999.png b/TMessagesProj/src/emojis/apple/emoji/0_999.png deleted file mode 100644 index fe05b2abd2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/0_999.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_0.png b/TMessagesProj/src/emojis/apple/emoji/1_0.png deleted file mode 100644 index 5f7a1fdbb3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_1.png b/TMessagesProj/src/emojis/apple/emoji/1_1.png deleted file mode 100644 index 02d8349749..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_10.png b/TMessagesProj/src/emojis/apple/emoji/1_10.png deleted file mode 100644 index 342f75c17f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_100.png b/TMessagesProj/src/emojis/apple/emoji/1_100.png deleted file mode 100644 index b9e2ca4fa4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_101.png b/TMessagesProj/src/emojis/apple/emoji/1_101.png deleted file mode 100644 index 74354f73ba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_102.png b/TMessagesProj/src/emojis/apple/emoji/1_102.png deleted file mode 100644 index b034a16c01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_103.png b/TMessagesProj/src/emojis/apple/emoji/1_103.png deleted file mode 100644 index 9e21b07f60..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_104.png b/TMessagesProj/src/emojis/apple/emoji/1_104.png deleted file mode 100644 index 9cc268b184..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_105.png b/TMessagesProj/src/emojis/apple/emoji/1_105.png deleted file mode 100644 index 052efe3b5f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_106.png b/TMessagesProj/src/emojis/apple/emoji/1_106.png deleted file mode 100644 index b5fffcc901..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_107.png b/TMessagesProj/src/emojis/apple/emoji/1_107.png deleted file mode 100644 index 8bb3588805..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_108.png b/TMessagesProj/src/emojis/apple/emoji/1_108.png deleted file mode 100644 index 20c56068fc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_109.png b/TMessagesProj/src/emojis/apple/emoji/1_109.png deleted file mode 100644 index f60c4ce9a9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_11.png b/TMessagesProj/src/emojis/apple/emoji/1_11.png deleted file mode 100644 index 6b2106c7a2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_110.png b/TMessagesProj/src/emojis/apple/emoji/1_110.png deleted file mode 100644 index 271bebdfef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_111.png b/TMessagesProj/src/emojis/apple/emoji/1_111.png deleted file mode 100644 index eaca0fe1eb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_112.png b/TMessagesProj/src/emojis/apple/emoji/1_112.png deleted file mode 100644 index a7a2fe4d57..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_113.png b/TMessagesProj/src/emojis/apple/emoji/1_113.png deleted file mode 100644 index 845212cf89..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_114.png b/TMessagesProj/src/emojis/apple/emoji/1_114.png deleted file mode 100644 index 268c3b1c14..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_115.png b/TMessagesProj/src/emojis/apple/emoji/1_115.png deleted file mode 100644 index 7a3e1433bc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_116.png b/TMessagesProj/src/emojis/apple/emoji/1_116.png deleted file mode 100644 index b64a54fcb6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_117.png b/TMessagesProj/src/emojis/apple/emoji/1_117.png deleted file mode 100644 index 6ee27e5cab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_118.png b/TMessagesProj/src/emojis/apple/emoji/1_118.png deleted file mode 100644 index ed10379553..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_119.png b/TMessagesProj/src/emojis/apple/emoji/1_119.png deleted file mode 100644 index 550ab82ee8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_12.png b/TMessagesProj/src/emojis/apple/emoji/1_12.png deleted file mode 100644 index d644afa0e8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_120.png b/TMessagesProj/src/emojis/apple/emoji/1_120.png deleted file mode 100644 index cf97bdd81f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_121.png b/TMessagesProj/src/emojis/apple/emoji/1_121.png deleted file mode 100644 index 01a246753a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_122.png b/TMessagesProj/src/emojis/apple/emoji/1_122.png deleted file mode 100644 index 4c8062d36e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_123.png b/TMessagesProj/src/emojis/apple/emoji/1_123.png deleted file mode 100644 index 3438fbcb6d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_124.png b/TMessagesProj/src/emojis/apple/emoji/1_124.png deleted file mode 100644 index 08bdecf3b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_125.png b/TMessagesProj/src/emojis/apple/emoji/1_125.png deleted file mode 100644 index b4edbb054b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_126.png b/TMessagesProj/src/emojis/apple/emoji/1_126.png deleted file mode 100644 index bd67c3f1c3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_127.png b/TMessagesProj/src/emojis/apple/emoji/1_127.png deleted file mode 100644 index d6827294c0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_128.png b/TMessagesProj/src/emojis/apple/emoji/1_128.png deleted file mode 100644 index 6f611a2cb9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_129.png b/TMessagesProj/src/emojis/apple/emoji/1_129.png deleted file mode 100644 index 04789dcccf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_13.png b/TMessagesProj/src/emojis/apple/emoji/1_13.png deleted file mode 100644 index 759c142fa0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_130.png b/TMessagesProj/src/emojis/apple/emoji/1_130.png deleted file mode 100644 index 54319f9fef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_131.png b/TMessagesProj/src/emojis/apple/emoji/1_131.png deleted file mode 100644 index 87107d0e40..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_132.png b/TMessagesProj/src/emojis/apple/emoji/1_132.png deleted file mode 100644 index 5d9617a36a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_133.png b/TMessagesProj/src/emojis/apple/emoji/1_133.png deleted file mode 100644 index bbf17758e5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_134.png b/TMessagesProj/src/emojis/apple/emoji/1_134.png deleted file mode 100644 index 882e0c11ec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_135.png b/TMessagesProj/src/emojis/apple/emoji/1_135.png deleted file mode 100644 index 07c4582395..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_136.png b/TMessagesProj/src/emojis/apple/emoji/1_136.png deleted file mode 100644 index d45d2e8beb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_137.png b/TMessagesProj/src/emojis/apple/emoji/1_137.png deleted file mode 100644 index aa5c49bcc3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_138.png b/TMessagesProj/src/emojis/apple/emoji/1_138.png deleted file mode 100644 index 9a6a344db4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_139.png b/TMessagesProj/src/emojis/apple/emoji/1_139.png deleted file mode 100644 index 59701285ce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_14.png b/TMessagesProj/src/emojis/apple/emoji/1_14.png deleted file mode 100644 index 7dc6460f1f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_140.png b/TMessagesProj/src/emojis/apple/emoji/1_140.png deleted file mode 100644 index 1b7ea1afb9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_141.png b/TMessagesProj/src/emojis/apple/emoji/1_141.png deleted file mode 100644 index 129e184da6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_142.png b/TMessagesProj/src/emojis/apple/emoji/1_142.png deleted file mode 100644 index e6647d9a33..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_143.png b/TMessagesProj/src/emojis/apple/emoji/1_143.png deleted file mode 100644 index a572d22a9b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_144.png b/TMessagesProj/src/emojis/apple/emoji/1_144.png deleted file mode 100644 index 6295b6d8e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_145.png b/TMessagesProj/src/emojis/apple/emoji/1_145.png deleted file mode 100644 index d8f540b9e8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_146.png b/TMessagesProj/src/emojis/apple/emoji/1_146.png deleted file mode 100644 index 2af23c0d52..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_147.png b/TMessagesProj/src/emojis/apple/emoji/1_147.png deleted file mode 100644 index 342aabb1cf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_148.png b/TMessagesProj/src/emojis/apple/emoji/1_148.png deleted file mode 100644 index 52f0abb2f0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_149.png b/TMessagesProj/src/emojis/apple/emoji/1_149.png deleted file mode 100644 index 4cda31af5a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_15.png b/TMessagesProj/src/emojis/apple/emoji/1_15.png deleted file mode 100644 index 0f42c5424c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_150.png b/TMessagesProj/src/emojis/apple/emoji/1_150.png deleted file mode 100644 index 6f06a37612..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_151.png b/TMessagesProj/src/emojis/apple/emoji/1_151.png deleted file mode 100644 index ea25b61eb2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_152.png b/TMessagesProj/src/emojis/apple/emoji/1_152.png deleted file mode 100644 index ef8772e22d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_153.png b/TMessagesProj/src/emojis/apple/emoji/1_153.png deleted file mode 100644 index 06e5097366..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_154.png b/TMessagesProj/src/emojis/apple/emoji/1_154.png deleted file mode 100644 index c391815e4c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_155.png b/TMessagesProj/src/emojis/apple/emoji/1_155.png deleted file mode 100644 index f4a981d8d8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_156.png b/TMessagesProj/src/emojis/apple/emoji/1_156.png deleted file mode 100644 index af082213b5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_157.png b/TMessagesProj/src/emojis/apple/emoji/1_157.png deleted file mode 100644 index b3bf10ed5b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_158.png b/TMessagesProj/src/emojis/apple/emoji/1_158.png deleted file mode 100644 index b874a256f8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_159.png b/TMessagesProj/src/emojis/apple/emoji/1_159.png deleted file mode 100644 index f951cfe5ed..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_16.png b/TMessagesProj/src/emojis/apple/emoji/1_16.png deleted file mode 100644 index 170c15ceea..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_160.png b/TMessagesProj/src/emojis/apple/emoji/1_160.png deleted file mode 100644 index e4f26603b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_161.png b/TMessagesProj/src/emojis/apple/emoji/1_161.png deleted file mode 100644 index 06c58b3d9c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_162.png b/TMessagesProj/src/emojis/apple/emoji/1_162.png deleted file mode 100644 index 8f18e937a7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_163.png b/TMessagesProj/src/emojis/apple/emoji/1_163.png deleted file mode 100644 index c5fa1930f5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_164.png b/TMessagesProj/src/emojis/apple/emoji/1_164.png deleted file mode 100644 index 375eaf2e25..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_165.png b/TMessagesProj/src/emojis/apple/emoji/1_165.png deleted file mode 100644 index 5740612c02..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_166.png b/TMessagesProj/src/emojis/apple/emoji/1_166.png deleted file mode 100644 index 4b9cdfdf8f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_167.png b/TMessagesProj/src/emojis/apple/emoji/1_167.png deleted file mode 100644 index 98b7ff73f2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_168.png b/TMessagesProj/src/emojis/apple/emoji/1_168.png deleted file mode 100644 index 8f1128e1dd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_169.png b/TMessagesProj/src/emojis/apple/emoji/1_169.png deleted file mode 100644 index 7875404513..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_17.png b/TMessagesProj/src/emojis/apple/emoji/1_17.png deleted file mode 100644 index d1f5446cd6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_170.png b/TMessagesProj/src/emojis/apple/emoji/1_170.png deleted file mode 100644 index df8f1db38e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_171.png b/TMessagesProj/src/emojis/apple/emoji/1_171.png deleted file mode 100644 index c749094de5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_172.png b/TMessagesProj/src/emojis/apple/emoji/1_172.png deleted file mode 100644 index cd37e27cfa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_173.png b/TMessagesProj/src/emojis/apple/emoji/1_173.png deleted file mode 100644 index 55d296cf88..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_174.png b/TMessagesProj/src/emojis/apple/emoji/1_174.png deleted file mode 100644 index f786c26287..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_175.png b/TMessagesProj/src/emojis/apple/emoji/1_175.png deleted file mode 100644 index b1ab0cf74f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_176.png b/TMessagesProj/src/emojis/apple/emoji/1_176.png deleted file mode 100644 index 440dc9379d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_177.png b/TMessagesProj/src/emojis/apple/emoji/1_177.png deleted file mode 100644 index d8a7dca72e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_178.png b/TMessagesProj/src/emojis/apple/emoji/1_178.png deleted file mode 100644 index 5e63ccab2b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_179.png b/TMessagesProj/src/emojis/apple/emoji/1_179.png deleted file mode 100644 index f1725d4515..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_18.png b/TMessagesProj/src/emojis/apple/emoji/1_18.png deleted file mode 100644 index 618aef35af..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_180.png b/TMessagesProj/src/emojis/apple/emoji/1_180.png deleted file mode 100644 index c86124dfd9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_181.png b/TMessagesProj/src/emojis/apple/emoji/1_181.png deleted file mode 100644 index a8ee3574c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_182.png b/TMessagesProj/src/emojis/apple/emoji/1_182.png deleted file mode 100644 index df48e72b62..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_183.png b/TMessagesProj/src/emojis/apple/emoji/1_183.png deleted file mode 100644 index cbf05eae12..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_184.png b/TMessagesProj/src/emojis/apple/emoji/1_184.png deleted file mode 100644 index ff09d0b2d6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_185.png b/TMessagesProj/src/emojis/apple/emoji/1_185.png deleted file mode 100644 index 617a3b77a3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_186.png b/TMessagesProj/src/emojis/apple/emoji/1_186.png deleted file mode 100644 index 4bc74d1550..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_187.png b/TMessagesProj/src/emojis/apple/emoji/1_187.png deleted file mode 100644 index 9530d191df..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_188.png b/TMessagesProj/src/emojis/apple/emoji/1_188.png deleted file mode 100644 index d5e10b4d56..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_189.png b/TMessagesProj/src/emojis/apple/emoji/1_189.png deleted file mode 100644 index 7c932eca40..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_19.png b/TMessagesProj/src/emojis/apple/emoji/1_19.png deleted file mode 100644 index faf945ab23..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_190.png b/TMessagesProj/src/emojis/apple/emoji/1_190.png deleted file mode 100644 index abe79ae7c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_191.png b/TMessagesProj/src/emojis/apple/emoji/1_191.png deleted file mode 100644 index be88029494..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_192.png b/TMessagesProj/src/emojis/apple/emoji/1_192.png deleted file mode 100644 index b9d05f8360..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_193.png b/TMessagesProj/src/emojis/apple/emoji/1_193.png deleted file mode 100644 index ecec20fadb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_194.png b/TMessagesProj/src/emojis/apple/emoji/1_194.png deleted file mode 100644 index 7ea8d4eb5c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_195.png b/TMessagesProj/src/emojis/apple/emoji/1_195.png deleted file mode 100644 index affae43c46..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_196.png b/TMessagesProj/src/emojis/apple/emoji/1_196.png deleted file mode 100644 index d0845b6efc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_197.png b/TMessagesProj/src/emojis/apple/emoji/1_197.png deleted file mode 100644 index 244e947051..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_198.png b/TMessagesProj/src/emojis/apple/emoji/1_198.png deleted file mode 100644 index ff0968a0a4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_199.png b/TMessagesProj/src/emojis/apple/emoji/1_199.png deleted file mode 100644 index 58d93c2589..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_2.png b/TMessagesProj/src/emojis/apple/emoji/1_2.png deleted file mode 100644 index df96d00b1b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_20.png b/TMessagesProj/src/emojis/apple/emoji/1_20.png deleted file mode 100644 index 4277668995..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_200.png b/TMessagesProj/src/emojis/apple/emoji/1_200.png deleted file mode 100644 index 4b1b975a04..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_201.png b/TMessagesProj/src/emojis/apple/emoji/1_201.png deleted file mode 100644 index 5bf8b5215f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_202.png b/TMessagesProj/src/emojis/apple/emoji/1_202.png deleted file mode 100644 index ffa4d7fca2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_203.png b/TMessagesProj/src/emojis/apple/emoji/1_203.png deleted file mode 100644 index 1fbd396987..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_204.png b/TMessagesProj/src/emojis/apple/emoji/1_204.png deleted file mode 100644 index 9ed5b6c488..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_205.png b/TMessagesProj/src/emojis/apple/emoji/1_205.png deleted file mode 100644 index 2505f22b15..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_206.png b/TMessagesProj/src/emojis/apple/emoji/1_206.png deleted file mode 100644 index 32f70e3481..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_207.png b/TMessagesProj/src/emojis/apple/emoji/1_207.png deleted file mode 100644 index 17f0b9f8d8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_208.png b/TMessagesProj/src/emojis/apple/emoji/1_208.png deleted file mode 100644 index d606b13980..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_209.png b/TMessagesProj/src/emojis/apple/emoji/1_209.png deleted file mode 100644 index 43cac5ed27..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_21.png b/TMessagesProj/src/emojis/apple/emoji/1_21.png deleted file mode 100644 index 9656c4378b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_210.png b/TMessagesProj/src/emojis/apple/emoji/1_210.png deleted file mode 100644 index d6b49f3713..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_22.png b/TMessagesProj/src/emojis/apple/emoji/1_22.png deleted file mode 100644 index 682a8bdaec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_23.png b/TMessagesProj/src/emojis/apple/emoji/1_23.png deleted file mode 100644 index fae635d334..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_24.png b/TMessagesProj/src/emojis/apple/emoji/1_24.png deleted file mode 100644 index 2004c81761..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_25.png b/TMessagesProj/src/emojis/apple/emoji/1_25.png deleted file mode 100644 index 1c4338a61c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_26.png b/TMessagesProj/src/emojis/apple/emoji/1_26.png deleted file mode 100644 index 02e8f3fb86..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_27.png b/TMessagesProj/src/emojis/apple/emoji/1_27.png deleted file mode 100644 index 0f345afe6b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_28.png b/TMessagesProj/src/emojis/apple/emoji/1_28.png deleted file mode 100644 index 9a47f3eeee..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_29.png b/TMessagesProj/src/emojis/apple/emoji/1_29.png deleted file mode 100644 index 81a920c63a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_3.png b/TMessagesProj/src/emojis/apple/emoji/1_3.png deleted file mode 100644 index 9f0c6efc03..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_30.png b/TMessagesProj/src/emojis/apple/emoji/1_30.png deleted file mode 100644 index 43a3a6f8cf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_31.png b/TMessagesProj/src/emojis/apple/emoji/1_31.png deleted file mode 100644 index b4593912b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_32.png b/TMessagesProj/src/emojis/apple/emoji/1_32.png deleted file mode 100644 index be726cc9f8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_33.png b/TMessagesProj/src/emojis/apple/emoji/1_33.png deleted file mode 100644 index 70c2b8963f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_34.png b/TMessagesProj/src/emojis/apple/emoji/1_34.png deleted file mode 100644 index 2b28d7fb2a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_35.png b/TMessagesProj/src/emojis/apple/emoji/1_35.png deleted file mode 100644 index bd75c5e6d7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_36.png b/TMessagesProj/src/emojis/apple/emoji/1_36.png deleted file mode 100644 index 76a322a426..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_37.png b/TMessagesProj/src/emojis/apple/emoji/1_37.png deleted file mode 100644 index 69198bc9f1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_38.png b/TMessagesProj/src/emojis/apple/emoji/1_38.png deleted file mode 100644 index 7d27869e15..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_39.png b/TMessagesProj/src/emojis/apple/emoji/1_39.png deleted file mode 100644 index 33f40f9723..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_4.png b/TMessagesProj/src/emojis/apple/emoji/1_4.png deleted file mode 100644 index 277a4aa8af..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_40.png b/TMessagesProj/src/emojis/apple/emoji/1_40.png deleted file mode 100644 index 2a9520ee16..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_41.png b/TMessagesProj/src/emojis/apple/emoji/1_41.png deleted file mode 100644 index bbec0c2ecc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_42.png b/TMessagesProj/src/emojis/apple/emoji/1_42.png deleted file mode 100644 index c89b5106d1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_43.png b/TMessagesProj/src/emojis/apple/emoji/1_43.png deleted file mode 100644 index 7474baf3b3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_44.png b/TMessagesProj/src/emojis/apple/emoji/1_44.png deleted file mode 100644 index be048d03e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_45.png b/TMessagesProj/src/emojis/apple/emoji/1_45.png deleted file mode 100644 index 61c2f12534..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_46.png b/TMessagesProj/src/emojis/apple/emoji/1_46.png deleted file mode 100644 index 1d94a74228..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_47.png b/TMessagesProj/src/emojis/apple/emoji/1_47.png deleted file mode 100644 index 8f93a56238..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_48.png b/TMessagesProj/src/emojis/apple/emoji/1_48.png deleted file mode 100644 index 8230419e41..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_49.png b/TMessagesProj/src/emojis/apple/emoji/1_49.png deleted file mode 100644 index 0adb766ac8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_5.png b/TMessagesProj/src/emojis/apple/emoji/1_5.png deleted file mode 100644 index 14807c1b75..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_50.png b/TMessagesProj/src/emojis/apple/emoji/1_50.png deleted file mode 100644 index f216d43a16..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_51.png b/TMessagesProj/src/emojis/apple/emoji/1_51.png deleted file mode 100644 index 4c33a33996..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_52.png b/TMessagesProj/src/emojis/apple/emoji/1_52.png deleted file mode 100644 index d78996e1ae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_53.png b/TMessagesProj/src/emojis/apple/emoji/1_53.png deleted file mode 100644 index 180b048260..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_54.png b/TMessagesProj/src/emojis/apple/emoji/1_54.png deleted file mode 100644 index e9d68aaa19..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_55.png b/TMessagesProj/src/emojis/apple/emoji/1_55.png deleted file mode 100644 index d14938b2d3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_56.png b/TMessagesProj/src/emojis/apple/emoji/1_56.png deleted file mode 100644 index e8f8d8e3fc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_57.png b/TMessagesProj/src/emojis/apple/emoji/1_57.png deleted file mode 100644 index 0fa14c16a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_58.png b/TMessagesProj/src/emojis/apple/emoji/1_58.png deleted file mode 100644 index 175d436060..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_59.png b/TMessagesProj/src/emojis/apple/emoji/1_59.png deleted file mode 100644 index 348d8600a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_6.png b/TMessagesProj/src/emojis/apple/emoji/1_6.png deleted file mode 100644 index 100bc3cfc6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_60.png b/TMessagesProj/src/emojis/apple/emoji/1_60.png deleted file mode 100644 index cf87e514b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_61.png b/TMessagesProj/src/emojis/apple/emoji/1_61.png deleted file mode 100644 index 157fca59ed..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_62.png b/TMessagesProj/src/emojis/apple/emoji/1_62.png deleted file mode 100644 index 671213974f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_63.png b/TMessagesProj/src/emojis/apple/emoji/1_63.png deleted file mode 100644 index 04b76cd1ac..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_64.png b/TMessagesProj/src/emojis/apple/emoji/1_64.png deleted file mode 100644 index 4ec11ac0de..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_65.png b/TMessagesProj/src/emojis/apple/emoji/1_65.png deleted file mode 100644 index 34faa681c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_66.png b/TMessagesProj/src/emojis/apple/emoji/1_66.png deleted file mode 100644 index d1ea0a1b0e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_67.png b/TMessagesProj/src/emojis/apple/emoji/1_67.png deleted file mode 100644 index 7293073e44..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_68.png b/TMessagesProj/src/emojis/apple/emoji/1_68.png deleted file mode 100644 index 89c70819b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_69.png b/TMessagesProj/src/emojis/apple/emoji/1_69.png deleted file mode 100644 index db0ba331f9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_7.png b/TMessagesProj/src/emojis/apple/emoji/1_7.png deleted file mode 100644 index 62e160e6e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_70.png b/TMessagesProj/src/emojis/apple/emoji/1_70.png deleted file mode 100644 index 2551e5955f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_71.png b/TMessagesProj/src/emojis/apple/emoji/1_71.png deleted file mode 100644 index a565a1ab3c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_72.png b/TMessagesProj/src/emojis/apple/emoji/1_72.png deleted file mode 100644 index 159553da5d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_73.png b/TMessagesProj/src/emojis/apple/emoji/1_73.png deleted file mode 100644 index ecd256ff65..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_74.png b/TMessagesProj/src/emojis/apple/emoji/1_74.png deleted file mode 100644 index 22c6d2b6c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_75.png b/TMessagesProj/src/emojis/apple/emoji/1_75.png deleted file mode 100644 index bb1b3392f7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_76.png b/TMessagesProj/src/emojis/apple/emoji/1_76.png deleted file mode 100644 index 029a9c84eb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_77.png b/TMessagesProj/src/emojis/apple/emoji/1_77.png deleted file mode 100644 index ed65385a08..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_78.png b/TMessagesProj/src/emojis/apple/emoji/1_78.png deleted file mode 100644 index 8d8fedd6f3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_79.png b/TMessagesProj/src/emojis/apple/emoji/1_79.png deleted file mode 100644 index 847dbbedc8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_8.png b/TMessagesProj/src/emojis/apple/emoji/1_8.png deleted file mode 100644 index a7d8783e8d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_80.png b/TMessagesProj/src/emojis/apple/emoji/1_80.png deleted file mode 100644 index 099e53f888..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_81.png b/TMessagesProj/src/emojis/apple/emoji/1_81.png deleted file mode 100644 index 0fd34aa311..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_82.png b/TMessagesProj/src/emojis/apple/emoji/1_82.png deleted file mode 100644 index bae2d80c3b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_83.png b/TMessagesProj/src/emojis/apple/emoji/1_83.png deleted file mode 100644 index a04fa225e0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_84.png b/TMessagesProj/src/emojis/apple/emoji/1_84.png deleted file mode 100644 index 60ae0d748e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_85.png b/TMessagesProj/src/emojis/apple/emoji/1_85.png deleted file mode 100644 index ae2f125151..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_86.png b/TMessagesProj/src/emojis/apple/emoji/1_86.png deleted file mode 100644 index a2f3a35c26..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_87.png b/TMessagesProj/src/emojis/apple/emoji/1_87.png deleted file mode 100644 index e5bb3e361d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_88.png b/TMessagesProj/src/emojis/apple/emoji/1_88.png deleted file mode 100644 index 43d320c73b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_89.png b/TMessagesProj/src/emojis/apple/emoji/1_89.png deleted file mode 100644 index 9d43535d0a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_9.png b/TMessagesProj/src/emojis/apple/emoji/1_9.png deleted file mode 100644 index 7233c3a412..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_90.png b/TMessagesProj/src/emojis/apple/emoji/1_90.png deleted file mode 100644 index 08ed23405a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_91.png b/TMessagesProj/src/emojis/apple/emoji/1_91.png deleted file mode 100644 index e010b305cd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_92.png b/TMessagesProj/src/emojis/apple/emoji/1_92.png deleted file mode 100644 index 5ef68d15a7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_93.png b/TMessagesProj/src/emojis/apple/emoji/1_93.png deleted file mode 100644 index 51af9b1188..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_94.png b/TMessagesProj/src/emojis/apple/emoji/1_94.png deleted file mode 100644 index 9beca00170..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_95.png b/TMessagesProj/src/emojis/apple/emoji/1_95.png deleted file mode 100644 index e45a93e2e6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_96.png b/TMessagesProj/src/emojis/apple/emoji/1_96.png deleted file mode 100644 index 936a273818..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_97.png b/TMessagesProj/src/emojis/apple/emoji/1_97.png deleted file mode 100644 index aa32c6c2d8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_98.png b/TMessagesProj/src/emojis/apple/emoji/1_98.png deleted file mode 100644 index 428522566c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/1_99.png b/TMessagesProj/src/emojis/apple/emoji/1_99.png deleted file mode 100644 index c5a7fdfbe7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/1_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_0.png b/TMessagesProj/src/emojis/apple/emoji/2_0.png deleted file mode 100644 index baa1cda873..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_1.png b/TMessagesProj/src/emojis/apple/emoji/2_1.png deleted file mode 100644 index 599d037215..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_10.png b/TMessagesProj/src/emojis/apple/emoji/2_10.png deleted file mode 100644 index f6dd84d05d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_100.png b/TMessagesProj/src/emojis/apple/emoji/2_100.png deleted file mode 100644 index 9865cb4728..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_101.png b/TMessagesProj/src/emojis/apple/emoji/2_101.png deleted file mode 100644 index 951920aa66..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_102.png b/TMessagesProj/src/emojis/apple/emoji/2_102.png deleted file mode 100644 index a5bd1b5f30..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_103.png b/TMessagesProj/src/emojis/apple/emoji/2_103.png deleted file mode 100644 index 865024e193..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_104.png b/TMessagesProj/src/emojis/apple/emoji/2_104.png deleted file mode 100644 index ca6de53b95..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_105.png b/TMessagesProj/src/emojis/apple/emoji/2_105.png deleted file mode 100644 index 2b78912022..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_106.png b/TMessagesProj/src/emojis/apple/emoji/2_106.png deleted file mode 100644 index 3d05bb15fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_107.png b/TMessagesProj/src/emojis/apple/emoji/2_107.png deleted file mode 100644 index 80fee3013b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_108.png b/TMessagesProj/src/emojis/apple/emoji/2_108.png deleted file mode 100644 index 22f56a9558..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_109.png b/TMessagesProj/src/emojis/apple/emoji/2_109.png deleted file mode 100644 index edb749d912..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_11.png b/TMessagesProj/src/emojis/apple/emoji/2_11.png deleted file mode 100644 index acaa175833..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_110.png b/TMessagesProj/src/emojis/apple/emoji/2_110.png deleted file mode 100644 index 8d7c90bf7e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_111.png b/TMessagesProj/src/emojis/apple/emoji/2_111.png deleted file mode 100644 index 9730a9a062..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_112.png b/TMessagesProj/src/emojis/apple/emoji/2_112.png deleted file mode 100644 index 960d0a119c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_113.png b/TMessagesProj/src/emojis/apple/emoji/2_113.png deleted file mode 100644 index 69a1ddd1f3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_114.png b/TMessagesProj/src/emojis/apple/emoji/2_114.png deleted file mode 100644 index dd28f1d69b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_115.png b/TMessagesProj/src/emojis/apple/emoji/2_115.png deleted file mode 100644 index 0a1858e452..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_116.png b/TMessagesProj/src/emojis/apple/emoji/2_116.png deleted file mode 100644 index 3a919526a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_117.png b/TMessagesProj/src/emojis/apple/emoji/2_117.png deleted file mode 100644 index 8b573a8eed..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_118.png b/TMessagesProj/src/emojis/apple/emoji/2_118.png deleted file mode 100644 index a7774aa48a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_119.png b/TMessagesProj/src/emojis/apple/emoji/2_119.png deleted file mode 100644 index 8b3ac4874f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_12.png b/TMessagesProj/src/emojis/apple/emoji/2_12.png deleted file mode 100644 index b36887cfae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_120.png b/TMessagesProj/src/emojis/apple/emoji/2_120.png deleted file mode 100644 index c80efe27da..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_121.png b/TMessagesProj/src/emojis/apple/emoji/2_121.png deleted file mode 100644 index 3d2652080a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_122.png b/TMessagesProj/src/emojis/apple/emoji/2_122.png deleted file mode 100644 index d6a25fc591..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_123.png b/TMessagesProj/src/emojis/apple/emoji/2_123.png deleted file mode 100644 index ad9597d13f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_124.png b/TMessagesProj/src/emojis/apple/emoji/2_124.png deleted file mode 100644 index c01ec35b0f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_125.png b/TMessagesProj/src/emojis/apple/emoji/2_125.png deleted file mode 100644 index aa27d816b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_126.png b/TMessagesProj/src/emojis/apple/emoji/2_126.png deleted file mode 100644 index 6b433ae87d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_127.png b/TMessagesProj/src/emojis/apple/emoji/2_127.png deleted file mode 100644 index 9663f6df85..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_13.png b/TMessagesProj/src/emojis/apple/emoji/2_13.png deleted file mode 100644 index f9c9f0674e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_14.png b/TMessagesProj/src/emojis/apple/emoji/2_14.png deleted file mode 100644 index 7e195a91c5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_15.png b/TMessagesProj/src/emojis/apple/emoji/2_15.png deleted file mode 100644 index bbaa6f4bf4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_16.png b/TMessagesProj/src/emojis/apple/emoji/2_16.png deleted file mode 100644 index b8c1c2c056..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_17.png b/TMessagesProj/src/emojis/apple/emoji/2_17.png deleted file mode 100644 index f9bb7dd1b7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_18.png b/TMessagesProj/src/emojis/apple/emoji/2_18.png deleted file mode 100644 index 3e18ce9208..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_19.png b/TMessagesProj/src/emojis/apple/emoji/2_19.png deleted file mode 100644 index fbffa2459e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_2.png b/TMessagesProj/src/emojis/apple/emoji/2_2.png deleted file mode 100644 index 3de6212698..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_20.png b/TMessagesProj/src/emojis/apple/emoji/2_20.png deleted file mode 100644 index db7258ff1a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_21.png b/TMessagesProj/src/emojis/apple/emoji/2_21.png deleted file mode 100644 index fb6e876241..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_22.png b/TMessagesProj/src/emojis/apple/emoji/2_22.png deleted file mode 100644 index fdf4695a3f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_23.png b/TMessagesProj/src/emojis/apple/emoji/2_23.png deleted file mode 100644 index ddc1997c18..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_24.png b/TMessagesProj/src/emojis/apple/emoji/2_24.png deleted file mode 100644 index d04facac65..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_25.png b/TMessagesProj/src/emojis/apple/emoji/2_25.png deleted file mode 100644 index dc0fbbf4c0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_26.png b/TMessagesProj/src/emojis/apple/emoji/2_26.png deleted file mode 100644 index 161cf8c46f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_27.png b/TMessagesProj/src/emojis/apple/emoji/2_27.png deleted file mode 100644 index 42a1c00acf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_28.png b/TMessagesProj/src/emojis/apple/emoji/2_28.png deleted file mode 100644 index d3d1086bab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_29.png b/TMessagesProj/src/emojis/apple/emoji/2_29.png deleted file mode 100644 index c67c56adeb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_3.png b/TMessagesProj/src/emojis/apple/emoji/2_3.png deleted file mode 100644 index e8562ad523..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_30.png b/TMessagesProj/src/emojis/apple/emoji/2_30.png deleted file mode 100644 index 9af0c69225..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_31.png b/TMessagesProj/src/emojis/apple/emoji/2_31.png deleted file mode 100644 index 445b5af775..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_32.png b/TMessagesProj/src/emojis/apple/emoji/2_32.png deleted file mode 100644 index f5e5007d95..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_33.png b/TMessagesProj/src/emojis/apple/emoji/2_33.png deleted file mode 100644 index 1f4a01e8a2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_34.png b/TMessagesProj/src/emojis/apple/emoji/2_34.png deleted file mode 100644 index 226fac8245..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_35.png b/TMessagesProj/src/emojis/apple/emoji/2_35.png deleted file mode 100644 index b14cdde07c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_36.png b/TMessagesProj/src/emojis/apple/emoji/2_36.png deleted file mode 100644 index 2ceda024e7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_37.png b/TMessagesProj/src/emojis/apple/emoji/2_37.png deleted file mode 100644 index e304a104e5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_38.png b/TMessagesProj/src/emojis/apple/emoji/2_38.png deleted file mode 100644 index b3c69771b5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_39.png b/TMessagesProj/src/emojis/apple/emoji/2_39.png deleted file mode 100644 index e793304331..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_4.png b/TMessagesProj/src/emojis/apple/emoji/2_4.png deleted file mode 100644 index 00ce5d2d91..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_40.png b/TMessagesProj/src/emojis/apple/emoji/2_40.png deleted file mode 100644 index 9552b9c39b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_41.png b/TMessagesProj/src/emojis/apple/emoji/2_41.png deleted file mode 100644 index 6006748664..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_42.png b/TMessagesProj/src/emojis/apple/emoji/2_42.png deleted file mode 100644 index f90d6a07e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_43.png b/TMessagesProj/src/emojis/apple/emoji/2_43.png deleted file mode 100644 index aa7db40b63..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_44.png b/TMessagesProj/src/emojis/apple/emoji/2_44.png deleted file mode 100644 index 809868df9d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_45.png b/TMessagesProj/src/emojis/apple/emoji/2_45.png deleted file mode 100644 index 563efb5c46..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_46.png b/TMessagesProj/src/emojis/apple/emoji/2_46.png deleted file mode 100644 index 7055f03560..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_47.png b/TMessagesProj/src/emojis/apple/emoji/2_47.png deleted file mode 100644 index 9ce104389c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_48.png b/TMessagesProj/src/emojis/apple/emoji/2_48.png deleted file mode 100644 index cc1bcb21b0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_49.png b/TMessagesProj/src/emojis/apple/emoji/2_49.png deleted file mode 100644 index 431edbb644..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_5.png b/TMessagesProj/src/emojis/apple/emoji/2_5.png deleted file mode 100644 index bac81aab06..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_50.png b/TMessagesProj/src/emojis/apple/emoji/2_50.png deleted file mode 100644 index 22b764f70a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_51.png b/TMessagesProj/src/emojis/apple/emoji/2_51.png deleted file mode 100644 index adf8e168d8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_52.png b/TMessagesProj/src/emojis/apple/emoji/2_52.png deleted file mode 100644 index 17abb54c6b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_53.png b/TMessagesProj/src/emojis/apple/emoji/2_53.png deleted file mode 100644 index 556f596716..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_54.png b/TMessagesProj/src/emojis/apple/emoji/2_54.png deleted file mode 100644 index 817b5ce3fa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_55.png b/TMessagesProj/src/emojis/apple/emoji/2_55.png deleted file mode 100644 index 386c4118fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_56.png b/TMessagesProj/src/emojis/apple/emoji/2_56.png deleted file mode 100644 index 3e552a7bb7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_57.png b/TMessagesProj/src/emojis/apple/emoji/2_57.png deleted file mode 100644 index 9fc438d04f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_58.png b/TMessagesProj/src/emojis/apple/emoji/2_58.png deleted file mode 100644 index bcbb52083b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_59.png b/TMessagesProj/src/emojis/apple/emoji/2_59.png deleted file mode 100644 index e88230544d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_6.png b/TMessagesProj/src/emojis/apple/emoji/2_6.png deleted file mode 100644 index 45f1a6b3fe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_60.png b/TMessagesProj/src/emojis/apple/emoji/2_60.png deleted file mode 100644 index b5d076743e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_61.png b/TMessagesProj/src/emojis/apple/emoji/2_61.png deleted file mode 100644 index b347292f6e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_62.png b/TMessagesProj/src/emojis/apple/emoji/2_62.png deleted file mode 100644 index 80b01ecd4d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_63.png b/TMessagesProj/src/emojis/apple/emoji/2_63.png deleted file mode 100644 index c57b611313..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_64.png b/TMessagesProj/src/emojis/apple/emoji/2_64.png deleted file mode 100644 index cf04796c59..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_65.png b/TMessagesProj/src/emojis/apple/emoji/2_65.png deleted file mode 100644 index 5491978a98..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_66.png b/TMessagesProj/src/emojis/apple/emoji/2_66.png deleted file mode 100644 index 514850b2b0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_67.png b/TMessagesProj/src/emojis/apple/emoji/2_67.png deleted file mode 100644 index 7396a446f0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_68.png b/TMessagesProj/src/emojis/apple/emoji/2_68.png deleted file mode 100644 index fc338a001b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_69.png b/TMessagesProj/src/emojis/apple/emoji/2_69.png deleted file mode 100644 index 8f22bca7ab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_7.png b/TMessagesProj/src/emojis/apple/emoji/2_7.png deleted file mode 100644 index 5396f8b399..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_70.png b/TMessagesProj/src/emojis/apple/emoji/2_70.png deleted file mode 100644 index 01effbd181..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_71.png b/TMessagesProj/src/emojis/apple/emoji/2_71.png deleted file mode 100644 index e34e21dec2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_72.png b/TMessagesProj/src/emojis/apple/emoji/2_72.png deleted file mode 100644 index dc4d42d189..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_73.png b/TMessagesProj/src/emojis/apple/emoji/2_73.png deleted file mode 100644 index 2b0c77579a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_74.png b/TMessagesProj/src/emojis/apple/emoji/2_74.png deleted file mode 100644 index 1d4a089dc5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_75.png b/TMessagesProj/src/emojis/apple/emoji/2_75.png deleted file mode 100644 index 84eca2e13e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_76.png b/TMessagesProj/src/emojis/apple/emoji/2_76.png deleted file mode 100644 index 84263f8c3c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_77.png b/TMessagesProj/src/emojis/apple/emoji/2_77.png deleted file mode 100644 index 221239c2a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_78.png b/TMessagesProj/src/emojis/apple/emoji/2_78.png deleted file mode 100644 index 8514280d7a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_79.png b/TMessagesProj/src/emojis/apple/emoji/2_79.png deleted file mode 100644 index 22aac9d1fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_8.png b/TMessagesProj/src/emojis/apple/emoji/2_8.png deleted file mode 100644 index fd94747333..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_80.png b/TMessagesProj/src/emojis/apple/emoji/2_80.png deleted file mode 100644 index 7e96280bed..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_81.png b/TMessagesProj/src/emojis/apple/emoji/2_81.png deleted file mode 100644 index be6420be70..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_82.png b/TMessagesProj/src/emojis/apple/emoji/2_82.png deleted file mode 100644 index dec450979a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_83.png b/TMessagesProj/src/emojis/apple/emoji/2_83.png deleted file mode 100644 index 3bf2383b27..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_84.png b/TMessagesProj/src/emojis/apple/emoji/2_84.png deleted file mode 100644 index 39edd5174c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_85.png b/TMessagesProj/src/emojis/apple/emoji/2_85.png deleted file mode 100644 index 2ff14a5f18..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_86.png b/TMessagesProj/src/emojis/apple/emoji/2_86.png deleted file mode 100644 index b68fe04ce2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_87.png b/TMessagesProj/src/emojis/apple/emoji/2_87.png deleted file mode 100644 index cd1347db2f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_88.png b/TMessagesProj/src/emojis/apple/emoji/2_88.png deleted file mode 100644 index 56e353d44b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_89.png b/TMessagesProj/src/emojis/apple/emoji/2_89.png deleted file mode 100644 index e3274d955c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_9.png b/TMessagesProj/src/emojis/apple/emoji/2_9.png deleted file mode 100644 index 1d80f5f89b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_90.png b/TMessagesProj/src/emojis/apple/emoji/2_90.png deleted file mode 100644 index 18bc828fb9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_91.png b/TMessagesProj/src/emojis/apple/emoji/2_91.png deleted file mode 100644 index fb8ff9a84f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_92.png b/TMessagesProj/src/emojis/apple/emoji/2_92.png deleted file mode 100644 index 6c23b07531..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_93.png b/TMessagesProj/src/emojis/apple/emoji/2_93.png deleted file mode 100644 index b17578829b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_94.png b/TMessagesProj/src/emojis/apple/emoji/2_94.png deleted file mode 100644 index 124bd51e2a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_95.png b/TMessagesProj/src/emojis/apple/emoji/2_95.png deleted file mode 100644 index 1dcc2e3c7e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_96.png b/TMessagesProj/src/emojis/apple/emoji/2_96.png deleted file mode 100644 index ab0a04dd1f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_97.png b/TMessagesProj/src/emojis/apple/emoji/2_97.png deleted file mode 100644 index 6df595576d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_98.png b/TMessagesProj/src/emojis/apple/emoji/2_98.png deleted file mode 100644 index 52b80df0b7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/2_99.png b/TMessagesProj/src/emojis/apple/emoji/2_99.png deleted file mode 100644 index 8aed90371f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/2_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_0.png b/TMessagesProj/src/emojis/apple/emoji/3_0.png deleted file mode 100644 index 02baef3a58..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_1.png b/TMessagesProj/src/emojis/apple/emoji/3_1.png deleted file mode 100644 index 74873afd3b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_10.png b/TMessagesProj/src/emojis/apple/emoji/3_10.png deleted file mode 100644 index dafa5df487..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_100.png b/TMessagesProj/src/emojis/apple/emoji/3_100.png deleted file mode 100644 index 1bd5c3ef6a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_101.png b/TMessagesProj/src/emojis/apple/emoji/3_101.png deleted file mode 100644 index 30b16041fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_102.png b/TMessagesProj/src/emojis/apple/emoji/3_102.png deleted file mode 100644 index 8db2c2cdd3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_103.png b/TMessagesProj/src/emojis/apple/emoji/3_103.png deleted file mode 100644 index ff8959841f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_104.png b/TMessagesProj/src/emojis/apple/emoji/3_104.png deleted file mode 100644 index 98641a5668..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_105.png b/TMessagesProj/src/emojis/apple/emoji/3_105.png deleted file mode 100644 index 81118141a1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_106.png b/TMessagesProj/src/emojis/apple/emoji/3_106.png deleted file mode 100644 index 519f1fa726..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_107.png b/TMessagesProj/src/emojis/apple/emoji/3_107.png deleted file mode 100644 index 96c2a4854c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_108.png b/TMessagesProj/src/emojis/apple/emoji/3_108.png deleted file mode 100644 index 5e5730fc7b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_109.png b/TMessagesProj/src/emojis/apple/emoji/3_109.png deleted file mode 100644 index 929d381b1f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_11.png b/TMessagesProj/src/emojis/apple/emoji/3_11.png deleted file mode 100644 index 3e04e28d22..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_110.png b/TMessagesProj/src/emojis/apple/emoji/3_110.png deleted file mode 100644 index b6e5931de1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_111.png b/TMessagesProj/src/emojis/apple/emoji/3_111.png deleted file mode 100644 index 81fc8a91da..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_112.png b/TMessagesProj/src/emojis/apple/emoji/3_112.png deleted file mode 100644 index acc5588d47..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_113.png b/TMessagesProj/src/emojis/apple/emoji/3_113.png deleted file mode 100644 index af7c606e21..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_114.png b/TMessagesProj/src/emojis/apple/emoji/3_114.png deleted file mode 100644 index 0fabe70d0e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_115.png b/TMessagesProj/src/emojis/apple/emoji/3_115.png deleted file mode 100644 index 680b4d6e6b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_116.png b/TMessagesProj/src/emojis/apple/emoji/3_116.png deleted file mode 100644 index 8f6ff1ebd2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_117.png b/TMessagesProj/src/emojis/apple/emoji/3_117.png deleted file mode 100644 index a6a74d2d21..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_118.png b/TMessagesProj/src/emojis/apple/emoji/3_118.png deleted file mode 100644 index f0c07f9ec4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_119.png b/TMessagesProj/src/emojis/apple/emoji/3_119.png deleted file mode 100644 index 41f2012dd5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_12.png b/TMessagesProj/src/emojis/apple/emoji/3_12.png deleted file mode 100644 index 9d2227931e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_120.png b/TMessagesProj/src/emojis/apple/emoji/3_120.png deleted file mode 100644 index c479b43b95..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_121.png b/TMessagesProj/src/emojis/apple/emoji/3_121.png deleted file mode 100644 index 543e2f1183..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_122.png b/TMessagesProj/src/emojis/apple/emoji/3_122.png deleted file mode 100644 index ad483d2522..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_123.png b/TMessagesProj/src/emojis/apple/emoji/3_123.png deleted file mode 100644 index ab729c8857..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_124.png b/TMessagesProj/src/emojis/apple/emoji/3_124.png deleted file mode 100644 index 5aef136427..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_125.png b/TMessagesProj/src/emojis/apple/emoji/3_125.png deleted file mode 100644 index 9b33a8f6f0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_126.png b/TMessagesProj/src/emojis/apple/emoji/3_126.png deleted file mode 100644 index 280e1026fc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_127.png b/TMessagesProj/src/emojis/apple/emoji/3_127.png deleted file mode 100644 index 938a09a5f6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_128.png b/TMessagesProj/src/emojis/apple/emoji/3_128.png deleted file mode 100644 index 56a1672fff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_129.png b/TMessagesProj/src/emojis/apple/emoji/3_129.png deleted file mode 100644 index 1ec22d07ef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_13.png b/TMessagesProj/src/emojis/apple/emoji/3_13.png deleted file mode 100644 index d975576f3d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_130.png b/TMessagesProj/src/emojis/apple/emoji/3_130.png deleted file mode 100644 index c92f1604f9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_131.png b/TMessagesProj/src/emojis/apple/emoji/3_131.png deleted file mode 100644 index c77c66b416..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_132.png b/TMessagesProj/src/emojis/apple/emoji/3_132.png deleted file mode 100644 index 61bc9d2659..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_133.png b/TMessagesProj/src/emojis/apple/emoji/3_133.png deleted file mode 100644 index ce924cafd2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_134.png b/TMessagesProj/src/emojis/apple/emoji/3_134.png deleted file mode 100644 index 8e7069aa20..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_135.png b/TMessagesProj/src/emojis/apple/emoji/3_135.png deleted file mode 100644 index ddab02a885..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_136.png b/TMessagesProj/src/emojis/apple/emoji/3_136.png deleted file mode 100644 index 18cb62ba4b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_137.png b/TMessagesProj/src/emojis/apple/emoji/3_137.png deleted file mode 100644 index d3caef3807..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_138.png b/TMessagesProj/src/emojis/apple/emoji/3_138.png deleted file mode 100644 index 582cd45eac..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_139.png b/TMessagesProj/src/emojis/apple/emoji/3_139.png deleted file mode 100644 index faf287c15b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_14.png b/TMessagesProj/src/emojis/apple/emoji/3_14.png deleted file mode 100644 index fb97531f4b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_140.png b/TMessagesProj/src/emojis/apple/emoji/3_140.png deleted file mode 100644 index 53dc904079..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_141.png b/TMessagesProj/src/emojis/apple/emoji/3_141.png deleted file mode 100644 index c2a37620a2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_142.png b/TMessagesProj/src/emojis/apple/emoji/3_142.png deleted file mode 100644 index 44f3f69650..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_143.png b/TMessagesProj/src/emojis/apple/emoji/3_143.png deleted file mode 100644 index ffcabb815e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_144.png b/TMessagesProj/src/emojis/apple/emoji/3_144.png deleted file mode 100644 index 4168d3c560..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_145.png b/TMessagesProj/src/emojis/apple/emoji/3_145.png deleted file mode 100644 index 914fa5f43c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_146.png b/TMessagesProj/src/emojis/apple/emoji/3_146.png deleted file mode 100644 index 9a558a1a59..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_147.png b/TMessagesProj/src/emojis/apple/emoji/3_147.png deleted file mode 100644 index bf54d0903c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_148.png b/TMessagesProj/src/emojis/apple/emoji/3_148.png deleted file mode 100644 index b2d4e5d632..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_149.png b/TMessagesProj/src/emojis/apple/emoji/3_149.png deleted file mode 100644 index 2e73e70b23..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_15.png b/TMessagesProj/src/emojis/apple/emoji/3_15.png deleted file mode 100644 index 5b187b9077..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_150.png b/TMessagesProj/src/emojis/apple/emoji/3_150.png deleted file mode 100644 index 494d95a1ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_151.png b/TMessagesProj/src/emojis/apple/emoji/3_151.png deleted file mode 100644 index 4c6518a5dc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_152.png b/TMessagesProj/src/emojis/apple/emoji/3_152.png deleted file mode 100644 index 0ec1f57792..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_153.png b/TMessagesProj/src/emojis/apple/emoji/3_153.png deleted file mode 100644 index 6f32677275..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_154.png b/TMessagesProj/src/emojis/apple/emoji/3_154.png deleted file mode 100644 index 2bd47270dd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_155.png b/TMessagesProj/src/emojis/apple/emoji/3_155.png deleted file mode 100644 index 40c616d018..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_156.png b/TMessagesProj/src/emojis/apple/emoji/3_156.png deleted file mode 100644 index e20355d59e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_157.png b/TMessagesProj/src/emojis/apple/emoji/3_157.png deleted file mode 100644 index c189b6e17d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_158.png b/TMessagesProj/src/emojis/apple/emoji/3_158.png deleted file mode 100644 index 2607411271..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_159.png b/TMessagesProj/src/emojis/apple/emoji/3_159.png deleted file mode 100644 index fc747a72bb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_16.png b/TMessagesProj/src/emojis/apple/emoji/3_16.png deleted file mode 100644 index 2e7df1d222..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_160.png b/TMessagesProj/src/emojis/apple/emoji/3_160.png deleted file mode 100644 index a885e12fe6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_161.png b/TMessagesProj/src/emojis/apple/emoji/3_161.png deleted file mode 100644 index c0a5c5fb20..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_162.png b/TMessagesProj/src/emojis/apple/emoji/3_162.png deleted file mode 100644 index 0143afbfd3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_163.png b/TMessagesProj/src/emojis/apple/emoji/3_163.png deleted file mode 100644 index 027ae3358e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_164.png b/TMessagesProj/src/emojis/apple/emoji/3_164.png deleted file mode 100644 index 6e715a71f8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_165.png b/TMessagesProj/src/emojis/apple/emoji/3_165.png deleted file mode 100644 index b5fb4f9c82..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_166.png b/TMessagesProj/src/emojis/apple/emoji/3_166.png deleted file mode 100644 index 67779d83bf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_167.png b/TMessagesProj/src/emojis/apple/emoji/3_167.png deleted file mode 100644 index 3673111f12..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_168.png b/TMessagesProj/src/emojis/apple/emoji/3_168.png deleted file mode 100644 index 6c2c1bd417..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_169.png b/TMessagesProj/src/emojis/apple/emoji/3_169.png deleted file mode 100644 index 9540e9a6fa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_17.png b/TMessagesProj/src/emojis/apple/emoji/3_17.png deleted file mode 100644 index d35aa510e1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_170.png b/TMessagesProj/src/emojis/apple/emoji/3_170.png deleted file mode 100644 index 0794f3166e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_171.png b/TMessagesProj/src/emojis/apple/emoji/3_171.png deleted file mode 100644 index 8692cef385..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_172.png b/TMessagesProj/src/emojis/apple/emoji/3_172.png deleted file mode 100644 index 4ef248fc85..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_173.png b/TMessagesProj/src/emojis/apple/emoji/3_173.png deleted file mode 100644 index 4eda81975c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_174.png b/TMessagesProj/src/emojis/apple/emoji/3_174.png deleted file mode 100644 index d93833e532..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_175.png b/TMessagesProj/src/emojis/apple/emoji/3_175.png deleted file mode 100644 index aeaa607bdd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_176.png b/TMessagesProj/src/emojis/apple/emoji/3_176.png deleted file mode 100644 index 81c4b7fb94..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_177.png b/TMessagesProj/src/emojis/apple/emoji/3_177.png deleted file mode 100644 index 412b92f49b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_178.png b/TMessagesProj/src/emojis/apple/emoji/3_178.png deleted file mode 100644 index ff8fff41a7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_179.png b/TMessagesProj/src/emojis/apple/emoji/3_179.png deleted file mode 100644 index 89ee352033..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_18.png b/TMessagesProj/src/emojis/apple/emoji/3_18.png deleted file mode 100644 index 2a243ffb18..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_180.png b/TMessagesProj/src/emojis/apple/emoji/3_180.png deleted file mode 100644 index 077704bd5c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_181.png b/TMessagesProj/src/emojis/apple/emoji/3_181.png deleted file mode 100644 index 43e08666c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_182.png b/TMessagesProj/src/emojis/apple/emoji/3_182.png deleted file mode 100644 index e7a7ef2bf5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_183.png b/TMessagesProj/src/emojis/apple/emoji/3_183.png deleted file mode 100644 index 1aaa2f9d27..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_184.png b/TMessagesProj/src/emojis/apple/emoji/3_184.png deleted file mode 100644 index dd0587dfa3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_185.png b/TMessagesProj/src/emojis/apple/emoji/3_185.png deleted file mode 100644 index d14dbea90f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_186.png b/TMessagesProj/src/emojis/apple/emoji/3_186.png deleted file mode 100644 index 73b8c97662..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_187.png b/TMessagesProj/src/emojis/apple/emoji/3_187.png deleted file mode 100644 index a087ebf0d4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_188.png b/TMessagesProj/src/emojis/apple/emoji/3_188.png deleted file mode 100644 index f0d3f3de03..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_189.png b/TMessagesProj/src/emojis/apple/emoji/3_189.png deleted file mode 100644 index 49ce71f449..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_19.png b/TMessagesProj/src/emojis/apple/emoji/3_19.png deleted file mode 100644 index c8f93cafc8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_190.png b/TMessagesProj/src/emojis/apple/emoji/3_190.png deleted file mode 100644 index 28db50c489..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_191.png b/TMessagesProj/src/emojis/apple/emoji/3_191.png deleted file mode 100644 index 054e59d962..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_192.png b/TMessagesProj/src/emojis/apple/emoji/3_192.png deleted file mode 100644 index d74917c6f4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_193.png b/TMessagesProj/src/emojis/apple/emoji/3_193.png deleted file mode 100644 index b1f49efccd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_194.png b/TMessagesProj/src/emojis/apple/emoji/3_194.png deleted file mode 100644 index c281d2309f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_195.png b/TMessagesProj/src/emojis/apple/emoji/3_195.png deleted file mode 100644 index 8a9d79b368..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_196.png b/TMessagesProj/src/emojis/apple/emoji/3_196.png deleted file mode 100644 index 8894cc872e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_197.png b/TMessagesProj/src/emojis/apple/emoji/3_197.png deleted file mode 100644 index ab3a2a04ea..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_198.png b/TMessagesProj/src/emojis/apple/emoji/3_198.png deleted file mode 100644 index 91857161c5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_199.png b/TMessagesProj/src/emojis/apple/emoji/3_199.png deleted file mode 100644 index 41df032daf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_2.png b/TMessagesProj/src/emojis/apple/emoji/3_2.png deleted file mode 100644 index e12fcd129d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_20.png b/TMessagesProj/src/emojis/apple/emoji/3_20.png deleted file mode 100644 index 30c59d3b79..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_200.png b/TMessagesProj/src/emojis/apple/emoji/3_200.png deleted file mode 100644 index b1588bea8a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_201.png b/TMessagesProj/src/emojis/apple/emoji/3_201.png deleted file mode 100644 index 4277db54e1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_202.png b/TMessagesProj/src/emojis/apple/emoji/3_202.png deleted file mode 100644 index dc222cec6b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_203.png b/TMessagesProj/src/emojis/apple/emoji/3_203.png deleted file mode 100644 index 3c2ff277e5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_204.png b/TMessagesProj/src/emojis/apple/emoji/3_204.png deleted file mode 100644 index 36d423753f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_205.png b/TMessagesProj/src/emojis/apple/emoji/3_205.png deleted file mode 100644 index 7b8d6adf26..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_206.png b/TMessagesProj/src/emojis/apple/emoji/3_206.png deleted file mode 100644 index 8259f5da57..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_207.png b/TMessagesProj/src/emojis/apple/emoji/3_207.png deleted file mode 100644 index 0ef796c308..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_208.png b/TMessagesProj/src/emojis/apple/emoji/3_208.png deleted file mode 100644 index aa4f558907..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_209.png b/TMessagesProj/src/emojis/apple/emoji/3_209.png deleted file mode 100644 index 3cdade7900..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_21.png b/TMessagesProj/src/emojis/apple/emoji/3_21.png deleted file mode 100644 index 0b1764f99c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_210.png b/TMessagesProj/src/emojis/apple/emoji/3_210.png deleted file mode 100644 index 500a7dd7f2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_211.png b/TMessagesProj/src/emojis/apple/emoji/3_211.png deleted file mode 100644 index cb0312f559..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_212.png b/TMessagesProj/src/emojis/apple/emoji/3_212.png deleted file mode 100644 index f43d4b7a44..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_213.png b/TMessagesProj/src/emojis/apple/emoji/3_213.png deleted file mode 100644 index 7808c66ed6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_214.png b/TMessagesProj/src/emojis/apple/emoji/3_214.png deleted file mode 100644 index af30e1f0c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_215.png b/TMessagesProj/src/emojis/apple/emoji/3_215.png deleted file mode 100644 index c281bac59f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_216.png b/TMessagesProj/src/emojis/apple/emoji/3_216.png deleted file mode 100644 index 8390adb562..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_217.png b/TMessagesProj/src/emojis/apple/emoji/3_217.png deleted file mode 100644 index 7ad3279a84..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_218.png b/TMessagesProj/src/emojis/apple/emoji/3_218.png deleted file mode 100644 index 935f6e7ca8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_219.png b/TMessagesProj/src/emojis/apple/emoji/3_219.png deleted file mode 100644 index 44108bb939..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_22.png b/TMessagesProj/src/emojis/apple/emoji/3_22.png deleted file mode 100644 index 44162e76ac..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_220.png b/TMessagesProj/src/emojis/apple/emoji/3_220.png deleted file mode 100644 index 4f1b9c7f0a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_221.png b/TMessagesProj/src/emojis/apple/emoji/3_221.png deleted file mode 100644 index 44b40cf528..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_222.png b/TMessagesProj/src/emojis/apple/emoji/3_222.png deleted file mode 100644 index 4422960109..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_223.png b/TMessagesProj/src/emojis/apple/emoji/3_223.png deleted file mode 100644 index 05712cb46e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_224.png b/TMessagesProj/src/emojis/apple/emoji/3_224.png deleted file mode 100644 index 87b41094d2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_225.png b/TMessagesProj/src/emojis/apple/emoji/3_225.png deleted file mode 100644 index 2df1c6b613..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_226.png b/TMessagesProj/src/emojis/apple/emoji/3_226.png deleted file mode 100644 index a2226da60d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_227.png b/TMessagesProj/src/emojis/apple/emoji/3_227.png deleted file mode 100644 index 77ccc3a06e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_228.png b/TMessagesProj/src/emojis/apple/emoji/3_228.png deleted file mode 100644 index 3c1b43bd70..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_229.png b/TMessagesProj/src/emojis/apple/emoji/3_229.png deleted file mode 100644 index 9dbaf4754b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_229.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_23.png b/TMessagesProj/src/emojis/apple/emoji/3_23.png deleted file mode 100644 index c173ebca93..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_230.png b/TMessagesProj/src/emojis/apple/emoji/3_230.png deleted file mode 100644 index 9c01d9ba24..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_230.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_231.png b/TMessagesProj/src/emojis/apple/emoji/3_231.png deleted file mode 100644 index 48bd5d94a4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_231.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_232.png b/TMessagesProj/src/emojis/apple/emoji/3_232.png deleted file mode 100644 index a52b693ffd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_232.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_233.png b/TMessagesProj/src/emojis/apple/emoji/3_233.png deleted file mode 100644 index 1e970ba499..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_233.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_234.png b/TMessagesProj/src/emojis/apple/emoji/3_234.png deleted file mode 100644 index 68e87a3782..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_234.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_235.png b/TMessagesProj/src/emojis/apple/emoji/3_235.png deleted file mode 100644 index c52aa3c22b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_235.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_236.png b/TMessagesProj/src/emojis/apple/emoji/3_236.png deleted file mode 100644 index 1d435948b3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_236.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_237.png b/TMessagesProj/src/emojis/apple/emoji/3_237.png deleted file mode 100644 index 448bd4b58b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_237.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_238.png b/TMessagesProj/src/emojis/apple/emoji/3_238.png deleted file mode 100644 index f16dbe8a49..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_238.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_239.png b/TMessagesProj/src/emojis/apple/emoji/3_239.png deleted file mode 100644 index 335aca10ca..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_239.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_24.png b/TMessagesProj/src/emojis/apple/emoji/3_24.png deleted file mode 100644 index a01d5f71ba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_240.png b/TMessagesProj/src/emojis/apple/emoji/3_240.png deleted file mode 100644 index 169132eadb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_240.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_241.png b/TMessagesProj/src/emojis/apple/emoji/3_241.png deleted file mode 100644 index 7cbdd0ca32..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_241.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_242.png b/TMessagesProj/src/emojis/apple/emoji/3_242.png deleted file mode 100644 index 2f6b7b5b8c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_242.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_243.png b/TMessagesProj/src/emojis/apple/emoji/3_243.png deleted file mode 100644 index d526f196bb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_243.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_244.png b/TMessagesProj/src/emojis/apple/emoji/3_244.png deleted file mode 100644 index 0e31dd433d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_244.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_245.png b/TMessagesProj/src/emojis/apple/emoji/3_245.png deleted file mode 100644 index 0272dc183f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_245.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_246.png b/TMessagesProj/src/emojis/apple/emoji/3_246.png deleted file mode 100644 index 721b4af67e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_246.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_247.png b/TMessagesProj/src/emojis/apple/emoji/3_247.png deleted file mode 100644 index 409b1d4341..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_247.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_248.png b/TMessagesProj/src/emojis/apple/emoji/3_248.png deleted file mode 100644 index 58020aab9c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_248.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_249.png b/TMessagesProj/src/emojis/apple/emoji/3_249.png deleted file mode 100644 index 21b59368b5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_249.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_25.png b/TMessagesProj/src/emojis/apple/emoji/3_25.png deleted file mode 100644 index f3f715b87b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_250.png b/TMessagesProj/src/emojis/apple/emoji/3_250.png deleted file mode 100644 index 316d1a6905..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_250.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_251.png b/TMessagesProj/src/emojis/apple/emoji/3_251.png deleted file mode 100644 index 340117b9e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_251.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_252.png b/TMessagesProj/src/emojis/apple/emoji/3_252.png deleted file mode 100644 index 4996cd1d5c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_252.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_253.png b/TMessagesProj/src/emojis/apple/emoji/3_253.png deleted file mode 100644 index 1c274dac48..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_253.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_254.png b/TMessagesProj/src/emojis/apple/emoji/3_254.png deleted file mode 100644 index 876615ad0c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_254.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_255.png b/TMessagesProj/src/emojis/apple/emoji/3_255.png deleted file mode 100644 index 2a4831925a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_255.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_256.png b/TMessagesProj/src/emojis/apple/emoji/3_256.png deleted file mode 100644 index bb81607ff6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_256.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_257.png b/TMessagesProj/src/emojis/apple/emoji/3_257.png deleted file mode 100644 index 99d81ca494..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_257.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_258.png b/TMessagesProj/src/emojis/apple/emoji/3_258.png deleted file mode 100644 index 4dd962d733..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_258.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_259.png b/TMessagesProj/src/emojis/apple/emoji/3_259.png deleted file mode 100644 index ddadd3a838..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_259.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_26.png b/TMessagesProj/src/emojis/apple/emoji/3_26.png deleted file mode 100644 index 0fae544fc5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_260.png b/TMessagesProj/src/emojis/apple/emoji/3_260.png deleted file mode 100644 index 96a85deb57..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_260.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_261.png b/TMessagesProj/src/emojis/apple/emoji/3_261.png deleted file mode 100644 index 8865b598d1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_261.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_262.png b/TMessagesProj/src/emojis/apple/emoji/3_262.png deleted file mode 100644 index 14d29939a0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_262.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_263.png b/TMessagesProj/src/emojis/apple/emoji/3_263.png deleted file mode 100644 index e1737a6a9b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_263.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_264.png b/TMessagesProj/src/emojis/apple/emoji/3_264.png deleted file mode 100644 index a156407c5d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_264.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_265.png b/TMessagesProj/src/emojis/apple/emoji/3_265.png deleted file mode 100644 index d83659f48c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_265.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_266.png b/TMessagesProj/src/emojis/apple/emoji/3_266.png deleted file mode 100644 index 4976537632..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_266.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_267.png b/TMessagesProj/src/emojis/apple/emoji/3_267.png deleted file mode 100644 index 26cf364156..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_267.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_268.png b/TMessagesProj/src/emojis/apple/emoji/3_268.png deleted file mode 100644 index 5232830ecd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_268.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_269.png b/TMessagesProj/src/emojis/apple/emoji/3_269.png deleted file mode 100644 index c1078de139..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_269.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_27.png b/TMessagesProj/src/emojis/apple/emoji/3_27.png deleted file mode 100644 index 7239ee84eb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_270.png b/TMessagesProj/src/emojis/apple/emoji/3_270.png deleted file mode 100644 index f5a8ea4410..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_270.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_271.png b/TMessagesProj/src/emojis/apple/emoji/3_271.png deleted file mode 100644 index cef7b7b0c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_271.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_272.png b/TMessagesProj/src/emojis/apple/emoji/3_272.png deleted file mode 100644 index b2a740c253..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_272.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_273.png b/TMessagesProj/src/emojis/apple/emoji/3_273.png deleted file mode 100644 index 5925fa6645..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_273.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_274.png b/TMessagesProj/src/emojis/apple/emoji/3_274.png deleted file mode 100644 index 78686a6023..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_274.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_275.png b/TMessagesProj/src/emojis/apple/emoji/3_275.png deleted file mode 100644 index 7bf811d488..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_275.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_276.png b/TMessagesProj/src/emojis/apple/emoji/3_276.png deleted file mode 100644 index 2a0ad37468..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_276.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_277.png b/TMessagesProj/src/emojis/apple/emoji/3_277.png deleted file mode 100644 index d14cd28ee1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_277.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_278.png b/TMessagesProj/src/emojis/apple/emoji/3_278.png deleted file mode 100644 index 26052e50b3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_278.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_279.png b/TMessagesProj/src/emojis/apple/emoji/3_279.png deleted file mode 100644 index 63aba56903..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_279.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_28.png b/TMessagesProj/src/emojis/apple/emoji/3_28.png deleted file mode 100644 index 88a31b62d2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_280.png b/TMessagesProj/src/emojis/apple/emoji/3_280.png deleted file mode 100644 index d1f082320a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_280.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_281.png b/TMessagesProj/src/emojis/apple/emoji/3_281.png deleted file mode 100644 index 491971f0b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_281.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_282.png b/TMessagesProj/src/emojis/apple/emoji/3_282.png deleted file mode 100644 index 39488beaed..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_282.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_283.png b/TMessagesProj/src/emojis/apple/emoji/3_283.png deleted file mode 100644 index d63dbcafe7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_283.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_284.png b/TMessagesProj/src/emojis/apple/emoji/3_284.png deleted file mode 100644 index 2ba7e3e4e0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_284.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_285.png b/TMessagesProj/src/emojis/apple/emoji/3_285.png deleted file mode 100644 index 56d79d7251..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_285.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_286.png b/TMessagesProj/src/emojis/apple/emoji/3_286.png deleted file mode 100644 index bf7eb2e92f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_286.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_287.png b/TMessagesProj/src/emojis/apple/emoji/3_287.png deleted file mode 100644 index 81135c49eb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_287.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_288.png b/TMessagesProj/src/emojis/apple/emoji/3_288.png deleted file mode 100644 index aa34f842e4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_288.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_289.png b/TMessagesProj/src/emojis/apple/emoji/3_289.png deleted file mode 100644 index 703a5ee99d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_289.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_29.png b/TMessagesProj/src/emojis/apple/emoji/3_29.png deleted file mode 100644 index 866aec1656..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_290.png b/TMessagesProj/src/emojis/apple/emoji/3_290.png deleted file mode 100644 index b911848229..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_290.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_291.png b/TMessagesProj/src/emojis/apple/emoji/3_291.png deleted file mode 100644 index 0821968fa6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_291.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_292.png b/TMessagesProj/src/emojis/apple/emoji/3_292.png deleted file mode 100644 index fea80204b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_292.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_293.png b/TMessagesProj/src/emojis/apple/emoji/3_293.png deleted file mode 100644 index 6773409f3a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_293.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_294.png b/TMessagesProj/src/emojis/apple/emoji/3_294.png deleted file mode 100644 index ebed28d940..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_294.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_295.png b/TMessagesProj/src/emojis/apple/emoji/3_295.png deleted file mode 100644 index fb21dbcc50..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_295.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_296.png b/TMessagesProj/src/emojis/apple/emoji/3_296.png deleted file mode 100644 index 9c8740e6aa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_296.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_297.png b/TMessagesProj/src/emojis/apple/emoji/3_297.png deleted file mode 100644 index 5c38907054..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_297.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_298.png b/TMessagesProj/src/emojis/apple/emoji/3_298.png deleted file mode 100644 index f0dff9bb93..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_298.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_299.png b/TMessagesProj/src/emojis/apple/emoji/3_299.png deleted file mode 100644 index 0e5bb5052e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_299.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_3.png b/TMessagesProj/src/emojis/apple/emoji/3_3.png deleted file mode 100644 index 768046dcc5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_30.png b/TMessagesProj/src/emojis/apple/emoji/3_30.png deleted file mode 100644 index f44ff9d744..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_300.png b/TMessagesProj/src/emojis/apple/emoji/3_300.png deleted file mode 100644 index 779f341ca7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_300.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_301.png b/TMessagesProj/src/emojis/apple/emoji/3_301.png deleted file mode 100644 index bda1578c50..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_301.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_302.png b/TMessagesProj/src/emojis/apple/emoji/3_302.png deleted file mode 100644 index 091df73372..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_302.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_303.png b/TMessagesProj/src/emojis/apple/emoji/3_303.png deleted file mode 100644 index 08194ca3cc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_303.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_304.png b/TMessagesProj/src/emojis/apple/emoji/3_304.png deleted file mode 100644 index 3f6a5c6bea..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_304.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_305.png b/TMessagesProj/src/emojis/apple/emoji/3_305.png deleted file mode 100644 index 41904dfaa5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_305.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_306.png b/TMessagesProj/src/emojis/apple/emoji/3_306.png deleted file mode 100644 index 759af0559e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_306.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_307.png b/TMessagesProj/src/emojis/apple/emoji/3_307.png deleted file mode 100644 index c8de6b6747..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_307.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_308.png b/TMessagesProj/src/emojis/apple/emoji/3_308.png deleted file mode 100644 index f5c84dd8ce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_308.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_309.png b/TMessagesProj/src/emojis/apple/emoji/3_309.png deleted file mode 100644 index 4aa0718a45..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_309.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_31.png b/TMessagesProj/src/emojis/apple/emoji/3_31.png deleted file mode 100644 index c115c18b24..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_310.png b/TMessagesProj/src/emojis/apple/emoji/3_310.png deleted file mode 100644 index 77291d499d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_310.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_311.png b/TMessagesProj/src/emojis/apple/emoji/3_311.png deleted file mode 100644 index 8db595bda1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_311.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_312.png b/TMessagesProj/src/emojis/apple/emoji/3_312.png deleted file mode 100644 index 66ee7a2f42..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_312.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_313.png b/TMessagesProj/src/emojis/apple/emoji/3_313.png deleted file mode 100644 index 351041fbde..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_313.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_314.png b/TMessagesProj/src/emojis/apple/emoji/3_314.png deleted file mode 100644 index 34d60b2121..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_314.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_315.png b/TMessagesProj/src/emojis/apple/emoji/3_315.png deleted file mode 100644 index 29ee8c3ac8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_315.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_316.png b/TMessagesProj/src/emojis/apple/emoji/3_316.png deleted file mode 100644 index 80c34cf1b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_316.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_317.png b/TMessagesProj/src/emojis/apple/emoji/3_317.png deleted file mode 100644 index 6a61a0615c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_317.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_318.png b/TMessagesProj/src/emojis/apple/emoji/3_318.png deleted file mode 100644 index 5a8247c54f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_318.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_319.png b/TMessagesProj/src/emojis/apple/emoji/3_319.png deleted file mode 100644 index 83aa840d64..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_319.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_32.png b/TMessagesProj/src/emojis/apple/emoji/3_32.png deleted file mode 100644 index e433eb9096..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_320.png b/TMessagesProj/src/emojis/apple/emoji/3_320.png deleted file mode 100644 index 83b3c08007..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_320.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_321.png b/TMessagesProj/src/emojis/apple/emoji/3_321.png deleted file mode 100644 index e7407e9ad6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_321.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_322.png b/TMessagesProj/src/emojis/apple/emoji/3_322.png deleted file mode 100644 index 1f01901567..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_322.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_323.png b/TMessagesProj/src/emojis/apple/emoji/3_323.png deleted file mode 100644 index a786f10527..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_323.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_324.png b/TMessagesProj/src/emojis/apple/emoji/3_324.png deleted file mode 100644 index 6a856f472e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_324.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_325.png b/TMessagesProj/src/emojis/apple/emoji/3_325.png deleted file mode 100644 index 34390d9daa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_325.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_326.png b/TMessagesProj/src/emojis/apple/emoji/3_326.png deleted file mode 100644 index 28e98d9581..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_326.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_327.png b/TMessagesProj/src/emojis/apple/emoji/3_327.png deleted file mode 100644 index b87b506242..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_327.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_328.png b/TMessagesProj/src/emojis/apple/emoji/3_328.png deleted file mode 100644 index f9c8e1b1d1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_328.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_329.png b/TMessagesProj/src/emojis/apple/emoji/3_329.png deleted file mode 100644 index 0156f6c905..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_329.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_33.png b/TMessagesProj/src/emojis/apple/emoji/3_33.png deleted file mode 100644 index b18419fd5f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_330.png b/TMessagesProj/src/emojis/apple/emoji/3_330.png deleted file mode 100644 index 4795f24c13..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_330.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_331.png b/TMessagesProj/src/emojis/apple/emoji/3_331.png deleted file mode 100644 index 0c98622322..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_331.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_332.png b/TMessagesProj/src/emojis/apple/emoji/3_332.png deleted file mode 100644 index 647f12598f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_332.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_333.png b/TMessagesProj/src/emojis/apple/emoji/3_333.png deleted file mode 100644 index 33b65dbf3f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_333.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_334.png b/TMessagesProj/src/emojis/apple/emoji/3_334.png deleted file mode 100644 index 2787438c07..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_334.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_34.png b/TMessagesProj/src/emojis/apple/emoji/3_34.png deleted file mode 100644 index 80c9b80cc7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_35.png b/TMessagesProj/src/emojis/apple/emoji/3_35.png deleted file mode 100644 index cff04e682f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_36.png b/TMessagesProj/src/emojis/apple/emoji/3_36.png deleted file mode 100644 index 6236e55418..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_37.png b/TMessagesProj/src/emojis/apple/emoji/3_37.png deleted file mode 100644 index 49e94e12ef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_38.png b/TMessagesProj/src/emojis/apple/emoji/3_38.png deleted file mode 100644 index 751c9b228b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_39.png b/TMessagesProj/src/emojis/apple/emoji/3_39.png deleted file mode 100644 index 0be19d16ab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_4.png b/TMessagesProj/src/emojis/apple/emoji/3_4.png deleted file mode 100644 index 3628c98655..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_40.png b/TMessagesProj/src/emojis/apple/emoji/3_40.png deleted file mode 100644 index b1fa8592ff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_41.png b/TMessagesProj/src/emojis/apple/emoji/3_41.png deleted file mode 100644 index 9b1c1f2fc3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_42.png b/TMessagesProj/src/emojis/apple/emoji/3_42.png deleted file mode 100644 index 2c4ac78979..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_43.png b/TMessagesProj/src/emojis/apple/emoji/3_43.png deleted file mode 100644 index 2fca47b91d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_44.png b/TMessagesProj/src/emojis/apple/emoji/3_44.png deleted file mode 100644 index e0f63dc034..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_45.png b/TMessagesProj/src/emojis/apple/emoji/3_45.png deleted file mode 100644 index b632ef625f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_46.png b/TMessagesProj/src/emojis/apple/emoji/3_46.png deleted file mode 100644 index 0e9283b3fe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_47.png b/TMessagesProj/src/emojis/apple/emoji/3_47.png deleted file mode 100644 index 3d5577bc2a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_48.png b/TMessagesProj/src/emojis/apple/emoji/3_48.png deleted file mode 100644 index eaa1b94900..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_49.png b/TMessagesProj/src/emojis/apple/emoji/3_49.png deleted file mode 100644 index 454c1cccb0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_5.png b/TMessagesProj/src/emojis/apple/emoji/3_5.png deleted file mode 100644 index 00b29432ed..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_50.png b/TMessagesProj/src/emojis/apple/emoji/3_50.png deleted file mode 100644 index 6349b53a0f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_51.png b/TMessagesProj/src/emojis/apple/emoji/3_51.png deleted file mode 100644 index f7818df724..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_52.png b/TMessagesProj/src/emojis/apple/emoji/3_52.png deleted file mode 100644 index 553f001bdd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_53.png b/TMessagesProj/src/emojis/apple/emoji/3_53.png deleted file mode 100644 index 077bfa629d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_54.png b/TMessagesProj/src/emojis/apple/emoji/3_54.png deleted file mode 100644 index f17618a837..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_55.png b/TMessagesProj/src/emojis/apple/emoji/3_55.png deleted file mode 100644 index a9aa58893e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_56.png b/TMessagesProj/src/emojis/apple/emoji/3_56.png deleted file mode 100644 index 4e3a73a7af..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_57.png b/TMessagesProj/src/emojis/apple/emoji/3_57.png deleted file mode 100644 index 08b6233f7f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_58.png b/TMessagesProj/src/emojis/apple/emoji/3_58.png deleted file mode 100644 index 9e62f3e405..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_59.png b/TMessagesProj/src/emojis/apple/emoji/3_59.png deleted file mode 100644 index e044212be5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_6.png b/TMessagesProj/src/emojis/apple/emoji/3_6.png deleted file mode 100644 index 71745a11cf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_60.png b/TMessagesProj/src/emojis/apple/emoji/3_60.png deleted file mode 100644 index 33c3d7ff7f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_61.png b/TMessagesProj/src/emojis/apple/emoji/3_61.png deleted file mode 100644 index e521a0e124..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_62.png b/TMessagesProj/src/emojis/apple/emoji/3_62.png deleted file mode 100644 index 7ff38f2b67..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_63.png b/TMessagesProj/src/emojis/apple/emoji/3_63.png deleted file mode 100644 index 3b3676d173..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_64.png b/TMessagesProj/src/emojis/apple/emoji/3_64.png deleted file mode 100644 index ce94db7e58..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_65.png b/TMessagesProj/src/emojis/apple/emoji/3_65.png deleted file mode 100644 index 0f1e39ef42..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_66.png b/TMessagesProj/src/emojis/apple/emoji/3_66.png deleted file mode 100644 index 4e0ed910af..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_67.png b/TMessagesProj/src/emojis/apple/emoji/3_67.png deleted file mode 100644 index 6572fd1b3a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_68.png b/TMessagesProj/src/emojis/apple/emoji/3_68.png deleted file mode 100644 index d647651ed7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_69.png b/TMessagesProj/src/emojis/apple/emoji/3_69.png deleted file mode 100644 index 7f1c949a98..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_7.png b/TMessagesProj/src/emojis/apple/emoji/3_7.png deleted file mode 100644 index 1e8a4be3d1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_70.png b/TMessagesProj/src/emojis/apple/emoji/3_70.png deleted file mode 100644 index 0af7b0d411..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_71.png b/TMessagesProj/src/emojis/apple/emoji/3_71.png deleted file mode 100644 index 5ab7db7518..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_72.png b/TMessagesProj/src/emojis/apple/emoji/3_72.png deleted file mode 100644 index ddf350f5e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_73.png b/TMessagesProj/src/emojis/apple/emoji/3_73.png deleted file mode 100644 index 195a47d8b0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_74.png b/TMessagesProj/src/emojis/apple/emoji/3_74.png deleted file mode 100644 index d26357bfe1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_75.png b/TMessagesProj/src/emojis/apple/emoji/3_75.png deleted file mode 100644 index b04aba70f9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_76.png b/TMessagesProj/src/emojis/apple/emoji/3_76.png deleted file mode 100644 index 798860b123..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_77.png b/TMessagesProj/src/emojis/apple/emoji/3_77.png deleted file mode 100644 index 57ea25a4d4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_78.png b/TMessagesProj/src/emojis/apple/emoji/3_78.png deleted file mode 100644 index c1fdb60c2d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_79.png b/TMessagesProj/src/emojis/apple/emoji/3_79.png deleted file mode 100644 index e68f6514d5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_8.png b/TMessagesProj/src/emojis/apple/emoji/3_8.png deleted file mode 100644 index 43e7cd8485..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_80.png b/TMessagesProj/src/emojis/apple/emoji/3_80.png deleted file mode 100644 index 5d738626e6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_81.png b/TMessagesProj/src/emojis/apple/emoji/3_81.png deleted file mode 100644 index e22e6c6312..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_82.png b/TMessagesProj/src/emojis/apple/emoji/3_82.png deleted file mode 100644 index be4000cac3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_83.png b/TMessagesProj/src/emojis/apple/emoji/3_83.png deleted file mode 100644 index 2d79f50976..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_84.png b/TMessagesProj/src/emojis/apple/emoji/3_84.png deleted file mode 100644 index c7cf7ef153..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_85.png b/TMessagesProj/src/emojis/apple/emoji/3_85.png deleted file mode 100644 index 39e8ecbfea..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_86.png b/TMessagesProj/src/emojis/apple/emoji/3_86.png deleted file mode 100644 index b7edc79b23..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_87.png b/TMessagesProj/src/emojis/apple/emoji/3_87.png deleted file mode 100644 index fab5832cef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_88.png b/TMessagesProj/src/emojis/apple/emoji/3_88.png deleted file mode 100644 index f8e81b15f6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_89.png b/TMessagesProj/src/emojis/apple/emoji/3_89.png deleted file mode 100644 index 36bf47bb09..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_9.png b/TMessagesProj/src/emojis/apple/emoji/3_9.png deleted file mode 100644 index 098d3df72c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_90.png b/TMessagesProj/src/emojis/apple/emoji/3_90.png deleted file mode 100644 index 947cfd5dd9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_91.png b/TMessagesProj/src/emojis/apple/emoji/3_91.png deleted file mode 100644 index 80ee88b6c0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_92.png b/TMessagesProj/src/emojis/apple/emoji/3_92.png deleted file mode 100644 index a8fae14084..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_93.png b/TMessagesProj/src/emojis/apple/emoji/3_93.png deleted file mode 100644 index 8124403ed0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_94.png b/TMessagesProj/src/emojis/apple/emoji/3_94.png deleted file mode 100644 index bbd5c825e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_95.png b/TMessagesProj/src/emojis/apple/emoji/3_95.png deleted file mode 100644 index aa99b7a222..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_96.png b/TMessagesProj/src/emojis/apple/emoji/3_96.png deleted file mode 100644 index 87f4db552e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_97.png b/TMessagesProj/src/emojis/apple/emoji/3_97.png deleted file mode 100644 index 49b75273ba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_98.png b/TMessagesProj/src/emojis/apple/emoji/3_98.png deleted file mode 100644 index 12916b7823..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/3_99.png b/TMessagesProj/src/emojis/apple/emoji/3_99.png deleted file mode 100644 index 14e1c90f88..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/3_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_0.png b/TMessagesProj/src/emojis/apple/emoji/4_0.png deleted file mode 100644 index b456d0ff63..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_1.png b/TMessagesProj/src/emojis/apple/emoji/4_1.png deleted file mode 100644 index 65847b0fd4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_10.png b/TMessagesProj/src/emojis/apple/emoji/4_10.png deleted file mode 100644 index 146085cc8e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_100.png b/TMessagesProj/src/emojis/apple/emoji/4_100.png deleted file mode 100644 index bf91cfcb1c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_101.png b/TMessagesProj/src/emojis/apple/emoji/4_101.png deleted file mode 100644 index 8a4998ec91..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_102.png b/TMessagesProj/src/emojis/apple/emoji/4_102.png deleted file mode 100644 index 901a9ccc3c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_103.png b/TMessagesProj/src/emojis/apple/emoji/4_103.png deleted file mode 100644 index 36953e3add..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_104.png b/TMessagesProj/src/emojis/apple/emoji/4_104.png deleted file mode 100644 index 37bf48f0f0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_105.png b/TMessagesProj/src/emojis/apple/emoji/4_105.png deleted file mode 100644 index 87cf13140b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_106.png b/TMessagesProj/src/emojis/apple/emoji/4_106.png deleted file mode 100644 index 82ad413c31..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_107.png b/TMessagesProj/src/emojis/apple/emoji/4_107.png deleted file mode 100644 index bbdbb81db4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_108.png b/TMessagesProj/src/emojis/apple/emoji/4_108.png deleted file mode 100644 index db9f1daad8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_109.png b/TMessagesProj/src/emojis/apple/emoji/4_109.png deleted file mode 100644 index 05fa253983..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_11.png b/TMessagesProj/src/emojis/apple/emoji/4_11.png deleted file mode 100644 index 81bbadff79..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_110.png b/TMessagesProj/src/emojis/apple/emoji/4_110.png deleted file mode 100644 index 7bf5171866..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_111.png b/TMessagesProj/src/emojis/apple/emoji/4_111.png deleted file mode 100644 index e6b12c4d1e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_112.png b/TMessagesProj/src/emojis/apple/emoji/4_112.png deleted file mode 100644 index df96216700..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_113.png b/TMessagesProj/src/emojis/apple/emoji/4_113.png deleted file mode 100644 index 88e8358e1d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_114.png b/TMessagesProj/src/emojis/apple/emoji/4_114.png deleted file mode 100644 index c3a5c5cbf1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_115.png b/TMessagesProj/src/emojis/apple/emoji/4_115.png deleted file mode 100644 index c9a911f49a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_116.png b/TMessagesProj/src/emojis/apple/emoji/4_116.png deleted file mode 100644 index f79ce5abf3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_117.png b/TMessagesProj/src/emojis/apple/emoji/4_117.png deleted file mode 100644 index 89369867a6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_118.png b/TMessagesProj/src/emojis/apple/emoji/4_118.png deleted file mode 100644 index 05960a4795..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_119.png b/TMessagesProj/src/emojis/apple/emoji/4_119.png deleted file mode 100644 index 07adfc1787..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_12.png b/TMessagesProj/src/emojis/apple/emoji/4_12.png deleted file mode 100644 index 8eb37aaeb6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_120.png b/TMessagesProj/src/emojis/apple/emoji/4_120.png deleted file mode 100644 index d11b5727b7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_121.png b/TMessagesProj/src/emojis/apple/emoji/4_121.png deleted file mode 100644 index 29d12d33e1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_122.png b/TMessagesProj/src/emojis/apple/emoji/4_122.png deleted file mode 100644 index 3f0b2fb195..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_123.png b/TMessagesProj/src/emojis/apple/emoji/4_123.png deleted file mode 100644 index 934a114046..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_124.png b/TMessagesProj/src/emojis/apple/emoji/4_124.png deleted file mode 100644 index 70693fb4c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_125.png b/TMessagesProj/src/emojis/apple/emoji/4_125.png deleted file mode 100644 index 1d8aefa080..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_126.png b/TMessagesProj/src/emojis/apple/emoji/4_126.png deleted file mode 100644 index 19589cd714..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_127.png b/TMessagesProj/src/emojis/apple/emoji/4_127.png deleted file mode 100644 index 74a62996bd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_128.png b/TMessagesProj/src/emojis/apple/emoji/4_128.png deleted file mode 100644 index d1a204e3ce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_129.png b/TMessagesProj/src/emojis/apple/emoji/4_129.png deleted file mode 100644 index 2e5bc98b64..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_13.png b/TMessagesProj/src/emojis/apple/emoji/4_13.png deleted file mode 100644 index 9f1f5b4a01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_130.png b/TMessagesProj/src/emojis/apple/emoji/4_130.png deleted file mode 100644 index b0120242ca..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_14.png b/TMessagesProj/src/emojis/apple/emoji/4_14.png deleted file mode 100644 index 39b2dca5c3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_15.png b/TMessagesProj/src/emojis/apple/emoji/4_15.png deleted file mode 100644 index ebc92cd43c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_16.png b/TMessagesProj/src/emojis/apple/emoji/4_16.png deleted file mode 100644 index a6beedfb76..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_17.png b/TMessagesProj/src/emojis/apple/emoji/4_17.png deleted file mode 100644 index 542989853c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_18.png b/TMessagesProj/src/emojis/apple/emoji/4_18.png deleted file mode 100644 index 9fb2cd928f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_19.png b/TMessagesProj/src/emojis/apple/emoji/4_19.png deleted file mode 100644 index 398eb11075..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_2.png b/TMessagesProj/src/emojis/apple/emoji/4_2.png deleted file mode 100644 index 994050b5c1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_20.png b/TMessagesProj/src/emojis/apple/emoji/4_20.png deleted file mode 100644 index c1b8f6050f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_21.png b/TMessagesProj/src/emojis/apple/emoji/4_21.png deleted file mode 100644 index 5767bb25df..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_22.png b/TMessagesProj/src/emojis/apple/emoji/4_22.png deleted file mode 100644 index c93e24c475..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_23.png b/TMessagesProj/src/emojis/apple/emoji/4_23.png deleted file mode 100644 index 1475777df3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_24.png b/TMessagesProj/src/emojis/apple/emoji/4_24.png deleted file mode 100644 index 575002a8c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_25.png b/TMessagesProj/src/emojis/apple/emoji/4_25.png deleted file mode 100644 index 5e272a9616..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_26.png b/TMessagesProj/src/emojis/apple/emoji/4_26.png deleted file mode 100644 index 989cdbeb9f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_27.png b/TMessagesProj/src/emojis/apple/emoji/4_27.png deleted file mode 100644 index 31d92f16b3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_28.png b/TMessagesProj/src/emojis/apple/emoji/4_28.png deleted file mode 100644 index 300d3037c4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_29.png b/TMessagesProj/src/emojis/apple/emoji/4_29.png deleted file mode 100644 index e2f92c3112..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_3.png b/TMessagesProj/src/emojis/apple/emoji/4_3.png deleted file mode 100644 index 182c9f49c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_30.png b/TMessagesProj/src/emojis/apple/emoji/4_30.png deleted file mode 100644 index ba75f84b94..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_31.png b/TMessagesProj/src/emojis/apple/emoji/4_31.png deleted file mode 100644 index 523b8625ee..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_32.png b/TMessagesProj/src/emojis/apple/emoji/4_32.png deleted file mode 100644 index d153d90d61..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_33.png b/TMessagesProj/src/emojis/apple/emoji/4_33.png deleted file mode 100644 index 6b8672dbc5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_34.png b/TMessagesProj/src/emojis/apple/emoji/4_34.png deleted file mode 100644 index dc540d11b3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_35.png b/TMessagesProj/src/emojis/apple/emoji/4_35.png deleted file mode 100644 index 2cca9eb2b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_36.png b/TMessagesProj/src/emojis/apple/emoji/4_36.png deleted file mode 100644 index e451b1bcd2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_37.png b/TMessagesProj/src/emojis/apple/emoji/4_37.png deleted file mode 100644 index bfc190fb7a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_38.png b/TMessagesProj/src/emojis/apple/emoji/4_38.png deleted file mode 100644 index 7421cc765c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_39.png b/TMessagesProj/src/emojis/apple/emoji/4_39.png deleted file mode 100644 index c6ed9b9aa2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_4.png b/TMessagesProj/src/emojis/apple/emoji/4_4.png deleted file mode 100644 index 13c890342a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_40.png b/TMessagesProj/src/emojis/apple/emoji/4_40.png deleted file mode 100644 index 53256c5f63..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_41.png b/TMessagesProj/src/emojis/apple/emoji/4_41.png deleted file mode 100644 index c3865134c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_42.png b/TMessagesProj/src/emojis/apple/emoji/4_42.png deleted file mode 100644 index 4f5ec469d7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_43.png b/TMessagesProj/src/emojis/apple/emoji/4_43.png deleted file mode 100644 index 1e3a0d1f7b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_44.png b/TMessagesProj/src/emojis/apple/emoji/4_44.png deleted file mode 100644 index e8b4eed695..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_45.png b/TMessagesProj/src/emojis/apple/emoji/4_45.png deleted file mode 100644 index d5d0fe7d1d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_46.png b/TMessagesProj/src/emojis/apple/emoji/4_46.png deleted file mode 100644 index 38c7b7e937..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_47.png b/TMessagesProj/src/emojis/apple/emoji/4_47.png deleted file mode 100644 index 216c3c17c2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_48.png b/TMessagesProj/src/emojis/apple/emoji/4_48.png deleted file mode 100644 index eebe5332c5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_49.png b/TMessagesProj/src/emojis/apple/emoji/4_49.png deleted file mode 100644 index 910f55c3df..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_5.png b/TMessagesProj/src/emojis/apple/emoji/4_5.png deleted file mode 100644 index 1b1927c00a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_50.png b/TMessagesProj/src/emojis/apple/emoji/4_50.png deleted file mode 100644 index cf5481fc5d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_51.png b/TMessagesProj/src/emojis/apple/emoji/4_51.png deleted file mode 100644 index b0cc84afc6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_52.png b/TMessagesProj/src/emojis/apple/emoji/4_52.png deleted file mode 100644 index 313704f1b9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_53.png b/TMessagesProj/src/emojis/apple/emoji/4_53.png deleted file mode 100644 index 08e7bb7437..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_54.png b/TMessagesProj/src/emojis/apple/emoji/4_54.png deleted file mode 100644 index e04f75041f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_55.png b/TMessagesProj/src/emojis/apple/emoji/4_55.png deleted file mode 100644 index c3494d1426..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_56.png b/TMessagesProj/src/emojis/apple/emoji/4_56.png deleted file mode 100644 index 08928f07ba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_57.png b/TMessagesProj/src/emojis/apple/emoji/4_57.png deleted file mode 100644 index 437f539930..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_58.png b/TMessagesProj/src/emojis/apple/emoji/4_58.png deleted file mode 100644 index f01267041a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_59.png b/TMessagesProj/src/emojis/apple/emoji/4_59.png deleted file mode 100644 index f6d660235c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_6.png b/TMessagesProj/src/emojis/apple/emoji/4_6.png deleted file mode 100644 index f385da2c89..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_60.png b/TMessagesProj/src/emojis/apple/emoji/4_60.png deleted file mode 100644 index 36722d5f81..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_61.png b/TMessagesProj/src/emojis/apple/emoji/4_61.png deleted file mode 100644 index 4a77fef120..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_62.png b/TMessagesProj/src/emojis/apple/emoji/4_62.png deleted file mode 100644 index 97893f55cb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_63.png b/TMessagesProj/src/emojis/apple/emoji/4_63.png deleted file mode 100644 index 684510fbb1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_64.png b/TMessagesProj/src/emojis/apple/emoji/4_64.png deleted file mode 100644 index 296cf49844..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_65.png b/TMessagesProj/src/emojis/apple/emoji/4_65.png deleted file mode 100644 index c2caf78b84..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_66.png b/TMessagesProj/src/emojis/apple/emoji/4_66.png deleted file mode 100644 index 6628549db8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_67.png b/TMessagesProj/src/emojis/apple/emoji/4_67.png deleted file mode 100644 index 4c6a781794..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_68.png b/TMessagesProj/src/emojis/apple/emoji/4_68.png deleted file mode 100644 index 29a145a00e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_69.png b/TMessagesProj/src/emojis/apple/emoji/4_69.png deleted file mode 100644 index f11ad9b4ab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_7.png b/TMessagesProj/src/emojis/apple/emoji/4_7.png deleted file mode 100644 index 21203ce173..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_70.png b/TMessagesProj/src/emojis/apple/emoji/4_70.png deleted file mode 100644 index ffe66691b4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_71.png b/TMessagesProj/src/emojis/apple/emoji/4_71.png deleted file mode 100644 index 7236f13c14..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_72.png b/TMessagesProj/src/emojis/apple/emoji/4_72.png deleted file mode 100644 index f073237375..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_73.png b/TMessagesProj/src/emojis/apple/emoji/4_73.png deleted file mode 100644 index 82e24d56ec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_74.png b/TMessagesProj/src/emojis/apple/emoji/4_74.png deleted file mode 100644 index ad0a189796..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_75.png b/TMessagesProj/src/emojis/apple/emoji/4_75.png deleted file mode 100644 index 4943e8c26f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_76.png b/TMessagesProj/src/emojis/apple/emoji/4_76.png deleted file mode 100644 index b3d95f344f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_77.png b/TMessagesProj/src/emojis/apple/emoji/4_77.png deleted file mode 100644 index b263ed1d87..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_78.png b/TMessagesProj/src/emojis/apple/emoji/4_78.png deleted file mode 100644 index 094c447d7e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_79.png b/TMessagesProj/src/emojis/apple/emoji/4_79.png deleted file mode 100644 index 5cf23e8e67..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_8.png b/TMessagesProj/src/emojis/apple/emoji/4_8.png deleted file mode 100644 index a79de7e1bf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_80.png b/TMessagesProj/src/emojis/apple/emoji/4_80.png deleted file mode 100644 index 8653166f32..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_81.png b/TMessagesProj/src/emojis/apple/emoji/4_81.png deleted file mode 100644 index 297e518a61..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_82.png b/TMessagesProj/src/emojis/apple/emoji/4_82.png deleted file mode 100644 index bc750ac462..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_83.png b/TMessagesProj/src/emojis/apple/emoji/4_83.png deleted file mode 100644 index 24c2eb8e38..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_84.png b/TMessagesProj/src/emojis/apple/emoji/4_84.png deleted file mode 100644 index 271a66bdc1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_85.png b/TMessagesProj/src/emojis/apple/emoji/4_85.png deleted file mode 100644 index 3be1ef63d6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_86.png b/TMessagesProj/src/emojis/apple/emoji/4_86.png deleted file mode 100644 index 15f180cc8b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_87.png b/TMessagesProj/src/emojis/apple/emoji/4_87.png deleted file mode 100644 index 4d77510c3e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_88.png b/TMessagesProj/src/emojis/apple/emoji/4_88.png deleted file mode 100644 index 4ed75e345f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_89.png b/TMessagesProj/src/emojis/apple/emoji/4_89.png deleted file mode 100644 index 9d65c33f5d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_9.png b/TMessagesProj/src/emojis/apple/emoji/4_9.png deleted file mode 100644 index eb20e19d85..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_90.png b/TMessagesProj/src/emojis/apple/emoji/4_90.png deleted file mode 100644 index 8ddf4e8fb5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_91.png b/TMessagesProj/src/emojis/apple/emoji/4_91.png deleted file mode 100644 index 2d1b58d35e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_92.png b/TMessagesProj/src/emojis/apple/emoji/4_92.png deleted file mode 100644 index a07cfd7c02..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_93.png b/TMessagesProj/src/emojis/apple/emoji/4_93.png deleted file mode 100644 index 63ac6b909a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_94.png b/TMessagesProj/src/emojis/apple/emoji/4_94.png deleted file mode 100644 index 11e25a6e7f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_95.png b/TMessagesProj/src/emojis/apple/emoji/4_95.png deleted file mode 100644 index 33c7cfd697..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_96.png b/TMessagesProj/src/emojis/apple/emoji/4_96.png deleted file mode 100644 index 6569214324..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_97.png b/TMessagesProj/src/emojis/apple/emoji/4_97.png deleted file mode 100644 index d1df82cd6e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_98.png b/TMessagesProj/src/emojis/apple/emoji/4_98.png deleted file mode 100644 index fa8b416d01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/4_99.png b/TMessagesProj/src/emojis/apple/emoji/4_99.png deleted file mode 100644 index 36bd9be685..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/4_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_0.png b/TMessagesProj/src/emojis/apple/emoji/5_0.png deleted file mode 100644 index 795101aacc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_1.png b/TMessagesProj/src/emojis/apple/emoji/5_1.png deleted file mode 100644 index 5a718a68a2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_10.png b/TMessagesProj/src/emojis/apple/emoji/5_10.png deleted file mode 100644 index 0d4e9d8314..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_100.png b/TMessagesProj/src/emojis/apple/emoji/5_100.png deleted file mode 100644 index ba02acfa43..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_101.png b/TMessagesProj/src/emojis/apple/emoji/5_101.png deleted file mode 100644 index 95c537885d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_102.png b/TMessagesProj/src/emojis/apple/emoji/5_102.png deleted file mode 100644 index b54b9dbf0b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_103.png b/TMessagesProj/src/emojis/apple/emoji/5_103.png deleted file mode 100644 index 3e9edafd6f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_104.png b/TMessagesProj/src/emojis/apple/emoji/5_104.png deleted file mode 100644 index 80b7d65b8d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_105.png b/TMessagesProj/src/emojis/apple/emoji/5_105.png deleted file mode 100644 index 1e7fb7bbc6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_106.png b/TMessagesProj/src/emojis/apple/emoji/5_106.png deleted file mode 100644 index 4181e2d07f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_107.png b/TMessagesProj/src/emojis/apple/emoji/5_107.png deleted file mode 100644 index a859115b12..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_108.png b/TMessagesProj/src/emojis/apple/emoji/5_108.png deleted file mode 100644 index 6d59221f55..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_109.png b/TMessagesProj/src/emojis/apple/emoji/5_109.png deleted file mode 100644 index 17b732fd2d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_11.png b/TMessagesProj/src/emojis/apple/emoji/5_11.png deleted file mode 100644 index e1697ff68d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_110.png b/TMessagesProj/src/emojis/apple/emoji/5_110.png deleted file mode 100644 index 7b5fe6576d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_111.png b/TMessagesProj/src/emojis/apple/emoji/5_111.png deleted file mode 100644 index a6d2a55554..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_112.png b/TMessagesProj/src/emojis/apple/emoji/5_112.png deleted file mode 100644 index c92293bed0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_113.png b/TMessagesProj/src/emojis/apple/emoji/5_113.png deleted file mode 100644 index c0d09b11ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_114.png b/TMessagesProj/src/emojis/apple/emoji/5_114.png deleted file mode 100644 index 237beff27f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_115.png b/TMessagesProj/src/emojis/apple/emoji/5_115.png deleted file mode 100644 index 787cb5a428..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_116.png b/TMessagesProj/src/emojis/apple/emoji/5_116.png deleted file mode 100644 index 18fbb190a7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_117.png b/TMessagesProj/src/emojis/apple/emoji/5_117.png deleted file mode 100644 index 34db62ca6b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_118.png b/TMessagesProj/src/emojis/apple/emoji/5_118.png deleted file mode 100644 index 67987c3c71..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_119.png b/TMessagesProj/src/emojis/apple/emoji/5_119.png deleted file mode 100644 index 1c59a1edd2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_12.png b/TMessagesProj/src/emojis/apple/emoji/5_12.png deleted file mode 100644 index 28b6d56688..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_120.png b/TMessagesProj/src/emojis/apple/emoji/5_120.png deleted file mode 100644 index bec63ad895..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_121.png b/TMessagesProj/src/emojis/apple/emoji/5_121.png deleted file mode 100644 index 95ac13f9eb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_122.png b/TMessagesProj/src/emojis/apple/emoji/5_122.png deleted file mode 100644 index 3e08f7b89a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_123.png b/TMessagesProj/src/emojis/apple/emoji/5_123.png deleted file mode 100644 index da21a69371..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_124.png b/TMessagesProj/src/emojis/apple/emoji/5_124.png deleted file mode 100644 index 700d41c410..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_125.png b/TMessagesProj/src/emojis/apple/emoji/5_125.png deleted file mode 100644 index 9aad305e5b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_126.png b/TMessagesProj/src/emojis/apple/emoji/5_126.png deleted file mode 100644 index c91b5d8da8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_127.png b/TMessagesProj/src/emojis/apple/emoji/5_127.png deleted file mode 100644 index 3841735766..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_128.png b/TMessagesProj/src/emojis/apple/emoji/5_128.png deleted file mode 100644 index 461073a465..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_129.png b/TMessagesProj/src/emojis/apple/emoji/5_129.png deleted file mode 100644 index 3bf75851ae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_13.png b/TMessagesProj/src/emojis/apple/emoji/5_13.png deleted file mode 100644 index d079a8cd9e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_130.png b/TMessagesProj/src/emojis/apple/emoji/5_130.png deleted file mode 100644 index c128358311..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_131.png b/TMessagesProj/src/emojis/apple/emoji/5_131.png deleted file mode 100644 index 90adb5dd7b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_132.png b/TMessagesProj/src/emojis/apple/emoji/5_132.png deleted file mode 100644 index 7c5197306b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_133.png b/TMessagesProj/src/emojis/apple/emoji/5_133.png deleted file mode 100644 index a025b04a82..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_134.png b/TMessagesProj/src/emojis/apple/emoji/5_134.png deleted file mode 100644 index 3342dd6fab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_135.png b/TMessagesProj/src/emojis/apple/emoji/5_135.png deleted file mode 100644 index 561d61f4b7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_136.png b/TMessagesProj/src/emojis/apple/emoji/5_136.png deleted file mode 100644 index c4ec12bac5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_137.png b/TMessagesProj/src/emojis/apple/emoji/5_137.png deleted file mode 100644 index ceaff88179..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_138.png b/TMessagesProj/src/emojis/apple/emoji/5_138.png deleted file mode 100644 index ab0e6ab698..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_139.png b/TMessagesProj/src/emojis/apple/emoji/5_139.png deleted file mode 100644 index a978851015..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_14.png b/TMessagesProj/src/emojis/apple/emoji/5_14.png deleted file mode 100644 index fe368bc964..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_140.png b/TMessagesProj/src/emojis/apple/emoji/5_140.png deleted file mode 100644 index d983deb87d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_141.png b/TMessagesProj/src/emojis/apple/emoji/5_141.png deleted file mode 100644 index 8945f2f258..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_142.png b/TMessagesProj/src/emojis/apple/emoji/5_142.png deleted file mode 100644 index 0ccfe8f552..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_143.png b/TMessagesProj/src/emojis/apple/emoji/5_143.png deleted file mode 100644 index 40654c3d8b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_144.png b/TMessagesProj/src/emojis/apple/emoji/5_144.png deleted file mode 100644 index f306e147e8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_145.png b/TMessagesProj/src/emojis/apple/emoji/5_145.png deleted file mode 100644 index 5bf485ff1f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_146.png b/TMessagesProj/src/emojis/apple/emoji/5_146.png deleted file mode 100644 index e56fbabceb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_147.png b/TMessagesProj/src/emojis/apple/emoji/5_147.png deleted file mode 100644 index 0a36dd07fa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_148.png b/TMessagesProj/src/emojis/apple/emoji/5_148.png deleted file mode 100644 index 0d409c682b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_149.png b/TMessagesProj/src/emojis/apple/emoji/5_149.png deleted file mode 100644 index 241201189a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_15.png b/TMessagesProj/src/emojis/apple/emoji/5_15.png deleted file mode 100644 index 709b54a34a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_150.png b/TMessagesProj/src/emojis/apple/emoji/5_150.png deleted file mode 100644 index 5c8d2afb93..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_151.png b/TMessagesProj/src/emojis/apple/emoji/5_151.png deleted file mode 100644 index 3ca3d271bd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_152.png b/TMessagesProj/src/emojis/apple/emoji/5_152.png deleted file mode 100644 index 7d5f8f3c96..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_153.png b/TMessagesProj/src/emojis/apple/emoji/5_153.png deleted file mode 100644 index 846e5dfba0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_154.png b/TMessagesProj/src/emojis/apple/emoji/5_154.png deleted file mode 100644 index ff43d71d96..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_155.png b/TMessagesProj/src/emojis/apple/emoji/5_155.png deleted file mode 100644 index ab114737ae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_156.png b/TMessagesProj/src/emojis/apple/emoji/5_156.png deleted file mode 100644 index d2d5c1b188..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_157.png b/TMessagesProj/src/emojis/apple/emoji/5_157.png deleted file mode 100644 index da231500ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_158.png b/TMessagesProj/src/emojis/apple/emoji/5_158.png deleted file mode 100644 index c9a62bd8b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_159.png b/TMessagesProj/src/emojis/apple/emoji/5_159.png deleted file mode 100644 index a92ca805e5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_16.png b/TMessagesProj/src/emojis/apple/emoji/5_16.png deleted file mode 100644 index 65f80715c4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_160.png b/TMessagesProj/src/emojis/apple/emoji/5_160.png deleted file mode 100644 index 45a461f31c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_161.png b/TMessagesProj/src/emojis/apple/emoji/5_161.png deleted file mode 100644 index 20fb48028d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_162.png b/TMessagesProj/src/emojis/apple/emoji/5_162.png deleted file mode 100644 index 63be27e172..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_163.png b/TMessagesProj/src/emojis/apple/emoji/5_163.png deleted file mode 100644 index 71956b772f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_164.png b/TMessagesProj/src/emojis/apple/emoji/5_164.png deleted file mode 100644 index 5b6bfccb33..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_165.png b/TMessagesProj/src/emojis/apple/emoji/5_165.png deleted file mode 100644 index b43615c984..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_166.png b/TMessagesProj/src/emojis/apple/emoji/5_166.png deleted file mode 100644 index bec248eeda..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_167.png b/TMessagesProj/src/emojis/apple/emoji/5_167.png deleted file mode 100644 index c3bc0b452f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_168.png b/TMessagesProj/src/emojis/apple/emoji/5_168.png deleted file mode 100644 index 7acb2c7d53..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_169.png b/TMessagesProj/src/emojis/apple/emoji/5_169.png deleted file mode 100644 index d93e40b0a0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_17.png b/TMessagesProj/src/emojis/apple/emoji/5_17.png deleted file mode 100644 index 00f16e3516..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_170.png b/TMessagesProj/src/emojis/apple/emoji/5_170.png deleted file mode 100644 index f7f8a176a2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_171.png b/TMessagesProj/src/emojis/apple/emoji/5_171.png deleted file mode 100644 index d68b089ce9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_172.png b/TMessagesProj/src/emojis/apple/emoji/5_172.png deleted file mode 100644 index 16c100a0bc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_173.png b/TMessagesProj/src/emojis/apple/emoji/5_173.png deleted file mode 100644 index 219b92bc07..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_174.png b/TMessagesProj/src/emojis/apple/emoji/5_174.png deleted file mode 100644 index 7314f19966..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_175.png b/TMessagesProj/src/emojis/apple/emoji/5_175.png deleted file mode 100644 index 4a5cd3b075..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_176.png b/TMessagesProj/src/emojis/apple/emoji/5_176.png deleted file mode 100644 index e835290420..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_177.png b/TMessagesProj/src/emojis/apple/emoji/5_177.png deleted file mode 100644 index c594443a2f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_178.png b/TMessagesProj/src/emojis/apple/emoji/5_178.png deleted file mode 100644 index 4a3b53a032..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_179.png b/TMessagesProj/src/emojis/apple/emoji/5_179.png deleted file mode 100644 index 550dd89542..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_18.png b/TMessagesProj/src/emojis/apple/emoji/5_18.png deleted file mode 100644 index ea916e38cb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_180.png b/TMessagesProj/src/emojis/apple/emoji/5_180.png deleted file mode 100644 index ac63f62e19..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_181.png b/TMessagesProj/src/emojis/apple/emoji/5_181.png deleted file mode 100644 index e0bbdb9784..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_182.png b/TMessagesProj/src/emojis/apple/emoji/5_182.png deleted file mode 100644 index 50738c2efd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_183.png b/TMessagesProj/src/emojis/apple/emoji/5_183.png deleted file mode 100644 index c599b509a0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_184.png b/TMessagesProj/src/emojis/apple/emoji/5_184.png deleted file mode 100644 index 256d911d8a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_185.png b/TMessagesProj/src/emojis/apple/emoji/5_185.png deleted file mode 100644 index d9eed28515..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_186.png b/TMessagesProj/src/emojis/apple/emoji/5_186.png deleted file mode 100644 index 0d5077a1f8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_187.png b/TMessagesProj/src/emojis/apple/emoji/5_187.png deleted file mode 100644 index 562930c36c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_188.png b/TMessagesProj/src/emojis/apple/emoji/5_188.png deleted file mode 100644 index dbc40308ac..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_189.png b/TMessagesProj/src/emojis/apple/emoji/5_189.png deleted file mode 100644 index 5d6d4bee68..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_19.png b/TMessagesProj/src/emojis/apple/emoji/5_19.png deleted file mode 100644 index 3934218524..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_190.png b/TMessagesProj/src/emojis/apple/emoji/5_190.png deleted file mode 100644 index 34744a4e45..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_191.png b/TMessagesProj/src/emojis/apple/emoji/5_191.png deleted file mode 100644 index be50fcdf32..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_192.png b/TMessagesProj/src/emojis/apple/emoji/5_192.png deleted file mode 100644 index 143ceef01f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_193.png b/TMessagesProj/src/emojis/apple/emoji/5_193.png deleted file mode 100644 index 4b50e79a0d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_194.png b/TMessagesProj/src/emojis/apple/emoji/5_194.png deleted file mode 100644 index 20d0f1c536..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_195.png b/TMessagesProj/src/emojis/apple/emoji/5_195.png deleted file mode 100644 index fcfe318974..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_196.png b/TMessagesProj/src/emojis/apple/emoji/5_196.png deleted file mode 100644 index 5ec781ecff..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_197.png b/TMessagesProj/src/emojis/apple/emoji/5_197.png deleted file mode 100644 index 08fb154da6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_198.png b/TMessagesProj/src/emojis/apple/emoji/5_198.png deleted file mode 100644 index ec4f4f4ccd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_199.png b/TMessagesProj/src/emojis/apple/emoji/5_199.png deleted file mode 100644 index 9c0d246aeb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_2.png b/TMessagesProj/src/emojis/apple/emoji/5_2.png deleted file mode 100644 index c2da129d46..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_20.png b/TMessagesProj/src/emojis/apple/emoji/5_20.png deleted file mode 100644 index 1228b81db2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_200.png b/TMessagesProj/src/emojis/apple/emoji/5_200.png deleted file mode 100644 index 41d4fbf0bb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_201.png b/TMessagesProj/src/emojis/apple/emoji/5_201.png deleted file mode 100644 index 503fdc8de4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_202.png b/TMessagesProj/src/emojis/apple/emoji/5_202.png deleted file mode 100644 index 579f436eea..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_203.png b/TMessagesProj/src/emojis/apple/emoji/5_203.png deleted file mode 100644 index d816088a4a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_204.png b/TMessagesProj/src/emojis/apple/emoji/5_204.png deleted file mode 100644 index b9183215a4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_205.png b/TMessagesProj/src/emojis/apple/emoji/5_205.png deleted file mode 100644 index 756fa3662c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_206.png b/TMessagesProj/src/emojis/apple/emoji/5_206.png deleted file mode 100644 index 0dc505ae01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_207.png b/TMessagesProj/src/emojis/apple/emoji/5_207.png deleted file mode 100644 index 80d6b7cb95..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_208.png b/TMessagesProj/src/emojis/apple/emoji/5_208.png deleted file mode 100644 index c382da1f6f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_209.png b/TMessagesProj/src/emojis/apple/emoji/5_209.png deleted file mode 100644 index 82a9b2ff4e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_21.png b/TMessagesProj/src/emojis/apple/emoji/5_21.png deleted file mode 100644 index c39d2afe5c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_210.png b/TMessagesProj/src/emojis/apple/emoji/5_210.png deleted file mode 100644 index b4989463fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_211.png b/TMessagesProj/src/emojis/apple/emoji/5_211.png deleted file mode 100644 index 4609beb1c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_212.png b/TMessagesProj/src/emojis/apple/emoji/5_212.png deleted file mode 100644 index 8df82be8cc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_213.png b/TMessagesProj/src/emojis/apple/emoji/5_213.png deleted file mode 100644 index fc4afb04e4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_214.png b/TMessagesProj/src/emojis/apple/emoji/5_214.png deleted file mode 100644 index ba6ed2fb6e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_215.png b/TMessagesProj/src/emojis/apple/emoji/5_215.png deleted file mode 100644 index 28cf22402b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_216.png b/TMessagesProj/src/emojis/apple/emoji/5_216.png deleted file mode 100644 index 70d6639e4b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_217.png b/TMessagesProj/src/emojis/apple/emoji/5_217.png deleted file mode 100644 index 29f2ff4042..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_218.png b/TMessagesProj/src/emojis/apple/emoji/5_218.png deleted file mode 100644 index e1df59b1f7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_219.png b/TMessagesProj/src/emojis/apple/emoji/5_219.png deleted file mode 100644 index 91aea6d248..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_22.png b/TMessagesProj/src/emojis/apple/emoji/5_22.png deleted file mode 100644 index 65d2baaf9a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_220.png b/TMessagesProj/src/emojis/apple/emoji/5_220.png deleted file mode 100644 index fd98714d99..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_221.png b/TMessagesProj/src/emojis/apple/emoji/5_221.png deleted file mode 100644 index 1254779db1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_222.png b/TMessagesProj/src/emojis/apple/emoji/5_222.png deleted file mode 100644 index ba10bfcbf1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_223.png b/TMessagesProj/src/emojis/apple/emoji/5_223.png deleted file mode 100644 index ff1a6e69c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_224.png b/TMessagesProj/src/emojis/apple/emoji/5_224.png deleted file mode 100644 index a30802bd09..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_225.png b/TMessagesProj/src/emojis/apple/emoji/5_225.png deleted file mode 100644 index ce4f1a1081..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_226.png b/TMessagesProj/src/emojis/apple/emoji/5_226.png deleted file mode 100644 index 0767322590..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_227.png b/TMessagesProj/src/emojis/apple/emoji/5_227.png deleted file mode 100644 index da83456209..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_228.png b/TMessagesProj/src/emojis/apple/emoji/5_228.png deleted file mode 100644 index e09081e71e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_23.png b/TMessagesProj/src/emojis/apple/emoji/5_23.png deleted file mode 100644 index b8a42a17a1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_24.png b/TMessagesProj/src/emojis/apple/emoji/5_24.png deleted file mode 100644 index 669c5ec989..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_25.png b/TMessagesProj/src/emojis/apple/emoji/5_25.png deleted file mode 100644 index 2fe736d064..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_26.png b/TMessagesProj/src/emojis/apple/emoji/5_26.png deleted file mode 100644 index 2f4f04c542..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_27.png b/TMessagesProj/src/emojis/apple/emoji/5_27.png deleted file mode 100644 index 12992b26bb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_28.png b/TMessagesProj/src/emojis/apple/emoji/5_28.png deleted file mode 100644 index 5617809eeb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_29.png b/TMessagesProj/src/emojis/apple/emoji/5_29.png deleted file mode 100644 index 6bc98e0ed0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_3.png b/TMessagesProj/src/emojis/apple/emoji/5_3.png deleted file mode 100644 index 037b8e1fcb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_30.png b/TMessagesProj/src/emojis/apple/emoji/5_30.png deleted file mode 100644 index 88fa99002c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_31.png b/TMessagesProj/src/emojis/apple/emoji/5_31.png deleted file mode 100644 index 85124f911d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_32.png b/TMessagesProj/src/emojis/apple/emoji/5_32.png deleted file mode 100644 index ad388de6b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_33.png b/TMessagesProj/src/emojis/apple/emoji/5_33.png deleted file mode 100644 index 1b258a4929..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_34.png b/TMessagesProj/src/emojis/apple/emoji/5_34.png deleted file mode 100644 index 11479a07a6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_35.png b/TMessagesProj/src/emojis/apple/emoji/5_35.png deleted file mode 100644 index 5169fa33cc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_36.png b/TMessagesProj/src/emojis/apple/emoji/5_36.png deleted file mode 100644 index ddb0162567..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_37.png b/TMessagesProj/src/emojis/apple/emoji/5_37.png deleted file mode 100644 index 8e0dcf288e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_38.png b/TMessagesProj/src/emojis/apple/emoji/5_38.png deleted file mode 100644 index 668618a3f5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_39.png b/TMessagesProj/src/emojis/apple/emoji/5_39.png deleted file mode 100644 index 898355d0eb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_4.png b/TMessagesProj/src/emojis/apple/emoji/5_4.png deleted file mode 100644 index 6916a2c4ae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_40.png b/TMessagesProj/src/emojis/apple/emoji/5_40.png deleted file mode 100644 index ef1916c66f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_41.png b/TMessagesProj/src/emojis/apple/emoji/5_41.png deleted file mode 100644 index 366905e65a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_42.png b/TMessagesProj/src/emojis/apple/emoji/5_42.png deleted file mode 100644 index de2ce03a0e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_43.png b/TMessagesProj/src/emojis/apple/emoji/5_43.png deleted file mode 100644 index bf5daca6a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_44.png b/TMessagesProj/src/emojis/apple/emoji/5_44.png deleted file mode 100644 index 36e67c983b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_45.png b/TMessagesProj/src/emojis/apple/emoji/5_45.png deleted file mode 100644 index c17f53fd28..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_46.png b/TMessagesProj/src/emojis/apple/emoji/5_46.png deleted file mode 100644 index 10354c30ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_47.png b/TMessagesProj/src/emojis/apple/emoji/5_47.png deleted file mode 100644 index e463b9ff3c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_48.png b/TMessagesProj/src/emojis/apple/emoji/5_48.png deleted file mode 100644 index 654aff39b3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_49.png b/TMessagesProj/src/emojis/apple/emoji/5_49.png deleted file mode 100644 index 76c4de9cad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_5.png b/TMessagesProj/src/emojis/apple/emoji/5_5.png deleted file mode 100644 index b603dad642..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_50.png b/TMessagesProj/src/emojis/apple/emoji/5_50.png deleted file mode 100644 index 432da2a659..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_51.png b/TMessagesProj/src/emojis/apple/emoji/5_51.png deleted file mode 100644 index 6df8de6b35..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_52.png b/TMessagesProj/src/emojis/apple/emoji/5_52.png deleted file mode 100644 index 79094ccb9e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_53.png b/TMessagesProj/src/emojis/apple/emoji/5_53.png deleted file mode 100644 index 96eb12abfa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_54.png b/TMessagesProj/src/emojis/apple/emoji/5_54.png deleted file mode 100644 index fc9b6a9cb3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_55.png b/TMessagesProj/src/emojis/apple/emoji/5_55.png deleted file mode 100644 index 9aafb67710..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_56.png b/TMessagesProj/src/emojis/apple/emoji/5_56.png deleted file mode 100644 index 0c99845bf1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_57.png b/TMessagesProj/src/emojis/apple/emoji/5_57.png deleted file mode 100644 index 176ecde8f3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_58.png b/TMessagesProj/src/emojis/apple/emoji/5_58.png deleted file mode 100644 index 03e5f1b45a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_59.png b/TMessagesProj/src/emojis/apple/emoji/5_59.png deleted file mode 100644 index 4d4317a0d0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_6.png b/TMessagesProj/src/emojis/apple/emoji/5_6.png deleted file mode 100644 index e4cebac2fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_60.png b/TMessagesProj/src/emojis/apple/emoji/5_60.png deleted file mode 100644 index 9c92c315a0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_61.png b/TMessagesProj/src/emojis/apple/emoji/5_61.png deleted file mode 100644 index e8a50eb63f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_62.png b/TMessagesProj/src/emojis/apple/emoji/5_62.png deleted file mode 100644 index d04fe9611a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_63.png b/TMessagesProj/src/emojis/apple/emoji/5_63.png deleted file mode 100644 index df0ccfa689..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_64.png b/TMessagesProj/src/emojis/apple/emoji/5_64.png deleted file mode 100644 index 276dd51111..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_65.png b/TMessagesProj/src/emojis/apple/emoji/5_65.png deleted file mode 100644 index 2e70f15173..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_66.png b/TMessagesProj/src/emojis/apple/emoji/5_66.png deleted file mode 100644 index 3419991486..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_67.png b/TMessagesProj/src/emojis/apple/emoji/5_67.png deleted file mode 100644 index 8c280522a4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_68.png b/TMessagesProj/src/emojis/apple/emoji/5_68.png deleted file mode 100644 index 1ca621ed2c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_69.png b/TMessagesProj/src/emojis/apple/emoji/5_69.png deleted file mode 100644 index 5ef529f567..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_7.png b/TMessagesProj/src/emojis/apple/emoji/5_7.png deleted file mode 100644 index e0bbe725e8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_70.png b/TMessagesProj/src/emojis/apple/emoji/5_70.png deleted file mode 100644 index 277691bc85..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_71.png b/TMessagesProj/src/emojis/apple/emoji/5_71.png deleted file mode 100644 index 6584427ed9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_72.png b/TMessagesProj/src/emojis/apple/emoji/5_72.png deleted file mode 100644 index 3a3fc71e90..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_73.png b/TMessagesProj/src/emojis/apple/emoji/5_73.png deleted file mode 100644 index 5dfe24ae49..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_74.png b/TMessagesProj/src/emojis/apple/emoji/5_74.png deleted file mode 100644 index 69bd4d7025..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_75.png b/TMessagesProj/src/emojis/apple/emoji/5_75.png deleted file mode 100644 index 398bf4f3a7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_76.png b/TMessagesProj/src/emojis/apple/emoji/5_76.png deleted file mode 100644 index e353449855..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_77.png b/TMessagesProj/src/emojis/apple/emoji/5_77.png deleted file mode 100644 index 8d82747b42..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_78.png b/TMessagesProj/src/emojis/apple/emoji/5_78.png deleted file mode 100644 index 8f13a21a4e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_79.png b/TMessagesProj/src/emojis/apple/emoji/5_79.png deleted file mode 100644 index 0bc401ddcb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_8.png b/TMessagesProj/src/emojis/apple/emoji/5_8.png deleted file mode 100644 index 0434dbcd93..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_80.png b/TMessagesProj/src/emojis/apple/emoji/5_80.png deleted file mode 100644 index aef65bac4a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_81.png b/TMessagesProj/src/emojis/apple/emoji/5_81.png deleted file mode 100644 index c52972b51d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_82.png b/TMessagesProj/src/emojis/apple/emoji/5_82.png deleted file mode 100644 index 48e4a6e824..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_83.png b/TMessagesProj/src/emojis/apple/emoji/5_83.png deleted file mode 100644 index a39c4a490d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_84.png b/TMessagesProj/src/emojis/apple/emoji/5_84.png deleted file mode 100644 index 7019573d18..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_85.png b/TMessagesProj/src/emojis/apple/emoji/5_85.png deleted file mode 100644 index 677dde37ae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_86.png b/TMessagesProj/src/emojis/apple/emoji/5_86.png deleted file mode 100644 index 3579c81c99..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_87.png b/TMessagesProj/src/emojis/apple/emoji/5_87.png deleted file mode 100644 index 4291e085cf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_88.png b/TMessagesProj/src/emojis/apple/emoji/5_88.png deleted file mode 100644 index c86119b1dd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_89.png b/TMessagesProj/src/emojis/apple/emoji/5_89.png deleted file mode 100644 index 38fbb0c17e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_9.png b/TMessagesProj/src/emojis/apple/emoji/5_9.png deleted file mode 100644 index e191f2c3a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_90.png b/TMessagesProj/src/emojis/apple/emoji/5_90.png deleted file mode 100644 index 34226abc4e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_91.png b/TMessagesProj/src/emojis/apple/emoji/5_91.png deleted file mode 100644 index c6ccd258aa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_92.png b/TMessagesProj/src/emojis/apple/emoji/5_92.png deleted file mode 100644 index d2715bb3a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_93.png b/TMessagesProj/src/emojis/apple/emoji/5_93.png deleted file mode 100644 index 08c1138dd2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_94.png b/TMessagesProj/src/emojis/apple/emoji/5_94.png deleted file mode 100644 index 8f2d6528a4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_95.png b/TMessagesProj/src/emojis/apple/emoji/5_95.png deleted file mode 100644 index 73986212f5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_96.png b/TMessagesProj/src/emojis/apple/emoji/5_96.png deleted file mode 100644 index e74cc9fa1a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_97.png b/TMessagesProj/src/emojis/apple/emoji/5_97.png deleted file mode 100644 index 6ade6f9bea..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_98.png b/TMessagesProj/src/emojis/apple/emoji/5_98.png deleted file mode 100644 index eb0845aaf7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/5_99.png b/TMessagesProj/src/emojis/apple/emoji/5_99.png deleted file mode 100644 index e603285372..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/5_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_0.png b/TMessagesProj/src/emojis/apple/emoji/6_0.png deleted file mode 100644 index 84b6317c9d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_1.png b/TMessagesProj/src/emojis/apple/emoji/6_1.png deleted file mode 100644 index 38ad15ae82..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_10.png b/TMessagesProj/src/emojis/apple/emoji/6_10.png deleted file mode 100644 index 6dcc5ff28d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_100.png b/TMessagesProj/src/emojis/apple/emoji/6_100.png deleted file mode 100644 index 91180a4aa6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_101.png b/TMessagesProj/src/emojis/apple/emoji/6_101.png deleted file mode 100644 index a57f9d4302..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_102.png b/TMessagesProj/src/emojis/apple/emoji/6_102.png deleted file mode 100644 index 9a1e67a212..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_103.png b/TMessagesProj/src/emojis/apple/emoji/6_103.png deleted file mode 100644 index 2434ad2beb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_104.png b/TMessagesProj/src/emojis/apple/emoji/6_104.png deleted file mode 100644 index 966ef11955..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_105.png b/TMessagesProj/src/emojis/apple/emoji/6_105.png deleted file mode 100644 index 3d5e0f07fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_106.png b/TMessagesProj/src/emojis/apple/emoji/6_106.png deleted file mode 100644 index 5a45201bfd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_107.png b/TMessagesProj/src/emojis/apple/emoji/6_107.png deleted file mode 100644 index 9a9531f3cc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_108.png b/TMessagesProj/src/emojis/apple/emoji/6_108.png deleted file mode 100644 index 242e83400a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_109.png b/TMessagesProj/src/emojis/apple/emoji/6_109.png deleted file mode 100644 index 6a6404003a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_11.png b/TMessagesProj/src/emojis/apple/emoji/6_11.png deleted file mode 100644 index cc4b9d39c6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_110.png b/TMessagesProj/src/emojis/apple/emoji/6_110.png deleted file mode 100644 index aabab08a22..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_111.png b/TMessagesProj/src/emojis/apple/emoji/6_111.png deleted file mode 100644 index b79f48f17a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_112.png b/TMessagesProj/src/emojis/apple/emoji/6_112.png deleted file mode 100644 index a55d020c17..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_113.png b/TMessagesProj/src/emojis/apple/emoji/6_113.png deleted file mode 100644 index e5b3fdcca6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_114.png b/TMessagesProj/src/emojis/apple/emoji/6_114.png deleted file mode 100644 index b48a6254ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_115.png b/TMessagesProj/src/emojis/apple/emoji/6_115.png deleted file mode 100644 index 26daa92136..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_116.png b/TMessagesProj/src/emojis/apple/emoji/6_116.png deleted file mode 100644 index 3e94a0f0d3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_117.png b/TMessagesProj/src/emojis/apple/emoji/6_117.png deleted file mode 100644 index bc35ce9c8e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_118.png b/TMessagesProj/src/emojis/apple/emoji/6_118.png deleted file mode 100644 index bc06981628..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_119.png b/TMessagesProj/src/emojis/apple/emoji/6_119.png deleted file mode 100644 index 762b8e2048..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_12.png b/TMessagesProj/src/emojis/apple/emoji/6_12.png deleted file mode 100644 index 3aff5b4e61..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_120.png b/TMessagesProj/src/emojis/apple/emoji/6_120.png deleted file mode 100644 index 79f11a3188..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_121.png b/TMessagesProj/src/emojis/apple/emoji/6_121.png deleted file mode 100644 index 999c781539..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_122.png b/TMessagesProj/src/emojis/apple/emoji/6_122.png deleted file mode 100644 index 3cc7e3ef7e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_123.png b/TMessagesProj/src/emojis/apple/emoji/6_123.png deleted file mode 100644 index 6d0c00d424..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_124.png b/TMessagesProj/src/emojis/apple/emoji/6_124.png deleted file mode 100644 index 69da2864b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_125.png b/TMessagesProj/src/emojis/apple/emoji/6_125.png deleted file mode 100644 index ce53f15a29..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_126.png b/TMessagesProj/src/emojis/apple/emoji/6_126.png deleted file mode 100644 index 849f14c9b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_127.png b/TMessagesProj/src/emojis/apple/emoji/6_127.png deleted file mode 100644 index cf5fd199f0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_128.png b/TMessagesProj/src/emojis/apple/emoji/6_128.png deleted file mode 100644 index 79ced7e07b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_129.png b/TMessagesProj/src/emojis/apple/emoji/6_129.png deleted file mode 100644 index c1a69afa1e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_13.png b/TMessagesProj/src/emojis/apple/emoji/6_13.png deleted file mode 100644 index 6a79591845..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_130.png b/TMessagesProj/src/emojis/apple/emoji/6_130.png deleted file mode 100644 index 0228f2b2f4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_131.png b/TMessagesProj/src/emojis/apple/emoji/6_131.png deleted file mode 100644 index 02a1ebf7f8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_132.png b/TMessagesProj/src/emojis/apple/emoji/6_132.png deleted file mode 100644 index 4fb50bfc05..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_133.png b/TMessagesProj/src/emojis/apple/emoji/6_133.png deleted file mode 100644 index efb926c74c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_134.png b/TMessagesProj/src/emojis/apple/emoji/6_134.png deleted file mode 100644 index 5d7d53d301..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_135.png b/TMessagesProj/src/emojis/apple/emoji/6_135.png deleted file mode 100644 index f19f6cdb78..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_136.png b/TMessagesProj/src/emojis/apple/emoji/6_136.png deleted file mode 100644 index 62e68b1004..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_137.png b/TMessagesProj/src/emojis/apple/emoji/6_137.png deleted file mode 100644 index 689bbe14f0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_138.png b/TMessagesProj/src/emojis/apple/emoji/6_138.png deleted file mode 100644 index 1bb0c7eb0f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_139.png b/TMessagesProj/src/emojis/apple/emoji/6_139.png deleted file mode 100644 index fd2df51a9e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_14.png b/TMessagesProj/src/emojis/apple/emoji/6_14.png deleted file mode 100644 index 67860bdf27..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_140.png b/TMessagesProj/src/emojis/apple/emoji/6_140.png deleted file mode 100644 index db0a2d6c35..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_141.png b/TMessagesProj/src/emojis/apple/emoji/6_141.png deleted file mode 100644 index 9d62886474..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_142.png b/TMessagesProj/src/emojis/apple/emoji/6_142.png deleted file mode 100644 index 6eebf5a012..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_143.png b/TMessagesProj/src/emojis/apple/emoji/6_143.png deleted file mode 100644 index ce040f1459..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_144.png b/TMessagesProj/src/emojis/apple/emoji/6_144.png deleted file mode 100644 index 34256c4bc4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_145.png b/TMessagesProj/src/emojis/apple/emoji/6_145.png deleted file mode 100644 index 560917ebd3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_146.png b/TMessagesProj/src/emojis/apple/emoji/6_146.png deleted file mode 100644 index c1e46e0a40..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_147.png b/TMessagesProj/src/emojis/apple/emoji/6_147.png deleted file mode 100644 index 3b99700860..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_148.png b/TMessagesProj/src/emojis/apple/emoji/6_148.png deleted file mode 100644 index 4248ed6d4e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_149.png b/TMessagesProj/src/emojis/apple/emoji/6_149.png deleted file mode 100644 index 7b785c2386..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_15.png b/TMessagesProj/src/emojis/apple/emoji/6_15.png deleted file mode 100644 index f62601d417..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_150.png b/TMessagesProj/src/emojis/apple/emoji/6_150.png deleted file mode 100644 index 4386c5f350..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_151.png b/TMessagesProj/src/emojis/apple/emoji/6_151.png deleted file mode 100644 index b9cb8f64d1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_152.png b/TMessagesProj/src/emojis/apple/emoji/6_152.png deleted file mode 100644 index 3db377a1eb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_153.png b/TMessagesProj/src/emojis/apple/emoji/6_153.png deleted file mode 100644 index ba9be0b37f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_154.png b/TMessagesProj/src/emojis/apple/emoji/6_154.png deleted file mode 100644 index e1cd17fb3f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_155.png b/TMessagesProj/src/emojis/apple/emoji/6_155.png deleted file mode 100644 index 18827a92d4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_156.png b/TMessagesProj/src/emojis/apple/emoji/6_156.png deleted file mode 100644 index 8275a11d32..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_157.png b/TMessagesProj/src/emojis/apple/emoji/6_157.png deleted file mode 100644 index 82273fd2b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_158.png b/TMessagesProj/src/emojis/apple/emoji/6_158.png deleted file mode 100644 index 3e8b679610..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_159.png b/TMessagesProj/src/emojis/apple/emoji/6_159.png deleted file mode 100644 index a89186a157..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_16.png b/TMessagesProj/src/emojis/apple/emoji/6_16.png deleted file mode 100644 index a2861f44a2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_160.png b/TMessagesProj/src/emojis/apple/emoji/6_160.png deleted file mode 100644 index 65ab3e0567..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_161.png b/TMessagesProj/src/emojis/apple/emoji/6_161.png deleted file mode 100644 index c217a12773..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_162.png b/TMessagesProj/src/emojis/apple/emoji/6_162.png deleted file mode 100644 index d82565c816..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_163.png b/TMessagesProj/src/emojis/apple/emoji/6_163.png deleted file mode 100644 index b65cdcd0f8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_164.png b/TMessagesProj/src/emojis/apple/emoji/6_164.png deleted file mode 100644 index d099e43929..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_165.png b/TMessagesProj/src/emojis/apple/emoji/6_165.png deleted file mode 100644 index d7fab7c260..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_166.png b/TMessagesProj/src/emojis/apple/emoji/6_166.png deleted file mode 100644 index 4e50599c7e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_167.png b/TMessagesProj/src/emojis/apple/emoji/6_167.png deleted file mode 100644 index b0ca7b733d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_168.png b/TMessagesProj/src/emojis/apple/emoji/6_168.png deleted file mode 100644 index e4d1e6aa15..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_169.png b/TMessagesProj/src/emojis/apple/emoji/6_169.png deleted file mode 100644 index 3ca37857a3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_17.png b/TMessagesProj/src/emojis/apple/emoji/6_17.png deleted file mode 100644 index 564f315ec8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_170.png b/TMessagesProj/src/emojis/apple/emoji/6_170.png deleted file mode 100644 index ce68997504..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_171.png b/TMessagesProj/src/emojis/apple/emoji/6_171.png deleted file mode 100644 index ab806cbdd1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_172.png b/TMessagesProj/src/emojis/apple/emoji/6_172.png deleted file mode 100644 index 3289c1103f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_173.png b/TMessagesProj/src/emojis/apple/emoji/6_173.png deleted file mode 100644 index b53915db1a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_174.png b/TMessagesProj/src/emojis/apple/emoji/6_174.png deleted file mode 100644 index c95e1b0f7f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_175.png b/TMessagesProj/src/emojis/apple/emoji/6_175.png deleted file mode 100644 index be953dd00d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_176.png b/TMessagesProj/src/emojis/apple/emoji/6_176.png deleted file mode 100644 index 5176be2427..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_177.png b/TMessagesProj/src/emojis/apple/emoji/6_177.png deleted file mode 100644 index e58c86dd56..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_178.png b/TMessagesProj/src/emojis/apple/emoji/6_178.png deleted file mode 100644 index 4dc6757805..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_179.png b/TMessagesProj/src/emojis/apple/emoji/6_179.png deleted file mode 100644 index a90e25dfaa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_18.png b/TMessagesProj/src/emojis/apple/emoji/6_18.png deleted file mode 100644 index f2fd6f3a11..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_180.png b/TMessagesProj/src/emojis/apple/emoji/6_180.png deleted file mode 100644 index 90f7a17ffc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_181.png b/TMessagesProj/src/emojis/apple/emoji/6_181.png deleted file mode 100644 index 7e30187ede..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_182.png b/TMessagesProj/src/emojis/apple/emoji/6_182.png deleted file mode 100644 index 055fe44e43..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_183.png b/TMessagesProj/src/emojis/apple/emoji/6_183.png deleted file mode 100644 index 66c5bf79e8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_184.png b/TMessagesProj/src/emojis/apple/emoji/6_184.png deleted file mode 100644 index ea01f1ae99..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_185.png b/TMessagesProj/src/emojis/apple/emoji/6_185.png deleted file mode 100644 index f41267b039..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_186.png b/TMessagesProj/src/emojis/apple/emoji/6_186.png deleted file mode 100644 index d17feae67a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_187.png b/TMessagesProj/src/emojis/apple/emoji/6_187.png deleted file mode 100644 index d72fa66476..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_188.png b/TMessagesProj/src/emojis/apple/emoji/6_188.png deleted file mode 100644 index 085409f3fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_189.png b/TMessagesProj/src/emojis/apple/emoji/6_189.png deleted file mode 100644 index 4f0f03edec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_19.png b/TMessagesProj/src/emojis/apple/emoji/6_19.png deleted file mode 100644 index 3c5e97dc53..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_190.png b/TMessagesProj/src/emojis/apple/emoji/6_190.png deleted file mode 100644 index 241e2b010e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_191.png b/TMessagesProj/src/emojis/apple/emoji/6_191.png deleted file mode 100644 index 39dde8ea33..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_192.png b/TMessagesProj/src/emojis/apple/emoji/6_192.png deleted file mode 100644 index 010a008903..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_193.png b/TMessagesProj/src/emojis/apple/emoji/6_193.png deleted file mode 100644 index b738fa4dce..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_194.png b/TMessagesProj/src/emojis/apple/emoji/6_194.png deleted file mode 100644 index 169e605525..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_195.png b/TMessagesProj/src/emojis/apple/emoji/6_195.png deleted file mode 100644 index 9030460ae1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_196.png b/TMessagesProj/src/emojis/apple/emoji/6_196.png deleted file mode 100644 index 0f6616f7e6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_197.png b/TMessagesProj/src/emojis/apple/emoji/6_197.png deleted file mode 100644 index c7de797b46..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_198.png b/TMessagesProj/src/emojis/apple/emoji/6_198.png deleted file mode 100644 index d5de71559a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_199.png b/TMessagesProj/src/emojis/apple/emoji/6_199.png deleted file mode 100644 index 9a852412ba..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_2.png b/TMessagesProj/src/emojis/apple/emoji/6_2.png deleted file mode 100644 index ff070624b7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_20.png b/TMessagesProj/src/emojis/apple/emoji/6_20.png deleted file mode 100644 index ee795a39a1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_200.png b/TMessagesProj/src/emojis/apple/emoji/6_200.png deleted file mode 100644 index a4663cc480..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_201.png b/TMessagesProj/src/emojis/apple/emoji/6_201.png deleted file mode 100644 index 3ab1581b66..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_202.png b/TMessagesProj/src/emojis/apple/emoji/6_202.png deleted file mode 100644 index e0e702339d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_203.png b/TMessagesProj/src/emojis/apple/emoji/6_203.png deleted file mode 100644 index 2b12928383..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_204.png b/TMessagesProj/src/emojis/apple/emoji/6_204.png deleted file mode 100644 index fd3cbfe905..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_205.png b/TMessagesProj/src/emojis/apple/emoji/6_205.png deleted file mode 100644 index e6356ab980..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_206.png b/TMessagesProj/src/emojis/apple/emoji/6_206.png deleted file mode 100644 index 7df6007d4e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_207.png b/TMessagesProj/src/emojis/apple/emoji/6_207.png deleted file mode 100644 index f5971dedb9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_208.png b/TMessagesProj/src/emojis/apple/emoji/6_208.png deleted file mode 100644 index 9b6273e83a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_209.png b/TMessagesProj/src/emojis/apple/emoji/6_209.png deleted file mode 100644 index 32372b6dae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_21.png b/TMessagesProj/src/emojis/apple/emoji/6_21.png deleted file mode 100644 index ab0da3db87..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_210.png b/TMessagesProj/src/emojis/apple/emoji/6_210.png deleted file mode 100644 index d04a7d1c43..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_211.png b/TMessagesProj/src/emojis/apple/emoji/6_211.png deleted file mode 100644 index a250cfd0d6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_212.png b/TMessagesProj/src/emojis/apple/emoji/6_212.png deleted file mode 100644 index 5626bed5f7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_213.png b/TMessagesProj/src/emojis/apple/emoji/6_213.png deleted file mode 100644 index be241162ee..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_214.png b/TMessagesProj/src/emojis/apple/emoji/6_214.png deleted file mode 100644 index 93245f51e0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_215.png b/TMessagesProj/src/emojis/apple/emoji/6_215.png deleted file mode 100644 index a52a404b39..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_216.png b/TMessagesProj/src/emojis/apple/emoji/6_216.png deleted file mode 100644 index ca18f16f19..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_217.png b/TMessagesProj/src/emojis/apple/emoji/6_217.png deleted file mode 100644 index 749907f405..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_218.png b/TMessagesProj/src/emojis/apple/emoji/6_218.png deleted file mode 100644 index ab5443e908..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_219.png b/TMessagesProj/src/emojis/apple/emoji/6_219.png deleted file mode 100644 index 48d21fe85b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_22.png b/TMessagesProj/src/emojis/apple/emoji/6_22.png deleted file mode 100644 index 917ce693fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_220.png b/TMessagesProj/src/emojis/apple/emoji/6_220.png deleted file mode 100644 index 43b0d8b99c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_221.png b/TMessagesProj/src/emojis/apple/emoji/6_221.png deleted file mode 100644 index ff9a7c7460..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_222.png b/TMessagesProj/src/emojis/apple/emoji/6_222.png deleted file mode 100644 index b213afb2ea..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_223.png b/TMessagesProj/src/emojis/apple/emoji/6_223.png deleted file mode 100644 index 94accbbd49..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_224.png b/TMessagesProj/src/emojis/apple/emoji/6_224.png deleted file mode 100644 index 48a4ffb9f4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_225.png b/TMessagesProj/src/emojis/apple/emoji/6_225.png deleted file mode 100644 index d57b35b9b4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_226.png b/TMessagesProj/src/emojis/apple/emoji/6_226.png deleted file mode 100644 index 68f0e09800..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_227.png b/TMessagesProj/src/emojis/apple/emoji/6_227.png deleted file mode 100644 index e6c3f5d929..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_228.png b/TMessagesProj/src/emojis/apple/emoji/6_228.png deleted file mode 100644 index 770810edd0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_229.png b/TMessagesProj/src/emojis/apple/emoji/6_229.png deleted file mode 100644 index 31a88dfe79..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_229.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_23.png b/TMessagesProj/src/emojis/apple/emoji/6_23.png deleted file mode 100644 index e387ac78b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_230.png b/TMessagesProj/src/emojis/apple/emoji/6_230.png deleted file mode 100644 index 745e2c763b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_230.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_231.png b/TMessagesProj/src/emojis/apple/emoji/6_231.png deleted file mode 100644 index 6dd1c2611b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_231.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_232.png b/TMessagesProj/src/emojis/apple/emoji/6_232.png deleted file mode 100644 index dca46c4549..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_232.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_233.png b/TMessagesProj/src/emojis/apple/emoji/6_233.png deleted file mode 100644 index c18f2e977f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_233.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_234.png b/TMessagesProj/src/emojis/apple/emoji/6_234.png deleted file mode 100644 index 07c79929dd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_234.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_235.png b/TMessagesProj/src/emojis/apple/emoji/6_235.png deleted file mode 100644 index 13c0c28c74..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_235.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_236.png b/TMessagesProj/src/emojis/apple/emoji/6_236.png deleted file mode 100644 index 35fb80bd44..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_236.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_237.png b/TMessagesProj/src/emojis/apple/emoji/6_237.png deleted file mode 100644 index 8992bb2e85..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_237.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_238.png b/TMessagesProj/src/emojis/apple/emoji/6_238.png deleted file mode 100644 index 221e2b4516..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_238.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_239.png b/TMessagesProj/src/emojis/apple/emoji/6_239.png deleted file mode 100644 index 1c7a0fb6df..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_239.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_24.png b/TMessagesProj/src/emojis/apple/emoji/6_24.png deleted file mode 100644 index a03ee61529..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_240.png b/TMessagesProj/src/emojis/apple/emoji/6_240.png deleted file mode 100644 index 49adef1622..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_240.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_241.png b/TMessagesProj/src/emojis/apple/emoji/6_241.png deleted file mode 100644 index 6ab9214ca2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_241.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_242.png b/TMessagesProj/src/emojis/apple/emoji/6_242.png deleted file mode 100644 index c3159c02f7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_242.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_243.png b/TMessagesProj/src/emojis/apple/emoji/6_243.png deleted file mode 100644 index de27955c35..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_243.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_244.png b/TMessagesProj/src/emojis/apple/emoji/6_244.png deleted file mode 100644 index 139666de48..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_244.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_245.png b/TMessagesProj/src/emojis/apple/emoji/6_245.png deleted file mode 100644 index 8bb01037c1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_245.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_246.png b/TMessagesProj/src/emojis/apple/emoji/6_246.png deleted file mode 100644 index f448e651e2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_246.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_247.png b/TMessagesProj/src/emojis/apple/emoji/6_247.png deleted file mode 100644 index bac06cb6b3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_247.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_248.png b/TMessagesProj/src/emojis/apple/emoji/6_248.png deleted file mode 100644 index bf6fc8ec7b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_248.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_249.png b/TMessagesProj/src/emojis/apple/emoji/6_249.png deleted file mode 100644 index ba6ec3521f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_249.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_25.png b/TMessagesProj/src/emojis/apple/emoji/6_25.png deleted file mode 100644 index 9df7e59da3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_250.png b/TMessagesProj/src/emojis/apple/emoji/6_250.png deleted file mode 100644 index 19c54daf33..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_250.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_251.png b/TMessagesProj/src/emojis/apple/emoji/6_251.png deleted file mode 100644 index 8e210927b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_251.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_252.png b/TMessagesProj/src/emojis/apple/emoji/6_252.png deleted file mode 100644 index fcda5fa091..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_252.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_253.png b/TMessagesProj/src/emojis/apple/emoji/6_253.png deleted file mode 100644 index 9ed0e1653d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_253.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_254.png b/TMessagesProj/src/emojis/apple/emoji/6_254.png deleted file mode 100644 index 91f1461564..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_254.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_255.png b/TMessagesProj/src/emojis/apple/emoji/6_255.png deleted file mode 100644 index c5c7df4080..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_255.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_256.png b/TMessagesProj/src/emojis/apple/emoji/6_256.png deleted file mode 100644 index bb97c6ad75..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_256.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_257.png b/TMessagesProj/src/emojis/apple/emoji/6_257.png deleted file mode 100644 index ddae2e56fa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_257.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_258.png b/TMessagesProj/src/emojis/apple/emoji/6_258.png deleted file mode 100644 index a28f4c3573..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_258.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_259.png b/TMessagesProj/src/emojis/apple/emoji/6_259.png deleted file mode 100644 index 1d63835d89..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_259.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_26.png b/TMessagesProj/src/emojis/apple/emoji/6_26.png deleted file mode 100644 index 2b50fb619e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_260.png b/TMessagesProj/src/emojis/apple/emoji/6_260.png deleted file mode 100644 index dcb3dc2b55..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_260.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_261.png b/TMessagesProj/src/emojis/apple/emoji/6_261.png deleted file mode 100644 index fbf98220f7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_261.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_262.png b/TMessagesProj/src/emojis/apple/emoji/6_262.png deleted file mode 100644 index c461b6d251..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_262.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_263.png b/TMessagesProj/src/emojis/apple/emoji/6_263.png deleted file mode 100644 index 3b28874170..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_263.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_264.png b/TMessagesProj/src/emojis/apple/emoji/6_264.png deleted file mode 100644 index f2cdb86c1a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_264.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_265.png b/TMessagesProj/src/emojis/apple/emoji/6_265.png deleted file mode 100644 index 8a49dece33..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_265.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_266.png b/TMessagesProj/src/emojis/apple/emoji/6_266.png deleted file mode 100644 index 0e3fc57ebd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_266.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_267.png b/TMessagesProj/src/emojis/apple/emoji/6_267.png deleted file mode 100644 index 38c8b13449..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_267.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_268.png b/TMessagesProj/src/emojis/apple/emoji/6_268.png deleted file mode 100644 index 8599656526..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_268.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_269.png b/TMessagesProj/src/emojis/apple/emoji/6_269.png deleted file mode 100644 index 014c4c9e68..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_269.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_27.png b/TMessagesProj/src/emojis/apple/emoji/6_27.png deleted file mode 100644 index a12a659fa3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_270.png b/TMessagesProj/src/emojis/apple/emoji/6_270.png deleted file mode 100644 index 424b253f81..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_270.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_271.png b/TMessagesProj/src/emojis/apple/emoji/6_271.png deleted file mode 100644 index dbd115d7fd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_271.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_272.png b/TMessagesProj/src/emojis/apple/emoji/6_272.png deleted file mode 100644 index 2a52722df2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_272.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_273.png b/TMessagesProj/src/emojis/apple/emoji/6_273.png deleted file mode 100644 index 65030cabd2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_273.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_274.png b/TMessagesProj/src/emojis/apple/emoji/6_274.png deleted file mode 100644 index 266733f6aa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_274.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_275.png b/TMessagesProj/src/emojis/apple/emoji/6_275.png deleted file mode 100644 index 241de4b73f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_275.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_276.png b/TMessagesProj/src/emojis/apple/emoji/6_276.png deleted file mode 100644 index 10dd7e0910..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_276.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_277.png b/TMessagesProj/src/emojis/apple/emoji/6_277.png deleted file mode 100644 index c797a5c6b5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_277.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_278.png b/TMessagesProj/src/emojis/apple/emoji/6_278.png deleted file mode 100644 index 6d2f2feb7d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_278.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_279.png b/TMessagesProj/src/emojis/apple/emoji/6_279.png deleted file mode 100644 index df4288936f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_279.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_28.png b/TMessagesProj/src/emojis/apple/emoji/6_28.png deleted file mode 100644 index f253d9faec..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_280.png b/TMessagesProj/src/emojis/apple/emoji/6_280.png deleted file mode 100644 index 443cda1c88..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_280.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_281.png b/TMessagesProj/src/emojis/apple/emoji/6_281.png deleted file mode 100644 index 5258b9793d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_281.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_282.png b/TMessagesProj/src/emojis/apple/emoji/6_282.png deleted file mode 100644 index 9ea51debef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_282.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_283.png b/TMessagesProj/src/emojis/apple/emoji/6_283.png deleted file mode 100644 index 71a1bd812a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_283.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_284.png b/TMessagesProj/src/emojis/apple/emoji/6_284.png deleted file mode 100644 index 24790e1dd7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_284.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_285.png b/TMessagesProj/src/emojis/apple/emoji/6_285.png deleted file mode 100644 index 0770a86839..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_285.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_286.png b/TMessagesProj/src/emojis/apple/emoji/6_286.png deleted file mode 100644 index 559ed86b5b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_286.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_287.png b/TMessagesProj/src/emojis/apple/emoji/6_287.png deleted file mode 100644 index 9ff047b2b9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_287.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_288.png b/TMessagesProj/src/emojis/apple/emoji/6_288.png deleted file mode 100644 index 8ca9e33ba6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_288.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_289.png b/TMessagesProj/src/emojis/apple/emoji/6_289.png deleted file mode 100644 index e1f9a5923f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_289.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_29.png b/TMessagesProj/src/emojis/apple/emoji/6_29.png deleted file mode 100644 index 5fa82b1c6f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_290.png b/TMessagesProj/src/emojis/apple/emoji/6_290.png deleted file mode 100644 index fc57cf1d97..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_290.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_291.png b/TMessagesProj/src/emojis/apple/emoji/6_291.png deleted file mode 100644 index 0e17053b05..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_291.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_292.png b/TMessagesProj/src/emojis/apple/emoji/6_292.png deleted file mode 100644 index 9abd03d63f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_292.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_293.png b/TMessagesProj/src/emojis/apple/emoji/6_293.png deleted file mode 100644 index d105b7b860..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_293.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_294.png b/TMessagesProj/src/emojis/apple/emoji/6_294.png deleted file mode 100644 index 5becae5d30..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_294.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_295.png b/TMessagesProj/src/emojis/apple/emoji/6_295.png deleted file mode 100644 index 1a166f017a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_295.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_296.png b/TMessagesProj/src/emojis/apple/emoji/6_296.png deleted file mode 100644 index 6a916b165d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_296.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_297.png b/TMessagesProj/src/emojis/apple/emoji/6_297.png deleted file mode 100644 index 3e387f8c49..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_297.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_3.png b/TMessagesProj/src/emojis/apple/emoji/6_3.png deleted file mode 100644 index 2e2787c11d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_30.png b/TMessagesProj/src/emojis/apple/emoji/6_30.png deleted file mode 100644 index a4a0641beb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_31.png b/TMessagesProj/src/emojis/apple/emoji/6_31.png deleted file mode 100644 index 5ff73fe63a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_32.png b/TMessagesProj/src/emojis/apple/emoji/6_32.png deleted file mode 100644 index 80478225d3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_33.png b/TMessagesProj/src/emojis/apple/emoji/6_33.png deleted file mode 100644 index f1ea5d1f8c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_34.png b/TMessagesProj/src/emojis/apple/emoji/6_34.png deleted file mode 100644 index eed5f724a3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_35.png b/TMessagesProj/src/emojis/apple/emoji/6_35.png deleted file mode 100644 index 0802ce3577..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_36.png b/TMessagesProj/src/emojis/apple/emoji/6_36.png deleted file mode 100644 index 144f0b6917..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_37.png b/TMessagesProj/src/emojis/apple/emoji/6_37.png deleted file mode 100644 index 17fbe6746c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_38.png b/TMessagesProj/src/emojis/apple/emoji/6_38.png deleted file mode 100644 index 6fe8a57519..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_39.png b/TMessagesProj/src/emojis/apple/emoji/6_39.png deleted file mode 100644 index 8da1e0eea4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_4.png b/TMessagesProj/src/emojis/apple/emoji/6_4.png deleted file mode 100644 index 8f192ac53c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_40.png b/TMessagesProj/src/emojis/apple/emoji/6_40.png deleted file mode 100644 index 958b4fc1b4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_41.png b/TMessagesProj/src/emojis/apple/emoji/6_41.png deleted file mode 100644 index 578a43f018..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_42.png b/TMessagesProj/src/emojis/apple/emoji/6_42.png deleted file mode 100644 index 72dff22707..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_43.png b/TMessagesProj/src/emojis/apple/emoji/6_43.png deleted file mode 100644 index ac46a08d35..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_44.png b/TMessagesProj/src/emojis/apple/emoji/6_44.png deleted file mode 100644 index 88f54a3823..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_45.png b/TMessagesProj/src/emojis/apple/emoji/6_45.png deleted file mode 100644 index b3bb4a0da3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_46.png b/TMessagesProj/src/emojis/apple/emoji/6_46.png deleted file mode 100644 index 3482a8bc27..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_47.png b/TMessagesProj/src/emojis/apple/emoji/6_47.png deleted file mode 100644 index dbe10acaf0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_48.png b/TMessagesProj/src/emojis/apple/emoji/6_48.png deleted file mode 100644 index 9e4b5dcc1f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_49.png b/TMessagesProj/src/emojis/apple/emoji/6_49.png deleted file mode 100644 index 5096e871c2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_5.png b/TMessagesProj/src/emojis/apple/emoji/6_5.png deleted file mode 100644 index 765f84425d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_50.png b/TMessagesProj/src/emojis/apple/emoji/6_50.png deleted file mode 100644 index 2a15305943..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_51.png b/TMessagesProj/src/emojis/apple/emoji/6_51.png deleted file mode 100644 index 73e525e927..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_52.png b/TMessagesProj/src/emojis/apple/emoji/6_52.png deleted file mode 100644 index 735f5df1f9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_53.png b/TMessagesProj/src/emojis/apple/emoji/6_53.png deleted file mode 100644 index 41a3618315..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_54.png b/TMessagesProj/src/emojis/apple/emoji/6_54.png deleted file mode 100644 index 39da68864a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_55.png b/TMessagesProj/src/emojis/apple/emoji/6_55.png deleted file mode 100644 index 3d62e72d38..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_56.png b/TMessagesProj/src/emojis/apple/emoji/6_56.png deleted file mode 100644 index 6947d1b8b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_57.png b/TMessagesProj/src/emojis/apple/emoji/6_57.png deleted file mode 100644 index 0d64c2050d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_58.png b/TMessagesProj/src/emojis/apple/emoji/6_58.png deleted file mode 100644 index 744dcc23fa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_59.png b/TMessagesProj/src/emojis/apple/emoji/6_59.png deleted file mode 100644 index 3b76efebe6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_6.png b/TMessagesProj/src/emojis/apple/emoji/6_6.png deleted file mode 100644 index d22c92294e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_60.png b/TMessagesProj/src/emojis/apple/emoji/6_60.png deleted file mode 100644 index ea383101c5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_61.png b/TMessagesProj/src/emojis/apple/emoji/6_61.png deleted file mode 100644 index 669022ff3f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_62.png b/TMessagesProj/src/emojis/apple/emoji/6_62.png deleted file mode 100644 index d8a87fc571..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_63.png b/TMessagesProj/src/emojis/apple/emoji/6_63.png deleted file mode 100644 index 17e4d039ed..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_64.png b/TMessagesProj/src/emojis/apple/emoji/6_64.png deleted file mode 100644 index 6a211cd43f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_65.png b/TMessagesProj/src/emojis/apple/emoji/6_65.png deleted file mode 100644 index f6d91cfc33..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_66.png b/TMessagesProj/src/emojis/apple/emoji/6_66.png deleted file mode 100644 index 8c11714438..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_67.png b/TMessagesProj/src/emojis/apple/emoji/6_67.png deleted file mode 100644 index 106a5afb16..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_68.png b/TMessagesProj/src/emojis/apple/emoji/6_68.png deleted file mode 100644 index f3541fc1cc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_69.png b/TMessagesProj/src/emojis/apple/emoji/6_69.png deleted file mode 100644 index 47a9fb2f61..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_7.png b/TMessagesProj/src/emojis/apple/emoji/6_7.png deleted file mode 100644 index ebd9850591..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_70.png b/TMessagesProj/src/emojis/apple/emoji/6_70.png deleted file mode 100644 index fbf98c9e8f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_71.png b/TMessagesProj/src/emojis/apple/emoji/6_71.png deleted file mode 100644 index 2adc4ec6e0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_72.png b/TMessagesProj/src/emojis/apple/emoji/6_72.png deleted file mode 100644 index 45598903b8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_73.png b/TMessagesProj/src/emojis/apple/emoji/6_73.png deleted file mode 100644 index 2c61ff864f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_74.png b/TMessagesProj/src/emojis/apple/emoji/6_74.png deleted file mode 100644 index ae296009a5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_75.png b/TMessagesProj/src/emojis/apple/emoji/6_75.png deleted file mode 100644 index 0e7880f7d3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_76.png b/TMessagesProj/src/emojis/apple/emoji/6_76.png deleted file mode 100644 index 51ac50b6ab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_77.png b/TMessagesProj/src/emojis/apple/emoji/6_77.png deleted file mode 100644 index d21c5c2819..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_78.png b/TMessagesProj/src/emojis/apple/emoji/6_78.png deleted file mode 100644 index 693821160d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_79.png b/TMessagesProj/src/emojis/apple/emoji/6_79.png deleted file mode 100644 index 1a8dfc93cf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_8.png b/TMessagesProj/src/emojis/apple/emoji/6_8.png deleted file mode 100644 index cb2a61795a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_80.png b/TMessagesProj/src/emojis/apple/emoji/6_80.png deleted file mode 100644 index 8ef2de5075..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_81.png b/TMessagesProj/src/emojis/apple/emoji/6_81.png deleted file mode 100644 index 42e0febf1f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_82.png b/TMessagesProj/src/emojis/apple/emoji/6_82.png deleted file mode 100644 index 00d8ac6b40..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_83.png b/TMessagesProj/src/emojis/apple/emoji/6_83.png deleted file mode 100644 index b85bf10b67..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_84.png b/TMessagesProj/src/emojis/apple/emoji/6_84.png deleted file mode 100644 index 002bbb3bfa..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_85.png b/TMessagesProj/src/emojis/apple/emoji/6_85.png deleted file mode 100644 index 035f5a97be..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_86.png b/TMessagesProj/src/emojis/apple/emoji/6_86.png deleted file mode 100644 index 5f1fa3afcc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_87.png b/TMessagesProj/src/emojis/apple/emoji/6_87.png deleted file mode 100644 index 48b2d2950d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_88.png b/TMessagesProj/src/emojis/apple/emoji/6_88.png deleted file mode 100644 index 3b5129a95c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_89.png b/TMessagesProj/src/emojis/apple/emoji/6_89.png deleted file mode 100644 index 4724953142..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_9.png b/TMessagesProj/src/emojis/apple/emoji/6_9.png deleted file mode 100644 index 54cead2ef9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_90.png b/TMessagesProj/src/emojis/apple/emoji/6_90.png deleted file mode 100644 index bb62b720e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_91.png b/TMessagesProj/src/emojis/apple/emoji/6_91.png deleted file mode 100644 index 245964eaa3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_92.png b/TMessagesProj/src/emojis/apple/emoji/6_92.png deleted file mode 100644 index 7394e08d0e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_93.png b/TMessagesProj/src/emojis/apple/emoji/6_93.png deleted file mode 100644 index 946c2856e8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_94.png b/TMessagesProj/src/emojis/apple/emoji/6_94.png deleted file mode 100644 index a9754c2915..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_95.png b/TMessagesProj/src/emojis/apple/emoji/6_95.png deleted file mode 100644 index f900af9999..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_96.png b/TMessagesProj/src/emojis/apple/emoji/6_96.png deleted file mode 100644 index f6be17df0d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_97.png b/TMessagesProj/src/emojis/apple/emoji/6_97.png deleted file mode 100644 index eb23f44388..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_98.png b/TMessagesProj/src/emojis/apple/emoji/6_98.png deleted file mode 100644 index 898bda06e3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/6_99.png b/TMessagesProj/src/emojis/apple/emoji/6_99.png deleted file mode 100644 index 864029d3ee..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/6_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_0.png b/TMessagesProj/src/emojis/apple/emoji/7_0.png deleted file mode 100644 index 1c9fddac49..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_1.png b/TMessagesProj/src/emojis/apple/emoji/7_1.png deleted file mode 100644 index be2410d861..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_10.png b/TMessagesProj/src/emojis/apple/emoji/7_10.png deleted file mode 100644 index 2a73368ca6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_100.png b/TMessagesProj/src/emojis/apple/emoji/7_100.png deleted file mode 100644 index ad429eca7b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_101.png b/TMessagesProj/src/emojis/apple/emoji/7_101.png deleted file mode 100644 index 3c80ea7cf1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_102.png b/TMessagesProj/src/emojis/apple/emoji/7_102.png deleted file mode 100644 index cd5bf0efc3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_103.png b/TMessagesProj/src/emojis/apple/emoji/7_103.png deleted file mode 100644 index 0a2074da0a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_104.png b/TMessagesProj/src/emojis/apple/emoji/7_104.png deleted file mode 100644 index 36cffaa2e9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_105.png b/TMessagesProj/src/emojis/apple/emoji/7_105.png deleted file mode 100644 index c7bd003027..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_106.png b/TMessagesProj/src/emojis/apple/emoji/7_106.png deleted file mode 100644 index 37afa3dcb3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_107.png b/TMessagesProj/src/emojis/apple/emoji/7_107.png deleted file mode 100644 index c9e14a490f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_108.png b/TMessagesProj/src/emojis/apple/emoji/7_108.png deleted file mode 100644 index 9bb4d8eade..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_109.png b/TMessagesProj/src/emojis/apple/emoji/7_109.png deleted file mode 100644 index 911ee88087..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_11.png b/TMessagesProj/src/emojis/apple/emoji/7_11.png deleted file mode 100644 index a90c40817a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_110.png b/TMessagesProj/src/emojis/apple/emoji/7_110.png deleted file mode 100644 index ad31295a6f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_111.png b/TMessagesProj/src/emojis/apple/emoji/7_111.png deleted file mode 100644 index 9af66311d8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_112.png b/TMessagesProj/src/emojis/apple/emoji/7_112.png deleted file mode 100644 index b5426e85b1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_113.png b/TMessagesProj/src/emojis/apple/emoji/7_113.png deleted file mode 100644 index c7781a3677..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_114.png b/TMessagesProj/src/emojis/apple/emoji/7_114.png deleted file mode 100644 index 2e4bac122f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_115.png b/TMessagesProj/src/emojis/apple/emoji/7_115.png deleted file mode 100644 index c03d19af01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_116.png b/TMessagesProj/src/emojis/apple/emoji/7_116.png deleted file mode 100644 index b693f1c66b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_117.png b/TMessagesProj/src/emojis/apple/emoji/7_117.png deleted file mode 100644 index d7551fda5f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_118.png b/TMessagesProj/src/emojis/apple/emoji/7_118.png deleted file mode 100644 index 482bbaf668..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_119.png b/TMessagesProj/src/emojis/apple/emoji/7_119.png deleted file mode 100644 index c5b746c6c7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_12.png b/TMessagesProj/src/emojis/apple/emoji/7_12.png deleted file mode 100644 index 7e18e6d5c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_120.png b/TMessagesProj/src/emojis/apple/emoji/7_120.png deleted file mode 100644 index fb035fab59..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_121.png b/TMessagesProj/src/emojis/apple/emoji/7_121.png deleted file mode 100644 index 465a96f892..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_122.png b/TMessagesProj/src/emojis/apple/emoji/7_122.png deleted file mode 100644 index ef76579a92..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_123.png b/TMessagesProj/src/emojis/apple/emoji/7_123.png deleted file mode 100644 index 4bef8e53c1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_124.png b/TMessagesProj/src/emojis/apple/emoji/7_124.png deleted file mode 100644 index fd0c5245bd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_125.png b/TMessagesProj/src/emojis/apple/emoji/7_125.png deleted file mode 100644 index a672967f07..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_126.png b/TMessagesProj/src/emojis/apple/emoji/7_126.png deleted file mode 100644 index 966a1ac106..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_127.png b/TMessagesProj/src/emojis/apple/emoji/7_127.png deleted file mode 100644 index e6ef14a00f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_128.png b/TMessagesProj/src/emojis/apple/emoji/7_128.png deleted file mode 100644 index bd50f0b079..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_129.png b/TMessagesProj/src/emojis/apple/emoji/7_129.png deleted file mode 100644 index 93457942ef..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_13.png b/TMessagesProj/src/emojis/apple/emoji/7_13.png deleted file mode 100644 index 392ebaa991..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_130.png b/TMessagesProj/src/emojis/apple/emoji/7_130.png deleted file mode 100644 index c9887c0e21..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_131.png b/TMessagesProj/src/emojis/apple/emoji/7_131.png deleted file mode 100644 index 8296d902b6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_132.png b/TMessagesProj/src/emojis/apple/emoji/7_132.png deleted file mode 100644 index 3b85c0a37d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_133.png b/TMessagesProj/src/emojis/apple/emoji/7_133.png deleted file mode 100644 index d84f49104e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_134.png b/TMessagesProj/src/emojis/apple/emoji/7_134.png deleted file mode 100644 index 46877d0ea3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_135.png b/TMessagesProj/src/emojis/apple/emoji/7_135.png deleted file mode 100644 index 55d7df1157..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_136.png b/TMessagesProj/src/emojis/apple/emoji/7_136.png deleted file mode 100644 index b6cbe88ed8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_137.png b/TMessagesProj/src/emojis/apple/emoji/7_137.png deleted file mode 100644 index d978085b2b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_138.png b/TMessagesProj/src/emojis/apple/emoji/7_138.png deleted file mode 100644 index d40b045766..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_139.png b/TMessagesProj/src/emojis/apple/emoji/7_139.png deleted file mode 100644 index 4835078b2c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_14.png b/TMessagesProj/src/emojis/apple/emoji/7_14.png deleted file mode 100644 index 2125603abb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_140.png b/TMessagesProj/src/emojis/apple/emoji/7_140.png deleted file mode 100644 index 79c48666e7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_141.png b/TMessagesProj/src/emojis/apple/emoji/7_141.png deleted file mode 100644 index 5bbd717744..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_142.png b/TMessagesProj/src/emojis/apple/emoji/7_142.png deleted file mode 100644 index 3267afb9e0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_143.png b/TMessagesProj/src/emojis/apple/emoji/7_143.png deleted file mode 100644 index 17d0c58d55..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_144.png b/TMessagesProj/src/emojis/apple/emoji/7_144.png deleted file mode 100644 index 9919357ebf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_145.png b/TMessagesProj/src/emojis/apple/emoji/7_145.png deleted file mode 100644 index af5b8bd848..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_146.png b/TMessagesProj/src/emojis/apple/emoji/7_146.png deleted file mode 100644 index 2444a431ac..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_147.png b/TMessagesProj/src/emojis/apple/emoji/7_147.png deleted file mode 100644 index 91d62d98eb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_148.png b/TMessagesProj/src/emojis/apple/emoji/7_148.png deleted file mode 100644 index 30c484908a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_149.png b/TMessagesProj/src/emojis/apple/emoji/7_149.png deleted file mode 100644 index 30b74067ca..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_15.png b/TMessagesProj/src/emojis/apple/emoji/7_15.png deleted file mode 100644 index 1cd0eabf0e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_150.png b/TMessagesProj/src/emojis/apple/emoji/7_150.png deleted file mode 100644 index 872c5d97cb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_151.png b/TMessagesProj/src/emojis/apple/emoji/7_151.png deleted file mode 100644 index 77708c2b96..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_152.png b/TMessagesProj/src/emojis/apple/emoji/7_152.png deleted file mode 100644 index c096ca3204..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_153.png b/TMessagesProj/src/emojis/apple/emoji/7_153.png deleted file mode 100644 index 049781a178..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_154.png b/TMessagesProj/src/emojis/apple/emoji/7_154.png deleted file mode 100644 index 161aa5bd75..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_155.png b/TMessagesProj/src/emojis/apple/emoji/7_155.png deleted file mode 100644 index d26db47bdd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_156.png b/TMessagesProj/src/emojis/apple/emoji/7_156.png deleted file mode 100644 index ec7f2dfb38..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_157.png b/TMessagesProj/src/emojis/apple/emoji/7_157.png deleted file mode 100644 index fec0fea2cf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_158.png b/TMessagesProj/src/emojis/apple/emoji/7_158.png deleted file mode 100644 index 2628e4d361..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_159.png b/TMessagesProj/src/emojis/apple/emoji/7_159.png deleted file mode 100644 index 7d9f32cef8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_16.png b/TMessagesProj/src/emojis/apple/emoji/7_16.png deleted file mode 100644 index 9b84a77975..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_160.png b/TMessagesProj/src/emojis/apple/emoji/7_160.png deleted file mode 100644 index d445d6c6c8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_161.png b/TMessagesProj/src/emojis/apple/emoji/7_161.png deleted file mode 100644 index cdc699d430..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_162.png b/TMessagesProj/src/emojis/apple/emoji/7_162.png deleted file mode 100644 index 4268fcc7dd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_163.png b/TMessagesProj/src/emojis/apple/emoji/7_163.png deleted file mode 100644 index 07fdb18336..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_164.png b/TMessagesProj/src/emojis/apple/emoji/7_164.png deleted file mode 100644 index 4983e4655d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_165.png b/TMessagesProj/src/emojis/apple/emoji/7_165.png deleted file mode 100644 index ed07beed59..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_166.png b/TMessagesProj/src/emojis/apple/emoji/7_166.png deleted file mode 100644 index a6cfedd3db..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_167.png b/TMessagesProj/src/emojis/apple/emoji/7_167.png deleted file mode 100644 index aaa7ffad01..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_168.png b/TMessagesProj/src/emojis/apple/emoji/7_168.png deleted file mode 100644 index 52776c2049..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_169.png b/TMessagesProj/src/emojis/apple/emoji/7_169.png deleted file mode 100644 index 4b2bb564f9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_17.png b/TMessagesProj/src/emojis/apple/emoji/7_17.png deleted file mode 100644 index de7826cc35..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_170.png b/TMessagesProj/src/emojis/apple/emoji/7_170.png deleted file mode 100644 index 66d2528390..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_171.png b/TMessagesProj/src/emojis/apple/emoji/7_171.png deleted file mode 100644 index e4ba306564..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_172.png b/TMessagesProj/src/emojis/apple/emoji/7_172.png deleted file mode 100644 index 3629642153..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_173.png b/TMessagesProj/src/emojis/apple/emoji/7_173.png deleted file mode 100644 index 0aa06180e7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_174.png b/TMessagesProj/src/emojis/apple/emoji/7_174.png deleted file mode 100644 index a08fd2d1c9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_175.png b/TMessagesProj/src/emojis/apple/emoji/7_175.png deleted file mode 100644 index 290cd60b9e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_176.png b/TMessagesProj/src/emojis/apple/emoji/7_176.png deleted file mode 100644 index 9126fe9242..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_177.png b/TMessagesProj/src/emojis/apple/emoji/7_177.png deleted file mode 100644 index 7546d58983..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_178.png b/TMessagesProj/src/emojis/apple/emoji/7_178.png deleted file mode 100644 index 8bffae27c0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_179.png b/TMessagesProj/src/emojis/apple/emoji/7_179.png deleted file mode 100644 index f1a26b44e2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_18.png b/TMessagesProj/src/emojis/apple/emoji/7_18.png deleted file mode 100644 index 2b2c0b0970..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_180.png b/TMessagesProj/src/emojis/apple/emoji/7_180.png deleted file mode 100644 index b37e6c0fae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_181.png b/TMessagesProj/src/emojis/apple/emoji/7_181.png deleted file mode 100644 index bec6f39ce0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_182.png b/TMessagesProj/src/emojis/apple/emoji/7_182.png deleted file mode 100644 index b1a537cb43..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_183.png b/TMessagesProj/src/emojis/apple/emoji/7_183.png deleted file mode 100644 index b71a7310a1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_184.png b/TMessagesProj/src/emojis/apple/emoji/7_184.png deleted file mode 100644 index d93771142e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_185.png b/TMessagesProj/src/emojis/apple/emoji/7_185.png deleted file mode 100644 index a4ce3d571d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_186.png b/TMessagesProj/src/emojis/apple/emoji/7_186.png deleted file mode 100644 index 7640d12e9d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_187.png b/TMessagesProj/src/emojis/apple/emoji/7_187.png deleted file mode 100644 index 16e67b2641..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_188.png b/TMessagesProj/src/emojis/apple/emoji/7_188.png deleted file mode 100644 index da72c877b2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_189.png b/TMessagesProj/src/emojis/apple/emoji/7_189.png deleted file mode 100644 index 0a236fb6d0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_19.png b/TMessagesProj/src/emojis/apple/emoji/7_19.png deleted file mode 100644 index 1898e45379..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_190.png b/TMessagesProj/src/emojis/apple/emoji/7_190.png deleted file mode 100644 index 14bd7518fc..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_191.png b/TMessagesProj/src/emojis/apple/emoji/7_191.png deleted file mode 100644 index 858884aafb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_192.png b/TMessagesProj/src/emojis/apple/emoji/7_192.png deleted file mode 100644 index 819b1b37b0..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_193.png b/TMessagesProj/src/emojis/apple/emoji/7_193.png deleted file mode 100644 index 306e8c3713..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_194.png b/TMessagesProj/src/emojis/apple/emoji/7_194.png deleted file mode 100644 index 7c3a56cc12..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_195.png b/TMessagesProj/src/emojis/apple/emoji/7_195.png deleted file mode 100644 index 0bcf3f0543..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_196.png b/TMessagesProj/src/emojis/apple/emoji/7_196.png deleted file mode 100644 index 9cbea67781..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_197.png b/TMessagesProj/src/emojis/apple/emoji/7_197.png deleted file mode 100644 index cc477362db..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_198.png b/TMessagesProj/src/emojis/apple/emoji/7_198.png deleted file mode 100644 index 33cbbf2056..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_199.png b/TMessagesProj/src/emojis/apple/emoji/7_199.png deleted file mode 100644 index 340a928558..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_2.png b/TMessagesProj/src/emojis/apple/emoji/7_2.png deleted file mode 100644 index 4295efaa69..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_20.png b/TMessagesProj/src/emojis/apple/emoji/7_20.png deleted file mode 100644 index 28f84f4de4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_200.png b/TMessagesProj/src/emojis/apple/emoji/7_200.png deleted file mode 100644 index 48cdf7ba6d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_201.png b/TMessagesProj/src/emojis/apple/emoji/7_201.png deleted file mode 100644 index 498414569d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_202.png b/TMessagesProj/src/emojis/apple/emoji/7_202.png deleted file mode 100644 index b5d7231a66..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_203.png b/TMessagesProj/src/emojis/apple/emoji/7_203.png deleted file mode 100644 index 51e738d00d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_204.png b/TMessagesProj/src/emojis/apple/emoji/7_204.png deleted file mode 100644 index 98a18903e4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_205.png b/TMessagesProj/src/emojis/apple/emoji/7_205.png deleted file mode 100644 index 072f69648b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_206.png b/TMessagesProj/src/emojis/apple/emoji/7_206.png deleted file mode 100644 index a751282620..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_207.png b/TMessagesProj/src/emojis/apple/emoji/7_207.png deleted file mode 100644 index f19d6c987e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_208.png b/TMessagesProj/src/emojis/apple/emoji/7_208.png deleted file mode 100644 index 92b9347ef1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_209.png b/TMessagesProj/src/emojis/apple/emoji/7_209.png deleted file mode 100644 index 79d949f2ae..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_21.png b/TMessagesProj/src/emojis/apple/emoji/7_21.png deleted file mode 100644 index 8067895c78..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_210.png b/TMessagesProj/src/emojis/apple/emoji/7_210.png deleted file mode 100644 index 6ef769c9ad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_211.png b/TMessagesProj/src/emojis/apple/emoji/7_211.png deleted file mode 100644 index 823d1b22f8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_212.png b/TMessagesProj/src/emojis/apple/emoji/7_212.png deleted file mode 100644 index 81b61b311b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_213.png b/TMessagesProj/src/emojis/apple/emoji/7_213.png deleted file mode 100644 index 0ad245076b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_214.png b/TMessagesProj/src/emojis/apple/emoji/7_214.png deleted file mode 100644 index 48e6c5edf8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_215.png b/TMessagesProj/src/emojis/apple/emoji/7_215.png deleted file mode 100644 index 3ced8b9d4c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_216.png b/TMessagesProj/src/emojis/apple/emoji/7_216.png deleted file mode 100644 index 5ad9cc2a90..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_217.png b/TMessagesProj/src/emojis/apple/emoji/7_217.png deleted file mode 100644 index f6c6526171..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_218.png b/TMessagesProj/src/emojis/apple/emoji/7_218.png deleted file mode 100644 index e11f309e61..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_219.png b/TMessagesProj/src/emojis/apple/emoji/7_219.png deleted file mode 100644 index 569030be0f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_22.png b/TMessagesProj/src/emojis/apple/emoji/7_22.png deleted file mode 100644 index f7bdb50101..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_220.png b/TMessagesProj/src/emojis/apple/emoji/7_220.png deleted file mode 100644 index eac75c1be8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_221.png b/TMessagesProj/src/emojis/apple/emoji/7_221.png deleted file mode 100644 index 17f1f94016..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_222.png b/TMessagesProj/src/emojis/apple/emoji/7_222.png deleted file mode 100644 index 8f8f6930d4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_223.png b/TMessagesProj/src/emojis/apple/emoji/7_223.png deleted file mode 100644 index 14f032299c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_224.png b/TMessagesProj/src/emojis/apple/emoji/7_224.png deleted file mode 100644 index 2e1ff69bc7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_225.png b/TMessagesProj/src/emojis/apple/emoji/7_225.png deleted file mode 100644 index f29b8f7e30..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_226.png b/TMessagesProj/src/emojis/apple/emoji/7_226.png deleted file mode 100644 index 6dcbd03c8e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_227.png b/TMessagesProj/src/emojis/apple/emoji/7_227.png deleted file mode 100644 index 26b6d9ae2f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_228.png b/TMessagesProj/src/emojis/apple/emoji/7_228.png deleted file mode 100644 index 22a2949065..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_229.png b/TMessagesProj/src/emojis/apple/emoji/7_229.png deleted file mode 100644 index ddb796107b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_229.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_23.png b/TMessagesProj/src/emojis/apple/emoji/7_23.png deleted file mode 100644 index 53cbbad973..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_230.png b/TMessagesProj/src/emojis/apple/emoji/7_230.png deleted file mode 100644 index 10c6e41684..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_230.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_231.png b/TMessagesProj/src/emojis/apple/emoji/7_231.png deleted file mode 100644 index 614b151e9c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_231.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_232.png b/TMessagesProj/src/emojis/apple/emoji/7_232.png deleted file mode 100644 index 1e279264a9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_232.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_233.png b/TMessagesProj/src/emojis/apple/emoji/7_233.png deleted file mode 100644 index 5945403da9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_233.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_234.png b/TMessagesProj/src/emojis/apple/emoji/7_234.png deleted file mode 100644 index 62f7c73582..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_234.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_235.png b/TMessagesProj/src/emojis/apple/emoji/7_235.png deleted file mode 100644 index 1866a8f74b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_235.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_236.png b/TMessagesProj/src/emojis/apple/emoji/7_236.png deleted file mode 100644 index 23466b4d49..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_236.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_237.png b/TMessagesProj/src/emojis/apple/emoji/7_237.png deleted file mode 100644 index 1485154e6b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_237.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_238.png b/TMessagesProj/src/emojis/apple/emoji/7_238.png deleted file mode 100644 index 1fceb12768..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_238.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_239.png b/TMessagesProj/src/emojis/apple/emoji/7_239.png deleted file mode 100644 index 156283fe0b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_239.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_24.png b/TMessagesProj/src/emojis/apple/emoji/7_24.png deleted file mode 100644 index 481468ec8b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_240.png b/TMessagesProj/src/emojis/apple/emoji/7_240.png deleted file mode 100644 index a58db21b2a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_240.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_241.png b/TMessagesProj/src/emojis/apple/emoji/7_241.png deleted file mode 100644 index c36111bdf9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_241.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_242.png b/TMessagesProj/src/emojis/apple/emoji/7_242.png deleted file mode 100644 index f178d8cfbe..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_242.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_243.png b/TMessagesProj/src/emojis/apple/emoji/7_243.png deleted file mode 100644 index 1b453f204e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_243.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_244.png b/TMessagesProj/src/emojis/apple/emoji/7_244.png deleted file mode 100644 index e4b172bccb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_244.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_245.png b/TMessagesProj/src/emojis/apple/emoji/7_245.png deleted file mode 100644 index 4b5ca52bd4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_245.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_246.png b/TMessagesProj/src/emojis/apple/emoji/7_246.png deleted file mode 100644 index ce44511d77..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_246.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_247.png b/TMessagesProj/src/emojis/apple/emoji/7_247.png deleted file mode 100644 index a5aa7f50e2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_247.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_248.png b/TMessagesProj/src/emojis/apple/emoji/7_248.png deleted file mode 100644 index 65e7ef59a8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_248.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_249.png b/TMessagesProj/src/emojis/apple/emoji/7_249.png deleted file mode 100644 index ce3b032f64..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_249.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_25.png b/TMessagesProj/src/emojis/apple/emoji/7_25.png deleted file mode 100644 index 4c9656bc3e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_250.png b/TMessagesProj/src/emojis/apple/emoji/7_250.png deleted file mode 100644 index 348c8ef5f3..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_250.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_251.png b/TMessagesProj/src/emojis/apple/emoji/7_251.png deleted file mode 100644 index d28aa8048e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_251.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_252.png b/TMessagesProj/src/emojis/apple/emoji/7_252.png deleted file mode 100644 index b2d8c5682e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_252.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_253.png b/TMessagesProj/src/emojis/apple/emoji/7_253.png deleted file mode 100644 index ae6aa06cd1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_253.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_254.png b/TMessagesProj/src/emojis/apple/emoji/7_254.png deleted file mode 100644 index f31fece7c1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_254.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_255.png b/TMessagesProj/src/emojis/apple/emoji/7_255.png deleted file mode 100644 index b7db906579..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_255.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_256.png b/TMessagesProj/src/emojis/apple/emoji/7_256.png deleted file mode 100644 index daf2d5221a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_256.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_257.png b/TMessagesProj/src/emojis/apple/emoji/7_257.png deleted file mode 100644 index 819b949bf7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_257.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_258.png b/TMessagesProj/src/emojis/apple/emoji/7_258.png deleted file mode 100644 index 91255a3d2b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_258.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_26.png b/TMessagesProj/src/emojis/apple/emoji/7_26.png deleted file mode 100644 index 3e507adf6f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_27.png b/TMessagesProj/src/emojis/apple/emoji/7_27.png deleted file mode 100644 index e6ee274d22..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_28.png b/TMessagesProj/src/emojis/apple/emoji/7_28.png deleted file mode 100644 index 502e0ace43..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_29.png b/TMessagesProj/src/emojis/apple/emoji/7_29.png deleted file mode 100644 index 88428eb03d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_3.png b/TMessagesProj/src/emojis/apple/emoji/7_3.png deleted file mode 100644 index 65e6f4634e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_30.png b/TMessagesProj/src/emojis/apple/emoji/7_30.png deleted file mode 100644 index 37ebfbb525..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_31.png b/TMessagesProj/src/emojis/apple/emoji/7_31.png deleted file mode 100644 index 02a9ba5122..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_32.png b/TMessagesProj/src/emojis/apple/emoji/7_32.png deleted file mode 100644 index 66ae3dae3f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_33.png b/TMessagesProj/src/emojis/apple/emoji/7_33.png deleted file mode 100644 index 55edf34135..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_34.png b/TMessagesProj/src/emojis/apple/emoji/7_34.png deleted file mode 100644 index 3844480c93..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_35.png b/TMessagesProj/src/emojis/apple/emoji/7_35.png deleted file mode 100644 index 1c7852afe5..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_36.png b/TMessagesProj/src/emojis/apple/emoji/7_36.png deleted file mode 100644 index daf93f8fad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_37.png b/TMessagesProj/src/emojis/apple/emoji/7_37.png deleted file mode 100644 index 2488703a83..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_38.png b/TMessagesProj/src/emojis/apple/emoji/7_38.png deleted file mode 100644 index 06c7e6c190..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_39.png b/TMessagesProj/src/emojis/apple/emoji/7_39.png deleted file mode 100644 index cff01d961c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_4.png b/TMessagesProj/src/emojis/apple/emoji/7_4.png deleted file mode 100644 index 9803c910fb..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_40.png b/TMessagesProj/src/emojis/apple/emoji/7_40.png deleted file mode 100644 index 8d6bdb6779..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_41.png b/TMessagesProj/src/emojis/apple/emoji/7_41.png deleted file mode 100644 index 2fb92b565e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_42.png b/TMessagesProj/src/emojis/apple/emoji/7_42.png deleted file mode 100644 index 90bf21b5e8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_43.png b/TMessagesProj/src/emojis/apple/emoji/7_43.png deleted file mode 100644 index 21ff41484a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_44.png b/TMessagesProj/src/emojis/apple/emoji/7_44.png deleted file mode 100644 index a7dc3027a7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_45.png b/TMessagesProj/src/emojis/apple/emoji/7_45.png deleted file mode 100644 index 46f9afc75c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_46.png b/TMessagesProj/src/emojis/apple/emoji/7_46.png deleted file mode 100644 index 2452abee57..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_47.png b/TMessagesProj/src/emojis/apple/emoji/7_47.png deleted file mode 100644 index 1b9245dacf..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_48.png b/TMessagesProj/src/emojis/apple/emoji/7_48.png deleted file mode 100644 index 13fcbf6062..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_49.png b/TMessagesProj/src/emojis/apple/emoji/7_49.png deleted file mode 100644 index ee9000eb7c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_5.png b/TMessagesProj/src/emojis/apple/emoji/7_5.png deleted file mode 100644 index 223533b941..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_50.png b/TMessagesProj/src/emojis/apple/emoji/7_50.png deleted file mode 100644 index 5d9820a00a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_51.png b/TMessagesProj/src/emojis/apple/emoji/7_51.png deleted file mode 100644 index 334424a0f7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_52.png b/TMessagesProj/src/emojis/apple/emoji/7_52.png deleted file mode 100644 index 96e7530713..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_53.png b/TMessagesProj/src/emojis/apple/emoji/7_53.png deleted file mode 100644 index 56ab1ecfb7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_54.png b/TMessagesProj/src/emojis/apple/emoji/7_54.png deleted file mode 100644 index 092ac5db43..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_55.png b/TMessagesProj/src/emojis/apple/emoji/7_55.png deleted file mode 100644 index a0de6ebda6..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_56.png b/TMessagesProj/src/emojis/apple/emoji/7_56.png deleted file mode 100644 index 056a19222c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_57.png b/TMessagesProj/src/emojis/apple/emoji/7_57.png deleted file mode 100644 index 75a9255ce2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_58.png b/TMessagesProj/src/emojis/apple/emoji/7_58.png deleted file mode 100644 index f33cd77f4c..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_59.png b/TMessagesProj/src/emojis/apple/emoji/7_59.png deleted file mode 100644 index 2ddb773787..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_6.png b/TMessagesProj/src/emojis/apple/emoji/7_6.png deleted file mode 100644 index c96bdb3986..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_60.png b/TMessagesProj/src/emojis/apple/emoji/7_60.png deleted file mode 100644 index 50351b6400..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_61.png b/TMessagesProj/src/emojis/apple/emoji/7_61.png deleted file mode 100644 index 610faf5411..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_62.png b/TMessagesProj/src/emojis/apple/emoji/7_62.png deleted file mode 100644 index eb6a407a16..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_63.png b/TMessagesProj/src/emojis/apple/emoji/7_63.png deleted file mode 100644 index 28b4d21543..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_64.png b/TMessagesProj/src/emojis/apple/emoji/7_64.png deleted file mode 100644 index de9c04a623..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_65.png b/TMessagesProj/src/emojis/apple/emoji/7_65.png deleted file mode 100644 index e196e73840..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_66.png b/TMessagesProj/src/emojis/apple/emoji/7_66.png deleted file mode 100644 index c204483446..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_67.png b/TMessagesProj/src/emojis/apple/emoji/7_67.png deleted file mode 100644 index cd681478e8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_68.png b/TMessagesProj/src/emojis/apple/emoji/7_68.png deleted file mode 100644 index 623d196920..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_69.png b/TMessagesProj/src/emojis/apple/emoji/7_69.png deleted file mode 100644 index 97ba2c087e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_7.png b/TMessagesProj/src/emojis/apple/emoji/7_7.png deleted file mode 100644 index a2f7e5e1ab..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_70.png b/TMessagesProj/src/emojis/apple/emoji/7_70.png deleted file mode 100644 index d8a2978622..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_71.png b/TMessagesProj/src/emojis/apple/emoji/7_71.png deleted file mode 100644 index 3709e83a50..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_72.png b/TMessagesProj/src/emojis/apple/emoji/7_72.png deleted file mode 100644 index 93ec29501e..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_73.png b/TMessagesProj/src/emojis/apple/emoji/7_73.png deleted file mode 100644 index 3ca170d763..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_74.png b/TMessagesProj/src/emojis/apple/emoji/7_74.png deleted file mode 100644 index 7a681f2a24..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_75.png b/TMessagesProj/src/emojis/apple/emoji/7_75.png deleted file mode 100644 index feec8f7458..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_76.png b/TMessagesProj/src/emojis/apple/emoji/7_76.png deleted file mode 100644 index 8605c631d8..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_77.png b/TMessagesProj/src/emojis/apple/emoji/7_77.png deleted file mode 100644 index 16555baf5b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_78.png b/TMessagesProj/src/emojis/apple/emoji/7_78.png deleted file mode 100644 index 40bd16d832..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_79.png b/TMessagesProj/src/emojis/apple/emoji/7_79.png deleted file mode 100644 index f23666131d..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_8.png b/TMessagesProj/src/emojis/apple/emoji/7_8.png deleted file mode 100644 index 34682fb0f2..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_80.png b/TMessagesProj/src/emojis/apple/emoji/7_80.png deleted file mode 100644 index c8feed7b9b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_81.png b/TMessagesProj/src/emojis/apple/emoji/7_81.png deleted file mode 100644 index ccf51c21bd..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_82.png b/TMessagesProj/src/emojis/apple/emoji/7_82.png deleted file mode 100644 index e4551f8497..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_83.png b/TMessagesProj/src/emojis/apple/emoji/7_83.png deleted file mode 100644 index 907e8953f9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_84.png b/TMessagesProj/src/emojis/apple/emoji/7_84.png deleted file mode 100644 index 6c02844c9b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_85.png b/TMessagesProj/src/emojis/apple/emoji/7_85.png deleted file mode 100644 index a1da7d795f..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_86.png b/TMessagesProj/src/emojis/apple/emoji/7_86.png deleted file mode 100644 index 36fd781b54..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_87.png b/TMessagesProj/src/emojis/apple/emoji/7_87.png deleted file mode 100644 index 1826cdec1b..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_88.png b/TMessagesProj/src/emojis/apple/emoji/7_88.png deleted file mode 100644 index b436088ca4..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_89.png b/TMessagesProj/src/emojis/apple/emoji/7_89.png deleted file mode 100644 index c51aad2a3a..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_9.png b/TMessagesProj/src/emojis/apple/emoji/7_9.png deleted file mode 100644 index 760ad712d1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_90.png b/TMessagesProj/src/emojis/apple/emoji/7_90.png deleted file mode 100644 index 7abd004d21..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_91.png b/TMessagesProj/src/emojis/apple/emoji/7_91.png deleted file mode 100644 index ac6720b303..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_92.png b/TMessagesProj/src/emojis/apple/emoji/7_92.png deleted file mode 100644 index 2d0a148950..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_93.png b/TMessagesProj/src/emojis/apple/emoji/7_93.png deleted file mode 100644 index 68b1d8a061..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_94.png b/TMessagesProj/src/emojis/apple/emoji/7_94.png deleted file mode 100644 index c871f8efad..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_95.png b/TMessagesProj/src/emojis/apple/emoji/7_95.png deleted file mode 100644 index 5a81db0514..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_96.png b/TMessagesProj/src/emojis/apple/emoji/7_96.png deleted file mode 100644 index 766373b8d1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_97.png b/TMessagesProj/src/emojis/apple/emoji/7_97.png deleted file mode 100644 index 199842b0f1..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_98.png b/TMessagesProj/src/emojis/apple/emoji/7_98.png deleted file mode 100644 index ce4bbc85b9..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/apple/emoji/7_99.png b/TMessagesProj/src/emojis/apple/emoji/7_99.png deleted file mode 100644 index a8f0ff8cd7..0000000000 Binary files a/TMessagesProj/src/emojis/apple/emoji/7_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_0.png b/TMessagesProj/src/emojis/twitter/emoji/0_0.png deleted file mode 100644 index cbbb154463..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1.png b/TMessagesProj/src/emojis/twitter/emoji/0_1.png deleted file mode 100644 index bab1558ab1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_10.png b/TMessagesProj/src/emojis/twitter/emoji/0_10.png deleted file mode 100644 index 7a32d98a28..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_100.png b/TMessagesProj/src/emojis/twitter/emoji/0_100.png deleted file mode 100644 index 3b0a8dcc55..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1000.png b/TMessagesProj/src/emojis/twitter/emoji/0_1000.png deleted file mode 100644 index 0b9fcb552a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1000.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1001.png b/TMessagesProj/src/emojis/twitter/emoji/0_1001.png deleted file mode 100644 index 2768a04a81..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1001.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1002.png b/TMessagesProj/src/emojis/twitter/emoji/0_1002.png deleted file mode 100644 index 3fc94f249f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1002.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1003.png b/TMessagesProj/src/emojis/twitter/emoji/0_1003.png deleted file mode 100644 index f48f75f590..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1003.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1004.png b/TMessagesProj/src/emojis/twitter/emoji/0_1004.png deleted file mode 100644 index 8fd384afb3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1004.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1005.png b/TMessagesProj/src/emojis/twitter/emoji/0_1005.png deleted file mode 100644 index f8788bbeaf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1005.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1006.png b/TMessagesProj/src/emojis/twitter/emoji/0_1006.png deleted file mode 100644 index 224f15e5a3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1006.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1007.png b/TMessagesProj/src/emojis/twitter/emoji/0_1007.png deleted file mode 100644 index e1e94f3894..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1007.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1008.png b/TMessagesProj/src/emojis/twitter/emoji/0_1008.png deleted file mode 100644 index f99758018b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1008.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1009.png b/TMessagesProj/src/emojis/twitter/emoji/0_1009.png deleted file mode 100644 index e3b1994d8b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1009.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_101.png b/TMessagesProj/src/emojis/twitter/emoji/0_101.png deleted file mode 100644 index c78d936d45..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1010.png b/TMessagesProj/src/emojis/twitter/emoji/0_1010.png deleted file mode 100644 index 3dc0501943..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1010.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1011.png b/TMessagesProj/src/emojis/twitter/emoji/0_1011.png deleted file mode 100644 index b32fb203f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1011.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1012.png b/TMessagesProj/src/emojis/twitter/emoji/0_1012.png deleted file mode 100644 index 7ef10a83f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1012.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1013.png b/TMessagesProj/src/emojis/twitter/emoji/0_1013.png deleted file mode 100644 index 0c6da9b0eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1013.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1014.png b/TMessagesProj/src/emojis/twitter/emoji/0_1014.png deleted file mode 100644 index f8c8de51d6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1014.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1015.png b/TMessagesProj/src/emojis/twitter/emoji/0_1015.png deleted file mode 100644 index 7df45ab458..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1015.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1016.png b/TMessagesProj/src/emojis/twitter/emoji/0_1016.png deleted file mode 100644 index 476dd7dd05..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1016.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1017.png b/TMessagesProj/src/emojis/twitter/emoji/0_1017.png deleted file mode 100644 index d30dc7b6e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1017.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1018.png b/TMessagesProj/src/emojis/twitter/emoji/0_1018.png deleted file mode 100644 index f0fbab7a52..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1018.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1019.png b/TMessagesProj/src/emojis/twitter/emoji/0_1019.png deleted file mode 100644 index 17bb084703..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1019.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_102.png b/TMessagesProj/src/emojis/twitter/emoji/0_102.png deleted file mode 100644 index 20b65070e5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1020.png b/TMessagesProj/src/emojis/twitter/emoji/0_1020.png deleted file mode 100644 index 6fe955c166..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1020.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1021.png b/TMessagesProj/src/emojis/twitter/emoji/0_1021.png deleted file mode 100644 index 8df3011a99..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1021.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1022.png b/TMessagesProj/src/emojis/twitter/emoji/0_1022.png deleted file mode 100644 index e0d11d4014..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1022.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1023.png b/TMessagesProj/src/emojis/twitter/emoji/0_1023.png deleted file mode 100644 index e27a9e61aa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1023.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1024.png b/TMessagesProj/src/emojis/twitter/emoji/0_1024.png deleted file mode 100644 index 2ae2552fed..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1024.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1025.png b/TMessagesProj/src/emojis/twitter/emoji/0_1025.png deleted file mode 100644 index beab115a83..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1025.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1026.png b/TMessagesProj/src/emojis/twitter/emoji/0_1026.png deleted file mode 100644 index 2895d0bb8c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1026.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1027.png b/TMessagesProj/src/emojis/twitter/emoji/0_1027.png deleted file mode 100644 index d46e17d710..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1027.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1028.png b/TMessagesProj/src/emojis/twitter/emoji/0_1028.png deleted file mode 100644 index cdae297c6e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1028.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1029.png b/TMessagesProj/src/emojis/twitter/emoji/0_1029.png deleted file mode 100644 index 04e504203c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1029.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_103.png b/TMessagesProj/src/emojis/twitter/emoji/0_103.png deleted file mode 100644 index 0b0fc66c95..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1030.png b/TMessagesProj/src/emojis/twitter/emoji/0_1030.png deleted file mode 100644 index 19ce880871..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1030.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1031.png b/TMessagesProj/src/emojis/twitter/emoji/0_1031.png deleted file mode 100644 index 29d4f4e8d4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1031.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1032.png b/TMessagesProj/src/emojis/twitter/emoji/0_1032.png deleted file mode 100644 index 7da6ba8fc4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1032.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1033.png b/TMessagesProj/src/emojis/twitter/emoji/0_1033.png deleted file mode 100644 index b2dec14b81..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1033.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1034.png b/TMessagesProj/src/emojis/twitter/emoji/0_1034.png deleted file mode 100644 index c37d3a6f87..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1034.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1035.png b/TMessagesProj/src/emojis/twitter/emoji/0_1035.png deleted file mode 100644 index cf2eb882e0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1035.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1036.png b/TMessagesProj/src/emojis/twitter/emoji/0_1036.png deleted file mode 100644 index 4162a78c13..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1036.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1037.png b/TMessagesProj/src/emojis/twitter/emoji/0_1037.png deleted file mode 100644 index 347af7df9c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1037.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1038.png b/TMessagesProj/src/emojis/twitter/emoji/0_1038.png deleted file mode 100644 index e4c16a93eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1038.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1039.png b/TMessagesProj/src/emojis/twitter/emoji/0_1039.png deleted file mode 100644 index f84bd99b2a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1039.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_104.png b/TMessagesProj/src/emojis/twitter/emoji/0_104.png deleted file mode 100644 index e8c17a26fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1040.png b/TMessagesProj/src/emojis/twitter/emoji/0_1040.png deleted file mode 100644 index 4308c5fef8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1040.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1041.png b/TMessagesProj/src/emojis/twitter/emoji/0_1041.png deleted file mode 100644 index e4d708611a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1041.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1042.png b/TMessagesProj/src/emojis/twitter/emoji/0_1042.png deleted file mode 100644 index 7a05da1ce9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1042.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1043.png b/TMessagesProj/src/emojis/twitter/emoji/0_1043.png deleted file mode 100644 index f244cd0fbc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1043.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1044.png b/TMessagesProj/src/emojis/twitter/emoji/0_1044.png deleted file mode 100644 index 25e50ffc09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1044.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1045.png b/TMessagesProj/src/emojis/twitter/emoji/0_1045.png deleted file mode 100644 index f3898d3c12..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1045.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1046.png b/TMessagesProj/src/emojis/twitter/emoji/0_1046.png deleted file mode 100644 index c6ba8e48ac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1046.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1047.png b/TMessagesProj/src/emojis/twitter/emoji/0_1047.png deleted file mode 100644 index 88054d2a3d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1047.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1048.png b/TMessagesProj/src/emojis/twitter/emoji/0_1048.png deleted file mode 100644 index 46ffa3bb0d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1048.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1049.png b/TMessagesProj/src/emojis/twitter/emoji/0_1049.png deleted file mode 100644 index 50aa73d88a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1049.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_105.png b/TMessagesProj/src/emojis/twitter/emoji/0_105.png deleted file mode 100644 index c5043a3f76..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1050.png b/TMessagesProj/src/emojis/twitter/emoji/0_1050.png deleted file mode 100644 index a263ee397f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1050.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1051.png b/TMessagesProj/src/emojis/twitter/emoji/0_1051.png deleted file mode 100644 index 8769ed08a6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1051.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1052.png b/TMessagesProj/src/emojis/twitter/emoji/0_1052.png deleted file mode 100644 index 72456d304c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1052.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1053.png b/TMessagesProj/src/emojis/twitter/emoji/0_1053.png deleted file mode 100644 index 6740c71e75..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1053.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1054.png b/TMessagesProj/src/emojis/twitter/emoji/0_1054.png deleted file mode 100644 index 8e009a18f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1054.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1055.png b/TMessagesProj/src/emojis/twitter/emoji/0_1055.png deleted file mode 100644 index 64c5336afd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1055.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1056.png b/TMessagesProj/src/emojis/twitter/emoji/0_1056.png deleted file mode 100644 index 8101cc3f23..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1056.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1057.png b/TMessagesProj/src/emojis/twitter/emoji/0_1057.png deleted file mode 100644 index 458b97c136..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1057.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1058.png b/TMessagesProj/src/emojis/twitter/emoji/0_1058.png deleted file mode 100644 index 726ef3f3cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1058.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1059.png b/TMessagesProj/src/emojis/twitter/emoji/0_1059.png deleted file mode 100644 index bfb02d9baa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1059.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_106.png b/TMessagesProj/src/emojis/twitter/emoji/0_106.png deleted file mode 100644 index 69c2889be4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1060.png b/TMessagesProj/src/emojis/twitter/emoji/0_1060.png deleted file mode 100644 index 7f75a652a4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1060.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1061.png b/TMessagesProj/src/emojis/twitter/emoji/0_1061.png deleted file mode 100644 index 70f0fb9a4d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1061.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1062.png b/TMessagesProj/src/emojis/twitter/emoji/0_1062.png deleted file mode 100644 index 7574325ee0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1062.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1063.png b/TMessagesProj/src/emojis/twitter/emoji/0_1063.png deleted file mode 100644 index 3ca9f92658..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1063.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1064.png b/TMessagesProj/src/emojis/twitter/emoji/0_1064.png deleted file mode 100644 index 097d6bb1eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1064.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1065.png b/TMessagesProj/src/emojis/twitter/emoji/0_1065.png deleted file mode 100644 index 73d01cbd5c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1065.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1066.png b/TMessagesProj/src/emojis/twitter/emoji/0_1066.png deleted file mode 100644 index 9e0902f451..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1066.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1067.png b/TMessagesProj/src/emojis/twitter/emoji/0_1067.png deleted file mode 100644 index aea068647d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1067.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1068.png b/TMessagesProj/src/emojis/twitter/emoji/0_1068.png deleted file mode 100644 index e6b43d15da..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1068.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1069.png b/TMessagesProj/src/emojis/twitter/emoji/0_1069.png deleted file mode 100644 index f8d0efdb55..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1069.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_107.png b/TMessagesProj/src/emojis/twitter/emoji/0_107.png deleted file mode 100644 index c2dcc1a366..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1070.png b/TMessagesProj/src/emojis/twitter/emoji/0_1070.png deleted file mode 100644 index 0aa733da7d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1070.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1071.png b/TMessagesProj/src/emojis/twitter/emoji/0_1071.png deleted file mode 100644 index cb231af327..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1071.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1072.png b/TMessagesProj/src/emojis/twitter/emoji/0_1072.png deleted file mode 100644 index 7369c5cfe6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1072.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1073.png b/TMessagesProj/src/emojis/twitter/emoji/0_1073.png deleted file mode 100644 index 72ee0d5192..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1073.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1074.png b/TMessagesProj/src/emojis/twitter/emoji/0_1074.png deleted file mode 100644 index 9fcd317ba2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1074.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1075.png b/TMessagesProj/src/emojis/twitter/emoji/0_1075.png deleted file mode 100644 index ff839c3c09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1075.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1076.png b/TMessagesProj/src/emojis/twitter/emoji/0_1076.png deleted file mode 100644 index 7c886d956b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1076.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1077.png b/TMessagesProj/src/emojis/twitter/emoji/0_1077.png deleted file mode 100644 index 426612628b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1077.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1078.png b/TMessagesProj/src/emojis/twitter/emoji/0_1078.png deleted file mode 100644 index 8be29233dc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1078.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1079.png b/TMessagesProj/src/emojis/twitter/emoji/0_1079.png deleted file mode 100644 index 2b4d2e86cc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1079.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_108.png b/TMessagesProj/src/emojis/twitter/emoji/0_108.png deleted file mode 100644 index 9b4c56552f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1080.png b/TMessagesProj/src/emojis/twitter/emoji/0_1080.png deleted file mode 100644 index a8ae844e22..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1080.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1081.png b/TMessagesProj/src/emojis/twitter/emoji/0_1081.png deleted file mode 100644 index a9fb023d79..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1081.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1082.png b/TMessagesProj/src/emojis/twitter/emoji/0_1082.png deleted file mode 100644 index 963badd183..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1082.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1083.png b/TMessagesProj/src/emojis/twitter/emoji/0_1083.png deleted file mode 100644 index 15fba972ce..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1083.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1084.png b/TMessagesProj/src/emojis/twitter/emoji/0_1084.png deleted file mode 100644 index 3dace477e9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1084.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1085.png b/TMessagesProj/src/emojis/twitter/emoji/0_1085.png deleted file mode 100644 index f550eed34d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1085.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1086.png b/TMessagesProj/src/emojis/twitter/emoji/0_1086.png deleted file mode 100644 index 60228b5e86..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1086.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1087.png b/TMessagesProj/src/emojis/twitter/emoji/0_1087.png deleted file mode 100644 index 737bac4685..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1087.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1088.png b/TMessagesProj/src/emojis/twitter/emoji/0_1088.png deleted file mode 100644 index 88959d061d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1088.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1089.png b/TMessagesProj/src/emojis/twitter/emoji/0_1089.png deleted file mode 100644 index 01ffdf1956..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1089.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_109.png b/TMessagesProj/src/emojis/twitter/emoji/0_109.png deleted file mode 100644 index 2af39eb33c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1090.png b/TMessagesProj/src/emojis/twitter/emoji/0_1090.png deleted file mode 100644 index 0c5de29453..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1090.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1091.png b/TMessagesProj/src/emojis/twitter/emoji/0_1091.png deleted file mode 100644 index a8d8dc3a00..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1091.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1092.png b/TMessagesProj/src/emojis/twitter/emoji/0_1092.png deleted file mode 100644 index b1f67b2802..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1092.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1093.png b/TMessagesProj/src/emojis/twitter/emoji/0_1093.png deleted file mode 100644 index 31ca351fd5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1093.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1094.png b/TMessagesProj/src/emojis/twitter/emoji/0_1094.png deleted file mode 100644 index af1ebcbd68..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1094.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1095.png b/TMessagesProj/src/emojis/twitter/emoji/0_1095.png deleted file mode 100644 index 3fb05fb4f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1095.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1096.png b/TMessagesProj/src/emojis/twitter/emoji/0_1096.png deleted file mode 100644 index 3b0e25afbc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1096.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1097.png b/TMessagesProj/src/emojis/twitter/emoji/0_1097.png deleted file mode 100644 index 5fafc845f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1097.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1098.png b/TMessagesProj/src/emojis/twitter/emoji/0_1098.png deleted file mode 100644 index 98c5d5aa1b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1098.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1099.png b/TMessagesProj/src/emojis/twitter/emoji/0_1099.png deleted file mode 100644 index 7e92c36984..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1099.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_11.png b/TMessagesProj/src/emojis/twitter/emoji/0_11.png deleted file mode 100644 index dee6168d41..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_110.png b/TMessagesProj/src/emojis/twitter/emoji/0_110.png deleted file mode 100644 index 465f4e0b79..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1100.png b/TMessagesProj/src/emojis/twitter/emoji/0_1100.png deleted file mode 100644 index d5858952ac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1101.png b/TMessagesProj/src/emojis/twitter/emoji/0_1101.png deleted file mode 100644 index 762fecded3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1102.png b/TMessagesProj/src/emojis/twitter/emoji/0_1102.png deleted file mode 100644 index 79c02b167e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1103.png b/TMessagesProj/src/emojis/twitter/emoji/0_1103.png deleted file mode 100644 index 568b19b735..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1104.png b/TMessagesProj/src/emojis/twitter/emoji/0_1104.png deleted file mode 100644 index 1a5275a76f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1105.png b/TMessagesProj/src/emojis/twitter/emoji/0_1105.png deleted file mode 100644 index 8c71f329fc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1106.png b/TMessagesProj/src/emojis/twitter/emoji/0_1106.png deleted file mode 100644 index 1c0d35bc68..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1107.png b/TMessagesProj/src/emojis/twitter/emoji/0_1107.png deleted file mode 100644 index 950719e743..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1108.png b/TMessagesProj/src/emojis/twitter/emoji/0_1108.png deleted file mode 100644 index 33b7094608..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1109.png b/TMessagesProj/src/emojis/twitter/emoji/0_1109.png deleted file mode 100644 index 40c9d8239d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_111.png b/TMessagesProj/src/emojis/twitter/emoji/0_111.png deleted file mode 100644 index 1979583f30..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1110.png b/TMessagesProj/src/emojis/twitter/emoji/0_1110.png deleted file mode 100644 index 8cc8e0ef2b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1111.png b/TMessagesProj/src/emojis/twitter/emoji/0_1111.png deleted file mode 100644 index 9e606528e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1112.png b/TMessagesProj/src/emojis/twitter/emoji/0_1112.png deleted file mode 100644 index eac697e5bb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1113.png b/TMessagesProj/src/emojis/twitter/emoji/0_1113.png deleted file mode 100644 index 5fc26f7cbe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1114.png b/TMessagesProj/src/emojis/twitter/emoji/0_1114.png deleted file mode 100644 index 0b606bac03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1115.png b/TMessagesProj/src/emojis/twitter/emoji/0_1115.png deleted file mode 100644 index 87aa087d0a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1116.png b/TMessagesProj/src/emojis/twitter/emoji/0_1116.png deleted file mode 100644 index 11d80b5904..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1117.png b/TMessagesProj/src/emojis/twitter/emoji/0_1117.png deleted file mode 100644 index 7ba96d15b9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1118.png b/TMessagesProj/src/emojis/twitter/emoji/0_1118.png deleted file mode 100644 index 4a2196a558..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1119.png b/TMessagesProj/src/emojis/twitter/emoji/0_1119.png deleted file mode 100644 index 3f5383b618..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_112.png b/TMessagesProj/src/emojis/twitter/emoji/0_112.png deleted file mode 100644 index ebb31228f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1120.png b/TMessagesProj/src/emojis/twitter/emoji/0_1120.png deleted file mode 100644 index 9ddaf2431c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1121.png b/TMessagesProj/src/emojis/twitter/emoji/0_1121.png deleted file mode 100644 index 1e2efe7459..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1122.png b/TMessagesProj/src/emojis/twitter/emoji/0_1122.png deleted file mode 100644 index e8ba442a4d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1123.png b/TMessagesProj/src/emojis/twitter/emoji/0_1123.png deleted file mode 100644 index c2c1a8a937..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1124.png b/TMessagesProj/src/emojis/twitter/emoji/0_1124.png deleted file mode 100644 index 1faa4bed06..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1125.png b/TMessagesProj/src/emojis/twitter/emoji/0_1125.png deleted file mode 100644 index f5b2c24db4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1126.png b/TMessagesProj/src/emojis/twitter/emoji/0_1126.png deleted file mode 100644 index 4525eb8770..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1127.png b/TMessagesProj/src/emojis/twitter/emoji/0_1127.png deleted file mode 100644 index 1a22757f47..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1128.png b/TMessagesProj/src/emojis/twitter/emoji/0_1128.png deleted file mode 100644 index f1ab97f9f2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1129.png b/TMessagesProj/src/emojis/twitter/emoji/0_1129.png deleted file mode 100644 index 3624490c98..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_113.png b/TMessagesProj/src/emojis/twitter/emoji/0_113.png deleted file mode 100644 index a6985a7e50..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1130.png b/TMessagesProj/src/emojis/twitter/emoji/0_1130.png deleted file mode 100644 index c12ec16752..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1131.png b/TMessagesProj/src/emojis/twitter/emoji/0_1131.png deleted file mode 100644 index fbf35107f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1132.png b/TMessagesProj/src/emojis/twitter/emoji/0_1132.png deleted file mode 100644 index e677247a6e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1133.png b/TMessagesProj/src/emojis/twitter/emoji/0_1133.png deleted file mode 100644 index b3006a52d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1134.png b/TMessagesProj/src/emojis/twitter/emoji/0_1134.png deleted file mode 100644 index 082b217aaf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1135.png b/TMessagesProj/src/emojis/twitter/emoji/0_1135.png deleted file mode 100644 index 51d2b33e0a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1136.png b/TMessagesProj/src/emojis/twitter/emoji/0_1136.png deleted file mode 100644 index 53110ba15e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1137.png b/TMessagesProj/src/emojis/twitter/emoji/0_1137.png deleted file mode 100644 index 93c3529dba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1138.png b/TMessagesProj/src/emojis/twitter/emoji/0_1138.png deleted file mode 100644 index b9c743103a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1139.png b/TMessagesProj/src/emojis/twitter/emoji/0_1139.png deleted file mode 100644 index 6f2b6ce2e4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_114.png b/TMessagesProj/src/emojis/twitter/emoji/0_114.png deleted file mode 100644 index 194bfca30d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1140.png b/TMessagesProj/src/emojis/twitter/emoji/0_1140.png deleted file mode 100644 index 90aa51c9e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1141.png b/TMessagesProj/src/emojis/twitter/emoji/0_1141.png deleted file mode 100644 index 2a012f3c98..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1142.png b/TMessagesProj/src/emojis/twitter/emoji/0_1142.png deleted file mode 100644 index c97450d0e4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1143.png b/TMessagesProj/src/emojis/twitter/emoji/0_1143.png deleted file mode 100644 index 8361ebf563..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1144.png b/TMessagesProj/src/emojis/twitter/emoji/0_1144.png deleted file mode 100644 index eb238d6354..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1145.png b/TMessagesProj/src/emojis/twitter/emoji/0_1145.png deleted file mode 100644 index 7f6d309265..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1146.png b/TMessagesProj/src/emojis/twitter/emoji/0_1146.png deleted file mode 100644 index 0c53343e9f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1147.png b/TMessagesProj/src/emojis/twitter/emoji/0_1147.png deleted file mode 100644 index 41527f475b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1148.png b/TMessagesProj/src/emojis/twitter/emoji/0_1148.png deleted file mode 100644 index ce7a09a1e6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1149.png b/TMessagesProj/src/emojis/twitter/emoji/0_1149.png deleted file mode 100644 index fc6b36e031..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_115.png b/TMessagesProj/src/emojis/twitter/emoji/0_115.png deleted file mode 100644 index 2bae114e2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1150.png b/TMessagesProj/src/emojis/twitter/emoji/0_1150.png deleted file mode 100644 index 041baaf76f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1151.png b/TMessagesProj/src/emojis/twitter/emoji/0_1151.png deleted file mode 100644 index e0b0677b94..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1152.png b/TMessagesProj/src/emojis/twitter/emoji/0_1152.png deleted file mode 100644 index e4bb61ed2d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1153.png b/TMessagesProj/src/emojis/twitter/emoji/0_1153.png deleted file mode 100644 index 7ab65ab9e4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1154.png b/TMessagesProj/src/emojis/twitter/emoji/0_1154.png deleted file mode 100644 index c50bf4c968..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1155.png b/TMessagesProj/src/emojis/twitter/emoji/0_1155.png deleted file mode 100644 index 764a623871..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1156.png b/TMessagesProj/src/emojis/twitter/emoji/0_1156.png deleted file mode 100644 index 14c7f4da01..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1157.png b/TMessagesProj/src/emojis/twitter/emoji/0_1157.png deleted file mode 100644 index 9cec3eb41f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1158.png b/TMessagesProj/src/emojis/twitter/emoji/0_1158.png deleted file mode 100644 index 1dbe08926a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1159.png b/TMessagesProj/src/emojis/twitter/emoji/0_1159.png deleted file mode 100644 index a63f2b21bc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_116.png b/TMessagesProj/src/emojis/twitter/emoji/0_116.png deleted file mode 100644 index 57d8f6f698..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1160.png b/TMessagesProj/src/emojis/twitter/emoji/0_1160.png deleted file mode 100644 index 3dd323b61d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1161.png b/TMessagesProj/src/emojis/twitter/emoji/0_1161.png deleted file mode 100644 index 6ee6d8e957..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1162.png b/TMessagesProj/src/emojis/twitter/emoji/0_1162.png deleted file mode 100644 index d222d4093e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1163.png b/TMessagesProj/src/emojis/twitter/emoji/0_1163.png deleted file mode 100644 index 93998b240c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1164.png b/TMessagesProj/src/emojis/twitter/emoji/0_1164.png deleted file mode 100644 index ac5f5c8c22..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1165.png b/TMessagesProj/src/emojis/twitter/emoji/0_1165.png deleted file mode 100644 index cb07f64723..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1166.png b/TMessagesProj/src/emojis/twitter/emoji/0_1166.png deleted file mode 100644 index 4c8cc404e5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1167.png b/TMessagesProj/src/emojis/twitter/emoji/0_1167.png deleted file mode 100644 index b7ee76e131..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1168.png b/TMessagesProj/src/emojis/twitter/emoji/0_1168.png deleted file mode 100644 index ead1f52c8d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1169.png b/TMessagesProj/src/emojis/twitter/emoji/0_1169.png deleted file mode 100644 index 241a7deff7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_117.png b/TMessagesProj/src/emojis/twitter/emoji/0_117.png deleted file mode 100644 index f05d0c9e7d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1170.png b/TMessagesProj/src/emojis/twitter/emoji/0_1170.png deleted file mode 100644 index c97498b62c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1171.png b/TMessagesProj/src/emojis/twitter/emoji/0_1171.png deleted file mode 100644 index 35d3c53ce1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1172.png b/TMessagesProj/src/emojis/twitter/emoji/0_1172.png deleted file mode 100644 index e1b30aa017..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1173.png b/TMessagesProj/src/emojis/twitter/emoji/0_1173.png deleted file mode 100644 index fd471d0600..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1174.png b/TMessagesProj/src/emojis/twitter/emoji/0_1174.png deleted file mode 100644 index 60b948c96d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1175.png b/TMessagesProj/src/emojis/twitter/emoji/0_1175.png deleted file mode 100644 index 5ec3ce32bd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1176.png b/TMessagesProj/src/emojis/twitter/emoji/0_1176.png deleted file mode 100644 index f0dfccb739..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1177.png b/TMessagesProj/src/emojis/twitter/emoji/0_1177.png deleted file mode 100644 index 9a7879574e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1178.png b/TMessagesProj/src/emojis/twitter/emoji/0_1178.png deleted file mode 100644 index 21e91c9dfd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1179.png b/TMessagesProj/src/emojis/twitter/emoji/0_1179.png deleted file mode 100644 index 3c5d7634b5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_118.png b/TMessagesProj/src/emojis/twitter/emoji/0_118.png deleted file mode 100644 index b625840322..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1180.png b/TMessagesProj/src/emojis/twitter/emoji/0_1180.png deleted file mode 100644 index de275c5c09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1181.png b/TMessagesProj/src/emojis/twitter/emoji/0_1181.png deleted file mode 100644 index 03997ac194..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1182.png b/TMessagesProj/src/emojis/twitter/emoji/0_1182.png deleted file mode 100644 index bfdc00020c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1183.png b/TMessagesProj/src/emojis/twitter/emoji/0_1183.png deleted file mode 100644 index 1d46853ab7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1184.png b/TMessagesProj/src/emojis/twitter/emoji/0_1184.png deleted file mode 100644 index 4aa7061b7a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1185.png b/TMessagesProj/src/emojis/twitter/emoji/0_1185.png deleted file mode 100644 index bd39d14a40..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1186.png b/TMessagesProj/src/emojis/twitter/emoji/0_1186.png deleted file mode 100644 index a3bc638d25..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1187.png b/TMessagesProj/src/emojis/twitter/emoji/0_1187.png deleted file mode 100644 index bf74d833e9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1188.png b/TMessagesProj/src/emojis/twitter/emoji/0_1188.png deleted file mode 100644 index d6d2f4cec9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1189.png b/TMessagesProj/src/emojis/twitter/emoji/0_1189.png deleted file mode 100644 index 3b13c8bd82..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_119.png b/TMessagesProj/src/emojis/twitter/emoji/0_119.png deleted file mode 100644 index 5c03799b21..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1190.png b/TMessagesProj/src/emojis/twitter/emoji/0_1190.png deleted file mode 100644 index 7691a857eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1191.png b/TMessagesProj/src/emojis/twitter/emoji/0_1191.png deleted file mode 100644 index aab6736493..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1192.png b/TMessagesProj/src/emojis/twitter/emoji/0_1192.png deleted file mode 100644 index 1d76e48cab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1193.png b/TMessagesProj/src/emojis/twitter/emoji/0_1193.png deleted file mode 100644 index 98f599fa66..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1194.png b/TMessagesProj/src/emojis/twitter/emoji/0_1194.png deleted file mode 100644 index 68f7e25b03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1195.png b/TMessagesProj/src/emojis/twitter/emoji/0_1195.png deleted file mode 100644 index b377e0c1e8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1196.png b/TMessagesProj/src/emojis/twitter/emoji/0_1196.png deleted file mode 100644 index 19ab5f0061..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1197.png b/TMessagesProj/src/emojis/twitter/emoji/0_1197.png deleted file mode 100644 index d677cb31f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1198.png b/TMessagesProj/src/emojis/twitter/emoji/0_1198.png deleted file mode 100644 index e05f09e1c3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1199.png b/TMessagesProj/src/emojis/twitter/emoji/0_1199.png deleted file mode 100644 index 63153e42f6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_12.png b/TMessagesProj/src/emojis/twitter/emoji/0_12.png deleted file mode 100644 index 5e59f2f3a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_120.png b/TMessagesProj/src/emojis/twitter/emoji/0_120.png deleted file mode 100644 index 0b495f5e59..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1200.png b/TMessagesProj/src/emojis/twitter/emoji/0_1200.png deleted file mode 100644 index 6ace39b6ab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1201.png b/TMessagesProj/src/emojis/twitter/emoji/0_1201.png deleted file mode 100644 index 48b2fa0499..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1202.png b/TMessagesProj/src/emojis/twitter/emoji/0_1202.png deleted file mode 100644 index cc4090e63d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1203.png b/TMessagesProj/src/emojis/twitter/emoji/0_1203.png deleted file mode 100644 index b666a9a973..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1204.png b/TMessagesProj/src/emojis/twitter/emoji/0_1204.png deleted file mode 100644 index 55477096df..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1205.png b/TMessagesProj/src/emojis/twitter/emoji/0_1205.png deleted file mode 100644 index a093bd034e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1206.png b/TMessagesProj/src/emojis/twitter/emoji/0_1206.png deleted file mode 100644 index 5895c2a521..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1207.png b/TMessagesProj/src/emojis/twitter/emoji/0_1207.png deleted file mode 100644 index d4efa64485..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1208.png b/TMessagesProj/src/emojis/twitter/emoji/0_1208.png deleted file mode 100644 index ae1438f139..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1209.png b/TMessagesProj/src/emojis/twitter/emoji/0_1209.png deleted file mode 100644 index 72483f699a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_121.png b/TMessagesProj/src/emojis/twitter/emoji/0_121.png deleted file mode 100644 index 55aa31a6e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1210.png b/TMessagesProj/src/emojis/twitter/emoji/0_1210.png deleted file mode 100644 index 76f5b99457..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1211.png b/TMessagesProj/src/emojis/twitter/emoji/0_1211.png deleted file mode 100644 index 949c6fe38d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1212.png b/TMessagesProj/src/emojis/twitter/emoji/0_1212.png deleted file mode 100644 index 80b7f1a669..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1213.png b/TMessagesProj/src/emojis/twitter/emoji/0_1213.png deleted file mode 100644 index 8b05471a71..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1214.png b/TMessagesProj/src/emojis/twitter/emoji/0_1214.png deleted file mode 100644 index 5cb3b02103..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1215.png b/TMessagesProj/src/emojis/twitter/emoji/0_1215.png deleted file mode 100644 index 30c8d4371e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1216.png b/TMessagesProj/src/emojis/twitter/emoji/0_1216.png deleted file mode 100644 index eb16de292a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1217.png b/TMessagesProj/src/emojis/twitter/emoji/0_1217.png deleted file mode 100644 index 26b389ffbb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1218.png b/TMessagesProj/src/emojis/twitter/emoji/0_1218.png deleted file mode 100644 index da4317b240..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1219.png b/TMessagesProj/src/emojis/twitter/emoji/0_1219.png deleted file mode 100644 index 348712a495..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_122.png b/TMessagesProj/src/emojis/twitter/emoji/0_122.png deleted file mode 100644 index eb428085cd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1220.png b/TMessagesProj/src/emojis/twitter/emoji/0_1220.png deleted file mode 100644 index 1045fbe61d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1221.png b/TMessagesProj/src/emojis/twitter/emoji/0_1221.png deleted file mode 100644 index 8cc37d52fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1222.png b/TMessagesProj/src/emojis/twitter/emoji/0_1222.png deleted file mode 100644 index 2a241fdcb9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1223.png b/TMessagesProj/src/emojis/twitter/emoji/0_1223.png deleted file mode 100644 index bcc0d59186..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1224.png b/TMessagesProj/src/emojis/twitter/emoji/0_1224.png deleted file mode 100644 index 6cd3d750f2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1225.png b/TMessagesProj/src/emojis/twitter/emoji/0_1225.png deleted file mode 100644 index 3c79c4ca55..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1226.png b/TMessagesProj/src/emojis/twitter/emoji/0_1226.png deleted file mode 100644 index e385719e87..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1227.png b/TMessagesProj/src/emojis/twitter/emoji/0_1227.png deleted file mode 100644 index 331bf42035..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1228.png b/TMessagesProj/src/emojis/twitter/emoji/0_1228.png deleted file mode 100644 index c6220c48a9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1229.png b/TMessagesProj/src/emojis/twitter/emoji/0_1229.png deleted file mode 100644 index a036faa348..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1229.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_123.png b/TMessagesProj/src/emojis/twitter/emoji/0_123.png deleted file mode 100644 index ea17cc81f1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1230.png b/TMessagesProj/src/emojis/twitter/emoji/0_1230.png deleted file mode 100644 index 81e3685170..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1230.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1231.png b/TMessagesProj/src/emojis/twitter/emoji/0_1231.png deleted file mode 100644 index 09d7730558..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1231.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1232.png b/TMessagesProj/src/emojis/twitter/emoji/0_1232.png deleted file mode 100644 index c92340f684..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1232.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1233.png b/TMessagesProj/src/emojis/twitter/emoji/0_1233.png deleted file mode 100644 index f070bd7de0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1233.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1234.png b/TMessagesProj/src/emojis/twitter/emoji/0_1234.png deleted file mode 100644 index c7f9460af1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1234.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1235.png b/TMessagesProj/src/emojis/twitter/emoji/0_1235.png deleted file mode 100644 index 5b7490c115..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1235.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1236.png b/TMessagesProj/src/emojis/twitter/emoji/0_1236.png deleted file mode 100644 index 5973d41aa0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1236.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1237.png b/TMessagesProj/src/emojis/twitter/emoji/0_1237.png deleted file mode 100644 index bfa6cfb4c2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1237.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1238.png b/TMessagesProj/src/emojis/twitter/emoji/0_1238.png deleted file mode 100644 index 16d7554c6b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1238.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1239.png b/TMessagesProj/src/emojis/twitter/emoji/0_1239.png deleted file mode 100644 index a485d3c71e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1239.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_124.png b/TMessagesProj/src/emojis/twitter/emoji/0_124.png deleted file mode 100644 index e334f0ee2d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1240.png b/TMessagesProj/src/emojis/twitter/emoji/0_1240.png deleted file mode 100644 index 3ce2061dd9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1240.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1241.png b/TMessagesProj/src/emojis/twitter/emoji/0_1241.png deleted file mode 100644 index 316878eeee..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1241.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1242.png b/TMessagesProj/src/emojis/twitter/emoji/0_1242.png deleted file mode 100644 index dc5509852f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1242.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1243.png b/TMessagesProj/src/emojis/twitter/emoji/0_1243.png deleted file mode 100644 index e57ee89aec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1243.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1244.png b/TMessagesProj/src/emojis/twitter/emoji/0_1244.png deleted file mode 100644 index f041bb95b8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1244.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1245.png b/TMessagesProj/src/emojis/twitter/emoji/0_1245.png deleted file mode 100644 index 2ed64f72ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1245.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1246.png b/TMessagesProj/src/emojis/twitter/emoji/0_1246.png deleted file mode 100644 index 67f4004a6d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1246.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1247.png b/TMessagesProj/src/emojis/twitter/emoji/0_1247.png deleted file mode 100644 index c7f3b1622e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1247.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1248.png b/TMessagesProj/src/emojis/twitter/emoji/0_1248.png deleted file mode 100644 index 023a1ea741..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1248.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1249.png b/TMessagesProj/src/emojis/twitter/emoji/0_1249.png deleted file mode 100644 index b002c42ab3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1249.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_125.png b/TMessagesProj/src/emojis/twitter/emoji/0_125.png deleted file mode 100644 index 6b9a4e2352..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1250.png b/TMessagesProj/src/emojis/twitter/emoji/0_1250.png deleted file mode 100644 index 175277f610..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1250.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1251.png b/TMessagesProj/src/emojis/twitter/emoji/0_1251.png deleted file mode 100644 index c84f8192a5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1251.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1252.png b/TMessagesProj/src/emojis/twitter/emoji/0_1252.png deleted file mode 100644 index ccaf81cd83..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1252.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1253.png b/TMessagesProj/src/emojis/twitter/emoji/0_1253.png deleted file mode 100644 index 5500cbc057..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1253.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1254.png b/TMessagesProj/src/emojis/twitter/emoji/0_1254.png deleted file mode 100644 index f9d734541d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1254.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1255.png b/TMessagesProj/src/emojis/twitter/emoji/0_1255.png deleted file mode 100644 index 4a93ac121b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1255.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1256.png b/TMessagesProj/src/emojis/twitter/emoji/0_1256.png deleted file mode 100644 index e33d40ea3c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1256.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1257.png b/TMessagesProj/src/emojis/twitter/emoji/0_1257.png deleted file mode 100644 index 7da8ad6a0b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1257.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1258.png b/TMessagesProj/src/emojis/twitter/emoji/0_1258.png deleted file mode 100644 index 897fafc140..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1258.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1259.png b/TMessagesProj/src/emojis/twitter/emoji/0_1259.png deleted file mode 100644 index 2dfefc35da..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1259.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_126.png b/TMessagesProj/src/emojis/twitter/emoji/0_126.png deleted file mode 100644 index 104f132285..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1260.png b/TMessagesProj/src/emojis/twitter/emoji/0_1260.png deleted file mode 100644 index 6de28aa841..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1260.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1261.png b/TMessagesProj/src/emojis/twitter/emoji/0_1261.png deleted file mode 100644 index 2f740fe663..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1261.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1262.png b/TMessagesProj/src/emojis/twitter/emoji/0_1262.png deleted file mode 100644 index 148745e773..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1262.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1263.png b/TMessagesProj/src/emojis/twitter/emoji/0_1263.png deleted file mode 100644 index 2fbc473b74..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1263.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1264.png b/TMessagesProj/src/emojis/twitter/emoji/0_1264.png deleted file mode 100644 index 4b62f3ed8d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1264.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1265.png b/TMessagesProj/src/emojis/twitter/emoji/0_1265.png deleted file mode 100644 index 82eaf5b7a8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1265.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1266.png b/TMessagesProj/src/emojis/twitter/emoji/0_1266.png deleted file mode 100644 index 84f9171f19..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1266.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1267.png b/TMessagesProj/src/emojis/twitter/emoji/0_1267.png deleted file mode 100644 index 0fc784ac41..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1267.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1268.png b/TMessagesProj/src/emojis/twitter/emoji/0_1268.png deleted file mode 100644 index 5ec5644291..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1268.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1269.png b/TMessagesProj/src/emojis/twitter/emoji/0_1269.png deleted file mode 100644 index 05122068a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1269.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_127.png b/TMessagesProj/src/emojis/twitter/emoji/0_127.png deleted file mode 100644 index 8731cf5003..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1270.png b/TMessagesProj/src/emojis/twitter/emoji/0_1270.png deleted file mode 100644 index 789c0f069e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1270.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1271.png b/TMessagesProj/src/emojis/twitter/emoji/0_1271.png deleted file mode 100644 index 41461f2f16..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1271.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1272.png b/TMessagesProj/src/emojis/twitter/emoji/0_1272.png deleted file mode 100644 index 9b72a7dc31..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1272.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1273.png b/TMessagesProj/src/emojis/twitter/emoji/0_1273.png deleted file mode 100644 index 2569a1ef6a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1273.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1274.png b/TMessagesProj/src/emojis/twitter/emoji/0_1274.png deleted file mode 100644 index c884775f17..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1274.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1275.png b/TMessagesProj/src/emojis/twitter/emoji/0_1275.png deleted file mode 100644 index ce4bceda13..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1275.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1276.png b/TMessagesProj/src/emojis/twitter/emoji/0_1276.png deleted file mode 100644 index b72b8d5af7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1276.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1277.png b/TMessagesProj/src/emojis/twitter/emoji/0_1277.png deleted file mode 100644 index fc7c1cf7ca..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1277.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1278.png b/TMessagesProj/src/emojis/twitter/emoji/0_1278.png deleted file mode 100644 index 28bcbda054..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1278.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1279.png b/TMessagesProj/src/emojis/twitter/emoji/0_1279.png deleted file mode 100644 index 36115ab5dd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1279.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_128.png b/TMessagesProj/src/emojis/twitter/emoji/0_128.png deleted file mode 100644 index 6d76d517be..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1280.png b/TMessagesProj/src/emojis/twitter/emoji/0_1280.png deleted file mode 100644 index 482ae8f689..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1280.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1281.png b/TMessagesProj/src/emojis/twitter/emoji/0_1281.png deleted file mode 100644 index d5f51fb3df..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1281.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1282.png b/TMessagesProj/src/emojis/twitter/emoji/0_1282.png deleted file mode 100644 index 9a2843d545..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1282.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1283.png b/TMessagesProj/src/emojis/twitter/emoji/0_1283.png deleted file mode 100644 index 5ceab54388..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1283.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1284.png b/TMessagesProj/src/emojis/twitter/emoji/0_1284.png deleted file mode 100644 index a6dbf9388e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1284.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1285.png b/TMessagesProj/src/emojis/twitter/emoji/0_1285.png deleted file mode 100644 index f8cd3af492..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1285.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1286.png b/TMessagesProj/src/emojis/twitter/emoji/0_1286.png deleted file mode 100644 index 858a78e7fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1286.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1287.png b/TMessagesProj/src/emojis/twitter/emoji/0_1287.png deleted file mode 100644 index 6e3848bf23..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1287.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1288.png b/TMessagesProj/src/emojis/twitter/emoji/0_1288.png deleted file mode 100644 index cf8b58baca..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1288.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1289.png b/TMessagesProj/src/emojis/twitter/emoji/0_1289.png deleted file mode 100644 index c4c1d3191d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1289.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_129.png b/TMessagesProj/src/emojis/twitter/emoji/0_129.png deleted file mode 100644 index 48265d8868..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1290.png b/TMessagesProj/src/emojis/twitter/emoji/0_1290.png deleted file mode 100644 index 8f98f533d2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1290.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1291.png b/TMessagesProj/src/emojis/twitter/emoji/0_1291.png deleted file mode 100644 index 0c31a4bb00..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1291.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1292.png b/TMessagesProj/src/emojis/twitter/emoji/0_1292.png deleted file mode 100644 index e54e1be632..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1292.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1293.png b/TMessagesProj/src/emojis/twitter/emoji/0_1293.png deleted file mode 100644 index b69b824e68..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1293.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1294.png b/TMessagesProj/src/emojis/twitter/emoji/0_1294.png deleted file mode 100644 index 9b21e0d409..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1294.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1295.png b/TMessagesProj/src/emojis/twitter/emoji/0_1295.png deleted file mode 100644 index 2e752c12bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1295.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1296.png b/TMessagesProj/src/emojis/twitter/emoji/0_1296.png deleted file mode 100644 index a887ca4e8c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1296.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1297.png b/TMessagesProj/src/emojis/twitter/emoji/0_1297.png deleted file mode 100644 index d453f335d5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1297.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1298.png b/TMessagesProj/src/emojis/twitter/emoji/0_1298.png deleted file mode 100644 index 254765f0e1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1298.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1299.png b/TMessagesProj/src/emojis/twitter/emoji/0_1299.png deleted file mode 100644 index 9da03f6983..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1299.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_13.png b/TMessagesProj/src/emojis/twitter/emoji/0_13.png deleted file mode 100644 index 79c632561d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_130.png b/TMessagesProj/src/emojis/twitter/emoji/0_130.png deleted file mode 100644 index 8f6798ff7b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1300.png b/TMessagesProj/src/emojis/twitter/emoji/0_1300.png deleted file mode 100644 index 1feabc5e19..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1300.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1301.png b/TMessagesProj/src/emojis/twitter/emoji/0_1301.png deleted file mode 100644 index 909c580391..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1301.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1302.png b/TMessagesProj/src/emojis/twitter/emoji/0_1302.png deleted file mode 100644 index fb1624722a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1302.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1303.png b/TMessagesProj/src/emojis/twitter/emoji/0_1303.png deleted file mode 100644 index 256b4de894..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1303.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1304.png b/TMessagesProj/src/emojis/twitter/emoji/0_1304.png deleted file mode 100644 index e164ec4ee9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1304.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1305.png b/TMessagesProj/src/emojis/twitter/emoji/0_1305.png deleted file mode 100644 index ed6e2a9ac0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1305.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1306.png b/TMessagesProj/src/emojis/twitter/emoji/0_1306.png deleted file mode 100644 index 1cae91b864..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1306.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1307.png b/TMessagesProj/src/emojis/twitter/emoji/0_1307.png deleted file mode 100644 index 8738a0554d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1307.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1308.png b/TMessagesProj/src/emojis/twitter/emoji/0_1308.png deleted file mode 100644 index 477df5a600..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1308.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1309.png b/TMessagesProj/src/emojis/twitter/emoji/0_1309.png deleted file mode 100644 index 13a0dac203..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1309.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_131.png b/TMessagesProj/src/emojis/twitter/emoji/0_131.png deleted file mode 100644 index 3c30952f87..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1310.png b/TMessagesProj/src/emojis/twitter/emoji/0_1310.png deleted file mode 100644 index 038da5597a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1310.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1311.png b/TMessagesProj/src/emojis/twitter/emoji/0_1311.png deleted file mode 100644 index d9439b906c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1311.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1312.png b/TMessagesProj/src/emojis/twitter/emoji/0_1312.png deleted file mode 100644 index 6099dcfb38..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1312.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1313.png b/TMessagesProj/src/emojis/twitter/emoji/0_1313.png deleted file mode 100644 index 48e04d12cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1313.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1314.png b/TMessagesProj/src/emojis/twitter/emoji/0_1314.png deleted file mode 100644 index 74ed34af09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1314.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1315.png b/TMessagesProj/src/emojis/twitter/emoji/0_1315.png deleted file mode 100644 index d5c98c4e89..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1315.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1316.png b/TMessagesProj/src/emojis/twitter/emoji/0_1316.png deleted file mode 100644 index b65d0d3d35..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1316.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1317.png b/TMessagesProj/src/emojis/twitter/emoji/0_1317.png deleted file mode 100644 index b1ae916c34..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1317.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1318.png b/TMessagesProj/src/emojis/twitter/emoji/0_1318.png deleted file mode 100644 index 5fbff1c230..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1318.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1319.png b/TMessagesProj/src/emojis/twitter/emoji/0_1319.png deleted file mode 100644 index cedeaa3f38..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1319.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_132.png b/TMessagesProj/src/emojis/twitter/emoji/0_132.png deleted file mode 100644 index c1105a584c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1320.png b/TMessagesProj/src/emojis/twitter/emoji/0_1320.png deleted file mode 100644 index c516fcfc2b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1320.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1321.png b/TMessagesProj/src/emojis/twitter/emoji/0_1321.png deleted file mode 100644 index f8c647b2d1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1321.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1322.png b/TMessagesProj/src/emojis/twitter/emoji/0_1322.png deleted file mode 100644 index 399e2ec10d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1322.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1323.png b/TMessagesProj/src/emojis/twitter/emoji/0_1323.png deleted file mode 100644 index a6a5ebfe40..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1323.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1324.png b/TMessagesProj/src/emojis/twitter/emoji/0_1324.png deleted file mode 100644 index daac3d063c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1324.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1325.png b/TMessagesProj/src/emojis/twitter/emoji/0_1325.png deleted file mode 100644 index b7222f4407..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1325.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1326.png b/TMessagesProj/src/emojis/twitter/emoji/0_1326.png deleted file mode 100644 index 657dd43744..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1326.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1327.png b/TMessagesProj/src/emojis/twitter/emoji/0_1327.png deleted file mode 100644 index ea405d7d13..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1327.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1328.png b/TMessagesProj/src/emojis/twitter/emoji/0_1328.png deleted file mode 100644 index 15019d1ced..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1328.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1329.png b/TMessagesProj/src/emojis/twitter/emoji/0_1329.png deleted file mode 100644 index 1fbec5f2c4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1329.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_133.png b/TMessagesProj/src/emojis/twitter/emoji/0_133.png deleted file mode 100644 index 07066e38d7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1330.png b/TMessagesProj/src/emojis/twitter/emoji/0_1330.png deleted file mode 100644 index c848ca1f11..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1330.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1331.png b/TMessagesProj/src/emojis/twitter/emoji/0_1331.png deleted file mode 100644 index 5ef77d9f09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1331.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1332.png b/TMessagesProj/src/emojis/twitter/emoji/0_1332.png deleted file mode 100644 index 29ac4570d8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1332.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1333.png b/TMessagesProj/src/emojis/twitter/emoji/0_1333.png deleted file mode 100644 index 44cdbbd7c4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1333.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1334.png b/TMessagesProj/src/emojis/twitter/emoji/0_1334.png deleted file mode 100644 index fa3ed6e3ce..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1334.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1335.png b/TMessagesProj/src/emojis/twitter/emoji/0_1335.png deleted file mode 100644 index 90e4eb9956..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1335.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1336.png b/TMessagesProj/src/emojis/twitter/emoji/0_1336.png deleted file mode 100644 index f316ccdf65..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1336.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1337.png b/TMessagesProj/src/emojis/twitter/emoji/0_1337.png deleted file mode 100644 index 02ebd47864..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1337.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1338.png b/TMessagesProj/src/emojis/twitter/emoji/0_1338.png deleted file mode 100644 index 2b534d7d85..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1338.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1339.png b/TMessagesProj/src/emojis/twitter/emoji/0_1339.png deleted file mode 100644 index c0ac56585e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1339.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_134.png b/TMessagesProj/src/emojis/twitter/emoji/0_134.png deleted file mode 100644 index 1c680109fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1340.png b/TMessagesProj/src/emojis/twitter/emoji/0_1340.png deleted file mode 100644 index 0f00cbf436..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1340.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1341.png b/TMessagesProj/src/emojis/twitter/emoji/0_1341.png deleted file mode 100644 index f977fb7b5d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1341.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1342.png b/TMessagesProj/src/emojis/twitter/emoji/0_1342.png deleted file mode 100644 index e60e49eb70..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1342.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1343.png b/TMessagesProj/src/emojis/twitter/emoji/0_1343.png deleted file mode 100644 index 1527c19260..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1343.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1344.png b/TMessagesProj/src/emojis/twitter/emoji/0_1344.png deleted file mode 100644 index 4f275bc9c6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1344.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1345.png b/TMessagesProj/src/emojis/twitter/emoji/0_1345.png deleted file mode 100644 index 641d085f7d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1345.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1346.png b/TMessagesProj/src/emojis/twitter/emoji/0_1346.png deleted file mode 100644 index 1cf5bac0df..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1346.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1347.png b/TMessagesProj/src/emojis/twitter/emoji/0_1347.png deleted file mode 100644 index da0effa819..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1347.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1348.png b/TMessagesProj/src/emojis/twitter/emoji/0_1348.png deleted file mode 100644 index b724294c83..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1348.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1349.png b/TMessagesProj/src/emojis/twitter/emoji/0_1349.png deleted file mode 100644 index d4dc180582..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1349.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_135.png b/TMessagesProj/src/emojis/twitter/emoji/0_135.png deleted file mode 100644 index a5ab81255d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1350.png b/TMessagesProj/src/emojis/twitter/emoji/0_1350.png deleted file mode 100644 index 8a407fcb6c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1350.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1351.png b/TMessagesProj/src/emojis/twitter/emoji/0_1351.png deleted file mode 100644 index bb9083952b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1351.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1352.png b/TMessagesProj/src/emojis/twitter/emoji/0_1352.png deleted file mode 100644 index b31419b970..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1352.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1353.png b/TMessagesProj/src/emojis/twitter/emoji/0_1353.png deleted file mode 100644 index 90b77d7c57..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1353.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1354.png b/TMessagesProj/src/emojis/twitter/emoji/0_1354.png deleted file mode 100644 index 479063203b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1354.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1355.png b/TMessagesProj/src/emojis/twitter/emoji/0_1355.png deleted file mode 100644 index 3f382e159b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1355.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1356.png b/TMessagesProj/src/emojis/twitter/emoji/0_1356.png deleted file mode 100644 index 00a1e3122c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1356.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1357.png b/TMessagesProj/src/emojis/twitter/emoji/0_1357.png deleted file mode 100644 index 8a26b2437b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1357.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1358.png b/TMessagesProj/src/emojis/twitter/emoji/0_1358.png deleted file mode 100644 index 0c45f3c728..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1358.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1359.png b/TMessagesProj/src/emojis/twitter/emoji/0_1359.png deleted file mode 100644 index c9bfc1b5fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1359.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_136.png b/TMessagesProj/src/emojis/twitter/emoji/0_136.png deleted file mode 100644 index 85c5669125..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1360.png b/TMessagesProj/src/emojis/twitter/emoji/0_1360.png deleted file mode 100644 index 6a950a2ff0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1360.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1361.png b/TMessagesProj/src/emojis/twitter/emoji/0_1361.png deleted file mode 100644 index b32dc7d6f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1361.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1362.png b/TMessagesProj/src/emojis/twitter/emoji/0_1362.png deleted file mode 100644 index a0108ad9a8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1362.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1363.png b/TMessagesProj/src/emojis/twitter/emoji/0_1363.png deleted file mode 100644 index 8735cc0994..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1363.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1364.png b/TMessagesProj/src/emojis/twitter/emoji/0_1364.png deleted file mode 100644 index 199c4c0f24..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1364.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1365.png b/TMessagesProj/src/emojis/twitter/emoji/0_1365.png deleted file mode 100644 index cc1dbab42a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1365.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1366.png b/TMessagesProj/src/emojis/twitter/emoji/0_1366.png deleted file mode 100644 index 6278cb30c6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1366.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1367.png b/TMessagesProj/src/emojis/twitter/emoji/0_1367.png deleted file mode 100644 index 6e0e0ffab5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1367.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1368.png b/TMessagesProj/src/emojis/twitter/emoji/0_1368.png deleted file mode 100644 index 2b07765eac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1368.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1369.png b/TMessagesProj/src/emojis/twitter/emoji/0_1369.png deleted file mode 100644 index b9ce24a228..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1369.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_137.png b/TMessagesProj/src/emojis/twitter/emoji/0_137.png deleted file mode 100644 index 32e58a5f1c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1370.png b/TMessagesProj/src/emojis/twitter/emoji/0_1370.png deleted file mode 100644 index 254501ba2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1370.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1371.png b/TMessagesProj/src/emojis/twitter/emoji/0_1371.png deleted file mode 100644 index 3cc95b8e78..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1371.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1372.png b/TMessagesProj/src/emojis/twitter/emoji/0_1372.png deleted file mode 100644 index ff5c268edb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1372.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1373.png b/TMessagesProj/src/emojis/twitter/emoji/0_1373.png deleted file mode 100644 index e58e58b77b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1373.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1374.png b/TMessagesProj/src/emojis/twitter/emoji/0_1374.png deleted file mode 100644 index 67fb430ba1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1374.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1375.png b/TMessagesProj/src/emojis/twitter/emoji/0_1375.png deleted file mode 100644 index 58e8d95a64..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1375.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1376.png b/TMessagesProj/src/emojis/twitter/emoji/0_1376.png deleted file mode 100644 index 9816f2c1f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1376.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1377.png b/TMessagesProj/src/emojis/twitter/emoji/0_1377.png deleted file mode 100644 index 0c63c22c31..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1377.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1378.png b/TMessagesProj/src/emojis/twitter/emoji/0_1378.png deleted file mode 100644 index 66b5a61a1e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1378.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1379.png b/TMessagesProj/src/emojis/twitter/emoji/0_1379.png deleted file mode 100644 index 0e8b320285..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1379.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_138.png b/TMessagesProj/src/emojis/twitter/emoji/0_138.png deleted file mode 100644 index 4294f4823c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1380.png b/TMessagesProj/src/emojis/twitter/emoji/0_1380.png deleted file mode 100644 index 1b97d93ed5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1380.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1381.png b/TMessagesProj/src/emojis/twitter/emoji/0_1381.png deleted file mode 100644 index fd499b5dc8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1381.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1382.png b/TMessagesProj/src/emojis/twitter/emoji/0_1382.png deleted file mode 100644 index cd610b816e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1382.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1383.png b/TMessagesProj/src/emojis/twitter/emoji/0_1383.png deleted file mode 100644 index e9e6371a6b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1383.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1384.png b/TMessagesProj/src/emojis/twitter/emoji/0_1384.png deleted file mode 100644 index 96faf3dcb0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1384.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1385.png b/TMessagesProj/src/emojis/twitter/emoji/0_1385.png deleted file mode 100644 index c096c00ed7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1385.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1386.png b/TMessagesProj/src/emojis/twitter/emoji/0_1386.png deleted file mode 100644 index 9dfa1efbe0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1386.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1387.png b/TMessagesProj/src/emojis/twitter/emoji/0_1387.png deleted file mode 100644 index a531499baa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1387.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1388.png b/TMessagesProj/src/emojis/twitter/emoji/0_1388.png deleted file mode 100644 index b23c0a1a3f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1388.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1389.png b/TMessagesProj/src/emojis/twitter/emoji/0_1389.png deleted file mode 100644 index 7c5253f0d8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1389.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_139.png b/TMessagesProj/src/emojis/twitter/emoji/0_139.png deleted file mode 100644 index 3466a85142..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1390.png b/TMessagesProj/src/emojis/twitter/emoji/0_1390.png deleted file mode 100644 index 05d99bafd1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1390.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1391.png b/TMessagesProj/src/emojis/twitter/emoji/0_1391.png deleted file mode 100644 index c0dffb59b2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1391.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1392.png b/TMessagesProj/src/emojis/twitter/emoji/0_1392.png deleted file mode 100644 index 9271af6b95..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1392.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1393.png b/TMessagesProj/src/emojis/twitter/emoji/0_1393.png deleted file mode 100644 index f5c2e60b22..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1393.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1394.png b/TMessagesProj/src/emojis/twitter/emoji/0_1394.png deleted file mode 100644 index 145088596a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1394.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1395.png b/TMessagesProj/src/emojis/twitter/emoji/0_1395.png deleted file mode 100644 index 07af7f2774..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1395.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1396.png b/TMessagesProj/src/emojis/twitter/emoji/0_1396.png deleted file mode 100644 index d8e2eacad2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1396.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1397.png b/TMessagesProj/src/emojis/twitter/emoji/0_1397.png deleted file mode 100644 index e35f637c75..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1397.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1398.png b/TMessagesProj/src/emojis/twitter/emoji/0_1398.png deleted file mode 100644 index 254e0a44d1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1398.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1399.png b/TMessagesProj/src/emojis/twitter/emoji/0_1399.png deleted file mode 100644 index a07a12a2ce..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1399.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_14.png b/TMessagesProj/src/emojis/twitter/emoji/0_14.png deleted file mode 100644 index 1a88f84ae8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_140.png b/TMessagesProj/src/emojis/twitter/emoji/0_140.png deleted file mode 100644 index c1d961b25a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1400.png b/TMessagesProj/src/emojis/twitter/emoji/0_1400.png deleted file mode 100644 index 2e4dcd674f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1400.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1401.png b/TMessagesProj/src/emojis/twitter/emoji/0_1401.png deleted file mode 100644 index 9bf92bd9d5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1401.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1402.png b/TMessagesProj/src/emojis/twitter/emoji/0_1402.png deleted file mode 100644 index 18a29fe5ea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1402.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1403.png b/TMessagesProj/src/emojis/twitter/emoji/0_1403.png deleted file mode 100644 index d00617d5ca..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1403.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1404.png b/TMessagesProj/src/emojis/twitter/emoji/0_1404.png deleted file mode 100644 index 8ff2feae19..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1404.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1405.png b/TMessagesProj/src/emojis/twitter/emoji/0_1405.png deleted file mode 100644 index 5f03a5053a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1405.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1406.png b/TMessagesProj/src/emojis/twitter/emoji/0_1406.png deleted file mode 100644 index 1350a71a09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1406.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1407.png b/TMessagesProj/src/emojis/twitter/emoji/0_1407.png deleted file mode 100644 index a13c63f67e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1407.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1408.png b/TMessagesProj/src/emojis/twitter/emoji/0_1408.png deleted file mode 100644 index f6301b77c8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1408.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1409.png b/TMessagesProj/src/emojis/twitter/emoji/0_1409.png deleted file mode 100644 index cf2b4ab498..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1409.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_141.png b/TMessagesProj/src/emojis/twitter/emoji/0_141.png deleted file mode 100644 index ecff6446a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1410.png b/TMessagesProj/src/emojis/twitter/emoji/0_1410.png deleted file mode 100644 index 58b0d524de..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1410.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1411.png b/TMessagesProj/src/emojis/twitter/emoji/0_1411.png deleted file mode 100644 index d7de52e773..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1411.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1412.png b/TMessagesProj/src/emojis/twitter/emoji/0_1412.png deleted file mode 100644 index d4a9a4f9e9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1412.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1413.png b/TMessagesProj/src/emojis/twitter/emoji/0_1413.png deleted file mode 100644 index b711e88e33..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1413.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1414.png b/TMessagesProj/src/emojis/twitter/emoji/0_1414.png deleted file mode 100644 index 074c016498..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1414.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1415.png b/TMessagesProj/src/emojis/twitter/emoji/0_1415.png deleted file mode 100644 index dafa8e6b21..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1415.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1416.png b/TMessagesProj/src/emojis/twitter/emoji/0_1416.png deleted file mode 100644 index fe1571f70b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1416.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1417.png b/TMessagesProj/src/emojis/twitter/emoji/0_1417.png deleted file mode 100644 index d31d38c54a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1417.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1418.png b/TMessagesProj/src/emojis/twitter/emoji/0_1418.png deleted file mode 100644 index c8bdedc8ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1418.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1419.png b/TMessagesProj/src/emojis/twitter/emoji/0_1419.png deleted file mode 100644 index 7c3be3892b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1419.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_142.png b/TMessagesProj/src/emojis/twitter/emoji/0_142.png deleted file mode 100644 index b9b5af2b7d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1420.png b/TMessagesProj/src/emojis/twitter/emoji/0_1420.png deleted file mode 100644 index 93cc22f931..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1420.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1421.png b/TMessagesProj/src/emojis/twitter/emoji/0_1421.png deleted file mode 100644 index 24728d76a6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1421.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1422.png b/TMessagesProj/src/emojis/twitter/emoji/0_1422.png deleted file mode 100644 index 71adb55611..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1422.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1423.png b/TMessagesProj/src/emojis/twitter/emoji/0_1423.png deleted file mode 100644 index bc48d87141..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1423.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1424.png b/TMessagesProj/src/emojis/twitter/emoji/0_1424.png deleted file mode 100644 index 8ddb2e73ba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1424.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1425.png b/TMessagesProj/src/emojis/twitter/emoji/0_1425.png deleted file mode 100644 index f6f8d64404..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1425.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1426.png b/TMessagesProj/src/emojis/twitter/emoji/0_1426.png deleted file mode 100644 index d87ebaa6fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1426.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1427.png b/TMessagesProj/src/emojis/twitter/emoji/0_1427.png deleted file mode 100644 index 0f46374e58..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1427.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1428.png b/TMessagesProj/src/emojis/twitter/emoji/0_1428.png deleted file mode 100644 index 1de39ce809..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1428.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1429.png b/TMessagesProj/src/emojis/twitter/emoji/0_1429.png deleted file mode 100644 index 33467d4414..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1429.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_143.png b/TMessagesProj/src/emojis/twitter/emoji/0_143.png deleted file mode 100644 index 72d181a4ad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1430.png b/TMessagesProj/src/emojis/twitter/emoji/0_1430.png deleted file mode 100644 index a499f09980..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1430.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1431.png b/TMessagesProj/src/emojis/twitter/emoji/0_1431.png deleted file mode 100644 index 0f3518ae0b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1431.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1432.png b/TMessagesProj/src/emojis/twitter/emoji/0_1432.png deleted file mode 100644 index b2a9d79754..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1432.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1433.png b/TMessagesProj/src/emojis/twitter/emoji/0_1433.png deleted file mode 100644 index 9f9e934fad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1433.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1434.png b/TMessagesProj/src/emojis/twitter/emoji/0_1434.png deleted file mode 100644 index 9f84b798c0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1434.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1435.png b/TMessagesProj/src/emojis/twitter/emoji/0_1435.png deleted file mode 100644 index c1909fb089..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1435.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1436.png b/TMessagesProj/src/emojis/twitter/emoji/0_1436.png deleted file mode 100644 index 1422f15f1b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1436.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1437.png b/TMessagesProj/src/emojis/twitter/emoji/0_1437.png deleted file mode 100644 index 8bc3aa150b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1437.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1438.png b/TMessagesProj/src/emojis/twitter/emoji/0_1438.png deleted file mode 100644 index dd0d464a85..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1438.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1439.png b/TMessagesProj/src/emojis/twitter/emoji/0_1439.png deleted file mode 100644 index 0962c07df1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1439.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_144.png b/TMessagesProj/src/emojis/twitter/emoji/0_144.png deleted file mode 100644 index ad68e1c57d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1440.png b/TMessagesProj/src/emojis/twitter/emoji/0_1440.png deleted file mode 100644 index add3284589..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1440.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1441.png b/TMessagesProj/src/emojis/twitter/emoji/0_1441.png deleted file mode 100644 index 281d746ce0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1441.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1442.png b/TMessagesProj/src/emojis/twitter/emoji/0_1442.png deleted file mode 100644 index c25e1ea533..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1442.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1443.png b/TMessagesProj/src/emojis/twitter/emoji/0_1443.png deleted file mode 100644 index 63311d13e2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1443.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1444.png b/TMessagesProj/src/emojis/twitter/emoji/0_1444.png deleted file mode 100644 index bcaeacac95..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1444.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1445.png b/TMessagesProj/src/emojis/twitter/emoji/0_1445.png deleted file mode 100644 index 3110aa5450..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1445.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1446.png b/TMessagesProj/src/emojis/twitter/emoji/0_1446.png deleted file mode 100644 index 8cb94745d1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1446.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1447.png b/TMessagesProj/src/emojis/twitter/emoji/0_1447.png deleted file mode 100644 index 82be7eda29..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1447.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1448.png b/TMessagesProj/src/emojis/twitter/emoji/0_1448.png deleted file mode 100644 index 9492d24c0d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1448.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1449.png b/TMessagesProj/src/emojis/twitter/emoji/0_1449.png deleted file mode 100644 index 2ef8d36de4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1449.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_145.png b/TMessagesProj/src/emojis/twitter/emoji/0_145.png deleted file mode 100644 index 94e4d5273e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1450.png b/TMessagesProj/src/emojis/twitter/emoji/0_1450.png deleted file mode 100644 index da8dc3761f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1450.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1451.png b/TMessagesProj/src/emojis/twitter/emoji/0_1451.png deleted file mode 100644 index 1b901b552a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1451.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1452.png b/TMessagesProj/src/emojis/twitter/emoji/0_1452.png deleted file mode 100644 index d419085af7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1452.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1453.png b/TMessagesProj/src/emojis/twitter/emoji/0_1453.png deleted file mode 100644 index 71a3b8d962..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1453.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1454.png b/TMessagesProj/src/emojis/twitter/emoji/0_1454.png deleted file mode 100644 index 390d5d3bdd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1454.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1455.png b/TMessagesProj/src/emojis/twitter/emoji/0_1455.png deleted file mode 100644 index 3bcf7a11b5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1455.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1456.png b/TMessagesProj/src/emojis/twitter/emoji/0_1456.png deleted file mode 100644 index d9603fbb2f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1456.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1457.png b/TMessagesProj/src/emojis/twitter/emoji/0_1457.png deleted file mode 100644 index 8309f59b94..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1457.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1458.png b/TMessagesProj/src/emojis/twitter/emoji/0_1458.png deleted file mode 100644 index 9cd946b9e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1458.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1459.png b/TMessagesProj/src/emojis/twitter/emoji/0_1459.png deleted file mode 100644 index d6084c31f1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1459.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_146.png b/TMessagesProj/src/emojis/twitter/emoji/0_146.png deleted file mode 100644 index 55f9696a27..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1460.png b/TMessagesProj/src/emojis/twitter/emoji/0_1460.png deleted file mode 100644 index 633d1ec9f1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1460.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1461.png b/TMessagesProj/src/emojis/twitter/emoji/0_1461.png deleted file mode 100644 index 620f350693..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1461.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1462.png b/TMessagesProj/src/emojis/twitter/emoji/0_1462.png deleted file mode 100644 index e853ff05c2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1462.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1463.png b/TMessagesProj/src/emojis/twitter/emoji/0_1463.png deleted file mode 100644 index 3735315725..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1463.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1464.png b/TMessagesProj/src/emojis/twitter/emoji/0_1464.png deleted file mode 100644 index bff22c74f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1464.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1465.png b/TMessagesProj/src/emojis/twitter/emoji/0_1465.png deleted file mode 100644 index 6197f74497..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1465.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1466.png b/TMessagesProj/src/emojis/twitter/emoji/0_1466.png deleted file mode 100644 index 1ea694d9d4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1466.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1467.png b/TMessagesProj/src/emojis/twitter/emoji/0_1467.png deleted file mode 100644 index e636c0c8fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1467.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1468.png b/TMessagesProj/src/emojis/twitter/emoji/0_1468.png deleted file mode 100644 index dbfe30640c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1468.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1469.png b/TMessagesProj/src/emojis/twitter/emoji/0_1469.png deleted file mode 100644 index 2d2e17ebc3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1469.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_147.png b/TMessagesProj/src/emojis/twitter/emoji/0_147.png deleted file mode 100644 index ae93280505..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1470.png b/TMessagesProj/src/emojis/twitter/emoji/0_1470.png deleted file mode 100644 index 6f6137542b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1470.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1471.png b/TMessagesProj/src/emojis/twitter/emoji/0_1471.png deleted file mode 100644 index 53b1f14b28..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1471.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1472.png b/TMessagesProj/src/emojis/twitter/emoji/0_1472.png deleted file mode 100644 index fa8d8d654a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1472.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1473.png b/TMessagesProj/src/emojis/twitter/emoji/0_1473.png deleted file mode 100644 index 4c50182a8d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1473.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1474.png b/TMessagesProj/src/emojis/twitter/emoji/0_1474.png deleted file mode 100644 index 0b1c024ca2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1474.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1475.png b/TMessagesProj/src/emojis/twitter/emoji/0_1475.png deleted file mode 100644 index f64a1975f1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1475.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1476.png b/TMessagesProj/src/emojis/twitter/emoji/0_1476.png deleted file mode 100644 index d8f05497b8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1476.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1477.png b/TMessagesProj/src/emojis/twitter/emoji/0_1477.png deleted file mode 100644 index 663fedf437..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1477.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1478.png b/TMessagesProj/src/emojis/twitter/emoji/0_1478.png deleted file mode 100644 index 7ef48a51e3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1478.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1479.png b/TMessagesProj/src/emojis/twitter/emoji/0_1479.png deleted file mode 100644 index b247a70f32..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1479.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_148.png b/TMessagesProj/src/emojis/twitter/emoji/0_148.png deleted file mode 100644 index 77fc490ac9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1480.png b/TMessagesProj/src/emojis/twitter/emoji/0_1480.png deleted file mode 100644 index 0aa6acbfcf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1480.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1481.png b/TMessagesProj/src/emojis/twitter/emoji/0_1481.png deleted file mode 100644 index 054e91cc0c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1481.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1482.png b/TMessagesProj/src/emojis/twitter/emoji/0_1482.png deleted file mode 100644 index dd51ccb64b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1482.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1483.png b/TMessagesProj/src/emojis/twitter/emoji/0_1483.png deleted file mode 100644 index 2a3da1361e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1483.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1484.png b/TMessagesProj/src/emojis/twitter/emoji/0_1484.png deleted file mode 100644 index 06fc028ee3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1484.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1485.png b/TMessagesProj/src/emojis/twitter/emoji/0_1485.png deleted file mode 100644 index f302aca28d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1485.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1486.png b/TMessagesProj/src/emojis/twitter/emoji/0_1486.png deleted file mode 100644 index 5f67c80896..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1486.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1487.png b/TMessagesProj/src/emojis/twitter/emoji/0_1487.png deleted file mode 100644 index 797c53d558..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1487.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1488.png b/TMessagesProj/src/emojis/twitter/emoji/0_1488.png deleted file mode 100644 index eb58cd0cb2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1488.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1489.png b/TMessagesProj/src/emojis/twitter/emoji/0_1489.png deleted file mode 100644 index 5986831b70..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1489.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_149.png b/TMessagesProj/src/emojis/twitter/emoji/0_149.png deleted file mode 100644 index 9b47842296..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1490.png b/TMessagesProj/src/emojis/twitter/emoji/0_1490.png deleted file mode 100644 index add3239fdd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1490.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1491.png b/TMessagesProj/src/emojis/twitter/emoji/0_1491.png deleted file mode 100644 index 5900293f9a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1491.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1492.png b/TMessagesProj/src/emojis/twitter/emoji/0_1492.png deleted file mode 100644 index 8c11123e11..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1492.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1493.png b/TMessagesProj/src/emojis/twitter/emoji/0_1493.png deleted file mode 100644 index c83325087e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1493.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1494.png b/TMessagesProj/src/emojis/twitter/emoji/0_1494.png deleted file mode 100644 index 7aacc088fe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1494.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1495.png b/TMessagesProj/src/emojis/twitter/emoji/0_1495.png deleted file mode 100644 index 7f8e1ef162..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1495.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1496.png b/TMessagesProj/src/emojis/twitter/emoji/0_1496.png deleted file mode 100644 index 8a8517a04b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1496.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1497.png b/TMessagesProj/src/emojis/twitter/emoji/0_1497.png deleted file mode 100644 index d541075344..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1497.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1498.png b/TMessagesProj/src/emojis/twitter/emoji/0_1498.png deleted file mode 100644 index b8c2d6dd30..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1498.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1499.png b/TMessagesProj/src/emojis/twitter/emoji/0_1499.png deleted file mode 100644 index 419f5e62ba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1499.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_15.png b/TMessagesProj/src/emojis/twitter/emoji/0_15.png deleted file mode 100644 index 7a782f0e3a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_150.png b/TMessagesProj/src/emojis/twitter/emoji/0_150.png deleted file mode 100644 index c368356e01..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1500.png b/TMessagesProj/src/emojis/twitter/emoji/0_1500.png deleted file mode 100644 index 30d7ef80f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1500.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1501.png b/TMessagesProj/src/emojis/twitter/emoji/0_1501.png deleted file mode 100644 index 0ad74a2218..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1501.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1502.png b/TMessagesProj/src/emojis/twitter/emoji/0_1502.png deleted file mode 100644 index 3df32dda3e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1502.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1503.png b/TMessagesProj/src/emojis/twitter/emoji/0_1503.png deleted file mode 100644 index 385d43da53..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1503.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1504.png b/TMessagesProj/src/emojis/twitter/emoji/0_1504.png deleted file mode 100644 index 423664504e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1504.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1505.png b/TMessagesProj/src/emojis/twitter/emoji/0_1505.png deleted file mode 100644 index bfa90adc7e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1505.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1506.png b/TMessagesProj/src/emojis/twitter/emoji/0_1506.png deleted file mode 100644 index 54debe01e4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1506.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1507.png b/TMessagesProj/src/emojis/twitter/emoji/0_1507.png deleted file mode 100644 index 8cf949e813..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1507.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1508.png b/TMessagesProj/src/emojis/twitter/emoji/0_1508.png deleted file mode 100644 index 9f20c43b51..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1508.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1509.png b/TMessagesProj/src/emojis/twitter/emoji/0_1509.png deleted file mode 100644 index 2ee44e74c6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1509.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_151.png b/TMessagesProj/src/emojis/twitter/emoji/0_151.png deleted file mode 100644 index 5b726361fe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1510.png b/TMessagesProj/src/emojis/twitter/emoji/0_1510.png deleted file mode 100644 index 8c7108fcdb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1510.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1511.png b/TMessagesProj/src/emojis/twitter/emoji/0_1511.png deleted file mode 100644 index 81a3f809cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1511.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1512.png b/TMessagesProj/src/emojis/twitter/emoji/0_1512.png deleted file mode 100644 index d39350ca8c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1512.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1513.png b/TMessagesProj/src/emojis/twitter/emoji/0_1513.png deleted file mode 100644 index 487046175a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1513.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1514.png b/TMessagesProj/src/emojis/twitter/emoji/0_1514.png deleted file mode 100644 index 8a59d33b17..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1514.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1515.png b/TMessagesProj/src/emojis/twitter/emoji/0_1515.png deleted file mode 100644 index 51980f4667..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1515.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1516.png b/TMessagesProj/src/emojis/twitter/emoji/0_1516.png deleted file mode 100644 index 82644fa878..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1516.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1517.png b/TMessagesProj/src/emojis/twitter/emoji/0_1517.png deleted file mode 100644 index 2294a7beae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1517.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1518.png b/TMessagesProj/src/emojis/twitter/emoji/0_1518.png deleted file mode 100644 index 715e49fac9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1518.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1519.png b/TMessagesProj/src/emojis/twitter/emoji/0_1519.png deleted file mode 100644 index be3a75ad4e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1519.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_152.png b/TMessagesProj/src/emojis/twitter/emoji/0_152.png deleted file mode 100644 index 384d32d532..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1520.png b/TMessagesProj/src/emojis/twitter/emoji/0_1520.png deleted file mode 100644 index 16993e6d98..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1520.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1521.png b/TMessagesProj/src/emojis/twitter/emoji/0_1521.png deleted file mode 100644 index 4ed279a0df..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1521.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1522.png b/TMessagesProj/src/emojis/twitter/emoji/0_1522.png deleted file mode 100644 index 37b8e2f583..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1522.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1523.png b/TMessagesProj/src/emojis/twitter/emoji/0_1523.png deleted file mode 100644 index b4761994ef..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1523.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1524.png b/TMessagesProj/src/emojis/twitter/emoji/0_1524.png deleted file mode 100644 index 822229a1c1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1524.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1525.png b/TMessagesProj/src/emojis/twitter/emoji/0_1525.png deleted file mode 100644 index 9cc9f42a2d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1525.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1526.png b/TMessagesProj/src/emojis/twitter/emoji/0_1526.png deleted file mode 100644 index 55a6821fb9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1526.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1527.png b/TMessagesProj/src/emojis/twitter/emoji/0_1527.png deleted file mode 100644 index 63aa7efd55..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1527.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1528.png b/TMessagesProj/src/emojis/twitter/emoji/0_1528.png deleted file mode 100644 index 55e8a35f77..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1528.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1529.png b/TMessagesProj/src/emojis/twitter/emoji/0_1529.png deleted file mode 100644 index a344911826..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1529.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_153.png b/TMessagesProj/src/emojis/twitter/emoji/0_153.png deleted file mode 100644 index 205a07916e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1530.png b/TMessagesProj/src/emojis/twitter/emoji/0_1530.png deleted file mode 100644 index 855167c119..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1530.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1531.png b/TMessagesProj/src/emojis/twitter/emoji/0_1531.png deleted file mode 100644 index b7d7181eb6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1531.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1532.png b/TMessagesProj/src/emojis/twitter/emoji/0_1532.png deleted file mode 100644 index 29bbb50c8b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1532.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1533.png b/TMessagesProj/src/emojis/twitter/emoji/0_1533.png deleted file mode 100644 index 084510e690..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1533.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1534.png b/TMessagesProj/src/emojis/twitter/emoji/0_1534.png deleted file mode 100644 index 04298ba57c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1534.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1535.png b/TMessagesProj/src/emojis/twitter/emoji/0_1535.png deleted file mode 100644 index 4ae9a3c02f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1535.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1536.png b/TMessagesProj/src/emojis/twitter/emoji/0_1536.png deleted file mode 100644 index 53716c8f19..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1536.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1537.png b/TMessagesProj/src/emojis/twitter/emoji/0_1537.png deleted file mode 100644 index 744dd86a71..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1537.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1538.png b/TMessagesProj/src/emojis/twitter/emoji/0_1538.png deleted file mode 100644 index b951b15792..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1538.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1539.png b/TMessagesProj/src/emojis/twitter/emoji/0_1539.png deleted file mode 100644 index c2c8fafa02..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1539.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_154.png b/TMessagesProj/src/emojis/twitter/emoji/0_154.png deleted file mode 100644 index 0eb1b03e54..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1540.png b/TMessagesProj/src/emojis/twitter/emoji/0_1540.png deleted file mode 100644 index b39bef38ea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1540.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1541.png b/TMessagesProj/src/emojis/twitter/emoji/0_1541.png deleted file mode 100644 index e83aedda1a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1541.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1542.png b/TMessagesProj/src/emojis/twitter/emoji/0_1542.png deleted file mode 100644 index 2f0616487f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1542.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1543.png b/TMessagesProj/src/emojis/twitter/emoji/0_1543.png deleted file mode 100644 index 21b60a12eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1543.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1544.png b/TMessagesProj/src/emojis/twitter/emoji/0_1544.png deleted file mode 100644 index c80909d589..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1544.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1545.png b/TMessagesProj/src/emojis/twitter/emoji/0_1545.png deleted file mode 100644 index 34930f074c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1545.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1546.png b/TMessagesProj/src/emojis/twitter/emoji/0_1546.png deleted file mode 100644 index 74ce75cd96..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1546.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1547.png b/TMessagesProj/src/emojis/twitter/emoji/0_1547.png deleted file mode 100644 index 22547ff7a9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1547.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1548.png b/TMessagesProj/src/emojis/twitter/emoji/0_1548.png deleted file mode 100644 index 3ba8da972c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1548.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1549.png b/TMessagesProj/src/emojis/twitter/emoji/0_1549.png deleted file mode 100644 index bce1d531d8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1549.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_155.png b/TMessagesProj/src/emojis/twitter/emoji/0_155.png deleted file mode 100644 index 5df55e1c2f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1550.png b/TMessagesProj/src/emojis/twitter/emoji/0_1550.png deleted file mode 100644 index fbaf8abf4f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1550.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1551.png b/TMessagesProj/src/emojis/twitter/emoji/0_1551.png deleted file mode 100644 index e7be13de97..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1551.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1552.png b/TMessagesProj/src/emojis/twitter/emoji/0_1552.png deleted file mode 100644 index 8c5e167f66..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1552.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1553.png b/TMessagesProj/src/emojis/twitter/emoji/0_1553.png deleted file mode 100644 index 4008447b89..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1553.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1554.png b/TMessagesProj/src/emojis/twitter/emoji/0_1554.png deleted file mode 100644 index a257e36f94..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1554.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1555.png b/TMessagesProj/src/emojis/twitter/emoji/0_1555.png deleted file mode 100644 index 9db2dc7a2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1555.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1556.png b/TMessagesProj/src/emojis/twitter/emoji/0_1556.png deleted file mode 100644 index 71c182aa76..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1556.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1557.png b/TMessagesProj/src/emojis/twitter/emoji/0_1557.png deleted file mode 100644 index 13a8f01a2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1557.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1558.png b/TMessagesProj/src/emojis/twitter/emoji/0_1558.png deleted file mode 100644 index eec5af3311..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1558.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1559.png b/TMessagesProj/src/emojis/twitter/emoji/0_1559.png deleted file mode 100644 index dc9f2c3260..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1559.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_156.png b/TMessagesProj/src/emojis/twitter/emoji/0_156.png deleted file mode 100644 index 2e103013e5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1560.png b/TMessagesProj/src/emojis/twitter/emoji/0_1560.png deleted file mode 100644 index cc0074949a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1560.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1561.png b/TMessagesProj/src/emojis/twitter/emoji/0_1561.png deleted file mode 100644 index 4f4c15ab54..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1561.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1562.png b/TMessagesProj/src/emojis/twitter/emoji/0_1562.png deleted file mode 100644 index 7d434ae4fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1562.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1563.png b/TMessagesProj/src/emojis/twitter/emoji/0_1563.png deleted file mode 100644 index 94c8740fe9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1563.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1564.png b/TMessagesProj/src/emojis/twitter/emoji/0_1564.png deleted file mode 100644 index ea2d9082c2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1564.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1565.png b/TMessagesProj/src/emojis/twitter/emoji/0_1565.png deleted file mode 100644 index 14f9b4f047..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1565.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1566.png b/TMessagesProj/src/emojis/twitter/emoji/0_1566.png deleted file mode 100644 index da9f2560dc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1566.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1567.png b/TMessagesProj/src/emojis/twitter/emoji/0_1567.png deleted file mode 100644 index c3f6a5e0b6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1567.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1568.png b/TMessagesProj/src/emojis/twitter/emoji/0_1568.png deleted file mode 100644 index f485948891..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1568.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1569.png b/TMessagesProj/src/emojis/twitter/emoji/0_1569.png deleted file mode 100644 index a9b82ada26..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1569.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_157.png b/TMessagesProj/src/emojis/twitter/emoji/0_157.png deleted file mode 100644 index ae103a3607..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1570.png b/TMessagesProj/src/emojis/twitter/emoji/0_1570.png deleted file mode 100644 index de8dd1a00f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1570.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1571.png b/TMessagesProj/src/emojis/twitter/emoji/0_1571.png deleted file mode 100644 index 3957a3469a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1571.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1572.png b/TMessagesProj/src/emojis/twitter/emoji/0_1572.png deleted file mode 100644 index 4e2cc7b73a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1572.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1573.png b/TMessagesProj/src/emojis/twitter/emoji/0_1573.png deleted file mode 100644 index 008a9ded6f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1573.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1574.png b/TMessagesProj/src/emojis/twitter/emoji/0_1574.png deleted file mode 100644 index bca24bc7d6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1574.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1575.png b/TMessagesProj/src/emojis/twitter/emoji/0_1575.png deleted file mode 100644 index ea8d835838..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1575.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1576.png b/TMessagesProj/src/emojis/twitter/emoji/0_1576.png deleted file mode 100644 index f88a6728b4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1576.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1577.png b/TMessagesProj/src/emojis/twitter/emoji/0_1577.png deleted file mode 100644 index a7ed38740a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1577.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1578.png b/TMessagesProj/src/emojis/twitter/emoji/0_1578.png deleted file mode 100644 index cc20a4dce5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1578.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1579.png b/TMessagesProj/src/emojis/twitter/emoji/0_1579.png deleted file mode 100644 index d65272df20..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1579.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_158.png b/TMessagesProj/src/emojis/twitter/emoji/0_158.png deleted file mode 100644 index ebb0bb4b6e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1580.png b/TMessagesProj/src/emojis/twitter/emoji/0_1580.png deleted file mode 100644 index fc3a0b26db..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1580.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1581.png b/TMessagesProj/src/emojis/twitter/emoji/0_1581.png deleted file mode 100644 index ae5f9a123f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1581.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1582.png b/TMessagesProj/src/emojis/twitter/emoji/0_1582.png deleted file mode 100644 index d15bf8cd10..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1582.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1583.png b/TMessagesProj/src/emojis/twitter/emoji/0_1583.png deleted file mode 100644 index 6c8374b670..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1583.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1584.png b/TMessagesProj/src/emojis/twitter/emoji/0_1584.png deleted file mode 100644 index 169a9c1ad9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1584.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1585.png b/TMessagesProj/src/emojis/twitter/emoji/0_1585.png deleted file mode 100644 index 98ec87a0ed..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1585.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1586.png b/TMessagesProj/src/emojis/twitter/emoji/0_1586.png deleted file mode 100644 index 095736dd9a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1586.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1587.png b/TMessagesProj/src/emojis/twitter/emoji/0_1587.png deleted file mode 100644 index 1594155dc5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1587.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1588.png b/TMessagesProj/src/emojis/twitter/emoji/0_1588.png deleted file mode 100644 index 8aaa0b2233..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1588.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1589.png b/TMessagesProj/src/emojis/twitter/emoji/0_1589.png deleted file mode 100644 index 548123dc2d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1589.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_159.png b/TMessagesProj/src/emojis/twitter/emoji/0_159.png deleted file mode 100644 index 39cc344cbe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1590.png b/TMessagesProj/src/emojis/twitter/emoji/0_1590.png deleted file mode 100644 index 423fb21fec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1590.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1591.png b/TMessagesProj/src/emojis/twitter/emoji/0_1591.png deleted file mode 100644 index bf5d717f37..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1591.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1592.png b/TMessagesProj/src/emojis/twitter/emoji/0_1592.png deleted file mode 100644 index f81463ef47..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1592.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1593.png b/TMessagesProj/src/emojis/twitter/emoji/0_1593.png deleted file mode 100644 index 1243af6abd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1593.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1594.png b/TMessagesProj/src/emojis/twitter/emoji/0_1594.png deleted file mode 100644 index 4bacdb72c6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1594.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1595.png b/TMessagesProj/src/emojis/twitter/emoji/0_1595.png deleted file mode 100644 index 596a8692ab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1595.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1596.png b/TMessagesProj/src/emojis/twitter/emoji/0_1596.png deleted file mode 100644 index acdca703db..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1596.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1597.png b/TMessagesProj/src/emojis/twitter/emoji/0_1597.png deleted file mode 100644 index 975102e78c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1597.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1598.png b/TMessagesProj/src/emojis/twitter/emoji/0_1598.png deleted file mode 100644 index b8169f4df2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1598.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1599.png b/TMessagesProj/src/emojis/twitter/emoji/0_1599.png deleted file mode 100644 index 1dbb043321..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1599.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_16.png b/TMessagesProj/src/emojis/twitter/emoji/0_16.png deleted file mode 100644 index faa629641c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_160.png b/TMessagesProj/src/emojis/twitter/emoji/0_160.png deleted file mode 100644 index 6ae1b49990..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1600.png b/TMessagesProj/src/emojis/twitter/emoji/0_1600.png deleted file mode 100644 index 10e050f191..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1600.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1601.png b/TMessagesProj/src/emojis/twitter/emoji/0_1601.png deleted file mode 100644 index e4657a0e4a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1601.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1602.png b/TMessagesProj/src/emojis/twitter/emoji/0_1602.png deleted file mode 100644 index 183bdf9d05..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1602.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1603.png b/TMessagesProj/src/emojis/twitter/emoji/0_1603.png deleted file mode 100644 index 0c0c326818..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1603.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1604.png b/TMessagesProj/src/emojis/twitter/emoji/0_1604.png deleted file mode 100644 index c1b5af2359..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1604.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1605.png b/TMessagesProj/src/emojis/twitter/emoji/0_1605.png deleted file mode 100644 index 0fc363f2cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1605.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1606.png b/TMessagesProj/src/emojis/twitter/emoji/0_1606.png deleted file mode 100644 index f537970579..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1606.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1607.png b/TMessagesProj/src/emojis/twitter/emoji/0_1607.png deleted file mode 100644 index 47e865fddb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1607.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1608.png b/TMessagesProj/src/emojis/twitter/emoji/0_1608.png deleted file mode 100644 index 8008902fe5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1608.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1609.png b/TMessagesProj/src/emojis/twitter/emoji/0_1609.png deleted file mode 100644 index 33da41f0a8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1609.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_161.png b/TMessagesProj/src/emojis/twitter/emoji/0_161.png deleted file mode 100644 index 51ea7bfdbf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1610.png b/TMessagesProj/src/emojis/twitter/emoji/0_1610.png deleted file mode 100644 index e6e90d34ec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1610.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1611.png b/TMessagesProj/src/emojis/twitter/emoji/0_1611.png deleted file mode 100644 index 685124e791..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1611.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1612.png b/TMessagesProj/src/emojis/twitter/emoji/0_1612.png deleted file mode 100644 index b6419596ac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1612.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1613.png b/TMessagesProj/src/emojis/twitter/emoji/0_1613.png deleted file mode 100644 index cb6e34993d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1613.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1614.png b/TMessagesProj/src/emojis/twitter/emoji/0_1614.png deleted file mode 100644 index 564613f8cc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1614.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1615.png b/TMessagesProj/src/emojis/twitter/emoji/0_1615.png deleted file mode 100644 index 4e81e82b19..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1615.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1616.png b/TMessagesProj/src/emojis/twitter/emoji/0_1616.png deleted file mode 100644 index eb8c31b6b6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1616.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1617.png b/TMessagesProj/src/emojis/twitter/emoji/0_1617.png deleted file mode 100644 index 155c7e365f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1617.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1618.png b/TMessagesProj/src/emojis/twitter/emoji/0_1618.png deleted file mode 100644 index 0cc23fde50..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1618.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1619.png b/TMessagesProj/src/emojis/twitter/emoji/0_1619.png deleted file mode 100644 index d9c7c03152..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1619.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_162.png b/TMessagesProj/src/emojis/twitter/emoji/0_162.png deleted file mode 100644 index 9fd8e7d73b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1620.png b/TMessagesProj/src/emojis/twitter/emoji/0_1620.png deleted file mode 100644 index 763af9c6de..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1620.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1621.png b/TMessagesProj/src/emojis/twitter/emoji/0_1621.png deleted file mode 100644 index 49eaf62200..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1621.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1622.png b/TMessagesProj/src/emojis/twitter/emoji/0_1622.png deleted file mode 100644 index 1935171c5a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1622.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1623.png b/TMessagesProj/src/emojis/twitter/emoji/0_1623.png deleted file mode 100644 index f323fdaa33..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1623.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1624.png b/TMessagesProj/src/emojis/twitter/emoji/0_1624.png deleted file mode 100644 index 3aaf500601..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1624.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1625.png b/TMessagesProj/src/emojis/twitter/emoji/0_1625.png deleted file mode 100644 index d7c0317b52..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1625.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1626.png b/TMessagesProj/src/emojis/twitter/emoji/0_1626.png deleted file mode 100644 index 301a90e543..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1626.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1627.png b/TMessagesProj/src/emojis/twitter/emoji/0_1627.png deleted file mode 100644 index 894ec1fe97..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1627.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1628.png b/TMessagesProj/src/emojis/twitter/emoji/0_1628.png deleted file mode 100644 index d90d980abc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1628.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1629.png b/TMessagesProj/src/emojis/twitter/emoji/0_1629.png deleted file mode 100644 index 036c981224..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1629.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_163.png b/TMessagesProj/src/emojis/twitter/emoji/0_163.png deleted file mode 100644 index 36653e7481..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1630.png b/TMessagesProj/src/emojis/twitter/emoji/0_1630.png deleted file mode 100644 index bf8884f57e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1630.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1631.png b/TMessagesProj/src/emojis/twitter/emoji/0_1631.png deleted file mode 100644 index e4023fff8a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1631.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1632.png b/TMessagesProj/src/emojis/twitter/emoji/0_1632.png deleted file mode 100644 index 7cd108478a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1632.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1633.png b/TMessagesProj/src/emojis/twitter/emoji/0_1633.png deleted file mode 100644 index 042151c35f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1633.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1634.png b/TMessagesProj/src/emojis/twitter/emoji/0_1634.png deleted file mode 100644 index 12a7150ff4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1634.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1635.png b/TMessagesProj/src/emojis/twitter/emoji/0_1635.png deleted file mode 100644 index 5248657b2a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1635.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1636.png b/TMessagesProj/src/emojis/twitter/emoji/0_1636.png deleted file mode 100644 index b57198ffa3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1636.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1637.png b/TMessagesProj/src/emojis/twitter/emoji/0_1637.png deleted file mode 100644 index 045cd21a62..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1637.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1638.png b/TMessagesProj/src/emojis/twitter/emoji/0_1638.png deleted file mode 100644 index 8a4bb211b6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1638.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1639.png b/TMessagesProj/src/emojis/twitter/emoji/0_1639.png deleted file mode 100644 index 80b046ddd1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1639.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_164.png b/TMessagesProj/src/emojis/twitter/emoji/0_164.png deleted file mode 100644 index 90c2599d22..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1640.png b/TMessagesProj/src/emojis/twitter/emoji/0_1640.png deleted file mode 100644 index bcd3634881..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1640.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1641.png b/TMessagesProj/src/emojis/twitter/emoji/0_1641.png deleted file mode 100644 index c54b53365f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1641.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1642.png b/TMessagesProj/src/emojis/twitter/emoji/0_1642.png deleted file mode 100644 index 090bf2b970..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1642.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1643.png b/TMessagesProj/src/emojis/twitter/emoji/0_1643.png deleted file mode 100644 index bac4ac059e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1643.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1644.png b/TMessagesProj/src/emojis/twitter/emoji/0_1644.png deleted file mode 100644 index ce23fb10db..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1644.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1645.png b/TMessagesProj/src/emojis/twitter/emoji/0_1645.png deleted file mode 100644 index cc8a937dbd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1645.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1646.png b/TMessagesProj/src/emojis/twitter/emoji/0_1646.png deleted file mode 100644 index 8f68be62ad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1646.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1647.png b/TMessagesProj/src/emojis/twitter/emoji/0_1647.png deleted file mode 100644 index 168f3006e2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1647.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1648.png b/TMessagesProj/src/emojis/twitter/emoji/0_1648.png deleted file mode 100644 index 71a2c72b6b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1648.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1649.png b/TMessagesProj/src/emojis/twitter/emoji/0_1649.png deleted file mode 100644 index 76594d8988..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1649.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_165.png b/TMessagesProj/src/emojis/twitter/emoji/0_165.png deleted file mode 100644 index 44909fdbeb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1650.png b/TMessagesProj/src/emojis/twitter/emoji/0_1650.png deleted file mode 100644 index 5e33ba6139..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1650.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1651.png b/TMessagesProj/src/emojis/twitter/emoji/0_1651.png deleted file mode 100644 index 101b84bb3e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1651.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1652.png b/TMessagesProj/src/emojis/twitter/emoji/0_1652.png deleted file mode 100644 index d395065604..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1652.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1653.png b/TMessagesProj/src/emojis/twitter/emoji/0_1653.png deleted file mode 100644 index 62abe1548b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1653.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1654.png b/TMessagesProj/src/emojis/twitter/emoji/0_1654.png deleted file mode 100644 index 35caa7fa2a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1654.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1655.png b/TMessagesProj/src/emojis/twitter/emoji/0_1655.png deleted file mode 100644 index c8fb87b331..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1655.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1656.png b/TMessagesProj/src/emojis/twitter/emoji/0_1656.png deleted file mode 100644 index 565c5973cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1656.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1657.png b/TMessagesProj/src/emojis/twitter/emoji/0_1657.png deleted file mode 100644 index 56a64f05fe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1657.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1658.png b/TMessagesProj/src/emojis/twitter/emoji/0_1658.png deleted file mode 100644 index e2d710cf15..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1658.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1659.png b/TMessagesProj/src/emojis/twitter/emoji/0_1659.png deleted file mode 100644 index f7c3e24369..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1659.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_166.png b/TMessagesProj/src/emojis/twitter/emoji/0_166.png deleted file mode 100644 index a4b2caecec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1660.png b/TMessagesProj/src/emojis/twitter/emoji/0_1660.png deleted file mode 100644 index 0ae867be51..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1660.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1661.png b/TMessagesProj/src/emojis/twitter/emoji/0_1661.png deleted file mode 100644 index 6045437459..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1661.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1662.png b/TMessagesProj/src/emojis/twitter/emoji/0_1662.png deleted file mode 100644 index 1ac0e0c051..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1662.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1663.png b/TMessagesProj/src/emojis/twitter/emoji/0_1663.png deleted file mode 100644 index 6a444d3c78..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1663.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1664.png b/TMessagesProj/src/emojis/twitter/emoji/0_1664.png deleted file mode 100644 index 7efb6664be..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1664.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1665.png b/TMessagesProj/src/emojis/twitter/emoji/0_1665.png deleted file mode 100644 index 0e37085031..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1665.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1666.png b/TMessagesProj/src/emojis/twitter/emoji/0_1666.png deleted file mode 100644 index ffcfc07ecc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1666.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1667.png b/TMessagesProj/src/emojis/twitter/emoji/0_1667.png deleted file mode 100644 index 591b981818..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1667.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1668.png b/TMessagesProj/src/emojis/twitter/emoji/0_1668.png deleted file mode 100644 index 154b66e2a2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1668.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1669.png b/TMessagesProj/src/emojis/twitter/emoji/0_1669.png deleted file mode 100644 index 4779904eb5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1669.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_167.png b/TMessagesProj/src/emojis/twitter/emoji/0_167.png deleted file mode 100644 index 4c43956d5b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1670.png b/TMessagesProj/src/emojis/twitter/emoji/0_1670.png deleted file mode 100644 index 47e6e3a74d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1670.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1671.png b/TMessagesProj/src/emojis/twitter/emoji/0_1671.png deleted file mode 100644 index da7c19aabe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1671.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1672.png b/TMessagesProj/src/emojis/twitter/emoji/0_1672.png deleted file mode 100644 index 1ec8e181ea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1672.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1673.png b/TMessagesProj/src/emojis/twitter/emoji/0_1673.png deleted file mode 100644 index 9841f1b8a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1673.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1674.png b/TMessagesProj/src/emojis/twitter/emoji/0_1674.png deleted file mode 100644 index 7f58c095f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1674.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1675.png b/TMessagesProj/src/emojis/twitter/emoji/0_1675.png deleted file mode 100644 index 0c8f79d828..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1675.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1676.png b/TMessagesProj/src/emojis/twitter/emoji/0_1676.png deleted file mode 100644 index 5fd7beaecb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1676.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1677.png b/TMessagesProj/src/emojis/twitter/emoji/0_1677.png deleted file mode 100644 index 9f900e9059..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1677.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1678.png b/TMessagesProj/src/emojis/twitter/emoji/0_1678.png deleted file mode 100644 index 9bd1783092..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1678.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1679.png b/TMessagesProj/src/emojis/twitter/emoji/0_1679.png deleted file mode 100644 index 77427f0a4a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1679.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_168.png b/TMessagesProj/src/emojis/twitter/emoji/0_168.png deleted file mode 100644 index 43ca7ee529..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1680.png b/TMessagesProj/src/emojis/twitter/emoji/0_1680.png deleted file mode 100644 index d34435a3ed..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1680.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1681.png b/TMessagesProj/src/emojis/twitter/emoji/0_1681.png deleted file mode 100644 index 6a884860ea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1681.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1682.png b/TMessagesProj/src/emojis/twitter/emoji/0_1682.png deleted file mode 100644 index acbcb17c2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1682.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1683.png b/TMessagesProj/src/emojis/twitter/emoji/0_1683.png deleted file mode 100644 index cfcfaa9e66..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1683.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1684.png b/TMessagesProj/src/emojis/twitter/emoji/0_1684.png deleted file mode 100644 index 6ff9915f86..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1684.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1685.png b/TMessagesProj/src/emojis/twitter/emoji/0_1685.png deleted file mode 100644 index ae33cd8ae7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1685.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1686.png b/TMessagesProj/src/emojis/twitter/emoji/0_1686.png deleted file mode 100644 index b15b889e53..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1686.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1687.png b/TMessagesProj/src/emojis/twitter/emoji/0_1687.png deleted file mode 100644 index 932b9cdc54..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1687.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1688.png b/TMessagesProj/src/emojis/twitter/emoji/0_1688.png deleted file mode 100644 index 1805e481d2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1688.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1689.png b/TMessagesProj/src/emojis/twitter/emoji/0_1689.png deleted file mode 100644 index fc8961f16a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1689.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_169.png b/TMessagesProj/src/emojis/twitter/emoji/0_169.png deleted file mode 100644 index 19b693364d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1690.png b/TMessagesProj/src/emojis/twitter/emoji/0_1690.png deleted file mode 100644 index 80130270db..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1690.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1691.png b/TMessagesProj/src/emojis/twitter/emoji/0_1691.png deleted file mode 100644 index 86d84649a7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1691.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1692.png b/TMessagesProj/src/emojis/twitter/emoji/0_1692.png deleted file mode 100644 index 7b115f1354..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1692.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1693.png b/TMessagesProj/src/emojis/twitter/emoji/0_1693.png deleted file mode 100644 index fb99b775f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1693.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1694.png b/TMessagesProj/src/emojis/twitter/emoji/0_1694.png deleted file mode 100644 index 4a0e0e76d7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1694.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1695.png b/TMessagesProj/src/emojis/twitter/emoji/0_1695.png deleted file mode 100644 index ac2820ac93..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1695.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1696.png b/TMessagesProj/src/emojis/twitter/emoji/0_1696.png deleted file mode 100644 index 78c0a3ec29..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1696.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1697.png b/TMessagesProj/src/emojis/twitter/emoji/0_1697.png deleted file mode 100644 index 00e4c6d8e3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1697.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1698.png b/TMessagesProj/src/emojis/twitter/emoji/0_1698.png deleted file mode 100644 index a6f606010f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1698.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1699.png b/TMessagesProj/src/emojis/twitter/emoji/0_1699.png deleted file mode 100644 index 9f684e81eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1699.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_17.png b/TMessagesProj/src/emojis/twitter/emoji/0_17.png deleted file mode 100644 index 34431c81c9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_170.png b/TMessagesProj/src/emojis/twitter/emoji/0_170.png deleted file mode 100644 index a76d7078e3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1700.png b/TMessagesProj/src/emojis/twitter/emoji/0_1700.png deleted file mode 100644 index 5842d5a5ce..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1700.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1701.png b/TMessagesProj/src/emojis/twitter/emoji/0_1701.png deleted file mode 100644 index a196845b15..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1701.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1702.png b/TMessagesProj/src/emojis/twitter/emoji/0_1702.png deleted file mode 100644 index cf17c9e9d4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1702.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1703.png b/TMessagesProj/src/emojis/twitter/emoji/0_1703.png deleted file mode 100644 index 0d586c2db6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1703.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1704.png b/TMessagesProj/src/emojis/twitter/emoji/0_1704.png deleted file mode 100644 index d8c314a257..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1704.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1705.png b/TMessagesProj/src/emojis/twitter/emoji/0_1705.png deleted file mode 100644 index ef3df5222b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1705.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1706.png b/TMessagesProj/src/emojis/twitter/emoji/0_1706.png deleted file mode 100644 index 0f71194687..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1706.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1707.png b/TMessagesProj/src/emojis/twitter/emoji/0_1707.png deleted file mode 100644 index 558fc10607..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1707.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1708.png b/TMessagesProj/src/emojis/twitter/emoji/0_1708.png deleted file mode 100644 index c8bc3731ec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1708.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1709.png b/TMessagesProj/src/emojis/twitter/emoji/0_1709.png deleted file mode 100644 index 8ad77e22ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1709.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_171.png b/TMessagesProj/src/emojis/twitter/emoji/0_171.png deleted file mode 100644 index 444b72909c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1710.png b/TMessagesProj/src/emojis/twitter/emoji/0_1710.png deleted file mode 100644 index cff0f190dc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1710.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1711.png b/TMessagesProj/src/emojis/twitter/emoji/0_1711.png deleted file mode 100644 index 554c03d33f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1711.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1712.png b/TMessagesProj/src/emojis/twitter/emoji/0_1712.png deleted file mode 100644 index 7f8ff6e666..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1712.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1713.png b/TMessagesProj/src/emojis/twitter/emoji/0_1713.png deleted file mode 100644 index c32dc39064..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1713.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1714.png b/TMessagesProj/src/emojis/twitter/emoji/0_1714.png deleted file mode 100644 index 7d1a556365..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1714.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1715.png b/TMessagesProj/src/emojis/twitter/emoji/0_1715.png deleted file mode 100644 index 21207f8b30..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1715.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1716.png b/TMessagesProj/src/emojis/twitter/emoji/0_1716.png deleted file mode 100644 index 71fd1bb9cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1716.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1717.png b/TMessagesProj/src/emojis/twitter/emoji/0_1717.png deleted file mode 100644 index a2c90f3d2d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1717.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1718.png b/TMessagesProj/src/emojis/twitter/emoji/0_1718.png deleted file mode 100644 index 4c2e4c8b00..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1718.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1719.png b/TMessagesProj/src/emojis/twitter/emoji/0_1719.png deleted file mode 100644 index 8235389a8f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1719.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_172.png b/TMessagesProj/src/emojis/twitter/emoji/0_172.png deleted file mode 100644 index dcfd1ab771..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1720.png b/TMessagesProj/src/emojis/twitter/emoji/0_1720.png deleted file mode 100644 index 8b3e000d43..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1720.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1721.png b/TMessagesProj/src/emojis/twitter/emoji/0_1721.png deleted file mode 100644 index 891c0cfcc7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1721.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1722.png b/TMessagesProj/src/emojis/twitter/emoji/0_1722.png deleted file mode 100644 index 7eea579249..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1722.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1723.png b/TMessagesProj/src/emojis/twitter/emoji/0_1723.png deleted file mode 100644 index 9455e2e71d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1723.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1724.png b/TMessagesProj/src/emojis/twitter/emoji/0_1724.png deleted file mode 100644 index 937b59cb1d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1724.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1725.png b/TMessagesProj/src/emojis/twitter/emoji/0_1725.png deleted file mode 100644 index 0a59d6d66b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1725.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1726.png b/TMessagesProj/src/emojis/twitter/emoji/0_1726.png deleted file mode 100644 index 9d0653a59a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1726.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1727.png b/TMessagesProj/src/emojis/twitter/emoji/0_1727.png deleted file mode 100644 index 3744bf157c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1727.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1728.png b/TMessagesProj/src/emojis/twitter/emoji/0_1728.png deleted file mode 100644 index 533a878cb1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1728.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1729.png b/TMessagesProj/src/emojis/twitter/emoji/0_1729.png deleted file mode 100644 index 968f2eb8ab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1729.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_173.png b/TMessagesProj/src/emojis/twitter/emoji/0_173.png deleted file mode 100644 index 4f40e5f218..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1730.png b/TMessagesProj/src/emojis/twitter/emoji/0_1730.png deleted file mode 100644 index 93c39da185..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1730.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1731.png b/TMessagesProj/src/emojis/twitter/emoji/0_1731.png deleted file mode 100644 index df17fc7892..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1731.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1732.png b/TMessagesProj/src/emojis/twitter/emoji/0_1732.png deleted file mode 100644 index 2f0fde55c6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1732.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1733.png b/TMessagesProj/src/emojis/twitter/emoji/0_1733.png deleted file mode 100644 index ba5c3e5e14..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1733.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1734.png b/TMessagesProj/src/emojis/twitter/emoji/0_1734.png deleted file mode 100644 index 378d8b249c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1734.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1735.png b/TMessagesProj/src/emojis/twitter/emoji/0_1735.png deleted file mode 100644 index 74599b9db1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1735.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1736.png b/TMessagesProj/src/emojis/twitter/emoji/0_1736.png deleted file mode 100644 index f82992f24d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1736.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1737.png b/TMessagesProj/src/emojis/twitter/emoji/0_1737.png deleted file mode 100644 index 03df4c1415..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1737.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1738.png b/TMessagesProj/src/emojis/twitter/emoji/0_1738.png deleted file mode 100644 index e0ec3f0628..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1738.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1739.png b/TMessagesProj/src/emojis/twitter/emoji/0_1739.png deleted file mode 100644 index 1845ae81bb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1739.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_174.png b/TMessagesProj/src/emojis/twitter/emoji/0_174.png deleted file mode 100644 index b116c3421a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1740.png b/TMessagesProj/src/emojis/twitter/emoji/0_1740.png deleted file mode 100644 index 3200f7284d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1740.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1741.png b/TMessagesProj/src/emojis/twitter/emoji/0_1741.png deleted file mode 100644 index 1e4d1e894c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1741.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1742.png b/TMessagesProj/src/emojis/twitter/emoji/0_1742.png deleted file mode 100644 index 3d86bdacb8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1742.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1743.png b/TMessagesProj/src/emojis/twitter/emoji/0_1743.png deleted file mode 100644 index 36e87d4429..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1743.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1744.png b/TMessagesProj/src/emojis/twitter/emoji/0_1744.png deleted file mode 100644 index 67a9ef053a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1744.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1745.png b/TMessagesProj/src/emojis/twitter/emoji/0_1745.png deleted file mode 100644 index ede49b79b2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1745.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1746.png b/TMessagesProj/src/emojis/twitter/emoji/0_1746.png deleted file mode 100644 index 831c7f68b5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1746.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1747.png b/TMessagesProj/src/emojis/twitter/emoji/0_1747.png deleted file mode 100644 index cfc5c4394b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1747.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1748.png b/TMessagesProj/src/emojis/twitter/emoji/0_1748.png deleted file mode 100644 index c646e7b9ee..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1748.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1749.png b/TMessagesProj/src/emojis/twitter/emoji/0_1749.png deleted file mode 100644 index a893591efc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1749.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_175.png b/TMessagesProj/src/emojis/twitter/emoji/0_175.png deleted file mode 100644 index d9b9d06639..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1750.png b/TMessagesProj/src/emojis/twitter/emoji/0_1750.png deleted file mode 100644 index 8aeef17558..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1750.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1751.png b/TMessagesProj/src/emojis/twitter/emoji/0_1751.png deleted file mode 100644 index 071ca9a337..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1751.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1752.png b/TMessagesProj/src/emojis/twitter/emoji/0_1752.png deleted file mode 100644 index a6ee7d5dae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1752.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1753.png b/TMessagesProj/src/emojis/twitter/emoji/0_1753.png deleted file mode 100644 index 90c3fc34c4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1753.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1754.png b/TMessagesProj/src/emojis/twitter/emoji/0_1754.png deleted file mode 100644 index 6e124f2999..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1754.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1755.png b/TMessagesProj/src/emojis/twitter/emoji/0_1755.png deleted file mode 100644 index 15442dddc6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1755.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1756.png b/TMessagesProj/src/emojis/twitter/emoji/0_1756.png deleted file mode 100644 index e6a49c8b85..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1756.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1757.png b/TMessagesProj/src/emojis/twitter/emoji/0_1757.png deleted file mode 100644 index b8b161ceb6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1757.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1758.png b/TMessagesProj/src/emojis/twitter/emoji/0_1758.png deleted file mode 100644 index 80c5e9713f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1758.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1759.png b/TMessagesProj/src/emojis/twitter/emoji/0_1759.png deleted file mode 100644 index 7b4dde9fb0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1759.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_176.png b/TMessagesProj/src/emojis/twitter/emoji/0_176.png deleted file mode 100644 index 3ed7c5cd3d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1760.png b/TMessagesProj/src/emojis/twitter/emoji/0_1760.png deleted file mode 100644 index 124318e3ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1760.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1761.png b/TMessagesProj/src/emojis/twitter/emoji/0_1761.png deleted file mode 100644 index 570211fe90..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1761.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1762.png b/TMessagesProj/src/emojis/twitter/emoji/0_1762.png deleted file mode 100644 index 570211fe90..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1762.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1763.png b/TMessagesProj/src/emojis/twitter/emoji/0_1763.png deleted file mode 100644 index 509ec49c57..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1763.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1764.png b/TMessagesProj/src/emojis/twitter/emoji/0_1764.png deleted file mode 100644 index fdc5ea721b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1764.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1765.png b/TMessagesProj/src/emojis/twitter/emoji/0_1765.png deleted file mode 100644 index be749c9601..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1765.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1766.png b/TMessagesProj/src/emojis/twitter/emoji/0_1766.png deleted file mode 100644 index 320be3bfd4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1766.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1767.png b/TMessagesProj/src/emojis/twitter/emoji/0_1767.png deleted file mode 100644 index 320be3bfd4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1767.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1768.png b/TMessagesProj/src/emojis/twitter/emoji/0_1768.png deleted file mode 100644 index e9ce964cc5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1768.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1769.png b/TMessagesProj/src/emojis/twitter/emoji/0_1769.png deleted file mode 100644 index 95dcefb06f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1769.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_177.png b/TMessagesProj/src/emojis/twitter/emoji/0_177.png deleted file mode 100644 index 8257077295..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1770.png b/TMessagesProj/src/emojis/twitter/emoji/0_1770.png deleted file mode 100644 index 8ceba72ac0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1770.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1771.png b/TMessagesProj/src/emojis/twitter/emoji/0_1771.png deleted file mode 100644 index cfbc00ef54..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1771.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1772.png b/TMessagesProj/src/emojis/twitter/emoji/0_1772.png deleted file mode 100644 index f60be25c99..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1772.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1773.png b/TMessagesProj/src/emojis/twitter/emoji/0_1773.png deleted file mode 100644 index ad6a8fb501..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1773.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1774.png b/TMessagesProj/src/emojis/twitter/emoji/0_1774.png deleted file mode 100644 index ad6a8fb501..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1774.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1775.png b/TMessagesProj/src/emojis/twitter/emoji/0_1775.png deleted file mode 100644 index b6a7ecbc05..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1775.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1776.png b/TMessagesProj/src/emojis/twitter/emoji/0_1776.png deleted file mode 100644 index 39f8133fa3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1776.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1777.png b/TMessagesProj/src/emojis/twitter/emoji/0_1777.png deleted file mode 100644 index 31b29c4f29..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1777.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1778.png b/TMessagesProj/src/emojis/twitter/emoji/0_1778.png deleted file mode 100644 index 8c0ba3e691..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1778.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1779.png b/TMessagesProj/src/emojis/twitter/emoji/0_1779.png deleted file mode 100644 index 44b745c67c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1779.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_178.png b/TMessagesProj/src/emojis/twitter/emoji/0_178.png deleted file mode 100644 index 106a24a939..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1780.png b/TMessagesProj/src/emojis/twitter/emoji/0_1780.png deleted file mode 100644 index 44b745c67c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1780.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1781.png b/TMessagesProj/src/emojis/twitter/emoji/0_1781.png deleted file mode 100644 index 5a6a74f195..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1781.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1782.png b/TMessagesProj/src/emojis/twitter/emoji/0_1782.png deleted file mode 100644 index 851d8d1f6a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1782.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1783.png b/TMessagesProj/src/emojis/twitter/emoji/0_1783.png deleted file mode 100644 index e93ec808a4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1783.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1784.png b/TMessagesProj/src/emojis/twitter/emoji/0_1784.png deleted file mode 100644 index 3087b82b1d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1784.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1785.png b/TMessagesProj/src/emojis/twitter/emoji/0_1785.png deleted file mode 100644 index 3087b82b1d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1785.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1786.png b/TMessagesProj/src/emojis/twitter/emoji/0_1786.png deleted file mode 100644 index 0266022048..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1786.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1787.png b/TMessagesProj/src/emojis/twitter/emoji/0_1787.png deleted file mode 100644 index a464c860c5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1787.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1788.png b/TMessagesProj/src/emojis/twitter/emoji/0_1788.png deleted file mode 100644 index d4be9e980a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1788.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1789.png b/TMessagesProj/src/emojis/twitter/emoji/0_1789.png deleted file mode 100644 index 743208eac7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1789.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_179.png b/TMessagesProj/src/emojis/twitter/emoji/0_179.png deleted file mode 100644 index a42dcf14cd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1790.png b/TMessagesProj/src/emojis/twitter/emoji/0_1790.png deleted file mode 100644 index b412561eee..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1790.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1791.png b/TMessagesProj/src/emojis/twitter/emoji/0_1791.png deleted file mode 100644 index bbf0fcdc58..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1791.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1792.png b/TMessagesProj/src/emojis/twitter/emoji/0_1792.png deleted file mode 100644 index ef1d1ad6c7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1792.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1793.png b/TMessagesProj/src/emojis/twitter/emoji/0_1793.png deleted file mode 100644 index 41ff037618..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1793.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1794.png b/TMessagesProj/src/emojis/twitter/emoji/0_1794.png deleted file mode 100644 index 273b60fa0b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1794.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1795.png b/TMessagesProj/src/emojis/twitter/emoji/0_1795.png deleted file mode 100644 index e8c9a8b70e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1795.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1796.png b/TMessagesProj/src/emojis/twitter/emoji/0_1796.png deleted file mode 100644 index 0c5dbacafb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1796.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1797.png b/TMessagesProj/src/emojis/twitter/emoji/0_1797.png deleted file mode 100644 index 79b0dbc1f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1797.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1798.png b/TMessagesProj/src/emojis/twitter/emoji/0_1798.png deleted file mode 100644 index 4d1c396373..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1798.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1799.png b/TMessagesProj/src/emojis/twitter/emoji/0_1799.png deleted file mode 100644 index 4c4baef1d7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1799.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_18.png b/TMessagesProj/src/emojis/twitter/emoji/0_18.png deleted file mode 100644 index 59356916cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_180.png b/TMessagesProj/src/emojis/twitter/emoji/0_180.png deleted file mode 100644 index bb85c716f9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1800.png b/TMessagesProj/src/emojis/twitter/emoji/0_1800.png deleted file mode 100644 index 750c3bd382..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1800.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1801.png b/TMessagesProj/src/emojis/twitter/emoji/0_1801.png deleted file mode 100644 index fa1c74b11e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1801.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1802.png b/TMessagesProj/src/emojis/twitter/emoji/0_1802.png deleted file mode 100644 index 630688e26f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1802.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1803.png b/TMessagesProj/src/emojis/twitter/emoji/0_1803.png deleted file mode 100644 index 01f043e730..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1803.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1804.png b/TMessagesProj/src/emojis/twitter/emoji/0_1804.png deleted file mode 100644 index cd26e4bcde..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1804.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1805.png b/TMessagesProj/src/emojis/twitter/emoji/0_1805.png deleted file mode 100644 index f2fd4e9ede..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1805.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1806.png b/TMessagesProj/src/emojis/twitter/emoji/0_1806.png deleted file mode 100644 index e270115de4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1806.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1807.png b/TMessagesProj/src/emojis/twitter/emoji/0_1807.png deleted file mode 100644 index 821df7708c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1807.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1808.png b/TMessagesProj/src/emojis/twitter/emoji/0_1808.png deleted file mode 100644 index 0b344ead89..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1808.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1809.png b/TMessagesProj/src/emojis/twitter/emoji/0_1809.png deleted file mode 100644 index 9540f8b957..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1809.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_181.png b/TMessagesProj/src/emojis/twitter/emoji/0_181.png deleted file mode 100644 index 1d28de1ab7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1810.png b/TMessagesProj/src/emojis/twitter/emoji/0_1810.png deleted file mode 100644 index 83d81f85a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1810.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1811.png b/TMessagesProj/src/emojis/twitter/emoji/0_1811.png deleted file mode 100644 index cb0f23d66c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1811.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1812.png b/TMessagesProj/src/emojis/twitter/emoji/0_1812.png deleted file mode 100644 index e34f06a971..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1812.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1813.png b/TMessagesProj/src/emojis/twitter/emoji/0_1813.png deleted file mode 100644 index 94d16ef86a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1813.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1814.png b/TMessagesProj/src/emojis/twitter/emoji/0_1814.png deleted file mode 100644 index ac306eb1c8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1814.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1815.png b/TMessagesProj/src/emojis/twitter/emoji/0_1815.png deleted file mode 100644 index 7ae449edb1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1815.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1816.png b/TMessagesProj/src/emojis/twitter/emoji/0_1816.png deleted file mode 100644 index e783655628..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1816.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1817.png b/TMessagesProj/src/emojis/twitter/emoji/0_1817.png deleted file mode 100644 index dd8fc827d9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1817.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1818.png b/TMessagesProj/src/emojis/twitter/emoji/0_1818.png deleted file mode 100644 index 54b615251a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1818.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1819.png b/TMessagesProj/src/emojis/twitter/emoji/0_1819.png deleted file mode 100644 index de5cc9ad80..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1819.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_182.png b/TMessagesProj/src/emojis/twitter/emoji/0_182.png deleted file mode 100644 index b3cd38b6c3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1820.png b/TMessagesProj/src/emojis/twitter/emoji/0_1820.png deleted file mode 100644 index 1ef1d51547..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1820.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1821.png b/TMessagesProj/src/emojis/twitter/emoji/0_1821.png deleted file mode 100644 index b338a946ba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1821.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1822.png b/TMessagesProj/src/emojis/twitter/emoji/0_1822.png deleted file mode 100644 index d015060b03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1822.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1823.png b/TMessagesProj/src/emojis/twitter/emoji/0_1823.png deleted file mode 100644 index 9eeea8d873..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1823.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1824.png b/TMessagesProj/src/emojis/twitter/emoji/0_1824.png deleted file mode 100644 index 8a936f7881..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1824.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1825.png b/TMessagesProj/src/emojis/twitter/emoji/0_1825.png deleted file mode 100644 index 0a53229c85..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1825.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1826.png b/TMessagesProj/src/emojis/twitter/emoji/0_1826.png deleted file mode 100644 index 11a5e1c940..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1826.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1827.png b/TMessagesProj/src/emojis/twitter/emoji/0_1827.png deleted file mode 100644 index b79797b741..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1827.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1828.png b/TMessagesProj/src/emojis/twitter/emoji/0_1828.png deleted file mode 100644 index 1149286f52..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1828.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1829.png b/TMessagesProj/src/emojis/twitter/emoji/0_1829.png deleted file mode 100644 index 2aaad483f6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1829.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_183.png b/TMessagesProj/src/emojis/twitter/emoji/0_183.png deleted file mode 100644 index bd290f00aa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1830.png b/TMessagesProj/src/emojis/twitter/emoji/0_1830.png deleted file mode 100644 index bb1b2a515c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1830.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1831.png b/TMessagesProj/src/emojis/twitter/emoji/0_1831.png deleted file mode 100644 index d7f4840f60..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1831.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1832.png b/TMessagesProj/src/emojis/twitter/emoji/0_1832.png deleted file mode 100644 index 98db53e22a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1832.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1833.png b/TMessagesProj/src/emojis/twitter/emoji/0_1833.png deleted file mode 100644 index f900d9c2ba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1833.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1834.png b/TMessagesProj/src/emojis/twitter/emoji/0_1834.png deleted file mode 100644 index 8e9076c7b0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1834.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1835.png b/TMessagesProj/src/emojis/twitter/emoji/0_1835.png deleted file mode 100644 index 5ae9d09cc2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1835.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1836.png b/TMessagesProj/src/emojis/twitter/emoji/0_1836.png deleted file mode 100644 index b6debf89ea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1836.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1837.png b/TMessagesProj/src/emojis/twitter/emoji/0_1837.png deleted file mode 100644 index 1fce75b50e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1837.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1838.png b/TMessagesProj/src/emojis/twitter/emoji/0_1838.png deleted file mode 100644 index 48fb2f556a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1838.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1839.png b/TMessagesProj/src/emojis/twitter/emoji/0_1839.png deleted file mode 100644 index 07be400150..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1839.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_184.png b/TMessagesProj/src/emojis/twitter/emoji/0_184.png deleted file mode 100644 index 312cba7f08..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1840.png b/TMessagesProj/src/emojis/twitter/emoji/0_1840.png deleted file mode 100644 index 224076f586..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1840.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1841.png b/TMessagesProj/src/emojis/twitter/emoji/0_1841.png deleted file mode 100644 index 7cff9cd262..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1841.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1842.png b/TMessagesProj/src/emojis/twitter/emoji/0_1842.png deleted file mode 100644 index 15244be133..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1842.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1843.png b/TMessagesProj/src/emojis/twitter/emoji/0_1843.png deleted file mode 100644 index e63acd94f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1843.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1844.png b/TMessagesProj/src/emojis/twitter/emoji/0_1844.png deleted file mode 100644 index bb36c217a7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1844.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1845.png b/TMessagesProj/src/emojis/twitter/emoji/0_1845.png deleted file mode 100644 index df229e9c80..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1845.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1846.png b/TMessagesProj/src/emojis/twitter/emoji/0_1846.png deleted file mode 100644 index 8e7107737e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1846.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1847.png b/TMessagesProj/src/emojis/twitter/emoji/0_1847.png deleted file mode 100644 index 235e62a1f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1847.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1848.png b/TMessagesProj/src/emojis/twitter/emoji/0_1848.png deleted file mode 100644 index 701c8bd1eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1848.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1849.png b/TMessagesProj/src/emojis/twitter/emoji/0_1849.png deleted file mode 100644 index 7c96e3fbe1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1849.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_185.png b/TMessagesProj/src/emojis/twitter/emoji/0_185.png deleted file mode 100644 index e241385097..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1850.png b/TMessagesProj/src/emojis/twitter/emoji/0_1850.png deleted file mode 100644 index 0560a25e06..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1850.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1851.png b/TMessagesProj/src/emojis/twitter/emoji/0_1851.png deleted file mode 100644 index f2a4cdfc84..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1851.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1852.png b/TMessagesProj/src/emojis/twitter/emoji/0_1852.png deleted file mode 100644 index 4b4a89e987..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1852.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1853.png b/TMessagesProj/src/emojis/twitter/emoji/0_1853.png deleted file mode 100644 index 9a6ec939fe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1853.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1854.png b/TMessagesProj/src/emojis/twitter/emoji/0_1854.png deleted file mode 100644 index b05f02e287..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1854.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1855.png b/TMessagesProj/src/emojis/twitter/emoji/0_1855.png deleted file mode 100644 index e04c608eb7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1855.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1856.png b/TMessagesProj/src/emojis/twitter/emoji/0_1856.png deleted file mode 100644 index 503ffe5d8a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1856.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1857.png b/TMessagesProj/src/emojis/twitter/emoji/0_1857.png deleted file mode 100644 index 6fb6309fa7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1857.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1858.png b/TMessagesProj/src/emojis/twitter/emoji/0_1858.png deleted file mode 100644 index 2764f40803..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1858.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1859.png b/TMessagesProj/src/emojis/twitter/emoji/0_1859.png deleted file mode 100644 index 729b17f030..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1859.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_186.png b/TMessagesProj/src/emojis/twitter/emoji/0_186.png deleted file mode 100644 index 53a52d5c27..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1860.png b/TMessagesProj/src/emojis/twitter/emoji/0_1860.png deleted file mode 100644 index 711fd5a0de..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1860.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1861.png b/TMessagesProj/src/emojis/twitter/emoji/0_1861.png deleted file mode 100644 index 812d6d6106..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1861.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1862.png b/TMessagesProj/src/emojis/twitter/emoji/0_1862.png deleted file mode 100644 index fb0315e520..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1862.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1863.png b/TMessagesProj/src/emojis/twitter/emoji/0_1863.png deleted file mode 100644 index 89dac9861c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1863.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1864.png b/TMessagesProj/src/emojis/twitter/emoji/0_1864.png deleted file mode 100644 index 272689e684..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1864.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1865.png b/TMessagesProj/src/emojis/twitter/emoji/0_1865.png deleted file mode 100644 index b5ec4681a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1865.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1866.png b/TMessagesProj/src/emojis/twitter/emoji/0_1866.png deleted file mode 100644 index b5ec4681a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1866.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1867.png b/TMessagesProj/src/emojis/twitter/emoji/0_1867.png deleted file mode 100644 index 11a833e4cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1867.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1868.png b/TMessagesProj/src/emojis/twitter/emoji/0_1868.png deleted file mode 100644 index c6615d6c66..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1868.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1869.png b/TMessagesProj/src/emojis/twitter/emoji/0_1869.png deleted file mode 100644 index 6e56465182..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1869.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_187.png b/TMessagesProj/src/emojis/twitter/emoji/0_187.png deleted file mode 100644 index 10458d3ef4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1870.png b/TMessagesProj/src/emojis/twitter/emoji/0_1870.png deleted file mode 100644 index 47a07b4f60..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1870.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1871.png b/TMessagesProj/src/emojis/twitter/emoji/0_1871.png deleted file mode 100644 index 47a07b4f60..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1871.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1872.png b/TMessagesProj/src/emojis/twitter/emoji/0_1872.png deleted file mode 100644 index 0d3751fe9e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1872.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1873.png b/TMessagesProj/src/emojis/twitter/emoji/0_1873.png deleted file mode 100644 index 514a9a397c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1873.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1874.png b/TMessagesProj/src/emojis/twitter/emoji/0_1874.png deleted file mode 100644 index be46e36df3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1874.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1875.png b/TMessagesProj/src/emojis/twitter/emoji/0_1875.png deleted file mode 100644 index 60621dfbf4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1875.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1876.png b/TMessagesProj/src/emojis/twitter/emoji/0_1876.png deleted file mode 100644 index 990f2641a9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1876.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1877.png b/TMessagesProj/src/emojis/twitter/emoji/0_1877.png deleted file mode 100644 index d34b4e65d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1877.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1878.png b/TMessagesProj/src/emojis/twitter/emoji/0_1878.png deleted file mode 100644 index d34b4e65d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1878.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1879.png b/TMessagesProj/src/emojis/twitter/emoji/0_1879.png deleted file mode 100644 index 2a01901ab9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1879.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_188.png b/TMessagesProj/src/emojis/twitter/emoji/0_188.png deleted file mode 100644 index a5566cb4b2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1880.png b/TMessagesProj/src/emojis/twitter/emoji/0_1880.png deleted file mode 100644 index 7a015259b2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1880.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1881.png b/TMessagesProj/src/emojis/twitter/emoji/0_1881.png deleted file mode 100644 index 648f75aaf1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1881.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1882.png b/TMessagesProj/src/emojis/twitter/emoji/0_1882.png deleted file mode 100644 index 28843901d2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1882.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1883.png b/TMessagesProj/src/emojis/twitter/emoji/0_1883.png deleted file mode 100644 index 8860541b38..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1883.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1884.png b/TMessagesProj/src/emojis/twitter/emoji/0_1884.png deleted file mode 100644 index 8860541b38..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1884.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1885.png b/TMessagesProj/src/emojis/twitter/emoji/0_1885.png deleted file mode 100644 index 2ae3c7e613..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1885.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1886.png b/TMessagesProj/src/emojis/twitter/emoji/0_1886.png deleted file mode 100644 index b3bea3c80c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1886.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1887.png b/TMessagesProj/src/emojis/twitter/emoji/0_1887.png deleted file mode 100644 index 86b7c6b1a9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1887.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1888.png b/TMessagesProj/src/emojis/twitter/emoji/0_1888.png deleted file mode 100644 index 6d1e13d85b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1888.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1889.png b/TMessagesProj/src/emojis/twitter/emoji/0_1889.png deleted file mode 100644 index 6d1e13d85b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1889.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_189.png b/TMessagesProj/src/emojis/twitter/emoji/0_189.png deleted file mode 100644 index cbaa1ca7b5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1890.png b/TMessagesProj/src/emojis/twitter/emoji/0_1890.png deleted file mode 100644 index c954b22fed..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1890.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1891.png b/TMessagesProj/src/emojis/twitter/emoji/0_1891.png deleted file mode 100644 index 8d86a2d1a6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1891.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1892.png b/TMessagesProj/src/emojis/twitter/emoji/0_1892.png deleted file mode 100644 index adfb2e5007..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1892.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1893.png b/TMessagesProj/src/emojis/twitter/emoji/0_1893.png deleted file mode 100644 index c723fa46fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1893.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1894.png b/TMessagesProj/src/emojis/twitter/emoji/0_1894.png deleted file mode 100644 index 1ef0cb7395..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1894.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1895.png b/TMessagesProj/src/emojis/twitter/emoji/0_1895.png deleted file mode 100644 index da6278fe33..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1895.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1896.png b/TMessagesProj/src/emojis/twitter/emoji/0_1896.png deleted file mode 100644 index 96c935bb84..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1896.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1897.png b/TMessagesProj/src/emojis/twitter/emoji/0_1897.png deleted file mode 100644 index 4f021cf9f6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1897.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1898.png b/TMessagesProj/src/emojis/twitter/emoji/0_1898.png deleted file mode 100644 index fe4449f6ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1898.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1899.png b/TMessagesProj/src/emojis/twitter/emoji/0_1899.png deleted file mode 100644 index 6a066b9e85..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1899.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_19.png b/TMessagesProj/src/emojis/twitter/emoji/0_19.png deleted file mode 100644 index 137363d18c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_190.png b/TMessagesProj/src/emojis/twitter/emoji/0_190.png deleted file mode 100644 index 8df469a271..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1900.png b/TMessagesProj/src/emojis/twitter/emoji/0_1900.png deleted file mode 100644 index 9cb9527e80..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1900.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1901.png b/TMessagesProj/src/emojis/twitter/emoji/0_1901.png deleted file mode 100644 index 19c4e99eb1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1901.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1902.png b/TMessagesProj/src/emojis/twitter/emoji/0_1902.png deleted file mode 100644 index 4e2f86f189..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1902.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1903.png b/TMessagesProj/src/emojis/twitter/emoji/0_1903.png deleted file mode 100644 index 47d109750a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1903.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1904.png b/TMessagesProj/src/emojis/twitter/emoji/0_1904.png deleted file mode 100644 index 2c7ba847ed..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1904.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1905.png b/TMessagesProj/src/emojis/twitter/emoji/0_1905.png deleted file mode 100644 index b0f40e935e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1905.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1906.png b/TMessagesProj/src/emojis/twitter/emoji/0_1906.png deleted file mode 100644 index 7d56b3f2ad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1906.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1907.png b/TMessagesProj/src/emojis/twitter/emoji/0_1907.png deleted file mode 100644 index 0cf4308774..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1907.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1908.png b/TMessagesProj/src/emojis/twitter/emoji/0_1908.png deleted file mode 100644 index 21be47daba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1908.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1909.png b/TMessagesProj/src/emojis/twitter/emoji/0_1909.png deleted file mode 100644 index ab03e73cbf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1909.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_191.png b/TMessagesProj/src/emojis/twitter/emoji/0_191.png deleted file mode 100644 index 69ba512adb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1910.png b/TMessagesProj/src/emojis/twitter/emoji/0_1910.png deleted file mode 100644 index f63997aa0f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1910.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1911.png b/TMessagesProj/src/emojis/twitter/emoji/0_1911.png deleted file mode 100644 index c73b7cbad3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1911.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1912.png b/TMessagesProj/src/emojis/twitter/emoji/0_1912.png deleted file mode 100644 index a58f2de0e6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1912.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1913.png b/TMessagesProj/src/emojis/twitter/emoji/0_1913.png deleted file mode 100644 index d418fde4b8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1913.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1914.png b/TMessagesProj/src/emojis/twitter/emoji/0_1914.png deleted file mode 100644 index 13ba3f124d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1914.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1915.png b/TMessagesProj/src/emojis/twitter/emoji/0_1915.png deleted file mode 100644 index 49cbe7f6ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1915.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1916.png b/TMessagesProj/src/emojis/twitter/emoji/0_1916.png deleted file mode 100644 index 47868dcdb9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1916.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1917.png b/TMessagesProj/src/emojis/twitter/emoji/0_1917.png deleted file mode 100644 index 097a5833d2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1917.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1918.png b/TMessagesProj/src/emojis/twitter/emoji/0_1918.png deleted file mode 100644 index 795208a56d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1918.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1919.png b/TMessagesProj/src/emojis/twitter/emoji/0_1919.png deleted file mode 100644 index 6090652960..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1919.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_192.png b/TMessagesProj/src/emojis/twitter/emoji/0_192.png deleted file mode 100644 index 621d6cc599..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1920.png b/TMessagesProj/src/emojis/twitter/emoji/0_1920.png deleted file mode 100644 index ee4934656f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1920.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1921.png b/TMessagesProj/src/emojis/twitter/emoji/0_1921.png deleted file mode 100644 index 96e6ef4d42..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1921.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1922.png b/TMessagesProj/src/emojis/twitter/emoji/0_1922.png deleted file mode 100644 index 00b77241ce..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1922.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1923.png b/TMessagesProj/src/emojis/twitter/emoji/0_1923.png deleted file mode 100644 index 729de046e2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1923.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1924.png b/TMessagesProj/src/emojis/twitter/emoji/0_1924.png deleted file mode 100644 index caa5964b69..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1924.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1925.png b/TMessagesProj/src/emojis/twitter/emoji/0_1925.png deleted file mode 100644 index bd20b95f48..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1925.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1926.png b/TMessagesProj/src/emojis/twitter/emoji/0_1926.png deleted file mode 100644 index d7872c85e8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1926.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1927.png b/TMessagesProj/src/emojis/twitter/emoji/0_1927.png deleted file mode 100644 index 5c8d8972cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1927.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1928.png b/TMessagesProj/src/emojis/twitter/emoji/0_1928.png deleted file mode 100644 index 3bb5fc6c0f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1928.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1929.png b/TMessagesProj/src/emojis/twitter/emoji/0_1929.png deleted file mode 100644 index 259afc381f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1929.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_193.png b/TMessagesProj/src/emojis/twitter/emoji/0_193.png deleted file mode 100644 index 0927c4843c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1930.png b/TMessagesProj/src/emojis/twitter/emoji/0_1930.png deleted file mode 100644 index 8a40076aa1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1930.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1931.png b/TMessagesProj/src/emojis/twitter/emoji/0_1931.png deleted file mode 100644 index 855bc7fd8d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1931.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1932.png b/TMessagesProj/src/emojis/twitter/emoji/0_1932.png deleted file mode 100644 index 3de1e3e8bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1932.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1933.png b/TMessagesProj/src/emojis/twitter/emoji/0_1933.png deleted file mode 100644 index 6525d10982..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1933.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1934.png b/TMessagesProj/src/emojis/twitter/emoji/0_1934.png deleted file mode 100644 index 83b9f8ce1e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1934.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1935.png b/TMessagesProj/src/emojis/twitter/emoji/0_1935.png deleted file mode 100644 index 960a9e635a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1935.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1936.png b/TMessagesProj/src/emojis/twitter/emoji/0_1936.png deleted file mode 100644 index 05d04b176f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1936.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1937.png b/TMessagesProj/src/emojis/twitter/emoji/0_1937.png deleted file mode 100644 index eeb4896e05..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1937.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1938.png b/TMessagesProj/src/emojis/twitter/emoji/0_1938.png deleted file mode 100644 index ff652858f6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1938.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1939.png b/TMessagesProj/src/emojis/twitter/emoji/0_1939.png deleted file mode 100644 index 9f9721f6c4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1939.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_194.png b/TMessagesProj/src/emojis/twitter/emoji/0_194.png deleted file mode 100644 index 8e5d3d17f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1940.png b/TMessagesProj/src/emojis/twitter/emoji/0_1940.png deleted file mode 100644 index 1b596db4f5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1940.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1941.png b/TMessagesProj/src/emojis/twitter/emoji/0_1941.png deleted file mode 100644 index cc4d8c01d7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1941.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1942.png b/TMessagesProj/src/emojis/twitter/emoji/0_1942.png deleted file mode 100644 index 77a3ba9eda..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1942.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1943.png b/TMessagesProj/src/emojis/twitter/emoji/0_1943.png deleted file mode 100644 index b7d5173202..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1943.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1944.png b/TMessagesProj/src/emojis/twitter/emoji/0_1944.png deleted file mode 100644 index 6cf8246392..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1944.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1945.png b/TMessagesProj/src/emojis/twitter/emoji/0_1945.png deleted file mode 100644 index 2a82ac61e3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1945.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1946.png b/TMessagesProj/src/emojis/twitter/emoji/0_1946.png deleted file mode 100644 index 532c2722b5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1946.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1947.png b/TMessagesProj/src/emojis/twitter/emoji/0_1947.png deleted file mode 100644 index fb59a7b70c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1947.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1948.png b/TMessagesProj/src/emojis/twitter/emoji/0_1948.png deleted file mode 100644 index f65691b8a5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1948.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1949.png b/TMessagesProj/src/emojis/twitter/emoji/0_1949.png deleted file mode 100644 index 59872cd0b4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1949.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_195.png b/TMessagesProj/src/emojis/twitter/emoji/0_195.png deleted file mode 100644 index 2e8b72154f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1950.png b/TMessagesProj/src/emojis/twitter/emoji/0_1950.png deleted file mode 100644 index b00026c5f1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1950.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1951.png b/TMessagesProj/src/emojis/twitter/emoji/0_1951.png deleted file mode 100644 index 4a54528486..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1951.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1952.png b/TMessagesProj/src/emojis/twitter/emoji/0_1952.png deleted file mode 100644 index cc17e435b7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1952.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1953.png b/TMessagesProj/src/emojis/twitter/emoji/0_1953.png deleted file mode 100644 index 13af1edd27..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1953.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1954.png b/TMessagesProj/src/emojis/twitter/emoji/0_1954.png deleted file mode 100644 index dfb39e2cf0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1954.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1955.png b/TMessagesProj/src/emojis/twitter/emoji/0_1955.png deleted file mode 100644 index 8b340fa13c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1955.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1956.png b/TMessagesProj/src/emojis/twitter/emoji/0_1956.png deleted file mode 100644 index 3d1d8fb71a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1956.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1957.png b/TMessagesProj/src/emojis/twitter/emoji/0_1957.png deleted file mode 100644 index e24cac2458..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1957.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1958.png b/TMessagesProj/src/emojis/twitter/emoji/0_1958.png deleted file mode 100644 index aaf60b524e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1958.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1959.png b/TMessagesProj/src/emojis/twitter/emoji/0_1959.png deleted file mode 100644 index b783d92c4c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1959.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_196.png b/TMessagesProj/src/emojis/twitter/emoji/0_196.png deleted file mode 100644 index 8fece95bec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1960.png b/TMessagesProj/src/emojis/twitter/emoji/0_1960.png deleted file mode 100644 index 01263e5ca5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1960.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1961.png b/TMessagesProj/src/emojis/twitter/emoji/0_1961.png deleted file mode 100644 index 44648cb392..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1961.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1962.png b/TMessagesProj/src/emojis/twitter/emoji/0_1962.png deleted file mode 100644 index ec03ed68df..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1962.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1963.png b/TMessagesProj/src/emojis/twitter/emoji/0_1963.png deleted file mode 100644 index 9de746391d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1963.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1964.png b/TMessagesProj/src/emojis/twitter/emoji/0_1964.png deleted file mode 100644 index 7ee06194f9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1964.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1965.png b/TMessagesProj/src/emojis/twitter/emoji/0_1965.png deleted file mode 100644 index a3b50d9dc4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1965.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1966.png b/TMessagesProj/src/emojis/twitter/emoji/0_1966.png deleted file mode 100644 index 5a76f62d7c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1966.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1967.png b/TMessagesProj/src/emojis/twitter/emoji/0_1967.png deleted file mode 100644 index 45254b1050..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1967.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1968.png b/TMessagesProj/src/emojis/twitter/emoji/0_1968.png deleted file mode 100644 index 375e75e450..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1968.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1969.png b/TMessagesProj/src/emojis/twitter/emoji/0_1969.png deleted file mode 100644 index 5e0e61b218..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1969.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_197.png b/TMessagesProj/src/emojis/twitter/emoji/0_197.png deleted file mode 100644 index 1d74284b38..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1970.png b/TMessagesProj/src/emojis/twitter/emoji/0_1970.png deleted file mode 100644 index 6888b5953b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1970.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1971.png b/TMessagesProj/src/emojis/twitter/emoji/0_1971.png deleted file mode 100644 index dfd3847f6d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1971.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1972.png b/TMessagesProj/src/emojis/twitter/emoji/0_1972.png deleted file mode 100644 index aa84dfebc3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1972.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1973.png b/TMessagesProj/src/emojis/twitter/emoji/0_1973.png deleted file mode 100644 index ba6be64397..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1973.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1974.png b/TMessagesProj/src/emojis/twitter/emoji/0_1974.png deleted file mode 100644 index 692fa49af3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1974.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1975.png b/TMessagesProj/src/emojis/twitter/emoji/0_1975.png deleted file mode 100644 index cc2be8b028..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1975.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1976.png b/TMessagesProj/src/emojis/twitter/emoji/0_1976.png deleted file mode 100644 index c371090a84..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1976.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1977.png b/TMessagesProj/src/emojis/twitter/emoji/0_1977.png deleted file mode 100644 index 06f1c91d29..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1977.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1978.png b/TMessagesProj/src/emojis/twitter/emoji/0_1978.png deleted file mode 100644 index 8edf30a253..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1978.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1979.png b/TMessagesProj/src/emojis/twitter/emoji/0_1979.png deleted file mode 100644 index 179d4a5fe1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1979.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_198.png b/TMessagesProj/src/emojis/twitter/emoji/0_198.png deleted file mode 100644 index 3a7f6c6f6c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1980.png b/TMessagesProj/src/emojis/twitter/emoji/0_1980.png deleted file mode 100644 index 314cafb021..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1980.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1981.png b/TMessagesProj/src/emojis/twitter/emoji/0_1981.png deleted file mode 100644 index fa30952e0a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1981.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1982.png b/TMessagesProj/src/emojis/twitter/emoji/0_1982.png deleted file mode 100644 index 1d6a8b1e77..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1982.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1983.png b/TMessagesProj/src/emojis/twitter/emoji/0_1983.png deleted file mode 100644 index 228a863b55..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1983.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1984.png b/TMessagesProj/src/emojis/twitter/emoji/0_1984.png deleted file mode 100644 index 439a2799ee..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1984.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1985.png b/TMessagesProj/src/emojis/twitter/emoji/0_1985.png deleted file mode 100644 index 36551fd83f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1985.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1986.png b/TMessagesProj/src/emojis/twitter/emoji/0_1986.png deleted file mode 100644 index d9f405f778..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1986.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_1987.png b/TMessagesProj/src/emojis/twitter/emoji/0_1987.png deleted file mode 100644 index ffc78528c5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_1987.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_199.png b/TMessagesProj/src/emojis/twitter/emoji/0_199.png deleted file mode 100644 index a9ced8ec8f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_2.png b/TMessagesProj/src/emojis/twitter/emoji/0_2.png deleted file mode 100644 index 8c169faf32..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_20.png b/TMessagesProj/src/emojis/twitter/emoji/0_20.png deleted file mode 100644 index 874302af85..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_200.png b/TMessagesProj/src/emojis/twitter/emoji/0_200.png deleted file mode 100644 index 8a7c2c8c68..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_201.png b/TMessagesProj/src/emojis/twitter/emoji/0_201.png deleted file mode 100644 index 8dba75a986..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_202.png b/TMessagesProj/src/emojis/twitter/emoji/0_202.png deleted file mode 100644 index 13b1a7b9fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_203.png b/TMessagesProj/src/emojis/twitter/emoji/0_203.png deleted file mode 100644 index 7951da7d03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_204.png b/TMessagesProj/src/emojis/twitter/emoji/0_204.png deleted file mode 100644 index d4c1b0055d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_205.png b/TMessagesProj/src/emojis/twitter/emoji/0_205.png deleted file mode 100644 index 25d8e5f2f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_206.png b/TMessagesProj/src/emojis/twitter/emoji/0_206.png deleted file mode 100644 index 91186a9ae2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_207.png b/TMessagesProj/src/emojis/twitter/emoji/0_207.png deleted file mode 100644 index 5042fc1145..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_208.png b/TMessagesProj/src/emojis/twitter/emoji/0_208.png deleted file mode 100644 index c2e1519144..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_209.png b/TMessagesProj/src/emojis/twitter/emoji/0_209.png deleted file mode 100644 index c92598286f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_21.png b/TMessagesProj/src/emojis/twitter/emoji/0_21.png deleted file mode 100644 index 173e43923a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_210.png b/TMessagesProj/src/emojis/twitter/emoji/0_210.png deleted file mode 100644 index 08be5da892..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_211.png b/TMessagesProj/src/emojis/twitter/emoji/0_211.png deleted file mode 100644 index 79745a51da..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_212.png b/TMessagesProj/src/emojis/twitter/emoji/0_212.png deleted file mode 100644 index 69a134baef..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_213.png b/TMessagesProj/src/emojis/twitter/emoji/0_213.png deleted file mode 100644 index 4a0612c564..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_214.png b/TMessagesProj/src/emojis/twitter/emoji/0_214.png deleted file mode 100644 index 354f44bdf7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_215.png b/TMessagesProj/src/emojis/twitter/emoji/0_215.png deleted file mode 100644 index 955abc1a9a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_216.png b/TMessagesProj/src/emojis/twitter/emoji/0_216.png deleted file mode 100644 index 9b310a568a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_217.png b/TMessagesProj/src/emojis/twitter/emoji/0_217.png deleted file mode 100644 index 7f19905dff..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_218.png b/TMessagesProj/src/emojis/twitter/emoji/0_218.png deleted file mode 100644 index 81f34a0cdc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_219.png b/TMessagesProj/src/emojis/twitter/emoji/0_219.png deleted file mode 100644 index 8a8864af1d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_22.png b/TMessagesProj/src/emojis/twitter/emoji/0_22.png deleted file mode 100644 index 926d1a710c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_220.png b/TMessagesProj/src/emojis/twitter/emoji/0_220.png deleted file mode 100644 index 852bea517a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_221.png b/TMessagesProj/src/emojis/twitter/emoji/0_221.png deleted file mode 100644 index cebe03dd73..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_222.png b/TMessagesProj/src/emojis/twitter/emoji/0_222.png deleted file mode 100644 index 37bf4c5b46..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_223.png b/TMessagesProj/src/emojis/twitter/emoji/0_223.png deleted file mode 100644 index 4ce9f13ac9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_224.png b/TMessagesProj/src/emojis/twitter/emoji/0_224.png deleted file mode 100644 index 73e19bbf1c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_225.png b/TMessagesProj/src/emojis/twitter/emoji/0_225.png deleted file mode 100644 index b4f8d17407..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_226.png b/TMessagesProj/src/emojis/twitter/emoji/0_226.png deleted file mode 100644 index 0c8024de78..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_227.png b/TMessagesProj/src/emojis/twitter/emoji/0_227.png deleted file mode 100644 index e74abdbc9b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_228.png b/TMessagesProj/src/emojis/twitter/emoji/0_228.png deleted file mode 100644 index 79b263259d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_229.png b/TMessagesProj/src/emojis/twitter/emoji/0_229.png deleted file mode 100644 index 66586e4015..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_229.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_23.png b/TMessagesProj/src/emojis/twitter/emoji/0_23.png deleted file mode 100644 index acec85cb78..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_230.png b/TMessagesProj/src/emojis/twitter/emoji/0_230.png deleted file mode 100644 index 552fbc098a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_230.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_231.png b/TMessagesProj/src/emojis/twitter/emoji/0_231.png deleted file mode 100644 index 222c1e21aa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_231.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_232.png b/TMessagesProj/src/emojis/twitter/emoji/0_232.png deleted file mode 100644 index 1d473e711a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_232.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_233.png b/TMessagesProj/src/emojis/twitter/emoji/0_233.png deleted file mode 100644 index 5d437137ac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_233.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_234.png b/TMessagesProj/src/emojis/twitter/emoji/0_234.png deleted file mode 100644 index 2ba21b4866..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_234.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_235.png b/TMessagesProj/src/emojis/twitter/emoji/0_235.png deleted file mode 100644 index c5037a7d76..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_235.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_236.png b/TMessagesProj/src/emojis/twitter/emoji/0_236.png deleted file mode 100644 index a9f2ea4894..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_236.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_237.png b/TMessagesProj/src/emojis/twitter/emoji/0_237.png deleted file mode 100644 index e639c6d888..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_237.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_238.png b/TMessagesProj/src/emojis/twitter/emoji/0_238.png deleted file mode 100644 index 0a43a6fbac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_238.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_239.png b/TMessagesProj/src/emojis/twitter/emoji/0_239.png deleted file mode 100644 index ba8d4b9b41..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_239.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_24.png b/TMessagesProj/src/emojis/twitter/emoji/0_24.png deleted file mode 100644 index 3ef3b10b1b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_240.png b/TMessagesProj/src/emojis/twitter/emoji/0_240.png deleted file mode 100644 index ed2532938d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_240.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_241.png b/TMessagesProj/src/emojis/twitter/emoji/0_241.png deleted file mode 100644 index c0eb32b8bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_241.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_242.png b/TMessagesProj/src/emojis/twitter/emoji/0_242.png deleted file mode 100644 index 52bd3e11b3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_242.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_243.png b/TMessagesProj/src/emojis/twitter/emoji/0_243.png deleted file mode 100644 index ab62ec7e7d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_243.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_244.png b/TMessagesProj/src/emojis/twitter/emoji/0_244.png deleted file mode 100644 index 6b0034d4b0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_244.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_245.png b/TMessagesProj/src/emojis/twitter/emoji/0_245.png deleted file mode 100644 index 29cf0dd10f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_245.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_246.png b/TMessagesProj/src/emojis/twitter/emoji/0_246.png deleted file mode 100644 index 0b90de4324..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_246.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_247.png b/TMessagesProj/src/emojis/twitter/emoji/0_247.png deleted file mode 100644 index a8e8a25710..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_247.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_248.png b/TMessagesProj/src/emojis/twitter/emoji/0_248.png deleted file mode 100644 index c93ab2f5b7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_248.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_249.png b/TMessagesProj/src/emojis/twitter/emoji/0_249.png deleted file mode 100644 index 56a4e06ca9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_249.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_25.png b/TMessagesProj/src/emojis/twitter/emoji/0_25.png deleted file mode 100644 index d744611105..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_250.png b/TMessagesProj/src/emojis/twitter/emoji/0_250.png deleted file mode 100644 index 2b79da8d72..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_250.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_251.png b/TMessagesProj/src/emojis/twitter/emoji/0_251.png deleted file mode 100644 index 443a7db87c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_251.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_252.png b/TMessagesProj/src/emojis/twitter/emoji/0_252.png deleted file mode 100644 index 8755d295ca..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_252.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_253.png b/TMessagesProj/src/emojis/twitter/emoji/0_253.png deleted file mode 100644 index 501727436d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_253.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_254.png b/TMessagesProj/src/emojis/twitter/emoji/0_254.png deleted file mode 100644 index 461920887d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_254.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_255.png b/TMessagesProj/src/emojis/twitter/emoji/0_255.png deleted file mode 100644 index 556245bda4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_255.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_256.png b/TMessagesProj/src/emojis/twitter/emoji/0_256.png deleted file mode 100644 index 6aeaccf6db..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_256.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_257.png b/TMessagesProj/src/emojis/twitter/emoji/0_257.png deleted file mode 100644 index c9ec8ca0ec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_257.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_258.png b/TMessagesProj/src/emojis/twitter/emoji/0_258.png deleted file mode 100644 index a222ea230b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_258.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_259.png b/TMessagesProj/src/emojis/twitter/emoji/0_259.png deleted file mode 100644 index f912a4496d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_259.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_26.png b/TMessagesProj/src/emojis/twitter/emoji/0_26.png deleted file mode 100644 index 84e175391b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_260.png b/TMessagesProj/src/emojis/twitter/emoji/0_260.png deleted file mode 100644 index 3cefd29787..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_260.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_261.png b/TMessagesProj/src/emojis/twitter/emoji/0_261.png deleted file mode 100644 index 5804b1694b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_261.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_262.png b/TMessagesProj/src/emojis/twitter/emoji/0_262.png deleted file mode 100644 index b9e7ac8104..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_262.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_263.png b/TMessagesProj/src/emojis/twitter/emoji/0_263.png deleted file mode 100644 index 594a46df87..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_263.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_264.png b/TMessagesProj/src/emojis/twitter/emoji/0_264.png deleted file mode 100644 index c395295046..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_264.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_265.png b/TMessagesProj/src/emojis/twitter/emoji/0_265.png deleted file mode 100644 index f41ed5878a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_265.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_266.png b/TMessagesProj/src/emojis/twitter/emoji/0_266.png deleted file mode 100644 index a56fe78a78..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_266.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_267.png b/TMessagesProj/src/emojis/twitter/emoji/0_267.png deleted file mode 100644 index bdda2bb10e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_267.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_268.png b/TMessagesProj/src/emojis/twitter/emoji/0_268.png deleted file mode 100644 index 11fd4cb987..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_268.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_269.png b/TMessagesProj/src/emojis/twitter/emoji/0_269.png deleted file mode 100644 index 4ff0cab0ed..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_269.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_27.png b/TMessagesProj/src/emojis/twitter/emoji/0_27.png deleted file mode 100644 index 4d252bba0e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_270.png b/TMessagesProj/src/emojis/twitter/emoji/0_270.png deleted file mode 100644 index 21849c84ca..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_270.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_271.png b/TMessagesProj/src/emojis/twitter/emoji/0_271.png deleted file mode 100644 index fc5d076630..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_271.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_272.png b/TMessagesProj/src/emojis/twitter/emoji/0_272.png deleted file mode 100644 index fc62bbe814..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_272.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_273.png b/TMessagesProj/src/emojis/twitter/emoji/0_273.png deleted file mode 100644 index cb54b10ce6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_273.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_274.png b/TMessagesProj/src/emojis/twitter/emoji/0_274.png deleted file mode 100644 index 9b31c261d9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_274.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_275.png b/TMessagesProj/src/emojis/twitter/emoji/0_275.png deleted file mode 100644 index 6ed96b044a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_275.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_276.png b/TMessagesProj/src/emojis/twitter/emoji/0_276.png deleted file mode 100644 index 11a8e19f23..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_276.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_277.png b/TMessagesProj/src/emojis/twitter/emoji/0_277.png deleted file mode 100644 index a7a0e336c3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_277.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_278.png b/TMessagesProj/src/emojis/twitter/emoji/0_278.png deleted file mode 100644 index ac203ae06a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_278.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_279.png b/TMessagesProj/src/emojis/twitter/emoji/0_279.png deleted file mode 100644 index cc2d7ee6b8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_279.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_28.png b/TMessagesProj/src/emojis/twitter/emoji/0_28.png deleted file mode 100644 index 01da90c491..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_280.png b/TMessagesProj/src/emojis/twitter/emoji/0_280.png deleted file mode 100644 index c60d1aadd9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_280.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_281.png b/TMessagesProj/src/emojis/twitter/emoji/0_281.png deleted file mode 100644 index d03fa40e02..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_281.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_282.png b/TMessagesProj/src/emojis/twitter/emoji/0_282.png deleted file mode 100644 index dd425f9d98..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_282.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_283.png b/TMessagesProj/src/emojis/twitter/emoji/0_283.png deleted file mode 100644 index 887c188d03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_283.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_284.png b/TMessagesProj/src/emojis/twitter/emoji/0_284.png deleted file mode 100644 index 0dd22147f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_284.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_285.png b/TMessagesProj/src/emojis/twitter/emoji/0_285.png deleted file mode 100644 index 4f98d7b00a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_285.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_286.png b/TMessagesProj/src/emojis/twitter/emoji/0_286.png deleted file mode 100644 index 984d83ebbc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_286.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_287.png b/TMessagesProj/src/emojis/twitter/emoji/0_287.png deleted file mode 100644 index bdf3e72ad4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_287.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_288.png b/TMessagesProj/src/emojis/twitter/emoji/0_288.png deleted file mode 100644 index 6f3646dd76..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_288.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_289.png b/TMessagesProj/src/emojis/twitter/emoji/0_289.png deleted file mode 100644 index 61fc17ecc8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_289.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_29.png b/TMessagesProj/src/emojis/twitter/emoji/0_29.png deleted file mode 100644 index 144c5f257c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_290.png b/TMessagesProj/src/emojis/twitter/emoji/0_290.png deleted file mode 100644 index 3233c2b378..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_290.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_291.png b/TMessagesProj/src/emojis/twitter/emoji/0_291.png deleted file mode 100644 index f4cf09fffd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_291.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_292.png b/TMessagesProj/src/emojis/twitter/emoji/0_292.png deleted file mode 100644 index 121252eecd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_292.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_293.png b/TMessagesProj/src/emojis/twitter/emoji/0_293.png deleted file mode 100644 index fe6632167f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_293.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_294.png b/TMessagesProj/src/emojis/twitter/emoji/0_294.png deleted file mode 100644 index e84c411845..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_294.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_295.png b/TMessagesProj/src/emojis/twitter/emoji/0_295.png deleted file mode 100644 index 4ae0e740bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_295.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_296.png b/TMessagesProj/src/emojis/twitter/emoji/0_296.png deleted file mode 100644 index efe4ec0d8f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_296.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_297.png b/TMessagesProj/src/emojis/twitter/emoji/0_297.png deleted file mode 100644 index 8ede174ef0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_297.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_298.png b/TMessagesProj/src/emojis/twitter/emoji/0_298.png deleted file mode 100644 index 00c07b55b5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_298.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_299.png b/TMessagesProj/src/emojis/twitter/emoji/0_299.png deleted file mode 100644 index 538e27cb54..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_299.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_3.png b/TMessagesProj/src/emojis/twitter/emoji/0_3.png deleted file mode 100644 index fd5a48533f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_30.png b/TMessagesProj/src/emojis/twitter/emoji/0_30.png deleted file mode 100644 index 5723949038..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_300.png b/TMessagesProj/src/emojis/twitter/emoji/0_300.png deleted file mode 100644 index e8fc90d04f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_300.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_301.png b/TMessagesProj/src/emojis/twitter/emoji/0_301.png deleted file mode 100644 index a2fe874dbd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_301.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_302.png b/TMessagesProj/src/emojis/twitter/emoji/0_302.png deleted file mode 100644 index 414f68be06..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_302.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_303.png b/TMessagesProj/src/emojis/twitter/emoji/0_303.png deleted file mode 100644 index 06d74c722f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_303.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_304.png b/TMessagesProj/src/emojis/twitter/emoji/0_304.png deleted file mode 100644 index 29a3c010ba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_304.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_305.png b/TMessagesProj/src/emojis/twitter/emoji/0_305.png deleted file mode 100644 index bf1b64b927..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_305.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_306.png b/TMessagesProj/src/emojis/twitter/emoji/0_306.png deleted file mode 100644 index 44c97c4f14..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_306.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_307.png b/TMessagesProj/src/emojis/twitter/emoji/0_307.png deleted file mode 100644 index 0b37133044..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_307.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_308.png b/TMessagesProj/src/emojis/twitter/emoji/0_308.png deleted file mode 100644 index a4e3909d4c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_308.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_309.png b/TMessagesProj/src/emojis/twitter/emoji/0_309.png deleted file mode 100644 index 6e26463a26..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_309.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_31.png b/TMessagesProj/src/emojis/twitter/emoji/0_31.png deleted file mode 100644 index 25f82a2aa9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_310.png b/TMessagesProj/src/emojis/twitter/emoji/0_310.png deleted file mode 100644 index ded17a5262..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_310.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_311.png b/TMessagesProj/src/emojis/twitter/emoji/0_311.png deleted file mode 100644 index 4e3536fd06..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_311.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_312.png b/TMessagesProj/src/emojis/twitter/emoji/0_312.png deleted file mode 100644 index 61e0af1193..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_312.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_313.png b/TMessagesProj/src/emojis/twitter/emoji/0_313.png deleted file mode 100644 index d1e81b2033..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_313.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_314.png b/TMessagesProj/src/emojis/twitter/emoji/0_314.png deleted file mode 100644 index 3a594026c9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_314.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_315.png b/TMessagesProj/src/emojis/twitter/emoji/0_315.png deleted file mode 100644 index 0be8f88e67..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_315.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_316.png b/TMessagesProj/src/emojis/twitter/emoji/0_316.png deleted file mode 100644 index 016edfe217..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_316.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_317.png b/TMessagesProj/src/emojis/twitter/emoji/0_317.png deleted file mode 100644 index f3fb40275e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_317.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_318.png b/TMessagesProj/src/emojis/twitter/emoji/0_318.png deleted file mode 100644 index 82cae778bc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_318.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_319.png b/TMessagesProj/src/emojis/twitter/emoji/0_319.png deleted file mode 100644 index 415aa187e1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_319.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_32.png b/TMessagesProj/src/emojis/twitter/emoji/0_32.png deleted file mode 100644 index 4d3f8f6809..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_320.png b/TMessagesProj/src/emojis/twitter/emoji/0_320.png deleted file mode 100644 index 6b1b27e669..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_320.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_321.png b/TMessagesProj/src/emojis/twitter/emoji/0_321.png deleted file mode 100644 index 3d63333551..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_321.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_322.png b/TMessagesProj/src/emojis/twitter/emoji/0_322.png deleted file mode 100644 index 757d184df7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_322.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_323.png b/TMessagesProj/src/emojis/twitter/emoji/0_323.png deleted file mode 100644 index d9af6f6cbd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_323.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_324.png b/TMessagesProj/src/emojis/twitter/emoji/0_324.png deleted file mode 100644 index 894b9ac55f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_324.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_325.png b/TMessagesProj/src/emojis/twitter/emoji/0_325.png deleted file mode 100644 index 687ace174b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_325.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_326.png b/TMessagesProj/src/emojis/twitter/emoji/0_326.png deleted file mode 100644 index fbcc4f17f6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_326.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_327.png b/TMessagesProj/src/emojis/twitter/emoji/0_327.png deleted file mode 100644 index 72c9a64d3b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_327.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_328.png b/TMessagesProj/src/emojis/twitter/emoji/0_328.png deleted file mode 100644 index 17d8d334cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_328.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_329.png b/TMessagesProj/src/emojis/twitter/emoji/0_329.png deleted file mode 100644 index b9e78b5b20..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_329.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_33.png b/TMessagesProj/src/emojis/twitter/emoji/0_33.png deleted file mode 100644 index 22395351e3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_330.png b/TMessagesProj/src/emojis/twitter/emoji/0_330.png deleted file mode 100644 index d3b500d564..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_330.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_331.png b/TMessagesProj/src/emojis/twitter/emoji/0_331.png deleted file mode 100644 index 2a1d2f2ed4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_331.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_332.png b/TMessagesProj/src/emojis/twitter/emoji/0_332.png deleted file mode 100644 index 8591fafbc3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_332.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_333.png b/TMessagesProj/src/emojis/twitter/emoji/0_333.png deleted file mode 100644 index 04dcc7d4b3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_333.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_334.png b/TMessagesProj/src/emojis/twitter/emoji/0_334.png deleted file mode 100644 index 21225b9484..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_334.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_335.png b/TMessagesProj/src/emojis/twitter/emoji/0_335.png deleted file mode 100644 index 7479b323db..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_335.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_336.png b/TMessagesProj/src/emojis/twitter/emoji/0_336.png deleted file mode 100644 index feb3dc76b4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_336.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_337.png b/TMessagesProj/src/emojis/twitter/emoji/0_337.png deleted file mode 100644 index 164939d24e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_337.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_338.png b/TMessagesProj/src/emojis/twitter/emoji/0_338.png deleted file mode 100644 index c3149242a8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_338.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_339.png b/TMessagesProj/src/emojis/twitter/emoji/0_339.png deleted file mode 100644 index 0a21aaa9f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_339.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_34.png b/TMessagesProj/src/emojis/twitter/emoji/0_34.png deleted file mode 100644 index 05b30f44b0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_340.png b/TMessagesProj/src/emojis/twitter/emoji/0_340.png deleted file mode 100644 index dcc2816678..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_340.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_341.png b/TMessagesProj/src/emojis/twitter/emoji/0_341.png deleted file mode 100644 index eacb8deb8c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_341.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_342.png b/TMessagesProj/src/emojis/twitter/emoji/0_342.png deleted file mode 100644 index 64b51ad686..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_342.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_343.png b/TMessagesProj/src/emojis/twitter/emoji/0_343.png deleted file mode 100644 index 7ab186b442..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_343.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_344.png b/TMessagesProj/src/emojis/twitter/emoji/0_344.png deleted file mode 100644 index e423c61a58..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_344.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_345.png b/TMessagesProj/src/emojis/twitter/emoji/0_345.png deleted file mode 100644 index 3e8127d9a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_345.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_346.png b/TMessagesProj/src/emojis/twitter/emoji/0_346.png deleted file mode 100644 index 27c7e20c1e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_346.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_347.png b/TMessagesProj/src/emojis/twitter/emoji/0_347.png deleted file mode 100644 index eea85b9ef1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_347.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_348.png b/TMessagesProj/src/emojis/twitter/emoji/0_348.png deleted file mode 100644 index e348aa886c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_348.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_349.png b/TMessagesProj/src/emojis/twitter/emoji/0_349.png deleted file mode 100644 index 1ab01a9a23..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_349.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_35.png b/TMessagesProj/src/emojis/twitter/emoji/0_35.png deleted file mode 100644 index d61d86af82..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_350.png b/TMessagesProj/src/emojis/twitter/emoji/0_350.png deleted file mode 100644 index 791f7991f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_350.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_351.png b/TMessagesProj/src/emojis/twitter/emoji/0_351.png deleted file mode 100644 index 18d67fd4a7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_351.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_352.png b/TMessagesProj/src/emojis/twitter/emoji/0_352.png deleted file mode 100644 index 4a80d17b1d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_352.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_353.png b/TMessagesProj/src/emojis/twitter/emoji/0_353.png deleted file mode 100644 index 88deb47ff1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_353.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_354.png b/TMessagesProj/src/emojis/twitter/emoji/0_354.png deleted file mode 100644 index e55cc5b13c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_354.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_355.png b/TMessagesProj/src/emojis/twitter/emoji/0_355.png deleted file mode 100644 index c22d879a83..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_355.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_356.png b/TMessagesProj/src/emojis/twitter/emoji/0_356.png deleted file mode 100644 index 6a41d89296..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_356.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_357.png b/TMessagesProj/src/emojis/twitter/emoji/0_357.png deleted file mode 100644 index ad9b86ac55..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_357.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_358.png b/TMessagesProj/src/emojis/twitter/emoji/0_358.png deleted file mode 100644 index ca9fc9b603..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_358.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_359.png b/TMessagesProj/src/emojis/twitter/emoji/0_359.png deleted file mode 100644 index 587cd27f8f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_359.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_36.png b/TMessagesProj/src/emojis/twitter/emoji/0_36.png deleted file mode 100644 index 6c3dbc49cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_360.png b/TMessagesProj/src/emojis/twitter/emoji/0_360.png deleted file mode 100644 index 3d4d6cd30a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_360.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_361.png b/TMessagesProj/src/emojis/twitter/emoji/0_361.png deleted file mode 100644 index 1acd245123..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_361.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_362.png b/TMessagesProj/src/emojis/twitter/emoji/0_362.png deleted file mode 100644 index 727de259c7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_362.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_363.png b/TMessagesProj/src/emojis/twitter/emoji/0_363.png deleted file mode 100644 index bf49c47c7b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_363.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_364.png b/TMessagesProj/src/emojis/twitter/emoji/0_364.png deleted file mode 100644 index c7b0f7fda8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_364.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_365.png b/TMessagesProj/src/emojis/twitter/emoji/0_365.png deleted file mode 100644 index 2a5a9d7c05..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_365.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_366.png b/TMessagesProj/src/emojis/twitter/emoji/0_366.png deleted file mode 100644 index 0d040984c7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_366.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_367.png b/TMessagesProj/src/emojis/twitter/emoji/0_367.png deleted file mode 100644 index 7fc2235cea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_367.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_368.png b/TMessagesProj/src/emojis/twitter/emoji/0_368.png deleted file mode 100644 index 026faaf4d6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_368.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_369.png b/TMessagesProj/src/emojis/twitter/emoji/0_369.png deleted file mode 100644 index d507034c2c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_369.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_37.png b/TMessagesProj/src/emojis/twitter/emoji/0_37.png deleted file mode 100644 index adc4089cf3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_370.png b/TMessagesProj/src/emojis/twitter/emoji/0_370.png deleted file mode 100644 index bb07262877..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_370.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_371.png b/TMessagesProj/src/emojis/twitter/emoji/0_371.png deleted file mode 100644 index 511bc5f918..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_371.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_372.png b/TMessagesProj/src/emojis/twitter/emoji/0_372.png deleted file mode 100644 index 03088745ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_372.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_373.png b/TMessagesProj/src/emojis/twitter/emoji/0_373.png deleted file mode 100644 index be9e809517..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_373.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_374.png b/TMessagesProj/src/emojis/twitter/emoji/0_374.png deleted file mode 100644 index f953145f1c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_374.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_375.png b/TMessagesProj/src/emojis/twitter/emoji/0_375.png deleted file mode 100644 index 84e77e57c4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_375.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_376.png b/TMessagesProj/src/emojis/twitter/emoji/0_376.png deleted file mode 100644 index 2a3e32f170..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_376.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_377.png b/TMessagesProj/src/emojis/twitter/emoji/0_377.png deleted file mode 100644 index d31d8d1cc1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_377.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_378.png b/TMessagesProj/src/emojis/twitter/emoji/0_378.png deleted file mode 100644 index d006daea41..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_378.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_379.png b/TMessagesProj/src/emojis/twitter/emoji/0_379.png deleted file mode 100644 index c3ad0a8468..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_379.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_38.png b/TMessagesProj/src/emojis/twitter/emoji/0_38.png deleted file mode 100644 index 3b821556eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_380.png b/TMessagesProj/src/emojis/twitter/emoji/0_380.png deleted file mode 100644 index 59f9466aa1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_380.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_381.png b/TMessagesProj/src/emojis/twitter/emoji/0_381.png deleted file mode 100644 index e59b68cc41..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_381.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_382.png b/TMessagesProj/src/emojis/twitter/emoji/0_382.png deleted file mode 100644 index f4fd1f3be1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_382.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_383.png b/TMessagesProj/src/emojis/twitter/emoji/0_383.png deleted file mode 100644 index 8ea6726017..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_383.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_384.png b/TMessagesProj/src/emojis/twitter/emoji/0_384.png deleted file mode 100644 index 7f69bed840..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_384.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_385.png b/TMessagesProj/src/emojis/twitter/emoji/0_385.png deleted file mode 100644 index e9c82fc50c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_385.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_386.png b/TMessagesProj/src/emojis/twitter/emoji/0_386.png deleted file mode 100644 index 5cfc98a6f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_386.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_387.png b/TMessagesProj/src/emojis/twitter/emoji/0_387.png deleted file mode 100644 index 6151b2529a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_387.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_388.png b/TMessagesProj/src/emojis/twitter/emoji/0_388.png deleted file mode 100644 index dcb4ca8a7a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_388.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_389.png b/TMessagesProj/src/emojis/twitter/emoji/0_389.png deleted file mode 100644 index d578af90fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_389.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_39.png b/TMessagesProj/src/emojis/twitter/emoji/0_39.png deleted file mode 100644 index bf240c152d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_390.png b/TMessagesProj/src/emojis/twitter/emoji/0_390.png deleted file mode 100644 index 31cc996027..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_390.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_391.png b/TMessagesProj/src/emojis/twitter/emoji/0_391.png deleted file mode 100644 index 82c7ff0210..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_391.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_392.png b/TMessagesProj/src/emojis/twitter/emoji/0_392.png deleted file mode 100644 index d7b33690a6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_392.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_393.png b/TMessagesProj/src/emojis/twitter/emoji/0_393.png deleted file mode 100644 index bea575bab4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_393.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_394.png b/TMessagesProj/src/emojis/twitter/emoji/0_394.png deleted file mode 100644 index 2f1177e540..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_394.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_395.png b/TMessagesProj/src/emojis/twitter/emoji/0_395.png deleted file mode 100644 index a8cf09cad4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_395.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_396.png b/TMessagesProj/src/emojis/twitter/emoji/0_396.png deleted file mode 100644 index d6f68bbf2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_396.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_397.png b/TMessagesProj/src/emojis/twitter/emoji/0_397.png deleted file mode 100644 index 25642f5d7c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_397.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_398.png b/TMessagesProj/src/emojis/twitter/emoji/0_398.png deleted file mode 100644 index be3fabe56e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_398.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_399.png b/TMessagesProj/src/emojis/twitter/emoji/0_399.png deleted file mode 100644 index 536f3da4ec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_399.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_4.png b/TMessagesProj/src/emojis/twitter/emoji/0_4.png deleted file mode 100644 index 3f54f42437..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_40.png b/TMessagesProj/src/emojis/twitter/emoji/0_40.png deleted file mode 100644 index 16eec6c3f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_400.png b/TMessagesProj/src/emojis/twitter/emoji/0_400.png deleted file mode 100644 index c52471d44b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_400.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_401.png b/TMessagesProj/src/emojis/twitter/emoji/0_401.png deleted file mode 100644 index d744f0852f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_401.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_402.png b/TMessagesProj/src/emojis/twitter/emoji/0_402.png deleted file mode 100644 index db0202129c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_402.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_403.png b/TMessagesProj/src/emojis/twitter/emoji/0_403.png deleted file mode 100644 index 0801fa5e91..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_403.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_404.png b/TMessagesProj/src/emojis/twitter/emoji/0_404.png deleted file mode 100644 index 814ff9307f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_404.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_405.png b/TMessagesProj/src/emojis/twitter/emoji/0_405.png deleted file mode 100644 index c1416fbafd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_405.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_406.png b/TMessagesProj/src/emojis/twitter/emoji/0_406.png deleted file mode 100644 index 0c8233f065..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_406.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_407.png b/TMessagesProj/src/emojis/twitter/emoji/0_407.png deleted file mode 100644 index fffe946416..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_407.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_408.png b/TMessagesProj/src/emojis/twitter/emoji/0_408.png deleted file mode 100644 index c0aee8a5dd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_408.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_409.png b/TMessagesProj/src/emojis/twitter/emoji/0_409.png deleted file mode 100644 index d13a50f4da..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_409.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_41.png b/TMessagesProj/src/emojis/twitter/emoji/0_41.png deleted file mode 100644 index 13e9e10f0e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_410.png b/TMessagesProj/src/emojis/twitter/emoji/0_410.png deleted file mode 100644 index a3051910b0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_410.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_411.png b/TMessagesProj/src/emojis/twitter/emoji/0_411.png deleted file mode 100644 index 3da368170f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_411.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_412.png b/TMessagesProj/src/emojis/twitter/emoji/0_412.png deleted file mode 100644 index 56760bd18f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_412.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_413.png b/TMessagesProj/src/emojis/twitter/emoji/0_413.png deleted file mode 100644 index fed4042dcc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_413.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_414.png b/TMessagesProj/src/emojis/twitter/emoji/0_414.png deleted file mode 100644 index 7bc2bdb709..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_414.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_415.png b/TMessagesProj/src/emojis/twitter/emoji/0_415.png deleted file mode 100644 index d727628133..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_415.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_416.png b/TMessagesProj/src/emojis/twitter/emoji/0_416.png deleted file mode 100644 index bfccf0d8e9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_416.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_417.png b/TMessagesProj/src/emojis/twitter/emoji/0_417.png deleted file mode 100644 index 1870e33036..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_417.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_418.png b/TMessagesProj/src/emojis/twitter/emoji/0_418.png deleted file mode 100644 index ec8fdd6eaa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_418.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_419.png b/TMessagesProj/src/emojis/twitter/emoji/0_419.png deleted file mode 100644 index 7c9ede4b85..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_419.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_42.png b/TMessagesProj/src/emojis/twitter/emoji/0_42.png deleted file mode 100644 index 7b48c743e6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_420.png b/TMessagesProj/src/emojis/twitter/emoji/0_420.png deleted file mode 100644 index 2623cb02e1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_420.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_421.png b/TMessagesProj/src/emojis/twitter/emoji/0_421.png deleted file mode 100644 index e845660306..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_421.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_422.png b/TMessagesProj/src/emojis/twitter/emoji/0_422.png deleted file mode 100644 index 9fab2883fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_422.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_423.png b/TMessagesProj/src/emojis/twitter/emoji/0_423.png deleted file mode 100644 index c4f8263982..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_423.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_424.png b/TMessagesProj/src/emojis/twitter/emoji/0_424.png deleted file mode 100644 index c68fda3bf4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_424.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_425.png b/TMessagesProj/src/emojis/twitter/emoji/0_425.png deleted file mode 100644 index 42fafc27aa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_425.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_426.png b/TMessagesProj/src/emojis/twitter/emoji/0_426.png deleted file mode 100644 index ec1a25ac4a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_426.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_427.png b/TMessagesProj/src/emojis/twitter/emoji/0_427.png deleted file mode 100644 index 4128a66dd3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_427.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_428.png b/TMessagesProj/src/emojis/twitter/emoji/0_428.png deleted file mode 100644 index 9b73491042..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_428.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_429.png b/TMessagesProj/src/emojis/twitter/emoji/0_429.png deleted file mode 100644 index 3804b1ae63..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_429.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_43.png b/TMessagesProj/src/emojis/twitter/emoji/0_43.png deleted file mode 100644 index cf3f5ff1ab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_430.png b/TMessagesProj/src/emojis/twitter/emoji/0_430.png deleted file mode 100644 index 113b5a509b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_430.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_431.png b/TMessagesProj/src/emojis/twitter/emoji/0_431.png deleted file mode 100644 index 6d28ae8bb5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_431.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_432.png b/TMessagesProj/src/emojis/twitter/emoji/0_432.png deleted file mode 100644 index 0a81940dcd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_432.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_433.png b/TMessagesProj/src/emojis/twitter/emoji/0_433.png deleted file mode 100644 index bab027e58c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_433.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_434.png b/TMessagesProj/src/emojis/twitter/emoji/0_434.png deleted file mode 100644 index 5dd8ca489b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_434.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_435.png b/TMessagesProj/src/emojis/twitter/emoji/0_435.png deleted file mode 100644 index feda1ea5af..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_435.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_436.png b/TMessagesProj/src/emojis/twitter/emoji/0_436.png deleted file mode 100644 index 9ab54285bd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_436.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_437.png b/TMessagesProj/src/emojis/twitter/emoji/0_437.png deleted file mode 100644 index 7fa6284721..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_437.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_438.png b/TMessagesProj/src/emojis/twitter/emoji/0_438.png deleted file mode 100644 index d09da30897..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_438.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_439.png b/TMessagesProj/src/emojis/twitter/emoji/0_439.png deleted file mode 100644 index d3fb96739e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_439.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_44.png b/TMessagesProj/src/emojis/twitter/emoji/0_44.png deleted file mode 100644 index 384683c486..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_440.png b/TMessagesProj/src/emojis/twitter/emoji/0_440.png deleted file mode 100644 index 7cefc82ed1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_440.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_441.png b/TMessagesProj/src/emojis/twitter/emoji/0_441.png deleted file mode 100644 index ee8e63bd5c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_441.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_442.png b/TMessagesProj/src/emojis/twitter/emoji/0_442.png deleted file mode 100644 index f67e62f9a9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_442.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_443.png b/TMessagesProj/src/emojis/twitter/emoji/0_443.png deleted file mode 100644 index 1fcdd63ed4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_443.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_444.png b/TMessagesProj/src/emojis/twitter/emoji/0_444.png deleted file mode 100644 index 6c6cef3aad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_444.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_445.png b/TMessagesProj/src/emojis/twitter/emoji/0_445.png deleted file mode 100644 index 45d688adcb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_445.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_446.png b/TMessagesProj/src/emojis/twitter/emoji/0_446.png deleted file mode 100644 index d91b87e282..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_446.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_447.png b/TMessagesProj/src/emojis/twitter/emoji/0_447.png deleted file mode 100644 index 09ffdf8deb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_447.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_448.png b/TMessagesProj/src/emojis/twitter/emoji/0_448.png deleted file mode 100644 index e992ac8b4d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_448.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_449.png b/TMessagesProj/src/emojis/twitter/emoji/0_449.png deleted file mode 100644 index dafe4deed6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_449.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_45.png b/TMessagesProj/src/emojis/twitter/emoji/0_45.png deleted file mode 100644 index 29639b8073..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_450.png b/TMessagesProj/src/emojis/twitter/emoji/0_450.png deleted file mode 100644 index 40ae50ad0a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_450.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_451.png b/TMessagesProj/src/emojis/twitter/emoji/0_451.png deleted file mode 100644 index e94c3c743c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_451.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_452.png b/TMessagesProj/src/emojis/twitter/emoji/0_452.png deleted file mode 100644 index 243e1147ed..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_452.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_453.png b/TMessagesProj/src/emojis/twitter/emoji/0_453.png deleted file mode 100644 index 0e563c2805..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_453.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_454.png b/TMessagesProj/src/emojis/twitter/emoji/0_454.png deleted file mode 100644 index 48b4b3a705..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_454.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_455.png b/TMessagesProj/src/emojis/twitter/emoji/0_455.png deleted file mode 100644 index 5da39fceae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_455.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_456.png b/TMessagesProj/src/emojis/twitter/emoji/0_456.png deleted file mode 100644 index 9b52818b19..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_456.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_457.png b/TMessagesProj/src/emojis/twitter/emoji/0_457.png deleted file mode 100644 index 8bc30d972c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_457.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_458.png b/TMessagesProj/src/emojis/twitter/emoji/0_458.png deleted file mode 100644 index b35ee8028f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_458.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_459.png b/TMessagesProj/src/emojis/twitter/emoji/0_459.png deleted file mode 100644 index 9b18700ad3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_459.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_46.png b/TMessagesProj/src/emojis/twitter/emoji/0_46.png deleted file mode 100644 index 8a8e9c250a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_460.png b/TMessagesProj/src/emojis/twitter/emoji/0_460.png deleted file mode 100644 index 107fa4d465..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_460.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_461.png b/TMessagesProj/src/emojis/twitter/emoji/0_461.png deleted file mode 100644 index 8f88e3301c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_461.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_462.png b/TMessagesProj/src/emojis/twitter/emoji/0_462.png deleted file mode 100644 index 3afae58c62..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_462.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_463.png b/TMessagesProj/src/emojis/twitter/emoji/0_463.png deleted file mode 100644 index f8ec267e0d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_463.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_464.png b/TMessagesProj/src/emojis/twitter/emoji/0_464.png deleted file mode 100644 index fc6ed16341..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_464.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_465.png b/TMessagesProj/src/emojis/twitter/emoji/0_465.png deleted file mode 100644 index f158d44bc6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_465.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_466.png b/TMessagesProj/src/emojis/twitter/emoji/0_466.png deleted file mode 100644 index 8a08202aea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_466.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_467.png b/TMessagesProj/src/emojis/twitter/emoji/0_467.png deleted file mode 100644 index daa6e0f078..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_467.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_468.png b/TMessagesProj/src/emojis/twitter/emoji/0_468.png deleted file mode 100644 index 9415e1c6b2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_468.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_469.png b/TMessagesProj/src/emojis/twitter/emoji/0_469.png deleted file mode 100644 index 87cd1f0ebc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_469.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_47.png b/TMessagesProj/src/emojis/twitter/emoji/0_47.png deleted file mode 100644 index c6639c95a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_470.png b/TMessagesProj/src/emojis/twitter/emoji/0_470.png deleted file mode 100644 index 76459f688a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_470.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_471.png b/TMessagesProj/src/emojis/twitter/emoji/0_471.png deleted file mode 100644 index 27d6ce4cb3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_471.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_472.png b/TMessagesProj/src/emojis/twitter/emoji/0_472.png deleted file mode 100644 index eb21ee2775..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_472.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_473.png b/TMessagesProj/src/emojis/twitter/emoji/0_473.png deleted file mode 100644 index 4e86b05688..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_473.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_474.png b/TMessagesProj/src/emojis/twitter/emoji/0_474.png deleted file mode 100644 index 843d714a5b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_474.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_475.png b/TMessagesProj/src/emojis/twitter/emoji/0_475.png deleted file mode 100644 index e61df1398b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_475.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_476.png b/TMessagesProj/src/emojis/twitter/emoji/0_476.png deleted file mode 100644 index b55b4c292e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_476.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_477.png b/TMessagesProj/src/emojis/twitter/emoji/0_477.png deleted file mode 100644 index 279fbf3f91..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_477.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_478.png b/TMessagesProj/src/emojis/twitter/emoji/0_478.png deleted file mode 100644 index 6dc1a55d64..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_478.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_479.png b/TMessagesProj/src/emojis/twitter/emoji/0_479.png deleted file mode 100644 index 154f2d02a3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_479.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_48.png b/TMessagesProj/src/emojis/twitter/emoji/0_48.png deleted file mode 100644 index d7774462a9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_480.png b/TMessagesProj/src/emojis/twitter/emoji/0_480.png deleted file mode 100644 index 75e34ddd22..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_480.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_481.png b/TMessagesProj/src/emojis/twitter/emoji/0_481.png deleted file mode 100644 index 1aeee6a745..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_481.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_482.png b/TMessagesProj/src/emojis/twitter/emoji/0_482.png deleted file mode 100644 index f5b2620d06..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_482.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_483.png b/TMessagesProj/src/emojis/twitter/emoji/0_483.png deleted file mode 100644 index 8e87b6f27d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_483.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_484.png b/TMessagesProj/src/emojis/twitter/emoji/0_484.png deleted file mode 100644 index b97acac4ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_484.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_485.png b/TMessagesProj/src/emojis/twitter/emoji/0_485.png deleted file mode 100644 index 3e81eb735f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_485.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_486.png b/TMessagesProj/src/emojis/twitter/emoji/0_486.png deleted file mode 100644 index 09888205f1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_486.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_487.png b/TMessagesProj/src/emojis/twitter/emoji/0_487.png deleted file mode 100644 index ce62e71083..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_487.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_488.png b/TMessagesProj/src/emojis/twitter/emoji/0_488.png deleted file mode 100644 index 1efa48ea00..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_488.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_489.png b/TMessagesProj/src/emojis/twitter/emoji/0_489.png deleted file mode 100644 index b7584280e6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_489.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_49.png b/TMessagesProj/src/emojis/twitter/emoji/0_49.png deleted file mode 100644 index 68524fc545..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_490.png b/TMessagesProj/src/emojis/twitter/emoji/0_490.png deleted file mode 100644 index 67c5095cc2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_490.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_491.png b/TMessagesProj/src/emojis/twitter/emoji/0_491.png deleted file mode 100644 index 0fa8bad18e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_491.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_492.png b/TMessagesProj/src/emojis/twitter/emoji/0_492.png deleted file mode 100644 index ab62714bcd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_492.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_493.png b/TMessagesProj/src/emojis/twitter/emoji/0_493.png deleted file mode 100644 index 4101ba2cf5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_493.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_494.png b/TMessagesProj/src/emojis/twitter/emoji/0_494.png deleted file mode 100644 index 9754424dcb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_494.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_495.png b/TMessagesProj/src/emojis/twitter/emoji/0_495.png deleted file mode 100644 index 939c1da88c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_495.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_496.png b/TMessagesProj/src/emojis/twitter/emoji/0_496.png deleted file mode 100644 index 86b9f67749..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_496.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_497.png b/TMessagesProj/src/emojis/twitter/emoji/0_497.png deleted file mode 100644 index e6c685c336..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_497.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_498.png b/TMessagesProj/src/emojis/twitter/emoji/0_498.png deleted file mode 100644 index 42a632a2dc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_498.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_499.png b/TMessagesProj/src/emojis/twitter/emoji/0_499.png deleted file mode 100644 index bb5f14f280..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_499.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_5.png b/TMessagesProj/src/emojis/twitter/emoji/0_5.png deleted file mode 100644 index a5830e90b8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_50.png b/TMessagesProj/src/emojis/twitter/emoji/0_50.png deleted file mode 100644 index 51ae40109e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_500.png b/TMessagesProj/src/emojis/twitter/emoji/0_500.png deleted file mode 100644 index 923740e6ea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_500.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_501.png b/TMessagesProj/src/emojis/twitter/emoji/0_501.png deleted file mode 100644 index cbd3b98a03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_501.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_502.png b/TMessagesProj/src/emojis/twitter/emoji/0_502.png deleted file mode 100644 index 69d83dabf9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_502.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_503.png b/TMessagesProj/src/emojis/twitter/emoji/0_503.png deleted file mode 100644 index efeba3ecaf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_503.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_504.png b/TMessagesProj/src/emojis/twitter/emoji/0_504.png deleted file mode 100644 index d6734aa531..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_504.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_505.png b/TMessagesProj/src/emojis/twitter/emoji/0_505.png deleted file mode 100644 index 2aa8348eb0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_505.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_506.png b/TMessagesProj/src/emojis/twitter/emoji/0_506.png deleted file mode 100644 index 360fb8e759..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_506.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_507.png b/TMessagesProj/src/emojis/twitter/emoji/0_507.png deleted file mode 100644 index 9f528aa5e9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_507.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_508.png b/TMessagesProj/src/emojis/twitter/emoji/0_508.png deleted file mode 100644 index 66eb985620..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_508.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_509.png b/TMessagesProj/src/emojis/twitter/emoji/0_509.png deleted file mode 100644 index 398b0ccacd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_509.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_51.png b/TMessagesProj/src/emojis/twitter/emoji/0_51.png deleted file mode 100644 index 03a831e3fe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_510.png b/TMessagesProj/src/emojis/twitter/emoji/0_510.png deleted file mode 100644 index df5cfdaeaa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_510.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_511.png b/TMessagesProj/src/emojis/twitter/emoji/0_511.png deleted file mode 100644 index 7906f16980..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_511.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_512.png b/TMessagesProj/src/emojis/twitter/emoji/0_512.png deleted file mode 100644 index cfe82910bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_512.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_513.png b/TMessagesProj/src/emojis/twitter/emoji/0_513.png deleted file mode 100644 index cffcda6b36..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_513.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_514.png b/TMessagesProj/src/emojis/twitter/emoji/0_514.png deleted file mode 100644 index c0610c595f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_514.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_515.png b/TMessagesProj/src/emojis/twitter/emoji/0_515.png deleted file mode 100644 index b25145eb07..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_515.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_516.png b/TMessagesProj/src/emojis/twitter/emoji/0_516.png deleted file mode 100644 index 92daf40a20..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_516.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_517.png b/TMessagesProj/src/emojis/twitter/emoji/0_517.png deleted file mode 100644 index 1da7108d98..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_517.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_518.png b/TMessagesProj/src/emojis/twitter/emoji/0_518.png deleted file mode 100644 index 973216ab75..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_518.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_519.png b/TMessagesProj/src/emojis/twitter/emoji/0_519.png deleted file mode 100644 index 2db5ea9474..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_519.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_52.png b/TMessagesProj/src/emojis/twitter/emoji/0_52.png deleted file mode 100644 index 4499a36dff..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_520.png b/TMessagesProj/src/emojis/twitter/emoji/0_520.png deleted file mode 100644 index 68c8dc3e7d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_520.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_521.png b/TMessagesProj/src/emojis/twitter/emoji/0_521.png deleted file mode 100644 index e2ecac74ef..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_521.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_522.png b/TMessagesProj/src/emojis/twitter/emoji/0_522.png deleted file mode 100644 index 9ad7458ea5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_522.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_523.png b/TMessagesProj/src/emojis/twitter/emoji/0_523.png deleted file mode 100644 index 9b82ac1d77..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_523.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_524.png b/TMessagesProj/src/emojis/twitter/emoji/0_524.png deleted file mode 100644 index f90aa4b0ad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_524.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_525.png b/TMessagesProj/src/emojis/twitter/emoji/0_525.png deleted file mode 100644 index 61734637b8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_525.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_526.png b/TMessagesProj/src/emojis/twitter/emoji/0_526.png deleted file mode 100644 index 8f9a40dbe3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_526.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_527.png b/TMessagesProj/src/emojis/twitter/emoji/0_527.png deleted file mode 100644 index dab06a0507..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_527.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_528.png b/TMessagesProj/src/emojis/twitter/emoji/0_528.png deleted file mode 100644 index c893621565..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_528.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_529.png b/TMessagesProj/src/emojis/twitter/emoji/0_529.png deleted file mode 100644 index 29104128f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_529.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_53.png b/TMessagesProj/src/emojis/twitter/emoji/0_53.png deleted file mode 100644 index 088d84828e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_530.png b/TMessagesProj/src/emojis/twitter/emoji/0_530.png deleted file mode 100644 index 6211db9c7c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_530.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_531.png b/TMessagesProj/src/emojis/twitter/emoji/0_531.png deleted file mode 100644 index 795dbbc86d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_531.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_532.png b/TMessagesProj/src/emojis/twitter/emoji/0_532.png deleted file mode 100644 index 1e534c9667..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_532.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_533.png b/TMessagesProj/src/emojis/twitter/emoji/0_533.png deleted file mode 100644 index 4770d9d165..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_533.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_534.png b/TMessagesProj/src/emojis/twitter/emoji/0_534.png deleted file mode 100644 index d7a69c67ff..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_534.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_535.png b/TMessagesProj/src/emojis/twitter/emoji/0_535.png deleted file mode 100644 index d85063124d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_535.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_536.png b/TMessagesProj/src/emojis/twitter/emoji/0_536.png deleted file mode 100644 index cc8c084ba7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_536.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_537.png b/TMessagesProj/src/emojis/twitter/emoji/0_537.png deleted file mode 100644 index 1f5c73fb2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_537.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_538.png b/TMessagesProj/src/emojis/twitter/emoji/0_538.png deleted file mode 100644 index df38ed0d0a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_538.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_539.png b/TMessagesProj/src/emojis/twitter/emoji/0_539.png deleted file mode 100644 index f1e3b04204..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_539.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_54.png b/TMessagesProj/src/emojis/twitter/emoji/0_54.png deleted file mode 100644 index 15ebc2b80a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_540.png b/TMessagesProj/src/emojis/twitter/emoji/0_540.png deleted file mode 100644 index 3e09147dd5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_540.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_541.png b/TMessagesProj/src/emojis/twitter/emoji/0_541.png deleted file mode 100644 index d10071a130..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_541.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_542.png b/TMessagesProj/src/emojis/twitter/emoji/0_542.png deleted file mode 100644 index a7174aa361..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_542.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_543.png b/TMessagesProj/src/emojis/twitter/emoji/0_543.png deleted file mode 100644 index 8bf8b30972..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_543.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_544.png b/TMessagesProj/src/emojis/twitter/emoji/0_544.png deleted file mode 100644 index 1f9c8bf676..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_544.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_545.png b/TMessagesProj/src/emojis/twitter/emoji/0_545.png deleted file mode 100644 index 459ca920a6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_545.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_546.png b/TMessagesProj/src/emojis/twitter/emoji/0_546.png deleted file mode 100644 index fe95398a73..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_546.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_547.png b/TMessagesProj/src/emojis/twitter/emoji/0_547.png deleted file mode 100644 index 936ee33567..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_547.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_548.png b/TMessagesProj/src/emojis/twitter/emoji/0_548.png deleted file mode 100644 index cede00b8d4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_548.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_549.png b/TMessagesProj/src/emojis/twitter/emoji/0_549.png deleted file mode 100644 index b57cc050b4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_549.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_55.png b/TMessagesProj/src/emojis/twitter/emoji/0_55.png deleted file mode 100644 index 7ee3e3dcbf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_550.png b/TMessagesProj/src/emojis/twitter/emoji/0_550.png deleted file mode 100644 index 05ba313beb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_550.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_551.png b/TMessagesProj/src/emojis/twitter/emoji/0_551.png deleted file mode 100644 index fb392f0b23..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_551.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_552.png b/TMessagesProj/src/emojis/twitter/emoji/0_552.png deleted file mode 100644 index ce1565fd6e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_552.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_553.png b/TMessagesProj/src/emojis/twitter/emoji/0_553.png deleted file mode 100644 index 615d65ac3d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_553.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_554.png b/TMessagesProj/src/emojis/twitter/emoji/0_554.png deleted file mode 100644 index 96beceb6fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_554.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_555.png b/TMessagesProj/src/emojis/twitter/emoji/0_555.png deleted file mode 100644 index ba8e96e38b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_555.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_556.png b/TMessagesProj/src/emojis/twitter/emoji/0_556.png deleted file mode 100644 index 503633853e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_556.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_557.png b/TMessagesProj/src/emojis/twitter/emoji/0_557.png deleted file mode 100644 index dfefb57964..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_557.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_558.png b/TMessagesProj/src/emojis/twitter/emoji/0_558.png deleted file mode 100644 index 1ee3174ae4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_558.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_559.png b/TMessagesProj/src/emojis/twitter/emoji/0_559.png deleted file mode 100644 index 8644ab8784..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_559.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_56.png b/TMessagesProj/src/emojis/twitter/emoji/0_56.png deleted file mode 100644 index 4c236020cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_560.png b/TMessagesProj/src/emojis/twitter/emoji/0_560.png deleted file mode 100644 index ebb28e9290..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_560.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_561.png b/TMessagesProj/src/emojis/twitter/emoji/0_561.png deleted file mode 100644 index 225d8cfc83..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_561.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_562.png b/TMessagesProj/src/emojis/twitter/emoji/0_562.png deleted file mode 100644 index ff91215a2f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_562.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_563.png b/TMessagesProj/src/emojis/twitter/emoji/0_563.png deleted file mode 100644 index ca3ded16ce..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_563.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_564.png b/TMessagesProj/src/emojis/twitter/emoji/0_564.png deleted file mode 100644 index 6bf6cf9278..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_564.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_565.png b/TMessagesProj/src/emojis/twitter/emoji/0_565.png deleted file mode 100644 index b8719a83e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_565.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_566.png b/TMessagesProj/src/emojis/twitter/emoji/0_566.png deleted file mode 100644 index 4a599649ed..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_566.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_567.png b/TMessagesProj/src/emojis/twitter/emoji/0_567.png deleted file mode 100644 index 0508a0ec1d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_567.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_568.png b/TMessagesProj/src/emojis/twitter/emoji/0_568.png deleted file mode 100644 index 76d3131e49..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_568.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_569.png b/TMessagesProj/src/emojis/twitter/emoji/0_569.png deleted file mode 100644 index c34856d361..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_569.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_57.png b/TMessagesProj/src/emojis/twitter/emoji/0_57.png deleted file mode 100644 index 500cbb5279..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_570.png b/TMessagesProj/src/emojis/twitter/emoji/0_570.png deleted file mode 100644 index 6b0cffb269..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_570.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_571.png b/TMessagesProj/src/emojis/twitter/emoji/0_571.png deleted file mode 100644 index 6b2e4670eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_571.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_572.png b/TMessagesProj/src/emojis/twitter/emoji/0_572.png deleted file mode 100644 index d3c36c33ac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_572.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_573.png b/TMessagesProj/src/emojis/twitter/emoji/0_573.png deleted file mode 100644 index 0cf14f49c3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_573.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_574.png b/TMessagesProj/src/emojis/twitter/emoji/0_574.png deleted file mode 100644 index 97230cb4d4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_574.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_575.png b/TMessagesProj/src/emojis/twitter/emoji/0_575.png deleted file mode 100644 index 8aff89efbc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_575.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_576.png b/TMessagesProj/src/emojis/twitter/emoji/0_576.png deleted file mode 100644 index fc71793fb5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_576.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_577.png b/TMessagesProj/src/emojis/twitter/emoji/0_577.png deleted file mode 100644 index e4ba9bd129..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_577.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_578.png b/TMessagesProj/src/emojis/twitter/emoji/0_578.png deleted file mode 100644 index 1f14f7af7b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_578.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_579.png b/TMessagesProj/src/emojis/twitter/emoji/0_579.png deleted file mode 100644 index 23b79b80b3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_579.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_58.png b/TMessagesProj/src/emojis/twitter/emoji/0_58.png deleted file mode 100644 index 4753b0b2cd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_580.png b/TMessagesProj/src/emojis/twitter/emoji/0_580.png deleted file mode 100644 index 4b04385593..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_580.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_581.png b/TMessagesProj/src/emojis/twitter/emoji/0_581.png deleted file mode 100644 index c568aee405..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_581.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_582.png b/TMessagesProj/src/emojis/twitter/emoji/0_582.png deleted file mode 100644 index 7aaa0ab547..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_582.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_583.png b/TMessagesProj/src/emojis/twitter/emoji/0_583.png deleted file mode 100644 index 69ab857b2f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_583.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_584.png b/TMessagesProj/src/emojis/twitter/emoji/0_584.png deleted file mode 100644 index 0843714e16..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_584.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_585.png b/TMessagesProj/src/emojis/twitter/emoji/0_585.png deleted file mode 100644 index 73863d3118..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_585.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_586.png b/TMessagesProj/src/emojis/twitter/emoji/0_586.png deleted file mode 100644 index a12bd57a93..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_586.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_587.png b/TMessagesProj/src/emojis/twitter/emoji/0_587.png deleted file mode 100644 index 7db5ac0e7d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_587.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_588.png b/TMessagesProj/src/emojis/twitter/emoji/0_588.png deleted file mode 100644 index 9fe3f48492..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_588.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_589.png b/TMessagesProj/src/emojis/twitter/emoji/0_589.png deleted file mode 100644 index 950537ad0c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_589.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_59.png b/TMessagesProj/src/emojis/twitter/emoji/0_59.png deleted file mode 100644 index 44604d0f9d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_590.png b/TMessagesProj/src/emojis/twitter/emoji/0_590.png deleted file mode 100644 index 265ed5bf08..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_590.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_591.png b/TMessagesProj/src/emojis/twitter/emoji/0_591.png deleted file mode 100644 index 81667dee55..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_591.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_592.png b/TMessagesProj/src/emojis/twitter/emoji/0_592.png deleted file mode 100644 index 96dfc9a78e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_592.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_593.png b/TMessagesProj/src/emojis/twitter/emoji/0_593.png deleted file mode 100644 index 986bbacc83..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_593.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_594.png b/TMessagesProj/src/emojis/twitter/emoji/0_594.png deleted file mode 100644 index cf132a4595..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_594.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_595.png b/TMessagesProj/src/emojis/twitter/emoji/0_595.png deleted file mode 100644 index df26da23b3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_595.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_596.png b/TMessagesProj/src/emojis/twitter/emoji/0_596.png deleted file mode 100644 index b242465d43..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_596.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_597.png b/TMessagesProj/src/emojis/twitter/emoji/0_597.png deleted file mode 100644 index 460a3f392c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_597.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_598.png b/TMessagesProj/src/emojis/twitter/emoji/0_598.png deleted file mode 100644 index 449a2d0ae6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_598.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_599.png b/TMessagesProj/src/emojis/twitter/emoji/0_599.png deleted file mode 100644 index 2fdf3852bc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_599.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_6.png b/TMessagesProj/src/emojis/twitter/emoji/0_6.png deleted file mode 100644 index fcf8ebcb5f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_60.png b/TMessagesProj/src/emojis/twitter/emoji/0_60.png deleted file mode 100644 index c7bfa2bbd4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_600.png b/TMessagesProj/src/emojis/twitter/emoji/0_600.png deleted file mode 100644 index 36d0f23bda..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_600.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_601.png b/TMessagesProj/src/emojis/twitter/emoji/0_601.png deleted file mode 100644 index abbe7ac231..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_601.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_602.png b/TMessagesProj/src/emojis/twitter/emoji/0_602.png deleted file mode 100644 index 59e882fcbc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_602.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_603.png b/TMessagesProj/src/emojis/twitter/emoji/0_603.png deleted file mode 100644 index 8b0acfe621..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_603.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_604.png b/TMessagesProj/src/emojis/twitter/emoji/0_604.png deleted file mode 100644 index aaf04f6238..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_604.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_605.png b/TMessagesProj/src/emojis/twitter/emoji/0_605.png deleted file mode 100644 index 8045ffbd6c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_605.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_606.png b/TMessagesProj/src/emojis/twitter/emoji/0_606.png deleted file mode 100644 index 797452ee41..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_606.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_607.png b/TMessagesProj/src/emojis/twitter/emoji/0_607.png deleted file mode 100644 index a3a911f099..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_607.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_608.png b/TMessagesProj/src/emojis/twitter/emoji/0_608.png deleted file mode 100644 index 2972bb6aad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_608.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_609.png b/TMessagesProj/src/emojis/twitter/emoji/0_609.png deleted file mode 100644 index e9f5bf8fd9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_609.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_61.png b/TMessagesProj/src/emojis/twitter/emoji/0_61.png deleted file mode 100644 index 4ddc79fcd7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_610.png b/TMessagesProj/src/emojis/twitter/emoji/0_610.png deleted file mode 100644 index 0ba583cf7d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_610.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_611.png b/TMessagesProj/src/emojis/twitter/emoji/0_611.png deleted file mode 100644 index 6403596aa9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_611.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_612.png b/TMessagesProj/src/emojis/twitter/emoji/0_612.png deleted file mode 100644 index 4ba6153582..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_612.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_613.png b/TMessagesProj/src/emojis/twitter/emoji/0_613.png deleted file mode 100644 index cf156e7764..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_613.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_614.png b/TMessagesProj/src/emojis/twitter/emoji/0_614.png deleted file mode 100644 index 2efe05ea57..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_614.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_615.png b/TMessagesProj/src/emojis/twitter/emoji/0_615.png deleted file mode 100644 index f5f5ca0043..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_615.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_616.png b/TMessagesProj/src/emojis/twitter/emoji/0_616.png deleted file mode 100644 index fae8bab6b0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_616.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_617.png b/TMessagesProj/src/emojis/twitter/emoji/0_617.png deleted file mode 100644 index 568b29dd3d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_617.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_618.png b/TMessagesProj/src/emojis/twitter/emoji/0_618.png deleted file mode 100644 index d9cd99e449..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_618.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_619.png b/TMessagesProj/src/emojis/twitter/emoji/0_619.png deleted file mode 100644 index c0fc2b4952..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_619.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_62.png b/TMessagesProj/src/emojis/twitter/emoji/0_62.png deleted file mode 100644 index 8c15670331..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_620.png b/TMessagesProj/src/emojis/twitter/emoji/0_620.png deleted file mode 100644 index 392ab48734..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_620.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_621.png b/TMessagesProj/src/emojis/twitter/emoji/0_621.png deleted file mode 100644 index 8297dea8bd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_621.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_622.png b/TMessagesProj/src/emojis/twitter/emoji/0_622.png deleted file mode 100644 index 3337386359..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_622.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_623.png b/TMessagesProj/src/emojis/twitter/emoji/0_623.png deleted file mode 100644 index 7beee609ac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_623.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_624.png b/TMessagesProj/src/emojis/twitter/emoji/0_624.png deleted file mode 100644 index 356d7d3d82..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_624.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_625.png b/TMessagesProj/src/emojis/twitter/emoji/0_625.png deleted file mode 100644 index 030c206677..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_625.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_626.png b/TMessagesProj/src/emojis/twitter/emoji/0_626.png deleted file mode 100644 index 09c34ed704..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_626.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_627.png b/TMessagesProj/src/emojis/twitter/emoji/0_627.png deleted file mode 100644 index 06a00711ad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_627.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_628.png b/TMessagesProj/src/emojis/twitter/emoji/0_628.png deleted file mode 100644 index 9062fb6c08..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_628.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_629.png b/TMessagesProj/src/emojis/twitter/emoji/0_629.png deleted file mode 100644 index 0587103ef2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_629.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_63.png b/TMessagesProj/src/emojis/twitter/emoji/0_63.png deleted file mode 100644 index 2d75cf3f46..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_630.png b/TMessagesProj/src/emojis/twitter/emoji/0_630.png deleted file mode 100644 index 3397fa5c7f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_630.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_631.png b/TMessagesProj/src/emojis/twitter/emoji/0_631.png deleted file mode 100644 index 6cf85e1aa8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_631.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_632.png b/TMessagesProj/src/emojis/twitter/emoji/0_632.png deleted file mode 100644 index 29a73f0cc2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_632.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_633.png b/TMessagesProj/src/emojis/twitter/emoji/0_633.png deleted file mode 100644 index 0e4e06857d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_633.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_634.png b/TMessagesProj/src/emojis/twitter/emoji/0_634.png deleted file mode 100644 index eb1d8bc8eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_634.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_635.png b/TMessagesProj/src/emojis/twitter/emoji/0_635.png deleted file mode 100644 index 6c60666548..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_635.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_636.png b/TMessagesProj/src/emojis/twitter/emoji/0_636.png deleted file mode 100644 index 503cf22b08..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_636.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_637.png b/TMessagesProj/src/emojis/twitter/emoji/0_637.png deleted file mode 100644 index bc8321b061..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_637.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_638.png b/TMessagesProj/src/emojis/twitter/emoji/0_638.png deleted file mode 100644 index f1333c128e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_638.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_639.png b/TMessagesProj/src/emojis/twitter/emoji/0_639.png deleted file mode 100644 index 6eaffa7b5a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_639.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_64.png b/TMessagesProj/src/emojis/twitter/emoji/0_64.png deleted file mode 100644 index 53c54dd314..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_640.png b/TMessagesProj/src/emojis/twitter/emoji/0_640.png deleted file mode 100644 index a3e08c76e6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_640.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_641.png b/TMessagesProj/src/emojis/twitter/emoji/0_641.png deleted file mode 100644 index 908528acf1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_641.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_642.png b/TMessagesProj/src/emojis/twitter/emoji/0_642.png deleted file mode 100644 index 09463b0f8e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_642.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_643.png b/TMessagesProj/src/emojis/twitter/emoji/0_643.png deleted file mode 100644 index 05b765c9bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_643.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_644.png b/TMessagesProj/src/emojis/twitter/emoji/0_644.png deleted file mode 100644 index 0ac9f14379..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_644.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_645.png b/TMessagesProj/src/emojis/twitter/emoji/0_645.png deleted file mode 100644 index 8ecef22fd7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_645.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_646.png b/TMessagesProj/src/emojis/twitter/emoji/0_646.png deleted file mode 100644 index 709b34ec1c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_646.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_647.png b/TMessagesProj/src/emojis/twitter/emoji/0_647.png deleted file mode 100644 index 5b3ed7c3dd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_647.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_648.png b/TMessagesProj/src/emojis/twitter/emoji/0_648.png deleted file mode 100644 index 2fa80e638d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_648.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_649.png b/TMessagesProj/src/emojis/twitter/emoji/0_649.png deleted file mode 100644 index 48c798bbdc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_649.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_65.png b/TMessagesProj/src/emojis/twitter/emoji/0_65.png deleted file mode 100644 index 259c3d0d3e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_650.png b/TMessagesProj/src/emojis/twitter/emoji/0_650.png deleted file mode 100644 index 0db2daef7f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_650.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_651.png b/TMessagesProj/src/emojis/twitter/emoji/0_651.png deleted file mode 100644 index 57824eddc4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_651.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_652.png b/TMessagesProj/src/emojis/twitter/emoji/0_652.png deleted file mode 100644 index da7a5a84d2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_652.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_653.png b/TMessagesProj/src/emojis/twitter/emoji/0_653.png deleted file mode 100644 index 6382ae48a8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_653.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_654.png b/TMessagesProj/src/emojis/twitter/emoji/0_654.png deleted file mode 100644 index 5bf4606738..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_654.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_655.png b/TMessagesProj/src/emojis/twitter/emoji/0_655.png deleted file mode 100644 index 89295a8e53..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_655.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_656.png b/TMessagesProj/src/emojis/twitter/emoji/0_656.png deleted file mode 100644 index 24c8a8592b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_656.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_657.png b/TMessagesProj/src/emojis/twitter/emoji/0_657.png deleted file mode 100644 index 9977e7a804..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_657.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_658.png b/TMessagesProj/src/emojis/twitter/emoji/0_658.png deleted file mode 100644 index 53b41fe82f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_658.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_659.png b/TMessagesProj/src/emojis/twitter/emoji/0_659.png deleted file mode 100644 index 712db77ce2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_659.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_66.png b/TMessagesProj/src/emojis/twitter/emoji/0_66.png deleted file mode 100644 index 5f9949f8da..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_660.png b/TMessagesProj/src/emojis/twitter/emoji/0_660.png deleted file mode 100644 index 9365ce61bb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_660.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_661.png b/TMessagesProj/src/emojis/twitter/emoji/0_661.png deleted file mode 100644 index c6787315d4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_661.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_662.png b/TMessagesProj/src/emojis/twitter/emoji/0_662.png deleted file mode 100644 index aa024bd46c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_662.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_663.png b/TMessagesProj/src/emojis/twitter/emoji/0_663.png deleted file mode 100644 index 8418b6f072..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_663.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_664.png b/TMessagesProj/src/emojis/twitter/emoji/0_664.png deleted file mode 100644 index c8723dac8d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_664.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_665.png b/TMessagesProj/src/emojis/twitter/emoji/0_665.png deleted file mode 100644 index 0a75b9d8d0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_665.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_666.png b/TMessagesProj/src/emojis/twitter/emoji/0_666.png deleted file mode 100644 index e54a8d4dbd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_666.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_667.png b/TMessagesProj/src/emojis/twitter/emoji/0_667.png deleted file mode 100644 index 18130cb7cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_667.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_668.png b/TMessagesProj/src/emojis/twitter/emoji/0_668.png deleted file mode 100644 index c265567a52..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_668.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_669.png b/TMessagesProj/src/emojis/twitter/emoji/0_669.png deleted file mode 100644 index f279d150c0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_669.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_67.png b/TMessagesProj/src/emojis/twitter/emoji/0_67.png deleted file mode 100644 index 6d35827e8e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_670.png b/TMessagesProj/src/emojis/twitter/emoji/0_670.png deleted file mode 100644 index 807b988d8f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_670.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_671.png b/TMessagesProj/src/emojis/twitter/emoji/0_671.png deleted file mode 100644 index 55d838ae2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_671.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_672.png b/TMessagesProj/src/emojis/twitter/emoji/0_672.png deleted file mode 100644 index d95414cd49..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_672.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_673.png b/TMessagesProj/src/emojis/twitter/emoji/0_673.png deleted file mode 100644 index 16249a6a09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_673.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_674.png b/TMessagesProj/src/emojis/twitter/emoji/0_674.png deleted file mode 100644 index 5e52cd2dd8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_674.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_675.png b/TMessagesProj/src/emojis/twitter/emoji/0_675.png deleted file mode 100644 index 8fb8d42667..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_675.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_676.png b/TMessagesProj/src/emojis/twitter/emoji/0_676.png deleted file mode 100644 index d41df6bbc7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_676.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_677.png b/TMessagesProj/src/emojis/twitter/emoji/0_677.png deleted file mode 100644 index 6294172eb1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_677.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_678.png b/TMessagesProj/src/emojis/twitter/emoji/0_678.png deleted file mode 100644 index 7b45b3b889..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_678.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_679.png b/TMessagesProj/src/emojis/twitter/emoji/0_679.png deleted file mode 100644 index 414f7a4872..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_679.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_68.png b/TMessagesProj/src/emojis/twitter/emoji/0_68.png deleted file mode 100644 index 6e29429ce1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_680.png b/TMessagesProj/src/emojis/twitter/emoji/0_680.png deleted file mode 100644 index dc3a1dfd2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_680.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_681.png b/TMessagesProj/src/emojis/twitter/emoji/0_681.png deleted file mode 100644 index 5e85a64a2f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_681.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_682.png b/TMessagesProj/src/emojis/twitter/emoji/0_682.png deleted file mode 100644 index 7d256615c5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_682.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_683.png b/TMessagesProj/src/emojis/twitter/emoji/0_683.png deleted file mode 100644 index 18fbe7e5a5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_683.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_684.png b/TMessagesProj/src/emojis/twitter/emoji/0_684.png deleted file mode 100644 index c541611cc2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_684.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_685.png b/TMessagesProj/src/emojis/twitter/emoji/0_685.png deleted file mode 100644 index feafcb2506..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_685.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_686.png b/TMessagesProj/src/emojis/twitter/emoji/0_686.png deleted file mode 100644 index 1b8ffa4f0b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_686.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_687.png b/TMessagesProj/src/emojis/twitter/emoji/0_687.png deleted file mode 100644 index 9ea641bdaa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_687.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_688.png b/TMessagesProj/src/emojis/twitter/emoji/0_688.png deleted file mode 100644 index 3a64538e5e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_688.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_689.png b/TMessagesProj/src/emojis/twitter/emoji/0_689.png deleted file mode 100644 index 7e2ec6194a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_689.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_69.png b/TMessagesProj/src/emojis/twitter/emoji/0_69.png deleted file mode 100644 index 55f6074f4b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_690.png b/TMessagesProj/src/emojis/twitter/emoji/0_690.png deleted file mode 100644 index 459a8262fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_690.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_691.png b/TMessagesProj/src/emojis/twitter/emoji/0_691.png deleted file mode 100644 index 1a85c0af35..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_691.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_692.png b/TMessagesProj/src/emojis/twitter/emoji/0_692.png deleted file mode 100644 index 20adfc274a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_692.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_693.png b/TMessagesProj/src/emojis/twitter/emoji/0_693.png deleted file mode 100644 index 42d84956ca..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_693.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_694.png b/TMessagesProj/src/emojis/twitter/emoji/0_694.png deleted file mode 100644 index 6babd50784..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_694.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_695.png b/TMessagesProj/src/emojis/twitter/emoji/0_695.png deleted file mode 100644 index bd4d39fb68..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_695.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_696.png b/TMessagesProj/src/emojis/twitter/emoji/0_696.png deleted file mode 100644 index 25a5fd843e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_696.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_697.png b/TMessagesProj/src/emojis/twitter/emoji/0_697.png deleted file mode 100644 index 3933e3e164..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_697.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_698.png b/TMessagesProj/src/emojis/twitter/emoji/0_698.png deleted file mode 100644 index 77e5c6e1f1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_698.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_699.png b/TMessagesProj/src/emojis/twitter/emoji/0_699.png deleted file mode 100644 index 89011becee..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_699.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_7.png b/TMessagesProj/src/emojis/twitter/emoji/0_7.png deleted file mode 100644 index 97f859d090..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_70.png b/TMessagesProj/src/emojis/twitter/emoji/0_70.png deleted file mode 100644 index 590d4b8465..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_700.png b/TMessagesProj/src/emojis/twitter/emoji/0_700.png deleted file mode 100644 index e998cf9f43..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_700.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_701.png b/TMessagesProj/src/emojis/twitter/emoji/0_701.png deleted file mode 100644 index 3001c754df..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_701.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_702.png b/TMessagesProj/src/emojis/twitter/emoji/0_702.png deleted file mode 100644 index 8fd9c5a7a5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_702.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_703.png b/TMessagesProj/src/emojis/twitter/emoji/0_703.png deleted file mode 100644 index 9736b6fc83..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_703.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_704.png b/TMessagesProj/src/emojis/twitter/emoji/0_704.png deleted file mode 100644 index 277eca2cc1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_704.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_705.png b/TMessagesProj/src/emojis/twitter/emoji/0_705.png deleted file mode 100644 index 770022c509..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_705.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_706.png b/TMessagesProj/src/emojis/twitter/emoji/0_706.png deleted file mode 100644 index ba7d97f6a5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_706.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_707.png b/TMessagesProj/src/emojis/twitter/emoji/0_707.png deleted file mode 100644 index 6059c02080..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_707.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_708.png b/TMessagesProj/src/emojis/twitter/emoji/0_708.png deleted file mode 100644 index b2297efd03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_708.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_709.png b/TMessagesProj/src/emojis/twitter/emoji/0_709.png deleted file mode 100644 index fce70217cd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_709.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_71.png b/TMessagesProj/src/emojis/twitter/emoji/0_71.png deleted file mode 100644 index 6522fd4d9f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_710.png b/TMessagesProj/src/emojis/twitter/emoji/0_710.png deleted file mode 100644 index e3c78722a2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_710.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_711.png b/TMessagesProj/src/emojis/twitter/emoji/0_711.png deleted file mode 100644 index 2085853c11..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_711.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_712.png b/TMessagesProj/src/emojis/twitter/emoji/0_712.png deleted file mode 100644 index dba1c147d7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_712.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_713.png b/TMessagesProj/src/emojis/twitter/emoji/0_713.png deleted file mode 100644 index a538515722..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_713.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_714.png b/TMessagesProj/src/emojis/twitter/emoji/0_714.png deleted file mode 100644 index f57cb89f22..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_714.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_715.png b/TMessagesProj/src/emojis/twitter/emoji/0_715.png deleted file mode 100644 index 69eb8111e6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_715.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_716.png b/TMessagesProj/src/emojis/twitter/emoji/0_716.png deleted file mode 100644 index e4e1ff2006..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_716.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_717.png b/TMessagesProj/src/emojis/twitter/emoji/0_717.png deleted file mode 100644 index a9bad4d482..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_717.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_718.png b/TMessagesProj/src/emojis/twitter/emoji/0_718.png deleted file mode 100644 index 322237353b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_718.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_719.png b/TMessagesProj/src/emojis/twitter/emoji/0_719.png deleted file mode 100644 index bcaff9b0a4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_719.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_72.png b/TMessagesProj/src/emojis/twitter/emoji/0_72.png deleted file mode 100644 index 323df68191..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_720.png b/TMessagesProj/src/emojis/twitter/emoji/0_720.png deleted file mode 100644 index d722305dcd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_720.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_721.png b/TMessagesProj/src/emojis/twitter/emoji/0_721.png deleted file mode 100644 index b0ba9b2918..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_721.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_722.png b/TMessagesProj/src/emojis/twitter/emoji/0_722.png deleted file mode 100644 index 1337b6a791..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_722.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_723.png b/TMessagesProj/src/emojis/twitter/emoji/0_723.png deleted file mode 100644 index b299e539b3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_723.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_724.png b/TMessagesProj/src/emojis/twitter/emoji/0_724.png deleted file mode 100644 index 2bf7174281..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_724.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_725.png b/TMessagesProj/src/emojis/twitter/emoji/0_725.png deleted file mode 100644 index 1525822d7b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_725.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_726.png b/TMessagesProj/src/emojis/twitter/emoji/0_726.png deleted file mode 100644 index 95d113cc69..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_726.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_727.png b/TMessagesProj/src/emojis/twitter/emoji/0_727.png deleted file mode 100644 index cd5ee272a0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_727.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_728.png b/TMessagesProj/src/emojis/twitter/emoji/0_728.png deleted file mode 100644 index b5889e2fd8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_728.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_729.png b/TMessagesProj/src/emojis/twitter/emoji/0_729.png deleted file mode 100644 index c46f9a367a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_729.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_73.png b/TMessagesProj/src/emojis/twitter/emoji/0_73.png deleted file mode 100644 index 6e4694c4cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_730.png b/TMessagesProj/src/emojis/twitter/emoji/0_730.png deleted file mode 100644 index 2ca41c7cbe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_730.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_731.png b/TMessagesProj/src/emojis/twitter/emoji/0_731.png deleted file mode 100644 index b03891b38f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_731.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_732.png b/TMessagesProj/src/emojis/twitter/emoji/0_732.png deleted file mode 100644 index 40a8673f2f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_732.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_733.png b/TMessagesProj/src/emojis/twitter/emoji/0_733.png deleted file mode 100644 index 2753b3d025..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_733.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_734.png b/TMessagesProj/src/emojis/twitter/emoji/0_734.png deleted file mode 100644 index f3981360f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_734.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_735.png b/TMessagesProj/src/emojis/twitter/emoji/0_735.png deleted file mode 100644 index 5a13fa1876..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_735.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_736.png b/TMessagesProj/src/emojis/twitter/emoji/0_736.png deleted file mode 100644 index 51034c99cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_736.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_737.png b/TMessagesProj/src/emojis/twitter/emoji/0_737.png deleted file mode 100644 index fc4b8ed10b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_737.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_738.png b/TMessagesProj/src/emojis/twitter/emoji/0_738.png deleted file mode 100644 index 296cd9acbe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_738.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_739.png b/TMessagesProj/src/emojis/twitter/emoji/0_739.png deleted file mode 100644 index 05b8fa5167..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_739.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_74.png b/TMessagesProj/src/emojis/twitter/emoji/0_74.png deleted file mode 100644 index 0c08b262d6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_740.png b/TMessagesProj/src/emojis/twitter/emoji/0_740.png deleted file mode 100644 index 8e199071fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_740.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_741.png b/TMessagesProj/src/emojis/twitter/emoji/0_741.png deleted file mode 100644 index 5a9a851b2c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_741.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_742.png b/TMessagesProj/src/emojis/twitter/emoji/0_742.png deleted file mode 100644 index 2c7e9ecd4e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_742.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_743.png b/TMessagesProj/src/emojis/twitter/emoji/0_743.png deleted file mode 100644 index 455e4506ce..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_743.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_744.png b/TMessagesProj/src/emojis/twitter/emoji/0_744.png deleted file mode 100644 index b782b5589c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_744.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_745.png b/TMessagesProj/src/emojis/twitter/emoji/0_745.png deleted file mode 100644 index 8ac2644b0f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_745.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_746.png b/TMessagesProj/src/emojis/twitter/emoji/0_746.png deleted file mode 100644 index 49f5d3b065..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_746.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_747.png b/TMessagesProj/src/emojis/twitter/emoji/0_747.png deleted file mode 100644 index f289656f79..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_747.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_748.png b/TMessagesProj/src/emojis/twitter/emoji/0_748.png deleted file mode 100644 index c08757084e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_748.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_749.png b/TMessagesProj/src/emojis/twitter/emoji/0_749.png deleted file mode 100644 index fe98f66716..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_749.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_75.png b/TMessagesProj/src/emojis/twitter/emoji/0_75.png deleted file mode 100644 index 74834b585e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_750.png b/TMessagesProj/src/emojis/twitter/emoji/0_750.png deleted file mode 100644 index 55fb996286..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_750.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_751.png b/TMessagesProj/src/emojis/twitter/emoji/0_751.png deleted file mode 100644 index 1ac72e1bde..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_751.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_752.png b/TMessagesProj/src/emojis/twitter/emoji/0_752.png deleted file mode 100644 index 5b5d7a42c3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_752.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_753.png b/TMessagesProj/src/emojis/twitter/emoji/0_753.png deleted file mode 100644 index 7fc362f838..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_753.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_754.png b/TMessagesProj/src/emojis/twitter/emoji/0_754.png deleted file mode 100644 index 5ae043a0aa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_754.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_755.png b/TMessagesProj/src/emojis/twitter/emoji/0_755.png deleted file mode 100644 index 0444292779..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_755.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_756.png b/TMessagesProj/src/emojis/twitter/emoji/0_756.png deleted file mode 100644 index b815f805c0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_756.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_757.png b/TMessagesProj/src/emojis/twitter/emoji/0_757.png deleted file mode 100644 index 5328b2c7fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_757.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_758.png b/TMessagesProj/src/emojis/twitter/emoji/0_758.png deleted file mode 100644 index 1615124e96..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_758.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_759.png b/TMessagesProj/src/emojis/twitter/emoji/0_759.png deleted file mode 100644 index 525d337e69..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_759.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_76.png b/TMessagesProj/src/emojis/twitter/emoji/0_76.png deleted file mode 100644 index 9805d5c606..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_760.png b/TMessagesProj/src/emojis/twitter/emoji/0_760.png deleted file mode 100644 index 9be6f3b81e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_760.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_761.png b/TMessagesProj/src/emojis/twitter/emoji/0_761.png deleted file mode 100644 index 65bd778559..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_761.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_762.png b/TMessagesProj/src/emojis/twitter/emoji/0_762.png deleted file mode 100644 index 4567441f4c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_762.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_763.png b/TMessagesProj/src/emojis/twitter/emoji/0_763.png deleted file mode 100644 index 2329e8fcd8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_763.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_764.png b/TMessagesProj/src/emojis/twitter/emoji/0_764.png deleted file mode 100644 index 4f60d08d77..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_764.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_765.png b/TMessagesProj/src/emojis/twitter/emoji/0_765.png deleted file mode 100644 index b9549bf915..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_765.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_766.png b/TMessagesProj/src/emojis/twitter/emoji/0_766.png deleted file mode 100644 index e8b1764d7d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_766.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_767.png b/TMessagesProj/src/emojis/twitter/emoji/0_767.png deleted file mode 100644 index d5cb03e06e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_767.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_768.png b/TMessagesProj/src/emojis/twitter/emoji/0_768.png deleted file mode 100644 index 6b4f874447..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_768.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_769.png b/TMessagesProj/src/emojis/twitter/emoji/0_769.png deleted file mode 100644 index 4b39c5b2b6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_769.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_77.png b/TMessagesProj/src/emojis/twitter/emoji/0_77.png deleted file mode 100644 index 43ef21e81c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_770.png b/TMessagesProj/src/emojis/twitter/emoji/0_770.png deleted file mode 100644 index d1eb74ebef..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_770.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_771.png b/TMessagesProj/src/emojis/twitter/emoji/0_771.png deleted file mode 100644 index 5783c7f99f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_771.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_772.png b/TMessagesProj/src/emojis/twitter/emoji/0_772.png deleted file mode 100644 index c3ce20319c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_772.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_773.png b/TMessagesProj/src/emojis/twitter/emoji/0_773.png deleted file mode 100644 index 20013b9457..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_773.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_774.png b/TMessagesProj/src/emojis/twitter/emoji/0_774.png deleted file mode 100644 index 3e0dfaf4e2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_774.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_775.png b/TMessagesProj/src/emojis/twitter/emoji/0_775.png deleted file mode 100644 index 577c10553f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_775.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_776.png b/TMessagesProj/src/emojis/twitter/emoji/0_776.png deleted file mode 100644 index c364f0b072..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_776.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_777.png b/TMessagesProj/src/emojis/twitter/emoji/0_777.png deleted file mode 100644 index c4e7bf134d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_777.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_778.png b/TMessagesProj/src/emojis/twitter/emoji/0_778.png deleted file mode 100644 index b3af46159a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_778.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_779.png b/TMessagesProj/src/emojis/twitter/emoji/0_779.png deleted file mode 100644 index f6cd6a69b6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_779.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_78.png b/TMessagesProj/src/emojis/twitter/emoji/0_78.png deleted file mode 100644 index 013c97e74d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_780.png b/TMessagesProj/src/emojis/twitter/emoji/0_780.png deleted file mode 100644 index 2ea92a19a2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_780.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_781.png b/TMessagesProj/src/emojis/twitter/emoji/0_781.png deleted file mode 100644 index 8115be6e7b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_781.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_782.png b/TMessagesProj/src/emojis/twitter/emoji/0_782.png deleted file mode 100644 index be7a0d3521..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_782.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_783.png b/TMessagesProj/src/emojis/twitter/emoji/0_783.png deleted file mode 100644 index b80b74acec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_783.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_784.png b/TMessagesProj/src/emojis/twitter/emoji/0_784.png deleted file mode 100644 index 1748dd8070..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_784.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_785.png b/TMessagesProj/src/emojis/twitter/emoji/0_785.png deleted file mode 100644 index 3dfae5b64e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_785.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_786.png b/TMessagesProj/src/emojis/twitter/emoji/0_786.png deleted file mode 100644 index f3fb9efa93..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_786.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_787.png b/TMessagesProj/src/emojis/twitter/emoji/0_787.png deleted file mode 100644 index 893b879bf6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_787.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_788.png b/TMessagesProj/src/emojis/twitter/emoji/0_788.png deleted file mode 100644 index da6eadf105..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_788.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_789.png b/TMessagesProj/src/emojis/twitter/emoji/0_789.png deleted file mode 100644 index 79da00ec4a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_789.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_79.png b/TMessagesProj/src/emojis/twitter/emoji/0_79.png deleted file mode 100644 index db7612209e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_790.png b/TMessagesProj/src/emojis/twitter/emoji/0_790.png deleted file mode 100644 index 402ace270d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_790.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_791.png b/TMessagesProj/src/emojis/twitter/emoji/0_791.png deleted file mode 100644 index 84d61984e9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_791.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_792.png b/TMessagesProj/src/emojis/twitter/emoji/0_792.png deleted file mode 100644 index ee6e38fb6a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_792.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_793.png b/TMessagesProj/src/emojis/twitter/emoji/0_793.png deleted file mode 100644 index 0a02122351..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_793.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_794.png b/TMessagesProj/src/emojis/twitter/emoji/0_794.png deleted file mode 100644 index d1c9657021..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_794.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_795.png b/TMessagesProj/src/emojis/twitter/emoji/0_795.png deleted file mode 100644 index 66c9852681..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_795.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_796.png b/TMessagesProj/src/emojis/twitter/emoji/0_796.png deleted file mode 100644 index 2343ad1d82..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_796.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_797.png b/TMessagesProj/src/emojis/twitter/emoji/0_797.png deleted file mode 100644 index 937fc91764..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_797.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_798.png b/TMessagesProj/src/emojis/twitter/emoji/0_798.png deleted file mode 100644 index 4811a5fac6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_798.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_799.png b/TMessagesProj/src/emojis/twitter/emoji/0_799.png deleted file mode 100644 index ab24651077..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_799.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_8.png b/TMessagesProj/src/emojis/twitter/emoji/0_8.png deleted file mode 100644 index 478b86edeb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_80.png b/TMessagesProj/src/emojis/twitter/emoji/0_80.png deleted file mode 100644 index 45fc7be32c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_800.png b/TMessagesProj/src/emojis/twitter/emoji/0_800.png deleted file mode 100644 index c81caa31c2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_800.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_801.png b/TMessagesProj/src/emojis/twitter/emoji/0_801.png deleted file mode 100644 index 8c1800806e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_801.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_802.png b/TMessagesProj/src/emojis/twitter/emoji/0_802.png deleted file mode 100644 index adc6b29a38..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_802.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_803.png b/TMessagesProj/src/emojis/twitter/emoji/0_803.png deleted file mode 100644 index a19dd4f518..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_803.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_804.png b/TMessagesProj/src/emojis/twitter/emoji/0_804.png deleted file mode 100644 index 79db597872..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_804.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_805.png b/TMessagesProj/src/emojis/twitter/emoji/0_805.png deleted file mode 100644 index 99ba6c8c53..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_805.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_806.png b/TMessagesProj/src/emojis/twitter/emoji/0_806.png deleted file mode 100644 index 876e39595b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_806.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_807.png b/TMessagesProj/src/emojis/twitter/emoji/0_807.png deleted file mode 100644 index d484d491b1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_807.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_808.png b/TMessagesProj/src/emojis/twitter/emoji/0_808.png deleted file mode 100644 index 8202741915..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_808.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_809.png b/TMessagesProj/src/emojis/twitter/emoji/0_809.png deleted file mode 100644 index ea36582c8b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_809.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_81.png b/TMessagesProj/src/emojis/twitter/emoji/0_81.png deleted file mode 100644 index d80d9fd25f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_810.png b/TMessagesProj/src/emojis/twitter/emoji/0_810.png deleted file mode 100644 index f71668aea7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_810.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_811.png b/TMessagesProj/src/emojis/twitter/emoji/0_811.png deleted file mode 100644 index 8bc25c2eaf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_811.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_812.png b/TMessagesProj/src/emojis/twitter/emoji/0_812.png deleted file mode 100644 index 3fc5ed6c64..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_812.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_813.png b/TMessagesProj/src/emojis/twitter/emoji/0_813.png deleted file mode 100644 index 1b7cd05022..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_813.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_814.png b/TMessagesProj/src/emojis/twitter/emoji/0_814.png deleted file mode 100644 index d3eeafe0b4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_814.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_815.png b/TMessagesProj/src/emojis/twitter/emoji/0_815.png deleted file mode 100644 index 6a2eeeb87f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_815.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_816.png b/TMessagesProj/src/emojis/twitter/emoji/0_816.png deleted file mode 100644 index af794eb614..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_816.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_817.png b/TMessagesProj/src/emojis/twitter/emoji/0_817.png deleted file mode 100644 index 16cddfb91a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_817.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_818.png b/TMessagesProj/src/emojis/twitter/emoji/0_818.png deleted file mode 100644 index c4b4c07f04..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_818.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_819.png b/TMessagesProj/src/emojis/twitter/emoji/0_819.png deleted file mode 100644 index 7d90e9ab0e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_819.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_82.png b/TMessagesProj/src/emojis/twitter/emoji/0_82.png deleted file mode 100644 index b886b61bb9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_820.png b/TMessagesProj/src/emojis/twitter/emoji/0_820.png deleted file mode 100644 index c2e128f787..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_820.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_821.png b/TMessagesProj/src/emojis/twitter/emoji/0_821.png deleted file mode 100644 index dff2fa727d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_821.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_822.png b/TMessagesProj/src/emojis/twitter/emoji/0_822.png deleted file mode 100644 index 7ac930d527..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_822.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_823.png b/TMessagesProj/src/emojis/twitter/emoji/0_823.png deleted file mode 100644 index a075d20ac0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_823.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_824.png b/TMessagesProj/src/emojis/twitter/emoji/0_824.png deleted file mode 100644 index cd9930495a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_824.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_825.png b/TMessagesProj/src/emojis/twitter/emoji/0_825.png deleted file mode 100644 index 4b0589e7f6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_825.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_826.png b/TMessagesProj/src/emojis/twitter/emoji/0_826.png deleted file mode 100644 index cd67720835..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_826.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_827.png b/TMessagesProj/src/emojis/twitter/emoji/0_827.png deleted file mode 100644 index 96acfe2b2a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_827.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_828.png b/TMessagesProj/src/emojis/twitter/emoji/0_828.png deleted file mode 100644 index 2960377a9a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_828.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_829.png b/TMessagesProj/src/emojis/twitter/emoji/0_829.png deleted file mode 100644 index 2e1143b4a2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_829.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_83.png b/TMessagesProj/src/emojis/twitter/emoji/0_83.png deleted file mode 100644 index 82538ee746..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_830.png b/TMessagesProj/src/emojis/twitter/emoji/0_830.png deleted file mode 100644 index 2b408e5bf3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_830.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_831.png b/TMessagesProj/src/emojis/twitter/emoji/0_831.png deleted file mode 100644 index 281988277f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_831.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_832.png b/TMessagesProj/src/emojis/twitter/emoji/0_832.png deleted file mode 100644 index c3e949b3d8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_832.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_833.png b/TMessagesProj/src/emojis/twitter/emoji/0_833.png deleted file mode 100644 index 4adabb5a52..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_833.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_834.png b/TMessagesProj/src/emojis/twitter/emoji/0_834.png deleted file mode 100644 index 72a681f990..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_834.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_835.png b/TMessagesProj/src/emojis/twitter/emoji/0_835.png deleted file mode 100644 index 7ae7a7f127..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_835.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_836.png b/TMessagesProj/src/emojis/twitter/emoji/0_836.png deleted file mode 100644 index efeec1727b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_836.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_837.png b/TMessagesProj/src/emojis/twitter/emoji/0_837.png deleted file mode 100644 index 49f21f585b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_837.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_838.png b/TMessagesProj/src/emojis/twitter/emoji/0_838.png deleted file mode 100644 index 9f16f0acb5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_838.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_839.png b/TMessagesProj/src/emojis/twitter/emoji/0_839.png deleted file mode 100644 index 697b1e52d4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_839.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_84.png b/TMessagesProj/src/emojis/twitter/emoji/0_84.png deleted file mode 100644 index a0a5945d74..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_840.png b/TMessagesProj/src/emojis/twitter/emoji/0_840.png deleted file mode 100644 index 1d34f47afb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_840.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_841.png b/TMessagesProj/src/emojis/twitter/emoji/0_841.png deleted file mode 100644 index 4e763622fe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_841.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_842.png b/TMessagesProj/src/emojis/twitter/emoji/0_842.png deleted file mode 100644 index a19e4d3c33..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_842.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_843.png b/TMessagesProj/src/emojis/twitter/emoji/0_843.png deleted file mode 100644 index daa702b14c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_843.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_844.png b/TMessagesProj/src/emojis/twitter/emoji/0_844.png deleted file mode 100644 index 8468f8d74a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_844.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_845.png b/TMessagesProj/src/emojis/twitter/emoji/0_845.png deleted file mode 100644 index 5becba1e8e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_845.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_846.png b/TMessagesProj/src/emojis/twitter/emoji/0_846.png deleted file mode 100644 index 7a3b58da55..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_846.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_847.png b/TMessagesProj/src/emojis/twitter/emoji/0_847.png deleted file mode 100644 index 0a570dcbf2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_847.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_848.png b/TMessagesProj/src/emojis/twitter/emoji/0_848.png deleted file mode 100644 index e66f6bbc3e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_848.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_849.png b/TMessagesProj/src/emojis/twitter/emoji/0_849.png deleted file mode 100644 index 5f8fd93778..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_849.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_85.png b/TMessagesProj/src/emojis/twitter/emoji/0_85.png deleted file mode 100644 index 3067fd2570..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_850.png b/TMessagesProj/src/emojis/twitter/emoji/0_850.png deleted file mode 100644 index 1396d6023d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_850.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_851.png b/TMessagesProj/src/emojis/twitter/emoji/0_851.png deleted file mode 100644 index fdc2a9e31f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_851.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_852.png b/TMessagesProj/src/emojis/twitter/emoji/0_852.png deleted file mode 100644 index 3ae94389b7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_852.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_853.png b/TMessagesProj/src/emojis/twitter/emoji/0_853.png deleted file mode 100644 index bd9d87bc42..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_853.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_854.png b/TMessagesProj/src/emojis/twitter/emoji/0_854.png deleted file mode 100644 index 9d7e66f9ee..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_854.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_855.png b/TMessagesProj/src/emojis/twitter/emoji/0_855.png deleted file mode 100644 index 38225999cc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_855.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_856.png b/TMessagesProj/src/emojis/twitter/emoji/0_856.png deleted file mode 100644 index 867f50f3fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_856.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_857.png b/TMessagesProj/src/emojis/twitter/emoji/0_857.png deleted file mode 100644 index 4c1888b530..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_857.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_858.png b/TMessagesProj/src/emojis/twitter/emoji/0_858.png deleted file mode 100644 index 68574c7c02..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_858.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_859.png b/TMessagesProj/src/emojis/twitter/emoji/0_859.png deleted file mode 100644 index 84daecdb79..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_859.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_86.png b/TMessagesProj/src/emojis/twitter/emoji/0_86.png deleted file mode 100644 index d3ec6bfdf0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_860.png b/TMessagesProj/src/emojis/twitter/emoji/0_860.png deleted file mode 100644 index 81d01c068a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_860.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_861.png b/TMessagesProj/src/emojis/twitter/emoji/0_861.png deleted file mode 100644 index ad4b58e521..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_861.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_862.png b/TMessagesProj/src/emojis/twitter/emoji/0_862.png deleted file mode 100644 index 85ce31a9d7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_862.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_863.png b/TMessagesProj/src/emojis/twitter/emoji/0_863.png deleted file mode 100644 index c7d56aff48..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_863.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_864.png b/TMessagesProj/src/emojis/twitter/emoji/0_864.png deleted file mode 100644 index 9d844bba61..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_864.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_865.png b/TMessagesProj/src/emojis/twitter/emoji/0_865.png deleted file mode 100644 index 9726bc9bb4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_865.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_866.png b/TMessagesProj/src/emojis/twitter/emoji/0_866.png deleted file mode 100644 index a64c397412..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_866.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_867.png b/TMessagesProj/src/emojis/twitter/emoji/0_867.png deleted file mode 100644 index c62859b096..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_867.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_868.png b/TMessagesProj/src/emojis/twitter/emoji/0_868.png deleted file mode 100644 index 32e8d2f45a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_868.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_869.png b/TMessagesProj/src/emojis/twitter/emoji/0_869.png deleted file mode 100644 index 44719efa43..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_869.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_87.png b/TMessagesProj/src/emojis/twitter/emoji/0_87.png deleted file mode 100644 index f694cd0a91..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_870.png b/TMessagesProj/src/emojis/twitter/emoji/0_870.png deleted file mode 100644 index ae12433a03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_870.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_871.png b/TMessagesProj/src/emojis/twitter/emoji/0_871.png deleted file mode 100644 index 4f6b8625cd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_871.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_872.png b/TMessagesProj/src/emojis/twitter/emoji/0_872.png deleted file mode 100644 index e0fc2a9ada..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_872.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_873.png b/TMessagesProj/src/emojis/twitter/emoji/0_873.png deleted file mode 100644 index adfd1ead8a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_873.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_874.png b/TMessagesProj/src/emojis/twitter/emoji/0_874.png deleted file mode 100644 index 1fda7114d4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_874.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_875.png b/TMessagesProj/src/emojis/twitter/emoji/0_875.png deleted file mode 100644 index 6d8abb7e8e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_875.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_876.png b/TMessagesProj/src/emojis/twitter/emoji/0_876.png deleted file mode 100644 index b6718c5618..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_876.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_877.png b/TMessagesProj/src/emojis/twitter/emoji/0_877.png deleted file mode 100644 index 67d0794556..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_877.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_878.png b/TMessagesProj/src/emojis/twitter/emoji/0_878.png deleted file mode 100644 index 92d7805aad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_878.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_879.png b/TMessagesProj/src/emojis/twitter/emoji/0_879.png deleted file mode 100644 index 3935f9c622..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_879.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_88.png b/TMessagesProj/src/emojis/twitter/emoji/0_88.png deleted file mode 100644 index 93af29d5c8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_880.png b/TMessagesProj/src/emojis/twitter/emoji/0_880.png deleted file mode 100644 index a8a186743e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_880.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_881.png b/TMessagesProj/src/emojis/twitter/emoji/0_881.png deleted file mode 100644 index d98cd949d5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_881.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_882.png b/TMessagesProj/src/emojis/twitter/emoji/0_882.png deleted file mode 100644 index cbf0cdf101..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_882.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_883.png b/TMessagesProj/src/emojis/twitter/emoji/0_883.png deleted file mode 100644 index 05c708081b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_883.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_884.png b/TMessagesProj/src/emojis/twitter/emoji/0_884.png deleted file mode 100644 index 96dec5a736..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_884.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_885.png b/TMessagesProj/src/emojis/twitter/emoji/0_885.png deleted file mode 100644 index 6798399967..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_885.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_886.png b/TMessagesProj/src/emojis/twitter/emoji/0_886.png deleted file mode 100644 index e8d28fb220..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_886.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_887.png b/TMessagesProj/src/emojis/twitter/emoji/0_887.png deleted file mode 100644 index 8ce75093b7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_887.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_888.png b/TMessagesProj/src/emojis/twitter/emoji/0_888.png deleted file mode 100644 index 7e996da1fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_888.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_889.png b/TMessagesProj/src/emojis/twitter/emoji/0_889.png deleted file mode 100644 index 61e77e0a2a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_889.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_89.png b/TMessagesProj/src/emojis/twitter/emoji/0_89.png deleted file mode 100644 index 0fc42959fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_890.png b/TMessagesProj/src/emojis/twitter/emoji/0_890.png deleted file mode 100644 index 3387f1e855..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_890.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_891.png b/TMessagesProj/src/emojis/twitter/emoji/0_891.png deleted file mode 100644 index 3051f1701d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_891.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_892.png b/TMessagesProj/src/emojis/twitter/emoji/0_892.png deleted file mode 100644 index fbf220185d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_892.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_893.png b/TMessagesProj/src/emojis/twitter/emoji/0_893.png deleted file mode 100644 index 1f45c6bea6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_893.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_894.png b/TMessagesProj/src/emojis/twitter/emoji/0_894.png deleted file mode 100644 index c3532f6d6d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_894.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_895.png b/TMessagesProj/src/emojis/twitter/emoji/0_895.png deleted file mode 100644 index 06c289f094..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_895.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_896.png b/TMessagesProj/src/emojis/twitter/emoji/0_896.png deleted file mode 100644 index 80ef628732..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_896.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_897.png b/TMessagesProj/src/emojis/twitter/emoji/0_897.png deleted file mode 100644 index 11ddbbb4a8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_897.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_898.png b/TMessagesProj/src/emojis/twitter/emoji/0_898.png deleted file mode 100644 index c122d11977..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_898.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_899.png b/TMessagesProj/src/emojis/twitter/emoji/0_899.png deleted file mode 100644 index bd69acc40c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_899.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_9.png b/TMessagesProj/src/emojis/twitter/emoji/0_9.png deleted file mode 100644 index af7ed54d84..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_90.png b/TMessagesProj/src/emojis/twitter/emoji/0_90.png deleted file mode 100644 index 79edc24c74..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_900.png b/TMessagesProj/src/emojis/twitter/emoji/0_900.png deleted file mode 100644 index 2c1dea1933..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_900.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_901.png b/TMessagesProj/src/emojis/twitter/emoji/0_901.png deleted file mode 100644 index 4103892c40..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_901.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_902.png b/TMessagesProj/src/emojis/twitter/emoji/0_902.png deleted file mode 100644 index 87c6a000ac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_902.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_903.png b/TMessagesProj/src/emojis/twitter/emoji/0_903.png deleted file mode 100644 index efeb17765a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_903.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_904.png b/TMessagesProj/src/emojis/twitter/emoji/0_904.png deleted file mode 100644 index d0efe6aec2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_904.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_905.png b/TMessagesProj/src/emojis/twitter/emoji/0_905.png deleted file mode 100644 index ff26e5e282..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_905.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_906.png b/TMessagesProj/src/emojis/twitter/emoji/0_906.png deleted file mode 100644 index 88faf0b0be..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_906.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_907.png b/TMessagesProj/src/emojis/twitter/emoji/0_907.png deleted file mode 100644 index b8e262a12c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_907.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_908.png b/TMessagesProj/src/emojis/twitter/emoji/0_908.png deleted file mode 100644 index 6de8944c96..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_908.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_909.png b/TMessagesProj/src/emojis/twitter/emoji/0_909.png deleted file mode 100644 index 061aab9d83..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_909.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_91.png b/TMessagesProj/src/emojis/twitter/emoji/0_91.png deleted file mode 100644 index e2fd59ff12..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_910.png b/TMessagesProj/src/emojis/twitter/emoji/0_910.png deleted file mode 100644 index 176cc235e8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_910.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_911.png b/TMessagesProj/src/emojis/twitter/emoji/0_911.png deleted file mode 100644 index d78d065aa3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_911.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_912.png b/TMessagesProj/src/emojis/twitter/emoji/0_912.png deleted file mode 100644 index efc7ba8894..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_912.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_913.png b/TMessagesProj/src/emojis/twitter/emoji/0_913.png deleted file mode 100644 index 226c3ac831..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_913.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_914.png b/TMessagesProj/src/emojis/twitter/emoji/0_914.png deleted file mode 100644 index 79ecedbdf5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_914.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_915.png b/TMessagesProj/src/emojis/twitter/emoji/0_915.png deleted file mode 100644 index 590dc46ddd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_915.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_916.png b/TMessagesProj/src/emojis/twitter/emoji/0_916.png deleted file mode 100644 index 7fb3ffd949..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_916.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_917.png b/TMessagesProj/src/emojis/twitter/emoji/0_917.png deleted file mode 100644 index 88f3e4ae61..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_917.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_918.png b/TMessagesProj/src/emojis/twitter/emoji/0_918.png deleted file mode 100644 index ad864a4ec0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_918.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_919.png b/TMessagesProj/src/emojis/twitter/emoji/0_919.png deleted file mode 100644 index 5f7e194ee6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_919.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_92.png b/TMessagesProj/src/emojis/twitter/emoji/0_92.png deleted file mode 100644 index 25914aee80..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_920.png b/TMessagesProj/src/emojis/twitter/emoji/0_920.png deleted file mode 100644 index 3cf21093d7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_920.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_921.png b/TMessagesProj/src/emojis/twitter/emoji/0_921.png deleted file mode 100644 index 51f2e63dba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_921.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_922.png b/TMessagesProj/src/emojis/twitter/emoji/0_922.png deleted file mode 100644 index efb97455d2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_922.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_923.png b/TMessagesProj/src/emojis/twitter/emoji/0_923.png deleted file mode 100644 index 94f83232e2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_923.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_924.png b/TMessagesProj/src/emojis/twitter/emoji/0_924.png deleted file mode 100644 index ed3738d5b1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_924.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_925.png b/TMessagesProj/src/emojis/twitter/emoji/0_925.png deleted file mode 100644 index facaa7054b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_925.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_926.png b/TMessagesProj/src/emojis/twitter/emoji/0_926.png deleted file mode 100644 index ac6c0624fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_926.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_927.png b/TMessagesProj/src/emojis/twitter/emoji/0_927.png deleted file mode 100644 index d35650903d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_927.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_928.png b/TMessagesProj/src/emojis/twitter/emoji/0_928.png deleted file mode 100644 index fe26a2f862..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_928.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_929.png b/TMessagesProj/src/emojis/twitter/emoji/0_929.png deleted file mode 100644 index cf3b4df9c2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_929.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_93.png b/TMessagesProj/src/emojis/twitter/emoji/0_93.png deleted file mode 100644 index 979f15e973..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_930.png b/TMessagesProj/src/emojis/twitter/emoji/0_930.png deleted file mode 100644 index dfc34e3f8f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_930.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_931.png b/TMessagesProj/src/emojis/twitter/emoji/0_931.png deleted file mode 100644 index ccfb5e813f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_931.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_932.png b/TMessagesProj/src/emojis/twitter/emoji/0_932.png deleted file mode 100644 index 7ace453a71..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_932.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_933.png b/TMessagesProj/src/emojis/twitter/emoji/0_933.png deleted file mode 100644 index 8fe68032f9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_933.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_934.png b/TMessagesProj/src/emojis/twitter/emoji/0_934.png deleted file mode 100644 index f0eafb9489..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_934.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_935.png b/TMessagesProj/src/emojis/twitter/emoji/0_935.png deleted file mode 100644 index 38c0c8fc07..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_935.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_936.png b/TMessagesProj/src/emojis/twitter/emoji/0_936.png deleted file mode 100644 index f44587d11e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_936.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_937.png b/TMessagesProj/src/emojis/twitter/emoji/0_937.png deleted file mode 100644 index d622bb5cbc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_937.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_938.png b/TMessagesProj/src/emojis/twitter/emoji/0_938.png deleted file mode 100644 index de9bba315c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_938.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_939.png b/TMessagesProj/src/emojis/twitter/emoji/0_939.png deleted file mode 100644 index 49a755dadd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_939.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_94.png b/TMessagesProj/src/emojis/twitter/emoji/0_94.png deleted file mode 100644 index 8e5dd41bf6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_940.png b/TMessagesProj/src/emojis/twitter/emoji/0_940.png deleted file mode 100644 index 79875c781f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_940.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_941.png b/TMessagesProj/src/emojis/twitter/emoji/0_941.png deleted file mode 100644 index 4adea01743..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_941.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_942.png b/TMessagesProj/src/emojis/twitter/emoji/0_942.png deleted file mode 100644 index bf5695462c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_942.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_943.png b/TMessagesProj/src/emojis/twitter/emoji/0_943.png deleted file mode 100644 index 58f9d54b50..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_943.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_944.png b/TMessagesProj/src/emojis/twitter/emoji/0_944.png deleted file mode 100644 index 47904ef036..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_944.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_945.png b/TMessagesProj/src/emojis/twitter/emoji/0_945.png deleted file mode 100644 index cb69044c1c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_945.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_946.png b/TMessagesProj/src/emojis/twitter/emoji/0_946.png deleted file mode 100644 index 8441f1a10a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_946.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_947.png b/TMessagesProj/src/emojis/twitter/emoji/0_947.png deleted file mode 100644 index 647335074e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_947.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_948.png b/TMessagesProj/src/emojis/twitter/emoji/0_948.png deleted file mode 100644 index 4e71842172..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_948.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_949.png b/TMessagesProj/src/emojis/twitter/emoji/0_949.png deleted file mode 100644 index aa325dce3e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_949.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_95.png b/TMessagesProj/src/emojis/twitter/emoji/0_95.png deleted file mode 100644 index f55611f5f1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_950.png b/TMessagesProj/src/emojis/twitter/emoji/0_950.png deleted file mode 100644 index d22275821e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_950.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_951.png b/TMessagesProj/src/emojis/twitter/emoji/0_951.png deleted file mode 100644 index 6e5be1124a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_951.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_952.png b/TMessagesProj/src/emojis/twitter/emoji/0_952.png deleted file mode 100644 index 15a340958e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_952.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_953.png b/TMessagesProj/src/emojis/twitter/emoji/0_953.png deleted file mode 100644 index de8bf966c7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_953.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_954.png b/TMessagesProj/src/emojis/twitter/emoji/0_954.png deleted file mode 100644 index 201e0fc479..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_954.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_955.png b/TMessagesProj/src/emojis/twitter/emoji/0_955.png deleted file mode 100644 index 15a15feaf7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_955.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_956.png b/TMessagesProj/src/emojis/twitter/emoji/0_956.png deleted file mode 100644 index 73519e77e3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_956.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_957.png b/TMessagesProj/src/emojis/twitter/emoji/0_957.png deleted file mode 100644 index 0e471287c4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_957.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_958.png b/TMessagesProj/src/emojis/twitter/emoji/0_958.png deleted file mode 100644 index 2ecdaae814..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_958.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_959.png b/TMessagesProj/src/emojis/twitter/emoji/0_959.png deleted file mode 100644 index b588166545..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_959.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_96.png b/TMessagesProj/src/emojis/twitter/emoji/0_96.png deleted file mode 100644 index 675b9e64b7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_960.png b/TMessagesProj/src/emojis/twitter/emoji/0_960.png deleted file mode 100644 index 261a662742..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_960.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_961.png b/TMessagesProj/src/emojis/twitter/emoji/0_961.png deleted file mode 100644 index ee19b3cefb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_961.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_962.png b/TMessagesProj/src/emojis/twitter/emoji/0_962.png deleted file mode 100644 index c079cc802a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_962.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_963.png b/TMessagesProj/src/emojis/twitter/emoji/0_963.png deleted file mode 100644 index 613e01a5c7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_963.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_964.png b/TMessagesProj/src/emojis/twitter/emoji/0_964.png deleted file mode 100644 index 1d889c29da..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_964.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_965.png b/TMessagesProj/src/emojis/twitter/emoji/0_965.png deleted file mode 100644 index 952f461e45..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_965.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_966.png b/TMessagesProj/src/emojis/twitter/emoji/0_966.png deleted file mode 100644 index d4484af79b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_966.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_967.png b/TMessagesProj/src/emojis/twitter/emoji/0_967.png deleted file mode 100644 index 6eb31dd5e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_967.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_968.png b/TMessagesProj/src/emojis/twitter/emoji/0_968.png deleted file mode 100644 index 1e6fb8ae69..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_968.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_969.png b/TMessagesProj/src/emojis/twitter/emoji/0_969.png deleted file mode 100644 index 8cbecb04f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_969.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_97.png b/TMessagesProj/src/emojis/twitter/emoji/0_97.png deleted file mode 100644 index d6a3df89e1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_970.png b/TMessagesProj/src/emojis/twitter/emoji/0_970.png deleted file mode 100644 index eeb3316f42..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_970.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_971.png b/TMessagesProj/src/emojis/twitter/emoji/0_971.png deleted file mode 100644 index 92479fa383..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_971.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_972.png b/TMessagesProj/src/emojis/twitter/emoji/0_972.png deleted file mode 100644 index 40b2f42563..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_972.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_973.png b/TMessagesProj/src/emojis/twitter/emoji/0_973.png deleted file mode 100644 index 36ac653096..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_973.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_974.png b/TMessagesProj/src/emojis/twitter/emoji/0_974.png deleted file mode 100644 index 0521f23611..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_974.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_975.png b/TMessagesProj/src/emojis/twitter/emoji/0_975.png deleted file mode 100644 index 3754a2a43e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_975.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_976.png b/TMessagesProj/src/emojis/twitter/emoji/0_976.png deleted file mode 100644 index a2ef921e64..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_976.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_977.png b/TMessagesProj/src/emojis/twitter/emoji/0_977.png deleted file mode 100644 index eb2085cbb2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_977.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_978.png b/TMessagesProj/src/emojis/twitter/emoji/0_978.png deleted file mode 100644 index f774d66c2d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_978.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_979.png b/TMessagesProj/src/emojis/twitter/emoji/0_979.png deleted file mode 100644 index 21c53ed9c6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_979.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_98.png b/TMessagesProj/src/emojis/twitter/emoji/0_98.png deleted file mode 100644 index 54e460267c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_980.png b/TMessagesProj/src/emojis/twitter/emoji/0_980.png deleted file mode 100644 index 7b26932935..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_980.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_981.png b/TMessagesProj/src/emojis/twitter/emoji/0_981.png deleted file mode 100644 index 7ffb3ebb92..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_981.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_982.png b/TMessagesProj/src/emojis/twitter/emoji/0_982.png deleted file mode 100644 index 5579209080..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_982.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_983.png b/TMessagesProj/src/emojis/twitter/emoji/0_983.png deleted file mode 100644 index 1ecef01220..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_983.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_984.png b/TMessagesProj/src/emojis/twitter/emoji/0_984.png deleted file mode 100644 index 0bedd3055a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_984.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_985.png b/TMessagesProj/src/emojis/twitter/emoji/0_985.png deleted file mode 100644 index ad208fd15b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_985.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_986.png b/TMessagesProj/src/emojis/twitter/emoji/0_986.png deleted file mode 100644 index 530ddb57b4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_986.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_987.png b/TMessagesProj/src/emojis/twitter/emoji/0_987.png deleted file mode 100644 index 4fd982e207..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_987.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_988.png b/TMessagesProj/src/emojis/twitter/emoji/0_988.png deleted file mode 100644 index 8b1a87c3d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_988.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_989.png b/TMessagesProj/src/emojis/twitter/emoji/0_989.png deleted file mode 100644 index 841d6b251b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_989.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_99.png b/TMessagesProj/src/emojis/twitter/emoji/0_99.png deleted file mode 100644 index f5338fa0fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_990.png b/TMessagesProj/src/emojis/twitter/emoji/0_990.png deleted file mode 100644 index 15970da7f9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_990.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_991.png b/TMessagesProj/src/emojis/twitter/emoji/0_991.png deleted file mode 100644 index 9c70c3e5e5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_991.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_992.png b/TMessagesProj/src/emojis/twitter/emoji/0_992.png deleted file mode 100644 index eef568a2ad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_992.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_993.png b/TMessagesProj/src/emojis/twitter/emoji/0_993.png deleted file mode 100644 index 2a0fc841c6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_993.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_994.png b/TMessagesProj/src/emojis/twitter/emoji/0_994.png deleted file mode 100644 index 4cf6422302..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_994.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_995.png b/TMessagesProj/src/emojis/twitter/emoji/0_995.png deleted file mode 100644 index 48c7cd7074..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_995.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_996.png b/TMessagesProj/src/emojis/twitter/emoji/0_996.png deleted file mode 100644 index 67b76abd26..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_996.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_997.png b/TMessagesProj/src/emojis/twitter/emoji/0_997.png deleted file mode 100644 index f01154d5e6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_997.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_998.png b/TMessagesProj/src/emojis/twitter/emoji/0_998.png deleted file mode 100644 index 96cee8a4b1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_998.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/0_999.png b/TMessagesProj/src/emojis/twitter/emoji/0_999.png deleted file mode 100644 index def1df4028..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/0_999.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_0.png b/TMessagesProj/src/emojis/twitter/emoji/1_0.png deleted file mode 100644 index 59cf04e37a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_1.png b/TMessagesProj/src/emojis/twitter/emoji/1_1.png deleted file mode 100644 index acb3dfd00c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_10.png b/TMessagesProj/src/emojis/twitter/emoji/1_10.png deleted file mode 100644 index a5340cf65a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_100.png b/TMessagesProj/src/emojis/twitter/emoji/1_100.png deleted file mode 100644 index ba029b09f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_101.png b/TMessagesProj/src/emojis/twitter/emoji/1_101.png deleted file mode 100644 index d1ead6f9c9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_102.png b/TMessagesProj/src/emojis/twitter/emoji/1_102.png deleted file mode 100644 index 4b7293ac9f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_103.png b/TMessagesProj/src/emojis/twitter/emoji/1_103.png deleted file mode 100644 index ae4e2d55f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_104.png b/TMessagesProj/src/emojis/twitter/emoji/1_104.png deleted file mode 100644 index 7ea905a9e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_105.png b/TMessagesProj/src/emojis/twitter/emoji/1_105.png deleted file mode 100644 index 55ef2343f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_106.png b/TMessagesProj/src/emojis/twitter/emoji/1_106.png deleted file mode 100644 index cd8ee65b1e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_107.png b/TMessagesProj/src/emojis/twitter/emoji/1_107.png deleted file mode 100644 index ef6a759f7b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_108.png b/TMessagesProj/src/emojis/twitter/emoji/1_108.png deleted file mode 100644 index f9bce5bcf2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_109.png b/TMessagesProj/src/emojis/twitter/emoji/1_109.png deleted file mode 100644 index 6c44332a8a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_11.png b/TMessagesProj/src/emojis/twitter/emoji/1_11.png deleted file mode 100644 index 3ac5fc6231..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_110.png b/TMessagesProj/src/emojis/twitter/emoji/1_110.png deleted file mode 100644 index 2860b6e219..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_111.png b/TMessagesProj/src/emojis/twitter/emoji/1_111.png deleted file mode 100644 index 6d53f53b9b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_112.png b/TMessagesProj/src/emojis/twitter/emoji/1_112.png deleted file mode 100644 index 89aec9826d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_113.png b/TMessagesProj/src/emojis/twitter/emoji/1_113.png deleted file mode 100644 index ce557c4c3f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_114.png b/TMessagesProj/src/emojis/twitter/emoji/1_114.png deleted file mode 100644 index 533f8d2ac0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_115.png b/TMessagesProj/src/emojis/twitter/emoji/1_115.png deleted file mode 100644 index 568031f881..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_116.png b/TMessagesProj/src/emojis/twitter/emoji/1_116.png deleted file mode 100644 index 0ea306ad9e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_117.png b/TMessagesProj/src/emojis/twitter/emoji/1_117.png deleted file mode 100644 index ba63d40484..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_118.png b/TMessagesProj/src/emojis/twitter/emoji/1_118.png deleted file mode 100644 index e5af6bbf48..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_119.png b/TMessagesProj/src/emojis/twitter/emoji/1_119.png deleted file mode 100644 index 0572730f68..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_12.png b/TMessagesProj/src/emojis/twitter/emoji/1_12.png deleted file mode 100644 index 1e022a9b49..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_120.png b/TMessagesProj/src/emojis/twitter/emoji/1_120.png deleted file mode 100644 index 5bfc2ddbfc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_121.png b/TMessagesProj/src/emojis/twitter/emoji/1_121.png deleted file mode 100644 index 9f101bad95..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_122.png b/TMessagesProj/src/emojis/twitter/emoji/1_122.png deleted file mode 100644 index 5cd20083eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_123.png b/TMessagesProj/src/emojis/twitter/emoji/1_123.png deleted file mode 100644 index 6041fb8143..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_124.png b/TMessagesProj/src/emojis/twitter/emoji/1_124.png deleted file mode 100644 index caf200265a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_125.png b/TMessagesProj/src/emojis/twitter/emoji/1_125.png deleted file mode 100644 index e06c4c24c4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_126.png b/TMessagesProj/src/emojis/twitter/emoji/1_126.png deleted file mode 100644 index ff23b4b30c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_127.png b/TMessagesProj/src/emojis/twitter/emoji/1_127.png deleted file mode 100644 index 73efad602c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_128.png b/TMessagesProj/src/emojis/twitter/emoji/1_128.png deleted file mode 100644 index 26adab20ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_129.png b/TMessagesProj/src/emojis/twitter/emoji/1_129.png deleted file mode 100644 index c26ace5978..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_13.png b/TMessagesProj/src/emojis/twitter/emoji/1_13.png deleted file mode 100644 index 9ba1ef0860..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_130.png b/TMessagesProj/src/emojis/twitter/emoji/1_130.png deleted file mode 100644 index 84eeba6d05..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_131.png b/TMessagesProj/src/emojis/twitter/emoji/1_131.png deleted file mode 100644 index c05991db1f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_132.png b/TMessagesProj/src/emojis/twitter/emoji/1_132.png deleted file mode 100644 index 85cbaeeeb4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_133.png b/TMessagesProj/src/emojis/twitter/emoji/1_133.png deleted file mode 100644 index 6fe8d1eaaa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_134.png b/TMessagesProj/src/emojis/twitter/emoji/1_134.png deleted file mode 100644 index dc7e0d88e9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_135.png b/TMessagesProj/src/emojis/twitter/emoji/1_135.png deleted file mode 100644 index a76589d2f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_136.png b/TMessagesProj/src/emojis/twitter/emoji/1_136.png deleted file mode 100644 index ea52fd2a53..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_137.png b/TMessagesProj/src/emojis/twitter/emoji/1_137.png deleted file mode 100644 index 8528e176f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_138.png b/TMessagesProj/src/emojis/twitter/emoji/1_138.png deleted file mode 100644 index 74574de7ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_139.png b/TMessagesProj/src/emojis/twitter/emoji/1_139.png deleted file mode 100644 index 818eb64d3c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_14.png b/TMessagesProj/src/emojis/twitter/emoji/1_14.png deleted file mode 100644 index a1e4af5221..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_140.png b/TMessagesProj/src/emojis/twitter/emoji/1_140.png deleted file mode 100644 index c3be4595b1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_141.png b/TMessagesProj/src/emojis/twitter/emoji/1_141.png deleted file mode 100644 index 111711d4bc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_142.png b/TMessagesProj/src/emojis/twitter/emoji/1_142.png deleted file mode 100644 index 508001de7e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_143.png b/TMessagesProj/src/emojis/twitter/emoji/1_143.png deleted file mode 100644 index e246e8cc84..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_144.png b/TMessagesProj/src/emojis/twitter/emoji/1_144.png deleted file mode 100644 index af19e1da39..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_145.png b/TMessagesProj/src/emojis/twitter/emoji/1_145.png deleted file mode 100644 index 709e5516c8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_146.png b/TMessagesProj/src/emojis/twitter/emoji/1_146.png deleted file mode 100644 index 10bb5a8c21..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_147.png b/TMessagesProj/src/emojis/twitter/emoji/1_147.png deleted file mode 100644 index 2d101ff669..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_148.png b/TMessagesProj/src/emojis/twitter/emoji/1_148.png deleted file mode 100644 index a560096fa8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_149.png b/TMessagesProj/src/emojis/twitter/emoji/1_149.png deleted file mode 100644 index c5f7a3ccc0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_15.png b/TMessagesProj/src/emojis/twitter/emoji/1_15.png deleted file mode 100644 index f1648589a9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_150.png b/TMessagesProj/src/emojis/twitter/emoji/1_150.png deleted file mode 100644 index eac133f6c1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_151.png b/TMessagesProj/src/emojis/twitter/emoji/1_151.png deleted file mode 100644 index 81a39d2908..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_152.png b/TMessagesProj/src/emojis/twitter/emoji/1_152.png deleted file mode 100644 index 57be921498..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_153.png b/TMessagesProj/src/emojis/twitter/emoji/1_153.png deleted file mode 100644 index 60149deeaa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_154.png b/TMessagesProj/src/emojis/twitter/emoji/1_154.png deleted file mode 100644 index 04bb204b68..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_155.png b/TMessagesProj/src/emojis/twitter/emoji/1_155.png deleted file mode 100644 index d360a525bc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_156.png b/TMessagesProj/src/emojis/twitter/emoji/1_156.png deleted file mode 100644 index 1e27d4e76f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_157.png b/TMessagesProj/src/emojis/twitter/emoji/1_157.png deleted file mode 100644 index 38c7a73786..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_158.png b/TMessagesProj/src/emojis/twitter/emoji/1_158.png deleted file mode 100644 index beccb13a4a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_159.png b/TMessagesProj/src/emojis/twitter/emoji/1_159.png deleted file mode 100644 index bbe40e3d45..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_16.png b/TMessagesProj/src/emojis/twitter/emoji/1_16.png deleted file mode 100644 index ab9cd7f1e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_160.png b/TMessagesProj/src/emojis/twitter/emoji/1_160.png deleted file mode 100644 index 2f6157fdaa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_161.png b/TMessagesProj/src/emojis/twitter/emoji/1_161.png deleted file mode 100644 index 1f9a265450..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_162.png b/TMessagesProj/src/emojis/twitter/emoji/1_162.png deleted file mode 100644 index f38e5ab8b6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_163.png b/TMessagesProj/src/emojis/twitter/emoji/1_163.png deleted file mode 100644 index d2676ff0b1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_164.png b/TMessagesProj/src/emojis/twitter/emoji/1_164.png deleted file mode 100644 index c9457ae36a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_165.png b/TMessagesProj/src/emojis/twitter/emoji/1_165.png deleted file mode 100644 index 50e53311d6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_166.png b/TMessagesProj/src/emojis/twitter/emoji/1_166.png deleted file mode 100644 index 98dc46615c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_167.png b/TMessagesProj/src/emojis/twitter/emoji/1_167.png deleted file mode 100644 index 67c97e7b01..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_168.png b/TMessagesProj/src/emojis/twitter/emoji/1_168.png deleted file mode 100644 index f85719d6e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_169.png b/TMessagesProj/src/emojis/twitter/emoji/1_169.png deleted file mode 100644 index 2aa36cf6b7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_17.png b/TMessagesProj/src/emojis/twitter/emoji/1_17.png deleted file mode 100644 index a00c813c47..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_170.png b/TMessagesProj/src/emojis/twitter/emoji/1_170.png deleted file mode 100644 index f95ada2f78..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_171.png b/TMessagesProj/src/emojis/twitter/emoji/1_171.png deleted file mode 100644 index adbb90e1d7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_172.png b/TMessagesProj/src/emojis/twitter/emoji/1_172.png deleted file mode 100644 index eb1ded7785..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_173.png b/TMessagesProj/src/emojis/twitter/emoji/1_173.png deleted file mode 100644 index d5002a39df..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_174.png b/TMessagesProj/src/emojis/twitter/emoji/1_174.png deleted file mode 100644 index 9920726248..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_175.png b/TMessagesProj/src/emojis/twitter/emoji/1_175.png deleted file mode 100644 index 3219c231f3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_176.png b/TMessagesProj/src/emojis/twitter/emoji/1_176.png deleted file mode 100644 index df7c6430fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_177.png b/TMessagesProj/src/emojis/twitter/emoji/1_177.png deleted file mode 100644 index 4d8219cbf3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_178.png b/TMessagesProj/src/emojis/twitter/emoji/1_178.png deleted file mode 100644 index 9af2067ea2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_179.png b/TMessagesProj/src/emojis/twitter/emoji/1_179.png deleted file mode 100644 index e919099a56..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_18.png b/TMessagesProj/src/emojis/twitter/emoji/1_18.png deleted file mode 100644 index fc43cc392f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_180.png b/TMessagesProj/src/emojis/twitter/emoji/1_180.png deleted file mode 100644 index 2a944c0a85..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_181.png b/TMessagesProj/src/emojis/twitter/emoji/1_181.png deleted file mode 100644 index 5456d71588..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_182.png b/TMessagesProj/src/emojis/twitter/emoji/1_182.png deleted file mode 100644 index a749377480..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_183.png b/TMessagesProj/src/emojis/twitter/emoji/1_183.png deleted file mode 100644 index 6d63990d52..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_184.png b/TMessagesProj/src/emojis/twitter/emoji/1_184.png deleted file mode 100644 index cddba27cfb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_185.png b/TMessagesProj/src/emojis/twitter/emoji/1_185.png deleted file mode 100644 index 2a3a0ecd35..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_186.png b/TMessagesProj/src/emojis/twitter/emoji/1_186.png deleted file mode 100644 index d5a68c2585..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_187.png b/TMessagesProj/src/emojis/twitter/emoji/1_187.png deleted file mode 100644 index 538e2b83ee..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_188.png b/TMessagesProj/src/emojis/twitter/emoji/1_188.png deleted file mode 100644 index 3d8f451a07..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_189.png b/TMessagesProj/src/emojis/twitter/emoji/1_189.png deleted file mode 100644 index 0df91162dc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_19.png b/TMessagesProj/src/emojis/twitter/emoji/1_19.png deleted file mode 100644 index 24b7eb9acd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_190.png b/TMessagesProj/src/emojis/twitter/emoji/1_190.png deleted file mode 100644 index fe75d7d729..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_191.png b/TMessagesProj/src/emojis/twitter/emoji/1_191.png deleted file mode 100644 index 999baf45bd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_192.png b/TMessagesProj/src/emojis/twitter/emoji/1_192.png deleted file mode 100644 index d5a57f1ea6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_193.png b/TMessagesProj/src/emojis/twitter/emoji/1_193.png deleted file mode 100644 index ab87201282..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_194.png b/TMessagesProj/src/emojis/twitter/emoji/1_194.png deleted file mode 100644 index 7486f36470..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_195.png b/TMessagesProj/src/emojis/twitter/emoji/1_195.png deleted file mode 100644 index a8f3d0101b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_196.png b/TMessagesProj/src/emojis/twitter/emoji/1_196.png deleted file mode 100644 index b5b49d8abc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_197.png b/TMessagesProj/src/emojis/twitter/emoji/1_197.png deleted file mode 100644 index b36673e3e4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_198.png b/TMessagesProj/src/emojis/twitter/emoji/1_198.png deleted file mode 100644 index 5133f9e491..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_199.png b/TMessagesProj/src/emojis/twitter/emoji/1_199.png deleted file mode 100644 index 589c5cbdaf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_2.png b/TMessagesProj/src/emojis/twitter/emoji/1_2.png deleted file mode 100644 index 99a7e47648..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_20.png b/TMessagesProj/src/emojis/twitter/emoji/1_20.png deleted file mode 100644 index 413f37af2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_200.png b/TMessagesProj/src/emojis/twitter/emoji/1_200.png deleted file mode 100644 index b0b4a1fa8d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_201.png b/TMessagesProj/src/emojis/twitter/emoji/1_201.png deleted file mode 100644 index e23c12cefc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_202.png b/TMessagesProj/src/emojis/twitter/emoji/1_202.png deleted file mode 100644 index f769329ed3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_203.png b/TMessagesProj/src/emojis/twitter/emoji/1_203.png deleted file mode 100644 index 4559f864d5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_204.png b/TMessagesProj/src/emojis/twitter/emoji/1_204.png deleted file mode 100644 index c46c3f7714..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_205.png b/TMessagesProj/src/emojis/twitter/emoji/1_205.png deleted file mode 100644 index 87cc483b1c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_206.png b/TMessagesProj/src/emojis/twitter/emoji/1_206.png deleted file mode 100644 index a7f2b770f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_207.png b/TMessagesProj/src/emojis/twitter/emoji/1_207.png deleted file mode 100644 index 23f77ebac6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_208.png b/TMessagesProj/src/emojis/twitter/emoji/1_208.png deleted file mode 100644 index bc03845850..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_209.png b/TMessagesProj/src/emojis/twitter/emoji/1_209.png deleted file mode 100644 index bfd470a9af..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_21.png b/TMessagesProj/src/emojis/twitter/emoji/1_21.png deleted file mode 100644 index 8d9cd7e3a2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_210.png b/TMessagesProj/src/emojis/twitter/emoji/1_210.png deleted file mode 100644 index bb2cae30a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_22.png b/TMessagesProj/src/emojis/twitter/emoji/1_22.png deleted file mode 100644 index 8929181c97..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_23.png b/TMessagesProj/src/emojis/twitter/emoji/1_23.png deleted file mode 100644 index c908ef70c5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_24.png b/TMessagesProj/src/emojis/twitter/emoji/1_24.png deleted file mode 100644 index d9de0b8b10..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_25.png b/TMessagesProj/src/emojis/twitter/emoji/1_25.png deleted file mode 100644 index 352f34194e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_26.png b/TMessagesProj/src/emojis/twitter/emoji/1_26.png deleted file mode 100644 index bafb6abd4a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_27.png b/TMessagesProj/src/emojis/twitter/emoji/1_27.png deleted file mode 100644 index 10eb79b39a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_28.png b/TMessagesProj/src/emojis/twitter/emoji/1_28.png deleted file mode 100644 index e567b76f46..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_29.png b/TMessagesProj/src/emojis/twitter/emoji/1_29.png deleted file mode 100644 index 2ea59ea55b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_3.png b/TMessagesProj/src/emojis/twitter/emoji/1_3.png deleted file mode 100644 index 9b88892d66..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_30.png b/TMessagesProj/src/emojis/twitter/emoji/1_30.png deleted file mode 100644 index 56ec4060f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_31.png b/TMessagesProj/src/emojis/twitter/emoji/1_31.png deleted file mode 100644 index 67b6d6153a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_32.png b/TMessagesProj/src/emojis/twitter/emoji/1_32.png deleted file mode 100644 index 5b68cc9fd8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_33.png b/TMessagesProj/src/emojis/twitter/emoji/1_33.png deleted file mode 100644 index 17e0b9e24a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_34.png b/TMessagesProj/src/emojis/twitter/emoji/1_34.png deleted file mode 100644 index 6d6ebe9fb7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_35.png b/TMessagesProj/src/emojis/twitter/emoji/1_35.png deleted file mode 100644 index 2ebedd6742..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_36.png b/TMessagesProj/src/emojis/twitter/emoji/1_36.png deleted file mode 100644 index 7769bd1cd5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_37.png b/TMessagesProj/src/emojis/twitter/emoji/1_37.png deleted file mode 100644 index 50fc01b816..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_38.png b/TMessagesProj/src/emojis/twitter/emoji/1_38.png deleted file mode 100644 index e68f7df45b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_39.png b/TMessagesProj/src/emojis/twitter/emoji/1_39.png deleted file mode 100644 index f99048306d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_4.png b/TMessagesProj/src/emojis/twitter/emoji/1_4.png deleted file mode 100644 index 7fc3322193..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_40.png b/TMessagesProj/src/emojis/twitter/emoji/1_40.png deleted file mode 100644 index 17761cbf19..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_41.png b/TMessagesProj/src/emojis/twitter/emoji/1_41.png deleted file mode 100644 index f667bf3770..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_42.png b/TMessagesProj/src/emojis/twitter/emoji/1_42.png deleted file mode 100644 index b39cd89857..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_43.png b/TMessagesProj/src/emojis/twitter/emoji/1_43.png deleted file mode 100644 index a80975b5d8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_44.png b/TMessagesProj/src/emojis/twitter/emoji/1_44.png deleted file mode 100644 index bc7bd1039d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_45.png b/TMessagesProj/src/emojis/twitter/emoji/1_45.png deleted file mode 100644 index 6b7988032f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_46.png b/TMessagesProj/src/emojis/twitter/emoji/1_46.png deleted file mode 100644 index df2e3e728c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_47.png b/TMessagesProj/src/emojis/twitter/emoji/1_47.png deleted file mode 100644 index 8a4d2f42ef..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_48.png b/TMessagesProj/src/emojis/twitter/emoji/1_48.png deleted file mode 100644 index 278f511e0e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_49.png b/TMessagesProj/src/emojis/twitter/emoji/1_49.png deleted file mode 100644 index 36fd49fb53..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_5.png b/TMessagesProj/src/emojis/twitter/emoji/1_5.png deleted file mode 100644 index aba2064767..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_50.png b/TMessagesProj/src/emojis/twitter/emoji/1_50.png deleted file mode 100644 index c73efc0d6d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_51.png b/TMessagesProj/src/emojis/twitter/emoji/1_51.png deleted file mode 100644 index 99de15d23c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_52.png b/TMessagesProj/src/emojis/twitter/emoji/1_52.png deleted file mode 100644 index 15359be343..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_53.png b/TMessagesProj/src/emojis/twitter/emoji/1_53.png deleted file mode 100644 index 99bdbc9531..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_54.png b/TMessagesProj/src/emojis/twitter/emoji/1_54.png deleted file mode 100644 index 44ebdf38ef..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_55.png b/TMessagesProj/src/emojis/twitter/emoji/1_55.png deleted file mode 100644 index 8dd72b2ebb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_56.png b/TMessagesProj/src/emojis/twitter/emoji/1_56.png deleted file mode 100644 index 77c623246c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_57.png b/TMessagesProj/src/emojis/twitter/emoji/1_57.png deleted file mode 100644 index be607bc9d8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_58.png b/TMessagesProj/src/emojis/twitter/emoji/1_58.png deleted file mode 100644 index 85b7406d7c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_59.png b/TMessagesProj/src/emojis/twitter/emoji/1_59.png deleted file mode 100644 index 6a129cf618..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_6.png b/TMessagesProj/src/emojis/twitter/emoji/1_6.png deleted file mode 100644 index 8ff3eb587e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_60.png b/TMessagesProj/src/emojis/twitter/emoji/1_60.png deleted file mode 100644 index f712b153bd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_61.png b/TMessagesProj/src/emojis/twitter/emoji/1_61.png deleted file mode 100644 index 805b1ad1b2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_62.png b/TMessagesProj/src/emojis/twitter/emoji/1_62.png deleted file mode 100644 index 341e4b0dc1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_63.png b/TMessagesProj/src/emojis/twitter/emoji/1_63.png deleted file mode 100644 index 4cb8c362c7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_64.png b/TMessagesProj/src/emojis/twitter/emoji/1_64.png deleted file mode 100644 index a50407932b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_65.png b/TMessagesProj/src/emojis/twitter/emoji/1_65.png deleted file mode 100644 index a5b1d6032d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_66.png b/TMessagesProj/src/emojis/twitter/emoji/1_66.png deleted file mode 100644 index a8630ec8f5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_67.png b/TMessagesProj/src/emojis/twitter/emoji/1_67.png deleted file mode 100644 index 5de61868a5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_68.png b/TMessagesProj/src/emojis/twitter/emoji/1_68.png deleted file mode 100644 index 11049055ac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_69.png b/TMessagesProj/src/emojis/twitter/emoji/1_69.png deleted file mode 100644 index 0f1bce852c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_7.png b/TMessagesProj/src/emojis/twitter/emoji/1_7.png deleted file mode 100644 index efddb778e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_70.png b/TMessagesProj/src/emojis/twitter/emoji/1_70.png deleted file mode 100644 index 1b930156ea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_71.png b/TMessagesProj/src/emojis/twitter/emoji/1_71.png deleted file mode 100644 index 43607e3686..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_72.png b/TMessagesProj/src/emojis/twitter/emoji/1_72.png deleted file mode 100644 index 51fd75580b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_73.png b/TMessagesProj/src/emojis/twitter/emoji/1_73.png deleted file mode 100644 index 8caabf3a0a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_74.png b/TMessagesProj/src/emojis/twitter/emoji/1_74.png deleted file mode 100644 index 31edef5302..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_75.png b/TMessagesProj/src/emojis/twitter/emoji/1_75.png deleted file mode 100644 index b1acb24ffc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_76.png b/TMessagesProj/src/emojis/twitter/emoji/1_76.png deleted file mode 100644 index 99d91dd30d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_77.png b/TMessagesProj/src/emojis/twitter/emoji/1_77.png deleted file mode 100644 index c66227eb36..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_78.png b/TMessagesProj/src/emojis/twitter/emoji/1_78.png deleted file mode 100644 index a1eb02825b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_79.png b/TMessagesProj/src/emojis/twitter/emoji/1_79.png deleted file mode 100644 index 17687d90f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_8.png b/TMessagesProj/src/emojis/twitter/emoji/1_8.png deleted file mode 100644 index 020ae5ef6e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_80.png b/TMessagesProj/src/emojis/twitter/emoji/1_80.png deleted file mode 100644 index ce16ca4422..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_81.png b/TMessagesProj/src/emojis/twitter/emoji/1_81.png deleted file mode 100644 index 1de971fbb6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_82.png b/TMessagesProj/src/emojis/twitter/emoji/1_82.png deleted file mode 100644 index 71ee00a4ec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_83.png b/TMessagesProj/src/emojis/twitter/emoji/1_83.png deleted file mode 100644 index 04054340a4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_84.png b/TMessagesProj/src/emojis/twitter/emoji/1_84.png deleted file mode 100644 index 7c471fe5f6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_85.png b/TMessagesProj/src/emojis/twitter/emoji/1_85.png deleted file mode 100644 index c8f592ab4b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_86.png b/TMessagesProj/src/emojis/twitter/emoji/1_86.png deleted file mode 100644 index 9e38099880..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_87.png b/TMessagesProj/src/emojis/twitter/emoji/1_87.png deleted file mode 100644 index 3ae1030c5e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_88.png b/TMessagesProj/src/emojis/twitter/emoji/1_88.png deleted file mode 100644 index c6fed18ff7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_89.png b/TMessagesProj/src/emojis/twitter/emoji/1_89.png deleted file mode 100644 index e95d1fbcb8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_9.png b/TMessagesProj/src/emojis/twitter/emoji/1_9.png deleted file mode 100644 index 06d38b4cdb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_90.png b/TMessagesProj/src/emojis/twitter/emoji/1_90.png deleted file mode 100644 index 0d46322141..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_91.png b/TMessagesProj/src/emojis/twitter/emoji/1_91.png deleted file mode 100644 index ba1a309431..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_92.png b/TMessagesProj/src/emojis/twitter/emoji/1_92.png deleted file mode 100644 index e0e2475bc7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_93.png b/TMessagesProj/src/emojis/twitter/emoji/1_93.png deleted file mode 100644 index 4c1182419f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_94.png b/TMessagesProj/src/emojis/twitter/emoji/1_94.png deleted file mode 100644 index b859007ce1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_95.png b/TMessagesProj/src/emojis/twitter/emoji/1_95.png deleted file mode 100644 index 4370c93017..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_96.png b/TMessagesProj/src/emojis/twitter/emoji/1_96.png deleted file mode 100644 index 31e25270ad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_97.png b/TMessagesProj/src/emojis/twitter/emoji/1_97.png deleted file mode 100644 index cef72a5d99..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_98.png b/TMessagesProj/src/emojis/twitter/emoji/1_98.png deleted file mode 100644 index d87c28d49e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/1_99.png b/TMessagesProj/src/emojis/twitter/emoji/1_99.png deleted file mode 100644 index be4e169a10..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/1_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_0.png b/TMessagesProj/src/emojis/twitter/emoji/2_0.png deleted file mode 100644 index 12009d622e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_1.png b/TMessagesProj/src/emojis/twitter/emoji/2_1.png deleted file mode 100644 index ff31ae4c2a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_10.png b/TMessagesProj/src/emojis/twitter/emoji/2_10.png deleted file mode 100644 index 74999af8dd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_100.png b/TMessagesProj/src/emojis/twitter/emoji/2_100.png deleted file mode 100644 index fb81984598..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_101.png b/TMessagesProj/src/emojis/twitter/emoji/2_101.png deleted file mode 100644 index 8ae015215c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_102.png b/TMessagesProj/src/emojis/twitter/emoji/2_102.png deleted file mode 100644 index 6c3a823a08..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_103.png b/TMessagesProj/src/emojis/twitter/emoji/2_103.png deleted file mode 100644 index 5c89e562e0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_104.png b/TMessagesProj/src/emojis/twitter/emoji/2_104.png deleted file mode 100644 index 149209334f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_105.png b/TMessagesProj/src/emojis/twitter/emoji/2_105.png deleted file mode 100644 index 99f90fdadc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_106.png b/TMessagesProj/src/emojis/twitter/emoji/2_106.png deleted file mode 100644 index 3e13803bbb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_107.png b/TMessagesProj/src/emojis/twitter/emoji/2_107.png deleted file mode 100644 index 33aeda7962..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_108.png b/TMessagesProj/src/emojis/twitter/emoji/2_108.png deleted file mode 100644 index 4d4735dcbe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_109.png b/TMessagesProj/src/emojis/twitter/emoji/2_109.png deleted file mode 100644 index b154d6dee6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_11.png b/TMessagesProj/src/emojis/twitter/emoji/2_11.png deleted file mode 100644 index 8eb80337f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_110.png b/TMessagesProj/src/emojis/twitter/emoji/2_110.png deleted file mode 100644 index 1e12c5d4fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_111.png b/TMessagesProj/src/emojis/twitter/emoji/2_111.png deleted file mode 100644 index 54c5ed80b4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_112.png b/TMessagesProj/src/emojis/twitter/emoji/2_112.png deleted file mode 100644 index 744b047a20..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_113.png b/TMessagesProj/src/emojis/twitter/emoji/2_113.png deleted file mode 100644 index d75bc12517..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_114.png b/TMessagesProj/src/emojis/twitter/emoji/2_114.png deleted file mode 100644 index 9aa6110262..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_115.png b/TMessagesProj/src/emojis/twitter/emoji/2_115.png deleted file mode 100644 index e551acb682..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_116.png b/TMessagesProj/src/emojis/twitter/emoji/2_116.png deleted file mode 100644 index ff00219f5e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_117.png b/TMessagesProj/src/emojis/twitter/emoji/2_117.png deleted file mode 100644 index 92b6cf689c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_118.png b/TMessagesProj/src/emojis/twitter/emoji/2_118.png deleted file mode 100644 index e31a3074f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_119.png b/TMessagesProj/src/emojis/twitter/emoji/2_119.png deleted file mode 100644 index 595461771d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_12.png b/TMessagesProj/src/emojis/twitter/emoji/2_12.png deleted file mode 100644 index 276f29f7fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_120.png b/TMessagesProj/src/emojis/twitter/emoji/2_120.png deleted file mode 100644 index 145bd0cce1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_121.png b/TMessagesProj/src/emojis/twitter/emoji/2_121.png deleted file mode 100644 index 8e09440f22..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_122.png b/TMessagesProj/src/emojis/twitter/emoji/2_122.png deleted file mode 100644 index e815f6901f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_123.png b/TMessagesProj/src/emojis/twitter/emoji/2_123.png deleted file mode 100644 index 57bdb120ec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_124.png b/TMessagesProj/src/emojis/twitter/emoji/2_124.png deleted file mode 100644 index 7141b7cfae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_125.png b/TMessagesProj/src/emojis/twitter/emoji/2_125.png deleted file mode 100644 index f819f56ef7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_126.png b/TMessagesProj/src/emojis/twitter/emoji/2_126.png deleted file mode 100644 index 64dc278440..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_127.png b/TMessagesProj/src/emojis/twitter/emoji/2_127.png deleted file mode 100644 index abe676fe29..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_13.png b/TMessagesProj/src/emojis/twitter/emoji/2_13.png deleted file mode 100644 index e4175a5cc3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_14.png b/TMessagesProj/src/emojis/twitter/emoji/2_14.png deleted file mode 100644 index a97c7320a5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_15.png b/TMessagesProj/src/emojis/twitter/emoji/2_15.png deleted file mode 100644 index e9ccf38a01..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_16.png b/TMessagesProj/src/emojis/twitter/emoji/2_16.png deleted file mode 100644 index 4d10ff3522..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_17.png b/TMessagesProj/src/emojis/twitter/emoji/2_17.png deleted file mode 100644 index 610758084d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_18.png b/TMessagesProj/src/emojis/twitter/emoji/2_18.png deleted file mode 100644 index 83dcb5f0fe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_19.png b/TMessagesProj/src/emojis/twitter/emoji/2_19.png deleted file mode 100644 index 589ceac934..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_2.png b/TMessagesProj/src/emojis/twitter/emoji/2_2.png deleted file mode 100644 index 40c1007e59..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_20.png b/TMessagesProj/src/emojis/twitter/emoji/2_20.png deleted file mode 100644 index 7083d34f36..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_21.png b/TMessagesProj/src/emojis/twitter/emoji/2_21.png deleted file mode 100644 index 72655d3d3c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_22.png b/TMessagesProj/src/emojis/twitter/emoji/2_22.png deleted file mode 100644 index 1a2daa941f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_23.png b/TMessagesProj/src/emojis/twitter/emoji/2_23.png deleted file mode 100644 index 6cd0c6829b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_24.png b/TMessagesProj/src/emojis/twitter/emoji/2_24.png deleted file mode 100644 index 63190353cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_25.png b/TMessagesProj/src/emojis/twitter/emoji/2_25.png deleted file mode 100644 index 777ca10227..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_26.png b/TMessagesProj/src/emojis/twitter/emoji/2_26.png deleted file mode 100644 index e2e817e666..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_27.png b/TMessagesProj/src/emojis/twitter/emoji/2_27.png deleted file mode 100644 index 5612fc84a4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_28.png b/TMessagesProj/src/emojis/twitter/emoji/2_28.png deleted file mode 100644 index a96f3045e0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_29.png b/TMessagesProj/src/emojis/twitter/emoji/2_29.png deleted file mode 100644 index a59328129c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_3.png b/TMessagesProj/src/emojis/twitter/emoji/2_3.png deleted file mode 100644 index f49470772b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_30.png b/TMessagesProj/src/emojis/twitter/emoji/2_30.png deleted file mode 100644 index 7098a0b77f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_31.png b/TMessagesProj/src/emojis/twitter/emoji/2_31.png deleted file mode 100644 index 6af0717072..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_32.png b/TMessagesProj/src/emojis/twitter/emoji/2_32.png deleted file mode 100644 index 9a58994b99..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_33.png b/TMessagesProj/src/emojis/twitter/emoji/2_33.png deleted file mode 100644 index 208ca0a682..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_34.png b/TMessagesProj/src/emojis/twitter/emoji/2_34.png deleted file mode 100644 index e933897df4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_35.png b/TMessagesProj/src/emojis/twitter/emoji/2_35.png deleted file mode 100644 index 8c714bb779..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_36.png b/TMessagesProj/src/emojis/twitter/emoji/2_36.png deleted file mode 100644 index 29b3331192..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_37.png b/TMessagesProj/src/emojis/twitter/emoji/2_37.png deleted file mode 100644 index 192364d653..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_38.png b/TMessagesProj/src/emojis/twitter/emoji/2_38.png deleted file mode 100644 index ce15c18832..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_39.png b/TMessagesProj/src/emojis/twitter/emoji/2_39.png deleted file mode 100644 index 4b34c7c48c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_4.png b/TMessagesProj/src/emojis/twitter/emoji/2_4.png deleted file mode 100644 index ab223ba660..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_40.png b/TMessagesProj/src/emojis/twitter/emoji/2_40.png deleted file mode 100644 index 31ce1beb90..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_41.png b/TMessagesProj/src/emojis/twitter/emoji/2_41.png deleted file mode 100644 index db07456ead..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_42.png b/TMessagesProj/src/emojis/twitter/emoji/2_42.png deleted file mode 100644 index f773193965..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_43.png b/TMessagesProj/src/emojis/twitter/emoji/2_43.png deleted file mode 100644 index 2d4312b600..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_44.png b/TMessagesProj/src/emojis/twitter/emoji/2_44.png deleted file mode 100644 index 0bb82f6507..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_45.png b/TMessagesProj/src/emojis/twitter/emoji/2_45.png deleted file mode 100644 index e3d3cbd10d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_46.png b/TMessagesProj/src/emojis/twitter/emoji/2_46.png deleted file mode 100644 index 3f13c331f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_47.png b/TMessagesProj/src/emojis/twitter/emoji/2_47.png deleted file mode 100644 index 47f3f1f0cd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_48.png b/TMessagesProj/src/emojis/twitter/emoji/2_48.png deleted file mode 100644 index c401170bd0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_49.png b/TMessagesProj/src/emojis/twitter/emoji/2_49.png deleted file mode 100644 index 20e24e9ee7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_5.png b/TMessagesProj/src/emojis/twitter/emoji/2_5.png deleted file mode 100644 index 3cbe59fb6e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_50.png b/TMessagesProj/src/emojis/twitter/emoji/2_50.png deleted file mode 100644 index 2a9f272ed8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_51.png b/TMessagesProj/src/emojis/twitter/emoji/2_51.png deleted file mode 100644 index 9e6d95c0fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_52.png b/TMessagesProj/src/emojis/twitter/emoji/2_52.png deleted file mode 100644 index 1dd9cbc72a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_53.png b/TMessagesProj/src/emojis/twitter/emoji/2_53.png deleted file mode 100644 index 589c2205b8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_54.png b/TMessagesProj/src/emojis/twitter/emoji/2_54.png deleted file mode 100644 index ce04140c46..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_55.png b/TMessagesProj/src/emojis/twitter/emoji/2_55.png deleted file mode 100644 index 90134f96a7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_56.png b/TMessagesProj/src/emojis/twitter/emoji/2_56.png deleted file mode 100644 index c84d7ac565..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_57.png b/TMessagesProj/src/emojis/twitter/emoji/2_57.png deleted file mode 100644 index 954285837e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_58.png b/TMessagesProj/src/emojis/twitter/emoji/2_58.png deleted file mode 100644 index ef11aa131e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_59.png b/TMessagesProj/src/emojis/twitter/emoji/2_59.png deleted file mode 100644 index dab2505de7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_6.png b/TMessagesProj/src/emojis/twitter/emoji/2_6.png deleted file mode 100644 index 269ea5a427..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_60.png b/TMessagesProj/src/emojis/twitter/emoji/2_60.png deleted file mode 100644 index 55ddfe186a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_61.png b/TMessagesProj/src/emojis/twitter/emoji/2_61.png deleted file mode 100644 index a54091908e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_62.png b/TMessagesProj/src/emojis/twitter/emoji/2_62.png deleted file mode 100644 index 5073c4e6e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_63.png b/TMessagesProj/src/emojis/twitter/emoji/2_63.png deleted file mode 100644 index d6c1323793..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_64.png b/TMessagesProj/src/emojis/twitter/emoji/2_64.png deleted file mode 100644 index 9da945184a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_65.png b/TMessagesProj/src/emojis/twitter/emoji/2_65.png deleted file mode 100644 index 8e9a66f02d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_66.png b/TMessagesProj/src/emojis/twitter/emoji/2_66.png deleted file mode 100644 index d1940d3284..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_67.png b/TMessagesProj/src/emojis/twitter/emoji/2_67.png deleted file mode 100644 index 1011a39cb5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_68.png b/TMessagesProj/src/emojis/twitter/emoji/2_68.png deleted file mode 100644 index 89d03b8122..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_69.png b/TMessagesProj/src/emojis/twitter/emoji/2_69.png deleted file mode 100644 index 8bb73028a8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_7.png b/TMessagesProj/src/emojis/twitter/emoji/2_7.png deleted file mode 100644 index 3087b2ef4d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_70.png b/TMessagesProj/src/emojis/twitter/emoji/2_70.png deleted file mode 100644 index 5b93fd289d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_71.png b/TMessagesProj/src/emojis/twitter/emoji/2_71.png deleted file mode 100644 index fd079c6449..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_72.png b/TMessagesProj/src/emojis/twitter/emoji/2_72.png deleted file mode 100644 index 3c14bf815f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_73.png b/TMessagesProj/src/emojis/twitter/emoji/2_73.png deleted file mode 100644 index 1d1a7f3842..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_74.png b/TMessagesProj/src/emojis/twitter/emoji/2_74.png deleted file mode 100644 index 4c05714acd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_75.png b/TMessagesProj/src/emojis/twitter/emoji/2_75.png deleted file mode 100644 index 27681b08dc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_76.png b/TMessagesProj/src/emojis/twitter/emoji/2_76.png deleted file mode 100644 index 09790a0487..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_77.png b/TMessagesProj/src/emojis/twitter/emoji/2_77.png deleted file mode 100644 index 9d8a705032..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_78.png b/TMessagesProj/src/emojis/twitter/emoji/2_78.png deleted file mode 100644 index 69ff74a2ca..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_79.png b/TMessagesProj/src/emojis/twitter/emoji/2_79.png deleted file mode 100644 index 538d975a3d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_8.png b/TMessagesProj/src/emojis/twitter/emoji/2_8.png deleted file mode 100644 index ad29762675..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_80.png b/TMessagesProj/src/emojis/twitter/emoji/2_80.png deleted file mode 100644 index 142cad82d9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_81.png b/TMessagesProj/src/emojis/twitter/emoji/2_81.png deleted file mode 100644 index 21c3b9baed..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_82.png b/TMessagesProj/src/emojis/twitter/emoji/2_82.png deleted file mode 100644 index 46e2236882..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_83.png b/TMessagesProj/src/emojis/twitter/emoji/2_83.png deleted file mode 100644 index f9b1e7ba67..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_84.png b/TMessagesProj/src/emojis/twitter/emoji/2_84.png deleted file mode 100644 index f0c0f33624..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_85.png b/TMessagesProj/src/emojis/twitter/emoji/2_85.png deleted file mode 100644 index e2136c44d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_86.png b/TMessagesProj/src/emojis/twitter/emoji/2_86.png deleted file mode 100644 index 5f6908a7fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_87.png b/TMessagesProj/src/emojis/twitter/emoji/2_87.png deleted file mode 100644 index 189de838a3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_88.png b/TMessagesProj/src/emojis/twitter/emoji/2_88.png deleted file mode 100644 index 3c34c19a1f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_89.png b/TMessagesProj/src/emojis/twitter/emoji/2_89.png deleted file mode 100644 index 33c83d1375..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_9.png b/TMessagesProj/src/emojis/twitter/emoji/2_9.png deleted file mode 100644 index 6afa64fb6e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_90.png b/TMessagesProj/src/emojis/twitter/emoji/2_90.png deleted file mode 100644 index 73fd7de48f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_91.png b/TMessagesProj/src/emojis/twitter/emoji/2_91.png deleted file mode 100644 index 0ae66c72bc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_92.png b/TMessagesProj/src/emojis/twitter/emoji/2_92.png deleted file mode 100644 index a82383917f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_93.png b/TMessagesProj/src/emojis/twitter/emoji/2_93.png deleted file mode 100644 index a81522e740..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_94.png b/TMessagesProj/src/emojis/twitter/emoji/2_94.png deleted file mode 100644 index 5478d378ba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_95.png b/TMessagesProj/src/emojis/twitter/emoji/2_95.png deleted file mode 100644 index 008da50011..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_96.png b/TMessagesProj/src/emojis/twitter/emoji/2_96.png deleted file mode 100644 index 8aae04246a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_97.png b/TMessagesProj/src/emojis/twitter/emoji/2_97.png deleted file mode 100644 index db9923ddca..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_98.png b/TMessagesProj/src/emojis/twitter/emoji/2_98.png deleted file mode 100644 index b68ae45a3d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/2_99.png b/TMessagesProj/src/emojis/twitter/emoji/2_99.png deleted file mode 100644 index 54ddca1eb6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/2_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_0.png b/TMessagesProj/src/emojis/twitter/emoji/3_0.png deleted file mode 100644 index 9fbc8b9cdd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_1.png b/TMessagesProj/src/emojis/twitter/emoji/3_1.png deleted file mode 100644 index 7ad739fca9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_10.png b/TMessagesProj/src/emojis/twitter/emoji/3_10.png deleted file mode 100644 index 103dfd76a8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_100.png b/TMessagesProj/src/emojis/twitter/emoji/3_100.png deleted file mode 100644 index 56eca34dc8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_101.png b/TMessagesProj/src/emojis/twitter/emoji/3_101.png deleted file mode 100644 index be55e02c1d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_102.png b/TMessagesProj/src/emojis/twitter/emoji/3_102.png deleted file mode 100644 index 6ba5610627..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_103.png b/TMessagesProj/src/emojis/twitter/emoji/3_103.png deleted file mode 100644 index b7978f605f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_104.png b/TMessagesProj/src/emojis/twitter/emoji/3_104.png deleted file mode 100644 index 285736672b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_105.png b/TMessagesProj/src/emojis/twitter/emoji/3_105.png deleted file mode 100644 index 09147f21d0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_106.png b/TMessagesProj/src/emojis/twitter/emoji/3_106.png deleted file mode 100644 index a5c6c92d4b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_107.png b/TMessagesProj/src/emojis/twitter/emoji/3_107.png deleted file mode 100644 index 4115b2b401..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_108.png b/TMessagesProj/src/emojis/twitter/emoji/3_108.png deleted file mode 100644 index 2be8b9795e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_109.png b/TMessagesProj/src/emojis/twitter/emoji/3_109.png deleted file mode 100644 index fc7a157e02..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_11.png b/TMessagesProj/src/emojis/twitter/emoji/3_11.png deleted file mode 100644 index 5d4f5446d0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_110.png b/TMessagesProj/src/emojis/twitter/emoji/3_110.png deleted file mode 100644 index 106e55f204..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_111.png b/TMessagesProj/src/emojis/twitter/emoji/3_111.png deleted file mode 100644 index b5d2986d32..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_112.png b/TMessagesProj/src/emojis/twitter/emoji/3_112.png deleted file mode 100644 index 57501f8b33..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_113.png b/TMessagesProj/src/emojis/twitter/emoji/3_113.png deleted file mode 100644 index 0bd7c132ec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_114.png b/TMessagesProj/src/emojis/twitter/emoji/3_114.png deleted file mode 100644 index dce0a00da8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_115.png b/TMessagesProj/src/emojis/twitter/emoji/3_115.png deleted file mode 100644 index 036076fcf0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_116.png b/TMessagesProj/src/emojis/twitter/emoji/3_116.png deleted file mode 100644 index 6e3d3fbe42..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_117.png b/TMessagesProj/src/emojis/twitter/emoji/3_117.png deleted file mode 100644 index bd4d28e6fc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_118.png b/TMessagesProj/src/emojis/twitter/emoji/3_118.png deleted file mode 100644 index f140f8d18c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_119.png b/TMessagesProj/src/emojis/twitter/emoji/3_119.png deleted file mode 100644 index 66df80978b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_12.png b/TMessagesProj/src/emojis/twitter/emoji/3_12.png deleted file mode 100644 index 28eea3ec04..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_120.png b/TMessagesProj/src/emojis/twitter/emoji/3_120.png deleted file mode 100644 index 986070dbf2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_121.png b/TMessagesProj/src/emojis/twitter/emoji/3_121.png deleted file mode 100644 index 1c65f7843a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_122.png b/TMessagesProj/src/emojis/twitter/emoji/3_122.png deleted file mode 100644 index 5134618dfe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_123.png b/TMessagesProj/src/emojis/twitter/emoji/3_123.png deleted file mode 100644 index afbc227d3b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_124.png b/TMessagesProj/src/emojis/twitter/emoji/3_124.png deleted file mode 100644 index 506e6f1f58..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_125.png b/TMessagesProj/src/emojis/twitter/emoji/3_125.png deleted file mode 100644 index 760c94b8a7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_126.png b/TMessagesProj/src/emojis/twitter/emoji/3_126.png deleted file mode 100644 index a50995f082..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_127.png b/TMessagesProj/src/emojis/twitter/emoji/3_127.png deleted file mode 100644 index 1aa4ea19c7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_128.png b/TMessagesProj/src/emojis/twitter/emoji/3_128.png deleted file mode 100644 index ecfb966956..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_129.png b/TMessagesProj/src/emojis/twitter/emoji/3_129.png deleted file mode 100644 index 644f0422fe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_13.png b/TMessagesProj/src/emojis/twitter/emoji/3_13.png deleted file mode 100644 index 7955f72e2f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_130.png b/TMessagesProj/src/emojis/twitter/emoji/3_130.png deleted file mode 100644 index eb71719214..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_131.png b/TMessagesProj/src/emojis/twitter/emoji/3_131.png deleted file mode 100644 index 7b63a8fff6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_132.png b/TMessagesProj/src/emojis/twitter/emoji/3_132.png deleted file mode 100644 index 42ece0e27e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_133.png b/TMessagesProj/src/emojis/twitter/emoji/3_133.png deleted file mode 100644 index f6f3cb8f43..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_134.png b/TMessagesProj/src/emojis/twitter/emoji/3_134.png deleted file mode 100644 index 7cf3334db0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_135.png b/TMessagesProj/src/emojis/twitter/emoji/3_135.png deleted file mode 100644 index cd8bb37e99..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_136.png b/TMessagesProj/src/emojis/twitter/emoji/3_136.png deleted file mode 100644 index c0c35a657d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_137.png b/TMessagesProj/src/emojis/twitter/emoji/3_137.png deleted file mode 100644 index c2981899cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_138.png b/TMessagesProj/src/emojis/twitter/emoji/3_138.png deleted file mode 100644 index 80ea3322ba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_139.png b/TMessagesProj/src/emojis/twitter/emoji/3_139.png deleted file mode 100644 index 44f95e5276..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_14.png b/TMessagesProj/src/emojis/twitter/emoji/3_14.png deleted file mode 100644 index ac2d7e96de..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_140.png b/TMessagesProj/src/emojis/twitter/emoji/3_140.png deleted file mode 100644 index 2a146a826a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_141.png b/TMessagesProj/src/emojis/twitter/emoji/3_141.png deleted file mode 100644 index 58950bf6c8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_142.png b/TMessagesProj/src/emojis/twitter/emoji/3_142.png deleted file mode 100644 index 7f262ab940..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_143.png b/TMessagesProj/src/emojis/twitter/emoji/3_143.png deleted file mode 100644 index d4265690f6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_144.png b/TMessagesProj/src/emojis/twitter/emoji/3_144.png deleted file mode 100644 index 663c1fc482..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_145.png b/TMessagesProj/src/emojis/twitter/emoji/3_145.png deleted file mode 100644 index b620437fa0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_146.png b/TMessagesProj/src/emojis/twitter/emoji/3_146.png deleted file mode 100644 index 7862d5e00f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_147.png b/TMessagesProj/src/emojis/twitter/emoji/3_147.png deleted file mode 100644 index b08614b55f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_148.png b/TMessagesProj/src/emojis/twitter/emoji/3_148.png deleted file mode 100644 index c0efff754d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_149.png b/TMessagesProj/src/emojis/twitter/emoji/3_149.png deleted file mode 100644 index dc9941016a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_15.png b/TMessagesProj/src/emojis/twitter/emoji/3_15.png deleted file mode 100644 index 2781e5bac8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_150.png b/TMessagesProj/src/emojis/twitter/emoji/3_150.png deleted file mode 100644 index 7137b33003..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_151.png b/TMessagesProj/src/emojis/twitter/emoji/3_151.png deleted file mode 100644 index a1d84f79f2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_152.png b/TMessagesProj/src/emojis/twitter/emoji/3_152.png deleted file mode 100644 index 46fcd75c47..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_153.png b/TMessagesProj/src/emojis/twitter/emoji/3_153.png deleted file mode 100644 index 54c9a3859b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_154.png b/TMessagesProj/src/emojis/twitter/emoji/3_154.png deleted file mode 100644 index f4e853b928..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_155.png b/TMessagesProj/src/emojis/twitter/emoji/3_155.png deleted file mode 100644 index 7e030a85e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_156.png b/TMessagesProj/src/emojis/twitter/emoji/3_156.png deleted file mode 100644 index 239abf87ca..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_157.png b/TMessagesProj/src/emojis/twitter/emoji/3_157.png deleted file mode 100644 index 7c3d5dc4a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_158.png b/TMessagesProj/src/emojis/twitter/emoji/3_158.png deleted file mode 100644 index b633ff3248..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_159.png b/TMessagesProj/src/emojis/twitter/emoji/3_159.png deleted file mode 100644 index b0e0e9c92e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_16.png b/TMessagesProj/src/emojis/twitter/emoji/3_16.png deleted file mode 100644 index 4b441c7d8b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_160.png b/TMessagesProj/src/emojis/twitter/emoji/3_160.png deleted file mode 100644 index 0306a43bef..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_161.png b/TMessagesProj/src/emojis/twitter/emoji/3_161.png deleted file mode 100644 index 6159cad9f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_162.png b/TMessagesProj/src/emojis/twitter/emoji/3_162.png deleted file mode 100644 index bd691ed4fc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_163.png b/TMessagesProj/src/emojis/twitter/emoji/3_163.png deleted file mode 100644 index a9ad333863..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_164.png b/TMessagesProj/src/emojis/twitter/emoji/3_164.png deleted file mode 100644 index a24cecb85a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_165.png b/TMessagesProj/src/emojis/twitter/emoji/3_165.png deleted file mode 100644 index e592d3bcf7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_166.png b/TMessagesProj/src/emojis/twitter/emoji/3_166.png deleted file mode 100644 index a79cfff515..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_167.png b/TMessagesProj/src/emojis/twitter/emoji/3_167.png deleted file mode 100644 index a54ecce33c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_168.png b/TMessagesProj/src/emojis/twitter/emoji/3_168.png deleted file mode 100644 index 0d3ef5ba59..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_169.png b/TMessagesProj/src/emojis/twitter/emoji/3_169.png deleted file mode 100644 index 86e5223e0f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_17.png b/TMessagesProj/src/emojis/twitter/emoji/3_17.png deleted file mode 100644 index d0e6906184..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_170.png b/TMessagesProj/src/emojis/twitter/emoji/3_170.png deleted file mode 100644 index dcd9dfbfb6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_171.png b/TMessagesProj/src/emojis/twitter/emoji/3_171.png deleted file mode 100644 index 577a2e1578..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_172.png b/TMessagesProj/src/emojis/twitter/emoji/3_172.png deleted file mode 100644 index 924d139e5f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_173.png b/TMessagesProj/src/emojis/twitter/emoji/3_173.png deleted file mode 100644 index 1fe336cd05..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_174.png b/TMessagesProj/src/emojis/twitter/emoji/3_174.png deleted file mode 100644 index e37b7ae6e9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_175.png b/TMessagesProj/src/emojis/twitter/emoji/3_175.png deleted file mode 100644 index 0d67068a64..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_176.png b/TMessagesProj/src/emojis/twitter/emoji/3_176.png deleted file mode 100644 index ab3a430d42..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_177.png b/TMessagesProj/src/emojis/twitter/emoji/3_177.png deleted file mode 100644 index 9c0a83e110..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_178.png b/TMessagesProj/src/emojis/twitter/emoji/3_178.png deleted file mode 100644 index d8d5ee810f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_179.png b/TMessagesProj/src/emojis/twitter/emoji/3_179.png deleted file mode 100644 index b4aad8f971..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_18.png b/TMessagesProj/src/emojis/twitter/emoji/3_18.png deleted file mode 100644 index 9a8a6fb3de..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_180.png b/TMessagesProj/src/emojis/twitter/emoji/3_180.png deleted file mode 100644 index 20e2937828..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_181.png b/TMessagesProj/src/emojis/twitter/emoji/3_181.png deleted file mode 100644 index c2f6c44d69..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_182.png b/TMessagesProj/src/emojis/twitter/emoji/3_182.png deleted file mode 100644 index b78a9b0864..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_183.png b/TMessagesProj/src/emojis/twitter/emoji/3_183.png deleted file mode 100644 index 24baa15fac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_184.png b/TMessagesProj/src/emojis/twitter/emoji/3_184.png deleted file mode 100644 index f90a798aa3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_185.png b/TMessagesProj/src/emojis/twitter/emoji/3_185.png deleted file mode 100644 index 32da99148b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_186.png b/TMessagesProj/src/emojis/twitter/emoji/3_186.png deleted file mode 100644 index 0edb0f960a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_187.png b/TMessagesProj/src/emojis/twitter/emoji/3_187.png deleted file mode 100644 index ac9da8cadf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_188.png b/TMessagesProj/src/emojis/twitter/emoji/3_188.png deleted file mode 100644 index ef62f3efd0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_189.png b/TMessagesProj/src/emojis/twitter/emoji/3_189.png deleted file mode 100644 index 2d4323dbc6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_19.png b/TMessagesProj/src/emojis/twitter/emoji/3_19.png deleted file mode 100644 index 01e43bc4e9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_190.png b/TMessagesProj/src/emojis/twitter/emoji/3_190.png deleted file mode 100644 index 2667d8e38d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_191.png b/TMessagesProj/src/emojis/twitter/emoji/3_191.png deleted file mode 100644 index 1da69e1801..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_192.png b/TMessagesProj/src/emojis/twitter/emoji/3_192.png deleted file mode 100644 index e68c23ebfb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_193.png b/TMessagesProj/src/emojis/twitter/emoji/3_193.png deleted file mode 100644 index 7200badb8e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_194.png b/TMessagesProj/src/emojis/twitter/emoji/3_194.png deleted file mode 100644 index cf311f926c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_195.png b/TMessagesProj/src/emojis/twitter/emoji/3_195.png deleted file mode 100644 index 2fd7669bd0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_196.png b/TMessagesProj/src/emojis/twitter/emoji/3_196.png deleted file mode 100644 index c803c35ef8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_197.png b/TMessagesProj/src/emojis/twitter/emoji/3_197.png deleted file mode 100644 index f532635942..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_198.png b/TMessagesProj/src/emojis/twitter/emoji/3_198.png deleted file mode 100644 index d98e75e2cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_199.png b/TMessagesProj/src/emojis/twitter/emoji/3_199.png deleted file mode 100644 index fcb2c13b4e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_2.png b/TMessagesProj/src/emojis/twitter/emoji/3_2.png deleted file mode 100644 index a43bba351d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_20.png b/TMessagesProj/src/emojis/twitter/emoji/3_20.png deleted file mode 100644 index 96210d7df8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_200.png b/TMessagesProj/src/emojis/twitter/emoji/3_200.png deleted file mode 100644 index 12efc4cc53..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_201.png b/TMessagesProj/src/emojis/twitter/emoji/3_201.png deleted file mode 100644 index 9336f8c6bc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_202.png b/TMessagesProj/src/emojis/twitter/emoji/3_202.png deleted file mode 100644 index 377ae4b91e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_203.png b/TMessagesProj/src/emojis/twitter/emoji/3_203.png deleted file mode 100644 index eb8b471468..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_204.png b/TMessagesProj/src/emojis/twitter/emoji/3_204.png deleted file mode 100644 index a4ab5f79cc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_205.png b/TMessagesProj/src/emojis/twitter/emoji/3_205.png deleted file mode 100644 index 037b934e04..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_206.png b/TMessagesProj/src/emojis/twitter/emoji/3_206.png deleted file mode 100644 index e32168f1e9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_207.png b/TMessagesProj/src/emojis/twitter/emoji/3_207.png deleted file mode 100644 index 417f23aaec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_208.png b/TMessagesProj/src/emojis/twitter/emoji/3_208.png deleted file mode 100644 index 033ab1bf03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_209.png b/TMessagesProj/src/emojis/twitter/emoji/3_209.png deleted file mode 100644 index fe84f71173..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_21.png b/TMessagesProj/src/emojis/twitter/emoji/3_21.png deleted file mode 100644 index ce81b2e7b8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_210.png b/TMessagesProj/src/emojis/twitter/emoji/3_210.png deleted file mode 100644 index 323f05fd9c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_211.png b/TMessagesProj/src/emojis/twitter/emoji/3_211.png deleted file mode 100644 index 3c7722de7b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_212.png b/TMessagesProj/src/emojis/twitter/emoji/3_212.png deleted file mode 100644 index a1ba01dc2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_213.png b/TMessagesProj/src/emojis/twitter/emoji/3_213.png deleted file mode 100644 index 3f19fa304e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_214.png b/TMessagesProj/src/emojis/twitter/emoji/3_214.png deleted file mode 100644 index caf721def3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_215.png b/TMessagesProj/src/emojis/twitter/emoji/3_215.png deleted file mode 100644 index 1d080767c9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_216.png b/TMessagesProj/src/emojis/twitter/emoji/3_216.png deleted file mode 100644 index 7609677337..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_217.png b/TMessagesProj/src/emojis/twitter/emoji/3_217.png deleted file mode 100644 index fd9afad39e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_218.png b/TMessagesProj/src/emojis/twitter/emoji/3_218.png deleted file mode 100644 index b453334d68..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_219.png b/TMessagesProj/src/emojis/twitter/emoji/3_219.png deleted file mode 100644 index cfa7668373..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_22.png b/TMessagesProj/src/emojis/twitter/emoji/3_22.png deleted file mode 100644 index 6a680fd24c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_220.png b/TMessagesProj/src/emojis/twitter/emoji/3_220.png deleted file mode 100644 index b97d74ac05..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_221.png b/TMessagesProj/src/emojis/twitter/emoji/3_221.png deleted file mode 100644 index 8d6232bd88..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_222.png b/TMessagesProj/src/emojis/twitter/emoji/3_222.png deleted file mode 100644 index 3c7cbdce07..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_223.png b/TMessagesProj/src/emojis/twitter/emoji/3_223.png deleted file mode 100644 index 310ad3b510..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_224.png b/TMessagesProj/src/emojis/twitter/emoji/3_224.png deleted file mode 100644 index bddf56bde4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_225.png b/TMessagesProj/src/emojis/twitter/emoji/3_225.png deleted file mode 100644 index 615824263a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_226.png b/TMessagesProj/src/emojis/twitter/emoji/3_226.png deleted file mode 100644 index a64f8b8bcc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_227.png b/TMessagesProj/src/emojis/twitter/emoji/3_227.png deleted file mode 100644 index 5566050f04..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_228.png b/TMessagesProj/src/emojis/twitter/emoji/3_228.png deleted file mode 100644 index 50581052e3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_229.png b/TMessagesProj/src/emojis/twitter/emoji/3_229.png deleted file mode 100644 index afe1ed51a7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_229.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_23.png b/TMessagesProj/src/emojis/twitter/emoji/3_23.png deleted file mode 100644 index a7230988c9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_230.png b/TMessagesProj/src/emojis/twitter/emoji/3_230.png deleted file mode 100644 index 0e75c74c4b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_230.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_231.png b/TMessagesProj/src/emojis/twitter/emoji/3_231.png deleted file mode 100644 index e1332c40c6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_231.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_232.png b/TMessagesProj/src/emojis/twitter/emoji/3_232.png deleted file mode 100644 index 7bb63d416c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_232.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_233.png b/TMessagesProj/src/emojis/twitter/emoji/3_233.png deleted file mode 100644 index 796d56af14..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_233.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_234.png b/TMessagesProj/src/emojis/twitter/emoji/3_234.png deleted file mode 100644 index ac5788bd49..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_234.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_235.png b/TMessagesProj/src/emojis/twitter/emoji/3_235.png deleted file mode 100644 index d0182cb7c5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_235.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_236.png b/TMessagesProj/src/emojis/twitter/emoji/3_236.png deleted file mode 100644 index 8e4fc7819a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_236.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_237.png b/TMessagesProj/src/emojis/twitter/emoji/3_237.png deleted file mode 100644 index cb15794587..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_237.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_238.png b/TMessagesProj/src/emojis/twitter/emoji/3_238.png deleted file mode 100644 index 7ec784c9c8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_238.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_239.png b/TMessagesProj/src/emojis/twitter/emoji/3_239.png deleted file mode 100644 index db6c4b44bb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_239.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_24.png b/TMessagesProj/src/emojis/twitter/emoji/3_24.png deleted file mode 100644 index 8313aa0c52..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_240.png b/TMessagesProj/src/emojis/twitter/emoji/3_240.png deleted file mode 100644 index 57f4e1c834..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_240.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_241.png b/TMessagesProj/src/emojis/twitter/emoji/3_241.png deleted file mode 100644 index 3af42f0bf5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_241.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_242.png b/TMessagesProj/src/emojis/twitter/emoji/3_242.png deleted file mode 100644 index e2197a2523..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_242.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_243.png b/TMessagesProj/src/emojis/twitter/emoji/3_243.png deleted file mode 100644 index f1ccbe5cb2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_243.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_244.png b/TMessagesProj/src/emojis/twitter/emoji/3_244.png deleted file mode 100644 index 10bd3cde09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_244.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_245.png b/TMessagesProj/src/emojis/twitter/emoji/3_245.png deleted file mode 100644 index a4b1bf85b6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_245.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_246.png b/TMessagesProj/src/emojis/twitter/emoji/3_246.png deleted file mode 100644 index 92fd430b46..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_246.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_247.png b/TMessagesProj/src/emojis/twitter/emoji/3_247.png deleted file mode 100644 index 0acd1f2e63..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_247.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_248.png b/TMessagesProj/src/emojis/twitter/emoji/3_248.png deleted file mode 100644 index 9b819578a0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_248.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_249.png b/TMessagesProj/src/emojis/twitter/emoji/3_249.png deleted file mode 100644 index 73f0efcb61..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_249.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_25.png b/TMessagesProj/src/emojis/twitter/emoji/3_25.png deleted file mode 100644 index 019ae148a5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_250.png b/TMessagesProj/src/emojis/twitter/emoji/3_250.png deleted file mode 100644 index 2e64f3f496..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_250.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_251.png b/TMessagesProj/src/emojis/twitter/emoji/3_251.png deleted file mode 100644 index 9c2a3682d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_251.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_252.png b/TMessagesProj/src/emojis/twitter/emoji/3_252.png deleted file mode 100644 index b28dc55b4e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_252.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_253.png b/TMessagesProj/src/emojis/twitter/emoji/3_253.png deleted file mode 100644 index d4a8e7ef52..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_253.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_254.png b/TMessagesProj/src/emojis/twitter/emoji/3_254.png deleted file mode 100644 index c1e6b3f8aa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_254.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_255.png b/TMessagesProj/src/emojis/twitter/emoji/3_255.png deleted file mode 100644 index 6abc323943..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_255.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_256.png b/TMessagesProj/src/emojis/twitter/emoji/3_256.png deleted file mode 100644 index 7948b55c3b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_256.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_257.png b/TMessagesProj/src/emojis/twitter/emoji/3_257.png deleted file mode 100644 index d2d0d12521..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_257.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_258.png b/TMessagesProj/src/emojis/twitter/emoji/3_258.png deleted file mode 100644 index cb7ce88140..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_258.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_259.png b/TMessagesProj/src/emojis/twitter/emoji/3_259.png deleted file mode 100644 index 4d36c29210..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_259.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_26.png b/TMessagesProj/src/emojis/twitter/emoji/3_26.png deleted file mode 100644 index 6b266494ab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_260.png b/TMessagesProj/src/emojis/twitter/emoji/3_260.png deleted file mode 100644 index 951960584d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_260.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_261.png b/TMessagesProj/src/emojis/twitter/emoji/3_261.png deleted file mode 100644 index 7c078b6caf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_261.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_262.png b/TMessagesProj/src/emojis/twitter/emoji/3_262.png deleted file mode 100644 index 53a7be474e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_262.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_263.png b/TMessagesProj/src/emojis/twitter/emoji/3_263.png deleted file mode 100644 index 50b66f9746..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_263.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_264.png b/TMessagesProj/src/emojis/twitter/emoji/3_264.png deleted file mode 100644 index 27bf6646f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_264.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_265.png b/TMessagesProj/src/emojis/twitter/emoji/3_265.png deleted file mode 100644 index 141e285e3a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_265.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_266.png b/TMessagesProj/src/emojis/twitter/emoji/3_266.png deleted file mode 100644 index 29d3d5d46e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_266.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_267.png b/TMessagesProj/src/emojis/twitter/emoji/3_267.png deleted file mode 100644 index 74383ce5e3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_267.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_268.png b/TMessagesProj/src/emojis/twitter/emoji/3_268.png deleted file mode 100644 index 2d4f15dcbe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_268.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_269.png b/TMessagesProj/src/emojis/twitter/emoji/3_269.png deleted file mode 100644 index 3d4726ffc1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_269.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_27.png b/TMessagesProj/src/emojis/twitter/emoji/3_27.png deleted file mode 100644 index 3b5a3b8edf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_270.png b/TMessagesProj/src/emojis/twitter/emoji/3_270.png deleted file mode 100644 index f72af14537..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_270.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_271.png b/TMessagesProj/src/emojis/twitter/emoji/3_271.png deleted file mode 100644 index 685be48f38..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_271.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_272.png b/TMessagesProj/src/emojis/twitter/emoji/3_272.png deleted file mode 100644 index be4dab5525..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_272.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_273.png b/TMessagesProj/src/emojis/twitter/emoji/3_273.png deleted file mode 100644 index aaca830354..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_273.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_274.png b/TMessagesProj/src/emojis/twitter/emoji/3_274.png deleted file mode 100644 index b3bd6aa0f9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_274.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_275.png b/TMessagesProj/src/emojis/twitter/emoji/3_275.png deleted file mode 100644 index d43fe3abda..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_275.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_276.png b/TMessagesProj/src/emojis/twitter/emoji/3_276.png deleted file mode 100644 index adc8bbc5d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_276.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_277.png b/TMessagesProj/src/emojis/twitter/emoji/3_277.png deleted file mode 100644 index 1498746d8f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_277.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_278.png b/TMessagesProj/src/emojis/twitter/emoji/3_278.png deleted file mode 100644 index 7b1f228cc8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_278.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_279.png b/TMessagesProj/src/emojis/twitter/emoji/3_279.png deleted file mode 100644 index 46b63010a6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_279.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_28.png b/TMessagesProj/src/emojis/twitter/emoji/3_28.png deleted file mode 100644 index 930d31aa56..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_280.png b/TMessagesProj/src/emojis/twitter/emoji/3_280.png deleted file mode 100644 index 5bbcc32cea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_280.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_281.png b/TMessagesProj/src/emojis/twitter/emoji/3_281.png deleted file mode 100644 index 39cb78589a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_281.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_282.png b/TMessagesProj/src/emojis/twitter/emoji/3_282.png deleted file mode 100644 index b29f14cc56..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_282.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_283.png b/TMessagesProj/src/emojis/twitter/emoji/3_283.png deleted file mode 100644 index 0240e1a2fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_283.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_284.png b/TMessagesProj/src/emojis/twitter/emoji/3_284.png deleted file mode 100644 index 6d24ef06ad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_284.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_285.png b/TMessagesProj/src/emojis/twitter/emoji/3_285.png deleted file mode 100644 index b5832c295e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_285.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_286.png b/TMessagesProj/src/emojis/twitter/emoji/3_286.png deleted file mode 100644 index 43d4c254e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_286.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_287.png b/TMessagesProj/src/emojis/twitter/emoji/3_287.png deleted file mode 100644 index 321d3cfce9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_287.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_288.png b/TMessagesProj/src/emojis/twitter/emoji/3_288.png deleted file mode 100644 index 5492839dd1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_288.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_289.png b/TMessagesProj/src/emojis/twitter/emoji/3_289.png deleted file mode 100644 index d0de1bb009..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_289.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_29.png b/TMessagesProj/src/emojis/twitter/emoji/3_29.png deleted file mode 100644 index 1c86a80d9e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_290.png b/TMessagesProj/src/emojis/twitter/emoji/3_290.png deleted file mode 100644 index 320b184d46..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_290.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_291.png b/TMessagesProj/src/emojis/twitter/emoji/3_291.png deleted file mode 100644 index 216df787db..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_291.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_292.png b/TMessagesProj/src/emojis/twitter/emoji/3_292.png deleted file mode 100644 index 3093416d67..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_292.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_293.png b/TMessagesProj/src/emojis/twitter/emoji/3_293.png deleted file mode 100644 index d9ac89a0cc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_293.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_294.png b/TMessagesProj/src/emojis/twitter/emoji/3_294.png deleted file mode 100644 index c351d61341..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_294.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_295.png b/TMessagesProj/src/emojis/twitter/emoji/3_295.png deleted file mode 100644 index aab60584e4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_295.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_296.png b/TMessagesProj/src/emojis/twitter/emoji/3_296.png deleted file mode 100644 index 60a0282379..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_296.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_297.png b/TMessagesProj/src/emojis/twitter/emoji/3_297.png deleted file mode 100644 index 857aa82a1c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_297.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_298.png b/TMessagesProj/src/emojis/twitter/emoji/3_298.png deleted file mode 100644 index 5dabcb7ddb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_298.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_299.png b/TMessagesProj/src/emojis/twitter/emoji/3_299.png deleted file mode 100644 index 91da0b84c7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_299.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_3.png b/TMessagesProj/src/emojis/twitter/emoji/3_3.png deleted file mode 100644 index da85ebcf99..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_30.png b/TMessagesProj/src/emojis/twitter/emoji/3_30.png deleted file mode 100644 index 2cc3a03eff..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_300.png b/TMessagesProj/src/emojis/twitter/emoji/3_300.png deleted file mode 100644 index b480c5ec15..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_300.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_301.png b/TMessagesProj/src/emojis/twitter/emoji/3_301.png deleted file mode 100644 index 07c01e4641..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_301.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_302.png b/TMessagesProj/src/emojis/twitter/emoji/3_302.png deleted file mode 100644 index b6c53999b6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_302.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_303.png b/TMessagesProj/src/emojis/twitter/emoji/3_303.png deleted file mode 100644 index c10002d989..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_303.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_304.png b/TMessagesProj/src/emojis/twitter/emoji/3_304.png deleted file mode 100644 index 0c924278ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_304.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_305.png b/TMessagesProj/src/emojis/twitter/emoji/3_305.png deleted file mode 100644 index 7d51373b7b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_305.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_306.png b/TMessagesProj/src/emojis/twitter/emoji/3_306.png deleted file mode 100644 index c901f122e8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_306.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_307.png b/TMessagesProj/src/emojis/twitter/emoji/3_307.png deleted file mode 100644 index e5e23f870f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_307.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_308.png b/TMessagesProj/src/emojis/twitter/emoji/3_308.png deleted file mode 100644 index 1b7eef86fe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_308.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_309.png b/TMessagesProj/src/emojis/twitter/emoji/3_309.png deleted file mode 100644 index 8c5aa9c94d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_309.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_31.png b/TMessagesProj/src/emojis/twitter/emoji/3_31.png deleted file mode 100644 index 5ece318a2c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_310.png b/TMessagesProj/src/emojis/twitter/emoji/3_310.png deleted file mode 100644 index b178d611f5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_310.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_311.png b/TMessagesProj/src/emojis/twitter/emoji/3_311.png deleted file mode 100644 index 6da5cc300b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_311.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_312.png b/TMessagesProj/src/emojis/twitter/emoji/3_312.png deleted file mode 100644 index 0219ed8e36..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_312.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_313.png b/TMessagesProj/src/emojis/twitter/emoji/3_313.png deleted file mode 100644 index 383065037c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_313.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_314.png b/TMessagesProj/src/emojis/twitter/emoji/3_314.png deleted file mode 100644 index c01d3a94bd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_314.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_315.png b/TMessagesProj/src/emojis/twitter/emoji/3_315.png deleted file mode 100644 index 7aab831ea7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_315.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_316.png b/TMessagesProj/src/emojis/twitter/emoji/3_316.png deleted file mode 100644 index e52c67ecc2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_316.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_317.png b/TMessagesProj/src/emojis/twitter/emoji/3_317.png deleted file mode 100644 index 04b77399fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_317.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_318.png b/TMessagesProj/src/emojis/twitter/emoji/3_318.png deleted file mode 100644 index c99c33df85..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_318.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_319.png b/TMessagesProj/src/emojis/twitter/emoji/3_319.png deleted file mode 100644 index 25ee554afc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_319.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_32.png b/TMessagesProj/src/emojis/twitter/emoji/3_32.png deleted file mode 100644 index 50f73bf17d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_320.png b/TMessagesProj/src/emojis/twitter/emoji/3_320.png deleted file mode 100644 index bea5ad038d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_320.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_321.png b/TMessagesProj/src/emojis/twitter/emoji/3_321.png deleted file mode 100644 index e02c740172..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_321.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_322.png b/TMessagesProj/src/emojis/twitter/emoji/3_322.png deleted file mode 100644 index 2751cdff84..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_322.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_323.png b/TMessagesProj/src/emojis/twitter/emoji/3_323.png deleted file mode 100644 index 795ead6839..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_323.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_324.png b/TMessagesProj/src/emojis/twitter/emoji/3_324.png deleted file mode 100644 index 5507d74218..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_324.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_325.png b/TMessagesProj/src/emojis/twitter/emoji/3_325.png deleted file mode 100644 index 60007384cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_325.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_326.png b/TMessagesProj/src/emojis/twitter/emoji/3_326.png deleted file mode 100644 index d39a8b433f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_326.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_327.png b/TMessagesProj/src/emojis/twitter/emoji/3_327.png deleted file mode 100644 index 98869b6da4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_327.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_328.png b/TMessagesProj/src/emojis/twitter/emoji/3_328.png deleted file mode 100644 index 4d96f5b537..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_328.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_329.png b/TMessagesProj/src/emojis/twitter/emoji/3_329.png deleted file mode 100644 index a5ead06199..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_329.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_33.png b/TMessagesProj/src/emojis/twitter/emoji/3_33.png deleted file mode 100644 index 8ee340bba3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_330.png b/TMessagesProj/src/emojis/twitter/emoji/3_330.png deleted file mode 100644 index b64e0881a5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_330.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_331.png b/TMessagesProj/src/emojis/twitter/emoji/3_331.png deleted file mode 100644 index 87b6874e2a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_331.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_332.png b/TMessagesProj/src/emojis/twitter/emoji/3_332.png deleted file mode 100644 index 865de7659d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_332.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_333.png b/TMessagesProj/src/emojis/twitter/emoji/3_333.png deleted file mode 100644 index 790da0cd0f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_333.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_334.png b/TMessagesProj/src/emojis/twitter/emoji/3_334.png deleted file mode 100644 index 221935f961..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_334.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_34.png b/TMessagesProj/src/emojis/twitter/emoji/3_34.png deleted file mode 100644 index 7a38231858..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_35.png b/TMessagesProj/src/emojis/twitter/emoji/3_35.png deleted file mode 100644 index 3c9ef5e44e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_36.png b/TMessagesProj/src/emojis/twitter/emoji/3_36.png deleted file mode 100644 index dadea90c57..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_37.png b/TMessagesProj/src/emojis/twitter/emoji/3_37.png deleted file mode 100644 index 1b4295670c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_38.png b/TMessagesProj/src/emojis/twitter/emoji/3_38.png deleted file mode 100644 index 397484a713..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_39.png b/TMessagesProj/src/emojis/twitter/emoji/3_39.png deleted file mode 100644 index 88d4c4ff6f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_4.png b/TMessagesProj/src/emojis/twitter/emoji/3_4.png deleted file mode 100644 index e70253931e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_40.png b/TMessagesProj/src/emojis/twitter/emoji/3_40.png deleted file mode 100644 index 5c9e9b0b93..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_41.png b/TMessagesProj/src/emojis/twitter/emoji/3_41.png deleted file mode 100644 index a9270eb79d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_42.png b/TMessagesProj/src/emojis/twitter/emoji/3_42.png deleted file mode 100644 index 277a4df5d6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_43.png b/TMessagesProj/src/emojis/twitter/emoji/3_43.png deleted file mode 100644 index 370914480b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_44.png b/TMessagesProj/src/emojis/twitter/emoji/3_44.png deleted file mode 100644 index 6e1f9d4a5f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_45.png b/TMessagesProj/src/emojis/twitter/emoji/3_45.png deleted file mode 100644 index d0363b6d96..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_46.png b/TMessagesProj/src/emojis/twitter/emoji/3_46.png deleted file mode 100644 index 16112a9c59..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_47.png b/TMessagesProj/src/emojis/twitter/emoji/3_47.png deleted file mode 100644 index feb72066c1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_48.png b/TMessagesProj/src/emojis/twitter/emoji/3_48.png deleted file mode 100644 index 2b22f62042..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_49.png b/TMessagesProj/src/emojis/twitter/emoji/3_49.png deleted file mode 100644 index 63c98cff47..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_5.png b/TMessagesProj/src/emojis/twitter/emoji/3_5.png deleted file mode 100644 index 71bd3cdf16..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_50.png b/TMessagesProj/src/emojis/twitter/emoji/3_50.png deleted file mode 100644 index a106429cfa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_51.png b/TMessagesProj/src/emojis/twitter/emoji/3_51.png deleted file mode 100644 index 786d491794..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_52.png b/TMessagesProj/src/emojis/twitter/emoji/3_52.png deleted file mode 100644 index 1a66c608a8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_53.png b/TMessagesProj/src/emojis/twitter/emoji/3_53.png deleted file mode 100644 index baadc247e2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_54.png b/TMessagesProj/src/emojis/twitter/emoji/3_54.png deleted file mode 100644 index de0bc71816..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_55.png b/TMessagesProj/src/emojis/twitter/emoji/3_55.png deleted file mode 100644 index 95810a7998..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_56.png b/TMessagesProj/src/emojis/twitter/emoji/3_56.png deleted file mode 100644 index 653a1be782..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_57.png b/TMessagesProj/src/emojis/twitter/emoji/3_57.png deleted file mode 100644 index 9e72deea90..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_58.png b/TMessagesProj/src/emojis/twitter/emoji/3_58.png deleted file mode 100644 index 8b3f85ccd5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_59.png b/TMessagesProj/src/emojis/twitter/emoji/3_59.png deleted file mode 100644 index be1efafaa7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_6.png b/TMessagesProj/src/emojis/twitter/emoji/3_6.png deleted file mode 100644 index e410c6479c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_60.png b/TMessagesProj/src/emojis/twitter/emoji/3_60.png deleted file mode 100644 index 03f1898bd4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_61.png b/TMessagesProj/src/emojis/twitter/emoji/3_61.png deleted file mode 100644 index 9cf81ff22b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_62.png b/TMessagesProj/src/emojis/twitter/emoji/3_62.png deleted file mode 100644 index c6cca126cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_63.png b/TMessagesProj/src/emojis/twitter/emoji/3_63.png deleted file mode 100644 index 5099ccc32a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_64.png b/TMessagesProj/src/emojis/twitter/emoji/3_64.png deleted file mode 100644 index 56554bbcf7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_65.png b/TMessagesProj/src/emojis/twitter/emoji/3_65.png deleted file mode 100644 index e5755107b9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_66.png b/TMessagesProj/src/emojis/twitter/emoji/3_66.png deleted file mode 100644 index 22d33be57d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_67.png b/TMessagesProj/src/emojis/twitter/emoji/3_67.png deleted file mode 100644 index d67e09a8f9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_68.png b/TMessagesProj/src/emojis/twitter/emoji/3_68.png deleted file mode 100644 index c92a1c4961..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_69.png b/TMessagesProj/src/emojis/twitter/emoji/3_69.png deleted file mode 100644 index 4285fec982..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_7.png b/TMessagesProj/src/emojis/twitter/emoji/3_7.png deleted file mode 100644 index bfe778512e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_70.png b/TMessagesProj/src/emojis/twitter/emoji/3_70.png deleted file mode 100644 index bc406c5a43..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_71.png b/TMessagesProj/src/emojis/twitter/emoji/3_71.png deleted file mode 100644 index 475eb77507..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_72.png b/TMessagesProj/src/emojis/twitter/emoji/3_72.png deleted file mode 100644 index 3672305b1b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_73.png b/TMessagesProj/src/emojis/twitter/emoji/3_73.png deleted file mode 100644 index 76c260d336..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_74.png b/TMessagesProj/src/emojis/twitter/emoji/3_74.png deleted file mode 100644 index 2de4fbbd09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_75.png b/TMessagesProj/src/emojis/twitter/emoji/3_75.png deleted file mode 100644 index fb814c113e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_76.png b/TMessagesProj/src/emojis/twitter/emoji/3_76.png deleted file mode 100644 index c518d3dcab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_77.png b/TMessagesProj/src/emojis/twitter/emoji/3_77.png deleted file mode 100644 index 95f1bcf060..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_78.png b/TMessagesProj/src/emojis/twitter/emoji/3_78.png deleted file mode 100644 index 827e5bbe89..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_79.png b/TMessagesProj/src/emojis/twitter/emoji/3_79.png deleted file mode 100644 index a9f9bd1d4c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_8.png b/TMessagesProj/src/emojis/twitter/emoji/3_8.png deleted file mode 100644 index 200d38a875..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_80.png b/TMessagesProj/src/emojis/twitter/emoji/3_80.png deleted file mode 100644 index aca93be715..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_81.png b/TMessagesProj/src/emojis/twitter/emoji/3_81.png deleted file mode 100644 index 9875ee27b0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_82.png b/TMessagesProj/src/emojis/twitter/emoji/3_82.png deleted file mode 100644 index 39c6436528..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_83.png b/TMessagesProj/src/emojis/twitter/emoji/3_83.png deleted file mode 100644 index 5fed85fb18..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_84.png b/TMessagesProj/src/emojis/twitter/emoji/3_84.png deleted file mode 100644 index 93e7f23982..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_85.png b/TMessagesProj/src/emojis/twitter/emoji/3_85.png deleted file mode 100644 index 7ab4de3ec2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_86.png b/TMessagesProj/src/emojis/twitter/emoji/3_86.png deleted file mode 100644 index 3490479e44..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_87.png b/TMessagesProj/src/emojis/twitter/emoji/3_87.png deleted file mode 100644 index a2aa799866..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_88.png b/TMessagesProj/src/emojis/twitter/emoji/3_88.png deleted file mode 100644 index 32c3bdcc2f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_89.png b/TMessagesProj/src/emojis/twitter/emoji/3_89.png deleted file mode 100644 index 9434781b15..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_9.png b/TMessagesProj/src/emojis/twitter/emoji/3_9.png deleted file mode 100644 index fc47c8ef86..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_90.png b/TMessagesProj/src/emojis/twitter/emoji/3_90.png deleted file mode 100644 index 1a815efae3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_91.png b/TMessagesProj/src/emojis/twitter/emoji/3_91.png deleted file mode 100644 index cbc989c75b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_92.png b/TMessagesProj/src/emojis/twitter/emoji/3_92.png deleted file mode 100644 index 3970ad10e1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_93.png b/TMessagesProj/src/emojis/twitter/emoji/3_93.png deleted file mode 100644 index dc3f1aa76d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_94.png b/TMessagesProj/src/emojis/twitter/emoji/3_94.png deleted file mode 100644 index cf2dd9a8d8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_95.png b/TMessagesProj/src/emojis/twitter/emoji/3_95.png deleted file mode 100644 index cf9c4716e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_96.png b/TMessagesProj/src/emojis/twitter/emoji/3_96.png deleted file mode 100644 index 2c3a22c88e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_97.png b/TMessagesProj/src/emojis/twitter/emoji/3_97.png deleted file mode 100644 index 92fc39df53..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_98.png b/TMessagesProj/src/emojis/twitter/emoji/3_98.png deleted file mode 100644 index 372ab68ab7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/3_99.png b/TMessagesProj/src/emojis/twitter/emoji/3_99.png deleted file mode 100644 index e7d5dda5d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/3_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_0.png b/TMessagesProj/src/emojis/twitter/emoji/4_0.png deleted file mode 100644 index 18cfcd5806..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_1.png b/TMessagesProj/src/emojis/twitter/emoji/4_1.png deleted file mode 100644 index d7787b07c5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_10.png b/TMessagesProj/src/emojis/twitter/emoji/4_10.png deleted file mode 100644 index 0f01cce0bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_100.png b/TMessagesProj/src/emojis/twitter/emoji/4_100.png deleted file mode 100644 index a185eac6be..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_101.png b/TMessagesProj/src/emojis/twitter/emoji/4_101.png deleted file mode 100644 index 8ec7cef1cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_102.png b/TMessagesProj/src/emojis/twitter/emoji/4_102.png deleted file mode 100644 index 3e27835cb3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_103.png b/TMessagesProj/src/emojis/twitter/emoji/4_103.png deleted file mode 100644 index fb6c741008..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_104.png b/TMessagesProj/src/emojis/twitter/emoji/4_104.png deleted file mode 100644 index cdbe2f729c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_105.png b/TMessagesProj/src/emojis/twitter/emoji/4_105.png deleted file mode 100644 index 22dac4649d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_106.png b/TMessagesProj/src/emojis/twitter/emoji/4_106.png deleted file mode 100644 index caa24659a2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_107.png b/TMessagesProj/src/emojis/twitter/emoji/4_107.png deleted file mode 100644 index 3c1e522ce0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_108.png b/TMessagesProj/src/emojis/twitter/emoji/4_108.png deleted file mode 100644 index 027f89bd59..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_109.png b/TMessagesProj/src/emojis/twitter/emoji/4_109.png deleted file mode 100644 index e41a385390..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_11.png b/TMessagesProj/src/emojis/twitter/emoji/4_11.png deleted file mode 100644 index fefa872d95..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_110.png b/TMessagesProj/src/emojis/twitter/emoji/4_110.png deleted file mode 100644 index 29ce488581..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_111.png b/TMessagesProj/src/emojis/twitter/emoji/4_111.png deleted file mode 100644 index a6a6cc4d99..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_112.png b/TMessagesProj/src/emojis/twitter/emoji/4_112.png deleted file mode 100644 index 55f90f3e82..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_113.png b/TMessagesProj/src/emojis/twitter/emoji/4_113.png deleted file mode 100644 index c83e277db6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_114.png b/TMessagesProj/src/emojis/twitter/emoji/4_114.png deleted file mode 100644 index 95152c653e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_115.png b/TMessagesProj/src/emojis/twitter/emoji/4_115.png deleted file mode 100644 index 448fb0ebf2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_116.png b/TMessagesProj/src/emojis/twitter/emoji/4_116.png deleted file mode 100644 index 4db49ebdf6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_117.png b/TMessagesProj/src/emojis/twitter/emoji/4_117.png deleted file mode 100644 index 5973d2d847..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_118.png b/TMessagesProj/src/emojis/twitter/emoji/4_118.png deleted file mode 100644 index a5eb5493e4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_119.png b/TMessagesProj/src/emojis/twitter/emoji/4_119.png deleted file mode 100644 index 54d8a8bd91..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_12.png b/TMessagesProj/src/emojis/twitter/emoji/4_12.png deleted file mode 100644 index 5c8fba4d18..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_120.png b/TMessagesProj/src/emojis/twitter/emoji/4_120.png deleted file mode 100644 index 1eb62a7946..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_121.png b/TMessagesProj/src/emojis/twitter/emoji/4_121.png deleted file mode 100644 index a62bb937f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_122.png b/TMessagesProj/src/emojis/twitter/emoji/4_122.png deleted file mode 100644 index 767ea4e8a7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_123.png b/TMessagesProj/src/emojis/twitter/emoji/4_123.png deleted file mode 100644 index 3f5e490bce..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_124.png b/TMessagesProj/src/emojis/twitter/emoji/4_124.png deleted file mode 100644 index 31b542591d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_125.png b/TMessagesProj/src/emojis/twitter/emoji/4_125.png deleted file mode 100644 index 2f74e3d478..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_126.png b/TMessagesProj/src/emojis/twitter/emoji/4_126.png deleted file mode 100644 index f9531d1f4f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_127.png b/TMessagesProj/src/emojis/twitter/emoji/4_127.png deleted file mode 100644 index 5dc2ee719d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_128.png b/TMessagesProj/src/emojis/twitter/emoji/4_128.png deleted file mode 100644 index 511b2f7067..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_129.png b/TMessagesProj/src/emojis/twitter/emoji/4_129.png deleted file mode 100644 index 0a748dd09b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_13.png b/TMessagesProj/src/emojis/twitter/emoji/4_13.png deleted file mode 100644 index 9fac557569..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_130.png b/TMessagesProj/src/emojis/twitter/emoji/4_130.png deleted file mode 100644 index 84e2c34e9c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_14.png b/TMessagesProj/src/emojis/twitter/emoji/4_14.png deleted file mode 100644 index 8cdd1310d7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_15.png b/TMessagesProj/src/emojis/twitter/emoji/4_15.png deleted file mode 100644 index d09f624f6a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_16.png b/TMessagesProj/src/emojis/twitter/emoji/4_16.png deleted file mode 100644 index 5c6c9be613..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_17.png b/TMessagesProj/src/emojis/twitter/emoji/4_17.png deleted file mode 100644 index 271c82a025..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_18.png b/TMessagesProj/src/emojis/twitter/emoji/4_18.png deleted file mode 100644 index 64f32ab50b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_19.png b/TMessagesProj/src/emojis/twitter/emoji/4_19.png deleted file mode 100644 index 6abb34e7e2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_2.png b/TMessagesProj/src/emojis/twitter/emoji/4_2.png deleted file mode 100644 index ccea13a5c7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_20.png b/TMessagesProj/src/emojis/twitter/emoji/4_20.png deleted file mode 100644 index a0cfc72011..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_21.png b/TMessagesProj/src/emojis/twitter/emoji/4_21.png deleted file mode 100644 index 8408724805..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_22.png b/TMessagesProj/src/emojis/twitter/emoji/4_22.png deleted file mode 100644 index c3b63d12d8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_23.png b/TMessagesProj/src/emojis/twitter/emoji/4_23.png deleted file mode 100644 index 885363c171..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_24.png b/TMessagesProj/src/emojis/twitter/emoji/4_24.png deleted file mode 100644 index 319a9978d7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_25.png b/TMessagesProj/src/emojis/twitter/emoji/4_25.png deleted file mode 100644 index 13236e0791..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_26.png b/TMessagesProj/src/emojis/twitter/emoji/4_26.png deleted file mode 100644 index 5d084fd888..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_27.png b/TMessagesProj/src/emojis/twitter/emoji/4_27.png deleted file mode 100644 index 54dc8d130d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_28.png b/TMessagesProj/src/emojis/twitter/emoji/4_28.png deleted file mode 100644 index 82f23cca91..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_29.png b/TMessagesProj/src/emojis/twitter/emoji/4_29.png deleted file mode 100644 index f49ce3b91f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_3.png b/TMessagesProj/src/emojis/twitter/emoji/4_3.png deleted file mode 100644 index 6b02e6cd3a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_30.png b/TMessagesProj/src/emojis/twitter/emoji/4_30.png deleted file mode 100644 index ff52a324a0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_31.png b/TMessagesProj/src/emojis/twitter/emoji/4_31.png deleted file mode 100644 index 3196e77c31..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_32.png b/TMessagesProj/src/emojis/twitter/emoji/4_32.png deleted file mode 100644 index 95e0e5fc58..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_33.png b/TMessagesProj/src/emojis/twitter/emoji/4_33.png deleted file mode 100644 index 1f49d13e09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_34.png b/TMessagesProj/src/emojis/twitter/emoji/4_34.png deleted file mode 100644 index 75fcd68e87..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_35.png b/TMessagesProj/src/emojis/twitter/emoji/4_35.png deleted file mode 100644 index 3408545aec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_36.png b/TMessagesProj/src/emojis/twitter/emoji/4_36.png deleted file mode 100644 index 2437ee7c6f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_37.png b/TMessagesProj/src/emojis/twitter/emoji/4_37.png deleted file mode 100644 index e45ea1920d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_38.png b/TMessagesProj/src/emojis/twitter/emoji/4_38.png deleted file mode 100644 index b8396f8732..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_39.png b/TMessagesProj/src/emojis/twitter/emoji/4_39.png deleted file mode 100644 index 7992fe6f96..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_4.png b/TMessagesProj/src/emojis/twitter/emoji/4_4.png deleted file mode 100644 index d6c8040916..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_40.png b/TMessagesProj/src/emojis/twitter/emoji/4_40.png deleted file mode 100644 index ffe53f420b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_41.png b/TMessagesProj/src/emojis/twitter/emoji/4_41.png deleted file mode 100644 index 9ba1ef227f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_42.png b/TMessagesProj/src/emojis/twitter/emoji/4_42.png deleted file mode 100644 index d71f346203..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_43.png b/TMessagesProj/src/emojis/twitter/emoji/4_43.png deleted file mode 100644 index fbb3f757c5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_44.png b/TMessagesProj/src/emojis/twitter/emoji/4_44.png deleted file mode 100644 index eecc040ae3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_45.png b/TMessagesProj/src/emojis/twitter/emoji/4_45.png deleted file mode 100644 index 901358129a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_46.png b/TMessagesProj/src/emojis/twitter/emoji/4_46.png deleted file mode 100644 index 8f55bfb75a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_47.png b/TMessagesProj/src/emojis/twitter/emoji/4_47.png deleted file mode 100644 index 0e650d8daf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_48.png b/TMessagesProj/src/emojis/twitter/emoji/4_48.png deleted file mode 100644 index 76f163e9cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_49.png b/TMessagesProj/src/emojis/twitter/emoji/4_49.png deleted file mode 100644 index 9562ded552..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_5.png b/TMessagesProj/src/emojis/twitter/emoji/4_5.png deleted file mode 100644 index c4f02fafae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_50.png b/TMessagesProj/src/emojis/twitter/emoji/4_50.png deleted file mode 100644 index e63f6ce74c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_51.png b/TMessagesProj/src/emojis/twitter/emoji/4_51.png deleted file mode 100644 index 0efebc0572..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_52.png b/TMessagesProj/src/emojis/twitter/emoji/4_52.png deleted file mode 100644 index a5f74e31f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_53.png b/TMessagesProj/src/emojis/twitter/emoji/4_53.png deleted file mode 100644 index 4ac45892ea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_54.png b/TMessagesProj/src/emojis/twitter/emoji/4_54.png deleted file mode 100644 index 94f4b09975..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_55.png b/TMessagesProj/src/emojis/twitter/emoji/4_55.png deleted file mode 100644 index c2495ec331..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_56.png b/TMessagesProj/src/emojis/twitter/emoji/4_56.png deleted file mode 100644 index b46eb93910..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_57.png b/TMessagesProj/src/emojis/twitter/emoji/4_57.png deleted file mode 100644 index b7dea76f9f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_58.png b/TMessagesProj/src/emojis/twitter/emoji/4_58.png deleted file mode 100644 index 1c2ef39bcf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_59.png b/TMessagesProj/src/emojis/twitter/emoji/4_59.png deleted file mode 100644 index bd57d96ed8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_6.png b/TMessagesProj/src/emojis/twitter/emoji/4_6.png deleted file mode 100644 index f4826fe2aa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_60.png b/TMessagesProj/src/emojis/twitter/emoji/4_60.png deleted file mode 100644 index 2a9da8d77f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_61.png b/TMessagesProj/src/emojis/twitter/emoji/4_61.png deleted file mode 100644 index cd738826d1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_62.png b/TMessagesProj/src/emojis/twitter/emoji/4_62.png deleted file mode 100644 index f3323c3b06..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_63.png b/TMessagesProj/src/emojis/twitter/emoji/4_63.png deleted file mode 100644 index 9f4cdb530b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_64.png b/TMessagesProj/src/emojis/twitter/emoji/4_64.png deleted file mode 100644 index 3f6207074c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_65.png b/TMessagesProj/src/emojis/twitter/emoji/4_65.png deleted file mode 100644 index af06508ac9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_66.png b/TMessagesProj/src/emojis/twitter/emoji/4_66.png deleted file mode 100644 index 201a5b6298..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_67.png b/TMessagesProj/src/emojis/twitter/emoji/4_67.png deleted file mode 100644 index 481a0ed468..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_68.png b/TMessagesProj/src/emojis/twitter/emoji/4_68.png deleted file mode 100644 index ec16ee81f0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_69.png b/TMessagesProj/src/emojis/twitter/emoji/4_69.png deleted file mode 100644 index e096d0ece2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_7.png b/TMessagesProj/src/emojis/twitter/emoji/4_7.png deleted file mode 100644 index 5c3612080d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_70.png b/TMessagesProj/src/emojis/twitter/emoji/4_70.png deleted file mode 100644 index dd6d067574..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_71.png b/TMessagesProj/src/emojis/twitter/emoji/4_71.png deleted file mode 100644 index 1e9be47ca0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_72.png b/TMessagesProj/src/emojis/twitter/emoji/4_72.png deleted file mode 100644 index dcf8bf915b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_73.png b/TMessagesProj/src/emojis/twitter/emoji/4_73.png deleted file mode 100644 index 1134caedd8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_74.png b/TMessagesProj/src/emojis/twitter/emoji/4_74.png deleted file mode 100644 index 12f13ab3a0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_75.png b/TMessagesProj/src/emojis/twitter/emoji/4_75.png deleted file mode 100644 index c0c3953edb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_76.png b/TMessagesProj/src/emojis/twitter/emoji/4_76.png deleted file mode 100644 index c799b8051b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_77.png b/TMessagesProj/src/emojis/twitter/emoji/4_77.png deleted file mode 100644 index 179418bc15..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_78.png b/TMessagesProj/src/emojis/twitter/emoji/4_78.png deleted file mode 100644 index 045bb1ee21..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_79.png b/TMessagesProj/src/emojis/twitter/emoji/4_79.png deleted file mode 100644 index 92e9b1393d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_8.png b/TMessagesProj/src/emojis/twitter/emoji/4_8.png deleted file mode 100644 index af647cb8f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_80.png b/TMessagesProj/src/emojis/twitter/emoji/4_80.png deleted file mode 100644 index bc8c5769fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_81.png b/TMessagesProj/src/emojis/twitter/emoji/4_81.png deleted file mode 100644 index 6e3a42a6a2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_82.png b/TMessagesProj/src/emojis/twitter/emoji/4_82.png deleted file mode 100644 index 8bbb83e446..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_83.png b/TMessagesProj/src/emojis/twitter/emoji/4_83.png deleted file mode 100644 index 5aee9b647e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_84.png b/TMessagesProj/src/emojis/twitter/emoji/4_84.png deleted file mode 100644 index ce97341f25..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_85.png b/TMessagesProj/src/emojis/twitter/emoji/4_85.png deleted file mode 100644 index 88f62e19a4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_86.png b/TMessagesProj/src/emojis/twitter/emoji/4_86.png deleted file mode 100644 index 9633d842af..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_87.png b/TMessagesProj/src/emojis/twitter/emoji/4_87.png deleted file mode 100644 index c02246d356..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_88.png b/TMessagesProj/src/emojis/twitter/emoji/4_88.png deleted file mode 100644 index 2702fa0fda..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_89.png b/TMessagesProj/src/emojis/twitter/emoji/4_89.png deleted file mode 100644 index 9627641857..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_9.png b/TMessagesProj/src/emojis/twitter/emoji/4_9.png deleted file mode 100644 index 22f38562bb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_90.png b/TMessagesProj/src/emojis/twitter/emoji/4_90.png deleted file mode 100644 index d05d8ebd9c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_91.png b/TMessagesProj/src/emojis/twitter/emoji/4_91.png deleted file mode 100644 index d937523421..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_92.png b/TMessagesProj/src/emojis/twitter/emoji/4_92.png deleted file mode 100644 index edae8a9615..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_93.png b/TMessagesProj/src/emojis/twitter/emoji/4_93.png deleted file mode 100644 index f100b581f2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_94.png b/TMessagesProj/src/emojis/twitter/emoji/4_94.png deleted file mode 100644 index d521ac9010..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_95.png b/TMessagesProj/src/emojis/twitter/emoji/4_95.png deleted file mode 100644 index 73c64182a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_96.png b/TMessagesProj/src/emojis/twitter/emoji/4_96.png deleted file mode 100644 index 8f792503e4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_97.png b/TMessagesProj/src/emojis/twitter/emoji/4_97.png deleted file mode 100644 index aa8e05fdc4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_98.png b/TMessagesProj/src/emojis/twitter/emoji/4_98.png deleted file mode 100644 index ae6dfca039..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/4_99.png b/TMessagesProj/src/emojis/twitter/emoji/4_99.png deleted file mode 100644 index ae5e4d621e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/4_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_0.png b/TMessagesProj/src/emojis/twitter/emoji/5_0.png deleted file mode 100644 index 63cf54490f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_1.png b/TMessagesProj/src/emojis/twitter/emoji/5_1.png deleted file mode 100644 index 95107fab4f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_10.png b/TMessagesProj/src/emojis/twitter/emoji/5_10.png deleted file mode 100644 index e5edf31b04..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_100.png b/TMessagesProj/src/emojis/twitter/emoji/5_100.png deleted file mode 100644 index d7f30b47e1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_101.png b/TMessagesProj/src/emojis/twitter/emoji/5_101.png deleted file mode 100644 index 4fbf6eb174..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_102.png b/TMessagesProj/src/emojis/twitter/emoji/5_102.png deleted file mode 100644 index ba704262cc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_103.png b/TMessagesProj/src/emojis/twitter/emoji/5_103.png deleted file mode 100644 index cb629fcadd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_104.png b/TMessagesProj/src/emojis/twitter/emoji/5_104.png deleted file mode 100644 index a4e6a15374..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_105.png b/TMessagesProj/src/emojis/twitter/emoji/5_105.png deleted file mode 100644 index d2758c6e1c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_106.png b/TMessagesProj/src/emojis/twitter/emoji/5_106.png deleted file mode 100644 index bbbba03ba7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_107.png b/TMessagesProj/src/emojis/twitter/emoji/5_107.png deleted file mode 100644 index 624a2b9903..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_108.png b/TMessagesProj/src/emojis/twitter/emoji/5_108.png deleted file mode 100644 index 5aeedf8122..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_109.png b/TMessagesProj/src/emojis/twitter/emoji/5_109.png deleted file mode 100644 index 435cb52072..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_11.png b/TMessagesProj/src/emojis/twitter/emoji/5_11.png deleted file mode 100644 index a52ef270bd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_110.png b/TMessagesProj/src/emojis/twitter/emoji/5_110.png deleted file mode 100644 index c11391de4c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_111.png b/TMessagesProj/src/emojis/twitter/emoji/5_111.png deleted file mode 100644 index bc420222bb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_112.png b/TMessagesProj/src/emojis/twitter/emoji/5_112.png deleted file mode 100644 index ce3f4f02db..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_113.png b/TMessagesProj/src/emojis/twitter/emoji/5_113.png deleted file mode 100644 index 1a667be146..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_114.png b/TMessagesProj/src/emojis/twitter/emoji/5_114.png deleted file mode 100644 index d18ae67a8d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_115.png b/TMessagesProj/src/emojis/twitter/emoji/5_115.png deleted file mode 100644 index c2ca393028..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_116.png b/TMessagesProj/src/emojis/twitter/emoji/5_116.png deleted file mode 100644 index 9d77ea5680..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_117.png b/TMessagesProj/src/emojis/twitter/emoji/5_117.png deleted file mode 100644 index 0583140c3c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_118.png b/TMessagesProj/src/emojis/twitter/emoji/5_118.png deleted file mode 100644 index 815e7bd216..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_119.png b/TMessagesProj/src/emojis/twitter/emoji/5_119.png deleted file mode 100644 index 41e2d8b949..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_12.png b/TMessagesProj/src/emojis/twitter/emoji/5_12.png deleted file mode 100644 index b99c8700cc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_120.png b/TMessagesProj/src/emojis/twitter/emoji/5_120.png deleted file mode 100644 index d97aa9c149..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_121.png b/TMessagesProj/src/emojis/twitter/emoji/5_121.png deleted file mode 100644 index b6792c713a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_122.png b/TMessagesProj/src/emojis/twitter/emoji/5_122.png deleted file mode 100644 index a9165468c5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_123.png b/TMessagesProj/src/emojis/twitter/emoji/5_123.png deleted file mode 100644 index 18ce74a8ff..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_124.png b/TMessagesProj/src/emojis/twitter/emoji/5_124.png deleted file mode 100644 index 1100da08a3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_125.png b/TMessagesProj/src/emojis/twitter/emoji/5_125.png deleted file mode 100644 index 4d7bbdc70b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_126.png b/TMessagesProj/src/emojis/twitter/emoji/5_126.png deleted file mode 100644 index 9aa5680b49..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_127.png b/TMessagesProj/src/emojis/twitter/emoji/5_127.png deleted file mode 100644 index 3dda1df009..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_128.png b/TMessagesProj/src/emojis/twitter/emoji/5_128.png deleted file mode 100644 index 3ce95744eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_129.png b/TMessagesProj/src/emojis/twitter/emoji/5_129.png deleted file mode 100644 index 00bf39ce68..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_13.png b/TMessagesProj/src/emojis/twitter/emoji/5_13.png deleted file mode 100644 index 8e333a2a00..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_130.png b/TMessagesProj/src/emojis/twitter/emoji/5_130.png deleted file mode 100644 index 2bcbf4f06c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_131.png b/TMessagesProj/src/emojis/twitter/emoji/5_131.png deleted file mode 100644 index 1327dbcb02..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_132.png b/TMessagesProj/src/emojis/twitter/emoji/5_132.png deleted file mode 100644 index dec30b0e13..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_133.png b/TMessagesProj/src/emojis/twitter/emoji/5_133.png deleted file mode 100644 index 26be5680cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_134.png b/TMessagesProj/src/emojis/twitter/emoji/5_134.png deleted file mode 100644 index f522db42de..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_135.png b/TMessagesProj/src/emojis/twitter/emoji/5_135.png deleted file mode 100644 index 8690ef4d1c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_136.png b/TMessagesProj/src/emojis/twitter/emoji/5_136.png deleted file mode 100644 index 91234fd57b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_137.png b/TMessagesProj/src/emojis/twitter/emoji/5_137.png deleted file mode 100644 index f672ed3e25..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_138.png b/TMessagesProj/src/emojis/twitter/emoji/5_138.png deleted file mode 100644 index b8e703bfba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_139.png b/TMessagesProj/src/emojis/twitter/emoji/5_139.png deleted file mode 100644 index 11d5cd91e2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_14.png b/TMessagesProj/src/emojis/twitter/emoji/5_14.png deleted file mode 100644 index 70f5013b39..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_140.png b/TMessagesProj/src/emojis/twitter/emoji/5_140.png deleted file mode 100644 index c376ddace7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_141.png b/TMessagesProj/src/emojis/twitter/emoji/5_141.png deleted file mode 100644 index 5e09ce7ae0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_142.png b/TMessagesProj/src/emojis/twitter/emoji/5_142.png deleted file mode 100644 index f773d43f3e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_143.png b/TMessagesProj/src/emojis/twitter/emoji/5_143.png deleted file mode 100644 index 609030c27b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_144.png b/TMessagesProj/src/emojis/twitter/emoji/5_144.png deleted file mode 100644 index 475b929ee1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_145.png b/TMessagesProj/src/emojis/twitter/emoji/5_145.png deleted file mode 100644 index ed62cb7298..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_146.png b/TMessagesProj/src/emojis/twitter/emoji/5_146.png deleted file mode 100644 index bc272e3674..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_147.png b/TMessagesProj/src/emojis/twitter/emoji/5_147.png deleted file mode 100644 index 764d91b4f5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_148.png b/TMessagesProj/src/emojis/twitter/emoji/5_148.png deleted file mode 100644 index 3a6733b38f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_149.png b/TMessagesProj/src/emojis/twitter/emoji/5_149.png deleted file mode 100644 index 30068b0574..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_15.png b/TMessagesProj/src/emojis/twitter/emoji/5_15.png deleted file mode 100644 index 2f70e4bb2d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_150.png b/TMessagesProj/src/emojis/twitter/emoji/5_150.png deleted file mode 100644 index e07c1d951d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_151.png b/TMessagesProj/src/emojis/twitter/emoji/5_151.png deleted file mode 100644 index d7d3dcaeea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_152.png b/TMessagesProj/src/emojis/twitter/emoji/5_152.png deleted file mode 100644 index 1df9e62b50..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_153.png b/TMessagesProj/src/emojis/twitter/emoji/5_153.png deleted file mode 100644 index cf8772f905..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_154.png b/TMessagesProj/src/emojis/twitter/emoji/5_154.png deleted file mode 100644 index 7519204979..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_155.png b/TMessagesProj/src/emojis/twitter/emoji/5_155.png deleted file mode 100644 index b31b0826bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_156.png b/TMessagesProj/src/emojis/twitter/emoji/5_156.png deleted file mode 100644 index d307cb4af5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_157.png b/TMessagesProj/src/emojis/twitter/emoji/5_157.png deleted file mode 100644 index fd580a5eb4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_158.png b/TMessagesProj/src/emojis/twitter/emoji/5_158.png deleted file mode 100644 index 2eacb1987d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_159.png b/TMessagesProj/src/emojis/twitter/emoji/5_159.png deleted file mode 100644 index 4e9391c342..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_16.png b/TMessagesProj/src/emojis/twitter/emoji/5_16.png deleted file mode 100644 index 9a0a87e747..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_160.png b/TMessagesProj/src/emojis/twitter/emoji/5_160.png deleted file mode 100644 index 5b8c4cb928..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_161.png b/TMessagesProj/src/emojis/twitter/emoji/5_161.png deleted file mode 100644 index bd79995e37..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_162.png b/TMessagesProj/src/emojis/twitter/emoji/5_162.png deleted file mode 100644 index 5dd5f1824c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_163.png b/TMessagesProj/src/emojis/twitter/emoji/5_163.png deleted file mode 100644 index 393d22f8e3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_164.png b/TMessagesProj/src/emojis/twitter/emoji/5_164.png deleted file mode 100644 index 27edba1457..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_165.png b/TMessagesProj/src/emojis/twitter/emoji/5_165.png deleted file mode 100644 index d13a4a03ab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_166.png b/TMessagesProj/src/emojis/twitter/emoji/5_166.png deleted file mode 100644 index 102bba7371..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_167.png b/TMessagesProj/src/emojis/twitter/emoji/5_167.png deleted file mode 100644 index b39801faab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_168.png b/TMessagesProj/src/emojis/twitter/emoji/5_168.png deleted file mode 100644 index 86d5fda652..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_169.png b/TMessagesProj/src/emojis/twitter/emoji/5_169.png deleted file mode 100644 index 679ee81a36..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_17.png b/TMessagesProj/src/emojis/twitter/emoji/5_17.png deleted file mode 100644 index df90280d2a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_170.png b/TMessagesProj/src/emojis/twitter/emoji/5_170.png deleted file mode 100644 index 695eaa58bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_171.png b/TMessagesProj/src/emojis/twitter/emoji/5_171.png deleted file mode 100644 index eedbd483cd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_172.png b/TMessagesProj/src/emojis/twitter/emoji/5_172.png deleted file mode 100644 index fa8525f35e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_173.png b/TMessagesProj/src/emojis/twitter/emoji/5_173.png deleted file mode 100644 index 210bfd3a81..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_174.png b/TMessagesProj/src/emojis/twitter/emoji/5_174.png deleted file mode 100644 index 16578bc896..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_175.png b/TMessagesProj/src/emojis/twitter/emoji/5_175.png deleted file mode 100644 index 9f40225ffb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_176.png b/TMessagesProj/src/emojis/twitter/emoji/5_176.png deleted file mode 100644 index 6d1b5f94d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_177.png b/TMessagesProj/src/emojis/twitter/emoji/5_177.png deleted file mode 100644 index a0408013a7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_178.png b/TMessagesProj/src/emojis/twitter/emoji/5_178.png deleted file mode 100644 index 73e0dfeb20..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_179.png b/TMessagesProj/src/emojis/twitter/emoji/5_179.png deleted file mode 100644 index 70bd0a2c57..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_18.png b/TMessagesProj/src/emojis/twitter/emoji/5_18.png deleted file mode 100644 index 2ff5af37bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_180.png b/TMessagesProj/src/emojis/twitter/emoji/5_180.png deleted file mode 100644 index b49d669e38..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_181.png b/TMessagesProj/src/emojis/twitter/emoji/5_181.png deleted file mode 100644 index 314e74de9f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_182.png b/TMessagesProj/src/emojis/twitter/emoji/5_182.png deleted file mode 100644 index 7653062696..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_183.png b/TMessagesProj/src/emojis/twitter/emoji/5_183.png deleted file mode 100644 index 39c6f5357c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_184.png b/TMessagesProj/src/emojis/twitter/emoji/5_184.png deleted file mode 100644 index c02d33fb8f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_185.png b/TMessagesProj/src/emojis/twitter/emoji/5_185.png deleted file mode 100644 index f0aa027da5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_186.png b/TMessagesProj/src/emojis/twitter/emoji/5_186.png deleted file mode 100644 index 9a0be3e6d9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_187.png b/TMessagesProj/src/emojis/twitter/emoji/5_187.png deleted file mode 100644 index 52ae09c4d5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_188.png b/TMessagesProj/src/emojis/twitter/emoji/5_188.png deleted file mode 100644 index 25a7afb7fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_189.png b/TMessagesProj/src/emojis/twitter/emoji/5_189.png deleted file mode 100644 index 40129f0cfa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_19.png b/TMessagesProj/src/emojis/twitter/emoji/5_19.png deleted file mode 100644 index 891b3f04ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_190.png b/TMessagesProj/src/emojis/twitter/emoji/5_190.png deleted file mode 100644 index fa8de00876..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_191.png b/TMessagesProj/src/emojis/twitter/emoji/5_191.png deleted file mode 100644 index facc61b12a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_192.png b/TMessagesProj/src/emojis/twitter/emoji/5_192.png deleted file mode 100644 index 4265696a98..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_193.png b/TMessagesProj/src/emojis/twitter/emoji/5_193.png deleted file mode 100644 index 5dc2d32b2d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_194.png b/TMessagesProj/src/emojis/twitter/emoji/5_194.png deleted file mode 100644 index cb14a85652..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_195.png b/TMessagesProj/src/emojis/twitter/emoji/5_195.png deleted file mode 100644 index 17ace34e62..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_196.png b/TMessagesProj/src/emojis/twitter/emoji/5_196.png deleted file mode 100644 index e1be4eedae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_197.png b/TMessagesProj/src/emojis/twitter/emoji/5_197.png deleted file mode 100644 index cffd354d54..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_198.png b/TMessagesProj/src/emojis/twitter/emoji/5_198.png deleted file mode 100644 index 3e619efc8b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_199.png b/TMessagesProj/src/emojis/twitter/emoji/5_199.png deleted file mode 100644 index 9a9142ae9c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_2.png b/TMessagesProj/src/emojis/twitter/emoji/5_2.png deleted file mode 100644 index 081cbee551..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_20.png b/TMessagesProj/src/emojis/twitter/emoji/5_20.png deleted file mode 100644 index d75d32b9a3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_200.png b/TMessagesProj/src/emojis/twitter/emoji/5_200.png deleted file mode 100644 index a671c16fad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_201.png b/TMessagesProj/src/emojis/twitter/emoji/5_201.png deleted file mode 100644 index a1f4da5c98..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_202.png b/TMessagesProj/src/emojis/twitter/emoji/5_202.png deleted file mode 100644 index 9bd8a0b692..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_203.png b/TMessagesProj/src/emojis/twitter/emoji/5_203.png deleted file mode 100644 index 2eb2b161a3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_204.png b/TMessagesProj/src/emojis/twitter/emoji/5_204.png deleted file mode 100644 index 661d274b63..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_205.png b/TMessagesProj/src/emojis/twitter/emoji/5_205.png deleted file mode 100644 index 3599c284f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_206.png b/TMessagesProj/src/emojis/twitter/emoji/5_206.png deleted file mode 100644 index a493342f9a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_207.png b/TMessagesProj/src/emojis/twitter/emoji/5_207.png deleted file mode 100644 index 29ee807c9d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_208.png b/TMessagesProj/src/emojis/twitter/emoji/5_208.png deleted file mode 100644 index 1171f747d8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_209.png b/TMessagesProj/src/emojis/twitter/emoji/5_209.png deleted file mode 100644 index 4ba4cd2641..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_21.png b/TMessagesProj/src/emojis/twitter/emoji/5_21.png deleted file mode 100644 index 2e47b36266..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_210.png b/TMessagesProj/src/emojis/twitter/emoji/5_210.png deleted file mode 100644 index e6476d985a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_211.png b/TMessagesProj/src/emojis/twitter/emoji/5_211.png deleted file mode 100644 index 86df7cd970..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_212.png b/TMessagesProj/src/emojis/twitter/emoji/5_212.png deleted file mode 100644 index eb0a665a0c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_213.png b/TMessagesProj/src/emojis/twitter/emoji/5_213.png deleted file mode 100644 index 5073f1330f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_214.png b/TMessagesProj/src/emojis/twitter/emoji/5_214.png deleted file mode 100644 index 9e17f046b2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_215.png b/TMessagesProj/src/emojis/twitter/emoji/5_215.png deleted file mode 100644 index 7a1e0d5d03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_216.png b/TMessagesProj/src/emojis/twitter/emoji/5_216.png deleted file mode 100644 index b2cb272b59..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_217.png b/TMessagesProj/src/emojis/twitter/emoji/5_217.png deleted file mode 100644 index 69f2d675b0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_218.png b/TMessagesProj/src/emojis/twitter/emoji/5_218.png deleted file mode 100644 index a5873454e4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_219.png b/TMessagesProj/src/emojis/twitter/emoji/5_219.png deleted file mode 100644 index 35d192e417..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_22.png b/TMessagesProj/src/emojis/twitter/emoji/5_22.png deleted file mode 100644 index 828d208339..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_220.png b/TMessagesProj/src/emojis/twitter/emoji/5_220.png deleted file mode 100644 index 5ee9054c53..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_221.png b/TMessagesProj/src/emojis/twitter/emoji/5_221.png deleted file mode 100644 index 8fb5a813d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_222.png b/TMessagesProj/src/emojis/twitter/emoji/5_222.png deleted file mode 100644 index a41c2819c2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_223.png b/TMessagesProj/src/emojis/twitter/emoji/5_223.png deleted file mode 100644 index 50dd2acaec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_224.png b/TMessagesProj/src/emojis/twitter/emoji/5_224.png deleted file mode 100644 index a49168ca2a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_225.png b/TMessagesProj/src/emojis/twitter/emoji/5_225.png deleted file mode 100644 index 8dfd284915..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_226.png b/TMessagesProj/src/emojis/twitter/emoji/5_226.png deleted file mode 100644 index c9a927db35..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_227.png b/TMessagesProj/src/emojis/twitter/emoji/5_227.png deleted file mode 100644 index 2dc595614f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_228.png b/TMessagesProj/src/emojis/twitter/emoji/5_228.png deleted file mode 100644 index 235fa16397..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_23.png b/TMessagesProj/src/emojis/twitter/emoji/5_23.png deleted file mode 100644 index 5fd7c60869..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_24.png b/TMessagesProj/src/emojis/twitter/emoji/5_24.png deleted file mode 100644 index 228367ecf3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_25.png b/TMessagesProj/src/emojis/twitter/emoji/5_25.png deleted file mode 100644 index a6dee3fe6e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_26.png b/TMessagesProj/src/emojis/twitter/emoji/5_26.png deleted file mode 100644 index 485e36b2e5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_27.png b/TMessagesProj/src/emojis/twitter/emoji/5_27.png deleted file mode 100644 index 06d0f4eec2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_28.png b/TMessagesProj/src/emojis/twitter/emoji/5_28.png deleted file mode 100644 index c528ce9a34..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_29.png b/TMessagesProj/src/emojis/twitter/emoji/5_29.png deleted file mode 100644 index abc68ab1e0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_3.png b/TMessagesProj/src/emojis/twitter/emoji/5_3.png deleted file mode 100644 index a6b1276f87..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_30.png b/TMessagesProj/src/emojis/twitter/emoji/5_30.png deleted file mode 100644 index 0931319d99..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_31.png b/TMessagesProj/src/emojis/twitter/emoji/5_31.png deleted file mode 100644 index 6ec2d21534..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_32.png b/TMessagesProj/src/emojis/twitter/emoji/5_32.png deleted file mode 100644 index 7896760921..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_33.png b/TMessagesProj/src/emojis/twitter/emoji/5_33.png deleted file mode 100644 index f25b948ad9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_34.png b/TMessagesProj/src/emojis/twitter/emoji/5_34.png deleted file mode 100644 index 1f4bbaea9f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_35.png b/TMessagesProj/src/emojis/twitter/emoji/5_35.png deleted file mode 100644 index 4f487baa30..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_36.png b/TMessagesProj/src/emojis/twitter/emoji/5_36.png deleted file mode 100644 index 178db8c9eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_37.png b/TMessagesProj/src/emojis/twitter/emoji/5_37.png deleted file mode 100644 index a07b464a2c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_38.png b/TMessagesProj/src/emojis/twitter/emoji/5_38.png deleted file mode 100644 index c39d8c529a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_39.png b/TMessagesProj/src/emojis/twitter/emoji/5_39.png deleted file mode 100644 index 4508e1d7c5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_4.png b/TMessagesProj/src/emojis/twitter/emoji/5_4.png deleted file mode 100644 index a62733723e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_40.png b/TMessagesProj/src/emojis/twitter/emoji/5_40.png deleted file mode 100644 index 68775322b1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_41.png b/TMessagesProj/src/emojis/twitter/emoji/5_41.png deleted file mode 100644 index 54b23aea59..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_42.png b/TMessagesProj/src/emojis/twitter/emoji/5_42.png deleted file mode 100644 index f071d2cc81..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_43.png b/TMessagesProj/src/emojis/twitter/emoji/5_43.png deleted file mode 100644 index 5a4fbd58c3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_44.png b/TMessagesProj/src/emojis/twitter/emoji/5_44.png deleted file mode 100644 index c34105ed50..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_45.png b/TMessagesProj/src/emojis/twitter/emoji/5_45.png deleted file mode 100644 index 0265401cca..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_46.png b/TMessagesProj/src/emojis/twitter/emoji/5_46.png deleted file mode 100644 index a7b5b84579..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_47.png b/TMessagesProj/src/emojis/twitter/emoji/5_47.png deleted file mode 100644 index 753e306e9d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_48.png b/TMessagesProj/src/emojis/twitter/emoji/5_48.png deleted file mode 100644 index 06e67a299d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_49.png b/TMessagesProj/src/emojis/twitter/emoji/5_49.png deleted file mode 100644 index 89d61144bc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_5.png b/TMessagesProj/src/emojis/twitter/emoji/5_5.png deleted file mode 100644 index 5e8629d55e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_50.png b/TMessagesProj/src/emojis/twitter/emoji/5_50.png deleted file mode 100644 index 3528a94eea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_51.png b/TMessagesProj/src/emojis/twitter/emoji/5_51.png deleted file mode 100644 index 17693f6519..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_52.png b/TMessagesProj/src/emojis/twitter/emoji/5_52.png deleted file mode 100644 index 2efcfb3d72..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_53.png b/TMessagesProj/src/emojis/twitter/emoji/5_53.png deleted file mode 100644 index 9f84046d03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_54.png b/TMessagesProj/src/emojis/twitter/emoji/5_54.png deleted file mode 100644 index c25baa0473..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_55.png b/TMessagesProj/src/emojis/twitter/emoji/5_55.png deleted file mode 100644 index 395541b2fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_56.png b/TMessagesProj/src/emojis/twitter/emoji/5_56.png deleted file mode 100644 index 2d19602f20..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_57.png b/TMessagesProj/src/emojis/twitter/emoji/5_57.png deleted file mode 100644 index a748de9cfa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_58.png b/TMessagesProj/src/emojis/twitter/emoji/5_58.png deleted file mode 100644 index b8bf3fe8a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_59.png b/TMessagesProj/src/emojis/twitter/emoji/5_59.png deleted file mode 100644 index 75d81d6ef3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_6.png b/TMessagesProj/src/emojis/twitter/emoji/5_6.png deleted file mode 100644 index 564d205fe1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_60.png b/TMessagesProj/src/emojis/twitter/emoji/5_60.png deleted file mode 100644 index 2e5e5a6d9a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_61.png b/TMessagesProj/src/emojis/twitter/emoji/5_61.png deleted file mode 100644 index b089ac14e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_62.png b/TMessagesProj/src/emojis/twitter/emoji/5_62.png deleted file mode 100644 index 43be455042..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_63.png b/TMessagesProj/src/emojis/twitter/emoji/5_63.png deleted file mode 100644 index 6c2932ac4e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_64.png b/TMessagesProj/src/emojis/twitter/emoji/5_64.png deleted file mode 100644 index 9bf20a51cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_65.png b/TMessagesProj/src/emojis/twitter/emoji/5_65.png deleted file mode 100644 index 6c154630ba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_66.png b/TMessagesProj/src/emojis/twitter/emoji/5_66.png deleted file mode 100644 index 5297e92ac4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_67.png b/TMessagesProj/src/emojis/twitter/emoji/5_67.png deleted file mode 100644 index cbf897094c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_68.png b/TMessagesProj/src/emojis/twitter/emoji/5_68.png deleted file mode 100644 index d90520eb5d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_69.png b/TMessagesProj/src/emojis/twitter/emoji/5_69.png deleted file mode 100644 index db19de4af7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_7.png b/TMessagesProj/src/emojis/twitter/emoji/5_7.png deleted file mode 100644 index 58f5ee8cee..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_70.png b/TMessagesProj/src/emojis/twitter/emoji/5_70.png deleted file mode 100644 index 23bf1ba5fc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_71.png b/TMessagesProj/src/emojis/twitter/emoji/5_71.png deleted file mode 100644 index 543f28f7b5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_72.png b/TMessagesProj/src/emojis/twitter/emoji/5_72.png deleted file mode 100644 index bf4d572ba0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_73.png b/TMessagesProj/src/emojis/twitter/emoji/5_73.png deleted file mode 100644 index 25cafceec2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_74.png b/TMessagesProj/src/emojis/twitter/emoji/5_74.png deleted file mode 100644 index 74f6d7e758..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_75.png b/TMessagesProj/src/emojis/twitter/emoji/5_75.png deleted file mode 100644 index e14120e153..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_76.png b/TMessagesProj/src/emojis/twitter/emoji/5_76.png deleted file mode 100644 index 90fd0d55a7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_77.png b/TMessagesProj/src/emojis/twitter/emoji/5_77.png deleted file mode 100644 index d24641cd91..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_78.png b/TMessagesProj/src/emojis/twitter/emoji/5_78.png deleted file mode 100644 index effa1c0cc9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_79.png b/TMessagesProj/src/emojis/twitter/emoji/5_79.png deleted file mode 100644 index 1ae655d9e8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_8.png b/TMessagesProj/src/emojis/twitter/emoji/5_8.png deleted file mode 100644 index b70bfc9f9d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_80.png b/TMessagesProj/src/emojis/twitter/emoji/5_80.png deleted file mode 100644 index 2fd6d96bb8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_81.png b/TMessagesProj/src/emojis/twitter/emoji/5_81.png deleted file mode 100644 index 0638e572a6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_82.png b/TMessagesProj/src/emojis/twitter/emoji/5_82.png deleted file mode 100644 index 965f2da3f1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_83.png b/TMessagesProj/src/emojis/twitter/emoji/5_83.png deleted file mode 100644 index a6c66e1aa1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_84.png b/TMessagesProj/src/emojis/twitter/emoji/5_84.png deleted file mode 100644 index 4e748b6b95..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_85.png b/TMessagesProj/src/emojis/twitter/emoji/5_85.png deleted file mode 100644 index fcfc34a0fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_86.png b/TMessagesProj/src/emojis/twitter/emoji/5_86.png deleted file mode 100644 index 9fef921e3f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_87.png b/TMessagesProj/src/emojis/twitter/emoji/5_87.png deleted file mode 100644 index 03b284f325..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_88.png b/TMessagesProj/src/emojis/twitter/emoji/5_88.png deleted file mode 100644 index 7455fd3c39..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_89.png b/TMessagesProj/src/emojis/twitter/emoji/5_89.png deleted file mode 100644 index c0d00a1bcf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_9.png b/TMessagesProj/src/emojis/twitter/emoji/5_9.png deleted file mode 100644 index e91440a266..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_90.png b/TMessagesProj/src/emojis/twitter/emoji/5_90.png deleted file mode 100644 index 275949f6fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_91.png b/TMessagesProj/src/emojis/twitter/emoji/5_91.png deleted file mode 100644 index ad31366a2c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_92.png b/TMessagesProj/src/emojis/twitter/emoji/5_92.png deleted file mode 100644 index e56b41bfe7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_93.png b/TMessagesProj/src/emojis/twitter/emoji/5_93.png deleted file mode 100644 index de98dbffe3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_94.png b/TMessagesProj/src/emojis/twitter/emoji/5_94.png deleted file mode 100644 index 4b055c9711..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_95.png b/TMessagesProj/src/emojis/twitter/emoji/5_95.png deleted file mode 100644 index df8e066f82..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_96.png b/TMessagesProj/src/emojis/twitter/emoji/5_96.png deleted file mode 100644 index d09ac30a5a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_97.png b/TMessagesProj/src/emojis/twitter/emoji/5_97.png deleted file mode 100644 index bb484ae456..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_98.png b/TMessagesProj/src/emojis/twitter/emoji/5_98.png deleted file mode 100644 index 4f2f7983c0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/5_99.png b/TMessagesProj/src/emojis/twitter/emoji/5_99.png deleted file mode 100644 index f348008790..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/5_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_0.png b/TMessagesProj/src/emojis/twitter/emoji/6_0.png deleted file mode 100644 index d8dc83882b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_1.png b/TMessagesProj/src/emojis/twitter/emoji/6_1.png deleted file mode 100644 index ba8e715ed1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_10.png b/TMessagesProj/src/emojis/twitter/emoji/6_10.png deleted file mode 100644 index 64f416f23a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_100.png b/TMessagesProj/src/emojis/twitter/emoji/6_100.png deleted file mode 100644 index 9b8d541313..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_101.png b/TMessagesProj/src/emojis/twitter/emoji/6_101.png deleted file mode 100644 index 7aa3e89617..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_102.png b/TMessagesProj/src/emojis/twitter/emoji/6_102.png deleted file mode 100644 index 1c664e4fe5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_103.png b/TMessagesProj/src/emojis/twitter/emoji/6_103.png deleted file mode 100644 index 1170d826c8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_104.png b/TMessagesProj/src/emojis/twitter/emoji/6_104.png deleted file mode 100644 index 629010bef9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_105.png b/TMessagesProj/src/emojis/twitter/emoji/6_105.png deleted file mode 100644 index e8b9b60ed9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_106.png b/TMessagesProj/src/emojis/twitter/emoji/6_106.png deleted file mode 100644 index 4a031b96a0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_107.png b/TMessagesProj/src/emojis/twitter/emoji/6_107.png deleted file mode 100644 index 203ee09330..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_108.png b/TMessagesProj/src/emojis/twitter/emoji/6_108.png deleted file mode 100644 index 6dba9f7cf4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_109.png b/TMessagesProj/src/emojis/twitter/emoji/6_109.png deleted file mode 100644 index 6f9ba26f11..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_11.png b/TMessagesProj/src/emojis/twitter/emoji/6_11.png deleted file mode 100644 index 9e9dc5596e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_110.png b/TMessagesProj/src/emojis/twitter/emoji/6_110.png deleted file mode 100644 index a71809e254..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_111.png b/TMessagesProj/src/emojis/twitter/emoji/6_111.png deleted file mode 100644 index 3f0dd1e1f5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_112.png b/TMessagesProj/src/emojis/twitter/emoji/6_112.png deleted file mode 100644 index e1f3b7ba4e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_113.png b/TMessagesProj/src/emojis/twitter/emoji/6_113.png deleted file mode 100644 index 07e33c07cd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_114.png b/TMessagesProj/src/emojis/twitter/emoji/6_114.png deleted file mode 100644 index c84766e739..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_115.png b/TMessagesProj/src/emojis/twitter/emoji/6_115.png deleted file mode 100644 index 454a0e4dfe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_116.png b/TMessagesProj/src/emojis/twitter/emoji/6_116.png deleted file mode 100644 index 8c2e033a94..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_117.png b/TMessagesProj/src/emojis/twitter/emoji/6_117.png deleted file mode 100644 index 07b645ad00..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_118.png b/TMessagesProj/src/emojis/twitter/emoji/6_118.png deleted file mode 100644 index 110d35471e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_119.png b/TMessagesProj/src/emojis/twitter/emoji/6_119.png deleted file mode 100644 index 7b145b7c52..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_12.png b/TMessagesProj/src/emojis/twitter/emoji/6_12.png deleted file mode 100644 index 26ca29dc09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_120.png b/TMessagesProj/src/emojis/twitter/emoji/6_120.png deleted file mode 100644 index 828e8b45cc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_121.png b/TMessagesProj/src/emojis/twitter/emoji/6_121.png deleted file mode 100644 index 5801510140..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_122.png b/TMessagesProj/src/emojis/twitter/emoji/6_122.png deleted file mode 100644 index e6fa5cc06d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_123.png b/TMessagesProj/src/emojis/twitter/emoji/6_123.png deleted file mode 100644 index 87968ac971..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_124.png b/TMessagesProj/src/emojis/twitter/emoji/6_124.png deleted file mode 100644 index d050b82f61..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_125.png b/TMessagesProj/src/emojis/twitter/emoji/6_125.png deleted file mode 100644 index 86c5bc4812..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_126.png b/TMessagesProj/src/emojis/twitter/emoji/6_126.png deleted file mode 100644 index 6aaad1acf1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_127.png b/TMessagesProj/src/emojis/twitter/emoji/6_127.png deleted file mode 100644 index 2b1451254e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_128.png b/TMessagesProj/src/emojis/twitter/emoji/6_128.png deleted file mode 100644 index eaae4ccb1b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_129.png b/TMessagesProj/src/emojis/twitter/emoji/6_129.png deleted file mode 100644 index b2d2f6750f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_13.png b/TMessagesProj/src/emojis/twitter/emoji/6_13.png deleted file mode 100644 index a4731811ce..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_130.png b/TMessagesProj/src/emojis/twitter/emoji/6_130.png deleted file mode 100644 index a25143cfbf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_131.png b/TMessagesProj/src/emojis/twitter/emoji/6_131.png deleted file mode 100644 index 24016ae671..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_132.png b/TMessagesProj/src/emojis/twitter/emoji/6_132.png deleted file mode 100644 index 9a8fe188f5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_133.png b/TMessagesProj/src/emojis/twitter/emoji/6_133.png deleted file mode 100644 index d237a7db10..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_134.png b/TMessagesProj/src/emojis/twitter/emoji/6_134.png deleted file mode 100644 index f660153201..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_135.png b/TMessagesProj/src/emojis/twitter/emoji/6_135.png deleted file mode 100644 index 5a3750ccd5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_136.png b/TMessagesProj/src/emojis/twitter/emoji/6_136.png deleted file mode 100644 index a068b25a28..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_137.png b/TMessagesProj/src/emojis/twitter/emoji/6_137.png deleted file mode 100644 index 85ec51d2cd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_138.png b/TMessagesProj/src/emojis/twitter/emoji/6_138.png deleted file mode 100644 index fc69a059ba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_139.png b/TMessagesProj/src/emojis/twitter/emoji/6_139.png deleted file mode 100644 index 28bceb51b5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_14.png b/TMessagesProj/src/emojis/twitter/emoji/6_14.png deleted file mode 100644 index ca6eca7d59..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_140.png b/TMessagesProj/src/emojis/twitter/emoji/6_140.png deleted file mode 100644 index 0f164f455d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_141.png b/TMessagesProj/src/emojis/twitter/emoji/6_141.png deleted file mode 100644 index 430d6244ff..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_142.png b/TMessagesProj/src/emojis/twitter/emoji/6_142.png deleted file mode 100644 index 0d160160bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_143.png b/TMessagesProj/src/emojis/twitter/emoji/6_143.png deleted file mode 100644 index 0b272b2e15..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_144.png b/TMessagesProj/src/emojis/twitter/emoji/6_144.png deleted file mode 100644 index 8e6aa70e44..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_145.png b/TMessagesProj/src/emojis/twitter/emoji/6_145.png deleted file mode 100644 index 3c0de8c4ec..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_146.png b/TMessagesProj/src/emojis/twitter/emoji/6_146.png deleted file mode 100644 index bfe330004f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_147.png b/TMessagesProj/src/emojis/twitter/emoji/6_147.png deleted file mode 100644 index bb6f49d4be..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_148.png b/TMessagesProj/src/emojis/twitter/emoji/6_148.png deleted file mode 100644 index 121d0fca51..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_149.png b/TMessagesProj/src/emojis/twitter/emoji/6_149.png deleted file mode 100644 index 82bce5dc4c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_15.png b/TMessagesProj/src/emojis/twitter/emoji/6_15.png deleted file mode 100644 index 83a0cfcb53..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_150.png b/TMessagesProj/src/emojis/twitter/emoji/6_150.png deleted file mode 100644 index 879c5e56ff..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_151.png b/TMessagesProj/src/emojis/twitter/emoji/6_151.png deleted file mode 100644 index b33bc6e783..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_152.png b/TMessagesProj/src/emojis/twitter/emoji/6_152.png deleted file mode 100644 index 1e43945670..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_153.png b/TMessagesProj/src/emojis/twitter/emoji/6_153.png deleted file mode 100644 index 77d1a68bb2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_154.png b/TMessagesProj/src/emojis/twitter/emoji/6_154.png deleted file mode 100644 index 95bb1e032f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_155.png b/TMessagesProj/src/emojis/twitter/emoji/6_155.png deleted file mode 100644 index 9c94baad4f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_156.png b/TMessagesProj/src/emojis/twitter/emoji/6_156.png deleted file mode 100644 index 2fe0abc2cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_157.png b/TMessagesProj/src/emojis/twitter/emoji/6_157.png deleted file mode 100644 index 53eaf10c71..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_158.png b/TMessagesProj/src/emojis/twitter/emoji/6_158.png deleted file mode 100644 index 677b0d4df1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_159.png b/TMessagesProj/src/emojis/twitter/emoji/6_159.png deleted file mode 100644 index c5f0082aff..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_16.png b/TMessagesProj/src/emojis/twitter/emoji/6_16.png deleted file mode 100644 index 4c024dca8e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_160.png b/TMessagesProj/src/emojis/twitter/emoji/6_160.png deleted file mode 100644 index f60c20523e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_161.png b/TMessagesProj/src/emojis/twitter/emoji/6_161.png deleted file mode 100644 index e802c504e1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_162.png b/TMessagesProj/src/emojis/twitter/emoji/6_162.png deleted file mode 100644 index 88dbf6d734..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_163.png b/TMessagesProj/src/emojis/twitter/emoji/6_163.png deleted file mode 100644 index b6ef0d533b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_164.png b/TMessagesProj/src/emojis/twitter/emoji/6_164.png deleted file mode 100644 index 48d8ae9cc4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_165.png b/TMessagesProj/src/emojis/twitter/emoji/6_165.png deleted file mode 100644 index 13b69f56af..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_166.png b/TMessagesProj/src/emojis/twitter/emoji/6_166.png deleted file mode 100644 index 5f718f0dbe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_167.png b/TMessagesProj/src/emojis/twitter/emoji/6_167.png deleted file mode 100644 index 72eb3f1169..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_168.png b/TMessagesProj/src/emojis/twitter/emoji/6_168.png deleted file mode 100644 index 1191451f7e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_169.png b/TMessagesProj/src/emojis/twitter/emoji/6_169.png deleted file mode 100644 index f4ad0ac525..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_17.png b/TMessagesProj/src/emojis/twitter/emoji/6_17.png deleted file mode 100644 index cc83985d16..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_170.png b/TMessagesProj/src/emojis/twitter/emoji/6_170.png deleted file mode 100644 index f3d4d202a7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_171.png b/TMessagesProj/src/emojis/twitter/emoji/6_171.png deleted file mode 100644 index 6d9b7e14fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_172.png b/TMessagesProj/src/emojis/twitter/emoji/6_172.png deleted file mode 100644 index 7d7caa3993..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_173.png b/TMessagesProj/src/emojis/twitter/emoji/6_173.png deleted file mode 100644 index b325e8acb9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_174.png b/TMessagesProj/src/emojis/twitter/emoji/6_174.png deleted file mode 100644 index fc7a4ee699..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_175.png b/TMessagesProj/src/emojis/twitter/emoji/6_175.png deleted file mode 100644 index 14c31ccfb6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_176.png b/TMessagesProj/src/emojis/twitter/emoji/6_176.png deleted file mode 100644 index 43055abac5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_177.png b/TMessagesProj/src/emojis/twitter/emoji/6_177.png deleted file mode 100644 index e9922f5af8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_178.png b/TMessagesProj/src/emojis/twitter/emoji/6_178.png deleted file mode 100644 index 3b74b725b4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_179.png b/TMessagesProj/src/emojis/twitter/emoji/6_179.png deleted file mode 100644 index 0a6fe278df..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_18.png b/TMessagesProj/src/emojis/twitter/emoji/6_18.png deleted file mode 100644 index 1594d928ed..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_180.png b/TMessagesProj/src/emojis/twitter/emoji/6_180.png deleted file mode 100644 index b1199ba47d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_181.png b/TMessagesProj/src/emojis/twitter/emoji/6_181.png deleted file mode 100644 index e0dba7b23f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_182.png b/TMessagesProj/src/emojis/twitter/emoji/6_182.png deleted file mode 100644 index 98057b12f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_183.png b/TMessagesProj/src/emojis/twitter/emoji/6_183.png deleted file mode 100644 index f907c4cccd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_184.png b/TMessagesProj/src/emojis/twitter/emoji/6_184.png deleted file mode 100644 index 43d2088e30..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_185.png b/TMessagesProj/src/emojis/twitter/emoji/6_185.png deleted file mode 100644 index df97e96591..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_186.png b/TMessagesProj/src/emojis/twitter/emoji/6_186.png deleted file mode 100644 index 472e474f91..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_187.png b/TMessagesProj/src/emojis/twitter/emoji/6_187.png deleted file mode 100644 index 3a0a82f373..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_188.png b/TMessagesProj/src/emojis/twitter/emoji/6_188.png deleted file mode 100644 index 2deecf0711..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_189.png b/TMessagesProj/src/emojis/twitter/emoji/6_189.png deleted file mode 100644 index b38f0a03fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_19.png b/TMessagesProj/src/emojis/twitter/emoji/6_19.png deleted file mode 100644 index 1b7c31ad96..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_190.png b/TMessagesProj/src/emojis/twitter/emoji/6_190.png deleted file mode 100644 index 93b695cfcc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_191.png b/TMessagesProj/src/emojis/twitter/emoji/6_191.png deleted file mode 100644 index afee5830ab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_192.png b/TMessagesProj/src/emojis/twitter/emoji/6_192.png deleted file mode 100644 index 2724f463ac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_193.png b/TMessagesProj/src/emojis/twitter/emoji/6_193.png deleted file mode 100644 index 6b0ee755db..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_194.png b/TMessagesProj/src/emojis/twitter/emoji/6_194.png deleted file mode 100644 index c89df2f924..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_195.png b/TMessagesProj/src/emojis/twitter/emoji/6_195.png deleted file mode 100644 index 9ab7c9c907..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_196.png b/TMessagesProj/src/emojis/twitter/emoji/6_196.png deleted file mode 100644 index 44c4411252..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_197.png b/TMessagesProj/src/emojis/twitter/emoji/6_197.png deleted file mode 100644 index b613dacb79..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_198.png b/TMessagesProj/src/emojis/twitter/emoji/6_198.png deleted file mode 100644 index c55191bca0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_199.png b/TMessagesProj/src/emojis/twitter/emoji/6_199.png deleted file mode 100644 index e04284343c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_2.png b/TMessagesProj/src/emojis/twitter/emoji/6_2.png deleted file mode 100644 index c345bc3515..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_20.png b/TMessagesProj/src/emojis/twitter/emoji/6_20.png deleted file mode 100644 index 7ec1099987..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_200.png b/TMessagesProj/src/emojis/twitter/emoji/6_200.png deleted file mode 100644 index 206037de69..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_201.png b/TMessagesProj/src/emojis/twitter/emoji/6_201.png deleted file mode 100644 index bdfd879fde..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_202.png b/TMessagesProj/src/emojis/twitter/emoji/6_202.png deleted file mode 100644 index b008856c1d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_203.png b/TMessagesProj/src/emojis/twitter/emoji/6_203.png deleted file mode 100644 index 0d3cba815f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_204.png b/TMessagesProj/src/emojis/twitter/emoji/6_204.png deleted file mode 100644 index e5e0961f5d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_205.png b/TMessagesProj/src/emojis/twitter/emoji/6_205.png deleted file mode 100644 index f05ae71429..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_206.png b/TMessagesProj/src/emojis/twitter/emoji/6_206.png deleted file mode 100644 index 1539c1e262..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_207.png b/TMessagesProj/src/emojis/twitter/emoji/6_207.png deleted file mode 100644 index 0469068292..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_208.png b/TMessagesProj/src/emojis/twitter/emoji/6_208.png deleted file mode 100644 index 576232dd3a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_209.png b/TMessagesProj/src/emojis/twitter/emoji/6_209.png deleted file mode 100644 index bcd4975211..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_21.png b/TMessagesProj/src/emojis/twitter/emoji/6_21.png deleted file mode 100644 index 083c0f07bd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_210.png b/TMessagesProj/src/emojis/twitter/emoji/6_210.png deleted file mode 100644 index d9985213f1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_211.png b/TMessagesProj/src/emojis/twitter/emoji/6_211.png deleted file mode 100644 index 8ff331a256..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_212.png b/TMessagesProj/src/emojis/twitter/emoji/6_212.png deleted file mode 100644 index 6648c510ee..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_213.png b/TMessagesProj/src/emojis/twitter/emoji/6_213.png deleted file mode 100644 index 7a4d3f7497..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_214.png b/TMessagesProj/src/emojis/twitter/emoji/6_214.png deleted file mode 100644 index f57d32bfb9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_215.png b/TMessagesProj/src/emojis/twitter/emoji/6_215.png deleted file mode 100644 index efceb02a55..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_216.png b/TMessagesProj/src/emojis/twitter/emoji/6_216.png deleted file mode 100644 index 906e51d366..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_217.png b/TMessagesProj/src/emojis/twitter/emoji/6_217.png deleted file mode 100644 index bab4d7708c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_218.png b/TMessagesProj/src/emojis/twitter/emoji/6_218.png deleted file mode 100644 index 54b40c9852..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_219.png b/TMessagesProj/src/emojis/twitter/emoji/6_219.png deleted file mode 100644 index 8d4468e2a5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_22.png b/TMessagesProj/src/emojis/twitter/emoji/6_22.png deleted file mode 100644 index 3089d8c744..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_220.png b/TMessagesProj/src/emojis/twitter/emoji/6_220.png deleted file mode 100644 index 2ee874e4d9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_221.png b/TMessagesProj/src/emojis/twitter/emoji/6_221.png deleted file mode 100644 index cb83822c9d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_222.png b/TMessagesProj/src/emojis/twitter/emoji/6_222.png deleted file mode 100644 index 994116f9fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_223.png b/TMessagesProj/src/emojis/twitter/emoji/6_223.png deleted file mode 100644 index 1488c5834c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_224.png b/TMessagesProj/src/emojis/twitter/emoji/6_224.png deleted file mode 100644 index 58441168a9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_225.png b/TMessagesProj/src/emojis/twitter/emoji/6_225.png deleted file mode 100644 index d0fb618ecc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_226.png b/TMessagesProj/src/emojis/twitter/emoji/6_226.png deleted file mode 100644 index f5b32379e4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_227.png b/TMessagesProj/src/emojis/twitter/emoji/6_227.png deleted file mode 100644 index 8eb11df79b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_228.png b/TMessagesProj/src/emojis/twitter/emoji/6_228.png deleted file mode 100644 index 0e5881c21d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_229.png b/TMessagesProj/src/emojis/twitter/emoji/6_229.png deleted file mode 100644 index 0ea3c5ee05..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_229.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_23.png b/TMessagesProj/src/emojis/twitter/emoji/6_23.png deleted file mode 100644 index 06f9cbfc64..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_230.png b/TMessagesProj/src/emojis/twitter/emoji/6_230.png deleted file mode 100644 index a22b2757ab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_230.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_231.png b/TMessagesProj/src/emojis/twitter/emoji/6_231.png deleted file mode 100644 index 9f9c95ba5c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_231.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_232.png b/TMessagesProj/src/emojis/twitter/emoji/6_232.png deleted file mode 100644 index 0a00af72e6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_232.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_233.png b/TMessagesProj/src/emojis/twitter/emoji/6_233.png deleted file mode 100644 index 96655e33cd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_233.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_234.png b/TMessagesProj/src/emojis/twitter/emoji/6_234.png deleted file mode 100644 index 99f815ddb5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_234.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_235.png b/TMessagesProj/src/emojis/twitter/emoji/6_235.png deleted file mode 100644 index 60b272c1c4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_235.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_236.png b/TMessagesProj/src/emojis/twitter/emoji/6_236.png deleted file mode 100644 index 666eb8b366..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_236.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_237.png b/TMessagesProj/src/emojis/twitter/emoji/6_237.png deleted file mode 100644 index c231c739f3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_237.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_238.png b/TMessagesProj/src/emojis/twitter/emoji/6_238.png deleted file mode 100644 index 719005af38..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_238.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_239.png b/TMessagesProj/src/emojis/twitter/emoji/6_239.png deleted file mode 100644 index a5fac885e3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_239.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_24.png b/TMessagesProj/src/emojis/twitter/emoji/6_24.png deleted file mode 100644 index 37cb1c1f27..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_240.png b/TMessagesProj/src/emojis/twitter/emoji/6_240.png deleted file mode 100644 index 5304666f2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_240.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_241.png b/TMessagesProj/src/emojis/twitter/emoji/6_241.png deleted file mode 100644 index 4778925527..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_241.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_242.png b/TMessagesProj/src/emojis/twitter/emoji/6_242.png deleted file mode 100644 index 19b31415f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_242.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_243.png b/TMessagesProj/src/emojis/twitter/emoji/6_243.png deleted file mode 100644 index 2392486e13..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_243.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_244.png b/TMessagesProj/src/emojis/twitter/emoji/6_244.png deleted file mode 100644 index 828b37fe09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_244.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_245.png b/TMessagesProj/src/emojis/twitter/emoji/6_245.png deleted file mode 100644 index eae3ae6b8e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_245.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_246.png b/TMessagesProj/src/emojis/twitter/emoji/6_246.png deleted file mode 100644 index 9296d7ae1e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_246.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_247.png b/TMessagesProj/src/emojis/twitter/emoji/6_247.png deleted file mode 100644 index a9a9526a3f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_247.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_248.png b/TMessagesProj/src/emojis/twitter/emoji/6_248.png deleted file mode 100644 index e6340745a7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_248.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_249.png b/TMessagesProj/src/emojis/twitter/emoji/6_249.png deleted file mode 100644 index 73a8677832..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_249.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_25.png b/TMessagesProj/src/emojis/twitter/emoji/6_25.png deleted file mode 100644 index 8cf93751ea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_250.png b/TMessagesProj/src/emojis/twitter/emoji/6_250.png deleted file mode 100644 index e81b51390c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_250.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_251.png b/TMessagesProj/src/emojis/twitter/emoji/6_251.png deleted file mode 100644 index 69c6fc7f78..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_251.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_252.png b/TMessagesProj/src/emojis/twitter/emoji/6_252.png deleted file mode 100644 index 0a3418cfd6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_252.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_253.png b/TMessagesProj/src/emojis/twitter/emoji/6_253.png deleted file mode 100644 index fbcd33eb3e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_253.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_254.png b/TMessagesProj/src/emojis/twitter/emoji/6_254.png deleted file mode 100644 index 091f47672d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_254.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_255.png b/TMessagesProj/src/emojis/twitter/emoji/6_255.png deleted file mode 100644 index 623d978412..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_255.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_256.png b/TMessagesProj/src/emojis/twitter/emoji/6_256.png deleted file mode 100644 index f24dbd2019..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_256.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_257.png b/TMessagesProj/src/emojis/twitter/emoji/6_257.png deleted file mode 100644 index 358e466e7c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_257.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_258.png b/TMessagesProj/src/emojis/twitter/emoji/6_258.png deleted file mode 100644 index 84fd5ff302..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_258.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_259.png b/TMessagesProj/src/emojis/twitter/emoji/6_259.png deleted file mode 100644 index cc2ff81850..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_259.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_26.png b/TMessagesProj/src/emojis/twitter/emoji/6_26.png deleted file mode 100644 index 211306a8b1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_260.png b/TMessagesProj/src/emojis/twitter/emoji/6_260.png deleted file mode 100644 index a8a0d94b8e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_260.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_261.png b/TMessagesProj/src/emojis/twitter/emoji/6_261.png deleted file mode 100644 index f1c01da9e6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_261.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_262.png b/TMessagesProj/src/emojis/twitter/emoji/6_262.png deleted file mode 100644 index a8c7a88e99..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_262.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_263.png b/TMessagesProj/src/emojis/twitter/emoji/6_263.png deleted file mode 100644 index b6df5aa703..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_263.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_264.png b/TMessagesProj/src/emojis/twitter/emoji/6_264.png deleted file mode 100644 index 0f813e5a2b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_264.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_265.png b/TMessagesProj/src/emojis/twitter/emoji/6_265.png deleted file mode 100644 index 211b8d5fc6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_265.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_266.png b/TMessagesProj/src/emojis/twitter/emoji/6_266.png deleted file mode 100644 index 3c51349f28..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_266.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_267.png b/TMessagesProj/src/emojis/twitter/emoji/6_267.png deleted file mode 100644 index 25319844c2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_267.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_268.png b/TMessagesProj/src/emojis/twitter/emoji/6_268.png deleted file mode 100644 index 864bd9e5fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_268.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_269.png b/TMessagesProj/src/emojis/twitter/emoji/6_269.png deleted file mode 100644 index 887d7aac16..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_269.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_27.png b/TMessagesProj/src/emojis/twitter/emoji/6_27.png deleted file mode 100644 index 0de85ca8bd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_270.png b/TMessagesProj/src/emojis/twitter/emoji/6_270.png deleted file mode 100644 index 3294055758..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_270.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_271.png b/TMessagesProj/src/emojis/twitter/emoji/6_271.png deleted file mode 100644 index 95ea1e5219..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_271.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_272.png b/TMessagesProj/src/emojis/twitter/emoji/6_272.png deleted file mode 100644 index e6c087f16a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_272.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_273.png b/TMessagesProj/src/emojis/twitter/emoji/6_273.png deleted file mode 100644 index 3e913167d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_273.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_274.png b/TMessagesProj/src/emojis/twitter/emoji/6_274.png deleted file mode 100644 index 252323e97d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_274.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_275.png b/TMessagesProj/src/emojis/twitter/emoji/6_275.png deleted file mode 100644 index 877597bb73..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_275.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_276.png b/TMessagesProj/src/emojis/twitter/emoji/6_276.png deleted file mode 100644 index 0c862b037c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_276.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_277.png b/TMessagesProj/src/emojis/twitter/emoji/6_277.png deleted file mode 100644 index 0d9fe4d8da..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_277.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_278.png b/TMessagesProj/src/emojis/twitter/emoji/6_278.png deleted file mode 100644 index 3036e9ee8e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_278.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_279.png b/TMessagesProj/src/emojis/twitter/emoji/6_279.png deleted file mode 100644 index cce9520e39..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_279.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_28.png b/TMessagesProj/src/emojis/twitter/emoji/6_28.png deleted file mode 100644 index 19c93e79e2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_280.png b/TMessagesProj/src/emojis/twitter/emoji/6_280.png deleted file mode 100644 index 1843888985..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_280.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_281.png b/TMessagesProj/src/emojis/twitter/emoji/6_281.png deleted file mode 100644 index 3fa452c04c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_281.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_282.png b/TMessagesProj/src/emojis/twitter/emoji/6_282.png deleted file mode 100644 index c89c692636..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_282.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_283.png b/TMessagesProj/src/emojis/twitter/emoji/6_283.png deleted file mode 100644 index 7581659f31..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_283.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_284.png b/TMessagesProj/src/emojis/twitter/emoji/6_284.png deleted file mode 100644 index b397a67445..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_284.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_285.png b/TMessagesProj/src/emojis/twitter/emoji/6_285.png deleted file mode 100644 index 5a1fc3ecc7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_285.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_286.png b/TMessagesProj/src/emojis/twitter/emoji/6_286.png deleted file mode 100644 index 607d95cc6d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_286.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_287.png b/TMessagesProj/src/emojis/twitter/emoji/6_287.png deleted file mode 100644 index 72ae11554a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_287.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_288.png b/TMessagesProj/src/emojis/twitter/emoji/6_288.png deleted file mode 100644 index 4c35fab013..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_288.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_289.png b/TMessagesProj/src/emojis/twitter/emoji/6_289.png deleted file mode 100644 index 0c3a77833f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_289.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_29.png b/TMessagesProj/src/emojis/twitter/emoji/6_29.png deleted file mode 100644 index 7a58129f0a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_290.png b/TMessagesProj/src/emojis/twitter/emoji/6_290.png deleted file mode 100644 index 5f44f43e56..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_290.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_291.png b/TMessagesProj/src/emojis/twitter/emoji/6_291.png deleted file mode 100644 index a04e4a7411..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_291.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_292.png b/TMessagesProj/src/emojis/twitter/emoji/6_292.png deleted file mode 100644 index cee77e0dc1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_292.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_293.png b/TMessagesProj/src/emojis/twitter/emoji/6_293.png deleted file mode 100644 index 6f6277e5e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_293.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_294.png b/TMessagesProj/src/emojis/twitter/emoji/6_294.png deleted file mode 100644 index 787a076c20..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_294.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_295.png b/TMessagesProj/src/emojis/twitter/emoji/6_295.png deleted file mode 100644 index d36eba9148..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_295.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_296.png b/TMessagesProj/src/emojis/twitter/emoji/6_296.png deleted file mode 100644 index ba4f7aae8b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_296.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_297.png b/TMessagesProj/src/emojis/twitter/emoji/6_297.png deleted file mode 100644 index 4df93bbeda..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_297.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_3.png b/TMessagesProj/src/emojis/twitter/emoji/6_3.png deleted file mode 100644 index 9b10d1a71f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_30.png b/TMessagesProj/src/emojis/twitter/emoji/6_30.png deleted file mode 100644 index a47af2f047..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_31.png b/TMessagesProj/src/emojis/twitter/emoji/6_31.png deleted file mode 100644 index 03d138e793..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_32.png b/TMessagesProj/src/emojis/twitter/emoji/6_32.png deleted file mode 100644 index 1d0d7c36c3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_33.png b/TMessagesProj/src/emojis/twitter/emoji/6_33.png deleted file mode 100644 index 770280a4e9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_34.png b/TMessagesProj/src/emojis/twitter/emoji/6_34.png deleted file mode 100644 index 60bad2352d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_35.png b/TMessagesProj/src/emojis/twitter/emoji/6_35.png deleted file mode 100644 index 97b909ca5e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_36.png b/TMessagesProj/src/emojis/twitter/emoji/6_36.png deleted file mode 100644 index 8b6c88584c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_37.png b/TMessagesProj/src/emojis/twitter/emoji/6_37.png deleted file mode 100644 index 0ba0706679..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_38.png b/TMessagesProj/src/emojis/twitter/emoji/6_38.png deleted file mode 100644 index e7b175986f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_39.png b/TMessagesProj/src/emojis/twitter/emoji/6_39.png deleted file mode 100644 index 95cf1431f2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_4.png b/TMessagesProj/src/emojis/twitter/emoji/6_4.png deleted file mode 100644 index 1ba8fe14c5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_40.png b/TMessagesProj/src/emojis/twitter/emoji/6_40.png deleted file mode 100644 index b3e4102e7f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_41.png b/TMessagesProj/src/emojis/twitter/emoji/6_41.png deleted file mode 100644 index 223750a984..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_42.png b/TMessagesProj/src/emojis/twitter/emoji/6_42.png deleted file mode 100644 index 179238ef93..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_43.png b/TMessagesProj/src/emojis/twitter/emoji/6_43.png deleted file mode 100644 index cd0d577c61..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_44.png b/TMessagesProj/src/emojis/twitter/emoji/6_44.png deleted file mode 100644 index ded4663e55..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_45.png b/TMessagesProj/src/emojis/twitter/emoji/6_45.png deleted file mode 100644 index 3874e72190..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_46.png b/TMessagesProj/src/emojis/twitter/emoji/6_46.png deleted file mode 100644 index 9b974af459..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_47.png b/TMessagesProj/src/emojis/twitter/emoji/6_47.png deleted file mode 100644 index 328e705f1e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_48.png b/TMessagesProj/src/emojis/twitter/emoji/6_48.png deleted file mode 100644 index 60258b5e35..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_49.png b/TMessagesProj/src/emojis/twitter/emoji/6_49.png deleted file mode 100644 index 4bc918e4b6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_5.png b/TMessagesProj/src/emojis/twitter/emoji/6_5.png deleted file mode 100644 index 7d36f18a20..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_50.png b/TMessagesProj/src/emojis/twitter/emoji/6_50.png deleted file mode 100644 index 24557981e1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_51.png b/TMessagesProj/src/emojis/twitter/emoji/6_51.png deleted file mode 100644 index b4f3806818..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_52.png b/TMessagesProj/src/emojis/twitter/emoji/6_52.png deleted file mode 100644 index 1f10ee1771..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_53.png b/TMessagesProj/src/emojis/twitter/emoji/6_53.png deleted file mode 100644 index 46daf76ba0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_54.png b/TMessagesProj/src/emojis/twitter/emoji/6_54.png deleted file mode 100644 index 52fe5c1865..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_55.png b/TMessagesProj/src/emojis/twitter/emoji/6_55.png deleted file mode 100644 index e410e06ad6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_56.png b/TMessagesProj/src/emojis/twitter/emoji/6_56.png deleted file mode 100644 index 66baaa37a5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_57.png b/TMessagesProj/src/emojis/twitter/emoji/6_57.png deleted file mode 100644 index 6090e9d5be..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_58.png b/TMessagesProj/src/emojis/twitter/emoji/6_58.png deleted file mode 100644 index d6f85f77cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_59.png b/TMessagesProj/src/emojis/twitter/emoji/6_59.png deleted file mode 100644 index 3b99456a3c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_6.png b/TMessagesProj/src/emojis/twitter/emoji/6_6.png deleted file mode 100644 index 11a3d85fc4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_60.png b/TMessagesProj/src/emojis/twitter/emoji/6_60.png deleted file mode 100644 index 177f782f7b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_61.png b/TMessagesProj/src/emojis/twitter/emoji/6_61.png deleted file mode 100644 index a2d2b9733c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_62.png b/TMessagesProj/src/emojis/twitter/emoji/6_62.png deleted file mode 100644 index 01b1393c19..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_63.png b/TMessagesProj/src/emojis/twitter/emoji/6_63.png deleted file mode 100644 index 9e9eb61bd8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_64.png b/TMessagesProj/src/emojis/twitter/emoji/6_64.png deleted file mode 100644 index 0f03d01412..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_65.png b/TMessagesProj/src/emojis/twitter/emoji/6_65.png deleted file mode 100644 index f00f40ad0b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_66.png b/TMessagesProj/src/emojis/twitter/emoji/6_66.png deleted file mode 100644 index c5e24637b6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_67.png b/TMessagesProj/src/emojis/twitter/emoji/6_67.png deleted file mode 100644 index 4b3e0393d1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_68.png b/TMessagesProj/src/emojis/twitter/emoji/6_68.png deleted file mode 100644 index e449feded1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_69.png b/TMessagesProj/src/emojis/twitter/emoji/6_69.png deleted file mode 100644 index 7df96279e8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_7.png b/TMessagesProj/src/emojis/twitter/emoji/6_7.png deleted file mode 100644 index 5e4889b0fe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_70.png b/TMessagesProj/src/emojis/twitter/emoji/6_70.png deleted file mode 100644 index cccedae570..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_71.png b/TMessagesProj/src/emojis/twitter/emoji/6_71.png deleted file mode 100644 index 566e8780cd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_72.png b/TMessagesProj/src/emojis/twitter/emoji/6_72.png deleted file mode 100644 index 66b5055c2c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_73.png b/TMessagesProj/src/emojis/twitter/emoji/6_73.png deleted file mode 100644 index bdfd2297c2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_74.png b/TMessagesProj/src/emojis/twitter/emoji/6_74.png deleted file mode 100644 index 17f1c289fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_75.png b/TMessagesProj/src/emojis/twitter/emoji/6_75.png deleted file mode 100644 index d12c06485f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_76.png b/TMessagesProj/src/emojis/twitter/emoji/6_76.png deleted file mode 100644 index 0066c777fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_77.png b/TMessagesProj/src/emojis/twitter/emoji/6_77.png deleted file mode 100644 index 8a7d706e90..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_78.png b/TMessagesProj/src/emojis/twitter/emoji/6_78.png deleted file mode 100644 index d0c058c4ef..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_79.png b/TMessagesProj/src/emojis/twitter/emoji/6_79.png deleted file mode 100644 index 21f722d467..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_8.png b/TMessagesProj/src/emojis/twitter/emoji/6_8.png deleted file mode 100644 index 9a6cb8a680..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_80.png b/TMessagesProj/src/emojis/twitter/emoji/6_80.png deleted file mode 100644 index 530d200c97..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_81.png b/TMessagesProj/src/emojis/twitter/emoji/6_81.png deleted file mode 100644 index 183060e6bb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_82.png b/TMessagesProj/src/emojis/twitter/emoji/6_82.png deleted file mode 100644 index b694478238..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_83.png b/TMessagesProj/src/emojis/twitter/emoji/6_83.png deleted file mode 100644 index 257119f637..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_84.png b/TMessagesProj/src/emojis/twitter/emoji/6_84.png deleted file mode 100644 index 77aef374b1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_85.png b/TMessagesProj/src/emojis/twitter/emoji/6_85.png deleted file mode 100644 index fef6f5e00c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_86.png b/TMessagesProj/src/emojis/twitter/emoji/6_86.png deleted file mode 100644 index 1fd8c8a148..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_87.png b/TMessagesProj/src/emojis/twitter/emoji/6_87.png deleted file mode 100644 index c954414cd0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_88.png b/TMessagesProj/src/emojis/twitter/emoji/6_88.png deleted file mode 100644 index 73d98ff0a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_89.png b/TMessagesProj/src/emojis/twitter/emoji/6_89.png deleted file mode 100644 index 6e6bcebce3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_9.png b/TMessagesProj/src/emojis/twitter/emoji/6_9.png deleted file mode 100644 index 27dad82d9d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_90.png b/TMessagesProj/src/emojis/twitter/emoji/6_90.png deleted file mode 100644 index 3a78bf2915..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_91.png b/TMessagesProj/src/emojis/twitter/emoji/6_91.png deleted file mode 100644 index 920c1d0d62..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_92.png b/TMessagesProj/src/emojis/twitter/emoji/6_92.png deleted file mode 100644 index 331a83e536..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_93.png b/TMessagesProj/src/emojis/twitter/emoji/6_93.png deleted file mode 100644 index 0324756547..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_94.png b/TMessagesProj/src/emojis/twitter/emoji/6_94.png deleted file mode 100644 index 24310ccda2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_95.png b/TMessagesProj/src/emojis/twitter/emoji/6_95.png deleted file mode 100644 index 2ae86c5cd4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_96.png b/TMessagesProj/src/emojis/twitter/emoji/6_96.png deleted file mode 100644 index 45a515ab16..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_97.png b/TMessagesProj/src/emojis/twitter/emoji/6_97.png deleted file mode 100644 index 8c8aa5e906..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_98.png b/TMessagesProj/src/emojis/twitter/emoji/6_98.png deleted file mode 100644 index c93dd54d79..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/6_99.png b/TMessagesProj/src/emojis/twitter/emoji/6_99.png deleted file mode 100644 index ed04dd290d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/6_99.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_0.png b/TMessagesProj/src/emojis/twitter/emoji/7_0.png deleted file mode 100644 index 28287eb28d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_0.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_1.png b/TMessagesProj/src/emojis/twitter/emoji/7_1.png deleted file mode 100644 index 0c80081104..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_1.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_10.png b/TMessagesProj/src/emojis/twitter/emoji/7_10.png deleted file mode 100644 index 975d5fb8b4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_10.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_100.png b/TMessagesProj/src/emojis/twitter/emoji/7_100.png deleted file mode 100644 index 43aeaf7483..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_100.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_101.png b/TMessagesProj/src/emojis/twitter/emoji/7_101.png deleted file mode 100644 index 6ea5223eef..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_101.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_102.png b/TMessagesProj/src/emojis/twitter/emoji/7_102.png deleted file mode 100644 index 54e7fd135d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_102.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_103.png b/TMessagesProj/src/emojis/twitter/emoji/7_103.png deleted file mode 100644 index 652c33fe10..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_103.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_104.png b/TMessagesProj/src/emojis/twitter/emoji/7_104.png deleted file mode 100644 index 027da4f770..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_104.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_105.png b/TMessagesProj/src/emojis/twitter/emoji/7_105.png deleted file mode 100644 index c2572e8200..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_105.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_106.png b/TMessagesProj/src/emojis/twitter/emoji/7_106.png deleted file mode 100644 index 753e5b7474..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_106.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_107.png b/TMessagesProj/src/emojis/twitter/emoji/7_107.png deleted file mode 100644 index a7165776fa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_107.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_108.png b/TMessagesProj/src/emojis/twitter/emoji/7_108.png deleted file mode 100644 index 06ddb4090f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_108.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_109.png b/TMessagesProj/src/emojis/twitter/emoji/7_109.png deleted file mode 100644 index f12db37b0d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_109.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_11.png b/TMessagesProj/src/emojis/twitter/emoji/7_11.png deleted file mode 100644 index 7bfb8c5645..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_11.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_110.png b/TMessagesProj/src/emojis/twitter/emoji/7_110.png deleted file mode 100644 index 623f7cc7a6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_110.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_111.png b/TMessagesProj/src/emojis/twitter/emoji/7_111.png deleted file mode 100644 index 0dbdd81b6c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_111.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_112.png b/TMessagesProj/src/emojis/twitter/emoji/7_112.png deleted file mode 100644 index e26d5f68ba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_112.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_113.png b/TMessagesProj/src/emojis/twitter/emoji/7_113.png deleted file mode 100644 index 474a599538..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_113.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_114.png b/TMessagesProj/src/emojis/twitter/emoji/7_114.png deleted file mode 100644 index 93551f7829..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_114.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_115.png b/TMessagesProj/src/emojis/twitter/emoji/7_115.png deleted file mode 100644 index f4ab0ebdea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_115.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_116.png b/TMessagesProj/src/emojis/twitter/emoji/7_116.png deleted file mode 100644 index 13883b6d79..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_116.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_117.png b/TMessagesProj/src/emojis/twitter/emoji/7_117.png deleted file mode 100644 index 10dd5edc2e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_117.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_118.png b/TMessagesProj/src/emojis/twitter/emoji/7_118.png deleted file mode 100644 index cc73738d3a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_118.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_119.png b/TMessagesProj/src/emojis/twitter/emoji/7_119.png deleted file mode 100644 index c017d78966..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_119.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_12.png b/TMessagesProj/src/emojis/twitter/emoji/7_12.png deleted file mode 100644 index ef9524a6c5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_12.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_120.png b/TMessagesProj/src/emojis/twitter/emoji/7_120.png deleted file mode 100644 index 43b43e68c9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_120.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_121.png b/TMessagesProj/src/emojis/twitter/emoji/7_121.png deleted file mode 100644 index 7ced7db66e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_121.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_122.png b/TMessagesProj/src/emojis/twitter/emoji/7_122.png deleted file mode 100644 index 86e8545114..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_122.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_123.png b/TMessagesProj/src/emojis/twitter/emoji/7_123.png deleted file mode 100644 index 690b23f1c3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_123.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_124.png b/TMessagesProj/src/emojis/twitter/emoji/7_124.png deleted file mode 100644 index f82a9b4de8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_124.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_125.png b/TMessagesProj/src/emojis/twitter/emoji/7_125.png deleted file mode 100644 index 6ea5de4476..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_125.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_126.png b/TMessagesProj/src/emojis/twitter/emoji/7_126.png deleted file mode 100644 index 853680d08c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_126.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_127.png b/TMessagesProj/src/emojis/twitter/emoji/7_127.png deleted file mode 100644 index 57be020a93..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_127.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_128.png b/TMessagesProj/src/emojis/twitter/emoji/7_128.png deleted file mode 100644 index 92de8850eb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_128.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_129.png b/TMessagesProj/src/emojis/twitter/emoji/7_129.png deleted file mode 100644 index 084c73d8c4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_129.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_13.png b/TMessagesProj/src/emojis/twitter/emoji/7_13.png deleted file mode 100644 index 91e1087ccc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_13.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_130.png b/TMessagesProj/src/emojis/twitter/emoji/7_130.png deleted file mode 100644 index 28e37aaf2a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_130.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_131.png b/TMessagesProj/src/emojis/twitter/emoji/7_131.png deleted file mode 100644 index 6d7345bd8f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_131.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_132.png b/TMessagesProj/src/emojis/twitter/emoji/7_132.png deleted file mode 100644 index 8d7c850a9c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_132.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_133.png b/TMessagesProj/src/emojis/twitter/emoji/7_133.png deleted file mode 100644 index 861f4ca5c8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_133.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_134.png b/TMessagesProj/src/emojis/twitter/emoji/7_134.png deleted file mode 100644 index b740478062..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_134.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_135.png b/TMessagesProj/src/emojis/twitter/emoji/7_135.png deleted file mode 100644 index 15dfaba2cb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_135.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_136.png b/TMessagesProj/src/emojis/twitter/emoji/7_136.png deleted file mode 100644 index e0f9c96cc1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_136.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_137.png b/TMessagesProj/src/emojis/twitter/emoji/7_137.png deleted file mode 100644 index 8e1b3a2696..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_137.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_138.png b/TMessagesProj/src/emojis/twitter/emoji/7_138.png deleted file mode 100644 index ab2c2fc91c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_138.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_139.png b/TMessagesProj/src/emojis/twitter/emoji/7_139.png deleted file mode 100644 index ab0f6572f4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_139.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_14.png b/TMessagesProj/src/emojis/twitter/emoji/7_14.png deleted file mode 100644 index 490761773d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_14.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_140.png b/TMessagesProj/src/emojis/twitter/emoji/7_140.png deleted file mode 100644 index 974c5608d9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_140.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_141.png b/TMessagesProj/src/emojis/twitter/emoji/7_141.png deleted file mode 100644 index 8ac9f8d917..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_141.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_142.png b/TMessagesProj/src/emojis/twitter/emoji/7_142.png deleted file mode 100644 index 3301ba89bf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_142.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_143.png b/TMessagesProj/src/emojis/twitter/emoji/7_143.png deleted file mode 100644 index 98c3e60ed9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_143.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_144.png b/TMessagesProj/src/emojis/twitter/emoji/7_144.png deleted file mode 100644 index 4c05e5bf80..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_144.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_145.png b/TMessagesProj/src/emojis/twitter/emoji/7_145.png deleted file mode 100644 index 809d1e0066..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_145.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_146.png b/TMessagesProj/src/emojis/twitter/emoji/7_146.png deleted file mode 100644 index d027be9047..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_146.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_147.png b/TMessagesProj/src/emojis/twitter/emoji/7_147.png deleted file mode 100644 index 427adbd57f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_147.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_148.png b/TMessagesProj/src/emojis/twitter/emoji/7_148.png deleted file mode 100644 index 80c3fb1ea0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_148.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_149.png b/TMessagesProj/src/emojis/twitter/emoji/7_149.png deleted file mode 100644 index 9301580205..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_149.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_15.png b/TMessagesProj/src/emojis/twitter/emoji/7_15.png deleted file mode 100644 index ba932d5ba6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_15.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_150.png b/TMessagesProj/src/emojis/twitter/emoji/7_150.png deleted file mode 100644 index 8201eeedfd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_150.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_151.png b/TMessagesProj/src/emojis/twitter/emoji/7_151.png deleted file mode 100644 index 1c89909cac..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_151.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_152.png b/TMessagesProj/src/emojis/twitter/emoji/7_152.png deleted file mode 100644 index 57f8c395b3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_152.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_153.png b/TMessagesProj/src/emojis/twitter/emoji/7_153.png deleted file mode 100644 index 35945aca49..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_153.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_154.png b/TMessagesProj/src/emojis/twitter/emoji/7_154.png deleted file mode 100644 index a81d10c1dd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_154.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_155.png b/TMessagesProj/src/emojis/twitter/emoji/7_155.png deleted file mode 100644 index 475e934a00..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_155.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_156.png b/TMessagesProj/src/emojis/twitter/emoji/7_156.png deleted file mode 100644 index 0016105f47..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_156.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_157.png b/TMessagesProj/src/emojis/twitter/emoji/7_157.png deleted file mode 100644 index 9748929838..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_157.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_158.png b/TMessagesProj/src/emojis/twitter/emoji/7_158.png deleted file mode 100644 index 7358f44033..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_158.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_159.png b/TMessagesProj/src/emojis/twitter/emoji/7_159.png deleted file mode 100644 index f35221124d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_159.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_16.png b/TMessagesProj/src/emojis/twitter/emoji/7_16.png deleted file mode 100644 index c6888da64b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_16.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_160.png b/TMessagesProj/src/emojis/twitter/emoji/7_160.png deleted file mode 100644 index 4eda638e70..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_160.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_161.png b/TMessagesProj/src/emojis/twitter/emoji/7_161.png deleted file mode 100644 index 5741e07b6b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_161.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_162.png b/TMessagesProj/src/emojis/twitter/emoji/7_162.png deleted file mode 100644 index 077cb433ae..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_162.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_163.png b/TMessagesProj/src/emojis/twitter/emoji/7_163.png deleted file mode 100644 index b734d02240..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_163.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_164.png b/TMessagesProj/src/emojis/twitter/emoji/7_164.png deleted file mode 100644 index decbdabd9b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_164.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_165.png b/TMessagesProj/src/emojis/twitter/emoji/7_165.png deleted file mode 100644 index 8d54416fbb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_165.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_166.png b/TMessagesProj/src/emojis/twitter/emoji/7_166.png deleted file mode 100644 index ded10be00a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_166.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_167.png b/TMessagesProj/src/emojis/twitter/emoji/7_167.png deleted file mode 100644 index bf4b06f05b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_167.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_168.png b/TMessagesProj/src/emojis/twitter/emoji/7_168.png deleted file mode 100644 index 55db271365..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_168.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_169.png b/TMessagesProj/src/emojis/twitter/emoji/7_169.png deleted file mode 100644 index faacd0e18f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_169.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_17.png b/TMessagesProj/src/emojis/twitter/emoji/7_17.png deleted file mode 100644 index 77983ccef9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_17.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_170.png b/TMessagesProj/src/emojis/twitter/emoji/7_170.png deleted file mode 100644 index f3f2cb1010..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_170.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_171.png b/TMessagesProj/src/emojis/twitter/emoji/7_171.png deleted file mode 100644 index fcc89eccad..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_171.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_172.png b/TMessagesProj/src/emojis/twitter/emoji/7_172.png deleted file mode 100644 index 1c2ce9ee32..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_172.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_173.png b/TMessagesProj/src/emojis/twitter/emoji/7_173.png deleted file mode 100644 index 9ad9aea3ea..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_173.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_174.png b/TMessagesProj/src/emojis/twitter/emoji/7_174.png deleted file mode 100644 index 90259a728e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_174.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_175.png b/TMessagesProj/src/emojis/twitter/emoji/7_175.png deleted file mode 100644 index 94e5ade405..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_175.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_176.png b/TMessagesProj/src/emojis/twitter/emoji/7_176.png deleted file mode 100644 index f4806d61cf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_176.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_177.png b/TMessagesProj/src/emojis/twitter/emoji/7_177.png deleted file mode 100644 index c2e10b70f2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_177.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_178.png b/TMessagesProj/src/emojis/twitter/emoji/7_178.png deleted file mode 100644 index 7ceb1d7e76..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_178.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_179.png b/TMessagesProj/src/emojis/twitter/emoji/7_179.png deleted file mode 100644 index 11bce0ffdf..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_179.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_18.png b/TMessagesProj/src/emojis/twitter/emoji/7_18.png deleted file mode 100644 index 2f2a33d4ed..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_18.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_180.png b/TMessagesProj/src/emojis/twitter/emoji/7_180.png deleted file mode 100644 index 1cdbe0f05c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_180.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_181.png b/TMessagesProj/src/emojis/twitter/emoji/7_181.png deleted file mode 100644 index b768eac047..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_181.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_182.png b/TMessagesProj/src/emojis/twitter/emoji/7_182.png deleted file mode 100644 index f889015347..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_182.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_183.png b/TMessagesProj/src/emojis/twitter/emoji/7_183.png deleted file mode 100644 index 9f6a789942..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_183.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_184.png b/TMessagesProj/src/emojis/twitter/emoji/7_184.png deleted file mode 100644 index aab85f1250..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_184.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_185.png b/TMessagesProj/src/emojis/twitter/emoji/7_185.png deleted file mode 100644 index b84f7141d2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_185.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_186.png b/TMessagesProj/src/emojis/twitter/emoji/7_186.png deleted file mode 100644 index 8960728c13..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_186.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_187.png b/TMessagesProj/src/emojis/twitter/emoji/7_187.png deleted file mode 100644 index af6d2685a0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_187.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_188.png b/TMessagesProj/src/emojis/twitter/emoji/7_188.png deleted file mode 100644 index b787606af1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_188.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_189.png b/TMessagesProj/src/emojis/twitter/emoji/7_189.png deleted file mode 100644 index 1987199c8c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_189.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_19.png b/TMessagesProj/src/emojis/twitter/emoji/7_19.png deleted file mode 100644 index b420604b0b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_19.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_190.png b/TMessagesProj/src/emojis/twitter/emoji/7_190.png deleted file mode 100644 index 11b2c031ef..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_190.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_191.png b/TMessagesProj/src/emojis/twitter/emoji/7_191.png deleted file mode 100644 index d289805013..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_191.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_192.png b/TMessagesProj/src/emojis/twitter/emoji/7_192.png deleted file mode 100644 index 26f98574e0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_192.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_193.png b/TMessagesProj/src/emojis/twitter/emoji/7_193.png deleted file mode 100644 index b16abab436..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_193.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_194.png b/TMessagesProj/src/emojis/twitter/emoji/7_194.png deleted file mode 100644 index 0cc17fec03..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_194.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_195.png b/TMessagesProj/src/emojis/twitter/emoji/7_195.png deleted file mode 100644 index eee429e498..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_195.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_196.png b/TMessagesProj/src/emojis/twitter/emoji/7_196.png deleted file mode 100644 index 6ecfe447fb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_196.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_197.png b/TMessagesProj/src/emojis/twitter/emoji/7_197.png deleted file mode 100644 index c76448b2ff..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_197.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_198.png b/TMessagesProj/src/emojis/twitter/emoji/7_198.png deleted file mode 100644 index 19c6c82abc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_198.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_199.png b/TMessagesProj/src/emojis/twitter/emoji/7_199.png deleted file mode 100644 index 26e0d728ef..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_199.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_2.png b/TMessagesProj/src/emojis/twitter/emoji/7_2.png deleted file mode 100644 index ea0af3ac09..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_2.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_20.png b/TMessagesProj/src/emojis/twitter/emoji/7_20.png deleted file mode 100644 index de49a04e49..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_20.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_200.png b/TMessagesProj/src/emojis/twitter/emoji/7_200.png deleted file mode 100644 index 475e884cf5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_200.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_201.png b/TMessagesProj/src/emojis/twitter/emoji/7_201.png deleted file mode 100644 index 05c8301f47..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_201.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_202.png b/TMessagesProj/src/emojis/twitter/emoji/7_202.png deleted file mode 100644 index 6c400c3754..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_202.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_203.png b/TMessagesProj/src/emojis/twitter/emoji/7_203.png deleted file mode 100644 index 8cee03a946..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_203.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_204.png b/TMessagesProj/src/emojis/twitter/emoji/7_204.png deleted file mode 100644 index 03274e2b20..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_204.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_205.png b/TMessagesProj/src/emojis/twitter/emoji/7_205.png deleted file mode 100644 index b245bf8cbe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_205.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_206.png b/TMessagesProj/src/emojis/twitter/emoji/7_206.png deleted file mode 100644 index 7581bdad44..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_206.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_207.png b/TMessagesProj/src/emojis/twitter/emoji/7_207.png deleted file mode 100644 index fda4d2ec96..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_207.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_208.png b/TMessagesProj/src/emojis/twitter/emoji/7_208.png deleted file mode 100644 index 496c3a81e8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_208.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_209.png b/TMessagesProj/src/emojis/twitter/emoji/7_209.png deleted file mode 100644 index 1643957d7f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_209.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_21.png b/TMessagesProj/src/emojis/twitter/emoji/7_21.png deleted file mode 100644 index f3370d8640..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_21.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_210.png b/TMessagesProj/src/emojis/twitter/emoji/7_210.png deleted file mode 100644 index 06b2af3222..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_210.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_211.png b/TMessagesProj/src/emojis/twitter/emoji/7_211.png deleted file mode 100644 index 4a355be9a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_211.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_212.png b/TMessagesProj/src/emojis/twitter/emoji/7_212.png deleted file mode 100644 index adb9f2a22f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_212.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_213.png b/TMessagesProj/src/emojis/twitter/emoji/7_213.png deleted file mode 100644 index 5e9f57ec81..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_213.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_214.png b/TMessagesProj/src/emojis/twitter/emoji/7_214.png deleted file mode 100644 index b355c06ac4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_214.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_215.png b/TMessagesProj/src/emojis/twitter/emoji/7_215.png deleted file mode 100644 index c7e549194b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_215.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_216.png b/TMessagesProj/src/emojis/twitter/emoji/7_216.png deleted file mode 100644 index 262a9690e6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_216.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_217.png b/TMessagesProj/src/emojis/twitter/emoji/7_217.png deleted file mode 100644 index 6d22cb6c79..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_217.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_218.png b/TMessagesProj/src/emojis/twitter/emoji/7_218.png deleted file mode 100644 index 32569074e5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_218.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_219.png b/TMessagesProj/src/emojis/twitter/emoji/7_219.png deleted file mode 100644 index 400fcca632..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_219.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_22.png b/TMessagesProj/src/emojis/twitter/emoji/7_22.png deleted file mode 100644 index a14120e16b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_22.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_220.png b/TMessagesProj/src/emojis/twitter/emoji/7_220.png deleted file mode 100644 index 71b6d3bab5..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_220.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_221.png b/TMessagesProj/src/emojis/twitter/emoji/7_221.png deleted file mode 100644 index ea0be4bf98..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_221.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_222.png b/TMessagesProj/src/emojis/twitter/emoji/7_222.png deleted file mode 100644 index ec47da945a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_222.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_223.png b/TMessagesProj/src/emojis/twitter/emoji/7_223.png deleted file mode 100644 index 04fab76164..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_223.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_224.png b/TMessagesProj/src/emojis/twitter/emoji/7_224.png deleted file mode 100644 index 1ae3c83c62..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_224.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_225.png b/TMessagesProj/src/emojis/twitter/emoji/7_225.png deleted file mode 100644 index a9b6154c87..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_225.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_226.png b/TMessagesProj/src/emojis/twitter/emoji/7_226.png deleted file mode 100644 index f49a625667..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_226.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_227.png b/TMessagesProj/src/emojis/twitter/emoji/7_227.png deleted file mode 100644 index bf214e478c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_227.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_228.png b/TMessagesProj/src/emojis/twitter/emoji/7_228.png deleted file mode 100644 index 4477129b18..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_228.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_229.png b/TMessagesProj/src/emojis/twitter/emoji/7_229.png deleted file mode 100644 index e83233a866..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_229.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_23.png b/TMessagesProj/src/emojis/twitter/emoji/7_23.png deleted file mode 100644 index 4fa66d81dc..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_23.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_230.png b/TMessagesProj/src/emojis/twitter/emoji/7_230.png deleted file mode 100644 index 596423dda4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_230.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_231.png b/TMessagesProj/src/emojis/twitter/emoji/7_231.png deleted file mode 100644 index 96e11c5651..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_231.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_232.png b/TMessagesProj/src/emojis/twitter/emoji/7_232.png deleted file mode 100644 index 83741cc5d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_232.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_233.png b/TMessagesProj/src/emojis/twitter/emoji/7_233.png deleted file mode 100644 index 7349b1e63e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_233.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_234.png b/TMessagesProj/src/emojis/twitter/emoji/7_234.png deleted file mode 100644 index 6b005969b6..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_234.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_235.png b/TMessagesProj/src/emojis/twitter/emoji/7_235.png deleted file mode 100644 index 9229b66696..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_235.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_236.png b/TMessagesProj/src/emojis/twitter/emoji/7_236.png deleted file mode 100644 index 0f9d054ac0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_236.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_237.png b/TMessagesProj/src/emojis/twitter/emoji/7_237.png deleted file mode 100644 index 2e057b84c3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_237.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_238.png b/TMessagesProj/src/emojis/twitter/emoji/7_238.png deleted file mode 100644 index f38a88969c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_238.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_239.png b/TMessagesProj/src/emojis/twitter/emoji/7_239.png deleted file mode 100644 index 2506925e32..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_239.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_24.png b/TMessagesProj/src/emojis/twitter/emoji/7_24.png deleted file mode 100644 index 2c744ee9c4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_24.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_240.png b/TMessagesProj/src/emojis/twitter/emoji/7_240.png deleted file mode 100644 index 1153e042e1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_240.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_241.png b/TMessagesProj/src/emojis/twitter/emoji/7_241.png deleted file mode 100644 index d0defc0933..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_241.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_242.png b/TMessagesProj/src/emojis/twitter/emoji/7_242.png deleted file mode 100644 index 21c13eb47c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_242.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_243.png b/TMessagesProj/src/emojis/twitter/emoji/7_243.png deleted file mode 100644 index f010cbaaba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_243.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_244.png b/TMessagesProj/src/emojis/twitter/emoji/7_244.png deleted file mode 100644 index a724220a5c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_244.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_245.png b/TMessagesProj/src/emojis/twitter/emoji/7_245.png deleted file mode 100644 index dec873bf41..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_245.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_246.png b/TMessagesProj/src/emojis/twitter/emoji/7_246.png deleted file mode 100644 index 5a53c1b33b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_246.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_247.png b/TMessagesProj/src/emojis/twitter/emoji/7_247.png deleted file mode 100644 index 324beb2846..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_247.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_248.png b/TMessagesProj/src/emojis/twitter/emoji/7_248.png deleted file mode 100644 index d2bcf8c4f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_248.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_249.png b/TMessagesProj/src/emojis/twitter/emoji/7_249.png deleted file mode 100644 index 47bd8f6788..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_249.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_25.png b/TMessagesProj/src/emojis/twitter/emoji/7_25.png deleted file mode 100644 index eb3ebea479..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_25.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_250.png b/TMessagesProj/src/emojis/twitter/emoji/7_250.png deleted file mode 100644 index 8ff3733105..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_250.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_251.png b/TMessagesProj/src/emojis/twitter/emoji/7_251.png deleted file mode 100644 index 803954f854..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_251.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_252.png b/TMessagesProj/src/emojis/twitter/emoji/7_252.png deleted file mode 100644 index 2bc4312d56..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_252.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_253.png b/TMessagesProj/src/emojis/twitter/emoji/7_253.png deleted file mode 100644 index 23e7d35837..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_253.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_254.png b/TMessagesProj/src/emojis/twitter/emoji/7_254.png deleted file mode 100644 index 9e08ed6693..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_254.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_255.png b/TMessagesProj/src/emojis/twitter/emoji/7_255.png deleted file mode 100644 index d8da6bf06b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_255.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_256.png b/TMessagesProj/src/emojis/twitter/emoji/7_256.png deleted file mode 100644 index 362b2bd1fd..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_256.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_257.png b/TMessagesProj/src/emojis/twitter/emoji/7_257.png deleted file mode 100644 index 1ae7157269..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_257.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_258.png b/TMessagesProj/src/emojis/twitter/emoji/7_258.png deleted file mode 100644 index 0830d7153e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_258.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_26.png b/TMessagesProj/src/emojis/twitter/emoji/7_26.png deleted file mode 100644 index 249f34ea98..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_26.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_27.png b/TMessagesProj/src/emojis/twitter/emoji/7_27.png deleted file mode 100644 index 2adad5f14c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_27.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_28.png b/TMessagesProj/src/emojis/twitter/emoji/7_28.png deleted file mode 100644 index 480632fc83..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_28.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_29.png b/TMessagesProj/src/emojis/twitter/emoji/7_29.png deleted file mode 100644 index 6aab2bcced..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_29.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_3.png b/TMessagesProj/src/emojis/twitter/emoji/7_3.png deleted file mode 100644 index f7eca202c8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_3.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_30.png b/TMessagesProj/src/emojis/twitter/emoji/7_30.png deleted file mode 100644 index 7b39e22a3c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_30.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_31.png b/TMessagesProj/src/emojis/twitter/emoji/7_31.png deleted file mode 100644 index 351464d65a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_31.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_32.png b/TMessagesProj/src/emojis/twitter/emoji/7_32.png deleted file mode 100644 index c5482aa6aa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_32.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_33.png b/TMessagesProj/src/emojis/twitter/emoji/7_33.png deleted file mode 100644 index b440d626b2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_33.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_34.png b/TMessagesProj/src/emojis/twitter/emoji/7_34.png deleted file mode 100644 index 997640cf2f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_34.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_35.png b/TMessagesProj/src/emojis/twitter/emoji/7_35.png deleted file mode 100644 index 6e058f67a8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_35.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_36.png b/TMessagesProj/src/emojis/twitter/emoji/7_36.png deleted file mode 100644 index 6cc70454d3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_36.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_37.png b/TMessagesProj/src/emojis/twitter/emoji/7_37.png deleted file mode 100644 index b307ca1754..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_37.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_38.png b/TMessagesProj/src/emojis/twitter/emoji/7_38.png deleted file mode 100644 index 790d47d16f..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_38.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_39.png b/TMessagesProj/src/emojis/twitter/emoji/7_39.png deleted file mode 100644 index 0b95b32370..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_39.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_4.png b/TMessagesProj/src/emojis/twitter/emoji/7_4.png deleted file mode 100644 index 8e51cefcce..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_4.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_40.png b/TMessagesProj/src/emojis/twitter/emoji/7_40.png deleted file mode 100644 index e4ac520b9c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_40.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_41.png b/TMessagesProj/src/emojis/twitter/emoji/7_41.png deleted file mode 100644 index 6da8ee79f8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_41.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_42.png b/TMessagesProj/src/emojis/twitter/emoji/7_42.png deleted file mode 100644 index f2b21ffd7c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_42.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_43.png b/TMessagesProj/src/emojis/twitter/emoji/7_43.png deleted file mode 100644 index 2e809bc594..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_43.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_44.png b/TMessagesProj/src/emojis/twitter/emoji/7_44.png deleted file mode 100644 index 6c76117bb2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_44.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_45.png b/TMessagesProj/src/emojis/twitter/emoji/7_45.png deleted file mode 100644 index 835a9d0cfa..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_45.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_46.png b/TMessagesProj/src/emojis/twitter/emoji/7_46.png deleted file mode 100644 index 74158e29a9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_46.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_47.png b/TMessagesProj/src/emojis/twitter/emoji/7_47.png deleted file mode 100644 index f502e58647..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_47.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_48.png b/TMessagesProj/src/emojis/twitter/emoji/7_48.png deleted file mode 100644 index 09a4141460..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_48.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_49.png b/TMessagesProj/src/emojis/twitter/emoji/7_49.png deleted file mode 100644 index 002b0cc506..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_49.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_5.png b/TMessagesProj/src/emojis/twitter/emoji/7_5.png deleted file mode 100644 index 2273f38205..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_5.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_50.png b/TMessagesProj/src/emojis/twitter/emoji/7_50.png deleted file mode 100644 index bfd45fe71c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_50.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_51.png b/TMessagesProj/src/emojis/twitter/emoji/7_51.png deleted file mode 100644 index e6200b156e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_51.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_52.png b/TMessagesProj/src/emojis/twitter/emoji/7_52.png deleted file mode 100644 index b42f41de4d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_52.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_53.png b/TMessagesProj/src/emojis/twitter/emoji/7_53.png deleted file mode 100644 index 96ef1412e7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_53.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_54.png b/TMessagesProj/src/emojis/twitter/emoji/7_54.png deleted file mode 100644 index 9568741623..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_54.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_55.png b/TMessagesProj/src/emojis/twitter/emoji/7_55.png deleted file mode 100644 index d5d40da2c0..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_55.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_56.png b/TMessagesProj/src/emojis/twitter/emoji/7_56.png deleted file mode 100644 index c2e7e8590e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_56.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_57.png b/TMessagesProj/src/emojis/twitter/emoji/7_57.png deleted file mode 100644 index 17073903ab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_57.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_58.png b/TMessagesProj/src/emojis/twitter/emoji/7_58.png deleted file mode 100644 index ba5dfc5be4..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_58.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_59.png b/TMessagesProj/src/emojis/twitter/emoji/7_59.png deleted file mode 100644 index 28d8440de3..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_59.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_6.png b/TMessagesProj/src/emojis/twitter/emoji/7_6.png deleted file mode 100644 index 8b43699e14..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_6.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_60.png b/TMessagesProj/src/emojis/twitter/emoji/7_60.png deleted file mode 100644 index 874577f30b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_60.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_61.png b/TMessagesProj/src/emojis/twitter/emoji/7_61.png deleted file mode 100644 index 2b6496c118..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_61.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_62.png b/TMessagesProj/src/emojis/twitter/emoji/7_62.png deleted file mode 100644 index 585d69e4ab..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_62.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_63.png b/TMessagesProj/src/emojis/twitter/emoji/7_63.png deleted file mode 100644 index 3285d44f18..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_63.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_64.png b/TMessagesProj/src/emojis/twitter/emoji/7_64.png deleted file mode 100644 index 3219da2229..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_64.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_65.png b/TMessagesProj/src/emojis/twitter/emoji/7_65.png deleted file mode 100644 index 6e5df72905..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_65.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_66.png b/TMessagesProj/src/emojis/twitter/emoji/7_66.png deleted file mode 100644 index ecef3a5dcb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_66.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_67.png b/TMessagesProj/src/emojis/twitter/emoji/7_67.png deleted file mode 100644 index a62c68e6a1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_67.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_68.png b/TMessagesProj/src/emojis/twitter/emoji/7_68.png deleted file mode 100644 index 5e4d5bea14..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_68.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_69.png b/TMessagesProj/src/emojis/twitter/emoji/7_69.png deleted file mode 100644 index 33627b5ad2..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_69.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_7.png b/TMessagesProj/src/emojis/twitter/emoji/7_7.png deleted file mode 100644 index 72fedea2fe..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_7.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_70.png b/TMessagesProj/src/emojis/twitter/emoji/7_70.png deleted file mode 100644 index 977fa6738b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_70.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_71.png b/TMessagesProj/src/emojis/twitter/emoji/7_71.png deleted file mode 100644 index 01f4df83d7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_71.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_72.png b/TMessagesProj/src/emojis/twitter/emoji/7_72.png deleted file mode 100644 index 7301d8e8ba..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_72.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_73.png b/TMessagesProj/src/emojis/twitter/emoji/7_73.png deleted file mode 100644 index 4e56fff28e..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_73.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_74.png b/TMessagesProj/src/emojis/twitter/emoji/7_74.png deleted file mode 100644 index 0d60de1d04..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_74.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_75.png b/TMessagesProj/src/emojis/twitter/emoji/7_75.png deleted file mode 100644 index da208c78f1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_75.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_76.png b/TMessagesProj/src/emojis/twitter/emoji/7_76.png deleted file mode 100644 index 84c367dcdb..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_76.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_77.png b/TMessagesProj/src/emojis/twitter/emoji/7_77.png deleted file mode 100644 index 4051d7fff9..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_77.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_78.png b/TMessagesProj/src/emojis/twitter/emoji/7_78.png deleted file mode 100644 index 33b6f15c20..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_78.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_79.png b/TMessagesProj/src/emojis/twitter/emoji/7_79.png deleted file mode 100644 index 11e7c4d15d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_79.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_8.png b/TMessagesProj/src/emojis/twitter/emoji/7_8.png deleted file mode 100644 index ec28d78ace..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_8.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_80.png b/TMessagesProj/src/emojis/twitter/emoji/7_80.png deleted file mode 100644 index ad22861fc1..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_80.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_81.png b/TMessagesProj/src/emojis/twitter/emoji/7_81.png deleted file mode 100644 index 7172940bf8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_81.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_82.png b/TMessagesProj/src/emojis/twitter/emoji/7_82.png deleted file mode 100644 index f6be262016..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_82.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_83.png b/TMessagesProj/src/emojis/twitter/emoji/7_83.png deleted file mode 100644 index 21d83c83c8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_83.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_84.png b/TMessagesProj/src/emojis/twitter/emoji/7_84.png deleted file mode 100644 index 12d339d25a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_84.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_85.png b/TMessagesProj/src/emojis/twitter/emoji/7_85.png deleted file mode 100644 index a235dcef54..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_85.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_86.png b/TMessagesProj/src/emojis/twitter/emoji/7_86.png deleted file mode 100644 index fd556a44f7..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_86.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_87.png b/TMessagesProj/src/emojis/twitter/emoji/7_87.png deleted file mode 100644 index 3a338be435..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_87.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_88.png b/TMessagesProj/src/emojis/twitter/emoji/7_88.png deleted file mode 100644 index 44e2929bb8..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_88.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_89.png b/TMessagesProj/src/emojis/twitter/emoji/7_89.png deleted file mode 100644 index f59af8a920..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_89.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_9.png b/TMessagesProj/src/emojis/twitter/emoji/7_9.png deleted file mode 100644 index 1e0539c6de..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_9.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_90.png b/TMessagesProj/src/emojis/twitter/emoji/7_90.png deleted file mode 100644 index 088628e111..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_90.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_91.png b/TMessagesProj/src/emojis/twitter/emoji/7_91.png deleted file mode 100644 index 6038e0154c..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_91.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_92.png b/TMessagesProj/src/emojis/twitter/emoji/7_92.png deleted file mode 100644 index 063f8b0615..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_92.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_93.png b/TMessagesProj/src/emojis/twitter/emoji/7_93.png deleted file mode 100644 index 948c257542..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_93.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_94.png b/TMessagesProj/src/emojis/twitter/emoji/7_94.png deleted file mode 100644 index 377d07f58d..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_94.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_95.png b/TMessagesProj/src/emojis/twitter/emoji/7_95.png deleted file mode 100644 index b36ff7716a..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_95.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_96.png b/TMessagesProj/src/emojis/twitter/emoji/7_96.png deleted file mode 100644 index ffae6ba927..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_96.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_97.png b/TMessagesProj/src/emojis/twitter/emoji/7_97.png deleted file mode 100644 index 59690c0558..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_97.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_98.png b/TMessagesProj/src/emojis/twitter/emoji/7_98.png deleted file mode 100644 index 733cd0b32b..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_98.png and /dev/null differ diff --git a/TMessagesProj/src/emojis/twitter/emoji/7_99.png b/TMessagesProj/src/emojis/twitter/emoji/7_99.png deleted file mode 100644 index 7f5ffe7eff..0000000000 Binary files a/TMessagesProj/src/emojis/twitter/emoji/7_99.png and /dev/null differ diff --git a/TMessagesProj/src/main/assets/emoji/0_0.png b/TMessagesProj/src/main/assets/emoji/0_0.png new file mode 100644 index 0000000000..b4191a16a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1.png b/TMessagesProj/src/main/assets/emoji/0_1.png new file mode 100644 index 0000000000..234b29339f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_10.png b/TMessagesProj/src/main/assets/emoji/0_10.png new file mode 100644 index 0000000000..1c9fc55aba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_100.png b/TMessagesProj/src/main/assets/emoji/0_100.png new file mode 100644 index 0000000000..09e2451679 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1000.png b/TMessagesProj/src/main/assets/emoji/0_1000.png new file mode 100644 index 0000000000..b2d2cccc5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1000.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1001.png b/TMessagesProj/src/main/assets/emoji/0_1001.png new file mode 100644 index 0000000000..df4b024f40 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1001.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1002.png b/TMessagesProj/src/main/assets/emoji/0_1002.png new file mode 100644 index 0000000000..1fe589e84f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1002.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1003.png b/TMessagesProj/src/main/assets/emoji/0_1003.png new file mode 100644 index 0000000000..371310c548 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1003.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1004.png b/TMessagesProj/src/main/assets/emoji/0_1004.png new file mode 100644 index 0000000000..4e459af51a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1004.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1005.png b/TMessagesProj/src/main/assets/emoji/0_1005.png new file mode 100644 index 0000000000..910c102d26 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1005.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1006.png b/TMessagesProj/src/main/assets/emoji/0_1006.png new file mode 100644 index 0000000000..0fc48d1b94 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1006.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1007.png b/TMessagesProj/src/main/assets/emoji/0_1007.png new file mode 100644 index 0000000000..168b08a74b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1007.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1008.png b/TMessagesProj/src/main/assets/emoji/0_1008.png new file mode 100644 index 0000000000..b454747553 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1008.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1009.png b/TMessagesProj/src/main/assets/emoji/0_1009.png new file mode 100644 index 0000000000..e05df8e707 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1009.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_101.png b/TMessagesProj/src/main/assets/emoji/0_101.png new file mode 100644 index 0000000000..15366e61a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1010.png b/TMessagesProj/src/main/assets/emoji/0_1010.png new file mode 100644 index 0000000000..1ddfb276a4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1010.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1011.png b/TMessagesProj/src/main/assets/emoji/0_1011.png new file mode 100644 index 0000000000..ba76ed72d9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1011.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1012.png b/TMessagesProj/src/main/assets/emoji/0_1012.png new file mode 100644 index 0000000000..5772774ca9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1012.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1013.png b/TMessagesProj/src/main/assets/emoji/0_1013.png new file mode 100644 index 0000000000..36bc80de91 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1013.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1014.png b/TMessagesProj/src/main/assets/emoji/0_1014.png new file mode 100644 index 0000000000..da34c7affb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1014.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1015.png b/TMessagesProj/src/main/assets/emoji/0_1015.png new file mode 100644 index 0000000000..936f066d13 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1015.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1016.png b/TMessagesProj/src/main/assets/emoji/0_1016.png new file mode 100644 index 0000000000..94a3c3058d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1016.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1017.png b/TMessagesProj/src/main/assets/emoji/0_1017.png new file mode 100644 index 0000000000..7033acc722 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1017.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1018.png b/TMessagesProj/src/main/assets/emoji/0_1018.png new file mode 100644 index 0000000000..5469a74586 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1018.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1019.png b/TMessagesProj/src/main/assets/emoji/0_1019.png new file mode 100644 index 0000000000..3e52c55d88 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1019.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_102.png b/TMessagesProj/src/main/assets/emoji/0_102.png new file mode 100644 index 0000000000..012f5f9e39 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1020.png b/TMessagesProj/src/main/assets/emoji/0_1020.png new file mode 100644 index 0000000000..a81860f659 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1020.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1021.png b/TMessagesProj/src/main/assets/emoji/0_1021.png new file mode 100644 index 0000000000..1d253707eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1021.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1022.png b/TMessagesProj/src/main/assets/emoji/0_1022.png new file mode 100644 index 0000000000..584870e415 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1022.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1023.png b/TMessagesProj/src/main/assets/emoji/0_1023.png new file mode 100644 index 0000000000..8c1bf99e22 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1023.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1024.png b/TMessagesProj/src/main/assets/emoji/0_1024.png new file mode 100644 index 0000000000..b3cffcfce7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1024.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1025.png b/TMessagesProj/src/main/assets/emoji/0_1025.png new file mode 100644 index 0000000000..09c866cf1b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1025.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1026.png b/TMessagesProj/src/main/assets/emoji/0_1026.png new file mode 100644 index 0000000000..15ae8917d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1026.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1027.png b/TMessagesProj/src/main/assets/emoji/0_1027.png new file mode 100644 index 0000000000..1bb44ecb41 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1027.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1028.png b/TMessagesProj/src/main/assets/emoji/0_1028.png new file mode 100644 index 0000000000..b4c81a687a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1028.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1029.png b/TMessagesProj/src/main/assets/emoji/0_1029.png new file mode 100644 index 0000000000..c130299b93 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1029.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_103.png b/TMessagesProj/src/main/assets/emoji/0_103.png new file mode 100644 index 0000000000..bba6e358e2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1030.png b/TMessagesProj/src/main/assets/emoji/0_1030.png new file mode 100644 index 0000000000..dc4c65368b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1030.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1031.png b/TMessagesProj/src/main/assets/emoji/0_1031.png new file mode 100644 index 0000000000..c0b0053600 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1031.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1032.png b/TMessagesProj/src/main/assets/emoji/0_1032.png new file mode 100644 index 0000000000..fade91c118 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1032.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1033.png b/TMessagesProj/src/main/assets/emoji/0_1033.png new file mode 100644 index 0000000000..f2e217b26b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1033.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1034.png b/TMessagesProj/src/main/assets/emoji/0_1034.png new file mode 100644 index 0000000000..7c0bcd436b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1034.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1035.png b/TMessagesProj/src/main/assets/emoji/0_1035.png new file mode 100644 index 0000000000..d678e48d07 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1035.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1036.png b/TMessagesProj/src/main/assets/emoji/0_1036.png new file mode 100644 index 0000000000..5ccb4d0c30 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1036.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1037.png b/TMessagesProj/src/main/assets/emoji/0_1037.png new file mode 100644 index 0000000000..2c441c1387 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1037.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1038.png b/TMessagesProj/src/main/assets/emoji/0_1038.png new file mode 100644 index 0000000000..25e4143d81 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1038.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1039.png b/TMessagesProj/src/main/assets/emoji/0_1039.png new file mode 100644 index 0000000000..8dcec8f13f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1039.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_104.png b/TMessagesProj/src/main/assets/emoji/0_104.png new file mode 100644 index 0000000000..7ab804da2d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1040.png b/TMessagesProj/src/main/assets/emoji/0_1040.png new file mode 100644 index 0000000000..663a81c697 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1040.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1041.png b/TMessagesProj/src/main/assets/emoji/0_1041.png new file mode 100644 index 0000000000..6349731e28 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1041.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1042.png b/TMessagesProj/src/main/assets/emoji/0_1042.png new file mode 100644 index 0000000000..b2f2ebe15d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1042.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1043.png b/TMessagesProj/src/main/assets/emoji/0_1043.png new file mode 100644 index 0000000000..f9117ce2a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1043.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1044.png b/TMessagesProj/src/main/assets/emoji/0_1044.png new file mode 100644 index 0000000000..87386ff0f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1044.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1045.png b/TMessagesProj/src/main/assets/emoji/0_1045.png new file mode 100644 index 0000000000..8c475fa0ad Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1045.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1046.png b/TMessagesProj/src/main/assets/emoji/0_1046.png new file mode 100644 index 0000000000..7f687f5b22 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1046.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1047.png b/TMessagesProj/src/main/assets/emoji/0_1047.png new file mode 100644 index 0000000000..e97b5832d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1047.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1048.png b/TMessagesProj/src/main/assets/emoji/0_1048.png new file mode 100644 index 0000000000..054678d9b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1048.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1049.png b/TMessagesProj/src/main/assets/emoji/0_1049.png new file mode 100644 index 0000000000..6150b8df3f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1049.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_105.png b/TMessagesProj/src/main/assets/emoji/0_105.png new file mode 100644 index 0000000000..63e73b2195 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1050.png b/TMessagesProj/src/main/assets/emoji/0_1050.png new file mode 100644 index 0000000000..f977cf67cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1050.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1051.png b/TMessagesProj/src/main/assets/emoji/0_1051.png new file mode 100644 index 0000000000..ad30c0d1c5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1051.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1052.png b/TMessagesProj/src/main/assets/emoji/0_1052.png new file mode 100644 index 0000000000..98fc534410 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1052.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1053.png b/TMessagesProj/src/main/assets/emoji/0_1053.png new file mode 100644 index 0000000000..4ed5ffc1ec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1053.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1054.png b/TMessagesProj/src/main/assets/emoji/0_1054.png new file mode 100644 index 0000000000..b9db35b66d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1054.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1055.png b/TMessagesProj/src/main/assets/emoji/0_1055.png new file mode 100644 index 0000000000..238c1cd2c8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1055.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1056.png b/TMessagesProj/src/main/assets/emoji/0_1056.png new file mode 100644 index 0000000000..a42c758712 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1056.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1057.png b/TMessagesProj/src/main/assets/emoji/0_1057.png new file mode 100644 index 0000000000..00f78a1126 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1057.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1058.png b/TMessagesProj/src/main/assets/emoji/0_1058.png new file mode 100644 index 0000000000..fa0edbc84c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1058.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1059.png b/TMessagesProj/src/main/assets/emoji/0_1059.png new file mode 100644 index 0000000000..5a43e56221 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1059.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_106.png b/TMessagesProj/src/main/assets/emoji/0_106.png new file mode 100644 index 0000000000..af20883278 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1060.png b/TMessagesProj/src/main/assets/emoji/0_1060.png new file mode 100644 index 0000000000..750e6f4786 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1060.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1061.png b/TMessagesProj/src/main/assets/emoji/0_1061.png new file mode 100644 index 0000000000..31cc59de2f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1061.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1062.png b/TMessagesProj/src/main/assets/emoji/0_1062.png new file mode 100644 index 0000000000..9cb9f8976f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1062.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1063.png b/TMessagesProj/src/main/assets/emoji/0_1063.png new file mode 100644 index 0000000000..66ab2c34ec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1063.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1064.png b/TMessagesProj/src/main/assets/emoji/0_1064.png new file mode 100644 index 0000000000..b8c6987db5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1064.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1065.png b/TMessagesProj/src/main/assets/emoji/0_1065.png new file mode 100644 index 0000000000..93e315d8da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1065.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1066.png b/TMessagesProj/src/main/assets/emoji/0_1066.png new file mode 100644 index 0000000000..7969dc610b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1066.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1067.png b/TMessagesProj/src/main/assets/emoji/0_1067.png new file mode 100644 index 0000000000..a419f9cc71 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1067.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1068.png b/TMessagesProj/src/main/assets/emoji/0_1068.png new file mode 100644 index 0000000000..c4da1a4729 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1068.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1069.png b/TMessagesProj/src/main/assets/emoji/0_1069.png new file mode 100644 index 0000000000..e50fe369be Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1069.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_107.png b/TMessagesProj/src/main/assets/emoji/0_107.png new file mode 100644 index 0000000000..63145fe4ab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1070.png b/TMessagesProj/src/main/assets/emoji/0_1070.png new file mode 100644 index 0000000000..db7fbde2fd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1070.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1071.png b/TMessagesProj/src/main/assets/emoji/0_1071.png new file mode 100644 index 0000000000..4972a1c553 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1071.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1072.png b/TMessagesProj/src/main/assets/emoji/0_1072.png new file mode 100644 index 0000000000..3578cc068a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1072.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1073.png b/TMessagesProj/src/main/assets/emoji/0_1073.png new file mode 100644 index 0000000000..3155dd71ba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1073.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1074.png b/TMessagesProj/src/main/assets/emoji/0_1074.png new file mode 100644 index 0000000000..a2283c78a6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1074.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1075.png b/TMessagesProj/src/main/assets/emoji/0_1075.png new file mode 100644 index 0000000000..1e9029a287 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1075.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1076.png b/TMessagesProj/src/main/assets/emoji/0_1076.png new file mode 100644 index 0000000000..c23b2229b7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1076.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1077.png b/TMessagesProj/src/main/assets/emoji/0_1077.png new file mode 100644 index 0000000000..d6afd50027 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1077.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1078.png b/TMessagesProj/src/main/assets/emoji/0_1078.png new file mode 100644 index 0000000000..f1caa7b737 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1078.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1079.png b/TMessagesProj/src/main/assets/emoji/0_1079.png new file mode 100644 index 0000000000..df9977e028 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1079.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_108.png b/TMessagesProj/src/main/assets/emoji/0_108.png new file mode 100644 index 0000000000..a6cca4aee2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1080.png b/TMessagesProj/src/main/assets/emoji/0_1080.png new file mode 100644 index 0000000000..128d24a6a2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1080.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1081.png b/TMessagesProj/src/main/assets/emoji/0_1081.png new file mode 100644 index 0000000000..e5c64f36b4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1081.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1082.png b/TMessagesProj/src/main/assets/emoji/0_1082.png new file mode 100644 index 0000000000..b6a710b435 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1082.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1083.png b/TMessagesProj/src/main/assets/emoji/0_1083.png new file mode 100644 index 0000000000..078e9a4b24 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1083.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1084.png b/TMessagesProj/src/main/assets/emoji/0_1084.png new file mode 100644 index 0000000000..2d380306f7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1084.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1085.png b/TMessagesProj/src/main/assets/emoji/0_1085.png new file mode 100644 index 0000000000..eb9acdd2c0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1085.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1086.png b/TMessagesProj/src/main/assets/emoji/0_1086.png new file mode 100644 index 0000000000..194fec1c50 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1086.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1087.png b/TMessagesProj/src/main/assets/emoji/0_1087.png new file mode 100644 index 0000000000..f4a4cdae38 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1087.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1088.png b/TMessagesProj/src/main/assets/emoji/0_1088.png new file mode 100644 index 0000000000..c5fcf7f6ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1088.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1089.png b/TMessagesProj/src/main/assets/emoji/0_1089.png new file mode 100644 index 0000000000..79e6169ab3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1089.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_109.png b/TMessagesProj/src/main/assets/emoji/0_109.png new file mode 100644 index 0000000000..a9187f7152 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1090.png b/TMessagesProj/src/main/assets/emoji/0_1090.png new file mode 100644 index 0000000000..cca2db2595 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1090.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1091.png b/TMessagesProj/src/main/assets/emoji/0_1091.png new file mode 100644 index 0000000000..e6d69f8042 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1091.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1092.png b/TMessagesProj/src/main/assets/emoji/0_1092.png new file mode 100644 index 0000000000..a86c0a54ac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1092.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1093.png b/TMessagesProj/src/main/assets/emoji/0_1093.png new file mode 100644 index 0000000000..3af0ee756b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1093.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1094.png b/TMessagesProj/src/main/assets/emoji/0_1094.png new file mode 100644 index 0000000000..ec6c9f3493 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1094.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1095.png b/TMessagesProj/src/main/assets/emoji/0_1095.png new file mode 100644 index 0000000000..4ea0bdaaa0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1095.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1096.png b/TMessagesProj/src/main/assets/emoji/0_1096.png new file mode 100644 index 0000000000..7ea7d4623f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1096.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1097.png b/TMessagesProj/src/main/assets/emoji/0_1097.png new file mode 100644 index 0000000000..fc9792caeb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1097.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1098.png b/TMessagesProj/src/main/assets/emoji/0_1098.png new file mode 100644 index 0000000000..ffbaccb109 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1098.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1099.png b/TMessagesProj/src/main/assets/emoji/0_1099.png new file mode 100644 index 0000000000..f87e312980 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1099.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_11.png b/TMessagesProj/src/main/assets/emoji/0_11.png new file mode 100644 index 0000000000..a0c5850b2d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_110.png b/TMessagesProj/src/main/assets/emoji/0_110.png new file mode 100644 index 0000000000..03926b011c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1100.png b/TMessagesProj/src/main/assets/emoji/0_1100.png new file mode 100644 index 0000000000..c01d751ffc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1101.png b/TMessagesProj/src/main/assets/emoji/0_1101.png new file mode 100644 index 0000000000..cee5796441 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1102.png b/TMessagesProj/src/main/assets/emoji/0_1102.png new file mode 100644 index 0000000000..4d8344c413 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1103.png b/TMessagesProj/src/main/assets/emoji/0_1103.png new file mode 100644 index 0000000000..1a6e59beb6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1104.png b/TMessagesProj/src/main/assets/emoji/0_1104.png new file mode 100644 index 0000000000..3746021bfd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1105.png b/TMessagesProj/src/main/assets/emoji/0_1105.png new file mode 100644 index 0000000000..f0e4e24899 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1106.png b/TMessagesProj/src/main/assets/emoji/0_1106.png new file mode 100644 index 0000000000..699b3414ab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1107.png b/TMessagesProj/src/main/assets/emoji/0_1107.png new file mode 100644 index 0000000000..0f31e8de93 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1108.png b/TMessagesProj/src/main/assets/emoji/0_1108.png new file mode 100644 index 0000000000..44d5a57294 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1109.png b/TMessagesProj/src/main/assets/emoji/0_1109.png new file mode 100644 index 0000000000..ddec2b002b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_111.png b/TMessagesProj/src/main/assets/emoji/0_111.png new file mode 100644 index 0000000000..1230f0b8cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1110.png b/TMessagesProj/src/main/assets/emoji/0_1110.png new file mode 100644 index 0000000000..127e12e70b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1111.png b/TMessagesProj/src/main/assets/emoji/0_1111.png new file mode 100644 index 0000000000..8a80d49727 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1112.png b/TMessagesProj/src/main/assets/emoji/0_1112.png new file mode 100644 index 0000000000..14fe150b77 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1113.png b/TMessagesProj/src/main/assets/emoji/0_1113.png new file mode 100644 index 0000000000..b505f96a9f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1114.png b/TMessagesProj/src/main/assets/emoji/0_1114.png new file mode 100644 index 0000000000..2b4249ed96 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1115.png b/TMessagesProj/src/main/assets/emoji/0_1115.png new file mode 100644 index 0000000000..e48568636c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1116.png b/TMessagesProj/src/main/assets/emoji/0_1116.png new file mode 100644 index 0000000000..4b81251f05 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1117.png b/TMessagesProj/src/main/assets/emoji/0_1117.png new file mode 100644 index 0000000000..ad011f5fc5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1118.png b/TMessagesProj/src/main/assets/emoji/0_1118.png new file mode 100644 index 0000000000..7fbaf5ebb0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1119.png b/TMessagesProj/src/main/assets/emoji/0_1119.png new file mode 100644 index 0000000000..313cf525c9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_112.png b/TMessagesProj/src/main/assets/emoji/0_112.png new file mode 100644 index 0000000000..530ebe1bde Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1120.png b/TMessagesProj/src/main/assets/emoji/0_1120.png new file mode 100644 index 0000000000..ddd4483e82 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1121.png b/TMessagesProj/src/main/assets/emoji/0_1121.png new file mode 100644 index 0000000000..43443e7ec8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1122.png b/TMessagesProj/src/main/assets/emoji/0_1122.png new file mode 100644 index 0000000000..cd9298923d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1123.png b/TMessagesProj/src/main/assets/emoji/0_1123.png new file mode 100644 index 0000000000..78e5d3e166 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1124.png b/TMessagesProj/src/main/assets/emoji/0_1124.png new file mode 100644 index 0000000000..40336f2281 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1125.png b/TMessagesProj/src/main/assets/emoji/0_1125.png new file mode 100644 index 0000000000..ade2109f87 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1126.png b/TMessagesProj/src/main/assets/emoji/0_1126.png new file mode 100644 index 0000000000..f401a619a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1127.png b/TMessagesProj/src/main/assets/emoji/0_1127.png new file mode 100644 index 0000000000..a8112ce40b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1128.png b/TMessagesProj/src/main/assets/emoji/0_1128.png new file mode 100644 index 0000000000..66bde2e29f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1129.png b/TMessagesProj/src/main/assets/emoji/0_1129.png new file mode 100644 index 0000000000..6149bf5266 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_113.png b/TMessagesProj/src/main/assets/emoji/0_113.png new file mode 100644 index 0000000000..7dcd2ff6cd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1130.png b/TMessagesProj/src/main/assets/emoji/0_1130.png new file mode 100644 index 0000000000..1f149976bc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1131.png b/TMessagesProj/src/main/assets/emoji/0_1131.png new file mode 100644 index 0000000000..933bdb1a66 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1132.png b/TMessagesProj/src/main/assets/emoji/0_1132.png new file mode 100644 index 0000000000..102b58aeed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1133.png b/TMessagesProj/src/main/assets/emoji/0_1133.png new file mode 100644 index 0000000000..ba15cbe5d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1134.png b/TMessagesProj/src/main/assets/emoji/0_1134.png new file mode 100644 index 0000000000..9a01a29348 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1135.png b/TMessagesProj/src/main/assets/emoji/0_1135.png new file mode 100644 index 0000000000..8717679842 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1136.png b/TMessagesProj/src/main/assets/emoji/0_1136.png new file mode 100644 index 0000000000..dc56584aaf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1137.png b/TMessagesProj/src/main/assets/emoji/0_1137.png new file mode 100644 index 0000000000..15e9b899e5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1138.png b/TMessagesProj/src/main/assets/emoji/0_1138.png new file mode 100644 index 0000000000..6d062a3965 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1139.png b/TMessagesProj/src/main/assets/emoji/0_1139.png new file mode 100644 index 0000000000..61ab06d466 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_114.png b/TMessagesProj/src/main/assets/emoji/0_114.png new file mode 100644 index 0000000000..341fb2f9b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1140.png b/TMessagesProj/src/main/assets/emoji/0_1140.png new file mode 100644 index 0000000000..0e2f389c16 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1141.png b/TMessagesProj/src/main/assets/emoji/0_1141.png new file mode 100644 index 0000000000..5b06731bdf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1142.png b/TMessagesProj/src/main/assets/emoji/0_1142.png new file mode 100644 index 0000000000..187b1f91cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1143.png b/TMessagesProj/src/main/assets/emoji/0_1143.png new file mode 100644 index 0000000000..40a5ef4e05 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1144.png b/TMessagesProj/src/main/assets/emoji/0_1144.png new file mode 100644 index 0000000000..232178acbc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1145.png b/TMessagesProj/src/main/assets/emoji/0_1145.png new file mode 100644 index 0000000000..ace82b6140 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1146.png b/TMessagesProj/src/main/assets/emoji/0_1146.png new file mode 100644 index 0000000000..05c96c6899 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1147.png b/TMessagesProj/src/main/assets/emoji/0_1147.png new file mode 100644 index 0000000000..87d10c12aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1148.png b/TMessagesProj/src/main/assets/emoji/0_1148.png new file mode 100644 index 0000000000..c0cdbade17 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1149.png b/TMessagesProj/src/main/assets/emoji/0_1149.png new file mode 100644 index 0000000000..5fe8989306 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_115.png b/TMessagesProj/src/main/assets/emoji/0_115.png new file mode 100644 index 0000000000..cd07558642 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1150.png b/TMessagesProj/src/main/assets/emoji/0_1150.png new file mode 100644 index 0000000000..24f128923b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1151.png b/TMessagesProj/src/main/assets/emoji/0_1151.png new file mode 100644 index 0000000000..20c377fb39 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1152.png b/TMessagesProj/src/main/assets/emoji/0_1152.png new file mode 100644 index 0000000000..37b09e72ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1153.png b/TMessagesProj/src/main/assets/emoji/0_1153.png new file mode 100644 index 0000000000..e895d09445 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1154.png b/TMessagesProj/src/main/assets/emoji/0_1154.png new file mode 100644 index 0000000000..2fa67e45dd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1155.png b/TMessagesProj/src/main/assets/emoji/0_1155.png new file mode 100644 index 0000000000..ee14876975 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1156.png b/TMessagesProj/src/main/assets/emoji/0_1156.png new file mode 100644 index 0000000000..56cfedc84c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1157.png b/TMessagesProj/src/main/assets/emoji/0_1157.png new file mode 100644 index 0000000000..c8e432a942 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1158.png b/TMessagesProj/src/main/assets/emoji/0_1158.png new file mode 100644 index 0000000000..b41bdce5a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1159.png b/TMessagesProj/src/main/assets/emoji/0_1159.png new file mode 100644 index 0000000000..96e77ff553 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_116.png b/TMessagesProj/src/main/assets/emoji/0_116.png new file mode 100644 index 0000000000..80f4ea7554 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1160.png b/TMessagesProj/src/main/assets/emoji/0_1160.png new file mode 100644 index 0000000000..976b649b00 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1161.png b/TMessagesProj/src/main/assets/emoji/0_1161.png new file mode 100644 index 0000000000..5017e1608d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1162.png b/TMessagesProj/src/main/assets/emoji/0_1162.png new file mode 100644 index 0000000000..bee1825b7f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1163.png b/TMessagesProj/src/main/assets/emoji/0_1163.png new file mode 100644 index 0000000000..031dc84a17 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1164.png b/TMessagesProj/src/main/assets/emoji/0_1164.png new file mode 100644 index 0000000000..0415e68592 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1165.png b/TMessagesProj/src/main/assets/emoji/0_1165.png new file mode 100644 index 0000000000..81aced2879 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1166.png b/TMessagesProj/src/main/assets/emoji/0_1166.png new file mode 100644 index 0000000000..819680f4b7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1167.png b/TMessagesProj/src/main/assets/emoji/0_1167.png new file mode 100644 index 0000000000..9bdd32f12d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1168.png b/TMessagesProj/src/main/assets/emoji/0_1168.png new file mode 100644 index 0000000000..14cb09de5f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1169.png b/TMessagesProj/src/main/assets/emoji/0_1169.png new file mode 100644 index 0000000000..a996baf76f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_117.png b/TMessagesProj/src/main/assets/emoji/0_117.png new file mode 100644 index 0000000000..cc7de0cbba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1170.png b/TMessagesProj/src/main/assets/emoji/0_1170.png new file mode 100644 index 0000000000..84bce55fd6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1171.png b/TMessagesProj/src/main/assets/emoji/0_1171.png new file mode 100644 index 0000000000..5f8eea8aee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1172.png b/TMessagesProj/src/main/assets/emoji/0_1172.png new file mode 100644 index 0000000000..521d6631d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1173.png b/TMessagesProj/src/main/assets/emoji/0_1173.png new file mode 100644 index 0000000000..a56dd076f1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1174.png b/TMessagesProj/src/main/assets/emoji/0_1174.png new file mode 100644 index 0000000000..73d5e7ca64 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1175.png b/TMessagesProj/src/main/assets/emoji/0_1175.png new file mode 100644 index 0000000000..a0c7f3b844 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1176.png b/TMessagesProj/src/main/assets/emoji/0_1176.png new file mode 100644 index 0000000000..8c16f2ad97 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1177.png b/TMessagesProj/src/main/assets/emoji/0_1177.png new file mode 100644 index 0000000000..5147a17f8c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1178.png b/TMessagesProj/src/main/assets/emoji/0_1178.png new file mode 100644 index 0000000000..766d171a73 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1179.png b/TMessagesProj/src/main/assets/emoji/0_1179.png new file mode 100644 index 0000000000..a0dfaac2da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_118.png b/TMessagesProj/src/main/assets/emoji/0_118.png new file mode 100644 index 0000000000..211fe9244d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1180.png b/TMessagesProj/src/main/assets/emoji/0_1180.png new file mode 100644 index 0000000000..a034bf63f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1181.png b/TMessagesProj/src/main/assets/emoji/0_1181.png new file mode 100644 index 0000000000..60e2c2ec01 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1182.png b/TMessagesProj/src/main/assets/emoji/0_1182.png new file mode 100644 index 0000000000..3d7e725208 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1183.png b/TMessagesProj/src/main/assets/emoji/0_1183.png new file mode 100644 index 0000000000..33471c8fe6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1184.png b/TMessagesProj/src/main/assets/emoji/0_1184.png new file mode 100644 index 0000000000..083dd0860f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1185.png b/TMessagesProj/src/main/assets/emoji/0_1185.png new file mode 100644 index 0000000000..bdfc459ac2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1186.png b/TMessagesProj/src/main/assets/emoji/0_1186.png new file mode 100644 index 0000000000..dc01face5a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1187.png b/TMessagesProj/src/main/assets/emoji/0_1187.png new file mode 100644 index 0000000000..5a6a745270 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1188.png b/TMessagesProj/src/main/assets/emoji/0_1188.png new file mode 100644 index 0000000000..76ba2532e3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1189.png b/TMessagesProj/src/main/assets/emoji/0_1189.png new file mode 100644 index 0000000000..54b3584b68 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_119.png b/TMessagesProj/src/main/assets/emoji/0_119.png new file mode 100644 index 0000000000..bce837d7aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1190.png b/TMessagesProj/src/main/assets/emoji/0_1190.png new file mode 100644 index 0000000000..f684f96641 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1191.png b/TMessagesProj/src/main/assets/emoji/0_1191.png new file mode 100644 index 0000000000..7dd7229cf1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1192.png b/TMessagesProj/src/main/assets/emoji/0_1192.png new file mode 100644 index 0000000000..e50b28e916 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1193.png b/TMessagesProj/src/main/assets/emoji/0_1193.png new file mode 100644 index 0000000000..5431a43b80 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1194.png b/TMessagesProj/src/main/assets/emoji/0_1194.png new file mode 100644 index 0000000000..3f5066c056 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1195.png b/TMessagesProj/src/main/assets/emoji/0_1195.png new file mode 100644 index 0000000000..e17f3137bb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1196.png b/TMessagesProj/src/main/assets/emoji/0_1196.png new file mode 100644 index 0000000000..ee7fe3d7ca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1197.png b/TMessagesProj/src/main/assets/emoji/0_1197.png new file mode 100644 index 0000000000..1532a332a2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1198.png b/TMessagesProj/src/main/assets/emoji/0_1198.png new file mode 100644 index 0000000000..a52b009796 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1199.png b/TMessagesProj/src/main/assets/emoji/0_1199.png new file mode 100644 index 0000000000..d54236626c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_12.png b/TMessagesProj/src/main/assets/emoji/0_12.png new file mode 100644 index 0000000000..45699ea1cc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_120.png b/TMessagesProj/src/main/assets/emoji/0_120.png new file mode 100644 index 0000000000..ccf646e44d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1200.png b/TMessagesProj/src/main/assets/emoji/0_1200.png new file mode 100644 index 0000000000..6f5f1be9f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1201.png b/TMessagesProj/src/main/assets/emoji/0_1201.png new file mode 100644 index 0000000000..53fbd2915c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1202.png b/TMessagesProj/src/main/assets/emoji/0_1202.png new file mode 100644 index 0000000000..f9e50ff9c3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1203.png b/TMessagesProj/src/main/assets/emoji/0_1203.png new file mode 100644 index 0000000000..acf75c440f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1204.png b/TMessagesProj/src/main/assets/emoji/0_1204.png new file mode 100644 index 0000000000..80905968cd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1205.png b/TMessagesProj/src/main/assets/emoji/0_1205.png new file mode 100644 index 0000000000..4aeaf33087 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1206.png b/TMessagesProj/src/main/assets/emoji/0_1206.png new file mode 100644 index 0000000000..6d8d3740c7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1207.png b/TMessagesProj/src/main/assets/emoji/0_1207.png new file mode 100644 index 0000000000..ae0ec37af3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1208.png b/TMessagesProj/src/main/assets/emoji/0_1208.png new file mode 100644 index 0000000000..e0ca6591bb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1209.png b/TMessagesProj/src/main/assets/emoji/0_1209.png new file mode 100644 index 0000000000..d355f077bc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_121.png b/TMessagesProj/src/main/assets/emoji/0_121.png new file mode 100644 index 0000000000..c3431ad5be Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1210.png b/TMessagesProj/src/main/assets/emoji/0_1210.png new file mode 100644 index 0000000000..106fa23df8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1211.png b/TMessagesProj/src/main/assets/emoji/0_1211.png new file mode 100644 index 0000000000..7c4af086af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1212.png b/TMessagesProj/src/main/assets/emoji/0_1212.png new file mode 100644 index 0000000000..91150f8f52 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1213.png b/TMessagesProj/src/main/assets/emoji/0_1213.png new file mode 100644 index 0000000000..2ef4e70c1b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1214.png b/TMessagesProj/src/main/assets/emoji/0_1214.png new file mode 100644 index 0000000000..04ba3ab15c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1215.png b/TMessagesProj/src/main/assets/emoji/0_1215.png new file mode 100644 index 0000000000..ed1e380a4a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1216.png b/TMessagesProj/src/main/assets/emoji/0_1216.png new file mode 100644 index 0000000000..36a1ce3292 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1217.png b/TMessagesProj/src/main/assets/emoji/0_1217.png new file mode 100644 index 0000000000..8f75e33a9c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1218.png b/TMessagesProj/src/main/assets/emoji/0_1218.png new file mode 100644 index 0000000000..dfe583b4ab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1219.png b/TMessagesProj/src/main/assets/emoji/0_1219.png new file mode 100644 index 0000000000..5acc0f7ee0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_122.png b/TMessagesProj/src/main/assets/emoji/0_122.png new file mode 100644 index 0000000000..a142c167b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1220.png b/TMessagesProj/src/main/assets/emoji/0_1220.png new file mode 100644 index 0000000000..fb9f94c2a0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1221.png b/TMessagesProj/src/main/assets/emoji/0_1221.png new file mode 100644 index 0000000000..10d62b23cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1222.png b/TMessagesProj/src/main/assets/emoji/0_1222.png new file mode 100644 index 0000000000..1e30568f41 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1223.png b/TMessagesProj/src/main/assets/emoji/0_1223.png new file mode 100644 index 0000000000..fa03141e83 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1224.png b/TMessagesProj/src/main/assets/emoji/0_1224.png new file mode 100644 index 0000000000..472052cf35 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1225.png b/TMessagesProj/src/main/assets/emoji/0_1225.png new file mode 100644 index 0000000000..18dbe4b942 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1226.png b/TMessagesProj/src/main/assets/emoji/0_1226.png new file mode 100644 index 0000000000..6522e18a7d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1227.png b/TMessagesProj/src/main/assets/emoji/0_1227.png new file mode 100644 index 0000000000..4315668eaf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1228.png b/TMessagesProj/src/main/assets/emoji/0_1228.png new file mode 100644 index 0000000000..d79370739e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1229.png b/TMessagesProj/src/main/assets/emoji/0_1229.png new file mode 100644 index 0000000000..f015d14dc1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_123.png b/TMessagesProj/src/main/assets/emoji/0_123.png new file mode 100644 index 0000000000..232d3d5e40 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1230.png b/TMessagesProj/src/main/assets/emoji/0_1230.png new file mode 100644 index 0000000000..7f1d59831b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1230.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1231.png b/TMessagesProj/src/main/assets/emoji/0_1231.png new file mode 100644 index 0000000000..465c2de5d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1231.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1232.png b/TMessagesProj/src/main/assets/emoji/0_1232.png new file mode 100644 index 0000000000..a3fb8bd2fc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1232.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1233.png b/TMessagesProj/src/main/assets/emoji/0_1233.png new file mode 100644 index 0000000000..587656e977 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1233.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1234.png b/TMessagesProj/src/main/assets/emoji/0_1234.png new file mode 100644 index 0000000000..f5e6c5f015 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1234.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1235.png b/TMessagesProj/src/main/assets/emoji/0_1235.png new file mode 100644 index 0000000000..3735e21daa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1235.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1236.png b/TMessagesProj/src/main/assets/emoji/0_1236.png new file mode 100644 index 0000000000..50e1c793c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1236.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1237.png b/TMessagesProj/src/main/assets/emoji/0_1237.png new file mode 100644 index 0000000000..256c518c3a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1237.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1238.png b/TMessagesProj/src/main/assets/emoji/0_1238.png new file mode 100644 index 0000000000..fe109d33fe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1238.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1239.png b/TMessagesProj/src/main/assets/emoji/0_1239.png new file mode 100644 index 0000000000..a0e8dddc4b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1239.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_124.png b/TMessagesProj/src/main/assets/emoji/0_124.png new file mode 100644 index 0000000000..e8889b009f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1240.png b/TMessagesProj/src/main/assets/emoji/0_1240.png new file mode 100644 index 0000000000..3f712812f1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1240.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1241.png b/TMessagesProj/src/main/assets/emoji/0_1241.png new file mode 100644 index 0000000000..f8d0e5d82b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1241.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1242.png b/TMessagesProj/src/main/assets/emoji/0_1242.png new file mode 100644 index 0000000000..d581f0658b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1242.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1243.png b/TMessagesProj/src/main/assets/emoji/0_1243.png new file mode 100644 index 0000000000..27f5993773 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1243.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1244.png b/TMessagesProj/src/main/assets/emoji/0_1244.png new file mode 100644 index 0000000000..ae44c3e496 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1244.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1245.png b/TMessagesProj/src/main/assets/emoji/0_1245.png new file mode 100644 index 0000000000..bb0752a9c0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1245.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1246.png b/TMessagesProj/src/main/assets/emoji/0_1246.png new file mode 100644 index 0000000000..c7c23f3430 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1246.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1247.png b/TMessagesProj/src/main/assets/emoji/0_1247.png new file mode 100644 index 0000000000..6da2c9bf9b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1247.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1248.png b/TMessagesProj/src/main/assets/emoji/0_1248.png new file mode 100644 index 0000000000..a6540bc34f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1248.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1249.png b/TMessagesProj/src/main/assets/emoji/0_1249.png new file mode 100644 index 0000000000..e17b8fe9a9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1249.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_125.png b/TMessagesProj/src/main/assets/emoji/0_125.png new file mode 100644 index 0000000000..bcc1eb61bf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1250.png b/TMessagesProj/src/main/assets/emoji/0_1250.png new file mode 100644 index 0000000000..ce631c5bf5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1250.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1251.png b/TMessagesProj/src/main/assets/emoji/0_1251.png new file mode 100644 index 0000000000..c7db1ed2cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1251.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1252.png b/TMessagesProj/src/main/assets/emoji/0_1252.png new file mode 100644 index 0000000000..3c11c3333d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1252.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1253.png b/TMessagesProj/src/main/assets/emoji/0_1253.png new file mode 100644 index 0000000000..b430960ab2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1253.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1254.png b/TMessagesProj/src/main/assets/emoji/0_1254.png new file mode 100644 index 0000000000..e9f38103ce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1254.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1255.png b/TMessagesProj/src/main/assets/emoji/0_1255.png new file mode 100644 index 0000000000..2444284809 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1255.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1256.png b/TMessagesProj/src/main/assets/emoji/0_1256.png new file mode 100644 index 0000000000..e3164ebb4f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1256.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1257.png b/TMessagesProj/src/main/assets/emoji/0_1257.png new file mode 100644 index 0000000000..342dd3c003 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1257.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1258.png b/TMessagesProj/src/main/assets/emoji/0_1258.png new file mode 100644 index 0000000000..e76437ef0b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1258.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1259.png b/TMessagesProj/src/main/assets/emoji/0_1259.png new file mode 100644 index 0000000000..799ae55e9f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1259.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_126.png b/TMessagesProj/src/main/assets/emoji/0_126.png new file mode 100644 index 0000000000..1864267140 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1260.png b/TMessagesProj/src/main/assets/emoji/0_1260.png new file mode 100644 index 0000000000..2846d3d241 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1260.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1261.png b/TMessagesProj/src/main/assets/emoji/0_1261.png new file mode 100644 index 0000000000..6e4b2e1e29 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1261.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1262.png b/TMessagesProj/src/main/assets/emoji/0_1262.png new file mode 100644 index 0000000000..2321cfc10b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1262.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1263.png b/TMessagesProj/src/main/assets/emoji/0_1263.png new file mode 100644 index 0000000000..6062d4aa6e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1263.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1264.png b/TMessagesProj/src/main/assets/emoji/0_1264.png new file mode 100644 index 0000000000..1868532175 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1264.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1265.png b/TMessagesProj/src/main/assets/emoji/0_1265.png new file mode 100644 index 0000000000..4b4a94b3b5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1265.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1266.png b/TMessagesProj/src/main/assets/emoji/0_1266.png new file mode 100644 index 0000000000..7c6d9c1b5f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1266.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1267.png b/TMessagesProj/src/main/assets/emoji/0_1267.png new file mode 100644 index 0000000000..ca66c1d14a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1267.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1268.png b/TMessagesProj/src/main/assets/emoji/0_1268.png new file mode 100644 index 0000000000..09eba19fa9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1268.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1269.png b/TMessagesProj/src/main/assets/emoji/0_1269.png new file mode 100644 index 0000000000..e427e871a1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1269.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_127.png b/TMessagesProj/src/main/assets/emoji/0_127.png new file mode 100644 index 0000000000..45d7e1191f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1270.png b/TMessagesProj/src/main/assets/emoji/0_1270.png new file mode 100644 index 0000000000..5db0ac8b60 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1270.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1271.png b/TMessagesProj/src/main/assets/emoji/0_1271.png new file mode 100644 index 0000000000..87b0fda70e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1271.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1272.png b/TMessagesProj/src/main/assets/emoji/0_1272.png new file mode 100644 index 0000000000..325bff039b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1272.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1273.png b/TMessagesProj/src/main/assets/emoji/0_1273.png new file mode 100644 index 0000000000..be76b395c5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1273.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1274.png b/TMessagesProj/src/main/assets/emoji/0_1274.png new file mode 100644 index 0000000000..87d2873389 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1274.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1275.png b/TMessagesProj/src/main/assets/emoji/0_1275.png new file mode 100644 index 0000000000..9326f8ecd3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1275.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1276.png b/TMessagesProj/src/main/assets/emoji/0_1276.png new file mode 100644 index 0000000000..dcf387f360 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1276.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1277.png b/TMessagesProj/src/main/assets/emoji/0_1277.png new file mode 100644 index 0000000000..472a1f45a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1277.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1278.png b/TMessagesProj/src/main/assets/emoji/0_1278.png new file mode 100644 index 0000000000..4b9049945b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1278.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1279.png b/TMessagesProj/src/main/assets/emoji/0_1279.png new file mode 100644 index 0000000000..afa50e8704 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1279.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_128.png b/TMessagesProj/src/main/assets/emoji/0_128.png new file mode 100644 index 0000000000..1a80bfa368 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1280.png b/TMessagesProj/src/main/assets/emoji/0_1280.png new file mode 100644 index 0000000000..d741b488ea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1280.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1281.png b/TMessagesProj/src/main/assets/emoji/0_1281.png new file mode 100644 index 0000000000..bcd12d2b23 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1281.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1282.png b/TMessagesProj/src/main/assets/emoji/0_1282.png new file mode 100644 index 0000000000..727cac9511 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1282.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1283.png b/TMessagesProj/src/main/assets/emoji/0_1283.png new file mode 100644 index 0000000000..e6f3e931df Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1283.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1284.png b/TMessagesProj/src/main/assets/emoji/0_1284.png new file mode 100644 index 0000000000..8fedcf8479 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1284.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1285.png b/TMessagesProj/src/main/assets/emoji/0_1285.png new file mode 100644 index 0000000000..57ebfb8986 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1285.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1286.png b/TMessagesProj/src/main/assets/emoji/0_1286.png new file mode 100644 index 0000000000..2f339acc94 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1286.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1287.png b/TMessagesProj/src/main/assets/emoji/0_1287.png new file mode 100644 index 0000000000..5a68fade51 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1287.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1288.png b/TMessagesProj/src/main/assets/emoji/0_1288.png new file mode 100644 index 0000000000..eff6cd8944 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1288.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1289.png b/TMessagesProj/src/main/assets/emoji/0_1289.png new file mode 100644 index 0000000000..ba3f5828dd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1289.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_129.png b/TMessagesProj/src/main/assets/emoji/0_129.png new file mode 100644 index 0000000000..ab293b44a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1290.png b/TMessagesProj/src/main/assets/emoji/0_1290.png new file mode 100644 index 0000000000..e9b78f5c0a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1290.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1291.png b/TMessagesProj/src/main/assets/emoji/0_1291.png new file mode 100644 index 0000000000..1613f8f3c5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1291.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1292.png b/TMessagesProj/src/main/assets/emoji/0_1292.png new file mode 100644 index 0000000000..298e6dee63 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1292.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1293.png b/TMessagesProj/src/main/assets/emoji/0_1293.png new file mode 100644 index 0000000000..24835b0adc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1293.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1294.png b/TMessagesProj/src/main/assets/emoji/0_1294.png new file mode 100644 index 0000000000..a941a6f454 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1294.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1295.png b/TMessagesProj/src/main/assets/emoji/0_1295.png new file mode 100644 index 0000000000..0c2041ca7b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1295.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1296.png b/TMessagesProj/src/main/assets/emoji/0_1296.png new file mode 100644 index 0000000000..b7491f0cd2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1296.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1297.png b/TMessagesProj/src/main/assets/emoji/0_1297.png new file mode 100644 index 0000000000..e96facfb31 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1297.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1298.png b/TMessagesProj/src/main/assets/emoji/0_1298.png new file mode 100644 index 0000000000..a2240b8513 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1298.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1299.png b/TMessagesProj/src/main/assets/emoji/0_1299.png new file mode 100644 index 0000000000..f0137b8909 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1299.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_13.png b/TMessagesProj/src/main/assets/emoji/0_13.png new file mode 100644 index 0000000000..47282bc908 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_130.png b/TMessagesProj/src/main/assets/emoji/0_130.png new file mode 100644 index 0000000000..7345c6e9c8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1300.png b/TMessagesProj/src/main/assets/emoji/0_1300.png new file mode 100644 index 0000000000..f6444072e6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1300.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1301.png b/TMessagesProj/src/main/assets/emoji/0_1301.png new file mode 100644 index 0000000000..2d84ea7670 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1301.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1302.png b/TMessagesProj/src/main/assets/emoji/0_1302.png new file mode 100644 index 0000000000..0842dbc707 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1302.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1303.png b/TMessagesProj/src/main/assets/emoji/0_1303.png new file mode 100644 index 0000000000..9ead496b46 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1303.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1304.png b/TMessagesProj/src/main/assets/emoji/0_1304.png new file mode 100644 index 0000000000..d8c11b812a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1304.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1305.png b/TMessagesProj/src/main/assets/emoji/0_1305.png new file mode 100644 index 0000000000..00483018f8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1305.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1306.png b/TMessagesProj/src/main/assets/emoji/0_1306.png new file mode 100644 index 0000000000..7628c6647b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1306.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1307.png b/TMessagesProj/src/main/assets/emoji/0_1307.png new file mode 100644 index 0000000000..e907819d8d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1307.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1308.png b/TMessagesProj/src/main/assets/emoji/0_1308.png new file mode 100644 index 0000000000..40b2a5b660 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1308.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1309.png b/TMessagesProj/src/main/assets/emoji/0_1309.png new file mode 100644 index 0000000000..bf17c88a57 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1309.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_131.png b/TMessagesProj/src/main/assets/emoji/0_131.png new file mode 100644 index 0000000000..7030d4a2eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1310.png b/TMessagesProj/src/main/assets/emoji/0_1310.png new file mode 100644 index 0000000000..4cdfbc2802 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1310.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1311.png b/TMessagesProj/src/main/assets/emoji/0_1311.png new file mode 100644 index 0000000000..44562a076e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1311.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1312.png b/TMessagesProj/src/main/assets/emoji/0_1312.png new file mode 100644 index 0000000000..36a55ccbc1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1312.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1313.png b/TMessagesProj/src/main/assets/emoji/0_1313.png new file mode 100644 index 0000000000..34dec68608 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1313.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1314.png b/TMessagesProj/src/main/assets/emoji/0_1314.png new file mode 100644 index 0000000000..5ee7f996cd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1314.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1315.png b/TMessagesProj/src/main/assets/emoji/0_1315.png new file mode 100644 index 0000000000..e170c21907 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1315.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1316.png b/TMessagesProj/src/main/assets/emoji/0_1316.png new file mode 100644 index 0000000000..25afb40557 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1316.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1317.png b/TMessagesProj/src/main/assets/emoji/0_1317.png new file mode 100644 index 0000000000..adbbd2ce3e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1317.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1318.png b/TMessagesProj/src/main/assets/emoji/0_1318.png new file mode 100644 index 0000000000..a9ee2751e5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1318.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1319.png b/TMessagesProj/src/main/assets/emoji/0_1319.png new file mode 100644 index 0000000000..cb84e54034 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1319.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_132.png b/TMessagesProj/src/main/assets/emoji/0_132.png new file mode 100644 index 0000000000..228223a461 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1320.png b/TMessagesProj/src/main/assets/emoji/0_1320.png new file mode 100644 index 0000000000..f75c856a6f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1320.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1321.png b/TMessagesProj/src/main/assets/emoji/0_1321.png new file mode 100644 index 0000000000..161eddd09e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1321.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1322.png b/TMessagesProj/src/main/assets/emoji/0_1322.png new file mode 100644 index 0000000000..70417e13cc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1322.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1323.png b/TMessagesProj/src/main/assets/emoji/0_1323.png new file mode 100644 index 0000000000..1e12429978 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1323.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1324.png b/TMessagesProj/src/main/assets/emoji/0_1324.png new file mode 100644 index 0000000000..113c795f0b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1324.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1325.png b/TMessagesProj/src/main/assets/emoji/0_1325.png new file mode 100644 index 0000000000..eb8c8612de Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1325.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1326.png b/TMessagesProj/src/main/assets/emoji/0_1326.png new file mode 100644 index 0000000000..5485e09e51 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1326.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1327.png b/TMessagesProj/src/main/assets/emoji/0_1327.png new file mode 100644 index 0000000000..f4302575a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1327.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1328.png b/TMessagesProj/src/main/assets/emoji/0_1328.png new file mode 100644 index 0000000000..c962cf5859 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1328.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1329.png b/TMessagesProj/src/main/assets/emoji/0_1329.png new file mode 100644 index 0000000000..e45e921143 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1329.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_133.png b/TMessagesProj/src/main/assets/emoji/0_133.png new file mode 100644 index 0000000000..399df5985b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1330.png b/TMessagesProj/src/main/assets/emoji/0_1330.png new file mode 100644 index 0000000000..494a604ff8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1330.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1331.png b/TMessagesProj/src/main/assets/emoji/0_1331.png new file mode 100644 index 0000000000..7f5af4fca7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1331.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1332.png b/TMessagesProj/src/main/assets/emoji/0_1332.png new file mode 100644 index 0000000000..2a47f7f9f8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1332.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1333.png b/TMessagesProj/src/main/assets/emoji/0_1333.png new file mode 100644 index 0000000000..3141ad175f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1333.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1334.png b/TMessagesProj/src/main/assets/emoji/0_1334.png new file mode 100644 index 0000000000..e0991f87fb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1334.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1335.png b/TMessagesProj/src/main/assets/emoji/0_1335.png new file mode 100644 index 0000000000..5905544b53 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1335.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1336.png b/TMessagesProj/src/main/assets/emoji/0_1336.png new file mode 100644 index 0000000000..3ab4b6493b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1336.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1337.png b/TMessagesProj/src/main/assets/emoji/0_1337.png new file mode 100644 index 0000000000..253b174efa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1337.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1338.png b/TMessagesProj/src/main/assets/emoji/0_1338.png new file mode 100644 index 0000000000..60ccbb33ee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1338.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1339.png b/TMessagesProj/src/main/assets/emoji/0_1339.png new file mode 100644 index 0000000000..f4f628724f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1339.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_134.png b/TMessagesProj/src/main/assets/emoji/0_134.png new file mode 100644 index 0000000000..2127697149 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1340.png b/TMessagesProj/src/main/assets/emoji/0_1340.png new file mode 100644 index 0000000000..9adad417d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1340.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1341.png b/TMessagesProj/src/main/assets/emoji/0_1341.png new file mode 100644 index 0000000000..347bfeaae5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1341.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1342.png b/TMessagesProj/src/main/assets/emoji/0_1342.png new file mode 100644 index 0000000000..a0c9f9d5d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1342.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1343.png b/TMessagesProj/src/main/assets/emoji/0_1343.png new file mode 100644 index 0000000000..7a7e81f102 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1343.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1344.png b/TMessagesProj/src/main/assets/emoji/0_1344.png new file mode 100644 index 0000000000..0b9737d7df Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1344.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1345.png b/TMessagesProj/src/main/assets/emoji/0_1345.png new file mode 100644 index 0000000000..e41ef9a1cc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1345.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1346.png b/TMessagesProj/src/main/assets/emoji/0_1346.png new file mode 100644 index 0000000000..1f85609945 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1346.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1347.png b/TMessagesProj/src/main/assets/emoji/0_1347.png new file mode 100644 index 0000000000..5da3ab1410 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1347.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1348.png b/TMessagesProj/src/main/assets/emoji/0_1348.png new file mode 100644 index 0000000000..607f2bed7d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1348.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1349.png b/TMessagesProj/src/main/assets/emoji/0_1349.png new file mode 100644 index 0000000000..3e1c87a62a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1349.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_135.png b/TMessagesProj/src/main/assets/emoji/0_135.png new file mode 100644 index 0000000000..14a6091c65 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1350.png b/TMessagesProj/src/main/assets/emoji/0_1350.png new file mode 100644 index 0000000000..ff60c308d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1350.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1351.png b/TMessagesProj/src/main/assets/emoji/0_1351.png new file mode 100644 index 0000000000..d60da68c7c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1351.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1352.png b/TMessagesProj/src/main/assets/emoji/0_1352.png new file mode 100644 index 0000000000..5b3231245e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1352.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1353.png b/TMessagesProj/src/main/assets/emoji/0_1353.png new file mode 100644 index 0000000000..f78f64f86a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1353.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1354.png b/TMessagesProj/src/main/assets/emoji/0_1354.png new file mode 100644 index 0000000000..d057973388 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1354.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1355.png b/TMessagesProj/src/main/assets/emoji/0_1355.png new file mode 100644 index 0000000000..726c1431f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1355.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1356.png b/TMessagesProj/src/main/assets/emoji/0_1356.png new file mode 100644 index 0000000000..7281108882 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1356.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1357.png b/TMessagesProj/src/main/assets/emoji/0_1357.png new file mode 100644 index 0000000000..36e1c5d50f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1357.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1358.png b/TMessagesProj/src/main/assets/emoji/0_1358.png new file mode 100644 index 0000000000..78aeca956b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1358.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1359.png b/TMessagesProj/src/main/assets/emoji/0_1359.png new file mode 100644 index 0000000000..23f5de2330 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1359.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_136.png b/TMessagesProj/src/main/assets/emoji/0_136.png new file mode 100644 index 0000000000..d51b6626ec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1360.png b/TMessagesProj/src/main/assets/emoji/0_1360.png new file mode 100644 index 0000000000..2f4824db4c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1360.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1361.png b/TMessagesProj/src/main/assets/emoji/0_1361.png new file mode 100644 index 0000000000..c21d05d60a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1361.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1362.png b/TMessagesProj/src/main/assets/emoji/0_1362.png new file mode 100644 index 0000000000..aa028cf2ed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1362.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1363.png b/TMessagesProj/src/main/assets/emoji/0_1363.png new file mode 100644 index 0000000000..1075a2a308 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1363.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1364.png b/TMessagesProj/src/main/assets/emoji/0_1364.png new file mode 100644 index 0000000000..cc1a00d331 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1364.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1365.png b/TMessagesProj/src/main/assets/emoji/0_1365.png new file mode 100644 index 0000000000..ed3acc7dba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1365.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1366.png b/TMessagesProj/src/main/assets/emoji/0_1366.png new file mode 100644 index 0000000000..d55f78735b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1366.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1367.png b/TMessagesProj/src/main/assets/emoji/0_1367.png new file mode 100644 index 0000000000..a8aee7c185 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1367.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1368.png b/TMessagesProj/src/main/assets/emoji/0_1368.png new file mode 100644 index 0000000000..7b95276a9b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1368.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1369.png b/TMessagesProj/src/main/assets/emoji/0_1369.png new file mode 100644 index 0000000000..cbed03aaa0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1369.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_137.png b/TMessagesProj/src/main/assets/emoji/0_137.png new file mode 100644 index 0000000000..4dd094da97 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1370.png b/TMessagesProj/src/main/assets/emoji/0_1370.png new file mode 100644 index 0000000000..680029fda6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1370.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1371.png b/TMessagesProj/src/main/assets/emoji/0_1371.png new file mode 100644 index 0000000000..959314fa04 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1371.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1372.png b/TMessagesProj/src/main/assets/emoji/0_1372.png new file mode 100644 index 0000000000..c66acd247e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1372.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1373.png b/TMessagesProj/src/main/assets/emoji/0_1373.png new file mode 100644 index 0000000000..ebeb8d83c9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1373.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1374.png b/TMessagesProj/src/main/assets/emoji/0_1374.png new file mode 100644 index 0000000000..0ec1e7100c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1374.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1375.png b/TMessagesProj/src/main/assets/emoji/0_1375.png new file mode 100644 index 0000000000..26b3543950 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1375.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1376.png b/TMessagesProj/src/main/assets/emoji/0_1376.png new file mode 100644 index 0000000000..3624f9a590 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1376.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1377.png b/TMessagesProj/src/main/assets/emoji/0_1377.png new file mode 100644 index 0000000000..26246693d0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1377.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1378.png b/TMessagesProj/src/main/assets/emoji/0_1378.png new file mode 100644 index 0000000000..d8be2bedcf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1378.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1379.png b/TMessagesProj/src/main/assets/emoji/0_1379.png new file mode 100644 index 0000000000..27ea02aab5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1379.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_138.png b/TMessagesProj/src/main/assets/emoji/0_138.png new file mode 100644 index 0000000000..8847e9494c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1380.png b/TMessagesProj/src/main/assets/emoji/0_1380.png new file mode 100644 index 0000000000..9b80e37088 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1380.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1381.png b/TMessagesProj/src/main/assets/emoji/0_1381.png new file mode 100644 index 0000000000..1f77bf4454 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1381.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1382.png b/TMessagesProj/src/main/assets/emoji/0_1382.png new file mode 100644 index 0000000000..ec2a90f969 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1382.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1383.png b/TMessagesProj/src/main/assets/emoji/0_1383.png new file mode 100644 index 0000000000..913eb86db4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1383.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1384.png b/TMessagesProj/src/main/assets/emoji/0_1384.png new file mode 100644 index 0000000000..49cba07b2b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1384.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1385.png b/TMessagesProj/src/main/assets/emoji/0_1385.png new file mode 100644 index 0000000000..3f6cc7d599 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1385.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1386.png b/TMessagesProj/src/main/assets/emoji/0_1386.png new file mode 100644 index 0000000000..52b7bb47e4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1386.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1387.png b/TMessagesProj/src/main/assets/emoji/0_1387.png new file mode 100644 index 0000000000..ba292fcfcc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1387.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1388.png b/TMessagesProj/src/main/assets/emoji/0_1388.png new file mode 100644 index 0000000000..f1954fd7e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1388.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1389.png b/TMessagesProj/src/main/assets/emoji/0_1389.png new file mode 100644 index 0000000000..202f34bd74 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1389.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_139.png b/TMessagesProj/src/main/assets/emoji/0_139.png new file mode 100644 index 0000000000..c5ceef6752 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1390.png b/TMessagesProj/src/main/assets/emoji/0_1390.png new file mode 100644 index 0000000000..4b6eca7b57 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1390.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1391.png b/TMessagesProj/src/main/assets/emoji/0_1391.png new file mode 100644 index 0000000000..436171a9b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1391.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1392.png b/TMessagesProj/src/main/assets/emoji/0_1392.png new file mode 100644 index 0000000000..44aec3772a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1392.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1393.png b/TMessagesProj/src/main/assets/emoji/0_1393.png new file mode 100644 index 0000000000..5d2258336f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1393.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1394.png b/TMessagesProj/src/main/assets/emoji/0_1394.png new file mode 100644 index 0000000000..af87b2c835 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1394.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1395.png b/TMessagesProj/src/main/assets/emoji/0_1395.png new file mode 100644 index 0000000000..f6c007f445 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1395.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1396.png b/TMessagesProj/src/main/assets/emoji/0_1396.png new file mode 100644 index 0000000000..3d2b25cf41 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1396.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1397.png b/TMessagesProj/src/main/assets/emoji/0_1397.png new file mode 100644 index 0000000000..f95c1f39a0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1397.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1398.png b/TMessagesProj/src/main/assets/emoji/0_1398.png new file mode 100644 index 0000000000..be9c279a09 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1398.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1399.png b/TMessagesProj/src/main/assets/emoji/0_1399.png new file mode 100644 index 0000000000..38961de53f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1399.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_14.png b/TMessagesProj/src/main/assets/emoji/0_14.png new file mode 100644 index 0000000000..b9281e239f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_140.png b/TMessagesProj/src/main/assets/emoji/0_140.png new file mode 100644 index 0000000000..63009dbaa6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1400.png b/TMessagesProj/src/main/assets/emoji/0_1400.png new file mode 100644 index 0000000000..04c3fba519 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1400.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1401.png b/TMessagesProj/src/main/assets/emoji/0_1401.png new file mode 100644 index 0000000000..6eb93e733e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1401.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1402.png b/TMessagesProj/src/main/assets/emoji/0_1402.png new file mode 100644 index 0000000000..4eac1d7f21 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1402.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1403.png b/TMessagesProj/src/main/assets/emoji/0_1403.png new file mode 100644 index 0000000000..e06d192fb1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1403.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1404.png b/TMessagesProj/src/main/assets/emoji/0_1404.png new file mode 100644 index 0000000000..55669c42a2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1404.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1405.png b/TMessagesProj/src/main/assets/emoji/0_1405.png new file mode 100644 index 0000000000..e811a8aad2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1405.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1406.png b/TMessagesProj/src/main/assets/emoji/0_1406.png new file mode 100644 index 0000000000..170c32a98d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1406.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1407.png b/TMessagesProj/src/main/assets/emoji/0_1407.png new file mode 100644 index 0000000000..d0af0df451 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1407.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1408.png b/TMessagesProj/src/main/assets/emoji/0_1408.png new file mode 100644 index 0000000000..4438ea20b7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1408.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1409.png b/TMessagesProj/src/main/assets/emoji/0_1409.png new file mode 100644 index 0000000000..55c488094d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1409.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_141.png b/TMessagesProj/src/main/assets/emoji/0_141.png new file mode 100644 index 0000000000..cc58df1831 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1410.png b/TMessagesProj/src/main/assets/emoji/0_1410.png new file mode 100644 index 0000000000..a7b4add979 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1410.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1411.png b/TMessagesProj/src/main/assets/emoji/0_1411.png new file mode 100644 index 0000000000..de7b77167d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1411.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1412.png b/TMessagesProj/src/main/assets/emoji/0_1412.png new file mode 100644 index 0000000000..0f036e8456 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1412.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1413.png b/TMessagesProj/src/main/assets/emoji/0_1413.png new file mode 100644 index 0000000000..31d4dd3b29 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1413.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1414.png b/TMessagesProj/src/main/assets/emoji/0_1414.png new file mode 100644 index 0000000000..59a047a82b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1414.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1415.png b/TMessagesProj/src/main/assets/emoji/0_1415.png new file mode 100644 index 0000000000..a0c17262b6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1415.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1416.png b/TMessagesProj/src/main/assets/emoji/0_1416.png new file mode 100644 index 0000000000..8fcbd4c5ed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1416.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1417.png b/TMessagesProj/src/main/assets/emoji/0_1417.png new file mode 100644 index 0000000000..b5c9b66719 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1417.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1418.png b/TMessagesProj/src/main/assets/emoji/0_1418.png new file mode 100644 index 0000000000..248f792cc1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1418.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1419.png b/TMessagesProj/src/main/assets/emoji/0_1419.png new file mode 100644 index 0000000000..5eadd138d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1419.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_142.png b/TMessagesProj/src/main/assets/emoji/0_142.png new file mode 100644 index 0000000000..b01f2801f2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1420.png b/TMessagesProj/src/main/assets/emoji/0_1420.png new file mode 100644 index 0000000000..e9c4f10d0c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1420.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1421.png b/TMessagesProj/src/main/assets/emoji/0_1421.png new file mode 100644 index 0000000000..50ee6e0f10 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1421.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1422.png b/TMessagesProj/src/main/assets/emoji/0_1422.png new file mode 100644 index 0000000000..da4226fac2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1422.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1423.png b/TMessagesProj/src/main/assets/emoji/0_1423.png new file mode 100644 index 0000000000..08f3d13ce2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1423.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1424.png b/TMessagesProj/src/main/assets/emoji/0_1424.png new file mode 100644 index 0000000000..d55b39fea5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1424.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1425.png b/TMessagesProj/src/main/assets/emoji/0_1425.png new file mode 100644 index 0000000000..473054c7ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1425.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1426.png b/TMessagesProj/src/main/assets/emoji/0_1426.png new file mode 100644 index 0000000000..89761d90f0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1426.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1427.png b/TMessagesProj/src/main/assets/emoji/0_1427.png new file mode 100644 index 0000000000..23fd888b92 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1427.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1428.png b/TMessagesProj/src/main/assets/emoji/0_1428.png new file mode 100644 index 0000000000..846d68ec96 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1428.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1429.png b/TMessagesProj/src/main/assets/emoji/0_1429.png new file mode 100644 index 0000000000..23b3ab90b5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1429.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_143.png b/TMessagesProj/src/main/assets/emoji/0_143.png new file mode 100644 index 0000000000..0497a94bca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1430.png b/TMessagesProj/src/main/assets/emoji/0_1430.png new file mode 100644 index 0000000000..87ad65b28a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1430.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1431.png b/TMessagesProj/src/main/assets/emoji/0_1431.png new file mode 100644 index 0000000000..986fac78c4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1431.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1432.png b/TMessagesProj/src/main/assets/emoji/0_1432.png new file mode 100644 index 0000000000..c8631a0c35 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1432.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1433.png b/TMessagesProj/src/main/assets/emoji/0_1433.png new file mode 100644 index 0000000000..5e2fbe4477 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1433.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1434.png b/TMessagesProj/src/main/assets/emoji/0_1434.png new file mode 100644 index 0000000000..46d0662cb6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1434.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1435.png b/TMessagesProj/src/main/assets/emoji/0_1435.png new file mode 100644 index 0000000000..5260c31062 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1435.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1436.png b/TMessagesProj/src/main/assets/emoji/0_1436.png new file mode 100644 index 0000000000..ded90c7578 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1436.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1437.png b/TMessagesProj/src/main/assets/emoji/0_1437.png new file mode 100644 index 0000000000..f5f0f05251 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1437.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1438.png b/TMessagesProj/src/main/assets/emoji/0_1438.png new file mode 100644 index 0000000000..e13d1806eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1438.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1439.png b/TMessagesProj/src/main/assets/emoji/0_1439.png new file mode 100644 index 0000000000..55554841fb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1439.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_144.png b/TMessagesProj/src/main/assets/emoji/0_144.png new file mode 100644 index 0000000000..a74a51e683 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1440.png b/TMessagesProj/src/main/assets/emoji/0_1440.png new file mode 100644 index 0000000000..68b8d7d3b0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1440.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1441.png b/TMessagesProj/src/main/assets/emoji/0_1441.png new file mode 100644 index 0000000000..3c2aec87d5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1441.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1442.png b/TMessagesProj/src/main/assets/emoji/0_1442.png new file mode 100644 index 0000000000..26a67865d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1442.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1443.png b/TMessagesProj/src/main/assets/emoji/0_1443.png new file mode 100644 index 0000000000..d5d9b42778 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1443.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1444.png b/TMessagesProj/src/main/assets/emoji/0_1444.png new file mode 100644 index 0000000000..3ce672745b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1444.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1445.png b/TMessagesProj/src/main/assets/emoji/0_1445.png new file mode 100644 index 0000000000..dd8eff19bc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1445.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1446.png b/TMessagesProj/src/main/assets/emoji/0_1446.png new file mode 100644 index 0000000000..1e0350e37b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1446.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1447.png b/TMessagesProj/src/main/assets/emoji/0_1447.png new file mode 100644 index 0000000000..06a3b5de00 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1447.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1448.png b/TMessagesProj/src/main/assets/emoji/0_1448.png new file mode 100644 index 0000000000..b88ecb241d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1448.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1449.png b/TMessagesProj/src/main/assets/emoji/0_1449.png new file mode 100644 index 0000000000..05b84af771 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1449.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_145.png b/TMessagesProj/src/main/assets/emoji/0_145.png new file mode 100644 index 0000000000..efd523bfa8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1450.png b/TMessagesProj/src/main/assets/emoji/0_1450.png new file mode 100644 index 0000000000..21d01b12bc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1450.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1451.png b/TMessagesProj/src/main/assets/emoji/0_1451.png new file mode 100644 index 0000000000..95643b4f31 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1451.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1452.png b/TMessagesProj/src/main/assets/emoji/0_1452.png new file mode 100644 index 0000000000..01465aade3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1452.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1453.png b/TMessagesProj/src/main/assets/emoji/0_1453.png new file mode 100644 index 0000000000..293902d77b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1453.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1454.png b/TMessagesProj/src/main/assets/emoji/0_1454.png new file mode 100644 index 0000000000..f74c4fdc2f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1454.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1455.png b/TMessagesProj/src/main/assets/emoji/0_1455.png new file mode 100644 index 0000000000..6e3a976d41 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1455.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1456.png b/TMessagesProj/src/main/assets/emoji/0_1456.png new file mode 100644 index 0000000000..368eb95a2c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1456.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1457.png b/TMessagesProj/src/main/assets/emoji/0_1457.png new file mode 100644 index 0000000000..eb34526659 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1457.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1458.png b/TMessagesProj/src/main/assets/emoji/0_1458.png new file mode 100644 index 0000000000..22d83a991e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1458.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1459.png b/TMessagesProj/src/main/assets/emoji/0_1459.png new file mode 100644 index 0000000000..09ecfea17e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1459.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_146.png b/TMessagesProj/src/main/assets/emoji/0_146.png new file mode 100644 index 0000000000..0d3c9d2a50 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1460.png b/TMessagesProj/src/main/assets/emoji/0_1460.png new file mode 100644 index 0000000000..7a31a11bda Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1460.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1461.png b/TMessagesProj/src/main/assets/emoji/0_1461.png new file mode 100644 index 0000000000..dec31190aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1461.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1462.png b/TMessagesProj/src/main/assets/emoji/0_1462.png new file mode 100644 index 0000000000..a622919be0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1462.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1463.png b/TMessagesProj/src/main/assets/emoji/0_1463.png new file mode 100644 index 0000000000..d8ba9622da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1463.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1464.png b/TMessagesProj/src/main/assets/emoji/0_1464.png new file mode 100644 index 0000000000..0ebdf59421 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1464.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1465.png b/TMessagesProj/src/main/assets/emoji/0_1465.png new file mode 100644 index 0000000000..28f67c55ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1465.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1466.png b/TMessagesProj/src/main/assets/emoji/0_1466.png new file mode 100644 index 0000000000..933422406f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1466.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1467.png b/TMessagesProj/src/main/assets/emoji/0_1467.png new file mode 100644 index 0000000000..56951201b6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1467.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1468.png b/TMessagesProj/src/main/assets/emoji/0_1468.png new file mode 100644 index 0000000000..2b896d616a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1468.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1469.png b/TMessagesProj/src/main/assets/emoji/0_1469.png new file mode 100644 index 0000000000..cc6fe43072 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1469.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_147.png b/TMessagesProj/src/main/assets/emoji/0_147.png new file mode 100644 index 0000000000..b268351c21 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1470.png b/TMessagesProj/src/main/assets/emoji/0_1470.png new file mode 100644 index 0000000000..af7b531725 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1470.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1471.png b/TMessagesProj/src/main/assets/emoji/0_1471.png new file mode 100644 index 0000000000..333f858673 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1471.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1472.png b/TMessagesProj/src/main/assets/emoji/0_1472.png new file mode 100644 index 0000000000..968347131e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1472.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1473.png b/TMessagesProj/src/main/assets/emoji/0_1473.png new file mode 100644 index 0000000000..439ca3bad9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1473.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1474.png b/TMessagesProj/src/main/assets/emoji/0_1474.png new file mode 100644 index 0000000000..4925a17b17 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1474.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1475.png b/TMessagesProj/src/main/assets/emoji/0_1475.png new file mode 100644 index 0000000000..0d8142f786 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1475.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1476.png b/TMessagesProj/src/main/assets/emoji/0_1476.png new file mode 100644 index 0000000000..4dc4c99210 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1476.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1477.png b/TMessagesProj/src/main/assets/emoji/0_1477.png new file mode 100644 index 0000000000..92e50fe1f2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1477.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1478.png b/TMessagesProj/src/main/assets/emoji/0_1478.png new file mode 100644 index 0000000000..b138287818 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1478.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1479.png b/TMessagesProj/src/main/assets/emoji/0_1479.png new file mode 100644 index 0000000000..ac725086df Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1479.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_148.png b/TMessagesProj/src/main/assets/emoji/0_148.png new file mode 100644 index 0000000000..572df7f8aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1480.png b/TMessagesProj/src/main/assets/emoji/0_1480.png new file mode 100644 index 0000000000..bd793e438b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1480.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1481.png b/TMessagesProj/src/main/assets/emoji/0_1481.png new file mode 100644 index 0000000000..a438052530 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1481.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1482.png b/TMessagesProj/src/main/assets/emoji/0_1482.png new file mode 100644 index 0000000000..208b99d367 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1482.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1483.png b/TMessagesProj/src/main/assets/emoji/0_1483.png new file mode 100644 index 0000000000..092214ed39 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1483.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1484.png b/TMessagesProj/src/main/assets/emoji/0_1484.png new file mode 100644 index 0000000000..789971a986 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1484.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1485.png b/TMessagesProj/src/main/assets/emoji/0_1485.png new file mode 100644 index 0000000000..794f134cde Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1485.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1486.png b/TMessagesProj/src/main/assets/emoji/0_1486.png new file mode 100644 index 0000000000..1b0c930e6c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1486.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1487.png b/TMessagesProj/src/main/assets/emoji/0_1487.png new file mode 100644 index 0000000000..4e23f48ee3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1487.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1488.png b/TMessagesProj/src/main/assets/emoji/0_1488.png new file mode 100644 index 0000000000..72ced224da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1488.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1489.png b/TMessagesProj/src/main/assets/emoji/0_1489.png new file mode 100644 index 0000000000..0d643f99d0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1489.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_149.png b/TMessagesProj/src/main/assets/emoji/0_149.png new file mode 100644 index 0000000000..518ec8d691 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1490.png b/TMessagesProj/src/main/assets/emoji/0_1490.png new file mode 100644 index 0000000000..e85dce23c0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1490.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1491.png b/TMessagesProj/src/main/assets/emoji/0_1491.png new file mode 100644 index 0000000000..9376949cd7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1491.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1492.png b/TMessagesProj/src/main/assets/emoji/0_1492.png new file mode 100644 index 0000000000..9f4e61af9f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1492.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1493.png b/TMessagesProj/src/main/assets/emoji/0_1493.png new file mode 100644 index 0000000000..6713794d5a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1493.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1494.png b/TMessagesProj/src/main/assets/emoji/0_1494.png new file mode 100644 index 0000000000..b66ee026d9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1494.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1495.png b/TMessagesProj/src/main/assets/emoji/0_1495.png new file mode 100644 index 0000000000..a8839a9853 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1495.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1496.png b/TMessagesProj/src/main/assets/emoji/0_1496.png new file mode 100644 index 0000000000..c81a85de96 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1496.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1497.png b/TMessagesProj/src/main/assets/emoji/0_1497.png new file mode 100644 index 0000000000..3727464612 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1497.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1498.png b/TMessagesProj/src/main/assets/emoji/0_1498.png new file mode 100644 index 0000000000..48785b34cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1498.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1499.png b/TMessagesProj/src/main/assets/emoji/0_1499.png new file mode 100644 index 0000000000..7ec6261c7e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1499.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_15.png b/TMessagesProj/src/main/assets/emoji/0_15.png new file mode 100644 index 0000000000..c98f98327e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_150.png b/TMessagesProj/src/main/assets/emoji/0_150.png new file mode 100644 index 0000000000..62a085f008 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1500.png b/TMessagesProj/src/main/assets/emoji/0_1500.png new file mode 100644 index 0000000000..aaa6eb07f4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1500.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1501.png b/TMessagesProj/src/main/assets/emoji/0_1501.png new file mode 100644 index 0000000000..e7b338b8e9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1501.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1502.png b/TMessagesProj/src/main/assets/emoji/0_1502.png new file mode 100644 index 0000000000..ddc0163fac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1502.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1503.png b/TMessagesProj/src/main/assets/emoji/0_1503.png new file mode 100644 index 0000000000..d56f7f4f86 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1503.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1504.png b/TMessagesProj/src/main/assets/emoji/0_1504.png new file mode 100644 index 0000000000..1da160688c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1504.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1505.png b/TMessagesProj/src/main/assets/emoji/0_1505.png new file mode 100644 index 0000000000..06c5858126 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1505.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1506.png b/TMessagesProj/src/main/assets/emoji/0_1506.png new file mode 100644 index 0000000000..1b96fc0f98 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1506.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1507.png b/TMessagesProj/src/main/assets/emoji/0_1507.png new file mode 100644 index 0000000000..d660be1059 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1507.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1508.png b/TMessagesProj/src/main/assets/emoji/0_1508.png new file mode 100644 index 0000000000..923552f239 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1508.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1509.png b/TMessagesProj/src/main/assets/emoji/0_1509.png new file mode 100644 index 0000000000..2a1ad26220 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1509.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_151.png b/TMessagesProj/src/main/assets/emoji/0_151.png new file mode 100644 index 0000000000..525b0951ea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1510.png b/TMessagesProj/src/main/assets/emoji/0_1510.png new file mode 100644 index 0000000000..f91e222584 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1510.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1511.png b/TMessagesProj/src/main/assets/emoji/0_1511.png new file mode 100644 index 0000000000..975edd67eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1511.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1512.png b/TMessagesProj/src/main/assets/emoji/0_1512.png new file mode 100644 index 0000000000..cded1ad3a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1512.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1513.png b/TMessagesProj/src/main/assets/emoji/0_1513.png new file mode 100644 index 0000000000..fdfe6c7c11 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1513.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1514.png b/TMessagesProj/src/main/assets/emoji/0_1514.png new file mode 100644 index 0000000000..967c22138b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1514.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1515.png b/TMessagesProj/src/main/assets/emoji/0_1515.png new file mode 100644 index 0000000000..13ce75f2fa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1515.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1516.png b/TMessagesProj/src/main/assets/emoji/0_1516.png new file mode 100644 index 0000000000..8984d9a4f2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1516.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1517.png b/TMessagesProj/src/main/assets/emoji/0_1517.png new file mode 100644 index 0000000000..bb52496ff5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1517.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1518.png b/TMessagesProj/src/main/assets/emoji/0_1518.png new file mode 100644 index 0000000000..156f73f13b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1518.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1519.png b/TMessagesProj/src/main/assets/emoji/0_1519.png new file mode 100644 index 0000000000..0309c12d09 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1519.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_152.png b/TMessagesProj/src/main/assets/emoji/0_152.png new file mode 100644 index 0000000000..6d83ebf8e7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1520.png b/TMessagesProj/src/main/assets/emoji/0_1520.png new file mode 100644 index 0000000000..1d928d145a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1520.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1521.png b/TMessagesProj/src/main/assets/emoji/0_1521.png new file mode 100644 index 0000000000..94f21420bf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1521.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1522.png b/TMessagesProj/src/main/assets/emoji/0_1522.png new file mode 100644 index 0000000000..5eed69fa14 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1522.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1523.png b/TMessagesProj/src/main/assets/emoji/0_1523.png new file mode 100644 index 0000000000..7d704fb3ce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1523.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1524.png b/TMessagesProj/src/main/assets/emoji/0_1524.png new file mode 100644 index 0000000000..74715ba0c8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1524.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1525.png b/TMessagesProj/src/main/assets/emoji/0_1525.png new file mode 100644 index 0000000000..f24472deb4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1525.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1526.png b/TMessagesProj/src/main/assets/emoji/0_1526.png new file mode 100644 index 0000000000..0195be48fa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1526.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1527.png b/TMessagesProj/src/main/assets/emoji/0_1527.png new file mode 100644 index 0000000000..f5550f83ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1527.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1528.png b/TMessagesProj/src/main/assets/emoji/0_1528.png new file mode 100644 index 0000000000..b0d9fa4e4b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1528.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1529.png b/TMessagesProj/src/main/assets/emoji/0_1529.png new file mode 100644 index 0000000000..9921b997aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1529.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_153.png b/TMessagesProj/src/main/assets/emoji/0_153.png new file mode 100644 index 0000000000..e0963af477 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1530.png b/TMessagesProj/src/main/assets/emoji/0_1530.png new file mode 100644 index 0000000000..06ba7e899c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1530.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1531.png b/TMessagesProj/src/main/assets/emoji/0_1531.png new file mode 100644 index 0000000000..597d7c69d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1531.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1532.png b/TMessagesProj/src/main/assets/emoji/0_1532.png new file mode 100644 index 0000000000..d1fa6cb21e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1532.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1533.png b/TMessagesProj/src/main/assets/emoji/0_1533.png new file mode 100644 index 0000000000..975868c4d0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1533.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1534.png b/TMessagesProj/src/main/assets/emoji/0_1534.png new file mode 100644 index 0000000000..022bb719a9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1534.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1535.png b/TMessagesProj/src/main/assets/emoji/0_1535.png new file mode 100644 index 0000000000..03432bfb62 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1535.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1536.png b/TMessagesProj/src/main/assets/emoji/0_1536.png new file mode 100644 index 0000000000..bd8d9b2583 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1536.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1537.png b/TMessagesProj/src/main/assets/emoji/0_1537.png new file mode 100644 index 0000000000..19e11bd6e2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1537.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1538.png b/TMessagesProj/src/main/assets/emoji/0_1538.png new file mode 100644 index 0000000000..8b9efe2ef9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1538.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1539.png b/TMessagesProj/src/main/assets/emoji/0_1539.png new file mode 100644 index 0000000000..f96f51a542 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1539.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_154.png b/TMessagesProj/src/main/assets/emoji/0_154.png new file mode 100644 index 0000000000..2f54e8d5a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1540.png b/TMessagesProj/src/main/assets/emoji/0_1540.png new file mode 100644 index 0000000000..1a9e67abbd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1540.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1541.png b/TMessagesProj/src/main/assets/emoji/0_1541.png new file mode 100644 index 0000000000..dbcbcf9fba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1541.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1542.png b/TMessagesProj/src/main/assets/emoji/0_1542.png new file mode 100644 index 0000000000..25501cb6d9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1542.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1543.png b/TMessagesProj/src/main/assets/emoji/0_1543.png new file mode 100644 index 0000000000..460f05b2ac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1543.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1544.png b/TMessagesProj/src/main/assets/emoji/0_1544.png new file mode 100644 index 0000000000..7224eeef65 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1544.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1545.png b/TMessagesProj/src/main/assets/emoji/0_1545.png new file mode 100644 index 0000000000..41ab81b1ee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1545.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1546.png b/TMessagesProj/src/main/assets/emoji/0_1546.png new file mode 100644 index 0000000000..d31a3071bd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1546.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1547.png b/TMessagesProj/src/main/assets/emoji/0_1547.png new file mode 100644 index 0000000000..8e776b267d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1547.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1548.png b/TMessagesProj/src/main/assets/emoji/0_1548.png new file mode 100644 index 0000000000..c253440307 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1548.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1549.png b/TMessagesProj/src/main/assets/emoji/0_1549.png new file mode 100644 index 0000000000..9ba903005d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1549.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_155.png b/TMessagesProj/src/main/assets/emoji/0_155.png new file mode 100644 index 0000000000..2c23d988d8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1550.png b/TMessagesProj/src/main/assets/emoji/0_1550.png new file mode 100644 index 0000000000..387323bb30 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1550.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1551.png b/TMessagesProj/src/main/assets/emoji/0_1551.png new file mode 100644 index 0000000000..455a9ac2d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1551.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1552.png b/TMessagesProj/src/main/assets/emoji/0_1552.png new file mode 100644 index 0000000000..d50cc7547e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1552.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1553.png b/TMessagesProj/src/main/assets/emoji/0_1553.png new file mode 100644 index 0000000000..207a136b22 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1553.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1554.png b/TMessagesProj/src/main/assets/emoji/0_1554.png new file mode 100644 index 0000000000..f59b09dbf7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1554.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1555.png b/TMessagesProj/src/main/assets/emoji/0_1555.png new file mode 100644 index 0000000000..095720ab4b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1555.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1556.png b/TMessagesProj/src/main/assets/emoji/0_1556.png new file mode 100644 index 0000000000..833bc85227 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1556.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1557.png b/TMessagesProj/src/main/assets/emoji/0_1557.png new file mode 100644 index 0000000000..acd569dd2a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1557.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1558.png b/TMessagesProj/src/main/assets/emoji/0_1558.png new file mode 100644 index 0000000000..63cd9ba9d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1558.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1559.png b/TMessagesProj/src/main/assets/emoji/0_1559.png new file mode 100644 index 0000000000..23ac634a06 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1559.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_156.png b/TMessagesProj/src/main/assets/emoji/0_156.png new file mode 100644 index 0000000000..c1c72e76c5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1560.png b/TMessagesProj/src/main/assets/emoji/0_1560.png new file mode 100644 index 0000000000..5edb1cd784 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1560.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1561.png b/TMessagesProj/src/main/assets/emoji/0_1561.png new file mode 100644 index 0000000000..4fdd84abba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1561.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1562.png b/TMessagesProj/src/main/assets/emoji/0_1562.png new file mode 100644 index 0000000000..a3ce1f5fff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1562.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1563.png b/TMessagesProj/src/main/assets/emoji/0_1563.png new file mode 100644 index 0000000000..a96da846ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1563.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1564.png b/TMessagesProj/src/main/assets/emoji/0_1564.png new file mode 100644 index 0000000000..c94f076ee6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1564.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1565.png b/TMessagesProj/src/main/assets/emoji/0_1565.png new file mode 100644 index 0000000000..2d8c8e04f0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1565.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1566.png b/TMessagesProj/src/main/assets/emoji/0_1566.png new file mode 100644 index 0000000000..c9892c9ba3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1566.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1567.png b/TMessagesProj/src/main/assets/emoji/0_1567.png new file mode 100644 index 0000000000..00bf125a37 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1567.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1568.png b/TMessagesProj/src/main/assets/emoji/0_1568.png new file mode 100644 index 0000000000..eb07a113ce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1568.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1569.png b/TMessagesProj/src/main/assets/emoji/0_1569.png new file mode 100644 index 0000000000..0847f61e85 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1569.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_157.png b/TMessagesProj/src/main/assets/emoji/0_157.png new file mode 100644 index 0000000000..6318eb5c23 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1570.png b/TMessagesProj/src/main/assets/emoji/0_1570.png new file mode 100644 index 0000000000..aaa13fc7fb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1570.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1571.png b/TMessagesProj/src/main/assets/emoji/0_1571.png new file mode 100644 index 0000000000..887d97bee9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1571.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1572.png b/TMessagesProj/src/main/assets/emoji/0_1572.png new file mode 100644 index 0000000000..1d4a504280 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1572.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1573.png b/TMessagesProj/src/main/assets/emoji/0_1573.png new file mode 100644 index 0000000000..0c9d7b60a1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1573.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1574.png b/TMessagesProj/src/main/assets/emoji/0_1574.png new file mode 100644 index 0000000000..e16100b140 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1574.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1575.png b/TMessagesProj/src/main/assets/emoji/0_1575.png new file mode 100644 index 0000000000..6698185312 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1575.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1576.png b/TMessagesProj/src/main/assets/emoji/0_1576.png new file mode 100644 index 0000000000..1d6acf15b5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1576.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1577.png b/TMessagesProj/src/main/assets/emoji/0_1577.png new file mode 100644 index 0000000000..cb68b2dd53 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1577.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1578.png b/TMessagesProj/src/main/assets/emoji/0_1578.png new file mode 100644 index 0000000000..12c82e9243 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1578.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1579.png b/TMessagesProj/src/main/assets/emoji/0_1579.png new file mode 100644 index 0000000000..2e292df873 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1579.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_158.png b/TMessagesProj/src/main/assets/emoji/0_158.png new file mode 100644 index 0000000000..f710de6087 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1580.png b/TMessagesProj/src/main/assets/emoji/0_1580.png new file mode 100644 index 0000000000..a4c596e92e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1580.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1581.png b/TMessagesProj/src/main/assets/emoji/0_1581.png new file mode 100644 index 0000000000..c933b14bb2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1581.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1582.png b/TMessagesProj/src/main/assets/emoji/0_1582.png new file mode 100644 index 0000000000..ac430906eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1582.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1583.png b/TMessagesProj/src/main/assets/emoji/0_1583.png new file mode 100644 index 0000000000..9154d8c986 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1583.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1584.png b/TMessagesProj/src/main/assets/emoji/0_1584.png new file mode 100644 index 0000000000..e923c547e1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1584.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1585.png b/TMessagesProj/src/main/assets/emoji/0_1585.png new file mode 100644 index 0000000000..85d46efcff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1585.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1586.png b/TMessagesProj/src/main/assets/emoji/0_1586.png new file mode 100644 index 0000000000..d57205edea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1586.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1587.png b/TMessagesProj/src/main/assets/emoji/0_1587.png new file mode 100644 index 0000000000..c435cf6e20 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1587.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1588.png b/TMessagesProj/src/main/assets/emoji/0_1588.png new file mode 100644 index 0000000000..cb08db621b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1588.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1589.png b/TMessagesProj/src/main/assets/emoji/0_1589.png new file mode 100644 index 0000000000..a125dc944c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1589.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_159.png b/TMessagesProj/src/main/assets/emoji/0_159.png new file mode 100644 index 0000000000..910f1c7237 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1590.png b/TMessagesProj/src/main/assets/emoji/0_1590.png new file mode 100644 index 0000000000..08b3e29823 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1590.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1591.png b/TMessagesProj/src/main/assets/emoji/0_1591.png new file mode 100644 index 0000000000..f9c69a4031 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1591.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1592.png b/TMessagesProj/src/main/assets/emoji/0_1592.png new file mode 100644 index 0000000000..d56aed9438 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1592.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1593.png b/TMessagesProj/src/main/assets/emoji/0_1593.png new file mode 100644 index 0000000000..95c3dbbeae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1593.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1594.png b/TMessagesProj/src/main/assets/emoji/0_1594.png new file mode 100644 index 0000000000..e9e352905d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1594.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1595.png b/TMessagesProj/src/main/assets/emoji/0_1595.png new file mode 100644 index 0000000000..56b114c6c7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1595.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1596.png b/TMessagesProj/src/main/assets/emoji/0_1596.png new file mode 100644 index 0000000000..caa055f327 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1596.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1597.png b/TMessagesProj/src/main/assets/emoji/0_1597.png new file mode 100644 index 0000000000..e3afa56dd6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1597.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1598.png b/TMessagesProj/src/main/assets/emoji/0_1598.png new file mode 100644 index 0000000000..314129c8eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1598.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1599.png b/TMessagesProj/src/main/assets/emoji/0_1599.png new file mode 100644 index 0000000000..0b551f344e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1599.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_16.png b/TMessagesProj/src/main/assets/emoji/0_16.png new file mode 100644 index 0000000000..1e3ef42c45 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_160.png b/TMessagesProj/src/main/assets/emoji/0_160.png new file mode 100644 index 0000000000..de91302114 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1600.png b/TMessagesProj/src/main/assets/emoji/0_1600.png new file mode 100644 index 0000000000..b5d6f84873 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1600.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1601.png b/TMessagesProj/src/main/assets/emoji/0_1601.png new file mode 100644 index 0000000000..d48fa4b93d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1601.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1602.png b/TMessagesProj/src/main/assets/emoji/0_1602.png new file mode 100644 index 0000000000..bd1e7a6a63 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1602.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1603.png b/TMessagesProj/src/main/assets/emoji/0_1603.png new file mode 100644 index 0000000000..575966df4e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1603.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1604.png b/TMessagesProj/src/main/assets/emoji/0_1604.png new file mode 100644 index 0000000000..043928aaa1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1604.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1605.png b/TMessagesProj/src/main/assets/emoji/0_1605.png new file mode 100644 index 0000000000..80988c0252 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1605.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1606.png b/TMessagesProj/src/main/assets/emoji/0_1606.png new file mode 100644 index 0000000000..b8cc869a19 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1606.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1607.png b/TMessagesProj/src/main/assets/emoji/0_1607.png new file mode 100644 index 0000000000..0b52142436 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1607.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1608.png b/TMessagesProj/src/main/assets/emoji/0_1608.png new file mode 100644 index 0000000000..00644e6d7a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1608.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1609.png b/TMessagesProj/src/main/assets/emoji/0_1609.png new file mode 100644 index 0000000000..68ceed9251 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1609.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_161.png b/TMessagesProj/src/main/assets/emoji/0_161.png new file mode 100644 index 0000000000..03d2f68a5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1610.png b/TMessagesProj/src/main/assets/emoji/0_1610.png new file mode 100644 index 0000000000..eaaae32d85 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1610.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1611.png b/TMessagesProj/src/main/assets/emoji/0_1611.png new file mode 100644 index 0000000000..c4b05b0ce5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1611.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1612.png b/TMessagesProj/src/main/assets/emoji/0_1612.png new file mode 100644 index 0000000000..838bfbc41d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1612.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1613.png b/TMessagesProj/src/main/assets/emoji/0_1613.png new file mode 100644 index 0000000000..e82c96cf3e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1613.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1614.png b/TMessagesProj/src/main/assets/emoji/0_1614.png new file mode 100644 index 0000000000..c7dcaaf701 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1614.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1615.png b/TMessagesProj/src/main/assets/emoji/0_1615.png new file mode 100644 index 0000000000..cdba196aa6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1615.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1616.png b/TMessagesProj/src/main/assets/emoji/0_1616.png new file mode 100644 index 0000000000..ff80456784 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1616.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1617.png b/TMessagesProj/src/main/assets/emoji/0_1617.png new file mode 100644 index 0000000000..1ecb1fa75a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1617.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1618.png b/TMessagesProj/src/main/assets/emoji/0_1618.png new file mode 100644 index 0000000000..7b9b8f4ccd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1618.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1619.png b/TMessagesProj/src/main/assets/emoji/0_1619.png new file mode 100644 index 0000000000..483fa051fd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1619.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_162.png b/TMessagesProj/src/main/assets/emoji/0_162.png new file mode 100644 index 0000000000..29fc59e0fa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1620.png b/TMessagesProj/src/main/assets/emoji/0_1620.png new file mode 100644 index 0000000000..3e4852821a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1620.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1621.png b/TMessagesProj/src/main/assets/emoji/0_1621.png new file mode 100644 index 0000000000..9330aaceb7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1621.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1622.png b/TMessagesProj/src/main/assets/emoji/0_1622.png new file mode 100644 index 0000000000..bf78de41e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1622.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1623.png b/TMessagesProj/src/main/assets/emoji/0_1623.png new file mode 100644 index 0000000000..0ebc29c6de Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1623.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1624.png b/TMessagesProj/src/main/assets/emoji/0_1624.png new file mode 100644 index 0000000000..87cf4ea219 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1624.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1625.png b/TMessagesProj/src/main/assets/emoji/0_1625.png new file mode 100644 index 0000000000..74085e7ef1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1625.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1626.png b/TMessagesProj/src/main/assets/emoji/0_1626.png new file mode 100644 index 0000000000..3b749f6a30 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1626.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1627.png b/TMessagesProj/src/main/assets/emoji/0_1627.png new file mode 100644 index 0000000000..7a959661eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1627.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1628.png b/TMessagesProj/src/main/assets/emoji/0_1628.png new file mode 100644 index 0000000000..9c27674b1e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1628.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1629.png b/TMessagesProj/src/main/assets/emoji/0_1629.png new file mode 100644 index 0000000000..e02247f2ca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1629.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_163.png b/TMessagesProj/src/main/assets/emoji/0_163.png new file mode 100644 index 0000000000..df13e3de83 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1630.png b/TMessagesProj/src/main/assets/emoji/0_1630.png new file mode 100644 index 0000000000..ff111db8ab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1630.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1631.png b/TMessagesProj/src/main/assets/emoji/0_1631.png new file mode 100644 index 0000000000..e7e5a98593 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1631.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1632.png b/TMessagesProj/src/main/assets/emoji/0_1632.png new file mode 100644 index 0000000000..ccbc39c8d9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1632.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1633.png b/TMessagesProj/src/main/assets/emoji/0_1633.png new file mode 100644 index 0000000000..e9ea4ec78e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1633.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1634.png b/TMessagesProj/src/main/assets/emoji/0_1634.png new file mode 100644 index 0000000000..ff374b7686 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1634.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1635.png b/TMessagesProj/src/main/assets/emoji/0_1635.png new file mode 100644 index 0000000000..3778f74652 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1635.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1636.png b/TMessagesProj/src/main/assets/emoji/0_1636.png new file mode 100644 index 0000000000..2d4cd894aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1636.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1637.png b/TMessagesProj/src/main/assets/emoji/0_1637.png new file mode 100644 index 0000000000..ce17dac4c0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1637.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1638.png b/TMessagesProj/src/main/assets/emoji/0_1638.png new file mode 100644 index 0000000000..f8b693bfb0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1638.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1639.png b/TMessagesProj/src/main/assets/emoji/0_1639.png new file mode 100644 index 0000000000..3171756cc2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1639.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_164.png b/TMessagesProj/src/main/assets/emoji/0_164.png new file mode 100644 index 0000000000..4525c8e37e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1640.png b/TMessagesProj/src/main/assets/emoji/0_1640.png new file mode 100644 index 0000000000..9c57d0da74 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1640.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1641.png b/TMessagesProj/src/main/assets/emoji/0_1641.png new file mode 100644 index 0000000000..eaa9f403c0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1641.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1642.png b/TMessagesProj/src/main/assets/emoji/0_1642.png new file mode 100644 index 0000000000..0cac478607 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1642.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1643.png b/TMessagesProj/src/main/assets/emoji/0_1643.png new file mode 100644 index 0000000000..af76961f97 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1643.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1644.png b/TMessagesProj/src/main/assets/emoji/0_1644.png new file mode 100644 index 0000000000..d3727db5fd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1644.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1645.png b/TMessagesProj/src/main/assets/emoji/0_1645.png new file mode 100644 index 0000000000..a39a3d7579 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1645.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1646.png b/TMessagesProj/src/main/assets/emoji/0_1646.png new file mode 100644 index 0000000000..d50457cb74 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1646.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1647.png b/TMessagesProj/src/main/assets/emoji/0_1647.png new file mode 100644 index 0000000000..fe3844be1d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1647.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1648.png b/TMessagesProj/src/main/assets/emoji/0_1648.png new file mode 100644 index 0000000000..e90d73ef6e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1648.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1649.png b/TMessagesProj/src/main/assets/emoji/0_1649.png new file mode 100644 index 0000000000..ac35067eff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1649.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_165.png b/TMessagesProj/src/main/assets/emoji/0_165.png new file mode 100644 index 0000000000..9dd05138de Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1650.png b/TMessagesProj/src/main/assets/emoji/0_1650.png new file mode 100644 index 0000000000..b7809597b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1650.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1651.png b/TMessagesProj/src/main/assets/emoji/0_1651.png new file mode 100644 index 0000000000..85675c36d0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1651.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1652.png b/TMessagesProj/src/main/assets/emoji/0_1652.png new file mode 100644 index 0000000000..e12d878f44 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1652.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1653.png b/TMessagesProj/src/main/assets/emoji/0_1653.png new file mode 100644 index 0000000000..f7b16f1e57 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1653.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1654.png b/TMessagesProj/src/main/assets/emoji/0_1654.png new file mode 100644 index 0000000000..69081dd654 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1654.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1655.png b/TMessagesProj/src/main/assets/emoji/0_1655.png new file mode 100644 index 0000000000..9462e399ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1655.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1656.png b/TMessagesProj/src/main/assets/emoji/0_1656.png new file mode 100644 index 0000000000..1effeb1bd6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1656.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1657.png b/TMessagesProj/src/main/assets/emoji/0_1657.png new file mode 100644 index 0000000000..c5f278db22 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1657.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1658.png b/TMessagesProj/src/main/assets/emoji/0_1658.png new file mode 100644 index 0000000000..98e0a302c4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1658.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1659.png b/TMessagesProj/src/main/assets/emoji/0_1659.png new file mode 100644 index 0000000000..cf7c40236e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1659.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_166.png b/TMessagesProj/src/main/assets/emoji/0_166.png new file mode 100644 index 0000000000..5f030e7818 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1660.png b/TMessagesProj/src/main/assets/emoji/0_1660.png new file mode 100644 index 0000000000..8b5a7b3d39 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1660.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1661.png b/TMessagesProj/src/main/assets/emoji/0_1661.png new file mode 100644 index 0000000000..ce06f1cef8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1661.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1662.png b/TMessagesProj/src/main/assets/emoji/0_1662.png new file mode 100644 index 0000000000..7f034d62f3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1662.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1663.png b/TMessagesProj/src/main/assets/emoji/0_1663.png new file mode 100644 index 0000000000..703a7bcd98 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1663.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1664.png b/TMessagesProj/src/main/assets/emoji/0_1664.png new file mode 100644 index 0000000000..ab0cb8c150 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1664.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1665.png b/TMessagesProj/src/main/assets/emoji/0_1665.png new file mode 100644 index 0000000000..02127a0388 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1665.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1666.png b/TMessagesProj/src/main/assets/emoji/0_1666.png new file mode 100644 index 0000000000..ce841ecccf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1666.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1667.png b/TMessagesProj/src/main/assets/emoji/0_1667.png new file mode 100644 index 0000000000..cf2eedff03 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1667.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1668.png b/TMessagesProj/src/main/assets/emoji/0_1668.png new file mode 100644 index 0000000000..fd554ea765 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1668.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1669.png b/TMessagesProj/src/main/assets/emoji/0_1669.png new file mode 100644 index 0000000000..ad167d8b21 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1669.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_167.png b/TMessagesProj/src/main/assets/emoji/0_167.png new file mode 100644 index 0000000000..e9dac81cf4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1670.png b/TMessagesProj/src/main/assets/emoji/0_1670.png new file mode 100644 index 0000000000..013c05b4ac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1670.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1671.png b/TMessagesProj/src/main/assets/emoji/0_1671.png new file mode 100644 index 0000000000..23980e1ee4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1671.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1672.png b/TMessagesProj/src/main/assets/emoji/0_1672.png new file mode 100644 index 0000000000..57057875ee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1672.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1673.png b/TMessagesProj/src/main/assets/emoji/0_1673.png new file mode 100644 index 0000000000..6e6dce103c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1673.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1674.png b/TMessagesProj/src/main/assets/emoji/0_1674.png new file mode 100644 index 0000000000..a8153ef4cc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1674.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1675.png b/TMessagesProj/src/main/assets/emoji/0_1675.png new file mode 100644 index 0000000000..3392cc5c27 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1675.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1676.png b/TMessagesProj/src/main/assets/emoji/0_1676.png new file mode 100644 index 0000000000..13889c7753 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1676.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1677.png b/TMessagesProj/src/main/assets/emoji/0_1677.png new file mode 100644 index 0000000000..79cd8f0d43 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1677.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1678.png b/TMessagesProj/src/main/assets/emoji/0_1678.png new file mode 100644 index 0000000000..92db9950c4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1678.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1679.png b/TMessagesProj/src/main/assets/emoji/0_1679.png new file mode 100644 index 0000000000..111ffdeef7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1679.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_168.png b/TMessagesProj/src/main/assets/emoji/0_168.png new file mode 100644 index 0000000000..f178e6c11e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1680.png b/TMessagesProj/src/main/assets/emoji/0_1680.png new file mode 100644 index 0000000000..1b631836d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1680.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1681.png b/TMessagesProj/src/main/assets/emoji/0_1681.png new file mode 100644 index 0000000000..c824a06cd7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1681.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1682.png b/TMessagesProj/src/main/assets/emoji/0_1682.png new file mode 100644 index 0000000000..99be99466d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1682.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1683.png b/TMessagesProj/src/main/assets/emoji/0_1683.png new file mode 100644 index 0000000000..d28208b619 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1683.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1684.png b/TMessagesProj/src/main/assets/emoji/0_1684.png new file mode 100644 index 0000000000..20492bb3c3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1684.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1685.png b/TMessagesProj/src/main/assets/emoji/0_1685.png new file mode 100644 index 0000000000..eabebdff8d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1685.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1686.png b/TMessagesProj/src/main/assets/emoji/0_1686.png new file mode 100644 index 0000000000..df4819046e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1686.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1687.png b/TMessagesProj/src/main/assets/emoji/0_1687.png new file mode 100644 index 0000000000..957cff34ed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1687.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1688.png b/TMessagesProj/src/main/assets/emoji/0_1688.png new file mode 100644 index 0000000000..136dce045f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1688.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1689.png b/TMessagesProj/src/main/assets/emoji/0_1689.png new file mode 100644 index 0000000000..81c4590a80 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1689.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_169.png b/TMessagesProj/src/main/assets/emoji/0_169.png new file mode 100644 index 0000000000..6846fe73ea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1690.png b/TMessagesProj/src/main/assets/emoji/0_1690.png new file mode 100644 index 0000000000..83f0482136 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1690.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1691.png b/TMessagesProj/src/main/assets/emoji/0_1691.png new file mode 100644 index 0000000000..7e71f24e45 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1691.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1692.png b/TMessagesProj/src/main/assets/emoji/0_1692.png new file mode 100644 index 0000000000..292381cdfd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1692.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1693.png b/TMessagesProj/src/main/assets/emoji/0_1693.png new file mode 100644 index 0000000000..a3bf47f12b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1693.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1694.png b/TMessagesProj/src/main/assets/emoji/0_1694.png new file mode 100644 index 0000000000..fe461a0a9c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1694.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1695.png b/TMessagesProj/src/main/assets/emoji/0_1695.png new file mode 100644 index 0000000000..375c781cbc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1695.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1696.png b/TMessagesProj/src/main/assets/emoji/0_1696.png new file mode 100644 index 0000000000..c650eed586 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1696.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1697.png b/TMessagesProj/src/main/assets/emoji/0_1697.png new file mode 100644 index 0000000000..45f2f3df98 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1697.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1698.png b/TMessagesProj/src/main/assets/emoji/0_1698.png new file mode 100644 index 0000000000..721be654cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1698.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1699.png b/TMessagesProj/src/main/assets/emoji/0_1699.png new file mode 100644 index 0000000000..767d06c516 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1699.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_17.png b/TMessagesProj/src/main/assets/emoji/0_17.png new file mode 100644 index 0000000000..2e14d5a3be Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_170.png b/TMessagesProj/src/main/assets/emoji/0_170.png new file mode 100644 index 0000000000..8d88d03452 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1700.png b/TMessagesProj/src/main/assets/emoji/0_1700.png new file mode 100644 index 0000000000..dad43b23f0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1700.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1701.png b/TMessagesProj/src/main/assets/emoji/0_1701.png new file mode 100644 index 0000000000..0db6a70459 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1701.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1702.png b/TMessagesProj/src/main/assets/emoji/0_1702.png new file mode 100644 index 0000000000..9a1508d522 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1702.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1703.png b/TMessagesProj/src/main/assets/emoji/0_1703.png new file mode 100644 index 0000000000..075c6e4c33 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1703.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1704.png b/TMessagesProj/src/main/assets/emoji/0_1704.png new file mode 100644 index 0000000000..06f5a25992 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1704.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1705.png b/TMessagesProj/src/main/assets/emoji/0_1705.png new file mode 100644 index 0000000000..cae21fc08f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1705.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1706.png b/TMessagesProj/src/main/assets/emoji/0_1706.png new file mode 100644 index 0000000000..139638636e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1706.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1707.png b/TMessagesProj/src/main/assets/emoji/0_1707.png new file mode 100644 index 0000000000..d69b58fa84 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1707.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1708.png b/TMessagesProj/src/main/assets/emoji/0_1708.png new file mode 100644 index 0000000000..5ca3f8b8e6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1708.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1709.png b/TMessagesProj/src/main/assets/emoji/0_1709.png new file mode 100644 index 0000000000..00d9e5d973 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1709.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_171.png b/TMessagesProj/src/main/assets/emoji/0_171.png new file mode 100644 index 0000000000..574958ffc6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1710.png b/TMessagesProj/src/main/assets/emoji/0_1710.png new file mode 100644 index 0000000000..ea03f38bcb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1710.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1711.png b/TMessagesProj/src/main/assets/emoji/0_1711.png new file mode 100644 index 0000000000..c5ec88d291 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1711.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1712.png b/TMessagesProj/src/main/assets/emoji/0_1712.png new file mode 100644 index 0000000000..b6b0bd23f7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1712.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1713.png b/TMessagesProj/src/main/assets/emoji/0_1713.png new file mode 100644 index 0000000000..7bf5338405 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1713.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1714.png b/TMessagesProj/src/main/assets/emoji/0_1714.png new file mode 100644 index 0000000000..5ed857453c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1714.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1715.png b/TMessagesProj/src/main/assets/emoji/0_1715.png new file mode 100644 index 0000000000..214a87ba12 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1715.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1716.png b/TMessagesProj/src/main/assets/emoji/0_1716.png new file mode 100644 index 0000000000..6ead42c63c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1716.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1717.png b/TMessagesProj/src/main/assets/emoji/0_1717.png new file mode 100644 index 0000000000..6d32230abf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1717.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1718.png b/TMessagesProj/src/main/assets/emoji/0_1718.png new file mode 100644 index 0000000000..fa19c1cad3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1718.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1719.png b/TMessagesProj/src/main/assets/emoji/0_1719.png new file mode 100644 index 0000000000..844a7bd9f7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1719.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_172.png b/TMessagesProj/src/main/assets/emoji/0_172.png new file mode 100644 index 0000000000..04c0b124af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1720.png b/TMessagesProj/src/main/assets/emoji/0_1720.png new file mode 100644 index 0000000000..c3d91dda5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1720.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1721.png b/TMessagesProj/src/main/assets/emoji/0_1721.png new file mode 100644 index 0000000000..2ceeb442b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1721.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1722.png b/TMessagesProj/src/main/assets/emoji/0_1722.png new file mode 100644 index 0000000000..e3a814cff2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1722.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1723.png b/TMessagesProj/src/main/assets/emoji/0_1723.png new file mode 100644 index 0000000000..08bd0bb413 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1723.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1724.png b/TMessagesProj/src/main/assets/emoji/0_1724.png new file mode 100644 index 0000000000..91a4d94a66 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1724.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1725.png b/TMessagesProj/src/main/assets/emoji/0_1725.png new file mode 100644 index 0000000000..1ef4e986dd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1725.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1726.png b/TMessagesProj/src/main/assets/emoji/0_1726.png new file mode 100644 index 0000000000..5db031d590 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1726.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1727.png b/TMessagesProj/src/main/assets/emoji/0_1727.png new file mode 100644 index 0000000000..1700a8bf69 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1727.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1728.png b/TMessagesProj/src/main/assets/emoji/0_1728.png new file mode 100644 index 0000000000..a4b3b85634 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1728.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1729.png b/TMessagesProj/src/main/assets/emoji/0_1729.png new file mode 100644 index 0000000000..42abeae5ec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1729.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_173.png b/TMessagesProj/src/main/assets/emoji/0_173.png new file mode 100644 index 0000000000..d1c7f26fdc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1730.png b/TMessagesProj/src/main/assets/emoji/0_1730.png new file mode 100644 index 0000000000..3059134693 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1730.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1731.png b/TMessagesProj/src/main/assets/emoji/0_1731.png new file mode 100644 index 0000000000..736daa1896 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1731.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1732.png b/TMessagesProj/src/main/assets/emoji/0_1732.png new file mode 100644 index 0000000000..4a280f3d0d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1732.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1733.png b/TMessagesProj/src/main/assets/emoji/0_1733.png new file mode 100644 index 0000000000..4f6d818a01 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1733.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1734.png b/TMessagesProj/src/main/assets/emoji/0_1734.png new file mode 100644 index 0000000000..4927983095 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1734.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1735.png b/TMessagesProj/src/main/assets/emoji/0_1735.png new file mode 100644 index 0000000000..4c39a3f32f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1735.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1736.png b/TMessagesProj/src/main/assets/emoji/0_1736.png new file mode 100644 index 0000000000..3bd1d0c650 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1736.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1737.png b/TMessagesProj/src/main/assets/emoji/0_1737.png new file mode 100644 index 0000000000..27a04dbeac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1737.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1738.png b/TMessagesProj/src/main/assets/emoji/0_1738.png new file mode 100644 index 0000000000..a031699359 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1738.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1739.png b/TMessagesProj/src/main/assets/emoji/0_1739.png new file mode 100644 index 0000000000..d9c9282181 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1739.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_174.png b/TMessagesProj/src/main/assets/emoji/0_174.png new file mode 100644 index 0000000000..724796a471 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1740.png b/TMessagesProj/src/main/assets/emoji/0_1740.png new file mode 100644 index 0000000000..702f40f7b0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1740.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1741.png b/TMessagesProj/src/main/assets/emoji/0_1741.png new file mode 100644 index 0000000000..b167aa8c8d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1741.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1742.png b/TMessagesProj/src/main/assets/emoji/0_1742.png new file mode 100644 index 0000000000..cd11e69630 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1742.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1743.png b/TMessagesProj/src/main/assets/emoji/0_1743.png new file mode 100644 index 0000000000..8b7b89c0be Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1743.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1744.png b/TMessagesProj/src/main/assets/emoji/0_1744.png new file mode 100644 index 0000000000..d63965ddf9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1744.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1745.png b/TMessagesProj/src/main/assets/emoji/0_1745.png new file mode 100644 index 0000000000..7fdeea2c5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1745.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1746.png b/TMessagesProj/src/main/assets/emoji/0_1746.png new file mode 100644 index 0000000000..674ddbc88e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1746.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1747.png b/TMessagesProj/src/main/assets/emoji/0_1747.png new file mode 100644 index 0000000000..8e01dac5a2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1747.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1748.png b/TMessagesProj/src/main/assets/emoji/0_1748.png new file mode 100644 index 0000000000..026c85981b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1748.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1749.png b/TMessagesProj/src/main/assets/emoji/0_1749.png new file mode 100644 index 0000000000..24240b0c6e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1749.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_175.png b/TMessagesProj/src/main/assets/emoji/0_175.png new file mode 100644 index 0000000000..9f34eb1de6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1750.png b/TMessagesProj/src/main/assets/emoji/0_1750.png new file mode 100644 index 0000000000..633c85a07e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1750.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1751.png b/TMessagesProj/src/main/assets/emoji/0_1751.png new file mode 100644 index 0000000000..78c312523a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1751.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1752.png b/TMessagesProj/src/main/assets/emoji/0_1752.png new file mode 100644 index 0000000000..eae9ebefe3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1752.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1753.png b/TMessagesProj/src/main/assets/emoji/0_1753.png new file mode 100644 index 0000000000..c340845a44 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1753.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1754.png b/TMessagesProj/src/main/assets/emoji/0_1754.png new file mode 100644 index 0000000000..3b471675a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1754.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1755.png b/TMessagesProj/src/main/assets/emoji/0_1755.png new file mode 100644 index 0000000000..70091051a9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1755.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1756.png b/TMessagesProj/src/main/assets/emoji/0_1756.png new file mode 100644 index 0000000000..6c15a20aac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1756.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1757.png b/TMessagesProj/src/main/assets/emoji/0_1757.png new file mode 100644 index 0000000000..c7feef09a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1757.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1758.png b/TMessagesProj/src/main/assets/emoji/0_1758.png new file mode 100644 index 0000000000..3d5af8ceb1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1758.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1759.png b/TMessagesProj/src/main/assets/emoji/0_1759.png new file mode 100644 index 0000000000..75c00439e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1759.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_176.png b/TMessagesProj/src/main/assets/emoji/0_176.png new file mode 100644 index 0000000000..478fe162a4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1760.png b/TMessagesProj/src/main/assets/emoji/0_1760.png new file mode 100644 index 0000000000..6de2c20fdd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1760.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1761.png b/TMessagesProj/src/main/assets/emoji/0_1761.png new file mode 100644 index 0000000000..244e0cb83c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1761.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1762.png b/TMessagesProj/src/main/assets/emoji/0_1762.png new file mode 100644 index 0000000000..e48222fa3a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1762.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1763.png b/TMessagesProj/src/main/assets/emoji/0_1763.png new file mode 100644 index 0000000000..36fc30fb67 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1763.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1764.png b/TMessagesProj/src/main/assets/emoji/0_1764.png new file mode 100644 index 0000000000..55c18627ca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1764.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1765.png b/TMessagesProj/src/main/assets/emoji/0_1765.png new file mode 100644 index 0000000000..e4516c8791 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1765.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1766.png b/TMessagesProj/src/main/assets/emoji/0_1766.png new file mode 100644 index 0000000000..9f40b6a004 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1766.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1767.png b/TMessagesProj/src/main/assets/emoji/0_1767.png new file mode 100644 index 0000000000..8d6ea50d36 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1767.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1768.png b/TMessagesProj/src/main/assets/emoji/0_1768.png new file mode 100644 index 0000000000..19f8f2acba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1768.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1769.png b/TMessagesProj/src/main/assets/emoji/0_1769.png new file mode 100644 index 0000000000..b6d1e0637a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1769.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_177.png b/TMessagesProj/src/main/assets/emoji/0_177.png new file mode 100644 index 0000000000..4661766f66 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1770.png b/TMessagesProj/src/main/assets/emoji/0_1770.png new file mode 100644 index 0000000000..879472f52a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1770.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1771.png b/TMessagesProj/src/main/assets/emoji/0_1771.png new file mode 100644 index 0000000000..da762aa50f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1771.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1772.png b/TMessagesProj/src/main/assets/emoji/0_1772.png new file mode 100644 index 0000000000..5d3504edfe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1772.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1773.png b/TMessagesProj/src/main/assets/emoji/0_1773.png new file mode 100644 index 0000000000..725a6284aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1773.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1774.png b/TMessagesProj/src/main/assets/emoji/0_1774.png new file mode 100644 index 0000000000..2594003de6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1774.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1775.png b/TMessagesProj/src/main/assets/emoji/0_1775.png new file mode 100644 index 0000000000..2c48d76586 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1775.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1776.png b/TMessagesProj/src/main/assets/emoji/0_1776.png new file mode 100644 index 0000000000..7674cb8f0a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1776.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1777.png b/TMessagesProj/src/main/assets/emoji/0_1777.png new file mode 100644 index 0000000000..1da759067c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1777.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1778.png b/TMessagesProj/src/main/assets/emoji/0_1778.png new file mode 100644 index 0000000000..933a19dc58 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1778.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1779.png b/TMessagesProj/src/main/assets/emoji/0_1779.png new file mode 100644 index 0000000000..ad1109a155 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1779.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_178.png b/TMessagesProj/src/main/assets/emoji/0_178.png new file mode 100644 index 0000000000..2029cdda03 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1780.png b/TMessagesProj/src/main/assets/emoji/0_1780.png new file mode 100644 index 0000000000..9fa991db62 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1780.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1781.png b/TMessagesProj/src/main/assets/emoji/0_1781.png new file mode 100644 index 0000000000..bc9cffba5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1781.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1782.png b/TMessagesProj/src/main/assets/emoji/0_1782.png new file mode 100644 index 0000000000..f9e3764ad8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1782.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1783.png b/TMessagesProj/src/main/assets/emoji/0_1783.png new file mode 100644 index 0000000000..db4deb2a31 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1783.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1784.png b/TMessagesProj/src/main/assets/emoji/0_1784.png new file mode 100644 index 0000000000..ddcba98855 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1784.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1785.png b/TMessagesProj/src/main/assets/emoji/0_1785.png new file mode 100644 index 0000000000..21e373486f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1785.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1786.png b/TMessagesProj/src/main/assets/emoji/0_1786.png new file mode 100644 index 0000000000..608cbed9c5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1786.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1787.png b/TMessagesProj/src/main/assets/emoji/0_1787.png new file mode 100644 index 0000000000..122991b3ef Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1787.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1788.png b/TMessagesProj/src/main/assets/emoji/0_1788.png new file mode 100644 index 0000000000..bf19476fcd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1788.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1789.png b/TMessagesProj/src/main/assets/emoji/0_1789.png new file mode 100644 index 0000000000..1855e75f9c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1789.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_179.png b/TMessagesProj/src/main/assets/emoji/0_179.png new file mode 100644 index 0000000000..fee8bdc587 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1790.png b/TMessagesProj/src/main/assets/emoji/0_1790.png new file mode 100644 index 0000000000..170e0aef7a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1790.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1791.png b/TMessagesProj/src/main/assets/emoji/0_1791.png new file mode 100644 index 0000000000..83b80324ea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1791.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1792.png b/TMessagesProj/src/main/assets/emoji/0_1792.png new file mode 100644 index 0000000000..856ff92fc7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1792.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1793.png b/TMessagesProj/src/main/assets/emoji/0_1793.png new file mode 100644 index 0000000000..f5a967d487 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1793.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1794.png b/TMessagesProj/src/main/assets/emoji/0_1794.png new file mode 100644 index 0000000000..218b75d08e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1794.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1795.png b/TMessagesProj/src/main/assets/emoji/0_1795.png new file mode 100644 index 0000000000..af2a21c543 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1795.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1796.png b/TMessagesProj/src/main/assets/emoji/0_1796.png new file mode 100644 index 0000000000..4c2c61c5f3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1796.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1797.png b/TMessagesProj/src/main/assets/emoji/0_1797.png new file mode 100644 index 0000000000..6bf7a3c331 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1797.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1798.png b/TMessagesProj/src/main/assets/emoji/0_1798.png new file mode 100644 index 0000000000..efdc06a858 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1798.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1799.png b/TMessagesProj/src/main/assets/emoji/0_1799.png new file mode 100644 index 0000000000..b1bb537200 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1799.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_18.png b/TMessagesProj/src/main/assets/emoji/0_18.png new file mode 100644 index 0000000000..087c48a889 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_180.png b/TMessagesProj/src/main/assets/emoji/0_180.png new file mode 100644 index 0000000000..07e430cd88 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1800.png b/TMessagesProj/src/main/assets/emoji/0_1800.png new file mode 100644 index 0000000000..5ce856520e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1800.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1801.png b/TMessagesProj/src/main/assets/emoji/0_1801.png new file mode 100644 index 0000000000..0449df7c1f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1801.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1802.png b/TMessagesProj/src/main/assets/emoji/0_1802.png new file mode 100644 index 0000000000..4c4ca2227d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1802.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1803.png b/TMessagesProj/src/main/assets/emoji/0_1803.png new file mode 100644 index 0000000000..5073db07bf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1803.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1804.png b/TMessagesProj/src/main/assets/emoji/0_1804.png new file mode 100644 index 0000000000..b80a773945 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1804.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1805.png b/TMessagesProj/src/main/assets/emoji/0_1805.png new file mode 100644 index 0000000000..30d06eccbc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1805.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1806.png b/TMessagesProj/src/main/assets/emoji/0_1806.png new file mode 100644 index 0000000000..0621b45606 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1806.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1807.png b/TMessagesProj/src/main/assets/emoji/0_1807.png new file mode 100644 index 0000000000..2300fbaa49 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1807.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1808.png b/TMessagesProj/src/main/assets/emoji/0_1808.png new file mode 100644 index 0000000000..decbd5f6c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1808.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1809.png b/TMessagesProj/src/main/assets/emoji/0_1809.png new file mode 100644 index 0000000000..79a02c0d7b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1809.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_181.png b/TMessagesProj/src/main/assets/emoji/0_181.png new file mode 100644 index 0000000000..ceb34e1092 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1810.png b/TMessagesProj/src/main/assets/emoji/0_1810.png new file mode 100644 index 0000000000..274a510720 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1810.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1811.png b/TMessagesProj/src/main/assets/emoji/0_1811.png new file mode 100644 index 0000000000..ce5a374514 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1811.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1812.png b/TMessagesProj/src/main/assets/emoji/0_1812.png new file mode 100644 index 0000000000..575c6285b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1812.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1813.png b/TMessagesProj/src/main/assets/emoji/0_1813.png new file mode 100644 index 0000000000..777bbb2cc3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1813.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1814.png b/TMessagesProj/src/main/assets/emoji/0_1814.png new file mode 100644 index 0000000000..925f9ab1a2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1814.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1815.png b/TMessagesProj/src/main/assets/emoji/0_1815.png new file mode 100644 index 0000000000..5476cce7a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1815.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1816.png b/TMessagesProj/src/main/assets/emoji/0_1816.png new file mode 100644 index 0000000000..ec95da0f86 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1816.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1817.png b/TMessagesProj/src/main/assets/emoji/0_1817.png new file mode 100644 index 0000000000..7c9330d7a0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1817.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1818.png b/TMessagesProj/src/main/assets/emoji/0_1818.png new file mode 100644 index 0000000000..6071580fc5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1818.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1819.png b/TMessagesProj/src/main/assets/emoji/0_1819.png new file mode 100644 index 0000000000..8acd96cab3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1819.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_182.png b/TMessagesProj/src/main/assets/emoji/0_182.png new file mode 100644 index 0000000000..4754a095ba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1820.png b/TMessagesProj/src/main/assets/emoji/0_1820.png new file mode 100644 index 0000000000..3ba91b0e39 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1820.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1821.png b/TMessagesProj/src/main/assets/emoji/0_1821.png new file mode 100644 index 0000000000..7ee514ec65 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1821.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1822.png b/TMessagesProj/src/main/assets/emoji/0_1822.png new file mode 100644 index 0000000000..a3ab367948 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1822.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1823.png b/TMessagesProj/src/main/assets/emoji/0_1823.png new file mode 100644 index 0000000000..f149f9c589 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1823.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1824.png b/TMessagesProj/src/main/assets/emoji/0_1824.png new file mode 100644 index 0000000000..2042af0b23 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1824.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1825.png b/TMessagesProj/src/main/assets/emoji/0_1825.png new file mode 100644 index 0000000000..4328834383 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1825.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1826.png b/TMessagesProj/src/main/assets/emoji/0_1826.png new file mode 100644 index 0000000000..b063602c75 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1826.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1827.png b/TMessagesProj/src/main/assets/emoji/0_1827.png new file mode 100644 index 0000000000..c9710c1e27 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1827.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1828.png b/TMessagesProj/src/main/assets/emoji/0_1828.png new file mode 100644 index 0000000000..f9d8a7888d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1828.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1829.png b/TMessagesProj/src/main/assets/emoji/0_1829.png new file mode 100644 index 0000000000..e7e6b1e59c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1829.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_183.png b/TMessagesProj/src/main/assets/emoji/0_183.png new file mode 100644 index 0000000000..30cd665e66 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1830.png b/TMessagesProj/src/main/assets/emoji/0_1830.png new file mode 100644 index 0000000000..47bdce9883 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1830.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1831.png b/TMessagesProj/src/main/assets/emoji/0_1831.png new file mode 100644 index 0000000000..74d5fc1ca5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1831.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1832.png b/TMessagesProj/src/main/assets/emoji/0_1832.png new file mode 100644 index 0000000000..da2528fc47 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1832.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1833.png b/TMessagesProj/src/main/assets/emoji/0_1833.png new file mode 100644 index 0000000000..a31c413da6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1833.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1834.png b/TMessagesProj/src/main/assets/emoji/0_1834.png new file mode 100644 index 0000000000..dce7cef06a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1834.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1835.png b/TMessagesProj/src/main/assets/emoji/0_1835.png new file mode 100644 index 0000000000..6da966974a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1835.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1836.png b/TMessagesProj/src/main/assets/emoji/0_1836.png new file mode 100644 index 0000000000..71498284cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1836.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1837.png b/TMessagesProj/src/main/assets/emoji/0_1837.png new file mode 100644 index 0000000000..8400de1533 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1837.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1838.png b/TMessagesProj/src/main/assets/emoji/0_1838.png new file mode 100644 index 0000000000..d6aa98568b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1838.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1839.png b/TMessagesProj/src/main/assets/emoji/0_1839.png new file mode 100644 index 0000000000..6dba0e8ce2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1839.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_184.png b/TMessagesProj/src/main/assets/emoji/0_184.png new file mode 100644 index 0000000000..4b26b2159f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1840.png b/TMessagesProj/src/main/assets/emoji/0_1840.png new file mode 100644 index 0000000000..090edab913 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1840.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1841.png b/TMessagesProj/src/main/assets/emoji/0_1841.png new file mode 100644 index 0000000000..52b945594a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1841.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1842.png b/TMessagesProj/src/main/assets/emoji/0_1842.png new file mode 100644 index 0000000000..1e2e0f9143 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1842.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1843.png b/TMessagesProj/src/main/assets/emoji/0_1843.png new file mode 100644 index 0000000000..3283b7ad37 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1843.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1844.png b/TMessagesProj/src/main/assets/emoji/0_1844.png new file mode 100644 index 0000000000..5dd1d8bb34 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1844.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1845.png b/TMessagesProj/src/main/assets/emoji/0_1845.png new file mode 100644 index 0000000000..2ec3a624b4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1845.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1846.png b/TMessagesProj/src/main/assets/emoji/0_1846.png new file mode 100644 index 0000000000..1e50161718 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1846.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1847.png b/TMessagesProj/src/main/assets/emoji/0_1847.png new file mode 100644 index 0000000000..fefe8f5be7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1847.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1848.png b/TMessagesProj/src/main/assets/emoji/0_1848.png new file mode 100644 index 0000000000..6911a2b07b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1848.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1849.png b/TMessagesProj/src/main/assets/emoji/0_1849.png new file mode 100644 index 0000000000..e6f47282e5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1849.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_185.png b/TMessagesProj/src/main/assets/emoji/0_185.png new file mode 100644 index 0000000000..c45c3f3c7d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1850.png b/TMessagesProj/src/main/assets/emoji/0_1850.png new file mode 100644 index 0000000000..7d7b7d3bf0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1850.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1851.png b/TMessagesProj/src/main/assets/emoji/0_1851.png new file mode 100644 index 0000000000..b54612aba6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1851.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1852.png b/TMessagesProj/src/main/assets/emoji/0_1852.png new file mode 100644 index 0000000000..9c610f409f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1852.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1853.png b/TMessagesProj/src/main/assets/emoji/0_1853.png new file mode 100644 index 0000000000..126706d8b5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1853.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1854.png b/TMessagesProj/src/main/assets/emoji/0_1854.png new file mode 100644 index 0000000000..282068608a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1854.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1855.png b/TMessagesProj/src/main/assets/emoji/0_1855.png new file mode 100644 index 0000000000..e438efc350 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1855.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1856.png b/TMessagesProj/src/main/assets/emoji/0_1856.png new file mode 100644 index 0000000000..8cea174124 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1856.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1857.png b/TMessagesProj/src/main/assets/emoji/0_1857.png new file mode 100644 index 0000000000..68691d4dbf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1857.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1858.png b/TMessagesProj/src/main/assets/emoji/0_1858.png new file mode 100644 index 0000000000..4889173286 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1858.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1859.png b/TMessagesProj/src/main/assets/emoji/0_1859.png new file mode 100644 index 0000000000..2ca7a99d1d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1859.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_186.png b/TMessagesProj/src/main/assets/emoji/0_186.png new file mode 100644 index 0000000000..091d0b0d19 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1860.png b/TMessagesProj/src/main/assets/emoji/0_1860.png new file mode 100644 index 0000000000..c5815d8797 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1860.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1861.png b/TMessagesProj/src/main/assets/emoji/0_1861.png new file mode 100644 index 0000000000..88c97de5da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1861.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1862.png b/TMessagesProj/src/main/assets/emoji/0_1862.png new file mode 100644 index 0000000000..15e282a18e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1862.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1863.png b/TMessagesProj/src/main/assets/emoji/0_1863.png new file mode 100644 index 0000000000..f2b903d133 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1863.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1864.png b/TMessagesProj/src/main/assets/emoji/0_1864.png new file mode 100644 index 0000000000..befef0757c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1864.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1865.png b/TMessagesProj/src/main/assets/emoji/0_1865.png new file mode 100644 index 0000000000..211b9ac5c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1865.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1866.png b/TMessagesProj/src/main/assets/emoji/0_1866.png new file mode 100644 index 0000000000..4ce5fa1f93 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1866.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1867.png b/TMessagesProj/src/main/assets/emoji/0_1867.png new file mode 100644 index 0000000000..767d5b299d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1867.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1868.png b/TMessagesProj/src/main/assets/emoji/0_1868.png new file mode 100644 index 0000000000..f3d7d0c70c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1868.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1869.png b/TMessagesProj/src/main/assets/emoji/0_1869.png new file mode 100644 index 0000000000..d0cc157e1d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1869.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_187.png b/TMessagesProj/src/main/assets/emoji/0_187.png new file mode 100644 index 0000000000..7182599264 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1870.png b/TMessagesProj/src/main/assets/emoji/0_1870.png new file mode 100644 index 0000000000..36c01ecae0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1870.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1871.png b/TMessagesProj/src/main/assets/emoji/0_1871.png new file mode 100644 index 0000000000..e70ad18a3d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1871.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1872.png b/TMessagesProj/src/main/assets/emoji/0_1872.png new file mode 100644 index 0000000000..bb654e3418 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1872.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1873.png b/TMessagesProj/src/main/assets/emoji/0_1873.png new file mode 100644 index 0000000000..c018d209e6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1873.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1874.png b/TMessagesProj/src/main/assets/emoji/0_1874.png new file mode 100644 index 0000000000..fec56a7ed2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1874.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1875.png b/TMessagesProj/src/main/assets/emoji/0_1875.png new file mode 100644 index 0000000000..4379619643 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1875.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1876.png b/TMessagesProj/src/main/assets/emoji/0_1876.png new file mode 100644 index 0000000000..5ca081b5d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1876.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1877.png b/TMessagesProj/src/main/assets/emoji/0_1877.png new file mode 100644 index 0000000000..0ca8defc28 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1877.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1878.png b/TMessagesProj/src/main/assets/emoji/0_1878.png new file mode 100644 index 0000000000..d0e076a96a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1878.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1879.png b/TMessagesProj/src/main/assets/emoji/0_1879.png new file mode 100644 index 0000000000..947fc2f1cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1879.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_188.png b/TMessagesProj/src/main/assets/emoji/0_188.png new file mode 100644 index 0000000000..4fd7124bbf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1880.png b/TMessagesProj/src/main/assets/emoji/0_1880.png new file mode 100644 index 0000000000..39b19ec675 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1880.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1881.png b/TMessagesProj/src/main/assets/emoji/0_1881.png new file mode 100644 index 0000000000..7a63a638ca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1881.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1882.png b/TMessagesProj/src/main/assets/emoji/0_1882.png new file mode 100644 index 0000000000..6ce3342339 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1882.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1883.png b/TMessagesProj/src/main/assets/emoji/0_1883.png new file mode 100644 index 0000000000..2f89bc88ef Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1883.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1884.png b/TMessagesProj/src/main/assets/emoji/0_1884.png new file mode 100644 index 0000000000..4607707ebf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1884.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1885.png b/TMessagesProj/src/main/assets/emoji/0_1885.png new file mode 100644 index 0000000000..9667262a06 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1885.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1886.png b/TMessagesProj/src/main/assets/emoji/0_1886.png new file mode 100644 index 0000000000..0e5a9df60a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1886.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1887.png b/TMessagesProj/src/main/assets/emoji/0_1887.png new file mode 100644 index 0000000000..8bc2acf98e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1887.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1888.png b/TMessagesProj/src/main/assets/emoji/0_1888.png new file mode 100644 index 0000000000..fd01f419fa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1888.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1889.png b/TMessagesProj/src/main/assets/emoji/0_1889.png new file mode 100644 index 0000000000..ef0796bb0f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1889.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_189.png b/TMessagesProj/src/main/assets/emoji/0_189.png new file mode 100644 index 0000000000..71554431b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1890.png b/TMessagesProj/src/main/assets/emoji/0_1890.png new file mode 100644 index 0000000000..1e59a32b8d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1890.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1891.png b/TMessagesProj/src/main/assets/emoji/0_1891.png new file mode 100644 index 0000000000..23f188f894 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1891.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1892.png b/TMessagesProj/src/main/assets/emoji/0_1892.png new file mode 100644 index 0000000000..f8519440d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1892.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1893.png b/TMessagesProj/src/main/assets/emoji/0_1893.png new file mode 100644 index 0000000000..1438f28bc8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1893.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1894.png b/TMessagesProj/src/main/assets/emoji/0_1894.png new file mode 100644 index 0000000000..b9eb8a9e3a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1894.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1895.png b/TMessagesProj/src/main/assets/emoji/0_1895.png new file mode 100644 index 0000000000..749c1a4190 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1895.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1896.png b/TMessagesProj/src/main/assets/emoji/0_1896.png new file mode 100644 index 0000000000..f53fe97a38 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1896.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1897.png b/TMessagesProj/src/main/assets/emoji/0_1897.png new file mode 100644 index 0000000000..2ef2a16237 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1897.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1898.png b/TMessagesProj/src/main/assets/emoji/0_1898.png new file mode 100644 index 0000000000..f9db06e577 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1898.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1899.png b/TMessagesProj/src/main/assets/emoji/0_1899.png new file mode 100644 index 0000000000..90940261c4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1899.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_19.png b/TMessagesProj/src/main/assets/emoji/0_19.png new file mode 100644 index 0000000000..f8591ab3b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_190.png b/TMessagesProj/src/main/assets/emoji/0_190.png new file mode 100644 index 0000000000..a549c5af46 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1900.png b/TMessagesProj/src/main/assets/emoji/0_1900.png new file mode 100644 index 0000000000..46b6567720 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1900.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1901.png b/TMessagesProj/src/main/assets/emoji/0_1901.png new file mode 100644 index 0000000000..78bfd62969 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1901.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1902.png b/TMessagesProj/src/main/assets/emoji/0_1902.png new file mode 100644 index 0000000000..c6579dce83 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1902.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1903.png b/TMessagesProj/src/main/assets/emoji/0_1903.png new file mode 100644 index 0000000000..cc7f5ee6b0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1903.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1904.png b/TMessagesProj/src/main/assets/emoji/0_1904.png new file mode 100644 index 0000000000..be1fe14111 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1904.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1905.png b/TMessagesProj/src/main/assets/emoji/0_1905.png new file mode 100644 index 0000000000..c94794c5b5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1905.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1906.png b/TMessagesProj/src/main/assets/emoji/0_1906.png new file mode 100644 index 0000000000..2d7efc2ed4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1906.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1907.png b/TMessagesProj/src/main/assets/emoji/0_1907.png new file mode 100644 index 0000000000..01523e88db Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1907.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1908.png b/TMessagesProj/src/main/assets/emoji/0_1908.png new file mode 100644 index 0000000000..823c46682e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1908.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1909.png b/TMessagesProj/src/main/assets/emoji/0_1909.png new file mode 100644 index 0000000000..691046a642 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1909.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_191.png b/TMessagesProj/src/main/assets/emoji/0_191.png new file mode 100644 index 0000000000..00b7790463 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1910.png b/TMessagesProj/src/main/assets/emoji/0_1910.png new file mode 100644 index 0000000000..2b49251b25 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1910.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1911.png b/TMessagesProj/src/main/assets/emoji/0_1911.png new file mode 100644 index 0000000000..659a9802af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1911.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1912.png b/TMessagesProj/src/main/assets/emoji/0_1912.png new file mode 100644 index 0000000000..9b131acbeb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1912.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1913.png b/TMessagesProj/src/main/assets/emoji/0_1913.png new file mode 100644 index 0000000000..43bc507f8c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1913.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1914.png b/TMessagesProj/src/main/assets/emoji/0_1914.png new file mode 100644 index 0000000000..65bda7de3d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1914.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1915.png b/TMessagesProj/src/main/assets/emoji/0_1915.png new file mode 100644 index 0000000000..dc5fb0b1ec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1915.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1916.png b/TMessagesProj/src/main/assets/emoji/0_1916.png new file mode 100644 index 0000000000..8509e8a7fc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1916.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1917.png b/TMessagesProj/src/main/assets/emoji/0_1917.png new file mode 100644 index 0000000000..2510acf47b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1917.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1918.png b/TMessagesProj/src/main/assets/emoji/0_1918.png new file mode 100644 index 0000000000..cf8c43c7c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1918.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1919.png b/TMessagesProj/src/main/assets/emoji/0_1919.png new file mode 100644 index 0000000000..cf8c43c7c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1919.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_192.png b/TMessagesProj/src/main/assets/emoji/0_192.png new file mode 100644 index 0000000000..6b85dd023f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1920.png b/TMessagesProj/src/main/assets/emoji/0_1920.png new file mode 100644 index 0000000000..4244dd694f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1920.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1921.png b/TMessagesProj/src/main/assets/emoji/0_1921.png new file mode 100644 index 0000000000..4244dd694f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1921.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1922.png b/TMessagesProj/src/main/assets/emoji/0_1922.png new file mode 100644 index 0000000000..4244dd694f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1922.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1923.png b/TMessagesProj/src/main/assets/emoji/0_1923.png new file mode 100644 index 0000000000..cf8c43c7c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1923.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1924.png b/TMessagesProj/src/main/assets/emoji/0_1924.png new file mode 100644 index 0000000000..cf8c43c7c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1924.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1925.png b/TMessagesProj/src/main/assets/emoji/0_1925.png new file mode 100644 index 0000000000..4244dd694f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1925.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1926.png b/TMessagesProj/src/main/assets/emoji/0_1926.png new file mode 100644 index 0000000000..4244dd694f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1926.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1927.png b/TMessagesProj/src/main/assets/emoji/0_1927.png new file mode 100644 index 0000000000..4244dd694f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1927.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1928.png b/TMessagesProj/src/main/assets/emoji/0_1928.png new file mode 100644 index 0000000000..cf8c43c7c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1928.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1929.png b/TMessagesProj/src/main/assets/emoji/0_1929.png new file mode 100644 index 0000000000..cf8c43c7c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1929.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_193.png b/TMessagesProj/src/main/assets/emoji/0_193.png new file mode 100644 index 0000000000..7dc1928626 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1930.png b/TMessagesProj/src/main/assets/emoji/0_1930.png new file mode 100644 index 0000000000..4244dd694f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1930.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1931.png b/TMessagesProj/src/main/assets/emoji/0_1931.png new file mode 100644 index 0000000000..4244dd694f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1931.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1932.png b/TMessagesProj/src/main/assets/emoji/0_1932.png new file mode 100644 index 0000000000..4244dd694f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1932.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1933.png b/TMessagesProj/src/main/assets/emoji/0_1933.png new file mode 100644 index 0000000000..c05822a03e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1933.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1934.png b/TMessagesProj/src/main/assets/emoji/0_1934.png new file mode 100644 index 0000000000..c05822a03e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1934.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1935.png b/TMessagesProj/src/main/assets/emoji/0_1935.png new file mode 100644 index 0000000000..ea9128b0f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1935.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1936.png b/TMessagesProj/src/main/assets/emoji/0_1936.png new file mode 100644 index 0000000000..ea9128b0f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1936.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1937.png b/TMessagesProj/src/main/assets/emoji/0_1937.png new file mode 100644 index 0000000000..ea9128b0f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1937.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1938.png b/TMessagesProj/src/main/assets/emoji/0_1938.png new file mode 100644 index 0000000000..c05822a03e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1938.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1939.png b/TMessagesProj/src/main/assets/emoji/0_1939.png new file mode 100644 index 0000000000..c05822a03e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1939.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_194.png b/TMessagesProj/src/main/assets/emoji/0_194.png new file mode 100644 index 0000000000..c749e37a4e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1940.png b/TMessagesProj/src/main/assets/emoji/0_1940.png new file mode 100644 index 0000000000..ea9128b0f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1940.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1941.png b/TMessagesProj/src/main/assets/emoji/0_1941.png new file mode 100644 index 0000000000..ea9128b0f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1941.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1942.png b/TMessagesProj/src/main/assets/emoji/0_1942.png new file mode 100644 index 0000000000..ea9128b0f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1942.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1943.png b/TMessagesProj/src/main/assets/emoji/0_1943.png new file mode 100644 index 0000000000..81f683a93a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1943.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1944.png b/TMessagesProj/src/main/assets/emoji/0_1944.png new file mode 100644 index 0000000000..c94848e10a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1944.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1945.png b/TMessagesProj/src/main/assets/emoji/0_1945.png new file mode 100644 index 0000000000..7e9099be42 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1945.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1946.png b/TMessagesProj/src/main/assets/emoji/0_1946.png new file mode 100644 index 0000000000..3a098d8dc1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1946.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1947.png b/TMessagesProj/src/main/assets/emoji/0_1947.png new file mode 100644 index 0000000000..bb6f51c71f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1947.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1948.png b/TMessagesProj/src/main/assets/emoji/0_1948.png new file mode 100644 index 0000000000..cff99ac534 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1948.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1949.png b/TMessagesProj/src/main/assets/emoji/0_1949.png new file mode 100644 index 0000000000..9273acdecd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1949.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_195.png b/TMessagesProj/src/main/assets/emoji/0_195.png new file mode 100644 index 0000000000..e9110bfee6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1950.png b/TMessagesProj/src/main/assets/emoji/0_1950.png new file mode 100644 index 0000000000..adf570889b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1950.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1951.png b/TMessagesProj/src/main/assets/emoji/0_1951.png new file mode 100644 index 0000000000..370f83981b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1951.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1952.png b/TMessagesProj/src/main/assets/emoji/0_1952.png new file mode 100644 index 0000000000..80923aa91c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1952.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1953.png b/TMessagesProj/src/main/assets/emoji/0_1953.png new file mode 100644 index 0000000000..9a9b6ffccc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1953.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1954.png b/TMessagesProj/src/main/assets/emoji/0_1954.png new file mode 100644 index 0000000000..7b2c817b82 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1954.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1955.png b/TMessagesProj/src/main/assets/emoji/0_1955.png new file mode 100644 index 0000000000..e9f10d9228 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1955.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1956.png b/TMessagesProj/src/main/assets/emoji/0_1956.png new file mode 100644 index 0000000000..25a86b82f0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1956.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1957.png b/TMessagesProj/src/main/assets/emoji/0_1957.png new file mode 100644 index 0000000000..460027cc07 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1957.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1958.png b/TMessagesProj/src/main/assets/emoji/0_1958.png new file mode 100644 index 0000000000..fc57cf2058 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1958.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1959.png b/TMessagesProj/src/main/assets/emoji/0_1959.png new file mode 100644 index 0000000000..d94c1ff599 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1959.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_196.png b/TMessagesProj/src/main/assets/emoji/0_196.png new file mode 100644 index 0000000000..2eeec9858a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1960.png b/TMessagesProj/src/main/assets/emoji/0_1960.png new file mode 100644 index 0000000000..31e37d1899 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1960.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1961.png b/TMessagesProj/src/main/assets/emoji/0_1961.png new file mode 100644 index 0000000000..b222f64f4d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1961.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1962.png b/TMessagesProj/src/main/assets/emoji/0_1962.png new file mode 100644 index 0000000000..e6ebc851e1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1962.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1963.png b/TMessagesProj/src/main/assets/emoji/0_1963.png new file mode 100644 index 0000000000..db163c954c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1963.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1964.png b/TMessagesProj/src/main/assets/emoji/0_1964.png new file mode 100644 index 0000000000..b3900fe4b4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1964.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1965.png b/TMessagesProj/src/main/assets/emoji/0_1965.png new file mode 100644 index 0000000000..fdd76fc85d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1965.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1966.png b/TMessagesProj/src/main/assets/emoji/0_1966.png new file mode 100644 index 0000000000..449274dc20 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1966.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1967.png b/TMessagesProj/src/main/assets/emoji/0_1967.png new file mode 100644 index 0000000000..79fb206b32 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1967.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1968.png b/TMessagesProj/src/main/assets/emoji/0_1968.png new file mode 100644 index 0000000000..5af3ab3c18 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1968.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1969.png b/TMessagesProj/src/main/assets/emoji/0_1969.png new file mode 100644 index 0000000000..935d2f9cb6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1969.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_197.png b/TMessagesProj/src/main/assets/emoji/0_197.png new file mode 100644 index 0000000000..3151fe8ccf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1970.png b/TMessagesProj/src/main/assets/emoji/0_1970.png new file mode 100644 index 0000000000..2b20471b94 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1970.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1971.png b/TMessagesProj/src/main/assets/emoji/0_1971.png new file mode 100644 index 0000000000..5c32f05178 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1971.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1972.png b/TMessagesProj/src/main/assets/emoji/0_1972.png new file mode 100644 index 0000000000..d3f893c70f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1972.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1973.png b/TMessagesProj/src/main/assets/emoji/0_1973.png new file mode 100644 index 0000000000..b7cb016110 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1973.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1974.png b/TMessagesProj/src/main/assets/emoji/0_1974.png new file mode 100644 index 0000000000..3350d0a99c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1974.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1975.png b/TMessagesProj/src/main/assets/emoji/0_1975.png new file mode 100644 index 0000000000..5008ace3c3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1975.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1976.png b/TMessagesProj/src/main/assets/emoji/0_1976.png new file mode 100644 index 0000000000..bda13e903d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1976.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1977.png b/TMessagesProj/src/main/assets/emoji/0_1977.png new file mode 100644 index 0000000000..50ef521ce8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1977.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1978.png b/TMessagesProj/src/main/assets/emoji/0_1978.png new file mode 100644 index 0000000000..89563fd2fb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1978.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1979.png b/TMessagesProj/src/main/assets/emoji/0_1979.png new file mode 100644 index 0000000000..a6d7fa2309 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1979.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_198.png b/TMessagesProj/src/main/assets/emoji/0_198.png new file mode 100644 index 0000000000..3c9cb513ec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1980.png b/TMessagesProj/src/main/assets/emoji/0_1980.png new file mode 100644 index 0000000000..5d9b0b61a1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1980.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1981.png b/TMessagesProj/src/main/assets/emoji/0_1981.png new file mode 100644 index 0000000000..167569f394 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1981.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1982.png b/TMessagesProj/src/main/assets/emoji/0_1982.png new file mode 100644 index 0000000000..a1cf02c743 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1982.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1983.png b/TMessagesProj/src/main/assets/emoji/0_1983.png new file mode 100644 index 0000000000..978dc45d66 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1983.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1984.png b/TMessagesProj/src/main/assets/emoji/0_1984.png new file mode 100644 index 0000000000..ca7b3ffd08 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1984.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1985.png b/TMessagesProj/src/main/assets/emoji/0_1985.png new file mode 100644 index 0000000000..d4e153a8d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1985.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1986.png b/TMessagesProj/src/main/assets/emoji/0_1986.png new file mode 100644 index 0000000000..8195fc7c97 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1986.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1987.png b/TMessagesProj/src/main/assets/emoji/0_1987.png new file mode 100644 index 0000000000..3136d7f746 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1987.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1988.png b/TMessagesProj/src/main/assets/emoji/0_1988.png new file mode 100644 index 0000000000..7713238670 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1988.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1989.png b/TMessagesProj/src/main/assets/emoji/0_1989.png new file mode 100644 index 0000000000..2c7a278e7e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_1989.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_199.png b/TMessagesProj/src/main/assets/emoji/0_199.png new file mode 100644 index 0000000000..38cf603077 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_2.png b/TMessagesProj/src/main/assets/emoji/0_2.png new file mode 100644 index 0000000000..0e3388790e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_20.png b/TMessagesProj/src/main/assets/emoji/0_20.png new file mode 100644 index 0000000000..adf483e858 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_200.png b/TMessagesProj/src/main/assets/emoji/0_200.png new file mode 100644 index 0000000000..d11d0eb2e2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_201.png b/TMessagesProj/src/main/assets/emoji/0_201.png new file mode 100644 index 0000000000..9ea7188796 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_202.png b/TMessagesProj/src/main/assets/emoji/0_202.png new file mode 100644 index 0000000000..a08363a8af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_203.png b/TMessagesProj/src/main/assets/emoji/0_203.png new file mode 100644 index 0000000000..55b899bf8a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_204.png b/TMessagesProj/src/main/assets/emoji/0_204.png new file mode 100644 index 0000000000..a009efefd1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_205.png b/TMessagesProj/src/main/assets/emoji/0_205.png new file mode 100644 index 0000000000..979ecc9356 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_206.png b/TMessagesProj/src/main/assets/emoji/0_206.png new file mode 100644 index 0000000000..9453997efd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_207.png b/TMessagesProj/src/main/assets/emoji/0_207.png new file mode 100644 index 0000000000..8d09cf591a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_208.png b/TMessagesProj/src/main/assets/emoji/0_208.png new file mode 100644 index 0000000000..bf8aa87682 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_209.png b/TMessagesProj/src/main/assets/emoji/0_209.png new file mode 100644 index 0000000000..411bf9a986 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_21.png b/TMessagesProj/src/main/assets/emoji/0_21.png new file mode 100644 index 0000000000..29d280bc6e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_210.png b/TMessagesProj/src/main/assets/emoji/0_210.png new file mode 100644 index 0000000000..05eab0a29c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_211.png b/TMessagesProj/src/main/assets/emoji/0_211.png new file mode 100644 index 0000000000..f071686841 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_212.png b/TMessagesProj/src/main/assets/emoji/0_212.png new file mode 100644 index 0000000000..96ea718447 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_213.png b/TMessagesProj/src/main/assets/emoji/0_213.png new file mode 100644 index 0000000000..5145c7941b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_214.png b/TMessagesProj/src/main/assets/emoji/0_214.png new file mode 100644 index 0000000000..4989806fe8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_215.png b/TMessagesProj/src/main/assets/emoji/0_215.png new file mode 100644 index 0000000000..38cebe8d94 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_216.png b/TMessagesProj/src/main/assets/emoji/0_216.png new file mode 100644 index 0000000000..c4deb62df5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_217.png b/TMessagesProj/src/main/assets/emoji/0_217.png new file mode 100644 index 0000000000..3ea86bd88f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_218.png b/TMessagesProj/src/main/assets/emoji/0_218.png new file mode 100644 index 0000000000..2e00cd7e54 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_219.png b/TMessagesProj/src/main/assets/emoji/0_219.png new file mode 100644 index 0000000000..f0fb566a98 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_22.png b/TMessagesProj/src/main/assets/emoji/0_22.png new file mode 100644 index 0000000000..2ab9ca7f23 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_220.png b/TMessagesProj/src/main/assets/emoji/0_220.png new file mode 100644 index 0000000000..79fa3c7556 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_221.png b/TMessagesProj/src/main/assets/emoji/0_221.png new file mode 100644 index 0000000000..0be5901161 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_222.png b/TMessagesProj/src/main/assets/emoji/0_222.png new file mode 100644 index 0000000000..7c3c2ac38e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_223.png b/TMessagesProj/src/main/assets/emoji/0_223.png new file mode 100644 index 0000000000..ff8909ec9b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_224.png b/TMessagesProj/src/main/assets/emoji/0_224.png new file mode 100644 index 0000000000..c3544a85e3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_225.png b/TMessagesProj/src/main/assets/emoji/0_225.png new file mode 100644 index 0000000000..63337694ee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_226.png b/TMessagesProj/src/main/assets/emoji/0_226.png new file mode 100644 index 0000000000..d0950b67ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_227.png b/TMessagesProj/src/main/assets/emoji/0_227.png new file mode 100644 index 0000000000..63b1ac7d9d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_228.png b/TMessagesProj/src/main/assets/emoji/0_228.png new file mode 100644 index 0000000000..5e43845df5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_229.png b/TMessagesProj/src/main/assets/emoji/0_229.png new file mode 100644 index 0000000000..956a6a6f0d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_23.png b/TMessagesProj/src/main/assets/emoji/0_23.png new file mode 100644 index 0000000000..3df15a5a2b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_230.png b/TMessagesProj/src/main/assets/emoji/0_230.png new file mode 100644 index 0000000000..46329bef0e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_230.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_231.png b/TMessagesProj/src/main/assets/emoji/0_231.png new file mode 100644 index 0000000000..2bc14678e9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_231.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_232.png b/TMessagesProj/src/main/assets/emoji/0_232.png new file mode 100644 index 0000000000..3067a31ae5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_232.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_233.png b/TMessagesProj/src/main/assets/emoji/0_233.png new file mode 100644 index 0000000000..e514781d5e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_233.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_234.png b/TMessagesProj/src/main/assets/emoji/0_234.png new file mode 100644 index 0000000000..8a00763029 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_234.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_235.png b/TMessagesProj/src/main/assets/emoji/0_235.png new file mode 100644 index 0000000000..cf68c8e605 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_235.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_236.png b/TMessagesProj/src/main/assets/emoji/0_236.png new file mode 100644 index 0000000000..27c77987d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_236.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_237.png b/TMessagesProj/src/main/assets/emoji/0_237.png new file mode 100644 index 0000000000..22b2e3a7d9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_237.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_238.png b/TMessagesProj/src/main/assets/emoji/0_238.png new file mode 100644 index 0000000000..f9a8a936a1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_238.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_239.png b/TMessagesProj/src/main/assets/emoji/0_239.png new file mode 100644 index 0000000000..a8b45faafe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_239.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_24.png b/TMessagesProj/src/main/assets/emoji/0_24.png new file mode 100644 index 0000000000..2a31464bfa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_240.png b/TMessagesProj/src/main/assets/emoji/0_240.png new file mode 100644 index 0000000000..3cd70061d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_240.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_241.png b/TMessagesProj/src/main/assets/emoji/0_241.png new file mode 100644 index 0000000000..512b2e675f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_241.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_242.png b/TMessagesProj/src/main/assets/emoji/0_242.png new file mode 100644 index 0000000000..4d090a9c3c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_242.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_243.png b/TMessagesProj/src/main/assets/emoji/0_243.png new file mode 100644 index 0000000000..11f85a8016 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_243.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_244.png b/TMessagesProj/src/main/assets/emoji/0_244.png new file mode 100644 index 0000000000..63c287f10a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_244.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_245.png b/TMessagesProj/src/main/assets/emoji/0_245.png new file mode 100644 index 0000000000..c437f4231d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_245.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_246.png b/TMessagesProj/src/main/assets/emoji/0_246.png new file mode 100644 index 0000000000..d73d6d0197 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_246.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_247.png b/TMessagesProj/src/main/assets/emoji/0_247.png new file mode 100644 index 0000000000..44e33472bc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_247.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_248.png b/TMessagesProj/src/main/assets/emoji/0_248.png new file mode 100644 index 0000000000..1c5fc2f79a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_248.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_249.png b/TMessagesProj/src/main/assets/emoji/0_249.png new file mode 100644 index 0000000000..4b87666a07 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_249.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_25.png b/TMessagesProj/src/main/assets/emoji/0_25.png new file mode 100644 index 0000000000..cb10fb0a7c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_250.png b/TMessagesProj/src/main/assets/emoji/0_250.png new file mode 100644 index 0000000000..f771c89697 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_250.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_251.png b/TMessagesProj/src/main/assets/emoji/0_251.png new file mode 100644 index 0000000000..a46b69a6d6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_251.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_252.png b/TMessagesProj/src/main/assets/emoji/0_252.png new file mode 100644 index 0000000000..6f6ae682ce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_252.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_253.png b/TMessagesProj/src/main/assets/emoji/0_253.png new file mode 100644 index 0000000000..4afa69b6c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_253.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_254.png b/TMessagesProj/src/main/assets/emoji/0_254.png new file mode 100644 index 0000000000..7d14b60028 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_254.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_255.png b/TMessagesProj/src/main/assets/emoji/0_255.png new file mode 100644 index 0000000000..6fd0043a5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_255.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_256.png b/TMessagesProj/src/main/assets/emoji/0_256.png new file mode 100644 index 0000000000..6be15d9003 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_256.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_257.png b/TMessagesProj/src/main/assets/emoji/0_257.png new file mode 100644 index 0000000000..22c1a3f8f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_257.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_258.png b/TMessagesProj/src/main/assets/emoji/0_258.png new file mode 100644 index 0000000000..122acd8768 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_258.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_259.png b/TMessagesProj/src/main/assets/emoji/0_259.png new file mode 100644 index 0000000000..05411d3388 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_259.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_26.png b/TMessagesProj/src/main/assets/emoji/0_26.png new file mode 100644 index 0000000000..677eb7ba8b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_260.png b/TMessagesProj/src/main/assets/emoji/0_260.png new file mode 100644 index 0000000000..bb0bc6ba92 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_260.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_261.png b/TMessagesProj/src/main/assets/emoji/0_261.png new file mode 100644 index 0000000000..2574f11a04 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_261.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_262.png b/TMessagesProj/src/main/assets/emoji/0_262.png new file mode 100644 index 0000000000..0b7d9a37f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_262.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_263.png b/TMessagesProj/src/main/assets/emoji/0_263.png new file mode 100644 index 0000000000..e970debe48 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_263.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_264.png b/TMessagesProj/src/main/assets/emoji/0_264.png new file mode 100644 index 0000000000..26a34fd542 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_264.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_265.png b/TMessagesProj/src/main/assets/emoji/0_265.png new file mode 100644 index 0000000000..b74e93e929 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_265.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_266.png b/TMessagesProj/src/main/assets/emoji/0_266.png new file mode 100644 index 0000000000..4ae7c50358 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_266.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_267.png b/TMessagesProj/src/main/assets/emoji/0_267.png new file mode 100644 index 0000000000..7115c354e5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_267.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_268.png b/TMessagesProj/src/main/assets/emoji/0_268.png new file mode 100644 index 0000000000..8add3daae7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_268.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_269.png b/TMessagesProj/src/main/assets/emoji/0_269.png new file mode 100644 index 0000000000..fd10ad239c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_269.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_27.png b/TMessagesProj/src/main/assets/emoji/0_27.png new file mode 100644 index 0000000000..02d7139685 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_270.png b/TMessagesProj/src/main/assets/emoji/0_270.png new file mode 100644 index 0000000000..960d8591e6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_270.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_271.png b/TMessagesProj/src/main/assets/emoji/0_271.png new file mode 100644 index 0000000000..8da415cf64 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_271.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_272.png b/TMessagesProj/src/main/assets/emoji/0_272.png new file mode 100644 index 0000000000..fec0f7b7fe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_272.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_273.png b/TMessagesProj/src/main/assets/emoji/0_273.png new file mode 100644 index 0000000000..a515a3eb79 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_273.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_274.png b/TMessagesProj/src/main/assets/emoji/0_274.png new file mode 100644 index 0000000000..03c932ebea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_274.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_275.png b/TMessagesProj/src/main/assets/emoji/0_275.png new file mode 100644 index 0000000000..4f7d201269 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_275.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_276.png b/TMessagesProj/src/main/assets/emoji/0_276.png new file mode 100644 index 0000000000..8561fa6d57 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_276.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_277.png b/TMessagesProj/src/main/assets/emoji/0_277.png new file mode 100644 index 0000000000..194b4a9b6f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_277.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_278.png b/TMessagesProj/src/main/assets/emoji/0_278.png new file mode 100644 index 0000000000..b8218c7f62 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_278.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_279.png b/TMessagesProj/src/main/assets/emoji/0_279.png new file mode 100644 index 0000000000..030b1b30c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_279.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_28.png b/TMessagesProj/src/main/assets/emoji/0_28.png new file mode 100644 index 0000000000..04f0190f54 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_280.png b/TMessagesProj/src/main/assets/emoji/0_280.png new file mode 100644 index 0000000000..9f50cd9234 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_280.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_281.png b/TMessagesProj/src/main/assets/emoji/0_281.png new file mode 100644 index 0000000000..742daf4c3d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_281.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_282.png b/TMessagesProj/src/main/assets/emoji/0_282.png new file mode 100644 index 0000000000..a6f2ef2e3f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_282.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_283.png b/TMessagesProj/src/main/assets/emoji/0_283.png new file mode 100644 index 0000000000..f7b7683ea0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_283.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_284.png b/TMessagesProj/src/main/assets/emoji/0_284.png new file mode 100644 index 0000000000..faf770e331 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_284.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_285.png b/TMessagesProj/src/main/assets/emoji/0_285.png new file mode 100644 index 0000000000..49d3ad4910 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_285.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_286.png b/TMessagesProj/src/main/assets/emoji/0_286.png new file mode 100644 index 0000000000..4dd6ac14a0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_286.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_287.png b/TMessagesProj/src/main/assets/emoji/0_287.png new file mode 100644 index 0000000000..6d7d301849 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_287.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_288.png b/TMessagesProj/src/main/assets/emoji/0_288.png new file mode 100644 index 0000000000..6e16fc532e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_288.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_289.png b/TMessagesProj/src/main/assets/emoji/0_289.png new file mode 100644 index 0000000000..3920cb98b7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_289.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_29.png b/TMessagesProj/src/main/assets/emoji/0_29.png new file mode 100644 index 0000000000..1333654818 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_290.png b/TMessagesProj/src/main/assets/emoji/0_290.png new file mode 100644 index 0000000000..3910ee0fff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_290.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_291.png b/TMessagesProj/src/main/assets/emoji/0_291.png new file mode 100644 index 0000000000..b7bb9390b6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_291.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_292.png b/TMessagesProj/src/main/assets/emoji/0_292.png new file mode 100644 index 0000000000..a9d737e7f1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_292.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_293.png b/TMessagesProj/src/main/assets/emoji/0_293.png new file mode 100644 index 0000000000..87aa72d0d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_293.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_294.png b/TMessagesProj/src/main/assets/emoji/0_294.png new file mode 100644 index 0000000000..eb02cbf4a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_294.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_295.png b/TMessagesProj/src/main/assets/emoji/0_295.png new file mode 100644 index 0000000000..f71a9835c6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_295.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_296.png b/TMessagesProj/src/main/assets/emoji/0_296.png new file mode 100644 index 0000000000..4d6e1fd4fe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_296.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_297.png b/TMessagesProj/src/main/assets/emoji/0_297.png new file mode 100644 index 0000000000..0636d1b8e9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_297.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_298.png b/TMessagesProj/src/main/assets/emoji/0_298.png new file mode 100644 index 0000000000..7b81910a0e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_298.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_299.png b/TMessagesProj/src/main/assets/emoji/0_299.png new file mode 100644 index 0000000000..0a026bb9b7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_299.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_3.png b/TMessagesProj/src/main/assets/emoji/0_3.png new file mode 100644 index 0000000000..99280b5a8f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_30.png b/TMessagesProj/src/main/assets/emoji/0_30.png new file mode 100644 index 0000000000..d7ee004352 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_300.png b/TMessagesProj/src/main/assets/emoji/0_300.png new file mode 100644 index 0000000000..6c20ac3674 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_300.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_301.png b/TMessagesProj/src/main/assets/emoji/0_301.png new file mode 100644 index 0000000000..60f3f57cde Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_301.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_302.png b/TMessagesProj/src/main/assets/emoji/0_302.png new file mode 100644 index 0000000000..95506f174b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_302.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_303.png b/TMessagesProj/src/main/assets/emoji/0_303.png new file mode 100644 index 0000000000..848c586d05 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_303.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_304.png b/TMessagesProj/src/main/assets/emoji/0_304.png new file mode 100644 index 0000000000..33e41d42d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_304.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_305.png b/TMessagesProj/src/main/assets/emoji/0_305.png new file mode 100644 index 0000000000..56f6198ce4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_305.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_306.png b/TMessagesProj/src/main/assets/emoji/0_306.png new file mode 100644 index 0000000000..c09466b3f1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_306.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_307.png b/TMessagesProj/src/main/assets/emoji/0_307.png new file mode 100644 index 0000000000..56e69d8dc9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_307.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_308.png b/TMessagesProj/src/main/assets/emoji/0_308.png new file mode 100644 index 0000000000..10801a6061 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_308.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_309.png b/TMessagesProj/src/main/assets/emoji/0_309.png new file mode 100644 index 0000000000..bb6d523533 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_309.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_31.png b/TMessagesProj/src/main/assets/emoji/0_31.png new file mode 100644 index 0000000000..86052de6aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_310.png b/TMessagesProj/src/main/assets/emoji/0_310.png new file mode 100644 index 0000000000..85a421c806 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_310.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_311.png b/TMessagesProj/src/main/assets/emoji/0_311.png new file mode 100644 index 0000000000..fe5d5ae58e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_311.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_312.png b/TMessagesProj/src/main/assets/emoji/0_312.png new file mode 100644 index 0000000000..248ed1e81a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_312.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_313.png b/TMessagesProj/src/main/assets/emoji/0_313.png new file mode 100644 index 0000000000..a5e627641e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_313.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_314.png b/TMessagesProj/src/main/assets/emoji/0_314.png new file mode 100644 index 0000000000..ebfe457330 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_314.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_315.png b/TMessagesProj/src/main/assets/emoji/0_315.png new file mode 100644 index 0000000000..b64ceb42a9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_315.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_316.png b/TMessagesProj/src/main/assets/emoji/0_316.png new file mode 100644 index 0000000000..9b4d1958c3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_316.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_317.png b/TMessagesProj/src/main/assets/emoji/0_317.png new file mode 100644 index 0000000000..fc34ee29ef Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_317.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_318.png b/TMessagesProj/src/main/assets/emoji/0_318.png new file mode 100644 index 0000000000..61b35dedd7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_318.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_319.png b/TMessagesProj/src/main/assets/emoji/0_319.png new file mode 100644 index 0000000000..e140f03c57 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_319.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_32.png b/TMessagesProj/src/main/assets/emoji/0_32.png new file mode 100644 index 0000000000..328edb3b61 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_320.png b/TMessagesProj/src/main/assets/emoji/0_320.png new file mode 100644 index 0000000000..acc549cf70 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_320.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_321.png b/TMessagesProj/src/main/assets/emoji/0_321.png new file mode 100644 index 0000000000..eb70ba36c5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_321.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_322.png b/TMessagesProj/src/main/assets/emoji/0_322.png new file mode 100644 index 0000000000..44f18f4481 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_322.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_323.png b/TMessagesProj/src/main/assets/emoji/0_323.png new file mode 100644 index 0000000000..3c06bb48be Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_323.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_324.png b/TMessagesProj/src/main/assets/emoji/0_324.png new file mode 100644 index 0000000000..5d5ac0fa86 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_324.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_325.png b/TMessagesProj/src/main/assets/emoji/0_325.png new file mode 100644 index 0000000000..98f4253573 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_325.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_326.png b/TMessagesProj/src/main/assets/emoji/0_326.png new file mode 100644 index 0000000000..c907f6d51e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_326.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_327.png b/TMessagesProj/src/main/assets/emoji/0_327.png new file mode 100644 index 0000000000..43b423bfb1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_327.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_328.png b/TMessagesProj/src/main/assets/emoji/0_328.png new file mode 100644 index 0000000000..6df7749b3e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_328.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_329.png b/TMessagesProj/src/main/assets/emoji/0_329.png new file mode 100644 index 0000000000..1de0623ea0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_329.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_33.png b/TMessagesProj/src/main/assets/emoji/0_33.png new file mode 100644 index 0000000000..b7aa432b65 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_330.png b/TMessagesProj/src/main/assets/emoji/0_330.png new file mode 100644 index 0000000000..3b9fb705c8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_330.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_331.png b/TMessagesProj/src/main/assets/emoji/0_331.png new file mode 100644 index 0000000000..8b27fe8d00 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_331.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_332.png b/TMessagesProj/src/main/assets/emoji/0_332.png new file mode 100644 index 0000000000..d923c66c84 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_332.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_333.png b/TMessagesProj/src/main/assets/emoji/0_333.png new file mode 100644 index 0000000000..9ff7c7a30e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_333.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_334.png b/TMessagesProj/src/main/assets/emoji/0_334.png new file mode 100644 index 0000000000..2cb8909315 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_334.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_335.png b/TMessagesProj/src/main/assets/emoji/0_335.png new file mode 100644 index 0000000000..ec1f3bfb34 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_335.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_336.png b/TMessagesProj/src/main/assets/emoji/0_336.png new file mode 100644 index 0000000000..829039b428 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_336.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_337.png b/TMessagesProj/src/main/assets/emoji/0_337.png new file mode 100644 index 0000000000..06250dbe6f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_337.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_338.png b/TMessagesProj/src/main/assets/emoji/0_338.png new file mode 100644 index 0000000000..8e0560f6b5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_338.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_339.png b/TMessagesProj/src/main/assets/emoji/0_339.png new file mode 100644 index 0000000000..a3cf752881 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_339.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_34.png b/TMessagesProj/src/main/assets/emoji/0_34.png new file mode 100644 index 0000000000..84043c2ebc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_340.png b/TMessagesProj/src/main/assets/emoji/0_340.png new file mode 100644 index 0000000000..e07be80c2a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_340.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_341.png b/TMessagesProj/src/main/assets/emoji/0_341.png new file mode 100644 index 0000000000..cd7f867984 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_341.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_342.png b/TMessagesProj/src/main/assets/emoji/0_342.png new file mode 100644 index 0000000000..411d622105 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_342.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_343.png b/TMessagesProj/src/main/assets/emoji/0_343.png new file mode 100644 index 0000000000..5084c7c7a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_343.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_344.png b/TMessagesProj/src/main/assets/emoji/0_344.png new file mode 100644 index 0000000000..3ed0ed03b1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_344.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_345.png b/TMessagesProj/src/main/assets/emoji/0_345.png new file mode 100644 index 0000000000..071dbc4ac0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_345.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_346.png b/TMessagesProj/src/main/assets/emoji/0_346.png new file mode 100644 index 0000000000..499dc91cf6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_346.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_347.png b/TMessagesProj/src/main/assets/emoji/0_347.png new file mode 100644 index 0000000000..2b273adc30 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_347.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_348.png b/TMessagesProj/src/main/assets/emoji/0_348.png new file mode 100644 index 0000000000..30aaf82fa2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_348.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_349.png b/TMessagesProj/src/main/assets/emoji/0_349.png new file mode 100644 index 0000000000..710d8b4f57 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_349.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_35.png b/TMessagesProj/src/main/assets/emoji/0_35.png new file mode 100644 index 0000000000..6395fb6e7a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_350.png b/TMessagesProj/src/main/assets/emoji/0_350.png new file mode 100644 index 0000000000..7a9803013a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_350.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_351.png b/TMessagesProj/src/main/assets/emoji/0_351.png new file mode 100644 index 0000000000..c2641d5e5d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_351.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_352.png b/TMessagesProj/src/main/assets/emoji/0_352.png new file mode 100644 index 0000000000..4a1b197042 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_352.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_353.png b/TMessagesProj/src/main/assets/emoji/0_353.png new file mode 100644 index 0000000000..d7d617c189 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_353.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_354.png b/TMessagesProj/src/main/assets/emoji/0_354.png new file mode 100644 index 0000000000..18f756ee2f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_354.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_355.png b/TMessagesProj/src/main/assets/emoji/0_355.png new file mode 100644 index 0000000000..6e14a75b5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_355.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_356.png b/TMessagesProj/src/main/assets/emoji/0_356.png new file mode 100644 index 0000000000..0fd14a80f6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_356.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_357.png b/TMessagesProj/src/main/assets/emoji/0_357.png new file mode 100644 index 0000000000..358badf337 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_357.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_358.png b/TMessagesProj/src/main/assets/emoji/0_358.png new file mode 100644 index 0000000000..918ff20ee7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_358.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_359.png b/TMessagesProj/src/main/assets/emoji/0_359.png new file mode 100644 index 0000000000..da064e92cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_359.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_36.png b/TMessagesProj/src/main/assets/emoji/0_36.png new file mode 100644 index 0000000000..b2e320f8bc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_360.png b/TMessagesProj/src/main/assets/emoji/0_360.png new file mode 100644 index 0000000000..5a504b4956 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_360.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_361.png b/TMessagesProj/src/main/assets/emoji/0_361.png new file mode 100644 index 0000000000..ecac495ad5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_361.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_362.png b/TMessagesProj/src/main/assets/emoji/0_362.png new file mode 100644 index 0000000000..e628815142 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_362.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_363.png b/TMessagesProj/src/main/assets/emoji/0_363.png new file mode 100644 index 0000000000..506aa36e96 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_363.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_364.png b/TMessagesProj/src/main/assets/emoji/0_364.png new file mode 100644 index 0000000000..e6d79890b7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_364.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_365.png b/TMessagesProj/src/main/assets/emoji/0_365.png new file mode 100644 index 0000000000..817fb0cd11 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_365.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_366.png b/TMessagesProj/src/main/assets/emoji/0_366.png new file mode 100644 index 0000000000..f6f075b8f9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_366.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_367.png b/TMessagesProj/src/main/assets/emoji/0_367.png new file mode 100644 index 0000000000..0e0f595e94 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_367.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_368.png b/TMessagesProj/src/main/assets/emoji/0_368.png new file mode 100644 index 0000000000..7f8ef5edf5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_368.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_369.png b/TMessagesProj/src/main/assets/emoji/0_369.png new file mode 100644 index 0000000000..77d687ce27 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_369.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_37.png b/TMessagesProj/src/main/assets/emoji/0_37.png new file mode 100644 index 0000000000..a170833915 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_370.png b/TMessagesProj/src/main/assets/emoji/0_370.png new file mode 100644 index 0000000000..106866c4b9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_370.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_371.png b/TMessagesProj/src/main/assets/emoji/0_371.png new file mode 100644 index 0000000000..9d6c1d21da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_371.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_372.png b/TMessagesProj/src/main/assets/emoji/0_372.png new file mode 100644 index 0000000000..ebcfe17b72 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_372.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_373.png b/TMessagesProj/src/main/assets/emoji/0_373.png new file mode 100644 index 0000000000..253d45ae21 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_373.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_374.png b/TMessagesProj/src/main/assets/emoji/0_374.png new file mode 100644 index 0000000000..1c1d253c77 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_374.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_375.png b/TMessagesProj/src/main/assets/emoji/0_375.png new file mode 100644 index 0000000000..61bbdbe6cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_375.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_376.png b/TMessagesProj/src/main/assets/emoji/0_376.png new file mode 100644 index 0000000000..2eb82c8df0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_376.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_377.png b/TMessagesProj/src/main/assets/emoji/0_377.png new file mode 100644 index 0000000000..ef87bd5b81 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_377.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_378.png b/TMessagesProj/src/main/assets/emoji/0_378.png new file mode 100644 index 0000000000..4f32498915 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_378.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_379.png b/TMessagesProj/src/main/assets/emoji/0_379.png new file mode 100644 index 0000000000..e08f399804 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_379.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_38.png b/TMessagesProj/src/main/assets/emoji/0_38.png new file mode 100644 index 0000000000..a620b46f7e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_380.png b/TMessagesProj/src/main/assets/emoji/0_380.png new file mode 100644 index 0000000000..4637b8eb5a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_380.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_381.png b/TMessagesProj/src/main/assets/emoji/0_381.png new file mode 100644 index 0000000000..e17f01c470 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_381.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_382.png b/TMessagesProj/src/main/assets/emoji/0_382.png new file mode 100644 index 0000000000..19ef62a4f8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_382.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_383.png b/TMessagesProj/src/main/assets/emoji/0_383.png new file mode 100644 index 0000000000..bfbc7b433d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_383.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_384.png b/TMessagesProj/src/main/assets/emoji/0_384.png new file mode 100644 index 0000000000..c8da66646d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_384.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_385.png b/TMessagesProj/src/main/assets/emoji/0_385.png new file mode 100644 index 0000000000..655186f1d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_385.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_386.png b/TMessagesProj/src/main/assets/emoji/0_386.png new file mode 100644 index 0000000000..f5fffe2797 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_386.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_387.png b/TMessagesProj/src/main/assets/emoji/0_387.png new file mode 100644 index 0000000000..e5deb442a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_387.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_388.png b/TMessagesProj/src/main/assets/emoji/0_388.png new file mode 100644 index 0000000000..a9a4a86ce6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_388.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_389.png b/TMessagesProj/src/main/assets/emoji/0_389.png new file mode 100644 index 0000000000..91f3e5c0da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_389.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_39.png b/TMessagesProj/src/main/assets/emoji/0_39.png new file mode 100644 index 0000000000..dafcea3b5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_390.png b/TMessagesProj/src/main/assets/emoji/0_390.png new file mode 100644 index 0000000000..44e2be7de3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_390.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_391.png b/TMessagesProj/src/main/assets/emoji/0_391.png new file mode 100644 index 0000000000..b7f6ecf071 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_391.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_392.png b/TMessagesProj/src/main/assets/emoji/0_392.png new file mode 100644 index 0000000000..22a05103ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_392.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_393.png b/TMessagesProj/src/main/assets/emoji/0_393.png new file mode 100644 index 0000000000..b4b0cf3f98 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_393.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_394.png b/TMessagesProj/src/main/assets/emoji/0_394.png new file mode 100644 index 0000000000..04621dfa62 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_394.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_395.png b/TMessagesProj/src/main/assets/emoji/0_395.png new file mode 100644 index 0000000000..46a716103c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_395.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_396.png b/TMessagesProj/src/main/assets/emoji/0_396.png new file mode 100644 index 0000000000..e9e61cf5e1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_396.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_397.png b/TMessagesProj/src/main/assets/emoji/0_397.png new file mode 100644 index 0000000000..65669711ba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_397.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_398.png b/TMessagesProj/src/main/assets/emoji/0_398.png new file mode 100644 index 0000000000..91bcd29c87 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_398.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_399.png b/TMessagesProj/src/main/assets/emoji/0_399.png new file mode 100644 index 0000000000..dfdfdbce5b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_399.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_4.png b/TMessagesProj/src/main/assets/emoji/0_4.png new file mode 100644 index 0000000000..caaeff3a36 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_40.png b/TMessagesProj/src/main/assets/emoji/0_40.png new file mode 100644 index 0000000000..9c14d5272e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_400.png b/TMessagesProj/src/main/assets/emoji/0_400.png new file mode 100644 index 0000000000..f4cafc2373 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_400.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_401.png b/TMessagesProj/src/main/assets/emoji/0_401.png new file mode 100644 index 0000000000..09681deb62 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_401.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_402.png b/TMessagesProj/src/main/assets/emoji/0_402.png new file mode 100644 index 0000000000..dbca9f3365 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_402.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_403.png b/TMessagesProj/src/main/assets/emoji/0_403.png new file mode 100644 index 0000000000..2678c8cee4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_403.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_404.png b/TMessagesProj/src/main/assets/emoji/0_404.png new file mode 100644 index 0000000000..15d822073c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_404.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_405.png b/TMessagesProj/src/main/assets/emoji/0_405.png new file mode 100644 index 0000000000..69269b7efe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_405.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_406.png b/TMessagesProj/src/main/assets/emoji/0_406.png new file mode 100644 index 0000000000..65db09f9d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_406.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_407.png b/TMessagesProj/src/main/assets/emoji/0_407.png new file mode 100644 index 0000000000..8169c30b10 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_407.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_408.png b/TMessagesProj/src/main/assets/emoji/0_408.png new file mode 100644 index 0000000000..6e20eff792 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_408.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_409.png b/TMessagesProj/src/main/assets/emoji/0_409.png new file mode 100644 index 0000000000..df153fcd2e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_409.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_41.png b/TMessagesProj/src/main/assets/emoji/0_41.png new file mode 100644 index 0000000000..7a32e83e28 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_410.png b/TMessagesProj/src/main/assets/emoji/0_410.png new file mode 100644 index 0000000000..f36680a097 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_410.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_411.png b/TMessagesProj/src/main/assets/emoji/0_411.png new file mode 100644 index 0000000000..c9c0ec4f63 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_411.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_412.png b/TMessagesProj/src/main/assets/emoji/0_412.png new file mode 100644 index 0000000000..1d99c36096 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_412.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_413.png b/TMessagesProj/src/main/assets/emoji/0_413.png new file mode 100644 index 0000000000..41cb123842 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_413.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_414.png b/TMessagesProj/src/main/assets/emoji/0_414.png new file mode 100644 index 0000000000..8226b297b7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_414.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_415.png b/TMessagesProj/src/main/assets/emoji/0_415.png new file mode 100644 index 0000000000..8524593d3b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_415.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_416.png b/TMessagesProj/src/main/assets/emoji/0_416.png new file mode 100644 index 0000000000..9be6d92f63 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_416.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_417.png b/TMessagesProj/src/main/assets/emoji/0_417.png new file mode 100644 index 0000000000..fc0d1e2274 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_417.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_418.png b/TMessagesProj/src/main/assets/emoji/0_418.png new file mode 100644 index 0000000000..4b4ecab38f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_418.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_419.png b/TMessagesProj/src/main/assets/emoji/0_419.png new file mode 100644 index 0000000000..d03b16a1e7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_419.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_42.png b/TMessagesProj/src/main/assets/emoji/0_42.png new file mode 100644 index 0000000000..471f40e0aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_420.png b/TMessagesProj/src/main/assets/emoji/0_420.png new file mode 100644 index 0000000000..8e57698a9d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_420.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_421.png b/TMessagesProj/src/main/assets/emoji/0_421.png new file mode 100644 index 0000000000..198bb74c04 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_421.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_422.png b/TMessagesProj/src/main/assets/emoji/0_422.png new file mode 100644 index 0000000000..b579cc2e3e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_422.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_423.png b/TMessagesProj/src/main/assets/emoji/0_423.png new file mode 100644 index 0000000000..deb65aca00 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_423.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_424.png b/TMessagesProj/src/main/assets/emoji/0_424.png new file mode 100644 index 0000000000..79e5a7688a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_424.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_425.png b/TMessagesProj/src/main/assets/emoji/0_425.png new file mode 100644 index 0000000000..7c2030aa05 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_425.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_426.png b/TMessagesProj/src/main/assets/emoji/0_426.png new file mode 100644 index 0000000000..bd50f0ea86 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_426.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_427.png b/TMessagesProj/src/main/assets/emoji/0_427.png new file mode 100644 index 0000000000..72c5ac79bb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_427.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_428.png b/TMessagesProj/src/main/assets/emoji/0_428.png new file mode 100644 index 0000000000..d28de53443 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_428.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_429.png b/TMessagesProj/src/main/assets/emoji/0_429.png new file mode 100644 index 0000000000..7eab5409dc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_429.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_43.png b/TMessagesProj/src/main/assets/emoji/0_43.png new file mode 100644 index 0000000000..13239702ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_430.png b/TMessagesProj/src/main/assets/emoji/0_430.png new file mode 100644 index 0000000000..de64a0ed20 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_430.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_431.png b/TMessagesProj/src/main/assets/emoji/0_431.png new file mode 100644 index 0000000000..099e316d57 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_431.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_432.png b/TMessagesProj/src/main/assets/emoji/0_432.png new file mode 100644 index 0000000000..48c84469f4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_432.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_433.png b/TMessagesProj/src/main/assets/emoji/0_433.png new file mode 100644 index 0000000000..e57cb8f8a0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_433.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_434.png b/TMessagesProj/src/main/assets/emoji/0_434.png new file mode 100644 index 0000000000..4a6970eda3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_434.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_435.png b/TMessagesProj/src/main/assets/emoji/0_435.png new file mode 100644 index 0000000000..7969208319 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_435.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_436.png b/TMessagesProj/src/main/assets/emoji/0_436.png new file mode 100644 index 0000000000..db23515dc6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_436.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_437.png b/TMessagesProj/src/main/assets/emoji/0_437.png new file mode 100644 index 0000000000..65dc2cccdd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_437.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_438.png b/TMessagesProj/src/main/assets/emoji/0_438.png new file mode 100644 index 0000000000..1271821b90 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_438.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_439.png b/TMessagesProj/src/main/assets/emoji/0_439.png new file mode 100644 index 0000000000..8236db0fc3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_439.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_44.png b/TMessagesProj/src/main/assets/emoji/0_44.png new file mode 100644 index 0000000000..89c04addfd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_440.png b/TMessagesProj/src/main/assets/emoji/0_440.png new file mode 100644 index 0000000000..9ae921a9e9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_440.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_441.png b/TMessagesProj/src/main/assets/emoji/0_441.png new file mode 100644 index 0000000000..ffebc0e1d8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_441.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_442.png b/TMessagesProj/src/main/assets/emoji/0_442.png new file mode 100644 index 0000000000..80ca6316f0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_442.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_443.png b/TMessagesProj/src/main/assets/emoji/0_443.png new file mode 100644 index 0000000000..e6c3748601 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_443.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_444.png b/TMessagesProj/src/main/assets/emoji/0_444.png new file mode 100644 index 0000000000..45c14ca375 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_444.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_445.png b/TMessagesProj/src/main/assets/emoji/0_445.png new file mode 100644 index 0000000000..58bbe2a84c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_445.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_446.png b/TMessagesProj/src/main/assets/emoji/0_446.png new file mode 100644 index 0000000000..d3e205b5a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_446.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_447.png b/TMessagesProj/src/main/assets/emoji/0_447.png new file mode 100644 index 0000000000..2007179d4b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_447.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_448.png b/TMessagesProj/src/main/assets/emoji/0_448.png new file mode 100644 index 0000000000..49e805f63b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_448.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_449.png b/TMessagesProj/src/main/assets/emoji/0_449.png new file mode 100644 index 0000000000..5a22a168a4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_449.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_45.png b/TMessagesProj/src/main/assets/emoji/0_45.png new file mode 100644 index 0000000000..557a32b0ba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_450.png b/TMessagesProj/src/main/assets/emoji/0_450.png new file mode 100644 index 0000000000..a7d674fa77 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_450.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_451.png b/TMessagesProj/src/main/assets/emoji/0_451.png new file mode 100644 index 0000000000..a3be36b1c8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_451.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_452.png b/TMessagesProj/src/main/assets/emoji/0_452.png new file mode 100644 index 0000000000..609a521be6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_452.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_453.png b/TMessagesProj/src/main/assets/emoji/0_453.png new file mode 100644 index 0000000000..a95a1394ed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_453.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_454.png b/TMessagesProj/src/main/assets/emoji/0_454.png new file mode 100644 index 0000000000..48caccebd1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_454.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_455.png b/TMessagesProj/src/main/assets/emoji/0_455.png new file mode 100644 index 0000000000..faba532497 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_455.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_456.png b/TMessagesProj/src/main/assets/emoji/0_456.png new file mode 100644 index 0000000000..dceef6dbd3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_456.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_457.png b/TMessagesProj/src/main/assets/emoji/0_457.png new file mode 100644 index 0000000000..799516b7fd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_457.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_458.png b/TMessagesProj/src/main/assets/emoji/0_458.png new file mode 100644 index 0000000000..9a07c525d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_458.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_459.png b/TMessagesProj/src/main/assets/emoji/0_459.png new file mode 100644 index 0000000000..8fa385f55b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_459.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_46.png b/TMessagesProj/src/main/assets/emoji/0_46.png new file mode 100644 index 0000000000..85dac86f3c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_460.png b/TMessagesProj/src/main/assets/emoji/0_460.png new file mode 100644 index 0000000000..68196a838a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_460.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_461.png b/TMessagesProj/src/main/assets/emoji/0_461.png new file mode 100644 index 0000000000..da9c7893b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_461.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_462.png b/TMessagesProj/src/main/assets/emoji/0_462.png new file mode 100644 index 0000000000..b25d2315e8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_462.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_463.png b/TMessagesProj/src/main/assets/emoji/0_463.png new file mode 100644 index 0000000000..43854e839b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_463.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_464.png b/TMessagesProj/src/main/assets/emoji/0_464.png new file mode 100644 index 0000000000..bb73f6bd26 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_464.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_465.png b/TMessagesProj/src/main/assets/emoji/0_465.png new file mode 100644 index 0000000000..1fc002806b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_465.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_466.png b/TMessagesProj/src/main/assets/emoji/0_466.png new file mode 100644 index 0000000000..8480afc3c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_466.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_467.png b/TMessagesProj/src/main/assets/emoji/0_467.png new file mode 100644 index 0000000000..801e5a712a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_467.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_468.png b/TMessagesProj/src/main/assets/emoji/0_468.png new file mode 100644 index 0000000000..b0fedaed50 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_468.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_469.png b/TMessagesProj/src/main/assets/emoji/0_469.png new file mode 100644 index 0000000000..c443ed36a9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_469.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_47.png b/TMessagesProj/src/main/assets/emoji/0_47.png new file mode 100644 index 0000000000..43414a8af7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_470.png b/TMessagesProj/src/main/assets/emoji/0_470.png new file mode 100644 index 0000000000..24f691b7cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_470.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_471.png b/TMessagesProj/src/main/assets/emoji/0_471.png new file mode 100644 index 0000000000..968894e95c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_471.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_472.png b/TMessagesProj/src/main/assets/emoji/0_472.png new file mode 100644 index 0000000000..2f64fa4a9b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_472.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_473.png b/TMessagesProj/src/main/assets/emoji/0_473.png new file mode 100644 index 0000000000..30cc03217c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_473.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_474.png b/TMessagesProj/src/main/assets/emoji/0_474.png new file mode 100644 index 0000000000..e0a8880f36 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_474.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_475.png b/TMessagesProj/src/main/assets/emoji/0_475.png new file mode 100644 index 0000000000..274739ea52 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_475.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_476.png b/TMessagesProj/src/main/assets/emoji/0_476.png new file mode 100644 index 0000000000..51f3bccaeb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_476.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_477.png b/TMessagesProj/src/main/assets/emoji/0_477.png new file mode 100644 index 0000000000..9827ee9438 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_477.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_478.png b/TMessagesProj/src/main/assets/emoji/0_478.png new file mode 100644 index 0000000000..03105a282a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_478.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_479.png b/TMessagesProj/src/main/assets/emoji/0_479.png new file mode 100644 index 0000000000..cffcbd73c4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_479.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_48.png b/TMessagesProj/src/main/assets/emoji/0_48.png new file mode 100644 index 0000000000..fbb23cc725 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_480.png b/TMessagesProj/src/main/assets/emoji/0_480.png new file mode 100644 index 0000000000..5065d361c4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_480.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_481.png b/TMessagesProj/src/main/assets/emoji/0_481.png new file mode 100644 index 0000000000..d85f9ae515 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_481.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_482.png b/TMessagesProj/src/main/assets/emoji/0_482.png new file mode 100644 index 0000000000..c3e5f4d836 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_482.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_483.png b/TMessagesProj/src/main/assets/emoji/0_483.png new file mode 100644 index 0000000000..81760e9cb8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_483.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_484.png b/TMessagesProj/src/main/assets/emoji/0_484.png new file mode 100644 index 0000000000..80af933cca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_484.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_485.png b/TMessagesProj/src/main/assets/emoji/0_485.png new file mode 100644 index 0000000000..703071838a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_485.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_486.png b/TMessagesProj/src/main/assets/emoji/0_486.png new file mode 100644 index 0000000000..d588581de6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_486.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_487.png b/TMessagesProj/src/main/assets/emoji/0_487.png new file mode 100644 index 0000000000..2ce10643cc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_487.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_488.png b/TMessagesProj/src/main/assets/emoji/0_488.png new file mode 100644 index 0000000000..f548a602df Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_488.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_489.png b/TMessagesProj/src/main/assets/emoji/0_489.png new file mode 100644 index 0000000000..988abb02b0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_489.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_49.png b/TMessagesProj/src/main/assets/emoji/0_49.png new file mode 100644 index 0000000000..98f441e734 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_490.png b/TMessagesProj/src/main/assets/emoji/0_490.png new file mode 100644 index 0000000000..8d4a36ac4f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_490.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_491.png b/TMessagesProj/src/main/assets/emoji/0_491.png new file mode 100644 index 0000000000..60dae87fd5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_491.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_492.png b/TMessagesProj/src/main/assets/emoji/0_492.png new file mode 100644 index 0000000000..227b59c072 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_492.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_493.png b/TMessagesProj/src/main/assets/emoji/0_493.png new file mode 100644 index 0000000000..4bb06be8f9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_493.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_494.png b/TMessagesProj/src/main/assets/emoji/0_494.png new file mode 100644 index 0000000000..14cb2fb5fb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_494.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_495.png b/TMessagesProj/src/main/assets/emoji/0_495.png new file mode 100644 index 0000000000..7010b4ee90 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_495.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_496.png b/TMessagesProj/src/main/assets/emoji/0_496.png new file mode 100644 index 0000000000..33d1e15cab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_496.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_497.png b/TMessagesProj/src/main/assets/emoji/0_497.png new file mode 100644 index 0000000000..1f64f09be9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_497.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_498.png b/TMessagesProj/src/main/assets/emoji/0_498.png new file mode 100644 index 0000000000..412bcccd30 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_498.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_499.png b/TMessagesProj/src/main/assets/emoji/0_499.png new file mode 100644 index 0000000000..b287810ef7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_499.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_5.png b/TMessagesProj/src/main/assets/emoji/0_5.png new file mode 100644 index 0000000000..b1248757be Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_50.png b/TMessagesProj/src/main/assets/emoji/0_50.png new file mode 100644 index 0000000000..93f53ab05a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_500.png b/TMessagesProj/src/main/assets/emoji/0_500.png new file mode 100644 index 0000000000..b1d535e255 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_500.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_501.png b/TMessagesProj/src/main/assets/emoji/0_501.png new file mode 100644 index 0000000000..c511cba53d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_501.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_502.png b/TMessagesProj/src/main/assets/emoji/0_502.png new file mode 100644 index 0000000000..78abfe5b6a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_502.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_503.png b/TMessagesProj/src/main/assets/emoji/0_503.png new file mode 100644 index 0000000000..ad27e641d0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_503.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_504.png b/TMessagesProj/src/main/assets/emoji/0_504.png new file mode 100644 index 0000000000..71c3bcae0e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_504.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_505.png b/TMessagesProj/src/main/assets/emoji/0_505.png new file mode 100644 index 0000000000..53c1183faa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_505.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_506.png b/TMessagesProj/src/main/assets/emoji/0_506.png new file mode 100644 index 0000000000..418b276308 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_506.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_507.png b/TMessagesProj/src/main/assets/emoji/0_507.png new file mode 100644 index 0000000000..ce19098386 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_507.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_508.png b/TMessagesProj/src/main/assets/emoji/0_508.png new file mode 100644 index 0000000000..8e6d6fcbb4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_508.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_509.png b/TMessagesProj/src/main/assets/emoji/0_509.png new file mode 100644 index 0000000000..dec0dc4dd6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_509.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_51.png b/TMessagesProj/src/main/assets/emoji/0_51.png new file mode 100644 index 0000000000..cb2c381888 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_510.png b/TMessagesProj/src/main/assets/emoji/0_510.png new file mode 100644 index 0000000000..9ad05d18d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_510.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_511.png b/TMessagesProj/src/main/assets/emoji/0_511.png new file mode 100644 index 0000000000..99f536757e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_511.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_512.png b/TMessagesProj/src/main/assets/emoji/0_512.png new file mode 100644 index 0000000000..3f28e7e18e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_512.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_513.png b/TMessagesProj/src/main/assets/emoji/0_513.png new file mode 100644 index 0000000000..355f0c62c9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_513.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_514.png b/TMessagesProj/src/main/assets/emoji/0_514.png new file mode 100644 index 0000000000..0e7d48fcfd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_514.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_515.png b/TMessagesProj/src/main/assets/emoji/0_515.png new file mode 100644 index 0000000000..d8389e30b4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_515.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_516.png b/TMessagesProj/src/main/assets/emoji/0_516.png new file mode 100644 index 0000000000..55b0ab6cff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_516.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_517.png b/TMessagesProj/src/main/assets/emoji/0_517.png new file mode 100644 index 0000000000..e112779542 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_517.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_518.png b/TMessagesProj/src/main/assets/emoji/0_518.png new file mode 100644 index 0000000000..e125f1b1d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_518.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_519.png b/TMessagesProj/src/main/assets/emoji/0_519.png new file mode 100644 index 0000000000..5f598925db Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_519.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_52.png b/TMessagesProj/src/main/assets/emoji/0_52.png new file mode 100644 index 0000000000..2e14467e53 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_520.png b/TMessagesProj/src/main/assets/emoji/0_520.png new file mode 100644 index 0000000000..4532c22c5d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_520.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_521.png b/TMessagesProj/src/main/assets/emoji/0_521.png new file mode 100644 index 0000000000..4ff121e228 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_521.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_522.png b/TMessagesProj/src/main/assets/emoji/0_522.png new file mode 100644 index 0000000000..e3d63cdaaf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_522.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_523.png b/TMessagesProj/src/main/assets/emoji/0_523.png new file mode 100644 index 0000000000..218c113e1d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_523.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_524.png b/TMessagesProj/src/main/assets/emoji/0_524.png new file mode 100644 index 0000000000..7849a03a74 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_524.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_525.png b/TMessagesProj/src/main/assets/emoji/0_525.png new file mode 100644 index 0000000000..0d970b3173 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_525.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_526.png b/TMessagesProj/src/main/assets/emoji/0_526.png new file mode 100644 index 0000000000..06500320ca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_526.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_527.png b/TMessagesProj/src/main/assets/emoji/0_527.png new file mode 100644 index 0000000000..5512aee6f7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_527.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_528.png b/TMessagesProj/src/main/assets/emoji/0_528.png new file mode 100644 index 0000000000..7d8825de07 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_528.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_529.png b/TMessagesProj/src/main/assets/emoji/0_529.png new file mode 100644 index 0000000000..d0a7647dce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_529.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_53.png b/TMessagesProj/src/main/assets/emoji/0_53.png new file mode 100644 index 0000000000..2a16714a6b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_530.png b/TMessagesProj/src/main/assets/emoji/0_530.png new file mode 100644 index 0000000000..833cac01a9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_530.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_531.png b/TMessagesProj/src/main/assets/emoji/0_531.png new file mode 100644 index 0000000000..84e80c4112 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_531.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_532.png b/TMessagesProj/src/main/assets/emoji/0_532.png new file mode 100644 index 0000000000..5ca788bba5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_532.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_533.png b/TMessagesProj/src/main/assets/emoji/0_533.png new file mode 100644 index 0000000000..84d6bbccf5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_533.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_534.png b/TMessagesProj/src/main/assets/emoji/0_534.png new file mode 100644 index 0000000000..9c008f6503 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_534.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_535.png b/TMessagesProj/src/main/assets/emoji/0_535.png new file mode 100644 index 0000000000..16a237f474 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_535.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_536.png b/TMessagesProj/src/main/assets/emoji/0_536.png new file mode 100644 index 0000000000..2d8abd34d9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_536.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_537.png b/TMessagesProj/src/main/assets/emoji/0_537.png new file mode 100644 index 0000000000..6809ba5fce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_537.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_538.png b/TMessagesProj/src/main/assets/emoji/0_538.png new file mode 100644 index 0000000000..f19aa14f03 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_538.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_539.png b/TMessagesProj/src/main/assets/emoji/0_539.png new file mode 100644 index 0000000000..9b500128d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_539.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_54.png b/TMessagesProj/src/main/assets/emoji/0_54.png new file mode 100644 index 0000000000..2358b1caf1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_540.png b/TMessagesProj/src/main/assets/emoji/0_540.png new file mode 100644 index 0000000000..242ae0d6cc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_540.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_541.png b/TMessagesProj/src/main/assets/emoji/0_541.png new file mode 100644 index 0000000000..f003dca7fb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_541.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_542.png b/TMessagesProj/src/main/assets/emoji/0_542.png new file mode 100644 index 0000000000..c6ea265dd3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_542.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_543.png b/TMessagesProj/src/main/assets/emoji/0_543.png new file mode 100644 index 0000000000..fff61f4679 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_543.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_544.png b/TMessagesProj/src/main/assets/emoji/0_544.png new file mode 100644 index 0000000000..4107ab30b6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_544.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_545.png b/TMessagesProj/src/main/assets/emoji/0_545.png new file mode 100644 index 0000000000..164b996651 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_545.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_546.png b/TMessagesProj/src/main/assets/emoji/0_546.png new file mode 100644 index 0000000000..f9431e0f2d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_546.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_547.png b/TMessagesProj/src/main/assets/emoji/0_547.png new file mode 100644 index 0000000000..46ee48aa75 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_547.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_548.png b/TMessagesProj/src/main/assets/emoji/0_548.png new file mode 100644 index 0000000000..8da71ce56e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_548.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_549.png b/TMessagesProj/src/main/assets/emoji/0_549.png new file mode 100644 index 0000000000..344e531d42 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_549.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_55.png b/TMessagesProj/src/main/assets/emoji/0_55.png new file mode 100644 index 0000000000..92da0ee774 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_550.png b/TMessagesProj/src/main/assets/emoji/0_550.png new file mode 100644 index 0000000000..aae884ebeb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_550.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_551.png b/TMessagesProj/src/main/assets/emoji/0_551.png new file mode 100644 index 0000000000..d637180147 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_551.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_552.png b/TMessagesProj/src/main/assets/emoji/0_552.png new file mode 100644 index 0000000000..7456802f18 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_552.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_553.png b/TMessagesProj/src/main/assets/emoji/0_553.png new file mode 100644 index 0000000000..acbb3e2b8f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_553.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_554.png b/TMessagesProj/src/main/assets/emoji/0_554.png new file mode 100644 index 0000000000..59e7acea88 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_554.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_555.png b/TMessagesProj/src/main/assets/emoji/0_555.png new file mode 100644 index 0000000000..d059acdf55 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_555.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_556.png b/TMessagesProj/src/main/assets/emoji/0_556.png new file mode 100644 index 0000000000..9d56822778 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_556.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_557.png b/TMessagesProj/src/main/assets/emoji/0_557.png new file mode 100644 index 0000000000..2008fc73d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_557.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_558.png b/TMessagesProj/src/main/assets/emoji/0_558.png new file mode 100644 index 0000000000..ba85b21ea6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_558.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_559.png b/TMessagesProj/src/main/assets/emoji/0_559.png new file mode 100644 index 0000000000..8f076ead51 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_559.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_56.png b/TMessagesProj/src/main/assets/emoji/0_56.png new file mode 100644 index 0000000000..ca0ae863eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_560.png b/TMessagesProj/src/main/assets/emoji/0_560.png new file mode 100644 index 0000000000..2ffd22180c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_560.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_561.png b/TMessagesProj/src/main/assets/emoji/0_561.png new file mode 100644 index 0000000000..b1bd3e7ebc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_561.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_562.png b/TMessagesProj/src/main/assets/emoji/0_562.png new file mode 100644 index 0000000000..d573a00d19 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_562.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_563.png b/TMessagesProj/src/main/assets/emoji/0_563.png new file mode 100644 index 0000000000..c7d73b1163 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_563.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_564.png b/TMessagesProj/src/main/assets/emoji/0_564.png new file mode 100644 index 0000000000..ce493c87f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_564.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_565.png b/TMessagesProj/src/main/assets/emoji/0_565.png new file mode 100644 index 0000000000..d6ca7b653a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_565.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_566.png b/TMessagesProj/src/main/assets/emoji/0_566.png new file mode 100644 index 0000000000..c7bb8150a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_566.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_567.png b/TMessagesProj/src/main/assets/emoji/0_567.png new file mode 100644 index 0000000000..c1b268cc81 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_567.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_568.png b/TMessagesProj/src/main/assets/emoji/0_568.png new file mode 100644 index 0000000000..e77c48d45f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_568.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_569.png b/TMessagesProj/src/main/assets/emoji/0_569.png new file mode 100644 index 0000000000..7717f67686 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_569.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_57.png b/TMessagesProj/src/main/assets/emoji/0_57.png new file mode 100644 index 0000000000..4252f03d8b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_570.png b/TMessagesProj/src/main/assets/emoji/0_570.png new file mode 100644 index 0000000000..9c0cf840ce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_570.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_571.png b/TMessagesProj/src/main/assets/emoji/0_571.png new file mode 100644 index 0000000000..63a4ff9f7d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_571.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_572.png b/TMessagesProj/src/main/assets/emoji/0_572.png new file mode 100644 index 0000000000..da382a8381 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_572.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_573.png b/TMessagesProj/src/main/assets/emoji/0_573.png new file mode 100644 index 0000000000..487558dfd7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_573.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_574.png b/TMessagesProj/src/main/assets/emoji/0_574.png new file mode 100644 index 0000000000..8a1cec8305 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_574.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_575.png b/TMessagesProj/src/main/assets/emoji/0_575.png new file mode 100644 index 0000000000..c11b4cffb1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_575.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_576.png b/TMessagesProj/src/main/assets/emoji/0_576.png new file mode 100644 index 0000000000..6d231231cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_576.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_577.png b/TMessagesProj/src/main/assets/emoji/0_577.png new file mode 100644 index 0000000000..52b2b5b468 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_577.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_578.png b/TMessagesProj/src/main/assets/emoji/0_578.png new file mode 100644 index 0000000000..f46df028aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_578.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_579.png b/TMessagesProj/src/main/assets/emoji/0_579.png new file mode 100644 index 0000000000..12754eb136 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_579.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_58.png b/TMessagesProj/src/main/assets/emoji/0_58.png new file mode 100644 index 0000000000..4c0d777aa9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_580.png b/TMessagesProj/src/main/assets/emoji/0_580.png new file mode 100644 index 0000000000..9ec069b394 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_580.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_581.png b/TMessagesProj/src/main/assets/emoji/0_581.png new file mode 100644 index 0000000000..3149ae01f1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_581.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_582.png b/TMessagesProj/src/main/assets/emoji/0_582.png new file mode 100644 index 0000000000..20d0e0c59c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_582.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_583.png b/TMessagesProj/src/main/assets/emoji/0_583.png new file mode 100644 index 0000000000..08759cf4b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_583.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_584.png b/TMessagesProj/src/main/assets/emoji/0_584.png new file mode 100644 index 0000000000..8e3b54dbac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_584.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_585.png b/TMessagesProj/src/main/assets/emoji/0_585.png new file mode 100644 index 0000000000..0b1f32c8d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_585.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_586.png b/TMessagesProj/src/main/assets/emoji/0_586.png new file mode 100644 index 0000000000..86bbfe72fe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_586.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_587.png b/TMessagesProj/src/main/assets/emoji/0_587.png new file mode 100644 index 0000000000..8f09d4d36c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_587.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_588.png b/TMessagesProj/src/main/assets/emoji/0_588.png new file mode 100644 index 0000000000..405d0fd0bd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_588.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_589.png b/TMessagesProj/src/main/assets/emoji/0_589.png new file mode 100644 index 0000000000..cc9139a3dd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_589.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_59.png b/TMessagesProj/src/main/assets/emoji/0_59.png new file mode 100644 index 0000000000..632f495dde Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_590.png b/TMessagesProj/src/main/assets/emoji/0_590.png new file mode 100644 index 0000000000..53c22e184a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_590.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_591.png b/TMessagesProj/src/main/assets/emoji/0_591.png new file mode 100644 index 0000000000..190d1a3ea3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_591.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_592.png b/TMessagesProj/src/main/assets/emoji/0_592.png new file mode 100644 index 0000000000..d24597462b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_592.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_593.png b/TMessagesProj/src/main/assets/emoji/0_593.png new file mode 100644 index 0000000000..b3359b6a51 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_593.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_594.png b/TMessagesProj/src/main/assets/emoji/0_594.png new file mode 100644 index 0000000000..95e83dbecf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_594.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_595.png b/TMessagesProj/src/main/assets/emoji/0_595.png new file mode 100644 index 0000000000..ed99a1d20d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_595.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_596.png b/TMessagesProj/src/main/assets/emoji/0_596.png new file mode 100644 index 0000000000..f82e4fa890 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_596.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_597.png b/TMessagesProj/src/main/assets/emoji/0_597.png new file mode 100644 index 0000000000..e72be6955e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_597.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_598.png b/TMessagesProj/src/main/assets/emoji/0_598.png new file mode 100644 index 0000000000..486d4eb283 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_598.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_599.png b/TMessagesProj/src/main/assets/emoji/0_599.png new file mode 100644 index 0000000000..ccfab32bc5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_599.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_6.png b/TMessagesProj/src/main/assets/emoji/0_6.png new file mode 100644 index 0000000000..033bdca654 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_60.png b/TMessagesProj/src/main/assets/emoji/0_60.png new file mode 100644 index 0000000000..c766ef2f6b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_600.png b/TMessagesProj/src/main/assets/emoji/0_600.png new file mode 100644 index 0000000000..625c2d1d2f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_600.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_601.png b/TMessagesProj/src/main/assets/emoji/0_601.png new file mode 100644 index 0000000000..50a78d342b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_601.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_602.png b/TMessagesProj/src/main/assets/emoji/0_602.png new file mode 100644 index 0000000000..ad00c6a3a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_602.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_603.png b/TMessagesProj/src/main/assets/emoji/0_603.png new file mode 100644 index 0000000000..ca6a2e4865 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_603.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_604.png b/TMessagesProj/src/main/assets/emoji/0_604.png new file mode 100644 index 0000000000..9058cfaa17 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_604.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_605.png b/TMessagesProj/src/main/assets/emoji/0_605.png new file mode 100644 index 0000000000..4c9c3c6bea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_605.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_606.png b/TMessagesProj/src/main/assets/emoji/0_606.png new file mode 100644 index 0000000000..1397955924 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_606.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_607.png b/TMessagesProj/src/main/assets/emoji/0_607.png new file mode 100644 index 0000000000..643b3b3fee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_607.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_608.png b/TMessagesProj/src/main/assets/emoji/0_608.png new file mode 100644 index 0000000000..c32b172121 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_608.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_609.png b/TMessagesProj/src/main/assets/emoji/0_609.png new file mode 100644 index 0000000000..ab231e9505 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_609.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_61.png b/TMessagesProj/src/main/assets/emoji/0_61.png new file mode 100644 index 0000000000..083e45edf6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_610.png b/TMessagesProj/src/main/assets/emoji/0_610.png new file mode 100644 index 0000000000..13d8de7214 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_610.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_611.png b/TMessagesProj/src/main/assets/emoji/0_611.png new file mode 100644 index 0000000000..68ecde4e81 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_611.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_612.png b/TMessagesProj/src/main/assets/emoji/0_612.png new file mode 100644 index 0000000000..fd3d13ff37 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_612.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_613.png b/TMessagesProj/src/main/assets/emoji/0_613.png new file mode 100644 index 0000000000..bf66e2ae85 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_613.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_614.png b/TMessagesProj/src/main/assets/emoji/0_614.png new file mode 100644 index 0000000000..952da49260 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_614.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_615.png b/TMessagesProj/src/main/assets/emoji/0_615.png new file mode 100644 index 0000000000..ada619380d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_615.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_616.png b/TMessagesProj/src/main/assets/emoji/0_616.png new file mode 100644 index 0000000000..1e2bd876c4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_616.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_617.png b/TMessagesProj/src/main/assets/emoji/0_617.png new file mode 100644 index 0000000000..b78877f6c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_617.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_618.png b/TMessagesProj/src/main/assets/emoji/0_618.png new file mode 100644 index 0000000000..39dfc8c2eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_618.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_619.png b/TMessagesProj/src/main/assets/emoji/0_619.png new file mode 100644 index 0000000000..c20e575426 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_619.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_62.png b/TMessagesProj/src/main/assets/emoji/0_62.png new file mode 100644 index 0000000000..145be655ec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_620.png b/TMessagesProj/src/main/assets/emoji/0_620.png new file mode 100644 index 0000000000..8c40a4879f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_620.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_621.png b/TMessagesProj/src/main/assets/emoji/0_621.png new file mode 100644 index 0000000000..b67d0f64d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_621.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_622.png b/TMessagesProj/src/main/assets/emoji/0_622.png new file mode 100644 index 0000000000..21288f10de Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_622.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_623.png b/TMessagesProj/src/main/assets/emoji/0_623.png new file mode 100644 index 0000000000..6136490b13 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_623.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_624.png b/TMessagesProj/src/main/assets/emoji/0_624.png new file mode 100644 index 0000000000..22b1b77354 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_624.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_625.png b/TMessagesProj/src/main/assets/emoji/0_625.png new file mode 100644 index 0000000000..40595daf3c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_625.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_626.png b/TMessagesProj/src/main/assets/emoji/0_626.png new file mode 100644 index 0000000000..9cc1b8d681 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_626.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_627.png b/TMessagesProj/src/main/assets/emoji/0_627.png new file mode 100644 index 0000000000..3886a408cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_627.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_628.png b/TMessagesProj/src/main/assets/emoji/0_628.png new file mode 100644 index 0000000000..d09ea74c33 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_628.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_629.png b/TMessagesProj/src/main/assets/emoji/0_629.png new file mode 100644 index 0000000000..07f419f274 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_629.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_63.png b/TMessagesProj/src/main/assets/emoji/0_63.png new file mode 100644 index 0000000000..e89b7063d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_630.png b/TMessagesProj/src/main/assets/emoji/0_630.png new file mode 100644 index 0000000000..9d8ceaed54 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_630.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_631.png b/TMessagesProj/src/main/assets/emoji/0_631.png new file mode 100644 index 0000000000..51f712f584 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_631.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_632.png b/TMessagesProj/src/main/assets/emoji/0_632.png new file mode 100644 index 0000000000..148b6387ac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_632.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_633.png b/TMessagesProj/src/main/assets/emoji/0_633.png new file mode 100644 index 0000000000..d7ebf4d5a0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_633.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_634.png b/TMessagesProj/src/main/assets/emoji/0_634.png new file mode 100644 index 0000000000..355da089db Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_634.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_635.png b/TMessagesProj/src/main/assets/emoji/0_635.png new file mode 100644 index 0000000000..d6e98446e4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_635.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_636.png b/TMessagesProj/src/main/assets/emoji/0_636.png new file mode 100644 index 0000000000..c85d15ed24 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_636.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_637.png b/TMessagesProj/src/main/assets/emoji/0_637.png new file mode 100644 index 0000000000..fd8733b86c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_637.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_638.png b/TMessagesProj/src/main/assets/emoji/0_638.png new file mode 100644 index 0000000000..90690b4e6b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_638.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_639.png b/TMessagesProj/src/main/assets/emoji/0_639.png new file mode 100644 index 0000000000..c37f3c64ca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_639.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_64.png b/TMessagesProj/src/main/assets/emoji/0_64.png new file mode 100644 index 0000000000..36f29ab7a0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_640.png b/TMessagesProj/src/main/assets/emoji/0_640.png new file mode 100644 index 0000000000..30510d71e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_640.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_641.png b/TMessagesProj/src/main/assets/emoji/0_641.png new file mode 100644 index 0000000000..6d8585054f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_641.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_642.png b/TMessagesProj/src/main/assets/emoji/0_642.png new file mode 100644 index 0000000000..c7b5a4b17d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_642.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_643.png b/TMessagesProj/src/main/assets/emoji/0_643.png new file mode 100644 index 0000000000..561c2b06e7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_643.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_644.png b/TMessagesProj/src/main/assets/emoji/0_644.png new file mode 100644 index 0000000000..fd477aba77 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_644.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_645.png b/TMessagesProj/src/main/assets/emoji/0_645.png new file mode 100644 index 0000000000..61197989ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_645.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_646.png b/TMessagesProj/src/main/assets/emoji/0_646.png new file mode 100644 index 0000000000..59500fb270 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_646.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_647.png b/TMessagesProj/src/main/assets/emoji/0_647.png new file mode 100644 index 0000000000..4fbc236e82 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_647.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_648.png b/TMessagesProj/src/main/assets/emoji/0_648.png new file mode 100644 index 0000000000..9a476c25e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_648.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_649.png b/TMessagesProj/src/main/assets/emoji/0_649.png new file mode 100644 index 0000000000..a5579a35c0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_649.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_65.png b/TMessagesProj/src/main/assets/emoji/0_65.png new file mode 100644 index 0000000000..08478bd42b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_650.png b/TMessagesProj/src/main/assets/emoji/0_650.png new file mode 100644 index 0000000000..052382b12b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_650.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_651.png b/TMessagesProj/src/main/assets/emoji/0_651.png new file mode 100644 index 0000000000..67c94bf811 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_651.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_652.png b/TMessagesProj/src/main/assets/emoji/0_652.png new file mode 100644 index 0000000000..1db49985ca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_652.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_653.png b/TMessagesProj/src/main/assets/emoji/0_653.png new file mode 100644 index 0000000000..bb700427b7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_653.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_654.png b/TMessagesProj/src/main/assets/emoji/0_654.png new file mode 100644 index 0000000000..2640010055 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_654.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_655.png b/TMessagesProj/src/main/assets/emoji/0_655.png new file mode 100644 index 0000000000..64f4b6a9e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_655.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_656.png b/TMessagesProj/src/main/assets/emoji/0_656.png new file mode 100644 index 0000000000..5ac595188e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_656.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_657.png b/TMessagesProj/src/main/assets/emoji/0_657.png new file mode 100644 index 0000000000..329624fcf8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_657.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_658.png b/TMessagesProj/src/main/assets/emoji/0_658.png new file mode 100644 index 0000000000..86bc87aa21 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_658.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_659.png b/TMessagesProj/src/main/assets/emoji/0_659.png new file mode 100644 index 0000000000..cbcd8f294b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_659.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_66.png b/TMessagesProj/src/main/assets/emoji/0_66.png new file mode 100644 index 0000000000..f9dca63cb5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_660.png b/TMessagesProj/src/main/assets/emoji/0_660.png new file mode 100644 index 0000000000..5091df3142 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_660.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_661.png b/TMessagesProj/src/main/assets/emoji/0_661.png new file mode 100644 index 0000000000..70f0f6bb57 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_661.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_662.png b/TMessagesProj/src/main/assets/emoji/0_662.png new file mode 100644 index 0000000000..857b846f6c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_662.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_663.png b/TMessagesProj/src/main/assets/emoji/0_663.png new file mode 100644 index 0000000000..4df11b1075 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_663.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_664.png b/TMessagesProj/src/main/assets/emoji/0_664.png new file mode 100644 index 0000000000..65d8ec7d5f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_664.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_665.png b/TMessagesProj/src/main/assets/emoji/0_665.png new file mode 100644 index 0000000000..09030e0291 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_665.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_666.png b/TMessagesProj/src/main/assets/emoji/0_666.png new file mode 100644 index 0000000000..dd53dbebc6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_666.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_667.png b/TMessagesProj/src/main/assets/emoji/0_667.png new file mode 100644 index 0000000000..28bcb90c78 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_667.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_668.png b/TMessagesProj/src/main/assets/emoji/0_668.png new file mode 100644 index 0000000000..092cf8c3eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_668.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_669.png b/TMessagesProj/src/main/assets/emoji/0_669.png new file mode 100644 index 0000000000..a45112f18d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_669.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_67.png b/TMessagesProj/src/main/assets/emoji/0_67.png new file mode 100644 index 0000000000..780115436e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_670.png b/TMessagesProj/src/main/assets/emoji/0_670.png new file mode 100644 index 0000000000..d00047262f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_670.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_671.png b/TMessagesProj/src/main/assets/emoji/0_671.png new file mode 100644 index 0000000000..d1657bc95b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_671.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_672.png b/TMessagesProj/src/main/assets/emoji/0_672.png new file mode 100644 index 0000000000..ccf9143234 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_672.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_673.png b/TMessagesProj/src/main/assets/emoji/0_673.png new file mode 100644 index 0000000000..9f62e93068 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_673.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_674.png b/TMessagesProj/src/main/assets/emoji/0_674.png new file mode 100644 index 0000000000..2e749e798b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_674.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_675.png b/TMessagesProj/src/main/assets/emoji/0_675.png new file mode 100644 index 0000000000..843514c774 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_675.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_676.png b/TMessagesProj/src/main/assets/emoji/0_676.png new file mode 100644 index 0000000000..eabc6fda1d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_676.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_677.png b/TMessagesProj/src/main/assets/emoji/0_677.png new file mode 100644 index 0000000000..6f482c5536 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_677.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_678.png b/TMessagesProj/src/main/assets/emoji/0_678.png new file mode 100644 index 0000000000..59b3ecf30a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_678.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_679.png b/TMessagesProj/src/main/assets/emoji/0_679.png new file mode 100644 index 0000000000..4ecc681c69 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_679.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_68.png b/TMessagesProj/src/main/assets/emoji/0_68.png new file mode 100644 index 0000000000..6b47943980 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_680.png b/TMessagesProj/src/main/assets/emoji/0_680.png new file mode 100644 index 0000000000..3bece2cd2b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_680.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_681.png b/TMessagesProj/src/main/assets/emoji/0_681.png new file mode 100644 index 0000000000..f53654b204 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_681.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_682.png b/TMessagesProj/src/main/assets/emoji/0_682.png new file mode 100644 index 0000000000..38f33d6062 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_682.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_683.png b/TMessagesProj/src/main/assets/emoji/0_683.png new file mode 100644 index 0000000000..504c170047 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_683.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_684.png b/TMessagesProj/src/main/assets/emoji/0_684.png new file mode 100644 index 0000000000..c64a95012e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_684.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_685.png b/TMessagesProj/src/main/assets/emoji/0_685.png new file mode 100644 index 0000000000..d153f55461 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_685.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_686.png b/TMessagesProj/src/main/assets/emoji/0_686.png new file mode 100644 index 0000000000..651e064a39 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_686.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_687.png b/TMessagesProj/src/main/assets/emoji/0_687.png new file mode 100644 index 0000000000..9feeabae42 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_687.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_688.png b/TMessagesProj/src/main/assets/emoji/0_688.png new file mode 100644 index 0000000000..af47b78b36 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_688.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_689.png b/TMessagesProj/src/main/assets/emoji/0_689.png new file mode 100644 index 0000000000..d9229e103c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_689.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_69.png b/TMessagesProj/src/main/assets/emoji/0_69.png new file mode 100644 index 0000000000..9378937fbe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_690.png b/TMessagesProj/src/main/assets/emoji/0_690.png new file mode 100644 index 0000000000..868d8198f6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_690.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_691.png b/TMessagesProj/src/main/assets/emoji/0_691.png new file mode 100644 index 0000000000..7caf3d4dee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_691.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_692.png b/TMessagesProj/src/main/assets/emoji/0_692.png new file mode 100644 index 0000000000..590355bb31 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_692.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_693.png b/TMessagesProj/src/main/assets/emoji/0_693.png new file mode 100644 index 0000000000..29ea2fc4d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_693.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_694.png b/TMessagesProj/src/main/assets/emoji/0_694.png new file mode 100644 index 0000000000..7de29b6bb2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_694.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_695.png b/TMessagesProj/src/main/assets/emoji/0_695.png new file mode 100644 index 0000000000..e25215c294 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_695.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_696.png b/TMessagesProj/src/main/assets/emoji/0_696.png new file mode 100644 index 0000000000..b7be6b733d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_696.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_697.png b/TMessagesProj/src/main/assets/emoji/0_697.png new file mode 100644 index 0000000000..ba88f04c0d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_697.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_698.png b/TMessagesProj/src/main/assets/emoji/0_698.png new file mode 100644 index 0000000000..cd8e814973 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_698.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_699.png b/TMessagesProj/src/main/assets/emoji/0_699.png new file mode 100644 index 0000000000..55da0140ca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_699.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_7.png b/TMessagesProj/src/main/assets/emoji/0_7.png new file mode 100644 index 0000000000..04a7e33b52 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_70.png b/TMessagesProj/src/main/assets/emoji/0_70.png new file mode 100644 index 0000000000..f2953f9bb8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_700.png b/TMessagesProj/src/main/assets/emoji/0_700.png new file mode 100644 index 0000000000..fcc3fa97af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_700.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_701.png b/TMessagesProj/src/main/assets/emoji/0_701.png new file mode 100644 index 0000000000..ee0611e6a6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_701.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_702.png b/TMessagesProj/src/main/assets/emoji/0_702.png new file mode 100644 index 0000000000..e460598b08 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_702.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_703.png b/TMessagesProj/src/main/assets/emoji/0_703.png new file mode 100644 index 0000000000..d874d88a65 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_703.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_704.png b/TMessagesProj/src/main/assets/emoji/0_704.png new file mode 100644 index 0000000000..98cbc0e9d0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_704.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_705.png b/TMessagesProj/src/main/assets/emoji/0_705.png new file mode 100644 index 0000000000..aa7ea06f8b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_705.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_706.png b/TMessagesProj/src/main/assets/emoji/0_706.png new file mode 100644 index 0000000000..7f82c5634f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_706.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_707.png b/TMessagesProj/src/main/assets/emoji/0_707.png new file mode 100644 index 0000000000..ed622141b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_707.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_708.png b/TMessagesProj/src/main/assets/emoji/0_708.png new file mode 100644 index 0000000000..87d54b8f43 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_708.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_709.png b/TMessagesProj/src/main/assets/emoji/0_709.png new file mode 100644 index 0000000000..ff959b3131 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_709.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_71.png b/TMessagesProj/src/main/assets/emoji/0_71.png new file mode 100644 index 0000000000..0a051f825f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_710.png b/TMessagesProj/src/main/assets/emoji/0_710.png new file mode 100644 index 0000000000..8112d2eff7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_710.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_711.png b/TMessagesProj/src/main/assets/emoji/0_711.png new file mode 100644 index 0000000000..54ebf981f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_711.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_712.png b/TMessagesProj/src/main/assets/emoji/0_712.png new file mode 100644 index 0000000000..46bbe09b74 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_712.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_713.png b/TMessagesProj/src/main/assets/emoji/0_713.png new file mode 100644 index 0000000000..368792289d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_713.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_714.png b/TMessagesProj/src/main/assets/emoji/0_714.png new file mode 100644 index 0000000000..78c431ee5e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_714.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_715.png b/TMessagesProj/src/main/assets/emoji/0_715.png new file mode 100644 index 0000000000..80b55d654e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_715.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_716.png b/TMessagesProj/src/main/assets/emoji/0_716.png new file mode 100644 index 0000000000..088cff1196 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_716.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_717.png b/TMessagesProj/src/main/assets/emoji/0_717.png new file mode 100644 index 0000000000..1c52e08d54 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_717.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_718.png b/TMessagesProj/src/main/assets/emoji/0_718.png new file mode 100644 index 0000000000..4ea7a663d6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_718.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_719.png b/TMessagesProj/src/main/assets/emoji/0_719.png new file mode 100644 index 0000000000..cd36932f2f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_719.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_72.png b/TMessagesProj/src/main/assets/emoji/0_72.png new file mode 100644 index 0000000000..e4c6a1adde Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_720.png b/TMessagesProj/src/main/assets/emoji/0_720.png new file mode 100644 index 0000000000..261689916b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_720.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_721.png b/TMessagesProj/src/main/assets/emoji/0_721.png new file mode 100644 index 0000000000..25e78a188f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_721.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_722.png b/TMessagesProj/src/main/assets/emoji/0_722.png new file mode 100644 index 0000000000..556ca710a6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_722.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_723.png b/TMessagesProj/src/main/assets/emoji/0_723.png new file mode 100644 index 0000000000..11cd82764f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_723.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_724.png b/TMessagesProj/src/main/assets/emoji/0_724.png new file mode 100644 index 0000000000..1a12f75694 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_724.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_725.png b/TMessagesProj/src/main/assets/emoji/0_725.png new file mode 100644 index 0000000000..906ad52ca4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_725.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_726.png b/TMessagesProj/src/main/assets/emoji/0_726.png new file mode 100644 index 0000000000..c3b2cb060a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_726.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_727.png b/TMessagesProj/src/main/assets/emoji/0_727.png new file mode 100644 index 0000000000..7442ee2a93 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_727.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_728.png b/TMessagesProj/src/main/assets/emoji/0_728.png new file mode 100644 index 0000000000..dacedf8c0e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_728.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_729.png b/TMessagesProj/src/main/assets/emoji/0_729.png new file mode 100644 index 0000000000..274eb317c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_729.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_73.png b/TMessagesProj/src/main/assets/emoji/0_73.png new file mode 100644 index 0000000000..2ef045ae6f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_730.png b/TMessagesProj/src/main/assets/emoji/0_730.png new file mode 100644 index 0000000000..8e2c31b07d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_730.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_731.png b/TMessagesProj/src/main/assets/emoji/0_731.png new file mode 100644 index 0000000000..67cee31b56 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_731.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_732.png b/TMessagesProj/src/main/assets/emoji/0_732.png new file mode 100644 index 0000000000..4c5f48e0c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_732.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_733.png b/TMessagesProj/src/main/assets/emoji/0_733.png new file mode 100644 index 0000000000..5a1456f393 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_733.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_734.png b/TMessagesProj/src/main/assets/emoji/0_734.png new file mode 100644 index 0000000000..4acdc77dd8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_734.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_735.png b/TMessagesProj/src/main/assets/emoji/0_735.png new file mode 100644 index 0000000000..c7b8dc3392 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_735.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_736.png b/TMessagesProj/src/main/assets/emoji/0_736.png new file mode 100644 index 0000000000..4c828edba6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_736.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_737.png b/TMessagesProj/src/main/assets/emoji/0_737.png new file mode 100644 index 0000000000..549d2f95b9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_737.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_738.png b/TMessagesProj/src/main/assets/emoji/0_738.png new file mode 100644 index 0000000000..f0e0be7674 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_738.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_739.png b/TMessagesProj/src/main/assets/emoji/0_739.png new file mode 100644 index 0000000000..4e746f2097 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_739.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_74.png b/TMessagesProj/src/main/assets/emoji/0_74.png new file mode 100644 index 0000000000..bae09b7f4f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_740.png b/TMessagesProj/src/main/assets/emoji/0_740.png new file mode 100644 index 0000000000..7862c93ee7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_740.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_741.png b/TMessagesProj/src/main/assets/emoji/0_741.png new file mode 100644 index 0000000000..1a1a830b45 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_741.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_742.png b/TMessagesProj/src/main/assets/emoji/0_742.png new file mode 100644 index 0000000000..d4087a5c44 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_742.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_743.png b/TMessagesProj/src/main/assets/emoji/0_743.png new file mode 100644 index 0000000000..a0277c1dab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_743.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_744.png b/TMessagesProj/src/main/assets/emoji/0_744.png new file mode 100644 index 0000000000..c1511f19f6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_744.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_745.png b/TMessagesProj/src/main/assets/emoji/0_745.png new file mode 100644 index 0000000000..9aa74e0095 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_745.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_746.png b/TMessagesProj/src/main/assets/emoji/0_746.png new file mode 100644 index 0000000000..e12b44e16e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_746.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_747.png b/TMessagesProj/src/main/assets/emoji/0_747.png new file mode 100644 index 0000000000..4384244cbd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_747.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_748.png b/TMessagesProj/src/main/assets/emoji/0_748.png new file mode 100644 index 0000000000..486c30ef95 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_748.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_749.png b/TMessagesProj/src/main/assets/emoji/0_749.png new file mode 100644 index 0000000000..ce4337fa1d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_749.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_75.png b/TMessagesProj/src/main/assets/emoji/0_75.png new file mode 100644 index 0000000000..41c5c9e741 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_750.png b/TMessagesProj/src/main/assets/emoji/0_750.png new file mode 100644 index 0000000000..cf4b8c2f05 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_750.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_751.png b/TMessagesProj/src/main/assets/emoji/0_751.png new file mode 100644 index 0000000000..d142650403 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_751.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_752.png b/TMessagesProj/src/main/assets/emoji/0_752.png new file mode 100644 index 0000000000..c22336a11f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_752.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_753.png b/TMessagesProj/src/main/assets/emoji/0_753.png new file mode 100644 index 0000000000..d2cc2e7748 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_753.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_754.png b/TMessagesProj/src/main/assets/emoji/0_754.png new file mode 100644 index 0000000000..ea68ed45a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_754.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_755.png b/TMessagesProj/src/main/assets/emoji/0_755.png new file mode 100644 index 0000000000..7fb13ebd84 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_755.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_756.png b/TMessagesProj/src/main/assets/emoji/0_756.png new file mode 100644 index 0000000000..16649d9e3f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_756.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_757.png b/TMessagesProj/src/main/assets/emoji/0_757.png new file mode 100644 index 0000000000..ccb0f32ffa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_757.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_758.png b/TMessagesProj/src/main/assets/emoji/0_758.png new file mode 100644 index 0000000000..bee8757c3d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_758.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_759.png b/TMessagesProj/src/main/assets/emoji/0_759.png new file mode 100644 index 0000000000..32bb21b81c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_759.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_76.png b/TMessagesProj/src/main/assets/emoji/0_76.png new file mode 100644 index 0000000000..dcb96e5a5a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_760.png b/TMessagesProj/src/main/assets/emoji/0_760.png new file mode 100644 index 0000000000..c7006fa82b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_760.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_761.png b/TMessagesProj/src/main/assets/emoji/0_761.png new file mode 100644 index 0000000000..1bb90ed176 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_761.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_762.png b/TMessagesProj/src/main/assets/emoji/0_762.png new file mode 100644 index 0000000000..d9fed370ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_762.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_763.png b/TMessagesProj/src/main/assets/emoji/0_763.png new file mode 100644 index 0000000000..3811e115c3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_763.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_764.png b/TMessagesProj/src/main/assets/emoji/0_764.png new file mode 100644 index 0000000000..08b0cee8f7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_764.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_765.png b/TMessagesProj/src/main/assets/emoji/0_765.png new file mode 100644 index 0000000000..1c5363a0b4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_765.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_766.png b/TMessagesProj/src/main/assets/emoji/0_766.png new file mode 100644 index 0000000000..0976190566 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_766.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_767.png b/TMessagesProj/src/main/assets/emoji/0_767.png new file mode 100644 index 0000000000..5e24ab45a1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_767.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_768.png b/TMessagesProj/src/main/assets/emoji/0_768.png new file mode 100644 index 0000000000..0cf8b4b823 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_768.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_769.png b/TMessagesProj/src/main/assets/emoji/0_769.png new file mode 100644 index 0000000000..223f73e7cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_769.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_77.png b/TMessagesProj/src/main/assets/emoji/0_77.png new file mode 100644 index 0000000000..3cd4d16ab6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_770.png b/TMessagesProj/src/main/assets/emoji/0_770.png new file mode 100644 index 0000000000..b5ed483426 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_770.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_771.png b/TMessagesProj/src/main/assets/emoji/0_771.png new file mode 100644 index 0000000000..f17fb69a80 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_771.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_772.png b/TMessagesProj/src/main/assets/emoji/0_772.png new file mode 100644 index 0000000000..a49459aac2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_772.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_773.png b/TMessagesProj/src/main/assets/emoji/0_773.png new file mode 100644 index 0000000000..a76f9d7555 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_773.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_774.png b/TMessagesProj/src/main/assets/emoji/0_774.png new file mode 100644 index 0000000000..2abe3b98dc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_774.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_775.png b/TMessagesProj/src/main/assets/emoji/0_775.png new file mode 100644 index 0000000000..18aaacea47 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_775.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_776.png b/TMessagesProj/src/main/assets/emoji/0_776.png new file mode 100644 index 0000000000..20f8bb2043 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_776.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_777.png b/TMessagesProj/src/main/assets/emoji/0_777.png new file mode 100644 index 0000000000..a2c2cf117d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_777.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_778.png b/TMessagesProj/src/main/assets/emoji/0_778.png new file mode 100644 index 0000000000..6f5682c789 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_778.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_779.png b/TMessagesProj/src/main/assets/emoji/0_779.png new file mode 100644 index 0000000000..7abfdae1ea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_779.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_78.png b/TMessagesProj/src/main/assets/emoji/0_78.png new file mode 100644 index 0000000000..5f7dd3cf5e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_780.png b/TMessagesProj/src/main/assets/emoji/0_780.png new file mode 100644 index 0000000000..a89b853ac3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_780.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_781.png b/TMessagesProj/src/main/assets/emoji/0_781.png new file mode 100644 index 0000000000..6bd8417542 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_781.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_782.png b/TMessagesProj/src/main/assets/emoji/0_782.png new file mode 100644 index 0000000000..a5fa3dd2e1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_782.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_783.png b/TMessagesProj/src/main/assets/emoji/0_783.png new file mode 100644 index 0000000000..7f53f00d58 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_783.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_784.png b/TMessagesProj/src/main/assets/emoji/0_784.png new file mode 100644 index 0000000000..9f60eb58c3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_784.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_785.png b/TMessagesProj/src/main/assets/emoji/0_785.png new file mode 100644 index 0000000000..b068ced6d0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_785.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_786.png b/TMessagesProj/src/main/assets/emoji/0_786.png new file mode 100644 index 0000000000..076961b66a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_786.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_787.png b/TMessagesProj/src/main/assets/emoji/0_787.png new file mode 100644 index 0000000000..c67e6791d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_787.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_788.png b/TMessagesProj/src/main/assets/emoji/0_788.png new file mode 100644 index 0000000000..ef72b0da21 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_788.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_789.png b/TMessagesProj/src/main/assets/emoji/0_789.png new file mode 100644 index 0000000000..d9fa0d7bfa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_789.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_79.png b/TMessagesProj/src/main/assets/emoji/0_79.png new file mode 100644 index 0000000000..02f1b93599 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_790.png b/TMessagesProj/src/main/assets/emoji/0_790.png new file mode 100644 index 0000000000..afa09ca320 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_790.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_791.png b/TMessagesProj/src/main/assets/emoji/0_791.png new file mode 100644 index 0000000000..dadaac31b1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_791.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_792.png b/TMessagesProj/src/main/assets/emoji/0_792.png new file mode 100644 index 0000000000..c08f1201e6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_792.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_793.png b/TMessagesProj/src/main/assets/emoji/0_793.png new file mode 100644 index 0000000000..b00f3af1d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_793.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_794.png b/TMessagesProj/src/main/assets/emoji/0_794.png new file mode 100644 index 0000000000..d76d065956 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_794.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_795.png b/TMessagesProj/src/main/assets/emoji/0_795.png new file mode 100644 index 0000000000..a284ff83c0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_795.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_796.png b/TMessagesProj/src/main/assets/emoji/0_796.png new file mode 100644 index 0000000000..d581b94637 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_796.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_797.png b/TMessagesProj/src/main/assets/emoji/0_797.png new file mode 100644 index 0000000000..f5e24b4995 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_797.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_798.png b/TMessagesProj/src/main/assets/emoji/0_798.png new file mode 100644 index 0000000000..240eb29896 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_798.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_799.png b/TMessagesProj/src/main/assets/emoji/0_799.png new file mode 100644 index 0000000000..ecee680a53 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_799.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_8.png b/TMessagesProj/src/main/assets/emoji/0_8.png new file mode 100644 index 0000000000..2b5dc2c9ba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_80.png b/TMessagesProj/src/main/assets/emoji/0_80.png new file mode 100644 index 0000000000..4382ba9870 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_800.png b/TMessagesProj/src/main/assets/emoji/0_800.png new file mode 100644 index 0000000000..b01819e9d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_800.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_801.png b/TMessagesProj/src/main/assets/emoji/0_801.png new file mode 100644 index 0000000000..b8676d1f6e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_801.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_802.png b/TMessagesProj/src/main/assets/emoji/0_802.png new file mode 100644 index 0000000000..fbe169ef93 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_802.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_803.png b/TMessagesProj/src/main/assets/emoji/0_803.png new file mode 100644 index 0000000000..8b301f5fde Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_803.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_804.png b/TMessagesProj/src/main/assets/emoji/0_804.png new file mode 100644 index 0000000000..5a4fc51fce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_804.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_805.png b/TMessagesProj/src/main/assets/emoji/0_805.png new file mode 100644 index 0000000000..87c703d727 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_805.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_806.png b/TMessagesProj/src/main/assets/emoji/0_806.png new file mode 100644 index 0000000000..336d862f80 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_806.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_807.png b/TMessagesProj/src/main/assets/emoji/0_807.png new file mode 100644 index 0000000000..d01e2a07e5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_807.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_808.png b/TMessagesProj/src/main/assets/emoji/0_808.png new file mode 100644 index 0000000000..7647150502 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_808.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_809.png b/TMessagesProj/src/main/assets/emoji/0_809.png new file mode 100644 index 0000000000..2c5574638e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_809.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_81.png b/TMessagesProj/src/main/assets/emoji/0_81.png new file mode 100644 index 0000000000..d0aa0d9db1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_810.png b/TMessagesProj/src/main/assets/emoji/0_810.png new file mode 100644 index 0000000000..55c22e34e3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_810.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_811.png b/TMessagesProj/src/main/assets/emoji/0_811.png new file mode 100644 index 0000000000..173813a126 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_811.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_812.png b/TMessagesProj/src/main/assets/emoji/0_812.png new file mode 100644 index 0000000000..a4d85a7f05 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_812.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_813.png b/TMessagesProj/src/main/assets/emoji/0_813.png new file mode 100644 index 0000000000..1528bee464 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_813.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_814.png b/TMessagesProj/src/main/assets/emoji/0_814.png new file mode 100644 index 0000000000..260ed8cca1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_814.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_815.png b/TMessagesProj/src/main/assets/emoji/0_815.png new file mode 100644 index 0000000000..47e689ac71 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_815.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_816.png b/TMessagesProj/src/main/assets/emoji/0_816.png new file mode 100644 index 0000000000..d9ef358df2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_816.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_817.png b/TMessagesProj/src/main/assets/emoji/0_817.png new file mode 100644 index 0000000000..5ca4b65fed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_817.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_818.png b/TMessagesProj/src/main/assets/emoji/0_818.png new file mode 100644 index 0000000000..b2bce64bc5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_818.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_819.png b/TMessagesProj/src/main/assets/emoji/0_819.png new file mode 100644 index 0000000000..c365d1fa02 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_819.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_82.png b/TMessagesProj/src/main/assets/emoji/0_82.png new file mode 100644 index 0000000000..825987c2b7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_820.png b/TMessagesProj/src/main/assets/emoji/0_820.png new file mode 100644 index 0000000000..b4ce2fe173 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_820.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_821.png b/TMessagesProj/src/main/assets/emoji/0_821.png new file mode 100644 index 0000000000..2c41e61b66 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_821.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_822.png b/TMessagesProj/src/main/assets/emoji/0_822.png new file mode 100644 index 0000000000..6ff8c49156 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_822.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_823.png b/TMessagesProj/src/main/assets/emoji/0_823.png new file mode 100644 index 0000000000..cca07b4609 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_823.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_824.png b/TMessagesProj/src/main/assets/emoji/0_824.png new file mode 100644 index 0000000000..396ee576c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_824.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_825.png b/TMessagesProj/src/main/assets/emoji/0_825.png new file mode 100644 index 0000000000..68be65184d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_825.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_826.png b/TMessagesProj/src/main/assets/emoji/0_826.png new file mode 100644 index 0000000000..3968f456d9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_826.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_827.png b/TMessagesProj/src/main/assets/emoji/0_827.png new file mode 100644 index 0000000000..60e4ddc412 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_827.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_828.png b/TMessagesProj/src/main/assets/emoji/0_828.png new file mode 100644 index 0000000000..47db129c8f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_828.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_829.png b/TMessagesProj/src/main/assets/emoji/0_829.png new file mode 100644 index 0000000000..8f26acf2ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_829.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_83.png b/TMessagesProj/src/main/assets/emoji/0_83.png new file mode 100644 index 0000000000..d4eef2db5d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_830.png b/TMessagesProj/src/main/assets/emoji/0_830.png new file mode 100644 index 0000000000..c5da98fe75 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_830.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_831.png b/TMessagesProj/src/main/assets/emoji/0_831.png new file mode 100644 index 0000000000..8c759f0ffb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_831.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_832.png b/TMessagesProj/src/main/assets/emoji/0_832.png new file mode 100644 index 0000000000..b9977d42fb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_832.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_833.png b/TMessagesProj/src/main/assets/emoji/0_833.png new file mode 100644 index 0000000000..f75713cbb4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_833.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_834.png b/TMessagesProj/src/main/assets/emoji/0_834.png new file mode 100644 index 0000000000..583d4ff2fb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_834.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_835.png b/TMessagesProj/src/main/assets/emoji/0_835.png new file mode 100644 index 0000000000..a9c0627ccd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_835.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_836.png b/TMessagesProj/src/main/assets/emoji/0_836.png new file mode 100644 index 0000000000..42806170ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_836.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_837.png b/TMessagesProj/src/main/assets/emoji/0_837.png new file mode 100644 index 0000000000..1d65aedd7e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_837.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_838.png b/TMessagesProj/src/main/assets/emoji/0_838.png new file mode 100644 index 0000000000..18b0e4dbed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_838.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_839.png b/TMessagesProj/src/main/assets/emoji/0_839.png new file mode 100644 index 0000000000..f4ebe495d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_839.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_84.png b/TMessagesProj/src/main/assets/emoji/0_84.png new file mode 100644 index 0000000000..248e2e40f0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_840.png b/TMessagesProj/src/main/assets/emoji/0_840.png new file mode 100644 index 0000000000..55e28819a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_840.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_841.png b/TMessagesProj/src/main/assets/emoji/0_841.png new file mode 100644 index 0000000000..03ea4ff370 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_841.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_842.png b/TMessagesProj/src/main/assets/emoji/0_842.png new file mode 100644 index 0000000000..46b3501b55 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_842.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_843.png b/TMessagesProj/src/main/assets/emoji/0_843.png new file mode 100644 index 0000000000..935099e1a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_843.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_844.png b/TMessagesProj/src/main/assets/emoji/0_844.png new file mode 100644 index 0000000000..fec60ea97b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_844.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_845.png b/TMessagesProj/src/main/assets/emoji/0_845.png new file mode 100644 index 0000000000..c317647b25 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_845.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_846.png b/TMessagesProj/src/main/assets/emoji/0_846.png new file mode 100644 index 0000000000..4d60eb5690 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_846.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_847.png b/TMessagesProj/src/main/assets/emoji/0_847.png new file mode 100644 index 0000000000..c0ef9eaed2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_847.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_848.png b/TMessagesProj/src/main/assets/emoji/0_848.png new file mode 100644 index 0000000000..bcb0854319 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_848.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_849.png b/TMessagesProj/src/main/assets/emoji/0_849.png new file mode 100644 index 0000000000..9c464e775a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_849.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_85.png b/TMessagesProj/src/main/assets/emoji/0_85.png new file mode 100644 index 0000000000..e8970ec479 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_850.png b/TMessagesProj/src/main/assets/emoji/0_850.png new file mode 100644 index 0000000000..facd7d65c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_850.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_851.png b/TMessagesProj/src/main/assets/emoji/0_851.png new file mode 100644 index 0000000000..758bd9410c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_851.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_852.png b/TMessagesProj/src/main/assets/emoji/0_852.png new file mode 100644 index 0000000000..5b8367a373 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_852.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_853.png b/TMessagesProj/src/main/assets/emoji/0_853.png new file mode 100644 index 0000000000..d420e23ed0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_853.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_854.png b/TMessagesProj/src/main/assets/emoji/0_854.png new file mode 100644 index 0000000000..eb0aaa9d50 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_854.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_855.png b/TMessagesProj/src/main/assets/emoji/0_855.png new file mode 100644 index 0000000000..9503235813 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_855.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_856.png b/TMessagesProj/src/main/assets/emoji/0_856.png new file mode 100644 index 0000000000..cd9979b89d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_856.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_857.png b/TMessagesProj/src/main/assets/emoji/0_857.png new file mode 100644 index 0000000000..699921c5af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_857.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_858.png b/TMessagesProj/src/main/assets/emoji/0_858.png new file mode 100644 index 0000000000..9592dbf329 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_858.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_859.png b/TMessagesProj/src/main/assets/emoji/0_859.png new file mode 100644 index 0000000000..68fa80d92e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_859.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_86.png b/TMessagesProj/src/main/assets/emoji/0_86.png new file mode 100644 index 0000000000..0bef327d7c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_860.png b/TMessagesProj/src/main/assets/emoji/0_860.png new file mode 100644 index 0000000000..3e41b541cd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_860.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_861.png b/TMessagesProj/src/main/assets/emoji/0_861.png new file mode 100644 index 0000000000..0811e658c3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_861.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_862.png b/TMessagesProj/src/main/assets/emoji/0_862.png new file mode 100644 index 0000000000..fdd45cac43 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_862.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_863.png b/TMessagesProj/src/main/assets/emoji/0_863.png new file mode 100644 index 0000000000..3b73fa2103 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_863.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_864.png b/TMessagesProj/src/main/assets/emoji/0_864.png new file mode 100644 index 0000000000..572ed9af71 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_864.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_865.png b/TMessagesProj/src/main/assets/emoji/0_865.png new file mode 100644 index 0000000000..56e51d49cc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_865.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_866.png b/TMessagesProj/src/main/assets/emoji/0_866.png new file mode 100644 index 0000000000..29fbb1b858 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_866.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_867.png b/TMessagesProj/src/main/assets/emoji/0_867.png new file mode 100644 index 0000000000..eb32818924 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_867.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_868.png b/TMessagesProj/src/main/assets/emoji/0_868.png new file mode 100644 index 0000000000..9ddfa3192f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_868.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_869.png b/TMessagesProj/src/main/assets/emoji/0_869.png new file mode 100644 index 0000000000..a45e22b83c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_869.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_87.png b/TMessagesProj/src/main/assets/emoji/0_87.png new file mode 100644 index 0000000000..ced3b492bd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_870.png b/TMessagesProj/src/main/assets/emoji/0_870.png new file mode 100644 index 0000000000..d20edd6eed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_870.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_871.png b/TMessagesProj/src/main/assets/emoji/0_871.png new file mode 100644 index 0000000000..5c7efaea77 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_871.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_872.png b/TMessagesProj/src/main/assets/emoji/0_872.png new file mode 100644 index 0000000000..4606b20f5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_872.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_873.png b/TMessagesProj/src/main/assets/emoji/0_873.png new file mode 100644 index 0000000000..a25e640d9d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_873.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_874.png b/TMessagesProj/src/main/assets/emoji/0_874.png new file mode 100644 index 0000000000..8a0fda05d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_874.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_875.png b/TMessagesProj/src/main/assets/emoji/0_875.png new file mode 100644 index 0000000000..58b198dd3c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_875.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_876.png b/TMessagesProj/src/main/assets/emoji/0_876.png new file mode 100644 index 0000000000..2e8c077375 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_876.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_877.png b/TMessagesProj/src/main/assets/emoji/0_877.png new file mode 100644 index 0000000000..15c2eda952 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_877.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_878.png b/TMessagesProj/src/main/assets/emoji/0_878.png new file mode 100644 index 0000000000..5f2ec4760d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_878.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_879.png b/TMessagesProj/src/main/assets/emoji/0_879.png new file mode 100644 index 0000000000..303fa8ceec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_879.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_88.png b/TMessagesProj/src/main/assets/emoji/0_88.png new file mode 100644 index 0000000000..82f13d517a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_880.png b/TMessagesProj/src/main/assets/emoji/0_880.png new file mode 100644 index 0000000000..1e44617316 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_880.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_881.png b/TMessagesProj/src/main/assets/emoji/0_881.png new file mode 100644 index 0000000000..a6bdf4e485 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_881.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_882.png b/TMessagesProj/src/main/assets/emoji/0_882.png new file mode 100644 index 0000000000..54dc2cf74e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_882.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_883.png b/TMessagesProj/src/main/assets/emoji/0_883.png new file mode 100644 index 0000000000..6012fcda80 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_883.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_884.png b/TMessagesProj/src/main/assets/emoji/0_884.png new file mode 100644 index 0000000000..ea9bab1773 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_884.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_885.png b/TMessagesProj/src/main/assets/emoji/0_885.png new file mode 100644 index 0000000000..6ff236f6b1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_885.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_886.png b/TMessagesProj/src/main/assets/emoji/0_886.png new file mode 100644 index 0000000000..b56df9cc76 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_886.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_887.png b/TMessagesProj/src/main/assets/emoji/0_887.png new file mode 100644 index 0000000000..e7d2236fc8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_887.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_888.png b/TMessagesProj/src/main/assets/emoji/0_888.png new file mode 100644 index 0000000000..b0ec7d60ab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_888.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_889.png b/TMessagesProj/src/main/assets/emoji/0_889.png new file mode 100644 index 0000000000..1aaf722062 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_889.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_89.png b/TMessagesProj/src/main/assets/emoji/0_89.png new file mode 100644 index 0000000000..8308c7ba0f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_890.png b/TMessagesProj/src/main/assets/emoji/0_890.png new file mode 100644 index 0000000000..2a1a90a9b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_890.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_891.png b/TMessagesProj/src/main/assets/emoji/0_891.png new file mode 100644 index 0000000000..c18050ae7b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_891.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_892.png b/TMessagesProj/src/main/assets/emoji/0_892.png new file mode 100644 index 0000000000..cd3911ebcd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_892.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_893.png b/TMessagesProj/src/main/assets/emoji/0_893.png new file mode 100644 index 0000000000..ad437ce75e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_893.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_894.png b/TMessagesProj/src/main/assets/emoji/0_894.png new file mode 100644 index 0000000000..e9affdb45b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_894.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_895.png b/TMessagesProj/src/main/assets/emoji/0_895.png new file mode 100644 index 0000000000..c81dfe15d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_895.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_896.png b/TMessagesProj/src/main/assets/emoji/0_896.png new file mode 100644 index 0000000000..fde448be3c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_896.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_897.png b/TMessagesProj/src/main/assets/emoji/0_897.png new file mode 100644 index 0000000000..56f2c96e28 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_897.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_898.png b/TMessagesProj/src/main/assets/emoji/0_898.png new file mode 100644 index 0000000000..0cec1e1c69 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_898.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_899.png b/TMessagesProj/src/main/assets/emoji/0_899.png new file mode 100644 index 0000000000..0aaf7af069 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_899.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_9.png b/TMessagesProj/src/main/assets/emoji/0_9.png new file mode 100644 index 0000000000..a599ec0738 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_90.png b/TMessagesProj/src/main/assets/emoji/0_90.png new file mode 100644 index 0000000000..e6a8aebe50 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_900.png b/TMessagesProj/src/main/assets/emoji/0_900.png new file mode 100644 index 0000000000..ecb185a12a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_900.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_901.png b/TMessagesProj/src/main/assets/emoji/0_901.png new file mode 100644 index 0000000000..a77eb1a3da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_901.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_902.png b/TMessagesProj/src/main/assets/emoji/0_902.png new file mode 100644 index 0000000000..9183f9a28b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_902.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_903.png b/TMessagesProj/src/main/assets/emoji/0_903.png new file mode 100644 index 0000000000..4e0508010b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_903.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_904.png b/TMessagesProj/src/main/assets/emoji/0_904.png new file mode 100644 index 0000000000..fcc41520a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_904.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_905.png b/TMessagesProj/src/main/assets/emoji/0_905.png new file mode 100644 index 0000000000..3c09fa052a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_905.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_906.png b/TMessagesProj/src/main/assets/emoji/0_906.png new file mode 100644 index 0000000000..d60833b4a1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_906.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_907.png b/TMessagesProj/src/main/assets/emoji/0_907.png new file mode 100644 index 0000000000..e8d0ea4093 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_907.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_908.png b/TMessagesProj/src/main/assets/emoji/0_908.png new file mode 100644 index 0000000000..7e975a323b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_908.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_909.png b/TMessagesProj/src/main/assets/emoji/0_909.png new file mode 100644 index 0000000000..52843e4ac7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_909.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_91.png b/TMessagesProj/src/main/assets/emoji/0_91.png new file mode 100644 index 0000000000..868b90ca47 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_910.png b/TMessagesProj/src/main/assets/emoji/0_910.png new file mode 100644 index 0000000000..97c17162e4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_910.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_911.png b/TMessagesProj/src/main/assets/emoji/0_911.png new file mode 100644 index 0000000000..bef67e1d9e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_911.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_912.png b/TMessagesProj/src/main/assets/emoji/0_912.png new file mode 100644 index 0000000000..2f5e168975 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_912.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_913.png b/TMessagesProj/src/main/assets/emoji/0_913.png new file mode 100644 index 0000000000..21f6a19565 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_913.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_914.png b/TMessagesProj/src/main/assets/emoji/0_914.png new file mode 100644 index 0000000000..2da882d1d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_914.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_915.png b/TMessagesProj/src/main/assets/emoji/0_915.png new file mode 100644 index 0000000000..0008399a28 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_915.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_916.png b/TMessagesProj/src/main/assets/emoji/0_916.png new file mode 100644 index 0000000000..ec5cee1463 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_916.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_917.png b/TMessagesProj/src/main/assets/emoji/0_917.png new file mode 100644 index 0000000000..8bf9d1a61a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_917.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_918.png b/TMessagesProj/src/main/assets/emoji/0_918.png new file mode 100644 index 0000000000..61b709e537 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_918.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_919.png b/TMessagesProj/src/main/assets/emoji/0_919.png new file mode 100644 index 0000000000..6d8fb59f10 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_919.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_92.png b/TMessagesProj/src/main/assets/emoji/0_92.png new file mode 100644 index 0000000000..8822f4e540 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_920.png b/TMessagesProj/src/main/assets/emoji/0_920.png new file mode 100644 index 0000000000..006dd8c466 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_920.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_921.png b/TMessagesProj/src/main/assets/emoji/0_921.png new file mode 100644 index 0000000000..7f0f3fb2ce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_921.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_922.png b/TMessagesProj/src/main/assets/emoji/0_922.png new file mode 100644 index 0000000000..a58ebecd85 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_922.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_923.png b/TMessagesProj/src/main/assets/emoji/0_923.png new file mode 100644 index 0000000000..398e76c66b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_923.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_924.png b/TMessagesProj/src/main/assets/emoji/0_924.png new file mode 100644 index 0000000000..b84cdfb535 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_924.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_925.png b/TMessagesProj/src/main/assets/emoji/0_925.png new file mode 100644 index 0000000000..3e4ff13b72 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_925.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_926.png b/TMessagesProj/src/main/assets/emoji/0_926.png new file mode 100644 index 0000000000..5bad9537d5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_926.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_927.png b/TMessagesProj/src/main/assets/emoji/0_927.png new file mode 100644 index 0000000000..dfb4f35c4d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_927.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_928.png b/TMessagesProj/src/main/assets/emoji/0_928.png new file mode 100644 index 0000000000..d8f07a3c42 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_928.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_929.png b/TMessagesProj/src/main/assets/emoji/0_929.png new file mode 100644 index 0000000000..17200be8aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_929.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_93.png b/TMessagesProj/src/main/assets/emoji/0_93.png new file mode 100644 index 0000000000..d4c76178f1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_930.png b/TMessagesProj/src/main/assets/emoji/0_930.png new file mode 100644 index 0000000000..a29ad8a15f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_930.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_931.png b/TMessagesProj/src/main/assets/emoji/0_931.png new file mode 100644 index 0000000000..84fb677c37 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_931.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_932.png b/TMessagesProj/src/main/assets/emoji/0_932.png new file mode 100644 index 0000000000..ad0e9b1d0c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_932.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_933.png b/TMessagesProj/src/main/assets/emoji/0_933.png new file mode 100644 index 0000000000..a7a42d96e6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_933.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_934.png b/TMessagesProj/src/main/assets/emoji/0_934.png new file mode 100644 index 0000000000..07cfd70dae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_934.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_935.png b/TMessagesProj/src/main/assets/emoji/0_935.png new file mode 100644 index 0000000000..75dc81b6ca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_935.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_936.png b/TMessagesProj/src/main/assets/emoji/0_936.png new file mode 100644 index 0000000000..b534087803 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_936.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_937.png b/TMessagesProj/src/main/assets/emoji/0_937.png new file mode 100644 index 0000000000..ef8fba95be Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_937.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_938.png b/TMessagesProj/src/main/assets/emoji/0_938.png new file mode 100644 index 0000000000..2bcf809acb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_938.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_939.png b/TMessagesProj/src/main/assets/emoji/0_939.png new file mode 100644 index 0000000000..d1777f1c20 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_939.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_94.png b/TMessagesProj/src/main/assets/emoji/0_94.png new file mode 100644 index 0000000000..d5337fee48 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_940.png b/TMessagesProj/src/main/assets/emoji/0_940.png new file mode 100644 index 0000000000..7def7684f8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_940.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_941.png b/TMessagesProj/src/main/assets/emoji/0_941.png new file mode 100644 index 0000000000..4c5c89e2a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_941.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_942.png b/TMessagesProj/src/main/assets/emoji/0_942.png new file mode 100644 index 0000000000..79fdced1ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_942.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_943.png b/TMessagesProj/src/main/assets/emoji/0_943.png new file mode 100644 index 0000000000..2e3eae9d7d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_943.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_944.png b/TMessagesProj/src/main/assets/emoji/0_944.png new file mode 100644 index 0000000000..65028176ef Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_944.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_945.png b/TMessagesProj/src/main/assets/emoji/0_945.png new file mode 100644 index 0000000000..e6e8ff1014 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_945.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_946.png b/TMessagesProj/src/main/assets/emoji/0_946.png new file mode 100644 index 0000000000..06d87dc676 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_946.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_947.png b/TMessagesProj/src/main/assets/emoji/0_947.png new file mode 100644 index 0000000000..74edff61d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_947.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_948.png b/TMessagesProj/src/main/assets/emoji/0_948.png new file mode 100644 index 0000000000..239ce76971 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_948.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_949.png b/TMessagesProj/src/main/assets/emoji/0_949.png new file mode 100644 index 0000000000..bd488be2ac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_949.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_95.png b/TMessagesProj/src/main/assets/emoji/0_95.png new file mode 100644 index 0000000000..3ac9926fb4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_950.png b/TMessagesProj/src/main/assets/emoji/0_950.png new file mode 100644 index 0000000000..edf2f7c9d9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_950.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_951.png b/TMessagesProj/src/main/assets/emoji/0_951.png new file mode 100644 index 0000000000..8e906aa978 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_951.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_952.png b/TMessagesProj/src/main/assets/emoji/0_952.png new file mode 100644 index 0000000000..c5aff46e3c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_952.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_953.png b/TMessagesProj/src/main/assets/emoji/0_953.png new file mode 100644 index 0000000000..efa1d48ece Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_953.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_954.png b/TMessagesProj/src/main/assets/emoji/0_954.png new file mode 100644 index 0000000000..5400886658 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_954.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_955.png b/TMessagesProj/src/main/assets/emoji/0_955.png new file mode 100644 index 0000000000..b880daca7e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_955.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_956.png b/TMessagesProj/src/main/assets/emoji/0_956.png new file mode 100644 index 0000000000..98bb02c998 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_956.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_957.png b/TMessagesProj/src/main/assets/emoji/0_957.png new file mode 100644 index 0000000000..7dbe4010ed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_957.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_958.png b/TMessagesProj/src/main/assets/emoji/0_958.png new file mode 100644 index 0000000000..32df268623 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_958.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_959.png b/TMessagesProj/src/main/assets/emoji/0_959.png new file mode 100644 index 0000000000..67d45eff35 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_959.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_96.png b/TMessagesProj/src/main/assets/emoji/0_96.png new file mode 100644 index 0000000000..9b6bcbccf3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_960.png b/TMessagesProj/src/main/assets/emoji/0_960.png new file mode 100644 index 0000000000..89ab63d209 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_960.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_961.png b/TMessagesProj/src/main/assets/emoji/0_961.png new file mode 100644 index 0000000000..e4b241ac77 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_961.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_962.png b/TMessagesProj/src/main/assets/emoji/0_962.png new file mode 100644 index 0000000000..5a6e203524 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_962.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_963.png b/TMessagesProj/src/main/assets/emoji/0_963.png new file mode 100644 index 0000000000..052ff9dc16 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_963.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_964.png b/TMessagesProj/src/main/assets/emoji/0_964.png new file mode 100644 index 0000000000..f9d506db09 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_964.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_965.png b/TMessagesProj/src/main/assets/emoji/0_965.png new file mode 100644 index 0000000000..1e8b67130e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_965.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_966.png b/TMessagesProj/src/main/assets/emoji/0_966.png new file mode 100644 index 0000000000..85e1681f9a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_966.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_967.png b/TMessagesProj/src/main/assets/emoji/0_967.png new file mode 100644 index 0000000000..8de7334cad Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_967.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_968.png b/TMessagesProj/src/main/assets/emoji/0_968.png new file mode 100644 index 0000000000..953b0d1a23 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_968.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_969.png b/TMessagesProj/src/main/assets/emoji/0_969.png new file mode 100644 index 0000000000..ab0ba54033 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_969.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_97.png b/TMessagesProj/src/main/assets/emoji/0_97.png new file mode 100644 index 0000000000..ba56b208e9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_970.png b/TMessagesProj/src/main/assets/emoji/0_970.png new file mode 100644 index 0000000000..70f131b7c6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_970.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_971.png b/TMessagesProj/src/main/assets/emoji/0_971.png new file mode 100644 index 0000000000..b2b18e1635 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_971.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_972.png b/TMessagesProj/src/main/assets/emoji/0_972.png new file mode 100644 index 0000000000..3201431b94 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_972.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_973.png b/TMessagesProj/src/main/assets/emoji/0_973.png new file mode 100644 index 0000000000..e0beb78144 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_973.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_974.png b/TMessagesProj/src/main/assets/emoji/0_974.png new file mode 100644 index 0000000000..b6ff90abe2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_974.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_975.png b/TMessagesProj/src/main/assets/emoji/0_975.png new file mode 100644 index 0000000000..0052903615 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_975.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_976.png b/TMessagesProj/src/main/assets/emoji/0_976.png new file mode 100644 index 0000000000..526d67a720 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_976.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_977.png b/TMessagesProj/src/main/assets/emoji/0_977.png new file mode 100644 index 0000000000..1e45994160 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_977.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_978.png b/TMessagesProj/src/main/assets/emoji/0_978.png new file mode 100644 index 0000000000..232577d120 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_978.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_979.png b/TMessagesProj/src/main/assets/emoji/0_979.png new file mode 100644 index 0000000000..bfdb938c61 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_979.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_98.png b/TMessagesProj/src/main/assets/emoji/0_98.png new file mode 100644 index 0000000000..6949113af7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_980.png b/TMessagesProj/src/main/assets/emoji/0_980.png new file mode 100644 index 0000000000..2927f8895b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_980.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_981.png b/TMessagesProj/src/main/assets/emoji/0_981.png new file mode 100644 index 0000000000..fe599a16c0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_981.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_982.png b/TMessagesProj/src/main/assets/emoji/0_982.png new file mode 100644 index 0000000000..d23164f027 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_982.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_983.png b/TMessagesProj/src/main/assets/emoji/0_983.png new file mode 100644 index 0000000000..9e74e79a48 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_983.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_984.png b/TMessagesProj/src/main/assets/emoji/0_984.png new file mode 100644 index 0000000000..8585d5ecf6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_984.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_985.png b/TMessagesProj/src/main/assets/emoji/0_985.png new file mode 100644 index 0000000000..d89481c8aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_985.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_986.png b/TMessagesProj/src/main/assets/emoji/0_986.png new file mode 100644 index 0000000000..d83c5883e4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_986.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_987.png b/TMessagesProj/src/main/assets/emoji/0_987.png new file mode 100644 index 0000000000..621e5fff6c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_987.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_988.png b/TMessagesProj/src/main/assets/emoji/0_988.png new file mode 100644 index 0000000000..0ceca93096 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_988.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_989.png b/TMessagesProj/src/main/assets/emoji/0_989.png new file mode 100644 index 0000000000..1fdda6eaca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_989.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_99.png b/TMessagesProj/src/main/assets/emoji/0_99.png new file mode 100644 index 0000000000..1fe30d11f0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_990.png b/TMessagesProj/src/main/assets/emoji/0_990.png new file mode 100644 index 0000000000..beab913617 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_990.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_991.png b/TMessagesProj/src/main/assets/emoji/0_991.png new file mode 100644 index 0000000000..fc970f55bd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_991.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_992.png b/TMessagesProj/src/main/assets/emoji/0_992.png new file mode 100644 index 0000000000..82befd039c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_992.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_993.png b/TMessagesProj/src/main/assets/emoji/0_993.png new file mode 100644 index 0000000000..6fe4e8d12a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_993.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_994.png b/TMessagesProj/src/main/assets/emoji/0_994.png new file mode 100644 index 0000000000..3839c21e4b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_994.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_995.png b/TMessagesProj/src/main/assets/emoji/0_995.png new file mode 100644 index 0000000000..5cbfad1c6e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_995.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_996.png b/TMessagesProj/src/main/assets/emoji/0_996.png new file mode 100644 index 0000000000..4f02fe709f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_996.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_997.png b/TMessagesProj/src/main/assets/emoji/0_997.png new file mode 100644 index 0000000000..e5d71ae3e1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_997.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_998.png b/TMessagesProj/src/main/assets/emoji/0_998.png new file mode 100644 index 0000000000..0eb806281f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_998.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_999.png b/TMessagesProj/src/main/assets/emoji/0_999.png new file mode 100644 index 0000000000..741ea257e3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/0_999.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_0.png b/TMessagesProj/src/main/assets/emoji/1_0.png new file mode 100644 index 0000000000..c711c45d16 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_1.png b/TMessagesProj/src/main/assets/emoji/1_1.png new file mode 100644 index 0000000000..688ecf2063 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_10.png b/TMessagesProj/src/main/assets/emoji/1_10.png new file mode 100644 index 0000000000..e665925753 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_100.png b/TMessagesProj/src/main/assets/emoji/1_100.png new file mode 100644 index 0000000000..8409453158 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_101.png b/TMessagesProj/src/main/assets/emoji/1_101.png new file mode 100644 index 0000000000..4afdafaff3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_102.png b/TMessagesProj/src/main/assets/emoji/1_102.png new file mode 100644 index 0000000000..f68dc6d87c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_103.png b/TMessagesProj/src/main/assets/emoji/1_103.png new file mode 100644 index 0000000000..75adb21a9f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_104.png b/TMessagesProj/src/main/assets/emoji/1_104.png new file mode 100644 index 0000000000..03f9d73abc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_105.png b/TMessagesProj/src/main/assets/emoji/1_105.png new file mode 100644 index 0000000000..c344a3a65c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_106.png b/TMessagesProj/src/main/assets/emoji/1_106.png new file mode 100644 index 0000000000..6ac35d6a99 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_107.png b/TMessagesProj/src/main/assets/emoji/1_107.png new file mode 100644 index 0000000000..1b54476d6a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_108.png b/TMessagesProj/src/main/assets/emoji/1_108.png new file mode 100644 index 0000000000..9f26a5416e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_109.png b/TMessagesProj/src/main/assets/emoji/1_109.png new file mode 100644 index 0000000000..c710299701 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_11.png b/TMessagesProj/src/main/assets/emoji/1_11.png new file mode 100644 index 0000000000..ef44c376e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_110.png b/TMessagesProj/src/main/assets/emoji/1_110.png new file mode 100644 index 0000000000..27d6e872ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_111.png b/TMessagesProj/src/main/assets/emoji/1_111.png new file mode 100644 index 0000000000..c608342071 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_112.png b/TMessagesProj/src/main/assets/emoji/1_112.png new file mode 100644 index 0000000000..a785d5b4e2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_113.png b/TMessagesProj/src/main/assets/emoji/1_113.png new file mode 100644 index 0000000000..d5ce662cc9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_114.png b/TMessagesProj/src/main/assets/emoji/1_114.png new file mode 100644 index 0000000000..ef1d04e318 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_115.png b/TMessagesProj/src/main/assets/emoji/1_115.png new file mode 100644 index 0000000000..f6a1c5a1f0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_116.png b/TMessagesProj/src/main/assets/emoji/1_116.png new file mode 100644 index 0000000000..c0de88fc6b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_117.png b/TMessagesProj/src/main/assets/emoji/1_117.png new file mode 100644 index 0000000000..78884b6fa5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_118.png b/TMessagesProj/src/main/assets/emoji/1_118.png new file mode 100644 index 0000000000..aa7e0c3036 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_119.png b/TMessagesProj/src/main/assets/emoji/1_119.png new file mode 100644 index 0000000000..0c88efcda4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_12.png b/TMessagesProj/src/main/assets/emoji/1_12.png new file mode 100644 index 0000000000..16f4078976 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_120.png b/TMessagesProj/src/main/assets/emoji/1_120.png new file mode 100644 index 0000000000..46fa4d12e2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_121.png b/TMessagesProj/src/main/assets/emoji/1_121.png new file mode 100644 index 0000000000..22c6eae26c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_122.png b/TMessagesProj/src/main/assets/emoji/1_122.png new file mode 100644 index 0000000000..06cfd3224b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_123.png b/TMessagesProj/src/main/assets/emoji/1_123.png new file mode 100644 index 0000000000..c90e19fa32 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_124.png b/TMessagesProj/src/main/assets/emoji/1_124.png new file mode 100644 index 0000000000..f27cd3b03a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_125.png b/TMessagesProj/src/main/assets/emoji/1_125.png new file mode 100644 index 0000000000..cab0dc78df Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_126.png b/TMessagesProj/src/main/assets/emoji/1_126.png new file mode 100644 index 0000000000..eb323e08e2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_127.png b/TMessagesProj/src/main/assets/emoji/1_127.png new file mode 100644 index 0000000000..a0a40b5a5a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_128.png b/TMessagesProj/src/main/assets/emoji/1_128.png new file mode 100644 index 0000000000..f9507335c3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_129.png b/TMessagesProj/src/main/assets/emoji/1_129.png new file mode 100644 index 0000000000..9ded554934 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_13.png b/TMessagesProj/src/main/assets/emoji/1_13.png new file mode 100644 index 0000000000..bf9b5761e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_130.png b/TMessagesProj/src/main/assets/emoji/1_130.png new file mode 100644 index 0000000000..a0e957118a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_131.png b/TMessagesProj/src/main/assets/emoji/1_131.png new file mode 100644 index 0000000000..b6469b19ca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_132.png b/TMessagesProj/src/main/assets/emoji/1_132.png new file mode 100644 index 0000000000..566065784b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_133.png b/TMessagesProj/src/main/assets/emoji/1_133.png new file mode 100644 index 0000000000..80efb6907e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_134.png b/TMessagesProj/src/main/assets/emoji/1_134.png new file mode 100644 index 0000000000..4fc5d3c0b9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_135.png b/TMessagesProj/src/main/assets/emoji/1_135.png new file mode 100644 index 0000000000..09028b8a3d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_136.png b/TMessagesProj/src/main/assets/emoji/1_136.png new file mode 100644 index 0000000000..731f6915ab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_137.png b/TMessagesProj/src/main/assets/emoji/1_137.png new file mode 100644 index 0000000000..fca58e9ba5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_138.png b/TMessagesProj/src/main/assets/emoji/1_138.png new file mode 100644 index 0000000000..dd28c209dc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_139.png b/TMessagesProj/src/main/assets/emoji/1_139.png new file mode 100644 index 0000000000..e1ed9359aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_14.png b/TMessagesProj/src/main/assets/emoji/1_14.png new file mode 100644 index 0000000000..f8fffe762d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_140.png b/TMessagesProj/src/main/assets/emoji/1_140.png new file mode 100644 index 0000000000..47748374b0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_141.png b/TMessagesProj/src/main/assets/emoji/1_141.png new file mode 100644 index 0000000000..9eb0de9022 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_142.png b/TMessagesProj/src/main/assets/emoji/1_142.png new file mode 100644 index 0000000000..60f2dede56 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_143.png b/TMessagesProj/src/main/assets/emoji/1_143.png new file mode 100644 index 0000000000..aa6d75b8c3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_144.png b/TMessagesProj/src/main/assets/emoji/1_144.png new file mode 100644 index 0000000000..712139595d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_145.png b/TMessagesProj/src/main/assets/emoji/1_145.png new file mode 100644 index 0000000000..d3c8249134 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_146.png b/TMessagesProj/src/main/assets/emoji/1_146.png new file mode 100644 index 0000000000..87d3ab1da5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_147.png b/TMessagesProj/src/main/assets/emoji/1_147.png new file mode 100644 index 0000000000..956162c128 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_148.png b/TMessagesProj/src/main/assets/emoji/1_148.png new file mode 100644 index 0000000000..e44bfb2a3c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_149.png b/TMessagesProj/src/main/assets/emoji/1_149.png new file mode 100644 index 0000000000..74293a844a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_15.png b/TMessagesProj/src/main/assets/emoji/1_15.png new file mode 100644 index 0000000000..ec34a28bd2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_150.png b/TMessagesProj/src/main/assets/emoji/1_150.png new file mode 100644 index 0000000000..ad18f6b6bb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_151.png b/TMessagesProj/src/main/assets/emoji/1_151.png new file mode 100644 index 0000000000..0d875745d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_152.png b/TMessagesProj/src/main/assets/emoji/1_152.png new file mode 100644 index 0000000000..5bbf709395 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_153.png b/TMessagesProj/src/main/assets/emoji/1_153.png new file mode 100644 index 0000000000..0db3d9bbf3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_154.png b/TMessagesProj/src/main/assets/emoji/1_154.png new file mode 100644 index 0000000000..8a1be1b42d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_155.png b/TMessagesProj/src/main/assets/emoji/1_155.png new file mode 100644 index 0000000000..2fe30ec806 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_156.png b/TMessagesProj/src/main/assets/emoji/1_156.png new file mode 100644 index 0000000000..9b5dcb1110 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_157.png b/TMessagesProj/src/main/assets/emoji/1_157.png new file mode 100644 index 0000000000..0e11841e9b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_158.png b/TMessagesProj/src/main/assets/emoji/1_158.png new file mode 100644 index 0000000000..16273bae86 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_159.png b/TMessagesProj/src/main/assets/emoji/1_159.png new file mode 100644 index 0000000000..c9f604bb19 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_16.png b/TMessagesProj/src/main/assets/emoji/1_16.png new file mode 100644 index 0000000000..2a5673e4a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_160.png b/TMessagesProj/src/main/assets/emoji/1_160.png new file mode 100644 index 0000000000..83a7d05fcb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_161.png b/TMessagesProj/src/main/assets/emoji/1_161.png new file mode 100644 index 0000000000..0891e1b048 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_162.png b/TMessagesProj/src/main/assets/emoji/1_162.png new file mode 100644 index 0000000000..fd13bf7e1a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_163.png b/TMessagesProj/src/main/assets/emoji/1_163.png new file mode 100644 index 0000000000..ec1750cc9e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_164.png b/TMessagesProj/src/main/assets/emoji/1_164.png new file mode 100644 index 0000000000..f35509eceb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_165.png b/TMessagesProj/src/main/assets/emoji/1_165.png new file mode 100644 index 0000000000..6f485c9899 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_166.png b/TMessagesProj/src/main/assets/emoji/1_166.png new file mode 100644 index 0000000000..6ed18a05c7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_167.png b/TMessagesProj/src/main/assets/emoji/1_167.png new file mode 100644 index 0000000000..00e1002bc8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_168.png b/TMessagesProj/src/main/assets/emoji/1_168.png new file mode 100644 index 0000000000..fbf0feca1f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_169.png b/TMessagesProj/src/main/assets/emoji/1_169.png new file mode 100644 index 0000000000..2148ef1981 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_17.png b/TMessagesProj/src/main/assets/emoji/1_17.png new file mode 100644 index 0000000000..2a3159abc2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_170.png b/TMessagesProj/src/main/assets/emoji/1_170.png new file mode 100644 index 0000000000..6a8e53af83 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_171.png b/TMessagesProj/src/main/assets/emoji/1_171.png new file mode 100644 index 0000000000..29ec5c484e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_172.png b/TMessagesProj/src/main/assets/emoji/1_172.png new file mode 100644 index 0000000000..04bcf30ae5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_173.png b/TMessagesProj/src/main/assets/emoji/1_173.png new file mode 100644 index 0000000000..d0ac3ee297 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_174.png b/TMessagesProj/src/main/assets/emoji/1_174.png new file mode 100644 index 0000000000..e52a39bed5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_175.png b/TMessagesProj/src/main/assets/emoji/1_175.png new file mode 100644 index 0000000000..59dedfc7a9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_176.png b/TMessagesProj/src/main/assets/emoji/1_176.png new file mode 100644 index 0000000000..6ac0154ece Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_177.png b/TMessagesProj/src/main/assets/emoji/1_177.png new file mode 100644 index 0000000000..08c8a5af70 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_178.png b/TMessagesProj/src/main/assets/emoji/1_178.png new file mode 100644 index 0000000000..29833e3931 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_179.png b/TMessagesProj/src/main/assets/emoji/1_179.png new file mode 100644 index 0000000000..63ccd9a0f7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_18.png b/TMessagesProj/src/main/assets/emoji/1_18.png new file mode 100644 index 0000000000..1260a9ef24 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_180.png b/TMessagesProj/src/main/assets/emoji/1_180.png new file mode 100644 index 0000000000..0e9e861726 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_181.png b/TMessagesProj/src/main/assets/emoji/1_181.png new file mode 100644 index 0000000000..94380e0f65 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_182.png b/TMessagesProj/src/main/assets/emoji/1_182.png new file mode 100644 index 0000000000..e2f0825180 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_183.png b/TMessagesProj/src/main/assets/emoji/1_183.png new file mode 100644 index 0000000000..30eaca683a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_184.png b/TMessagesProj/src/main/assets/emoji/1_184.png new file mode 100644 index 0000000000..55507eb737 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_185.png b/TMessagesProj/src/main/assets/emoji/1_185.png new file mode 100644 index 0000000000..cd08f575a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_186.png b/TMessagesProj/src/main/assets/emoji/1_186.png new file mode 100644 index 0000000000..ab06d1b3c5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_187.png b/TMessagesProj/src/main/assets/emoji/1_187.png new file mode 100644 index 0000000000..5fe72aa179 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_188.png b/TMessagesProj/src/main/assets/emoji/1_188.png new file mode 100644 index 0000000000..a4017c2cc2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_189.png b/TMessagesProj/src/main/assets/emoji/1_189.png new file mode 100644 index 0000000000..fcc7713b44 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_19.png b/TMessagesProj/src/main/assets/emoji/1_19.png new file mode 100644 index 0000000000..4d1d3ba55a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_190.png b/TMessagesProj/src/main/assets/emoji/1_190.png new file mode 100644 index 0000000000..1d79127341 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_191.png b/TMessagesProj/src/main/assets/emoji/1_191.png new file mode 100644 index 0000000000..97aea5a25a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_192.png b/TMessagesProj/src/main/assets/emoji/1_192.png new file mode 100644 index 0000000000..25dca9d003 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_193.png b/TMessagesProj/src/main/assets/emoji/1_193.png new file mode 100644 index 0000000000..d2de806d9a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_194.png b/TMessagesProj/src/main/assets/emoji/1_194.png new file mode 100644 index 0000000000..b6fc163f5a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_195.png b/TMessagesProj/src/main/assets/emoji/1_195.png new file mode 100644 index 0000000000..701d28a1c0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_196.png b/TMessagesProj/src/main/assets/emoji/1_196.png new file mode 100644 index 0000000000..53f901342e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_197.png b/TMessagesProj/src/main/assets/emoji/1_197.png new file mode 100644 index 0000000000..12e0eac418 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_198.png b/TMessagesProj/src/main/assets/emoji/1_198.png new file mode 100644 index 0000000000..e27add41ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_199.png b/TMessagesProj/src/main/assets/emoji/1_199.png new file mode 100644 index 0000000000..4f7bf02a37 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_2.png b/TMessagesProj/src/main/assets/emoji/1_2.png new file mode 100644 index 0000000000..96f46f87b1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_20.png b/TMessagesProj/src/main/assets/emoji/1_20.png new file mode 100644 index 0000000000..4e7ebcccd9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_200.png b/TMessagesProj/src/main/assets/emoji/1_200.png new file mode 100644 index 0000000000..908d71e621 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_201.png b/TMessagesProj/src/main/assets/emoji/1_201.png new file mode 100644 index 0000000000..46c55de644 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_202.png b/TMessagesProj/src/main/assets/emoji/1_202.png new file mode 100644 index 0000000000..839817fe55 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_203.png b/TMessagesProj/src/main/assets/emoji/1_203.png new file mode 100644 index 0000000000..559857e2cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_204.png b/TMessagesProj/src/main/assets/emoji/1_204.png new file mode 100644 index 0000000000..ac6a5ab3fa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_205.png b/TMessagesProj/src/main/assets/emoji/1_205.png new file mode 100644 index 0000000000..68c5c98d2b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_206.png b/TMessagesProj/src/main/assets/emoji/1_206.png new file mode 100644 index 0000000000..acf0cee6ba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_207.png b/TMessagesProj/src/main/assets/emoji/1_207.png new file mode 100644 index 0000000000..8ebb65bd98 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_208.png b/TMessagesProj/src/main/assets/emoji/1_208.png new file mode 100644 index 0000000000..2eccd455af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_209.png b/TMessagesProj/src/main/assets/emoji/1_209.png new file mode 100644 index 0000000000..be72e94b0c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_21.png b/TMessagesProj/src/main/assets/emoji/1_21.png new file mode 100644 index 0000000000..aae9d2810b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_210.png b/TMessagesProj/src/main/assets/emoji/1_210.png new file mode 100644 index 0000000000..8c5b0a134a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_211.png b/TMessagesProj/src/main/assets/emoji/1_211.png new file mode 100644 index 0000000000..a3654b1f8e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_212.png b/TMessagesProj/src/main/assets/emoji/1_212.png new file mode 100644 index 0000000000..daee9f6d0f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_22.png b/TMessagesProj/src/main/assets/emoji/1_22.png new file mode 100644 index 0000000000..b21ce62c45 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_23.png b/TMessagesProj/src/main/assets/emoji/1_23.png new file mode 100644 index 0000000000..6a656776ef Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_24.png b/TMessagesProj/src/main/assets/emoji/1_24.png new file mode 100644 index 0000000000..8e3a8d0866 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_25.png b/TMessagesProj/src/main/assets/emoji/1_25.png new file mode 100644 index 0000000000..2f9af96347 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_26.png b/TMessagesProj/src/main/assets/emoji/1_26.png new file mode 100644 index 0000000000..119404ade9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_27.png b/TMessagesProj/src/main/assets/emoji/1_27.png new file mode 100644 index 0000000000..7731d4c0b0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_28.png b/TMessagesProj/src/main/assets/emoji/1_28.png new file mode 100644 index 0000000000..651a1a5340 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_29.png b/TMessagesProj/src/main/assets/emoji/1_29.png new file mode 100644 index 0000000000..5c0f888c21 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_3.png b/TMessagesProj/src/main/assets/emoji/1_3.png new file mode 100644 index 0000000000..e62f8a2aff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_30.png b/TMessagesProj/src/main/assets/emoji/1_30.png new file mode 100644 index 0000000000..880fd451f0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_31.png b/TMessagesProj/src/main/assets/emoji/1_31.png new file mode 100644 index 0000000000..a562e468a4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_32.png b/TMessagesProj/src/main/assets/emoji/1_32.png new file mode 100644 index 0000000000..315e394da3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_33.png b/TMessagesProj/src/main/assets/emoji/1_33.png new file mode 100644 index 0000000000..e4b131d230 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_34.png b/TMessagesProj/src/main/assets/emoji/1_34.png new file mode 100644 index 0000000000..d534d22919 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_35.png b/TMessagesProj/src/main/assets/emoji/1_35.png new file mode 100644 index 0000000000..05b22f9358 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_36.png b/TMessagesProj/src/main/assets/emoji/1_36.png new file mode 100644 index 0000000000..fff2102d60 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_37.png b/TMessagesProj/src/main/assets/emoji/1_37.png new file mode 100644 index 0000000000..3d0ddf7bf1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_38.png b/TMessagesProj/src/main/assets/emoji/1_38.png new file mode 100644 index 0000000000..b05596eccb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_39.png b/TMessagesProj/src/main/assets/emoji/1_39.png new file mode 100644 index 0000000000..3a510b0cbc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_4.png b/TMessagesProj/src/main/assets/emoji/1_4.png new file mode 100644 index 0000000000..3804bba296 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_40.png b/TMessagesProj/src/main/assets/emoji/1_40.png new file mode 100644 index 0000000000..2ccf7bd636 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_41.png b/TMessagesProj/src/main/assets/emoji/1_41.png new file mode 100644 index 0000000000..a70761a5c7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_42.png b/TMessagesProj/src/main/assets/emoji/1_42.png new file mode 100644 index 0000000000..ecc52d85ab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_43.png b/TMessagesProj/src/main/assets/emoji/1_43.png new file mode 100644 index 0000000000..5eb25ee974 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_44.png b/TMessagesProj/src/main/assets/emoji/1_44.png new file mode 100644 index 0000000000..05030a7307 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_45.png b/TMessagesProj/src/main/assets/emoji/1_45.png new file mode 100644 index 0000000000..2d8e5cb5e1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_46.png b/TMessagesProj/src/main/assets/emoji/1_46.png new file mode 100644 index 0000000000..ecdb442ec5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_47.png b/TMessagesProj/src/main/assets/emoji/1_47.png new file mode 100644 index 0000000000..0550a0f9d0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_48.png b/TMessagesProj/src/main/assets/emoji/1_48.png new file mode 100644 index 0000000000..e3e4dd4c14 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_49.png b/TMessagesProj/src/main/assets/emoji/1_49.png new file mode 100644 index 0000000000..5602c295bb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_5.png b/TMessagesProj/src/main/assets/emoji/1_5.png new file mode 100644 index 0000000000..1374c891bc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_50.png b/TMessagesProj/src/main/assets/emoji/1_50.png new file mode 100644 index 0000000000..893cc6ec31 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_51.png b/TMessagesProj/src/main/assets/emoji/1_51.png new file mode 100644 index 0000000000..f063b98c4d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_52.png b/TMessagesProj/src/main/assets/emoji/1_52.png new file mode 100644 index 0000000000..1592137f99 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_53.png b/TMessagesProj/src/main/assets/emoji/1_53.png new file mode 100644 index 0000000000..168b12f376 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_54.png b/TMessagesProj/src/main/assets/emoji/1_54.png new file mode 100644 index 0000000000..fc62eb39ea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_55.png b/TMessagesProj/src/main/assets/emoji/1_55.png new file mode 100644 index 0000000000..cac87d1c50 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_56.png b/TMessagesProj/src/main/assets/emoji/1_56.png new file mode 100644 index 0000000000..8843259a01 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_57.png b/TMessagesProj/src/main/assets/emoji/1_57.png new file mode 100644 index 0000000000..4fb66c5dfd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_58.png b/TMessagesProj/src/main/assets/emoji/1_58.png new file mode 100644 index 0000000000..b3c30c0c9e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_59.png b/TMessagesProj/src/main/assets/emoji/1_59.png new file mode 100644 index 0000000000..98e69983ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_6.png b/TMessagesProj/src/main/assets/emoji/1_6.png new file mode 100644 index 0000000000..226e8e76cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_60.png b/TMessagesProj/src/main/assets/emoji/1_60.png new file mode 100644 index 0000000000..2925b8371a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_61.png b/TMessagesProj/src/main/assets/emoji/1_61.png new file mode 100644 index 0000000000..1fe1f70534 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_62.png b/TMessagesProj/src/main/assets/emoji/1_62.png new file mode 100644 index 0000000000..c3a81a3ddc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_63.png b/TMessagesProj/src/main/assets/emoji/1_63.png new file mode 100644 index 0000000000..cb474dd911 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_64.png b/TMessagesProj/src/main/assets/emoji/1_64.png new file mode 100644 index 0000000000..53cc00ff23 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_65.png b/TMessagesProj/src/main/assets/emoji/1_65.png new file mode 100644 index 0000000000..16224845b5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_66.png b/TMessagesProj/src/main/assets/emoji/1_66.png new file mode 100644 index 0000000000..4e8e9ee2d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_67.png b/TMessagesProj/src/main/assets/emoji/1_67.png new file mode 100644 index 0000000000..847eaf47ee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_68.png b/TMessagesProj/src/main/assets/emoji/1_68.png new file mode 100644 index 0000000000..3851c11ca0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_69.png b/TMessagesProj/src/main/assets/emoji/1_69.png new file mode 100644 index 0000000000..c94b350af7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_7.png b/TMessagesProj/src/main/assets/emoji/1_7.png new file mode 100644 index 0000000000..c186132562 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_70.png b/TMessagesProj/src/main/assets/emoji/1_70.png new file mode 100644 index 0000000000..c49b172f7c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_71.png b/TMessagesProj/src/main/assets/emoji/1_71.png new file mode 100644 index 0000000000..5678a6c9c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_72.png b/TMessagesProj/src/main/assets/emoji/1_72.png new file mode 100644 index 0000000000..5d445a4d01 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_73.png b/TMessagesProj/src/main/assets/emoji/1_73.png new file mode 100644 index 0000000000..5979690c30 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_74.png b/TMessagesProj/src/main/assets/emoji/1_74.png new file mode 100644 index 0000000000..b966c82f01 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_75.png b/TMessagesProj/src/main/assets/emoji/1_75.png new file mode 100644 index 0000000000..e4fb014f71 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_76.png b/TMessagesProj/src/main/assets/emoji/1_76.png new file mode 100644 index 0000000000..e124e60c24 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_77.png b/TMessagesProj/src/main/assets/emoji/1_77.png new file mode 100644 index 0000000000..7cc71b6592 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_78.png b/TMessagesProj/src/main/assets/emoji/1_78.png new file mode 100644 index 0000000000..77e5bd7e84 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_79.png b/TMessagesProj/src/main/assets/emoji/1_79.png new file mode 100644 index 0000000000..c0e1b04b23 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_8.png b/TMessagesProj/src/main/assets/emoji/1_8.png new file mode 100644 index 0000000000..9090ccb93d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_80.png b/TMessagesProj/src/main/assets/emoji/1_80.png new file mode 100644 index 0000000000..2856fb0ac1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_81.png b/TMessagesProj/src/main/assets/emoji/1_81.png new file mode 100644 index 0000000000..0741b9c8ec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_82.png b/TMessagesProj/src/main/assets/emoji/1_82.png new file mode 100644 index 0000000000..085cecd468 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_83.png b/TMessagesProj/src/main/assets/emoji/1_83.png new file mode 100644 index 0000000000..02befa291f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_84.png b/TMessagesProj/src/main/assets/emoji/1_84.png new file mode 100644 index 0000000000..7bb10fae0a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_85.png b/TMessagesProj/src/main/assets/emoji/1_85.png new file mode 100644 index 0000000000..9da5574dc2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_86.png b/TMessagesProj/src/main/assets/emoji/1_86.png new file mode 100644 index 0000000000..f9fe21de2f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_87.png b/TMessagesProj/src/main/assets/emoji/1_87.png new file mode 100644 index 0000000000..694da7c74a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_88.png b/TMessagesProj/src/main/assets/emoji/1_88.png new file mode 100644 index 0000000000..a9a9e8a0cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_89.png b/TMessagesProj/src/main/assets/emoji/1_89.png new file mode 100644 index 0000000000..fe5e3a2ae8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_9.png b/TMessagesProj/src/main/assets/emoji/1_9.png new file mode 100644 index 0000000000..8100387c9d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_90.png b/TMessagesProj/src/main/assets/emoji/1_90.png new file mode 100644 index 0000000000..75e8766de7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_91.png b/TMessagesProj/src/main/assets/emoji/1_91.png new file mode 100644 index 0000000000..7c0d706268 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_92.png b/TMessagesProj/src/main/assets/emoji/1_92.png new file mode 100644 index 0000000000..cddf62bfd4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_93.png b/TMessagesProj/src/main/assets/emoji/1_93.png new file mode 100644 index 0000000000..ca0292df1d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_94.png b/TMessagesProj/src/main/assets/emoji/1_94.png new file mode 100644 index 0000000000..5e1cdd9c03 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_95.png b/TMessagesProj/src/main/assets/emoji/1_95.png new file mode 100644 index 0000000000..9118525a18 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_96.png b/TMessagesProj/src/main/assets/emoji/1_96.png new file mode 100644 index 0000000000..22f32ec9ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_97.png b/TMessagesProj/src/main/assets/emoji/1_97.png new file mode 100644 index 0000000000..40f5933b38 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_98.png b/TMessagesProj/src/main/assets/emoji/1_98.png new file mode 100644 index 0000000000..890772d082 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_99.png b/TMessagesProj/src/main/assets/emoji/1_99.png new file mode 100644 index 0000000000..99615e1d88 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/1_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_0.png b/TMessagesProj/src/main/assets/emoji/2_0.png new file mode 100644 index 0000000000..b8983c814b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_1.png b/TMessagesProj/src/main/assets/emoji/2_1.png new file mode 100644 index 0000000000..1c749ffa74 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_10.png b/TMessagesProj/src/main/assets/emoji/2_10.png new file mode 100644 index 0000000000..bb5a0b167f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_100.png b/TMessagesProj/src/main/assets/emoji/2_100.png new file mode 100644 index 0000000000..e0c7ce0a46 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_101.png b/TMessagesProj/src/main/assets/emoji/2_101.png new file mode 100644 index 0000000000..85ef44eba0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_102.png b/TMessagesProj/src/main/assets/emoji/2_102.png new file mode 100644 index 0000000000..9d5754150b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_103.png b/TMessagesProj/src/main/assets/emoji/2_103.png new file mode 100644 index 0000000000..841e0df494 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_104.png b/TMessagesProj/src/main/assets/emoji/2_104.png new file mode 100644 index 0000000000..85dcacdd73 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_105.png b/TMessagesProj/src/main/assets/emoji/2_105.png new file mode 100644 index 0000000000..5fb5d91d27 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_106.png b/TMessagesProj/src/main/assets/emoji/2_106.png new file mode 100644 index 0000000000..23e8e2087c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_107.png b/TMessagesProj/src/main/assets/emoji/2_107.png new file mode 100644 index 0000000000..a46e6a8054 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_108.png b/TMessagesProj/src/main/assets/emoji/2_108.png new file mode 100644 index 0000000000..3cc41ae965 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_109.png b/TMessagesProj/src/main/assets/emoji/2_109.png new file mode 100644 index 0000000000..5cbd7ee3b9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_11.png b/TMessagesProj/src/main/assets/emoji/2_11.png new file mode 100644 index 0000000000..7e2e1bbaea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_110.png b/TMessagesProj/src/main/assets/emoji/2_110.png new file mode 100644 index 0000000000..543e141ea2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_111.png b/TMessagesProj/src/main/assets/emoji/2_111.png new file mode 100644 index 0000000000..07b3fb8061 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_112.png b/TMessagesProj/src/main/assets/emoji/2_112.png new file mode 100644 index 0000000000..bdcc78944b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_113.png b/TMessagesProj/src/main/assets/emoji/2_113.png new file mode 100644 index 0000000000..94e4f6d7b1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_114.png b/TMessagesProj/src/main/assets/emoji/2_114.png new file mode 100644 index 0000000000..b131a2c267 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_115.png b/TMessagesProj/src/main/assets/emoji/2_115.png new file mode 100644 index 0000000000..416226dfeb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_116.png b/TMessagesProj/src/main/assets/emoji/2_116.png new file mode 100644 index 0000000000..85a4ef3bdf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_117.png b/TMessagesProj/src/main/assets/emoji/2_117.png new file mode 100644 index 0000000000..f1ad06b672 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_118.png b/TMessagesProj/src/main/assets/emoji/2_118.png new file mode 100644 index 0000000000..2aa17dbf04 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_119.png b/TMessagesProj/src/main/assets/emoji/2_119.png new file mode 100644 index 0000000000..5eea14242c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_12.png b/TMessagesProj/src/main/assets/emoji/2_12.png new file mode 100644 index 0000000000..201c42c5d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_120.png b/TMessagesProj/src/main/assets/emoji/2_120.png new file mode 100644 index 0000000000..7d9673d4db Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_121.png b/TMessagesProj/src/main/assets/emoji/2_121.png new file mode 100644 index 0000000000..c9f5d68a9a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_122.png b/TMessagesProj/src/main/assets/emoji/2_122.png new file mode 100644 index 0000000000..50f338d79c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_123.png b/TMessagesProj/src/main/assets/emoji/2_123.png new file mode 100644 index 0000000000..c41e6d7766 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_124.png b/TMessagesProj/src/main/assets/emoji/2_124.png new file mode 100644 index 0000000000..f6e20d1edf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_125.png b/TMessagesProj/src/main/assets/emoji/2_125.png new file mode 100644 index 0000000000..6e793ecb0e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_126.png b/TMessagesProj/src/main/assets/emoji/2_126.png new file mode 100644 index 0000000000..e76ea1c001 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_127.png b/TMessagesProj/src/main/assets/emoji/2_127.png new file mode 100644 index 0000000000..a892790e85 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_128.png b/TMessagesProj/src/main/assets/emoji/2_128.png new file mode 100644 index 0000000000..d57f83c6f6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_13.png b/TMessagesProj/src/main/assets/emoji/2_13.png new file mode 100644 index 0000000000..1149d114ee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_14.png b/TMessagesProj/src/main/assets/emoji/2_14.png new file mode 100644 index 0000000000..03b87d09da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_15.png b/TMessagesProj/src/main/assets/emoji/2_15.png new file mode 100644 index 0000000000..13e7b4360c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_16.png b/TMessagesProj/src/main/assets/emoji/2_16.png new file mode 100644 index 0000000000..71a4283f7f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_17.png b/TMessagesProj/src/main/assets/emoji/2_17.png new file mode 100644 index 0000000000..d0d6696435 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_18.png b/TMessagesProj/src/main/assets/emoji/2_18.png new file mode 100644 index 0000000000..6a307f4bf2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_19.png b/TMessagesProj/src/main/assets/emoji/2_19.png new file mode 100644 index 0000000000..355ed79fac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_2.png b/TMessagesProj/src/main/assets/emoji/2_2.png new file mode 100644 index 0000000000..218a6fc5ea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_20.png b/TMessagesProj/src/main/assets/emoji/2_20.png new file mode 100644 index 0000000000..6cccba4ca7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_21.png b/TMessagesProj/src/main/assets/emoji/2_21.png new file mode 100644 index 0000000000..331147584b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_22.png b/TMessagesProj/src/main/assets/emoji/2_22.png new file mode 100644 index 0000000000..8173a27619 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_23.png b/TMessagesProj/src/main/assets/emoji/2_23.png new file mode 100644 index 0000000000..7d799593df Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_24.png b/TMessagesProj/src/main/assets/emoji/2_24.png new file mode 100644 index 0000000000..2cf0b6cd51 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_25.png b/TMessagesProj/src/main/assets/emoji/2_25.png new file mode 100644 index 0000000000..32ab526802 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_26.png b/TMessagesProj/src/main/assets/emoji/2_26.png new file mode 100644 index 0000000000..e01deb972a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_27.png b/TMessagesProj/src/main/assets/emoji/2_27.png new file mode 100644 index 0000000000..d2e532ff29 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_28.png b/TMessagesProj/src/main/assets/emoji/2_28.png new file mode 100644 index 0000000000..d41004dd7c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_29.png b/TMessagesProj/src/main/assets/emoji/2_29.png new file mode 100644 index 0000000000..8fdc6f166c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_3.png b/TMessagesProj/src/main/assets/emoji/2_3.png new file mode 100644 index 0000000000..b585a1e3d9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_30.png b/TMessagesProj/src/main/assets/emoji/2_30.png new file mode 100644 index 0000000000..9ff9f5e4ba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_31.png b/TMessagesProj/src/main/assets/emoji/2_31.png new file mode 100644 index 0000000000..9aabbbdda5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_32.png b/TMessagesProj/src/main/assets/emoji/2_32.png new file mode 100644 index 0000000000..63f0ab6be5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_33.png b/TMessagesProj/src/main/assets/emoji/2_33.png new file mode 100644 index 0000000000..ce1f22f2e7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_34.png b/TMessagesProj/src/main/assets/emoji/2_34.png new file mode 100644 index 0000000000..c429179255 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_35.png b/TMessagesProj/src/main/assets/emoji/2_35.png new file mode 100644 index 0000000000..d6c2e04c0f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_36.png b/TMessagesProj/src/main/assets/emoji/2_36.png new file mode 100644 index 0000000000..f433f810c7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_37.png b/TMessagesProj/src/main/assets/emoji/2_37.png new file mode 100644 index 0000000000..fd143139b1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_38.png b/TMessagesProj/src/main/assets/emoji/2_38.png new file mode 100644 index 0000000000..1cb895449e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_39.png b/TMessagesProj/src/main/assets/emoji/2_39.png new file mode 100644 index 0000000000..446af065f8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_4.png b/TMessagesProj/src/main/assets/emoji/2_4.png new file mode 100644 index 0000000000..f573a8fec7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_40.png b/TMessagesProj/src/main/assets/emoji/2_40.png new file mode 100644 index 0000000000..5a9a3c6097 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_41.png b/TMessagesProj/src/main/assets/emoji/2_41.png new file mode 100644 index 0000000000..7254bf8815 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_42.png b/TMessagesProj/src/main/assets/emoji/2_42.png new file mode 100644 index 0000000000..b5ccbf653b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_43.png b/TMessagesProj/src/main/assets/emoji/2_43.png new file mode 100644 index 0000000000..d1854b40af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_44.png b/TMessagesProj/src/main/assets/emoji/2_44.png new file mode 100644 index 0000000000..6e34b581e2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_45.png b/TMessagesProj/src/main/assets/emoji/2_45.png new file mode 100644 index 0000000000..03cfbe5182 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_46.png b/TMessagesProj/src/main/assets/emoji/2_46.png new file mode 100644 index 0000000000..4368bb2d2a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_47.png b/TMessagesProj/src/main/assets/emoji/2_47.png new file mode 100644 index 0000000000..270f61db8b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_48.png b/TMessagesProj/src/main/assets/emoji/2_48.png new file mode 100644 index 0000000000..e2f32c0968 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_49.png b/TMessagesProj/src/main/assets/emoji/2_49.png new file mode 100644 index 0000000000..a24197d084 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_5.png b/TMessagesProj/src/main/assets/emoji/2_5.png new file mode 100644 index 0000000000..cca4301b0d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_50.png b/TMessagesProj/src/main/assets/emoji/2_50.png new file mode 100644 index 0000000000..42e8120802 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_51.png b/TMessagesProj/src/main/assets/emoji/2_51.png new file mode 100644 index 0000000000..2d338c2c6f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_52.png b/TMessagesProj/src/main/assets/emoji/2_52.png new file mode 100644 index 0000000000..3da7bd4e41 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_53.png b/TMessagesProj/src/main/assets/emoji/2_53.png new file mode 100644 index 0000000000..582a42db77 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_54.png b/TMessagesProj/src/main/assets/emoji/2_54.png new file mode 100644 index 0000000000..61f92c9d0e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_55.png b/TMessagesProj/src/main/assets/emoji/2_55.png new file mode 100644 index 0000000000..f2bb6dedbd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_56.png b/TMessagesProj/src/main/assets/emoji/2_56.png new file mode 100644 index 0000000000..7c8751c4f2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_57.png b/TMessagesProj/src/main/assets/emoji/2_57.png new file mode 100644 index 0000000000..2db37a5b63 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_58.png b/TMessagesProj/src/main/assets/emoji/2_58.png new file mode 100644 index 0000000000..1152d23d51 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_59.png b/TMessagesProj/src/main/assets/emoji/2_59.png new file mode 100644 index 0000000000..a16d36f723 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_6.png b/TMessagesProj/src/main/assets/emoji/2_6.png new file mode 100644 index 0000000000..69f5d7eee2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_60.png b/TMessagesProj/src/main/assets/emoji/2_60.png new file mode 100644 index 0000000000..5643a21be2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_61.png b/TMessagesProj/src/main/assets/emoji/2_61.png new file mode 100644 index 0000000000..3b344251a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_62.png b/TMessagesProj/src/main/assets/emoji/2_62.png new file mode 100644 index 0000000000..f90742ccdc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_63.png b/TMessagesProj/src/main/assets/emoji/2_63.png new file mode 100644 index 0000000000..9d6b8d1b01 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_64.png b/TMessagesProj/src/main/assets/emoji/2_64.png new file mode 100644 index 0000000000..41d2eaa633 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_65.png b/TMessagesProj/src/main/assets/emoji/2_65.png new file mode 100644 index 0000000000..cf66c23574 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_66.png b/TMessagesProj/src/main/assets/emoji/2_66.png new file mode 100644 index 0000000000..0d8b005c21 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_67.png b/TMessagesProj/src/main/assets/emoji/2_67.png new file mode 100644 index 0000000000..c3e3252c35 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_68.png b/TMessagesProj/src/main/assets/emoji/2_68.png new file mode 100644 index 0000000000..bfdca1c407 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_69.png b/TMessagesProj/src/main/assets/emoji/2_69.png new file mode 100644 index 0000000000..a7ec94fb5b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_7.png b/TMessagesProj/src/main/assets/emoji/2_7.png new file mode 100644 index 0000000000..7a7f06d667 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_70.png b/TMessagesProj/src/main/assets/emoji/2_70.png new file mode 100644 index 0000000000..371cd6441e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_71.png b/TMessagesProj/src/main/assets/emoji/2_71.png new file mode 100644 index 0000000000..db8497ded4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_72.png b/TMessagesProj/src/main/assets/emoji/2_72.png new file mode 100644 index 0000000000..71f057f751 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_73.png b/TMessagesProj/src/main/assets/emoji/2_73.png new file mode 100644 index 0000000000..b44afe576d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_74.png b/TMessagesProj/src/main/assets/emoji/2_74.png new file mode 100644 index 0000000000..93ac500d15 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_75.png b/TMessagesProj/src/main/assets/emoji/2_75.png new file mode 100644 index 0000000000..f65e029a31 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_76.png b/TMessagesProj/src/main/assets/emoji/2_76.png new file mode 100644 index 0000000000..091637dd03 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_77.png b/TMessagesProj/src/main/assets/emoji/2_77.png new file mode 100644 index 0000000000..ca93f44e3b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_78.png b/TMessagesProj/src/main/assets/emoji/2_78.png new file mode 100644 index 0000000000..5ac7736ec6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_79.png b/TMessagesProj/src/main/assets/emoji/2_79.png new file mode 100644 index 0000000000..9e977a573d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_8.png b/TMessagesProj/src/main/assets/emoji/2_8.png new file mode 100644 index 0000000000..c4a2e6b2c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_80.png b/TMessagesProj/src/main/assets/emoji/2_80.png new file mode 100644 index 0000000000..d80d197138 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_81.png b/TMessagesProj/src/main/assets/emoji/2_81.png new file mode 100644 index 0000000000..4f9896bebd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_82.png b/TMessagesProj/src/main/assets/emoji/2_82.png new file mode 100644 index 0000000000..98c3a00754 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_83.png b/TMessagesProj/src/main/assets/emoji/2_83.png new file mode 100644 index 0000000000..8948aadba8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_84.png b/TMessagesProj/src/main/assets/emoji/2_84.png new file mode 100644 index 0000000000..1e64968a11 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_85.png b/TMessagesProj/src/main/assets/emoji/2_85.png new file mode 100644 index 0000000000..e83e5d5e26 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_86.png b/TMessagesProj/src/main/assets/emoji/2_86.png new file mode 100644 index 0000000000..1574cd7578 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_87.png b/TMessagesProj/src/main/assets/emoji/2_87.png new file mode 100644 index 0000000000..5aa16dd909 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_88.png b/TMessagesProj/src/main/assets/emoji/2_88.png new file mode 100644 index 0000000000..0014d07744 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_89.png b/TMessagesProj/src/main/assets/emoji/2_89.png new file mode 100644 index 0000000000..f1ba758c8e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_9.png b/TMessagesProj/src/main/assets/emoji/2_9.png new file mode 100644 index 0000000000..915369bd9a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_90.png b/TMessagesProj/src/main/assets/emoji/2_90.png new file mode 100644 index 0000000000..072b7d2c9a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_91.png b/TMessagesProj/src/main/assets/emoji/2_91.png new file mode 100644 index 0000000000..b04763858b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_92.png b/TMessagesProj/src/main/assets/emoji/2_92.png new file mode 100644 index 0000000000..66f3fe84d6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_93.png b/TMessagesProj/src/main/assets/emoji/2_93.png new file mode 100644 index 0000000000..a8b70bbfb0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_94.png b/TMessagesProj/src/main/assets/emoji/2_94.png new file mode 100644 index 0000000000..04c6dd9f9e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_95.png b/TMessagesProj/src/main/assets/emoji/2_95.png new file mode 100644 index 0000000000..788fd36fce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_96.png b/TMessagesProj/src/main/assets/emoji/2_96.png new file mode 100644 index 0000000000..ff5281e702 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_97.png b/TMessagesProj/src/main/assets/emoji/2_97.png new file mode 100644 index 0000000000..0e562f6c1a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_98.png b/TMessagesProj/src/main/assets/emoji/2_98.png new file mode 100644 index 0000000000..c4734568a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_99.png b/TMessagesProj/src/main/assets/emoji/2_99.png new file mode 100644 index 0000000000..3c92dfc670 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/2_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_0.png b/TMessagesProj/src/main/assets/emoji/3_0.png new file mode 100644 index 0000000000..525febfb30 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_1.png b/TMessagesProj/src/main/assets/emoji/3_1.png new file mode 100644 index 0000000000..8c6f5606b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_10.png b/TMessagesProj/src/main/assets/emoji/3_10.png new file mode 100644 index 0000000000..d7994f0ab3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_100.png b/TMessagesProj/src/main/assets/emoji/3_100.png new file mode 100644 index 0000000000..835949d085 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_101.png b/TMessagesProj/src/main/assets/emoji/3_101.png new file mode 100644 index 0000000000..b09a90bad6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_102.png b/TMessagesProj/src/main/assets/emoji/3_102.png new file mode 100644 index 0000000000..19d91a840d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_103.png b/TMessagesProj/src/main/assets/emoji/3_103.png new file mode 100644 index 0000000000..56fabc5bf1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_104.png b/TMessagesProj/src/main/assets/emoji/3_104.png new file mode 100644 index 0000000000..b476a2a54f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_105.png b/TMessagesProj/src/main/assets/emoji/3_105.png new file mode 100644 index 0000000000..2eacb75302 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_106.png b/TMessagesProj/src/main/assets/emoji/3_106.png new file mode 100644 index 0000000000..77dd12c116 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_107.png b/TMessagesProj/src/main/assets/emoji/3_107.png new file mode 100644 index 0000000000..f80eff1af5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_108.png b/TMessagesProj/src/main/assets/emoji/3_108.png new file mode 100644 index 0000000000..41f16b339f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_109.png b/TMessagesProj/src/main/assets/emoji/3_109.png new file mode 100644 index 0000000000..278c148c65 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_11.png b/TMessagesProj/src/main/assets/emoji/3_11.png new file mode 100644 index 0000000000..17266501cb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_110.png b/TMessagesProj/src/main/assets/emoji/3_110.png new file mode 100644 index 0000000000..cbf24d1572 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_111.png b/TMessagesProj/src/main/assets/emoji/3_111.png new file mode 100644 index 0000000000..b398a42fff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_112.png b/TMessagesProj/src/main/assets/emoji/3_112.png new file mode 100644 index 0000000000..bf9897cf84 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_113.png b/TMessagesProj/src/main/assets/emoji/3_113.png new file mode 100644 index 0000000000..719c29d1ef Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_114.png b/TMessagesProj/src/main/assets/emoji/3_114.png new file mode 100644 index 0000000000..9238accfde Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_115.png b/TMessagesProj/src/main/assets/emoji/3_115.png new file mode 100644 index 0000000000..2643a8668a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_116.png b/TMessagesProj/src/main/assets/emoji/3_116.png new file mode 100644 index 0000000000..b62b0d0f02 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_117.png b/TMessagesProj/src/main/assets/emoji/3_117.png new file mode 100644 index 0000000000..d63c9d2dbe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_118.png b/TMessagesProj/src/main/assets/emoji/3_118.png new file mode 100644 index 0000000000..0ccca11769 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_119.png b/TMessagesProj/src/main/assets/emoji/3_119.png new file mode 100644 index 0000000000..2b81f05471 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_12.png b/TMessagesProj/src/main/assets/emoji/3_12.png new file mode 100644 index 0000000000..0f5c2847bd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_120.png b/TMessagesProj/src/main/assets/emoji/3_120.png new file mode 100644 index 0000000000..4f331f5dcd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_121.png b/TMessagesProj/src/main/assets/emoji/3_121.png new file mode 100644 index 0000000000..9ee3e7118b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_122.png b/TMessagesProj/src/main/assets/emoji/3_122.png new file mode 100644 index 0000000000..d16b50a658 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_123.png b/TMessagesProj/src/main/assets/emoji/3_123.png new file mode 100644 index 0000000000..a1b501376d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_124.png b/TMessagesProj/src/main/assets/emoji/3_124.png new file mode 100644 index 0000000000..6ec0b4023f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_125.png b/TMessagesProj/src/main/assets/emoji/3_125.png new file mode 100644 index 0000000000..64d19098c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_126.png b/TMessagesProj/src/main/assets/emoji/3_126.png new file mode 100644 index 0000000000..f26100bfa1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_127.png b/TMessagesProj/src/main/assets/emoji/3_127.png new file mode 100644 index 0000000000..afd5d57a25 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_128.png b/TMessagesProj/src/main/assets/emoji/3_128.png new file mode 100644 index 0000000000..58fe617a00 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_129.png b/TMessagesProj/src/main/assets/emoji/3_129.png new file mode 100644 index 0000000000..e1dea49ff6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_13.png b/TMessagesProj/src/main/assets/emoji/3_13.png new file mode 100644 index 0000000000..8fdc1212a9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_130.png b/TMessagesProj/src/main/assets/emoji/3_130.png new file mode 100644 index 0000000000..07fec112bc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_131.png b/TMessagesProj/src/main/assets/emoji/3_131.png new file mode 100644 index 0000000000..9be8df9359 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_132.png b/TMessagesProj/src/main/assets/emoji/3_132.png new file mode 100644 index 0000000000..2857930d9b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_133.png b/TMessagesProj/src/main/assets/emoji/3_133.png new file mode 100644 index 0000000000..e487ad9eec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_134.png b/TMessagesProj/src/main/assets/emoji/3_134.png new file mode 100644 index 0000000000..a49a08d387 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_135.png b/TMessagesProj/src/main/assets/emoji/3_135.png new file mode 100644 index 0000000000..7389991dab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_136.png b/TMessagesProj/src/main/assets/emoji/3_136.png new file mode 100644 index 0000000000..98d828e5b0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_137.png b/TMessagesProj/src/main/assets/emoji/3_137.png new file mode 100644 index 0000000000..3c7d144d5a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_138.png b/TMessagesProj/src/main/assets/emoji/3_138.png new file mode 100644 index 0000000000..d44bc27419 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_139.png b/TMessagesProj/src/main/assets/emoji/3_139.png new file mode 100644 index 0000000000..053806a272 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_14.png b/TMessagesProj/src/main/assets/emoji/3_14.png new file mode 100644 index 0000000000..4320770655 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_140.png b/TMessagesProj/src/main/assets/emoji/3_140.png new file mode 100644 index 0000000000..e69e29091f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_141.png b/TMessagesProj/src/main/assets/emoji/3_141.png new file mode 100644 index 0000000000..dbf49877ef Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_142.png b/TMessagesProj/src/main/assets/emoji/3_142.png new file mode 100644 index 0000000000..74c18374ce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_143.png b/TMessagesProj/src/main/assets/emoji/3_143.png new file mode 100644 index 0000000000..bc856a1e24 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_144.png b/TMessagesProj/src/main/assets/emoji/3_144.png new file mode 100644 index 0000000000..2c3db58adb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_145.png b/TMessagesProj/src/main/assets/emoji/3_145.png new file mode 100644 index 0000000000..1ee1cb438e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_146.png b/TMessagesProj/src/main/assets/emoji/3_146.png new file mode 100644 index 0000000000..75afb133ab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_147.png b/TMessagesProj/src/main/assets/emoji/3_147.png new file mode 100644 index 0000000000..adc4c2debe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_148.png b/TMessagesProj/src/main/assets/emoji/3_148.png new file mode 100644 index 0000000000..2ae5270b04 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_149.png b/TMessagesProj/src/main/assets/emoji/3_149.png new file mode 100644 index 0000000000..a95a150a13 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_15.png b/TMessagesProj/src/main/assets/emoji/3_15.png new file mode 100644 index 0000000000..57033d6351 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_150.png b/TMessagesProj/src/main/assets/emoji/3_150.png new file mode 100644 index 0000000000..a336ae33e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_151.png b/TMessagesProj/src/main/assets/emoji/3_151.png new file mode 100644 index 0000000000..6a649b3e6a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_152.png b/TMessagesProj/src/main/assets/emoji/3_152.png new file mode 100644 index 0000000000..111e15aa27 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_153.png b/TMessagesProj/src/main/assets/emoji/3_153.png new file mode 100644 index 0000000000..477a990f29 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_154.png b/TMessagesProj/src/main/assets/emoji/3_154.png new file mode 100644 index 0000000000..a7ceaefbb0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_155.png b/TMessagesProj/src/main/assets/emoji/3_155.png new file mode 100644 index 0000000000..6b0c48774d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_156.png b/TMessagesProj/src/main/assets/emoji/3_156.png new file mode 100644 index 0000000000..7818390103 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_157.png b/TMessagesProj/src/main/assets/emoji/3_157.png new file mode 100644 index 0000000000..6aca1fff0f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_158.png b/TMessagesProj/src/main/assets/emoji/3_158.png new file mode 100644 index 0000000000..e71a9a2738 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_159.png b/TMessagesProj/src/main/assets/emoji/3_159.png new file mode 100644 index 0000000000..ac24ed162f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_16.png b/TMessagesProj/src/main/assets/emoji/3_16.png new file mode 100644 index 0000000000..fb83a6d127 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_160.png b/TMessagesProj/src/main/assets/emoji/3_160.png new file mode 100644 index 0000000000..9b164ae5bb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_161.png b/TMessagesProj/src/main/assets/emoji/3_161.png new file mode 100644 index 0000000000..4462873022 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_162.png b/TMessagesProj/src/main/assets/emoji/3_162.png new file mode 100644 index 0000000000..157ac001a2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_163.png b/TMessagesProj/src/main/assets/emoji/3_163.png new file mode 100644 index 0000000000..e882a9f711 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_164.png b/TMessagesProj/src/main/assets/emoji/3_164.png new file mode 100644 index 0000000000..bfbcc194fd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_165.png b/TMessagesProj/src/main/assets/emoji/3_165.png new file mode 100644 index 0000000000..47ac39ad7b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_166.png b/TMessagesProj/src/main/assets/emoji/3_166.png new file mode 100644 index 0000000000..13d17bade5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_167.png b/TMessagesProj/src/main/assets/emoji/3_167.png new file mode 100644 index 0000000000..249ad4804d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_168.png b/TMessagesProj/src/main/assets/emoji/3_168.png new file mode 100644 index 0000000000..adc3d03be4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_169.png b/TMessagesProj/src/main/assets/emoji/3_169.png new file mode 100644 index 0000000000..ae4b29e75c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_17.png b/TMessagesProj/src/main/assets/emoji/3_17.png new file mode 100644 index 0000000000..eedb181c7c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_170.png b/TMessagesProj/src/main/assets/emoji/3_170.png new file mode 100644 index 0000000000..4e42f8c132 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_171.png b/TMessagesProj/src/main/assets/emoji/3_171.png new file mode 100644 index 0000000000..c94ad4d59f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_172.png b/TMessagesProj/src/main/assets/emoji/3_172.png new file mode 100644 index 0000000000..8e4d951e0e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_173.png b/TMessagesProj/src/main/assets/emoji/3_173.png new file mode 100644 index 0000000000..c3f8675a60 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_174.png b/TMessagesProj/src/main/assets/emoji/3_174.png new file mode 100644 index 0000000000..b87222c848 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_175.png b/TMessagesProj/src/main/assets/emoji/3_175.png new file mode 100644 index 0000000000..620ae1c025 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_176.png b/TMessagesProj/src/main/assets/emoji/3_176.png new file mode 100644 index 0000000000..7f96a5eb5b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_177.png b/TMessagesProj/src/main/assets/emoji/3_177.png new file mode 100644 index 0000000000..72a5bec52f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_178.png b/TMessagesProj/src/main/assets/emoji/3_178.png new file mode 100644 index 0000000000..132735e375 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_179.png b/TMessagesProj/src/main/assets/emoji/3_179.png new file mode 100644 index 0000000000..3d546d9b77 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_18.png b/TMessagesProj/src/main/assets/emoji/3_18.png new file mode 100644 index 0000000000..a4e7239b1d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_180.png b/TMessagesProj/src/main/assets/emoji/3_180.png new file mode 100644 index 0000000000..517f7a7024 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_181.png b/TMessagesProj/src/main/assets/emoji/3_181.png new file mode 100644 index 0000000000..08a8a8c9d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_182.png b/TMessagesProj/src/main/assets/emoji/3_182.png new file mode 100644 index 0000000000..051ca9297d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_183.png b/TMessagesProj/src/main/assets/emoji/3_183.png new file mode 100644 index 0000000000..59923a8d56 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_184.png b/TMessagesProj/src/main/assets/emoji/3_184.png new file mode 100644 index 0000000000..969ea00f21 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_185.png b/TMessagesProj/src/main/assets/emoji/3_185.png new file mode 100644 index 0000000000..54ffbc883b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_186.png b/TMessagesProj/src/main/assets/emoji/3_186.png new file mode 100644 index 0000000000..6f1907368c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_187.png b/TMessagesProj/src/main/assets/emoji/3_187.png new file mode 100644 index 0000000000..07db02e98e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_188.png b/TMessagesProj/src/main/assets/emoji/3_188.png new file mode 100644 index 0000000000..30e92e0fcf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_189.png b/TMessagesProj/src/main/assets/emoji/3_189.png new file mode 100644 index 0000000000..48e25703e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_19.png b/TMessagesProj/src/main/assets/emoji/3_19.png new file mode 100644 index 0000000000..527b04eccb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_190.png b/TMessagesProj/src/main/assets/emoji/3_190.png new file mode 100644 index 0000000000..36faa8ccfe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_191.png b/TMessagesProj/src/main/assets/emoji/3_191.png new file mode 100644 index 0000000000..0c430e1874 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_192.png b/TMessagesProj/src/main/assets/emoji/3_192.png new file mode 100644 index 0000000000..2aaec07bf1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_193.png b/TMessagesProj/src/main/assets/emoji/3_193.png new file mode 100644 index 0000000000..39cdb2b411 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_194.png b/TMessagesProj/src/main/assets/emoji/3_194.png new file mode 100644 index 0000000000..56b99c70fc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_195.png b/TMessagesProj/src/main/assets/emoji/3_195.png new file mode 100644 index 0000000000..5990aff42c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_196.png b/TMessagesProj/src/main/assets/emoji/3_196.png new file mode 100644 index 0000000000..5e1f12d1e8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_197.png b/TMessagesProj/src/main/assets/emoji/3_197.png new file mode 100644 index 0000000000..548f27c2ee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_198.png b/TMessagesProj/src/main/assets/emoji/3_198.png new file mode 100644 index 0000000000..6317ac6d0b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_199.png b/TMessagesProj/src/main/assets/emoji/3_199.png new file mode 100644 index 0000000000..9d0a3db2c3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_2.png b/TMessagesProj/src/main/assets/emoji/3_2.png new file mode 100644 index 0000000000..ab845a6ce8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_20.png b/TMessagesProj/src/main/assets/emoji/3_20.png new file mode 100644 index 0000000000..c8ca7d3d24 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_200.png b/TMessagesProj/src/main/assets/emoji/3_200.png new file mode 100644 index 0000000000..d1b585a1af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_201.png b/TMessagesProj/src/main/assets/emoji/3_201.png new file mode 100644 index 0000000000..a194eb53bb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_202.png b/TMessagesProj/src/main/assets/emoji/3_202.png new file mode 100644 index 0000000000..b291fdc3dc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_203.png b/TMessagesProj/src/main/assets/emoji/3_203.png new file mode 100644 index 0000000000..93701da265 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_204.png b/TMessagesProj/src/main/assets/emoji/3_204.png new file mode 100644 index 0000000000..63b6b39907 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_205.png b/TMessagesProj/src/main/assets/emoji/3_205.png new file mode 100644 index 0000000000..29f644c073 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_206.png b/TMessagesProj/src/main/assets/emoji/3_206.png new file mode 100644 index 0000000000..ffb6664a78 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_207.png b/TMessagesProj/src/main/assets/emoji/3_207.png new file mode 100644 index 0000000000..2ab7d4c55d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_208.png b/TMessagesProj/src/main/assets/emoji/3_208.png new file mode 100644 index 0000000000..567d14f42c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_209.png b/TMessagesProj/src/main/assets/emoji/3_209.png new file mode 100644 index 0000000000..4a4585f8c7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_21.png b/TMessagesProj/src/main/assets/emoji/3_21.png new file mode 100644 index 0000000000..e1e6883b56 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_210.png b/TMessagesProj/src/main/assets/emoji/3_210.png new file mode 100644 index 0000000000..581d0eca14 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_211.png b/TMessagesProj/src/main/assets/emoji/3_211.png new file mode 100644 index 0000000000..1b2cdd5311 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_212.png b/TMessagesProj/src/main/assets/emoji/3_212.png new file mode 100644 index 0000000000..18f1426f54 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_213.png b/TMessagesProj/src/main/assets/emoji/3_213.png new file mode 100644 index 0000000000..3e3fc916cd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_214.png b/TMessagesProj/src/main/assets/emoji/3_214.png new file mode 100644 index 0000000000..891b440601 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_215.png b/TMessagesProj/src/main/assets/emoji/3_215.png new file mode 100644 index 0000000000..3ee661ab03 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_216.png b/TMessagesProj/src/main/assets/emoji/3_216.png new file mode 100644 index 0000000000..f4140a2a00 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_217.png b/TMessagesProj/src/main/assets/emoji/3_217.png new file mode 100644 index 0000000000..ee1927430f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_218.png b/TMessagesProj/src/main/assets/emoji/3_218.png new file mode 100644 index 0000000000..f5a335a190 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_219.png b/TMessagesProj/src/main/assets/emoji/3_219.png new file mode 100644 index 0000000000..422c65c129 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_22.png b/TMessagesProj/src/main/assets/emoji/3_22.png new file mode 100644 index 0000000000..e9bac7f93c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_220.png b/TMessagesProj/src/main/assets/emoji/3_220.png new file mode 100644 index 0000000000..1380d8fdb1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_221.png b/TMessagesProj/src/main/assets/emoji/3_221.png new file mode 100644 index 0000000000..513376f8df Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_222.png b/TMessagesProj/src/main/assets/emoji/3_222.png new file mode 100644 index 0000000000..6b897e8d51 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_223.png b/TMessagesProj/src/main/assets/emoji/3_223.png new file mode 100644 index 0000000000..26a0a12dea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_224.png b/TMessagesProj/src/main/assets/emoji/3_224.png new file mode 100644 index 0000000000..2314c914eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_225.png b/TMessagesProj/src/main/assets/emoji/3_225.png new file mode 100644 index 0000000000..8ba2d6b809 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_226.png b/TMessagesProj/src/main/assets/emoji/3_226.png new file mode 100644 index 0000000000..361df5a98e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_227.png b/TMessagesProj/src/main/assets/emoji/3_227.png new file mode 100644 index 0000000000..93465f8223 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_228.png b/TMessagesProj/src/main/assets/emoji/3_228.png new file mode 100644 index 0000000000..3933a71d88 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_229.png b/TMessagesProj/src/main/assets/emoji/3_229.png new file mode 100644 index 0000000000..4e9fdb52e4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_23.png b/TMessagesProj/src/main/assets/emoji/3_23.png new file mode 100644 index 0000000000..f64672e66f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_230.png b/TMessagesProj/src/main/assets/emoji/3_230.png new file mode 100644 index 0000000000..eaa31866be Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_230.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_231.png b/TMessagesProj/src/main/assets/emoji/3_231.png new file mode 100644 index 0000000000..1683b55ba8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_231.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_232.png b/TMessagesProj/src/main/assets/emoji/3_232.png new file mode 100644 index 0000000000..76d344c3bb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_232.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_233.png b/TMessagesProj/src/main/assets/emoji/3_233.png new file mode 100644 index 0000000000..4b28a0b3da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_233.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_234.png b/TMessagesProj/src/main/assets/emoji/3_234.png new file mode 100644 index 0000000000..d2c658665b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_234.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_235.png b/TMessagesProj/src/main/assets/emoji/3_235.png new file mode 100644 index 0000000000..ca6b9e7da9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_235.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_236.png b/TMessagesProj/src/main/assets/emoji/3_236.png new file mode 100644 index 0000000000..9d6cf6c931 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_236.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_237.png b/TMessagesProj/src/main/assets/emoji/3_237.png new file mode 100644 index 0000000000..845f7705bd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_237.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_238.png b/TMessagesProj/src/main/assets/emoji/3_238.png new file mode 100644 index 0000000000..6f2b940e04 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_238.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_239.png b/TMessagesProj/src/main/assets/emoji/3_239.png new file mode 100644 index 0000000000..92b36db5c4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_239.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_24.png b/TMessagesProj/src/main/assets/emoji/3_24.png new file mode 100644 index 0000000000..2d88555f2f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_240.png b/TMessagesProj/src/main/assets/emoji/3_240.png new file mode 100644 index 0000000000..0f4150e4bb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_240.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_241.png b/TMessagesProj/src/main/assets/emoji/3_241.png new file mode 100644 index 0000000000..c7513dd8eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_241.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_242.png b/TMessagesProj/src/main/assets/emoji/3_242.png new file mode 100644 index 0000000000..ce57ea2077 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_242.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_243.png b/TMessagesProj/src/main/assets/emoji/3_243.png new file mode 100644 index 0000000000..f7c9132d13 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_243.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_244.png b/TMessagesProj/src/main/assets/emoji/3_244.png new file mode 100644 index 0000000000..8519c04f0f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_244.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_245.png b/TMessagesProj/src/main/assets/emoji/3_245.png new file mode 100644 index 0000000000..b1582885a6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_245.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_246.png b/TMessagesProj/src/main/assets/emoji/3_246.png new file mode 100644 index 0000000000..48fda9cb66 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_246.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_247.png b/TMessagesProj/src/main/assets/emoji/3_247.png new file mode 100644 index 0000000000..946c4c3c88 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_247.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_248.png b/TMessagesProj/src/main/assets/emoji/3_248.png new file mode 100644 index 0000000000..69a8e39a2d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_248.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_249.png b/TMessagesProj/src/main/assets/emoji/3_249.png new file mode 100644 index 0000000000..06b5b16b39 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_249.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_25.png b/TMessagesProj/src/main/assets/emoji/3_25.png new file mode 100644 index 0000000000..ff871b4f70 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_250.png b/TMessagesProj/src/main/assets/emoji/3_250.png new file mode 100644 index 0000000000..b76a299559 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_250.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_251.png b/TMessagesProj/src/main/assets/emoji/3_251.png new file mode 100644 index 0000000000..d35920be1e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_251.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_252.png b/TMessagesProj/src/main/assets/emoji/3_252.png new file mode 100644 index 0000000000..0f0d25a43a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_252.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_253.png b/TMessagesProj/src/main/assets/emoji/3_253.png new file mode 100644 index 0000000000..09354436be Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_253.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_254.png b/TMessagesProj/src/main/assets/emoji/3_254.png new file mode 100644 index 0000000000..33dece08eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_254.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_255.png b/TMessagesProj/src/main/assets/emoji/3_255.png new file mode 100644 index 0000000000..68f820dcc1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_255.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_256.png b/TMessagesProj/src/main/assets/emoji/3_256.png new file mode 100644 index 0000000000..fc4fe1f537 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_256.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_257.png b/TMessagesProj/src/main/assets/emoji/3_257.png new file mode 100644 index 0000000000..27639b1b8d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_257.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_258.png b/TMessagesProj/src/main/assets/emoji/3_258.png new file mode 100644 index 0000000000..b15b16c4c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_258.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_259.png b/TMessagesProj/src/main/assets/emoji/3_259.png new file mode 100644 index 0000000000..b8a4bc6bd1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_259.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_26.png b/TMessagesProj/src/main/assets/emoji/3_26.png new file mode 100644 index 0000000000..d0180f779f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_260.png b/TMessagesProj/src/main/assets/emoji/3_260.png new file mode 100644 index 0000000000..c4350846b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_260.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_261.png b/TMessagesProj/src/main/assets/emoji/3_261.png new file mode 100644 index 0000000000..6f90586f60 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_261.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_262.png b/TMessagesProj/src/main/assets/emoji/3_262.png new file mode 100644 index 0000000000..a5f1bb0162 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_262.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_263.png b/TMessagesProj/src/main/assets/emoji/3_263.png new file mode 100644 index 0000000000..778c45ad30 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_263.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_264.png b/TMessagesProj/src/main/assets/emoji/3_264.png new file mode 100644 index 0000000000..18c3987f8d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_264.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_265.png b/TMessagesProj/src/main/assets/emoji/3_265.png new file mode 100644 index 0000000000..20ba7e6ffa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_265.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_266.png b/TMessagesProj/src/main/assets/emoji/3_266.png new file mode 100644 index 0000000000..e3cadbbf6c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_266.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_267.png b/TMessagesProj/src/main/assets/emoji/3_267.png new file mode 100644 index 0000000000..c907f7a5ed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_267.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_268.png b/TMessagesProj/src/main/assets/emoji/3_268.png new file mode 100644 index 0000000000..829fd1d6d8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_268.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_269.png b/TMessagesProj/src/main/assets/emoji/3_269.png new file mode 100644 index 0000000000..238dcf903d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_269.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_27.png b/TMessagesProj/src/main/assets/emoji/3_27.png new file mode 100644 index 0000000000..d719cb6ff3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_270.png b/TMessagesProj/src/main/assets/emoji/3_270.png new file mode 100644 index 0000000000..74bf5cdc6a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_270.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_271.png b/TMessagesProj/src/main/assets/emoji/3_271.png new file mode 100644 index 0000000000..fd65885013 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_271.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_272.png b/TMessagesProj/src/main/assets/emoji/3_272.png new file mode 100644 index 0000000000..8c41b11040 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_272.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_273.png b/TMessagesProj/src/main/assets/emoji/3_273.png new file mode 100644 index 0000000000..f1699de424 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_273.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_274.png b/TMessagesProj/src/main/assets/emoji/3_274.png new file mode 100644 index 0000000000..8468121fb8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_274.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_275.png b/TMessagesProj/src/main/assets/emoji/3_275.png new file mode 100644 index 0000000000..1650f5a05f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_275.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_276.png b/TMessagesProj/src/main/assets/emoji/3_276.png new file mode 100644 index 0000000000..d4755ab9fd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_276.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_277.png b/TMessagesProj/src/main/assets/emoji/3_277.png new file mode 100644 index 0000000000..fd241a2c33 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_277.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_278.png b/TMessagesProj/src/main/assets/emoji/3_278.png new file mode 100644 index 0000000000..b49bad17db Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_278.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_279.png b/TMessagesProj/src/main/assets/emoji/3_279.png new file mode 100644 index 0000000000..e05ab63f0e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_279.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_28.png b/TMessagesProj/src/main/assets/emoji/3_28.png new file mode 100644 index 0000000000..87225ca2f8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_280.png b/TMessagesProj/src/main/assets/emoji/3_280.png new file mode 100644 index 0000000000..09fa27f0f3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_280.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_281.png b/TMessagesProj/src/main/assets/emoji/3_281.png new file mode 100644 index 0000000000..86eccae16c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_281.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_282.png b/TMessagesProj/src/main/assets/emoji/3_282.png new file mode 100644 index 0000000000..c6bd9fe458 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_282.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_283.png b/TMessagesProj/src/main/assets/emoji/3_283.png new file mode 100644 index 0000000000..3b308fa795 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_283.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_284.png b/TMessagesProj/src/main/assets/emoji/3_284.png new file mode 100644 index 0000000000..72d51310d6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_284.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_285.png b/TMessagesProj/src/main/assets/emoji/3_285.png new file mode 100644 index 0000000000..4b5cfb5719 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_285.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_286.png b/TMessagesProj/src/main/assets/emoji/3_286.png new file mode 100644 index 0000000000..debb1d431e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_286.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_287.png b/TMessagesProj/src/main/assets/emoji/3_287.png new file mode 100644 index 0000000000..8b4873610c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_287.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_288.png b/TMessagesProj/src/main/assets/emoji/3_288.png new file mode 100644 index 0000000000..9cc03c3a16 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_288.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_289.png b/TMessagesProj/src/main/assets/emoji/3_289.png new file mode 100644 index 0000000000..f31bbe4270 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_289.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_29.png b/TMessagesProj/src/main/assets/emoji/3_29.png new file mode 100644 index 0000000000..08804f923e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_290.png b/TMessagesProj/src/main/assets/emoji/3_290.png new file mode 100644 index 0000000000..79219ea633 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_290.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_291.png b/TMessagesProj/src/main/assets/emoji/3_291.png new file mode 100644 index 0000000000..3ae0090ee4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_291.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_292.png b/TMessagesProj/src/main/assets/emoji/3_292.png new file mode 100644 index 0000000000..cb8ee7646f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_292.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_293.png b/TMessagesProj/src/main/assets/emoji/3_293.png new file mode 100644 index 0000000000..f4ae03a399 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_293.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_294.png b/TMessagesProj/src/main/assets/emoji/3_294.png new file mode 100644 index 0000000000..bc69e4f64d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_294.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_295.png b/TMessagesProj/src/main/assets/emoji/3_295.png new file mode 100644 index 0000000000..131c90114e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_295.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_296.png b/TMessagesProj/src/main/assets/emoji/3_296.png new file mode 100644 index 0000000000..bd0214b385 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_296.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_297.png b/TMessagesProj/src/main/assets/emoji/3_297.png new file mode 100644 index 0000000000..d15600c703 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_297.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_298.png b/TMessagesProj/src/main/assets/emoji/3_298.png new file mode 100644 index 0000000000..3af4556046 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_298.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_299.png b/TMessagesProj/src/main/assets/emoji/3_299.png new file mode 100644 index 0000000000..ffc4f0064c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_299.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_3.png b/TMessagesProj/src/main/assets/emoji/3_3.png new file mode 100644 index 0000000000..4a90036144 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_30.png b/TMessagesProj/src/main/assets/emoji/3_30.png new file mode 100644 index 0000000000..63ae1f5648 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_300.png b/TMessagesProj/src/main/assets/emoji/3_300.png new file mode 100644 index 0000000000..ed747721f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_300.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_301.png b/TMessagesProj/src/main/assets/emoji/3_301.png new file mode 100644 index 0000000000..69e79cf689 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_301.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_302.png b/TMessagesProj/src/main/assets/emoji/3_302.png new file mode 100644 index 0000000000..68328546d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_302.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_303.png b/TMessagesProj/src/main/assets/emoji/3_303.png new file mode 100644 index 0000000000..c54bf206a0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_303.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_304.png b/TMessagesProj/src/main/assets/emoji/3_304.png new file mode 100644 index 0000000000..b121001402 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_304.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_305.png b/TMessagesProj/src/main/assets/emoji/3_305.png new file mode 100644 index 0000000000..cc352daff3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_305.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_306.png b/TMessagesProj/src/main/assets/emoji/3_306.png new file mode 100644 index 0000000000..dd0f5a9fa0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_306.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_307.png b/TMessagesProj/src/main/assets/emoji/3_307.png new file mode 100644 index 0000000000..01a68d4d6b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_307.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_308.png b/TMessagesProj/src/main/assets/emoji/3_308.png new file mode 100644 index 0000000000..35dcddd972 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_308.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_309.png b/TMessagesProj/src/main/assets/emoji/3_309.png new file mode 100644 index 0000000000..bae7d3fcf8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_309.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_31.png b/TMessagesProj/src/main/assets/emoji/3_31.png new file mode 100644 index 0000000000..3433ae176a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_310.png b/TMessagesProj/src/main/assets/emoji/3_310.png new file mode 100644 index 0000000000..e0efc6059d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_310.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_311.png b/TMessagesProj/src/main/assets/emoji/3_311.png new file mode 100644 index 0000000000..ffadf3305b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_311.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_312.png b/TMessagesProj/src/main/assets/emoji/3_312.png new file mode 100644 index 0000000000..b54e77ea7c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_312.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_313.png b/TMessagesProj/src/main/assets/emoji/3_313.png new file mode 100644 index 0000000000..a987c6d618 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_313.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_314.png b/TMessagesProj/src/main/assets/emoji/3_314.png new file mode 100644 index 0000000000..13965e9be2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_314.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_315.png b/TMessagesProj/src/main/assets/emoji/3_315.png new file mode 100644 index 0000000000..1921710c36 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_315.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_316.png b/TMessagesProj/src/main/assets/emoji/3_316.png new file mode 100644 index 0000000000..76959be293 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_316.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_317.png b/TMessagesProj/src/main/assets/emoji/3_317.png new file mode 100644 index 0000000000..3b6830928c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_317.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_318.png b/TMessagesProj/src/main/assets/emoji/3_318.png new file mode 100644 index 0000000000..05152f9b13 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_318.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_319.png b/TMessagesProj/src/main/assets/emoji/3_319.png new file mode 100644 index 0000000000..0bed3dfc56 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_319.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_32.png b/TMessagesProj/src/main/assets/emoji/3_32.png new file mode 100644 index 0000000000..d174327bcc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_320.png b/TMessagesProj/src/main/assets/emoji/3_320.png new file mode 100644 index 0000000000..858cd09860 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_320.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_321.png b/TMessagesProj/src/main/assets/emoji/3_321.png new file mode 100644 index 0000000000..bf76fd6464 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_321.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_322.png b/TMessagesProj/src/main/assets/emoji/3_322.png new file mode 100644 index 0000000000..0a336e057c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_322.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_323.png b/TMessagesProj/src/main/assets/emoji/3_323.png new file mode 100644 index 0000000000..1524ecc2c6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_323.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_324.png b/TMessagesProj/src/main/assets/emoji/3_324.png new file mode 100644 index 0000000000..ba8ce58239 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_324.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_325.png b/TMessagesProj/src/main/assets/emoji/3_325.png new file mode 100644 index 0000000000..cbf9842520 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_325.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_326.png b/TMessagesProj/src/main/assets/emoji/3_326.png new file mode 100644 index 0000000000..33d578c219 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_326.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_327.png b/TMessagesProj/src/main/assets/emoji/3_327.png new file mode 100644 index 0000000000..f2504f97a1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_327.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_328.png b/TMessagesProj/src/main/assets/emoji/3_328.png new file mode 100644 index 0000000000..fcc9a684a4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_328.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_329.png b/TMessagesProj/src/main/assets/emoji/3_329.png new file mode 100644 index 0000000000..aafc456463 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_329.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_33.png b/TMessagesProj/src/main/assets/emoji/3_33.png new file mode 100644 index 0000000000..65de704502 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_330.png b/TMessagesProj/src/main/assets/emoji/3_330.png new file mode 100644 index 0000000000..d99b613ad3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_330.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_331.png b/TMessagesProj/src/main/assets/emoji/3_331.png new file mode 100644 index 0000000000..fef7515822 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_331.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_332.png b/TMessagesProj/src/main/assets/emoji/3_332.png new file mode 100644 index 0000000000..55ab1b24ee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_332.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_333.png b/TMessagesProj/src/main/assets/emoji/3_333.png new file mode 100644 index 0000000000..4a2986047e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_333.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_334.png b/TMessagesProj/src/main/assets/emoji/3_334.png new file mode 100644 index 0000000000..2452c1ac23 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_334.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_34.png b/TMessagesProj/src/main/assets/emoji/3_34.png new file mode 100644 index 0000000000..5f8287ba6d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_35.png b/TMessagesProj/src/main/assets/emoji/3_35.png new file mode 100644 index 0000000000..8af3c736cd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_36.png b/TMessagesProj/src/main/assets/emoji/3_36.png new file mode 100644 index 0000000000..6794f264ce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_37.png b/TMessagesProj/src/main/assets/emoji/3_37.png new file mode 100644 index 0000000000..68f77351c8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_38.png b/TMessagesProj/src/main/assets/emoji/3_38.png new file mode 100644 index 0000000000..eea7bd2777 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_39.png b/TMessagesProj/src/main/assets/emoji/3_39.png new file mode 100644 index 0000000000..74c59f536b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_4.png b/TMessagesProj/src/main/assets/emoji/3_4.png new file mode 100644 index 0000000000..695bf69525 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_40.png b/TMessagesProj/src/main/assets/emoji/3_40.png new file mode 100644 index 0000000000..4dc0908d4c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_41.png b/TMessagesProj/src/main/assets/emoji/3_41.png new file mode 100644 index 0000000000..6e0da452ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_42.png b/TMessagesProj/src/main/assets/emoji/3_42.png new file mode 100644 index 0000000000..b307ab30a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_43.png b/TMessagesProj/src/main/assets/emoji/3_43.png new file mode 100644 index 0000000000..732970a3fd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_44.png b/TMessagesProj/src/main/assets/emoji/3_44.png new file mode 100644 index 0000000000..cc892112a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_45.png b/TMessagesProj/src/main/assets/emoji/3_45.png new file mode 100644 index 0000000000..79d3090bac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_46.png b/TMessagesProj/src/main/assets/emoji/3_46.png new file mode 100644 index 0000000000..1abf94d436 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_47.png b/TMessagesProj/src/main/assets/emoji/3_47.png new file mode 100644 index 0000000000..9903d157cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_48.png b/TMessagesProj/src/main/assets/emoji/3_48.png new file mode 100644 index 0000000000..d312a492f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_49.png b/TMessagesProj/src/main/assets/emoji/3_49.png new file mode 100644 index 0000000000..00b5e3517a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_5.png b/TMessagesProj/src/main/assets/emoji/3_5.png new file mode 100644 index 0000000000..fcedd7bf9e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_50.png b/TMessagesProj/src/main/assets/emoji/3_50.png new file mode 100644 index 0000000000..4373a1df76 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_51.png b/TMessagesProj/src/main/assets/emoji/3_51.png new file mode 100644 index 0000000000..2558a8e0f1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_52.png b/TMessagesProj/src/main/assets/emoji/3_52.png new file mode 100644 index 0000000000..29e35348ab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_53.png b/TMessagesProj/src/main/assets/emoji/3_53.png new file mode 100644 index 0000000000..6b98628953 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_54.png b/TMessagesProj/src/main/assets/emoji/3_54.png new file mode 100644 index 0000000000..232c9a6b8f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_55.png b/TMessagesProj/src/main/assets/emoji/3_55.png new file mode 100644 index 0000000000..5ce1445dcf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_56.png b/TMessagesProj/src/main/assets/emoji/3_56.png new file mode 100644 index 0000000000..25f91d4af7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_57.png b/TMessagesProj/src/main/assets/emoji/3_57.png new file mode 100644 index 0000000000..311103eb4f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_58.png b/TMessagesProj/src/main/assets/emoji/3_58.png new file mode 100644 index 0000000000..1a0825abfe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_59.png b/TMessagesProj/src/main/assets/emoji/3_59.png new file mode 100644 index 0000000000..5f101c8630 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_6.png b/TMessagesProj/src/main/assets/emoji/3_6.png new file mode 100644 index 0000000000..fa93a47f03 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_60.png b/TMessagesProj/src/main/assets/emoji/3_60.png new file mode 100644 index 0000000000..351d882eae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_61.png b/TMessagesProj/src/main/assets/emoji/3_61.png new file mode 100644 index 0000000000..645af71637 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_62.png b/TMessagesProj/src/main/assets/emoji/3_62.png new file mode 100644 index 0000000000..11dbe391c5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_63.png b/TMessagesProj/src/main/assets/emoji/3_63.png new file mode 100644 index 0000000000..70404e8669 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_64.png b/TMessagesProj/src/main/assets/emoji/3_64.png new file mode 100644 index 0000000000..e455878d48 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_65.png b/TMessagesProj/src/main/assets/emoji/3_65.png new file mode 100644 index 0000000000..5d816f1a52 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_66.png b/TMessagesProj/src/main/assets/emoji/3_66.png new file mode 100644 index 0000000000..bc9a64cef4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_67.png b/TMessagesProj/src/main/assets/emoji/3_67.png new file mode 100644 index 0000000000..02d4b6555d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_68.png b/TMessagesProj/src/main/assets/emoji/3_68.png new file mode 100644 index 0000000000..42fea07b52 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_69.png b/TMessagesProj/src/main/assets/emoji/3_69.png new file mode 100644 index 0000000000..657f780b39 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_7.png b/TMessagesProj/src/main/assets/emoji/3_7.png new file mode 100644 index 0000000000..14322f8ee0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_70.png b/TMessagesProj/src/main/assets/emoji/3_70.png new file mode 100644 index 0000000000..b94a9358d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_71.png b/TMessagesProj/src/main/assets/emoji/3_71.png new file mode 100644 index 0000000000..ee9e496779 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_72.png b/TMessagesProj/src/main/assets/emoji/3_72.png new file mode 100644 index 0000000000..f0991fa60e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_73.png b/TMessagesProj/src/main/assets/emoji/3_73.png new file mode 100644 index 0000000000..6949e21225 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_74.png b/TMessagesProj/src/main/assets/emoji/3_74.png new file mode 100644 index 0000000000..7adc7eaf35 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_75.png b/TMessagesProj/src/main/assets/emoji/3_75.png new file mode 100644 index 0000000000..91266ebc85 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_76.png b/TMessagesProj/src/main/assets/emoji/3_76.png new file mode 100644 index 0000000000..d8ad567466 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_77.png b/TMessagesProj/src/main/assets/emoji/3_77.png new file mode 100644 index 0000000000..0cee503038 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_78.png b/TMessagesProj/src/main/assets/emoji/3_78.png new file mode 100644 index 0000000000..7fc8b98823 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_79.png b/TMessagesProj/src/main/assets/emoji/3_79.png new file mode 100644 index 0000000000..249b8d2d03 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_8.png b/TMessagesProj/src/main/assets/emoji/3_8.png new file mode 100644 index 0000000000..c3ccd8bbd3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_80.png b/TMessagesProj/src/main/assets/emoji/3_80.png new file mode 100644 index 0000000000..8f16bab4db Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_81.png b/TMessagesProj/src/main/assets/emoji/3_81.png new file mode 100644 index 0000000000..249d6e15a6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_82.png b/TMessagesProj/src/main/assets/emoji/3_82.png new file mode 100644 index 0000000000..a0145319c4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_83.png b/TMessagesProj/src/main/assets/emoji/3_83.png new file mode 100644 index 0000000000..82fe362d8b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_84.png b/TMessagesProj/src/main/assets/emoji/3_84.png new file mode 100644 index 0000000000..316fadb688 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_85.png b/TMessagesProj/src/main/assets/emoji/3_85.png new file mode 100644 index 0000000000..1c4b9be0d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_86.png b/TMessagesProj/src/main/assets/emoji/3_86.png new file mode 100644 index 0000000000..a706060981 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_87.png b/TMessagesProj/src/main/assets/emoji/3_87.png new file mode 100644 index 0000000000..86a429ec9c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_88.png b/TMessagesProj/src/main/assets/emoji/3_88.png new file mode 100644 index 0000000000..27f8970bbc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_89.png b/TMessagesProj/src/main/assets/emoji/3_89.png new file mode 100644 index 0000000000..d709287c14 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_9.png b/TMessagesProj/src/main/assets/emoji/3_9.png new file mode 100644 index 0000000000..b3fb16ca48 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_90.png b/TMessagesProj/src/main/assets/emoji/3_90.png new file mode 100644 index 0000000000..b8017e4ac6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_91.png b/TMessagesProj/src/main/assets/emoji/3_91.png new file mode 100644 index 0000000000..32659977aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_92.png b/TMessagesProj/src/main/assets/emoji/3_92.png new file mode 100644 index 0000000000..88010e31cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_93.png b/TMessagesProj/src/main/assets/emoji/3_93.png new file mode 100644 index 0000000000..2754609269 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_94.png b/TMessagesProj/src/main/assets/emoji/3_94.png new file mode 100644 index 0000000000..7a55c2c662 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_95.png b/TMessagesProj/src/main/assets/emoji/3_95.png new file mode 100644 index 0000000000..74dffe7ec2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_96.png b/TMessagesProj/src/main/assets/emoji/3_96.png new file mode 100644 index 0000000000..fc56b41d88 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_97.png b/TMessagesProj/src/main/assets/emoji/3_97.png new file mode 100644 index 0000000000..f02c4b09f3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_98.png b/TMessagesProj/src/main/assets/emoji/3_98.png new file mode 100644 index 0000000000..ca158ef13e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_99.png b/TMessagesProj/src/main/assets/emoji/3_99.png new file mode 100644 index 0000000000..992699b5f3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/3_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_0.png b/TMessagesProj/src/main/assets/emoji/4_0.png new file mode 100644 index 0000000000..bb8c3e8e8c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_1.png b/TMessagesProj/src/main/assets/emoji/4_1.png new file mode 100644 index 0000000000..46648ed3ee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_10.png b/TMessagesProj/src/main/assets/emoji/4_10.png new file mode 100644 index 0000000000..eee12240b0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_100.png b/TMessagesProj/src/main/assets/emoji/4_100.png new file mode 100644 index 0000000000..0db12cf3a0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_101.png b/TMessagesProj/src/main/assets/emoji/4_101.png new file mode 100644 index 0000000000..f7b4163afa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_102.png b/TMessagesProj/src/main/assets/emoji/4_102.png new file mode 100644 index 0000000000..db45ac1196 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_103.png b/TMessagesProj/src/main/assets/emoji/4_103.png new file mode 100644 index 0000000000..cb7290083c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_104.png b/TMessagesProj/src/main/assets/emoji/4_104.png new file mode 100644 index 0000000000..a33ee1b864 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_105.png b/TMessagesProj/src/main/assets/emoji/4_105.png new file mode 100644 index 0000000000..e992cda8bb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_106.png b/TMessagesProj/src/main/assets/emoji/4_106.png new file mode 100644 index 0000000000..c0da28c0d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_107.png b/TMessagesProj/src/main/assets/emoji/4_107.png new file mode 100644 index 0000000000..b1931f9573 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_108.png b/TMessagesProj/src/main/assets/emoji/4_108.png new file mode 100644 index 0000000000..c763e8028e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_109.png b/TMessagesProj/src/main/assets/emoji/4_109.png new file mode 100644 index 0000000000..35432f951d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_11.png b/TMessagesProj/src/main/assets/emoji/4_11.png new file mode 100644 index 0000000000..a348eb797d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_110.png b/TMessagesProj/src/main/assets/emoji/4_110.png new file mode 100644 index 0000000000..3dcc6521d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_111.png b/TMessagesProj/src/main/assets/emoji/4_111.png new file mode 100644 index 0000000000..71acb66219 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_112.png b/TMessagesProj/src/main/assets/emoji/4_112.png new file mode 100644 index 0000000000..4d0abfb94b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_113.png b/TMessagesProj/src/main/assets/emoji/4_113.png new file mode 100644 index 0000000000..f9e3558ba1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_114.png b/TMessagesProj/src/main/assets/emoji/4_114.png new file mode 100644 index 0000000000..fb6631c058 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_115.png b/TMessagesProj/src/main/assets/emoji/4_115.png new file mode 100644 index 0000000000..d36d3adc5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_116.png b/TMessagesProj/src/main/assets/emoji/4_116.png new file mode 100644 index 0000000000..4f19d97f94 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_117.png b/TMessagesProj/src/main/assets/emoji/4_117.png new file mode 100644 index 0000000000..de4bb5ebab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_118.png b/TMessagesProj/src/main/assets/emoji/4_118.png new file mode 100644 index 0000000000..f403a9a34f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_119.png b/TMessagesProj/src/main/assets/emoji/4_119.png new file mode 100644 index 0000000000..9d4b3a9abc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_12.png b/TMessagesProj/src/main/assets/emoji/4_12.png new file mode 100644 index 0000000000..478a09d34e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_120.png b/TMessagesProj/src/main/assets/emoji/4_120.png new file mode 100644 index 0000000000..813601169f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_121.png b/TMessagesProj/src/main/assets/emoji/4_121.png new file mode 100644 index 0000000000..fb7eec1620 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_122.png b/TMessagesProj/src/main/assets/emoji/4_122.png new file mode 100644 index 0000000000..f39a415afd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_123.png b/TMessagesProj/src/main/assets/emoji/4_123.png new file mode 100644 index 0000000000..e7e5201328 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_124.png b/TMessagesProj/src/main/assets/emoji/4_124.png new file mode 100644 index 0000000000..f73c9a0469 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_125.png b/TMessagesProj/src/main/assets/emoji/4_125.png new file mode 100644 index 0000000000..4431df56bd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_126.png b/TMessagesProj/src/main/assets/emoji/4_126.png new file mode 100644 index 0000000000..156ace02ec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_127.png b/TMessagesProj/src/main/assets/emoji/4_127.png new file mode 100644 index 0000000000..cf772cba22 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_128.png b/TMessagesProj/src/main/assets/emoji/4_128.png new file mode 100644 index 0000000000..232aa10b54 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_129.png b/TMessagesProj/src/main/assets/emoji/4_129.png new file mode 100644 index 0000000000..849b62fef1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_13.png b/TMessagesProj/src/main/assets/emoji/4_13.png new file mode 100644 index 0000000000..a6f2c2a46b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_130.png b/TMessagesProj/src/main/assets/emoji/4_130.png new file mode 100644 index 0000000000..eb392deb55 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_14.png b/TMessagesProj/src/main/assets/emoji/4_14.png new file mode 100644 index 0000000000..254d01d22f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_15.png b/TMessagesProj/src/main/assets/emoji/4_15.png new file mode 100644 index 0000000000..513f8a4592 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_16.png b/TMessagesProj/src/main/assets/emoji/4_16.png new file mode 100644 index 0000000000..5ee81a6f2b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_17.png b/TMessagesProj/src/main/assets/emoji/4_17.png new file mode 100644 index 0000000000..554925226a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_18.png b/TMessagesProj/src/main/assets/emoji/4_18.png new file mode 100644 index 0000000000..02c00cf559 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_19.png b/TMessagesProj/src/main/assets/emoji/4_19.png new file mode 100644 index 0000000000..2b7a109d49 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_2.png b/TMessagesProj/src/main/assets/emoji/4_2.png new file mode 100644 index 0000000000..a3f6c690f8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_20.png b/TMessagesProj/src/main/assets/emoji/4_20.png new file mode 100644 index 0000000000..71536ca148 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_21.png b/TMessagesProj/src/main/assets/emoji/4_21.png new file mode 100644 index 0000000000..61a3645da3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_22.png b/TMessagesProj/src/main/assets/emoji/4_22.png new file mode 100644 index 0000000000..b4a01b55a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_23.png b/TMessagesProj/src/main/assets/emoji/4_23.png new file mode 100644 index 0000000000..413fa2d4da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_24.png b/TMessagesProj/src/main/assets/emoji/4_24.png new file mode 100644 index 0000000000..a8f74de40d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_25.png b/TMessagesProj/src/main/assets/emoji/4_25.png new file mode 100644 index 0000000000..360c35d004 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_26.png b/TMessagesProj/src/main/assets/emoji/4_26.png new file mode 100644 index 0000000000..a5e48da561 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_27.png b/TMessagesProj/src/main/assets/emoji/4_27.png new file mode 100644 index 0000000000..0395db817e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_28.png b/TMessagesProj/src/main/assets/emoji/4_28.png new file mode 100644 index 0000000000..de41649526 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_29.png b/TMessagesProj/src/main/assets/emoji/4_29.png new file mode 100644 index 0000000000..ebe9d3cf47 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_3.png b/TMessagesProj/src/main/assets/emoji/4_3.png new file mode 100644 index 0000000000..f096ff968d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_30.png b/TMessagesProj/src/main/assets/emoji/4_30.png new file mode 100644 index 0000000000..bc4d1b2b4e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_31.png b/TMessagesProj/src/main/assets/emoji/4_31.png new file mode 100644 index 0000000000..713818221c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_32.png b/TMessagesProj/src/main/assets/emoji/4_32.png new file mode 100644 index 0000000000..8af55abf82 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_33.png b/TMessagesProj/src/main/assets/emoji/4_33.png new file mode 100644 index 0000000000..96ef2414d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_34.png b/TMessagesProj/src/main/assets/emoji/4_34.png new file mode 100644 index 0000000000..1c886faa6f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_35.png b/TMessagesProj/src/main/assets/emoji/4_35.png new file mode 100644 index 0000000000..7fb94fc9fd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_36.png b/TMessagesProj/src/main/assets/emoji/4_36.png new file mode 100644 index 0000000000..4492c4a395 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_37.png b/TMessagesProj/src/main/assets/emoji/4_37.png new file mode 100644 index 0000000000..8aca72cbd8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_38.png b/TMessagesProj/src/main/assets/emoji/4_38.png new file mode 100644 index 0000000000..fdcb373a8e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_39.png b/TMessagesProj/src/main/assets/emoji/4_39.png new file mode 100644 index 0000000000..99a2703a33 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_4.png b/TMessagesProj/src/main/assets/emoji/4_4.png new file mode 100644 index 0000000000..ab829decc1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_40.png b/TMessagesProj/src/main/assets/emoji/4_40.png new file mode 100644 index 0000000000..cdbdffbad0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_41.png b/TMessagesProj/src/main/assets/emoji/4_41.png new file mode 100644 index 0000000000..c94ab0a328 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_42.png b/TMessagesProj/src/main/assets/emoji/4_42.png new file mode 100644 index 0000000000..4d5bdc6b1a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_43.png b/TMessagesProj/src/main/assets/emoji/4_43.png new file mode 100644 index 0000000000..658f97519e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_44.png b/TMessagesProj/src/main/assets/emoji/4_44.png new file mode 100644 index 0000000000..f70b382e40 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_45.png b/TMessagesProj/src/main/assets/emoji/4_45.png new file mode 100644 index 0000000000..5a412685ad Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_46.png b/TMessagesProj/src/main/assets/emoji/4_46.png new file mode 100644 index 0000000000..56a2169a23 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_47.png b/TMessagesProj/src/main/assets/emoji/4_47.png new file mode 100644 index 0000000000..7e7ade3c46 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_48.png b/TMessagesProj/src/main/assets/emoji/4_48.png new file mode 100644 index 0000000000..7be7cd9cd7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_49.png b/TMessagesProj/src/main/assets/emoji/4_49.png new file mode 100644 index 0000000000..1b81179363 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_5.png b/TMessagesProj/src/main/assets/emoji/4_5.png new file mode 100644 index 0000000000..0f0940ed66 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_50.png b/TMessagesProj/src/main/assets/emoji/4_50.png new file mode 100644 index 0000000000..36cce28643 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_51.png b/TMessagesProj/src/main/assets/emoji/4_51.png new file mode 100644 index 0000000000..f6f837891e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_52.png b/TMessagesProj/src/main/assets/emoji/4_52.png new file mode 100644 index 0000000000..5a7e761606 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_53.png b/TMessagesProj/src/main/assets/emoji/4_53.png new file mode 100644 index 0000000000..a5105f0b2c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_54.png b/TMessagesProj/src/main/assets/emoji/4_54.png new file mode 100644 index 0000000000..7db12713fa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_55.png b/TMessagesProj/src/main/assets/emoji/4_55.png new file mode 100644 index 0000000000..d1abdd029f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_56.png b/TMessagesProj/src/main/assets/emoji/4_56.png new file mode 100644 index 0000000000..7681cf7f1b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_57.png b/TMessagesProj/src/main/assets/emoji/4_57.png new file mode 100644 index 0000000000..eef0dad02c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_58.png b/TMessagesProj/src/main/assets/emoji/4_58.png new file mode 100644 index 0000000000..6c5cd4fd66 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_59.png b/TMessagesProj/src/main/assets/emoji/4_59.png new file mode 100644 index 0000000000..1b681d9c1d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_6.png b/TMessagesProj/src/main/assets/emoji/4_6.png new file mode 100644 index 0000000000..ca2a20d5bd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_60.png b/TMessagesProj/src/main/assets/emoji/4_60.png new file mode 100644 index 0000000000..42dfc2f51b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_61.png b/TMessagesProj/src/main/assets/emoji/4_61.png new file mode 100644 index 0000000000..d65fd1ec6d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_62.png b/TMessagesProj/src/main/assets/emoji/4_62.png new file mode 100644 index 0000000000..973d062135 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_63.png b/TMessagesProj/src/main/assets/emoji/4_63.png new file mode 100644 index 0000000000..2d2c4df820 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_64.png b/TMessagesProj/src/main/assets/emoji/4_64.png new file mode 100644 index 0000000000..c1af39ea78 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_65.png b/TMessagesProj/src/main/assets/emoji/4_65.png new file mode 100644 index 0000000000..3fbc2b66b9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_66.png b/TMessagesProj/src/main/assets/emoji/4_66.png new file mode 100644 index 0000000000..134c4a22e4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_67.png b/TMessagesProj/src/main/assets/emoji/4_67.png new file mode 100644 index 0000000000..e78ba16de8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_68.png b/TMessagesProj/src/main/assets/emoji/4_68.png new file mode 100644 index 0000000000..ae50116f6d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_69.png b/TMessagesProj/src/main/assets/emoji/4_69.png new file mode 100644 index 0000000000..d007b4b06b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_7.png b/TMessagesProj/src/main/assets/emoji/4_7.png new file mode 100644 index 0000000000..c08269555f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_70.png b/TMessagesProj/src/main/assets/emoji/4_70.png new file mode 100644 index 0000000000..0475ec48e4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_71.png b/TMessagesProj/src/main/assets/emoji/4_71.png new file mode 100644 index 0000000000..0c363cbcbb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_72.png b/TMessagesProj/src/main/assets/emoji/4_72.png new file mode 100644 index 0000000000..cbde3751af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_73.png b/TMessagesProj/src/main/assets/emoji/4_73.png new file mode 100644 index 0000000000..b982661977 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_74.png b/TMessagesProj/src/main/assets/emoji/4_74.png new file mode 100644 index 0000000000..2f915c52a2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_75.png b/TMessagesProj/src/main/assets/emoji/4_75.png new file mode 100644 index 0000000000..b0ba1b3805 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_76.png b/TMessagesProj/src/main/assets/emoji/4_76.png new file mode 100644 index 0000000000..6990f789f2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_77.png b/TMessagesProj/src/main/assets/emoji/4_77.png new file mode 100644 index 0000000000..7b0e638bdc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_78.png b/TMessagesProj/src/main/assets/emoji/4_78.png new file mode 100644 index 0000000000..23f635331a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_79.png b/TMessagesProj/src/main/assets/emoji/4_79.png new file mode 100644 index 0000000000..da6aa4c80e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_8.png b/TMessagesProj/src/main/assets/emoji/4_8.png new file mode 100644 index 0000000000..f854a2e898 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_80.png b/TMessagesProj/src/main/assets/emoji/4_80.png new file mode 100644 index 0000000000..1b9e315a34 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_81.png b/TMessagesProj/src/main/assets/emoji/4_81.png new file mode 100644 index 0000000000..5b6aae0269 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_82.png b/TMessagesProj/src/main/assets/emoji/4_82.png new file mode 100644 index 0000000000..a448ca060d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_83.png b/TMessagesProj/src/main/assets/emoji/4_83.png new file mode 100644 index 0000000000..715eb0506d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_84.png b/TMessagesProj/src/main/assets/emoji/4_84.png new file mode 100644 index 0000000000..9643f8cbf2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_85.png b/TMessagesProj/src/main/assets/emoji/4_85.png new file mode 100644 index 0000000000..110367a7b5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_86.png b/TMessagesProj/src/main/assets/emoji/4_86.png new file mode 100644 index 0000000000..829ed1cef3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_87.png b/TMessagesProj/src/main/assets/emoji/4_87.png new file mode 100644 index 0000000000..5e568c7c4b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_88.png b/TMessagesProj/src/main/assets/emoji/4_88.png new file mode 100644 index 0000000000..3136784373 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_89.png b/TMessagesProj/src/main/assets/emoji/4_89.png new file mode 100644 index 0000000000..157cf24d15 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_9.png b/TMessagesProj/src/main/assets/emoji/4_9.png new file mode 100644 index 0000000000..fb5a7c3dbe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_90.png b/TMessagesProj/src/main/assets/emoji/4_90.png new file mode 100644 index 0000000000..2bd8e43505 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_91.png b/TMessagesProj/src/main/assets/emoji/4_91.png new file mode 100644 index 0000000000..289d5edc1e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_92.png b/TMessagesProj/src/main/assets/emoji/4_92.png new file mode 100644 index 0000000000..8695f57905 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_93.png b/TMessagesProj/src/main/assets/emoji/4_93.png new file mode 100644 index 0000000000..76f30d53bc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_94.png b/TMessagesProj/src/main/assets/emoji/4_94.png new file mode 100644 index 0000000000..299a59b507 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_95.png b/TMessagesProj/src/main/assets/emoji/4_95.png new file mode 100644 index 0000000000..551f111631 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_96.png b/TMessagesProj/src/main/assets/emoji/4_96.png new file mode 100644 index 0000000000..eb04ca7f47 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_97.png b/TMessagesProj/src/main/assets/emoji/4_97.png new file mode 100644 index 0000000000..7a7611081b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_98.png b/TMessagesProj/src/main/assets/emoji/4_98.png new file mode 100644 index 0000000000..29b1749f25 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_99.png b/TMessagesProj/src/main/assets/emoji/4_99.png new file mode 100644 index 0000000000..e0dd25fd6c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/4_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_0.png b/TMessagesProj/src/main/assets/emoji/5_0.png new file mode 100644 index 0000000000..5e450837be Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_1.png b/TMessagesProj/src/main/assets/emoji/5_1.png new file mode 100644 index 0000000000..b63c8a0456 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_10.png b/TMessagesProj/src/main/assets/emoji/5_10.png new file mode 100644 index 0000000000..134a2dcc45 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_100.png b/TMessagesProj/src/main/assets/emoji/5_100.png new file mode 100644 index 0000000000..8d73ccc256 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_101.png b/TMessagesProj/src/main/assets/emoji/5_101.png new file mode 100644 index 0000000000..9cf676c88f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_102.png b/TMessagesProj/src/main/assets/emoji/5_102.png new file mode 100644 index 0000000000..1d7c01e534 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_103.png b/TMessagesProj/src/main/assets/emoji/5_103.png new file mode 100644 index 0000000000..e09831a0fa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_104.png b/TMessagesProj/src/main/assets/emoji/5_104.png new file mode 100644 index 0000000000..36e95797b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_105.png b/TMessagesProj/src/main/assets/emoji/5_105.png new file mode 100644 index 0000000000..6b670e5704 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_106.png b/TMessagesProj/src/main/assets/emoji/5_106.png new file mode 100644 index 0000000000..c426475e73 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_107.png b/TMessagesProj/src/main/assets/emoji/5_107.png new file mode 100644 index 0000000000..78b704d39d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_108.png b/TMessagesProj/src/main/assets/emoji/5_108.png new file mode 100644 index 0000000000..3b10ba4e5b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_109.png b/TMessagesProj/src/main/assets/emoji/5_109.png new file mode 100644 index 0000000000..31ecb69e2d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_11.png b/TMessagesProj/src/main/assets/emoji/5_11.png new file mode 100644 index 0000000000..b3e370b11d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_110.png b/TMessagesProj/src/main/assets/emoji/5_110.png new file mode 100644 index 0000000000..8acccf1174 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_111.png b/TMessagesProj/src/main/assets/emoji/5_111.png new file mode 100644 index 0000000000..d8115e7d34 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_112.png b/TMessagesProj/src/main/assets/emoji/5_112.png new file mode 100644 index 0000000000..4c59ad98aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_113.png b/TMessagesProj/src/main/assets/emoji/5_113.png new file mode 100644 index 0000000000..2111c66b13 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_114.png b/TMessagesProj/src/main/assets/emoji/5_114.png new file mode 100644 index 0000000000..9a9c35658a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_115.png b/TMessagesProj/src/main/assets/emoji/5_115.png new file mode 100644 index 0000000000..64fc0f7e28 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_116.png b/TMessagesProj/src/main/assets/emoji/5_116.png new file mode 100644 index 0000000000..ac06e135d5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_117.png b/TMessagesProj/src/main/assets/emoji/5_117.png new file mode 100644 index 0000000000..c7ce188eae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_118.png b/TMessagesProj/src/main/assets/emoji/5_118.png new file mode 100644 index 0000000000..b7b689340b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_119.png b/TMessagesProj/src/main/assets/emoji/5_119.png new file mode 100644 index 0000000000..c134e3ee5d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_12.png b/TMessagesProj/src/main/assets/emoji/5_12.png new file mode 100644 index 0000000000..29eaf6652c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_120.png b/TMessagesProj/src/main/assets/emoji/5_120.png new file mode 100644 index 0000000000..3d5aa23acd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_121.png b/TMessagesProj/src/main/assets/emoji/5_121.png new file mode 100644 index 0000000000..1792de9370 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_122.png b/TMessagesProj/src/main/assets/emoji/5_122.png new file mode 100644 index 0000000000..a6a2a5538f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_123.png b/TMessagesProj/src/main/assets/emoji/5_123.png new file mode 100644 index 0000000000..066e0c7aa8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_124.png b/TMessagesProj/src/main/assets/emoji/5_124.png new file mode 100644 index 0000000000..fe12e766d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_125.png b/TMessagesProj/src/main/assets/emoji/5_125.png new file mode 100644 index 0000000000..dc44ba47c3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_126.png b/TMessagesProj/src/main/assets/emoji/5_126.png new file mode 100644 index 0000000000..5c0b435970 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_127.png b/TMessagesProj/src/main/assets/emoji/5_127.png new file mode 100644 index 0000000000..e029f552f2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_128.png b/TMessagesProj/src/main/assets/emoji/5_128.png new file mode 100644 index 0000000000..85519765c9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_129.png b/TMessagesProj/src/main/assets/emoji/5_129.png new file mode 100644 index 0000000000..94477085f7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_13.png b/TMessagesProj/src/main/assets/emoji/5_13.png new file mode 100644 index 0000000000..064e187c0d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_130.png b/TMessagesProj/src/main/assets/emoji/5_130.png new file mode 100644 index 0000000000..e091254b65 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_131.png b/TMessagesProj/src/main/assets/emoji/5_131.png new file mode 100644 index 0000000000..5505af987a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_132.png b/TMessagesProj/src/main/assets/emoji/5_132.png new file mode 100644 index 0000000000..5adaba2d1b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_133.png b/TMessagesProj/src/main/assets/emoji/5_133.png new file mode 100644 index 0000000000..0acbac67d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_134.png b/TMessagesProj/src/main/assets/emoji/5_134.png new file mode 100644 index 0000000000..21d9fc92b5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_135.png b/TMessagesProj/src/main/assets/emoji/5_135.png new file mode 100644 index 0000000000..db7e9f49d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_136.png b/TMessagesProj/src/main/assets/emoji/5_136.png new file mode 100644 index 0000000000..b0ea3e0e0b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_137.png b/TMessagesProj/src/main/assets/emoji/5_137.png new file mode 100644 index 0000000000..5bc76ec6f9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_138.png b/TMessagesProj/src/main/assets/emoji/5_138.png new file mode 100644 index 0000000000..3e2dfcc636 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_139.png b/TMessagesProj/src/main/assets/emoji/5_139.png new file mode 100644 index 0000000000..62928412ee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_14.png b/TMessagesProj/src/main/assets/emoji/5_14.png new file mode 100644 index 0000000000..2bfaf0c414 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_140.png b/TMessagesProj/src/main/assets/emoji/5_140.png new file mode 100644 index 0000000000..1aa1bc9a36 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_141.png b/TMessagesProj/src/main/assets/emoji/5_141.png new file mode 100644 index 0000000000..1fd92b5456 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_142.png b/TMessagesProj/src/main/assets/emoji/5_142.png new file mode 100644 index 0000000000..5bd48077c0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_143.png b/TMessagesProj/src/main/assets/emoji/5_143.png new file mode 100644 index 0000000000..80b21ab4bc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_144.png b/TMessagesProj/src/main/assets/emoji/5_144.png new file mode 100644 index 0000000000..6ad13a6098 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_145.png b/TMessagesProj/src/main/assets/emoji/5_145.png new file mode 100644 index 0000000000..cd6fd9b139 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_146.png b/TMessagesProj/src/main/assets/emoji/5_146.png new file mode 100644 index 0000000000..0394e9200f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_147.png b/TMessagesProj/src/main/assets/emoji/5_147.png new file mode 100644 index 0000000000..ca4302bcb1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_148.png b/TMessagesProj/src/main/assets/emoji/5_148.png new file mode 100644 index 0000000000..9c65f87182 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_149.png b/TMessagesProj/src/main/assets/emoji/5_149.png new file mode 100644 index 0000000000..12a776f202 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_15.png b/TMessagesProj/src/main/assets/emoji/5_15.png new file mode 100644 index 0000000000..0c90af022f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_150.png b/TMessagesProj/src/main/assets/emoji/5_150.png new file mode 100644 index 0000000000..5493622445 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_151.png b/TMessagesProj/src/main/assets/emoji/5_151.png new file mode 100644 index 0000000000..4f106eaa66 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_152.png b/TMessagesProj/src/main/assets/emoji/5_152.png new file mode 100644 index 0000000000..3589967b7d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_153.png b/TMessagesProj/src/main/assets/emoji/5_153.png new file mode 100644 index 0000000000..295ea25cbe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_154.png b/TMessagesProj/src/main/assets/emoji/5_154.png new file mode 100644 index 0000000000..1dfa645359 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_155.png b/TMessagesProj/src/main/assets/emoji/5_155.png new file mode 100644 index 0000000000..224266f4a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_156.png b/TMessagesProj/src/main/assets/emoji/5_156.png new file mode 100644 index 0000000000..ba4f10036c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_157.png b/TMessagesProj/src/main/assets/emoji/5_157.png new file mode 100644 index 0000000000..acdf792d2d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_158.png b/TMessagesProj/src/main/assets/emoji/5_158.png new file mode 100644 index 0000000000..23cead5089 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_159.png b/TMessagesProj/src/main/assets/emoji/5_159.png new file mode 100644 index 0000000000..9e39b83829 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_16.png b/TMessagesProj/src/main/assets/emoji/5_16.png new file mode 100644 index 0000000000..0a680a3406 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_160.png b/TMessagesProj/src/main/assets/emoji/5_160.png new file mode 100644 index 0000000000..57639be56d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_161.png b/TMessagesProj/src/main/assets/emoji/5_161.png new file mode 100644 index 0000000000..ef7ab5c67b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_162.png b/TMessagesProj/src/main/assets/emoji/5_162.png new file mode 100644 index 0000000000..e2dd58d426 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_163.png b/TMessagesProj/src/main/assets/emoji/5_163.png new file mode 100644 index 0000000000..4f471a8f4f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_164.png b/TMessagesProj/src/main/assets/emoji/5_164.png new file mode 100644 index 0000000000..bbd6d50a3b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_165.png b/TMessagesProj/src/main/assets/emoji/5_165.png new file mode 100644 index 0000000000..6ee176359e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_166.png b/TMessagesProj/src/main/assets/emoji/5_166.png new file mode 100644 index 0000000000..311e55ac17 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_167.png b/TMessagesProj/src/main/assets/emoji/5_167.png new file mode 100644 index 0000000000..eff092116b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_168.png b/TMessagesProj/src/main/assets/emoji/5_168.png new file mode 100644 index 0000000000..db7cf62200 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_169.png b/TMessagesProj/src/main/assets/emoji/5_169.png new file mode 100644 index 0000000000..82e8a836df Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_17.png b/TMessagesProj/src/main/assets/emoji/5_17.png new file mode 100644 index 0000000000..943ab60be9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_170.png b/TMessagesProj/src/main/assets/emoji/5_170.png new file mode 100644 index 0000000000..f8cb1bcc4d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_171.png b/TMessagesProj/src/main/assets/emoji/5_171.png new file mode 100644 index 0000000000..d6611ca2e3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_172.png b/TMessagesProj/src/main/assets/emoji/5_172.png new file mode 100644 index 0000000000..dbbe63fb5d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_173.png b/TMessagesProj/src/main/assets/emoji/5_173.png new file mode 100644 index 0000000000..081928fedb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_174.png b/TMessagesProj/src/main/assets/emoji/5_174.png new file mode 100644 index 0000000000..98af1ef131 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_175.png b/TMessagesProj/src/main/assets/emoji/5_175.png new file mode 100644 index 0000000000..1415d40451 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_176.png b/TMessagesProj/src/main/assets/emoji/5_176.png new file mode 100644 index 0000000000..6d566b8e38 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_177.png b/TMessagesProj/src/main/assets/emoji/5_177.png new file mode 100644 index 0000000000..fb46d68299 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_178.png b/TMessagesProj/src/main/assets/emoji/5_178.png new file mode 100644 index 0000000000..8a0c85609a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_179.png b/TMessagesProj/src/main/assets/emoji/5_179.png new file mode 100644 index 0000000000..70789204de Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_18.png b/TMessagesProj/src/main/assets/emoji/5_18.png new file mode 100644 index 0000000000..ce73d2b8fd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_180.png b/TMessagesProj/src/main/assets/emoji/5_180.png new file mode 100644 index 0000000000..23097bf547 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_181.png b/TMessagesProj/src/main/assets/emoji/5_181.png new file mode 100644 index 0000000000..0bda24b868 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_182.png b/TMessagesProj/src/main/assets/emoji/5_182.png new file mode 100644 index 0000000000..354e968ce5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_183.png b/TMessagesProj/src/main/assets/emoji/5_183.png new file mode 100644 index 0000000000..bbeb5496cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_184.png b/TMessagesProj/src/main/assets/emoji/5_184.png new file mode 100644 index 0000000000..26b6f7c786 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_185.png b/TMessagesProj/src/main/assets/emoji/5_185.png new file mode 100644 index 0000000000..2e1313ee6d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_186.png b/TMessagesProj/src/main/assets/emoji/5_186.png new file mode 100644 index 0000000000..1a61851150 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_187.png b/TMessagesProj/src/main/assets/emoji/5_187.png new file mode 100644 index 0000000000..9d281cc504 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_188.png b/TMessagesProj/src/main/assets/emoji/5_188.png new file mode 100644 index 0000000000..8aacb80dba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_189.png b/TMessagesProj/src/main/assets/emoji/5_189.png new file mode 100644 index 0000000000..e9d9f3c777 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_19.png b/TMessagesProj/src/main/assets/emoji/5_19.png new file mode 100644 index 0000000000..56ffb95437 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_190.png b/TMessagesProj/src/main/assets/emoji/5_190.png new file mode 100644 index 0000000000..7b5cc3efe4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_191.png b/TMessagesProj/src/main/assets/emoji/5_191.png new file mode 100644 index 0000000000..268d3e70d9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_192.png b/TMessagesProj/src/main/assets/emoji/5_192.png new file mode 100644 index 0000000000..0bf93ea0c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_193.png b/TMessagesProj/src/main/assets/emoji/5_193.png new file mode 100644 index 0000000000..b91076ea1a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_194.png b/TMessagesProj/src/main/assets/emoji/5_194.png new file mode 100644 index 0000000000..54e6a0fa11 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_195.png b/TMessagesProj/src/main/assets/emoji/5_195.png new file mode 100644 index 0000000000..099cab9206 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_196.png b/TMessagesProj/src/main/assets/emoji/5_196.png new file mode 100644 index 0000000000..8813ca881c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_197.png b/TMessagesProj/src/main/assets/emoji/5_197.png new file mode 100644 index 0000000000..d63e6c6229 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_198.png b/TMessagesProj/src/main/assets/emoji/5_198.png new file mode 100644 index 0000000000..b2a4d14feb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_199.png b/TMessagesProj/src/main/assets/emoji/5_199.png new file mode 100644 index 0000000000..a3a227c3d5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_2.png b/TMessagesProj/src/main/assets/emoji/5_2.png new file mode 100644 index 0000000000..64b750326c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_20.png b/TMessagesProj/src/main/assets/emoji/5_20.png new file mode 100644 index 0000000000..425cde5a11 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_200.png b/TMessagesProj/src/main/assets/emoji/5_200.png new file mode 100644 index 0000000000..5ae3ebd25e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_201.png b/TMessagesProj/src/main/assets/emoji/5_201.png new file mode 100644 index 0000000000..67b4cc8339 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_202.png b/TMessagesProj/src/main/assets/emoji/5_202.png new file mode 100644 index 0000000000..e297bad827 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_203.png b/TMessagesProj/src/main/assets/emoji/5_203.png new file mode 100644 index 0000000000..c7346abd47 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_204.png b/TMessagesProj/src/main/assets/emoji/5_204.png new file mode 100644 index 0000000000..ea3528594c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_205.png b/TMessagesProj/src/main/assets/emoji/5_205.png new file mode 100644 index 0000000000..225c1f3282 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_206.png b/TMessagesProj/src/main/assets/emoji/5_206.png new file mode 100644 index 0000000000..06e6ba3685 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_207.png b/TMessagesProj/src/main/assets/emoji/5_207.png new file mode 100644 index 0000000000..03ebd60504 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_208.png b/TMessagesProj/src/main/assets/emoji/5_208.png new file mode 100644 index 0000000000..ce6b4ea413 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_209.png b/TMessagesProj/src/main/assets/emoji/5_209.png new file mode 100644 index 0000000000..259347444f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_21.png b/TMessagesProj/src/main/assets/emoji/5_21.png new file mode 100644 index 0000000000..1e6c17902b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_210.png b/TMessagesProj/src/main/assets/emoji/5_210.png new file mode 100644 index 0000000000..571bfdb593 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_211.png b/TMessagesProj/src/main/assets/emoji/5_211.png new file mode 100644 index 0000000000..1b8a462826 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_212.png b/TMessagesProj/src/main/assets/emoji/5_212.png new file mode 100644 index 0000000000..97b8e1b5cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_213.png b/TMessagesProj/src/main/assets/emoji/5_213.png new file mode 100644 index 0000000000..2cd7be883d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_214.png b/TMessagesProj/src/main/assets/emoji/5_214.png new file mode 100644 index 0000000000..9c9fdc2fbe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_215.png b/TMessagesProj/src/main/assets/emoji/5_215.png new file mode 100644 index 0000000000..adbff04b50 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_216.png b/TMessagesProj/src/main/assets/emoji/5_216.png new file mode 100644 index 0000000000..418ee569a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_217.png b/TMessagesProj/src/main/assets/emoji/5_217.png new file mode 100644 index 0000000000..c7e83d5c30 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_218.png b/TMessagesProj/src/main/assets/emoji/5_218.png new file mode 100644 index 0000000000..95398105cc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_219.png b/TMessagesProj/src/main/assets/emoji/5_219.png new file mode 100644 index 0000000000..7f78b9cf31 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_22.png b/TMessagesProj/src/main/assets/emoji/5_22.png new file mode 100644 index 0000000000..baf2729603 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_220.png b/TMessagesProj/src/main/assets/emoji/5_220.png new file mode 100644 index 0000000000..283e751df3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_221.png b/TMessagesProj/src/main/assets/emoji/5_221.png new file mode 100644 index 0000000000..165228005e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_222.png b/TMessagesProj/src/main/assets/emoji/5_222.png new file mode 100644 index 0000000000..3e29be4730 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_223.png b/TMessagesProj/src/main/assets/emoji/5_223.png new file mode 100644 index 0000000000..bd1b2112ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_224.png b/TMessagesProj/src/main/assets/emoji/5_224.png new file mode 100644 index 0000000000..d7721f7cf5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_225.png b/TMessagesProj/src/main/assets/emoji/5_225.png new file mode 100644 index 0000000000..12b108878b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_226.png b/TMessagesProj/src/main/assets/emoji/5_226.png new file mode 100644 index 0000000000..16575b2c2d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_227.png b/TMessagesProj/src/main/assets/emoji/5_227.png new file mode 100644 index 0000000000..2a81cae621 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_228.png b/TMessagesProj/src/main/assets/emoji/5_228.png new file mode 100644 index 0000000000..5bbbd6660e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_229.png b/TMessagesProj/src/main/assets/emoji/5_229.png new file mode 100644 index 0000000000..05a3193eaf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_23.png b/TMessagesProj/src/main/assets/emoji/5_23.png new file mode 100644 index 0000000000..39500211f1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_24.png b/TMessagesProj/src/main/assets/emoji/5_24.png new file mode 100644 index 0000000000..514fa78135 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_25.png b/TMessagesProj/src/main/assets/emoji/5_25.png new file mode 100644 index 0000000000..812917bd06 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_26.png b/TMessagesProj/src/main/assets/emoji/5_26.png new file mode 100644 index 0000000000..230484ee86 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_27.png b/TMessagesProj/src/main/assets/emoji/5_27.png new file mode 100644 index 0000000000..b07c6e628c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_28.png b/TMessagesProj/src/main/assets/emoji/5_28.png new file mode 100644 index 0000000000..cd6e39b6c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_29.png b/TMessagesProj/src/main/assets/emoji/5_29.png new file mode 100644 index 0000000000..452dfeb3fc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_3.png b/TMessagesProj/src/main/assets/emoji/5_3.png new file mode 100644 index 0000000000..8640f749c5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_30.png b/TMessagesProj/src/main/assets/emoji/5_30.png new file mode 100644 index 0000000000..212d4482ef Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_31.png b/TMessagesProj/src/main/assets/emoji/5_31.png new file mode 100644 index 0000000000..758bc2c2e6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_32.png b/TMessagesProj/src/main/assets/emoji/5_32.png new file mode 100644 index 0000000000..eeae24bcfc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_33.png b/TMessagesProj/src/main/assets/emoji/5_33.png new file mode 100644 index 0000000000..48da451c04 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_34.png b/TMessagesProj/src/main/assets/emoji/5_34.png new file mode 100644 index 0000000000..5a4c43899d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_35.png b/TMessagesProj/src/main/assets/emoji/5_35.png new file mode 100644 index 0000000000..e76ca84810 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_36.png b/TMessagesProj/src/main/assets/emoji/5_36.png new file mode 100644 index 0000000000..6b072cbe65 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_37.png b/TMessagesProj/src/main/assets/emoji/5_37.png new file mode 100644 index 0000000000..8c5deb5bab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_38.png b/TMessagesProj/src/main/assets/emoji/5_38.png new file mode 100644 index 0000000000..eefd0c4e63 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_39.png b/TMessagesProj/src/main/assets/emoji/5_39.png new file mode 100644 index 0000000000..262aa3b35a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_4.png b/TMessagesProj/src/main/assets/emoji/5_4.png new file mode 100644 index 0000000000..57a637f45b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_40.png b/TMessagesProj/src/main/assets/emoji/5_40.png new file mode 100644 index 0000000000..17bea3b81d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_41.png b/TMessagesProj/src/main/assets/emoji/5_41.png new file mode 100644 index 0000000000..b38da5d1e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_42.png b/TMessagesProj/src/main/assets/emoji/5_42.png new file mode 100644 index 0000000000..9ba9542d4e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_43.png b/TMessagesProj/src/main/assets/emoji/5_43.png new file mode 100644 index 0000000000..3451d3cb97 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_44.png b/TMessagesProj/src/main/assets/emoji/5_44.png new file mode 100644 index 0000000000..ea0d816ffd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_45.png b/TMessagesProj/src/main/assets/emoji/5_45.png new file mode 100644 index 0000000000..6d28a6889c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_46.png b/TMessagesProj/src/main/assets/emoji/5_46.png new file mode 100644 index 0000000000..515e90a831 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_47.png b/TMessagesProj/src/main/assets/emoji/5_47.png new file mode 100644 index 0000000000..a8a29fb378 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_48.png b/TMessagesProj/src/main/assets/emoji/5_48.png new file mode 100644 index 0000000000..791eaf3163 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_49.png b/TMessagesProj/src/main/assets/emoji/5_49.png new file mode 100644 index 0000000000..ea9f75dd2b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_5.png b/TMessagesProj/src/main/assets/emoji/5_5.png new file mode 100644 index 0000000000..9e60be44de Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_50.png b/TMessagesProj/src/main/assets/emoji/5_50.png new file mode 100644 index 0000000000..ca69e487a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_51.png b/TMessagesProj/src/main/assets/emoji/5_51.png new file mode 100644 index 0000000000..6f645aaf65 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_52.png b/TMessagesProj/src/main/assets/emoji/5_52.png new file mode 100644 index 0000000000..6f7cb9b691 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_53.png b/TMessagesProj/src/main/assets/emoji/5_53.png new file mode 100644 index 0000000000..fe688c15b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_54.png b/TMessagesProj/src/main/assets/emoji/5_54.png new file mode 100644 index 0000000000..b46235bd01 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_55.png b/TMessagesProj/src/main/assets/emoji/5_55.png new file mode 100644 index 0000000000..6ab4617791 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_56.png b/TMessagesProj/src/main/assets/emoji/5_56.png new file mode 100644 index 0000000000..fff1aa5d02 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_57.png b/TMessagesProj/src/main/assets/emoji/5_57.png new file mode 100644 index 0000000000..23e136fbcd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_58.png b/TMessagesProj/src/main/assets/emoji/5_58.png new file mode 100644 index 0000000000..87bd326780 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_59.png b/TMessagesProj/src/main/assets/emoji/5_59.png new file mode 100644 index 0000000000..97d0ee1029 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_6.png b/TMessagesProj/src/main/assets/emoji/5_6.png new file mode 100644 index 0000000000..b4895a709d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_60.png b/TMessagesProj/src/main/assets/emoji/5_60.png new file mode 100644 index 0000000000..76625a379a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_61.png b/TMessagesProj/src/main/assets/emoji/5_61.png new file mode 100644 index 0000000000..8b139f9572 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_62.png b/TMessagesProj/src/main/assets/emoji/5_62.png new file mode 100644 index 0000000000..2ad2212c4d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_63.png b/TMessagesProj/src/main/assets/emoji/5_63.png new file mode 100644 index 0000000000..75af972869 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_64.png b/TMessagesProj/src/main/assets/emoji/5_64.png new file mode 100644 index 0000000000..49c1b54024 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_65.png b/TMessagesProj/src/main/assets/emoji/5_65.png new file mode 100644 index 0000000000..162b0f714b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_66.png b/TMessagesProj/src/main/assets/emoji/5_66.png new file mode 100644 index 0000000000..073fe30b5e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_67.png b/TMessagesProj/src/main/assets/emoji/5_67.png new file mode 100644 index 0000000000..f9c3108496 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_68.png b/TMessagesProj/src/main/assets/emoji/5_68.png new file mode 100644 index 0000000000..0f41b0da7a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_69.png b/TMessagesProj/src/main/assets/emoji/5_69.png new file mode 100644 index 0000000000..bfe3d41576 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_7.png b/TMessagesProj/src/main/assets/emoji/5_7.png new file mode 100644 index 0000000000..b828c887c4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_70.png b/TMessagesProj/src/main/assets/emoji/5_70.png new file mode 100644 index 0000000000..ff29591b94 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_71.png b/TMessagesProj/src/main/assets/emoji/5_71.png new file mode 100644 index 0000000000..60cc9e1614 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_72.png b/TMessagesProj/src/main/assets/emoji/5_72.png new file mode 100644 index 0000000000..cf3950410e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_73.png b/TMessagesProj/src/main/assets/emoji/5_73.png new file mode 100644 index 0000000000..23bf0bb554 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_74.png b/TMessagesProj/src/main/assets/emoji/5_74.png new file mode 100644 index 0000000000..f498fef024 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_75.png b/TMessagesProj/src/main/assets/emoji/5_75.png new file mode 100644 index 0000000000..fb4cdd2685 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_76.png b/TMessagesProj/src/main/assets/emoji/5_76.png new file mode 100644 index 0000000000..dc92204e24 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_77.png b/TMessagesProj/src/main/assets/emoji/5_77.png new file mode 100644 index 0000000000..be7fc4a421 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_78.png b/TMessagesProj/src/main/assets/emoji/5_78.png new file mode 100644 index 0000000000..2f8dab0f68 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_79.png b/TMessagesProj/src/main/assets/emoji/5_79.png new file mode 100644 index 0000000000..1d993c68ed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_8.png b/TMessagesProj/src/main/assets/emoji/5_8.png new file mode 100644 index 0000000000..e77bfe9750 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_80.png b/TMessagesProj/src/main/assets/emoji/5_80.png new file mode 100644 index 0000000000..728ff9659e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_81.png b/TMessagesProj/src/main/assets/emoji/5_81.png new file mode 100644 index 0000000000..7ad1db0f48 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_82.png b/TMessagesProj/src/main/assets/emoji/5_82.png new file mode 100644 index 0000000000..fd7426104e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_83.png b/TMessagesProj/src/main/assets/emoji/5_83.png new file mode 100644 index 0000000000..68c3bbd170 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_84.png b/TMessagesProj/src/main/assets/emoji/5_84.png new file mode 100644 index 0000000000..c484a4e0e2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_85.png b/TMessagesProj/src/main/assets/emoji/5_85.png new file mode 100644 index 0000000000..af12fd3a78 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_86.png b/TMessagesProj/src/main/assets/emoji/5_86.png new file mode 100644 index 0000000000..09bdd943a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_87.png b/TMessagesProj/src/main/assets/emoji/5_87.png new file mode 100644 index 0000000000..865c909632 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_88.png b/TMessagesProj/src/main/assets/emoji/5_88.png new file mode 100644 index 0000000000..e8d45a55e2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_89.png b/TMessagesProj/src/main/assets/emoji/5_89.png new file mode 100644 index 0000000000..4017d56d6c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_9.png b/TMessagesProj/src/main/assets/emoji/5_9.png new file mode 100644 index 0000000000..eef4ce8813 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_90.png b/TMessagesProj/src/main/assets/emoji/5_90.png new file mode 100644 index 0000000000..2052ab108d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_91.png b/TMessagesProj/src/main/assets/emoji/5_91.png new file mode 100644 index 0000000000..d51399ea9f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_92.png b/TMessagesProj/src/main/assets/emoji/5_92.png new file mode 100644 index 0000000000..e61e03110e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_93.png b/TMessagesProj/src/main/assets/emoji/5_93.png new file mode 100644 index 0000000000..057d72db74 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_94.png b/TMessagesProj/src/main/assets/emoji/5_94.png new file mode 100644 index 0000000000..4bb01b48cc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_95.png b/TMessagesProj/src/main/assets/emoji/5_95.png new file mode 100644 index 0000000000..0f6872773a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_96.png b/TMessagesProj/src/main/assets/emoji/5_96.png new file mode 100644 index 0000000000..067caf45c7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_97.png b/TMessagesProj/src/main/assets/emoji/5_97.png new file mode 100644 index 0000000000..0f1240fbed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_98.png b/TMessagesProj/src/main/assets/emoji/5_98.png new file mode 100644 index 0000000000..8c4a9dc254 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_99.png b/TMessagesProj/src/main/assets/emoji/5_99.png new file mode 100644 index 0000000000..f9e072d287 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/5_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_0.png b/TMessagesProj/src/main/assets/emoji/6_0.png new file mode 100644 index 0000000000..8be64f99b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_1.png b/TMessagesProj/src/main/assets/emoji/6_1.png new file mode 100644 index 0000000000..a02f89d21b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_10.png b/TMessagesProj/src/main/assets/emoji/6_10.png new file mode 100644 index 0000000000..e33139241b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_100.png b/TMessagesProj/src/main/assets/emoji/6_100.png new file mode 100644 index 0000000000..2c0d78c875 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_101.png b/TMessagesProj/src/main/assets/emoji/6_101.png new file mode 100644 index 0000000000..30f09cf77e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_102.png b/TMessagesProj/src/main/assets/emoji/6_102.png new file mode 100644 index 0000000000..b57b913553 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_103.png b/TMessagesProj/src/main/assets/emoji/6_103.png new file mode 100644 index 0000000000..bce2707019 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_104.png b/TMessagesProj/src/main/assets/emoji/6_104.png new file mode 100644 index 0000000000..402e4c4a10 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_105.png b/TMessagesProj/src/main/assets/emoji/6_105.png new file mode 100644 index 0000000000..938764a2d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_106.png b/TMessagesProj/src/main/assets/emoji/6_106.png new file mode 100644 index 0000000000..5bfa503ae6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_107.png b/TMessagesProj/src/main/assets/emoji/6_107.png new file mode 100644 index 0000000000..f4b7fae7a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_108.png b/TMessagesProj/src/main/assets/emoji/6_108.png new file mode 100644 index 0000000000..3c128bc109 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_109.png b/TMessagesProj/src/main/assets/emoji/6_109.png new file mode 100644 index 0000000000..03446c0e1e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_11.png b/TMessagesProj/src/main/assets/emoji/6_11.png new file mode 100644 index 0000000000..cf04dd6895 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_110.png b/TMessagesProj/src/main/assets/emoji/6_110.png new file mode 100644 index 0000000000..fe99a8cfe1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_111.png b/TMessagesProj/src/main/assets/emoji/6_111.png new file mode 100644 index 0000000000..8e0a5444a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_112.png b/TMessagesProj/src/main/assets/emoji/6_112.png new file mode 100644 index 0000000000..9b83fa2595 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_113.png b/TMessagesProj/src/main/assets/emoji/6_113.png new file mode 100644 index 0000000000..5d0b4b15a4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_114.png b/TMessagesProj/src/main/assets/emoji/6_114.png new file mode 100644 index 0000000000..24bb1afb7b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_115.png b/TMessagesProj/src/main/assets/emoji/6_115.png new file mode 100644 index 0000000000..c6e88729cd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_116.png b/TMessagesProj/src/main/assets/emoji/6_116.png new file mode 100644 index 0000000000..9f80b23d11 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_117.png b/TMessagesProj/src/main/assets/emoji/6_117.png new file mode 100644 index 0000000000..2792d74bde Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_118.png b/TMessagesProj/src/main/assets/emoji/6_118.png new file mode 100644 index 0000000000..87a1031534 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_119.png b/TMessagesProj/src/main/assets/emoji/6_119.png new file mode 100644 index 0000000000..0d303bab21 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_12.png b/TMessagesProj/src/main/assets/emoji/6_12.png new file mode 100644 index 0000000000..50619fbdea Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_120.png b/TMessagesProj/src/main/assets/emoji/6_120.png new file mode 100644 index 0000000000..f3f182715d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_121.png b/TMessagesProj/src/main/assets/emoji/6_121.png new file mode 100644 index 0000000000..8d2190da1e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_122.png b/TMessagesProj/src/main/assets/emoji/6_122.png new file mode 100644 index 0000000000..5282cfc01d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_123.png b/TMessagesProj/src/main/assets/emoji/6_123.png new file mode 100644 index 0000000000..c56a1158d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_124.png b/TMessagesProj/src/main/assets/emoji/6_124.png new file mode 100644 index 0000000000..e7e00491bf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_125.png b/TMessagesProj/src/main/assets/emoji/6_125.png new file mode 100644 index 0000000000..2cf58c8beb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_126.png b/TMessagesProj/src/main/assets/emoji/6_126.png new file mode 100644 index 0000000000..a378b02235 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_127.png b/TMessagesProj/src/main/assets/emoji/6_127.png new file mode 100644 index 0000000000..0cbace45f0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_128.png b/TMessagesProj/src/main/assets/emoji/6_128.png new file mode 100644 index 0000000000..ecb6682669 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_129.png b/TMessagesProj/src/main/assets/emoji/6_129.png new file mode 100644 index 0000000000..fcffe7a86a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_13.png b/TMessagesProj/src/main/assets/emoji/6_13.png new file mode 100644 index 0000000000..90e04122e8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_130.png b/TMessagesProj/src/main/assets/emoji/6_130.png new file mode 100644 index 0000000000..789b414cbd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_131.png b/TMessagesProj/src/main/assets/emoji/6_131.png new file mode 100644 index 0000000000..4b3d727968 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_132.png b/TMessagesProj/src/main/assets/emoji/6_132.png new file mode 100644 index 0000000000..6d1d56c22f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_133.png b/TMessagesProj/src/main/assets/emoji/6_133.png new file mode 100644 index 0000000000..f11cf4deeb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_134.png b/TMessagesProj/src/main/assets/emoji/6_134.png new file mode 100644 index 0000000000..4053a7c8d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_135.png b/TMessagesProj/src/main/assets/emoji/6_135.png new file mode 100644 index 0000000000..c32b20e155 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_136.png b/TMessagesProj/src/main/assets/emoji/6_136.png new file mode 100644 index 0000000000..2a641c3441 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_137.png b/TMessagesProj/src/main/assets/emoji/6_137.png new file mode 100644 index 0000000000..f5ac9d4258 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_138.png b/TMessagesProj/src/main/assets/emoji/6_138.png new file mode 100644 index 0000000000..11410dc353 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_139.png b/TMessagesProj/src/main/assets/emoji/6_139.png new file mode 100644 index 0000000000..26ee05356a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_14.png b/TMessagesProj/src/main/assets/emoji/6_14.png new file mode 100644 index 0000000000..2876d3d587 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_140.png b/TMessagesProj/src/main/assets/emoji/6_140.png new file mode 100644 index 0000000000..e1ff28a784 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_141.png b/TMessagesProj/src/main/assets/emoji/6_141.png new file mode 100644 index 0000000000..ae403c97f5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_142.png b/TMessagesProj/src/main/assets/emoji/6_142.png new file mode 100644 index 0000000000..1bd36850a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_143.png b/TMessagesProj/src/main/assets/emoji/6_143.png new file mode 100644 index 0000000000..69e9730d70 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_144.png b/TMessagesProj/src/main/assets/emoji/6_144.png new file mode 100644 index 0000000000..c27faf6646 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_145.png b/TMessagesProj/src/main/assets/emoji/6_145.png new file mode 100644 index 0000000000..551098aabb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_146.png b/TMessagesProj/src/main/assets/emoji/6_146.png new file mode 100644 index 0000000000..9ff86ecc2a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_147.png b/TMessagesProj/src/main/assets/emoji/6_147.png new file mode 100644 index 0000000000..d7d32074b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_148.png b/TMessagesProj/src/main/assets/emoji/6_148.png new file mode 100644 index 0000000000..0420b98ad9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_149.png b/TMessagesProj/src/main/assets/emoji/6_149.png new file mode 100644 index 0000000000..95c497230a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_15.png b/TMessagesProj/src/main/assets/emoji/6_15.png new file mode 100644 index 0000000000..1b5220e79a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_150.png b/TMessagesProj/src/main/assets/emoji/6_150.png new file mode 100644 index 0000000000..0286b1ff46 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_151.png b/TMessagesProj/src/main/assets/emoji/6_151.png new file mode 100644 index 0000000000..4754fc72b9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_152.png b/TMessagesProj/src/main/assets/emoji/6_152.png new file mode 100644 index 0000000000..38a0398b27 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_153.png b/TMessagesProj/src/main/assets/emoji/6_153.png new file mode 100644 index 0000000000..7ce7a0679b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_154.png b/TMessagesProj/src/main/assets/emoji/6_154.png new file mode 100644 index 0000000000..724863ab7f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_155.png b/TMessagesProj/src/main/assets/emoji/6_155.png new file mode 100644 index 0000000000..0c3f150796 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_156.png b/TMessagesProj/src/main/assets/emoji/6_156.png new file mode 100644 index 0000000000..e1d1b4b5d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_157.png b/TMessagesProj/src/main/assets/emoji/6_157.png new file mode 100644 index 0000000000..c5ce7a8a84 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_158.png b/TMessagesProj/src/main/assets/emoji/6_158.png new file mode 100644 index 0000000000..14dbdef63b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_159.png b/TMessagesProj/src/main/assets/emoji/6_159.png new file mode 100644 index 0000000000..5e6457e736 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_16.png b/TMessagesProj/src/main/assets/emoji/6_16.png new file mode 100644 index 0000000000..e9aa688ebc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_160.png b/TMessagesProj/src/main/assets/emoji/6_160.png new file mode 100644 index 0000000000..b804e51b81 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_161.png b/TMessagesProj/src/main/assets/emoji/6_161.png new file mode 100644 index 0000000000..530854f5d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_162.png b/TMessagesProj/src/main/assets/emoji/6_162.png new file mode 100644 index 0000000000..d31d40fbe7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_163.png b/TMessagesProj/src/main/assets/emoji/6_163.png new file mode 100644 index 0000000000..26d62af442 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_164.png b/TMessagesProj/src/main/assets/emoji/6_164.png new file mode 100644 index 0000000000..ffebdd9acf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_165.png b/TMessagesProj/src/main/assets/emoji/6_165.png new file mode 100644 index 0000000000..1dadb09675 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_166.png b/TMessagesProj/src/main/assets/emoji/6_166.png new file mode 100644 index 0000000000..58a054257f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_167.png b/TMessagesProj/src/main/assets/emoji/6_167.png new file mode 100644 index 0000000000..12cc93ad98 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_168.png b/TMessagesProj/src/main/assets/emoji/6_168.png new file mode 100644 index 0000000000..b07b0c58a9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_169.png b/TMessagesProj/src/main/assets/emoji/6_169.png new file mode 100644 index 0000000000..e36a2a89a2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_17.png b/TMessagesProj/src/main/assets/emoji/6_17.png new file mode 100644 index 0000000000..8c214b94de Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_170.png b/TMessagesProj/src/main/assets/emoji/6_170.png new file mode 100644 index 0000000000..abcd807c28 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_171.png b/TMessagesProj/src/main/assets/emoji/6_171.png new file mode 100644 index 0000000000..7c1a39ddf0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_172.png b/TMessagesProj/src/main/assets/emoji/6_172.png new file mode 100644 index 0000000000..9542367c02 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_173.png b/TMessagesProj/src/main/assets/emoji/6_173.png new file mode 100644 index 0000000000..b45a79a974 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_174.png b/TMessagesProj/src/main/assets/emoji/6_174.png new file mode 100644 index 0000000000..a30a3e2b35 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_175.png b/TMessagesProj/src/main/assets/emoji/6_175.png new file mode 100644 index 0000000000..b83d02c909 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_176.png b/TMessagesProj/src/main/assets/emoji/6_176.png new file mode 100644 index 0000000000..603a6d6c4d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_177.png b/TMessagesProj/src/main/assets/emoji/6_177.png new file mode 100644 index 0000000000..56e26e834e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_178.png b/TMessagesProj/src/main/assets/emoji/6_178.png new file mode 100644 index 0000000000..658149f106 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_179.png b/TMessagesProj/src/main/assets/emoji/6_179.png new file mode 100644 index 0000000000..92ad95caf6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_18.png b/TMessagesProj/src/main/assets/emoji/6_18.png new file mode 100644 index 0000000000..abf255a887 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_180.png b/TMessagesProj/src/main/assets/emoji/6_180.png new file mode 100644 index 0000000000..098b393b96 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_181.png b/TMessagesProj/src/main/assets/emoji/6_181.png new file mode 100644 index 0000000000..9b98b88d3c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_182.png b/TMessagesProj/src/main/assets/emoji/6_182.png new file mode 100644 index 0000000000..e620aa66db Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_183.png b/TMessagesProj/src/main/assets/emoji/6_183.png new file mode 100644 index 0000000000..e308be52e5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_184.png b/TMessagesProj/src/main/assets/emoji/6_184.png new file mode 100644 index 0000000000..33af5d40c7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_185.png b/TMessagesProj/src/main/assets/emoji/6_185.png new file mode 100644 index 0000000000..2e150dfeac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_186.png b/TMessagesProj/src/main/assets/emoji/6_186.png new file mode 100644 index 0000000000..e99f8ed37c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_187.png b/TMessagesProj/src/main/assets/emoji/6_187.png new file mode 100644 index 0000000000..2a9df20b62 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_188.png b/TMessagesProj/src/main/assets/emoji/6_188.png new file mode 100644 index 0000000000..5284ca0077 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_189.png b/TMessagesProj/src/main/assets/emoji/6_189.png new file mode 100644 index 0000000000..58c2b0c25c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_19.png b/TMessagesProj/src/main/assets/emoji/6_19.png new file mode 100644 index 0000000000..c8493d15d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_190.png b/TMessagesProj/src/main/assets/emoji/6_190.png new file mode 100644 index 0000000000..4e702cf57e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_191.png b/TMessagesProj/src/main/assets/emoji/6_191.png new file mode 100644 index 0000000000..f6d1f4c4c1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_192.png b/TMessagesProj/src/main/assets/emoji/6_192.png new file mode 100644 index 0000000000..9fa3d55dc2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_193.png b/TMessagesProj/src/main/assets/emoji/6_193.png new file mode 100644 index 0000000000..115c926ddf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_194.png b/TMessagesProj/src/main/assets/emoji/6_194.png new file mode 100644 index 0000000000..7e882d17c6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_195.png b/TMessagesProj/src/main/assets/emoji/6_195.png new file mode 100644 index 0000000000..b9addb37d6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_196.png b/TMessagesProj/src/main/assets/emoji/6_196.png new file mode 100644 index 0000000000..f1c981281d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_197.png b/TMessagesProj/src/main/assets/emoji/6_197.png new file mode 100644 index 0000000000..7e59bb8896 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_198.png b/TMessagesProj/src/main/assets/emoji/6_198.png new file mode 100644 index 0000000000..2d2c3d168f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_199.png b/TMessagesProj/src/main/assets/emoji/6_199.png new file mode 100644 index 0000000000..2a361459f1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_2.png b/TMessagesProj/src/main/assets/emoji/6_2.png new file mode 100644 index 0000000000..aa2ee1b17e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_20.png b/TMessagesProj/src/main/assets/emoji/6_20.png new file mode 100644 index 0000000000..3173d2a721 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_200.png b/TMessagesProj/src/main/assets/emoji/6_200.png new file mode 100644 index 0000000000..299c2a6817 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_201.png b/TMessagesProj/src/main/assets/emoji/6_201.png new file mode 100644 index 0000000000..c0fbb4147e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_202.png b/TMessagesProj/src/main/assets/emoji/6_202.png new file mode 100644 index 0000000000..fcaeecd16f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_203.png b/TMessagesProj/src/main/assets/emoji/6_203.png new file mode 100644 index 0000000000..13abf5e959 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_204.png b/TMessagesProj/src/main/assets/emoji/6_204.png new file mode 100644 index 0000000000..02818df2b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_205.png b/TMessagesProj/src/main/assets/emoji/6_205.png new file mode 100644 index 0000000000..e8b3102886 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_206.png b/TMessagesProj/src/main/assets/emoji/6_206.png new file mode 100644 index 0000000000..b3b650d29f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_207.png b/TMessagesProj/src/main/assets/emoji/6_207.png new file mode 100644 index 0000000000..d330aaacc7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_208.png b/TMessagesProj/src/main/assets/emoji/6_208.png new file mode 100644 index 0000000000..9bd5e1cfdb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_209.png b/TMessagesProj/src/main/assets/emoji/6_209.png new file mode 100644 index 0000000000..a3d6e99689 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_21.png b/TMessagesProj/src/main/assets/emoji/6_21.png new file mode 100644 index 0000000000..1f4939d405 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_210.png b/TMessagesProj/src/main/assets/emoji/6_210.png new file mode 100644 index 0000000000..c29f049f3f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_211.png b/TMessagesProj/src/main/assets/emoji/6_211.png new file mode 100644 index 0000000000..be0291eddb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_212.png b/TMessagesProj/src/main/assets/emoji/6_212.png new file mode 100644 index 0000000000..aa70f00418 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_213.png b/TMessagesProj/src/main/assets/emoji/6_213.png new file mode 100644 index 0000000000..75bf91f585 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_214.png b/TMessagesProj/src/main/assets/emoji/6_214.png new file mode 100644 index 0000000000..74a14d5dd8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_215.png b/TMessagesProj/src/main/assets/emoji/6_215.png new file mode 100644 index 0000000000..70ade58bca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_216.png b/TMessagesProj/src/main/assets/emoji/6_216.png new file mode 100644 index 0000000000..898c68e855 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_217.png b/TMessagesProj/src/main/assets/emoji/6_217.png new file mode 100644 index 0000000000..2c71cc79e4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_218.png b/TMessagesProj/src/main/assets/emoji/6_218.png new file mode 100644 index 0000000000..49ee407d20 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_219.png b/TMessagesProj/src/main/assets/emoji/6_219.png new file mode 100644 index 0000000000..f3c84918e2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_22.png b/TMessagesProj/src/main/assets/emoji/6_22.png new file mode 100644 index 0000000000..f5bccc9099 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_220.png b/TMessagesProj/src/main/assets/emoji/6_220.png new file mode 100644 index 0000000000..17a1e0fa8e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_221.png b/TMessagesProj/src/main/assets/emoji/6_221.png new file mode 100644 index 0000000000..4e76e514f2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_222.png b/TMessagesProj/src/main/assets/emoji/6_222.png new file mode 100644 index 0000000000..6e2dd17c86 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_223.png b/TMessagesProj/src/main/assets/emoji/6_223.png new file mode 100644 index 0000000000..bc0e80d246 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_224.png b/TMessagesProj/src/main/assets/emoji/6_224.png new file mode 100644 index 0000000000..b6a513c14f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_225.png b/TMessagesProj/src/main/assets/emoji/6_225.png new file mode 100644 index 0000000000..b2fe3a2ebb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_226.png b/TMessagesProj/src/main/assets/emoji/6_226.png new file mode 100644 index 0000000000..6c776238a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_227.png b/TMessagesProj/src/main/assets/emoji/6_227.png new file mode 100644 index 0000000000..4bd55fc8e1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_228.png b/TMessagesProj/src/main/assets/emoji/6_228.png new file mode 100644 index 0000000000..a085c8a145 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_229.png b/TMessagesProj/src/main/assets/emoji/6_229.png new file mode 100644 index 0000000000..04af5fccb7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_23.png b/TMessagesProj/src/main/assets/emoji/6_23.png new file mode 100644 index 0000000000..cf4dc2740d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_230.png b/TMessagesProj/src/main/assets/emoji/6_230.png new file mode 100644 index 0000000000..b9ced96fab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_230.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_231.png b/TMessagesProj/src/main/assets/emoji/6_231.png new file mode 100644 index 0000000000..8a7e6ff01c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_231.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_232.png b/TMessagesProj/src/main/assets/emoji/6_232.png new file mode 100644 index 0000000000..cd39244999 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_232.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_233.png b/TMessagesProj/src/main/assets/emoji/6_233.png new file mode 100644 index 0000000000..c814f28be4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_233.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_234.png b/TMessagesProj/src/main/assets/emoji/6_234.png new file mode 100644 index 0000000000..0cc11bc936 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_234.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_235.png b/TMessagesProj/src/main/assets/emoji/6_235.png new file mode 100644 index 0000000000..8514bf18a5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_235.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_236.png b/TMessagesProj/src/main/assets/emoji/6_236.png new file mode 100644 index 0000000000..b0c7cf2154 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_236.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_237.png b/TMessagesProj/src/main/assets/emoji/6_237.png new file mode 100644 index 0000000000..4fdc879cac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_237.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_238.png b/TMessagesProj/src/main/assets/emoji/6_238.png new file mode 100644 index 0000000000..b4c8a0bdbd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_238.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_239.png b/TMessagesProj/src/main/assets/emoji/6_239.png new file mode 100644 index 0000000000..cc295ba56a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_239.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_24.png b/TMessagesProj/src/main/assets/emoji/6_24.png new file mode 100644 index 0000000000..22165df859 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_240.png b/TMessagesProj/src/main/assets/emoji/6_240.png new file mode 100644 index 0000000000..b13d899394 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_240.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_241.png b/TMessagesProj/src/main/assets/emoji/6_241.png new file mode 100644 index 0000000000..92cde504b6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_241.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_242.png b/TMessagesProj/src/main/assets/emoji/6_242.png new file mode 100644 index 0000000000..cedb5bf70a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_242.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_243.png b/TMessagesProj/src/main/assets/emoji/6_243.png new file mode 100644 index 0000000000..c9aeb867fd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_243.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_244.png b/TMessagesProj/src/main/assets/emoji/6_244.png new file mode 100644 index 0000000000..9fc1654341 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_244.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_245.png b/TMessagesProj/src/main/assets/emoji/6_245.png new file mode 100644 index 0000000000..06dcb4875d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_245.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_246.png b/TMessagesProj/src/main/assets/emoji/6_246.png new file mode 100644 index 0000000000..39531221b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_246.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_247.png b/TMessagesProj/src/main/assets/emoji/6_247.png new file mode 100644 index 0000000000..87de8bdbd4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_247.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_248.png b/TMessagesProj/src/main/assets/emoji/6_248.png new file mode 100644 index 0000000000..7f293e8833 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_248.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_249.png b/TMessagesProj/src/main/assets/emoji/6_249.png new file mode 100644 index 0000000000..1d149957ec Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_249.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_25.png b/TMessagesProj/src/main/assets/emoji/6_25.png new file mode 100644 index 0000000000..94db41b2d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_250.png b/TMessagesProj/src/main/assets/emoji/6_250.png new file mode 100644 index 0000000000..db377029a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_250.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_251.png b/TMessagesProj/src/main/assets/emoji/6_251.png new file mode 100644 index 0000000000..3509abcfa7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_251.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_252.png b/TMessagesProj/src/main/assets/emoji/6_252.png new file mode 100644 index 0000000000..a912388b9b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_252.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_253.png b/TMessagesProj/src/main/assets/emoji/6_253.png new file mode 100644 index 0000000000..d37073354d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_253.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_254.png b/TMessagesProj/src/main/assets/emoji/6_254.png new file mode 100644 index 0000000000..80b1c2a981 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_254.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_255.png b/TMessagesProj/src/main/assets/emoji/6_255.png new file mode 100644 index 0000000000..11bacf366f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_255.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_256.png b/TMessagesProj/src/main/assets/emoji/6_256.png new file mode 100644 index 0000000000..527faf5d7f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_256.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_257.png b/TMessagesProj/src/main/assets/emoji/6_257.png new file mode 100644 index 0000000000..d34684cc6b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_257.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_258.png b/TMessagesProj/src/main/assets/emoji/6_258.png new file mode 100644 index 0000000000..244304e54e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_258.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_259.png b/TMessagesProj/src/main/assets/emoji/6_259.png new file mode 100644 index 0000000000..86d3a609ed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_259.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_26.png b/TMessagesProj/src/main/assets/emoji/6_26.png new file mode 100644 index 0000000000..d4a0dd4371 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_260.png b/TMessagesProj/src/main/assets/emoji/6_260.png new file mode 100644 index 0000000000..33b4fdd2bc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_260.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_261.png b/TMessagesProj/src/main/assets/emoji/6_261.png new file mode 100644 index 0000000000..a34ad938fa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_261.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_262.png b/TMessagesProj/src/main/assets/emoji/6_262.png new file mode 100644 index 0000000000..d2eecb882a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_262.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_263.png b/TMessagesProj/src/main/assets/emoji/6_263.png new file mode 100644 index 0000000000..58c9a117d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_263.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_264.png b/TMessagesProj/src/main/assets/emoji/6_264.png new file mode 100644 index 0000000000..043820d3c6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_264.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_265.png b/TMessagesProj/src/main/assets/emoji/6_265.png new file mode 100644 index 0000000000..9eabcfee0f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_265.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_266.png b/TMessagesProj/src/main/assets/emoji/6_266.png new file mode 100644 index 0000000000..ad540db6ff Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_266.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_267.png b/TMessagesProj/src/main/assets/emoji/6_267.png new file mode 100644 index 0000000000..5116b7641d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_267.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_268.png b/TMessagesProj/src/main/assets/emoji/6_268.png new file mode 100644 index 0000000000..8e44da982c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_268.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_269.png b/TMessagesProj/src/main/assets/emoji/6_269.png new file mode 100644 index 0000000000..6dd5dcc394 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_269.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_27.png b/TMessagesProj/src/main/assets/emoji/6_27.png new file mode 100644 index 0000000000..0b3026cf51 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_270.png b/TMessagesProj/src/main/assets/emoji/6_270.png new file mode 100644 index 0000000000..b99d06e010 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_270.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_271.png b/TMessagesProj/src/main/assets/emoji/6_271.png new file mode 100644 index 0000000000..051e67fe09 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_271.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_272.png b/TMessagesProj/src/main/assets/emoji/6_272.png new file mode 100644 index 0000000000..8c8c543e95 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_272.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_273.png b/TMessagesProj/src/main/assets/emoji/6_273.png new file mode 100644 index 0000000000..b846a8f0e3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_273.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_274.png b/TMessagesProj/src/main/assets/emoji/6_274.png new file mode 100644 index 0000000000..4ef6f6546c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_274.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_275.png b/TMessagesProj/src/main/assets/emoji/6_275.png new file mode 100644 index 0000000000..22fb6fa358 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_275.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_276.png b/TMessagesProj/src/main/assets/emoji/6_276.png new file mode 100644 index 0000000000..a8ca914c60 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_276.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_277.png b/TMessagesProj/src/main/assets/emoji/6_277.png new file mode 100644 index 0000000000..efa38ea9ed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_277.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_278.png b/TMessagesProj/src/main/assets/emoji/6_278.png new file mode 100644 index 0000000000..4e7f735821 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_278.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_279.png b/TMessagesProj/src/main/assets/emoji/6_279.png new file mode 100644 index 0000000000..e914f4d796 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_279.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_28.png b/TMessagesProj/src/main/assets/emoji/6_28.png new file mode 100644 index 0000000000..a6fadad0bb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_280.png b/TMessagesProj/src/main/assets/emoji/6_280.png new file mode 100644 index 0000000000..79faffb941 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_280.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_281.png b/TMessagesProj/src/main/assets/emoji/6_281.png new file mode 100644 index 0000000000..a732cb93c6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_281.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_282.png b/TMessagesProj/src/main/assets/emoji/6_282.png new file mode 100644 index 0000000000..ee7797575f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_282.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_283.png b/TMessagesProj/src/main/assets/emoji/6_283.png new file mode 100644 index 0000000000..ba8144c5b7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_283.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_284.png b/TMessagesProj/src/main/assets/emoji/6_284.png new file mode 100644 index 0000000000..63cee6ee73 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_284.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_285.png b/TMessagesProj/src/main/assets/emoji/6_285.png new file mode 100644 index 0000000000..dcd0fb462b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_285.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_286.png b/TMessagesProj/src/main/assets/emoji/6_286.png new file mode 100644 index 0000000000..6e93a78571 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_286.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_287.png b/TMessagesProj/src/main/assets/emoji/6_287.png new file mode 100644 index 0000000000..222f42be3d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_287.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_288.png b/TMessagesProj/src/main/assets/emoji/6_288.png new file mode 100644 index 0000000000..8c7d950097 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_288.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_289.png b/TMessagesProj/src/main/assets/emoji/6_289.png new file mode 100644 index 0000000000..fb06b9e1dc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_289.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_29.png b/TMessagesProj/src/main/assets/emoji/6_29.png new file mode 100644 index 0000000000..3c7c5997ca Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_290.png b/TMessagesProj/src/main/assets/emoji/6_290.png new file mode 100644 index 0000000000..6e4061cc99 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_290.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_291.png b/TMessagesProj/src/main/assets/emoji/6_291.png new file mode 100644 index 0000000000..8c6cdaba28 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_291.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_292.png b/TMessagesProj/src/main/assets/emoji/6_292.png new file mode 100644 index 0000000000..1c09def8fd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_292.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_293.png b/TMessagesProj/src/main/assets/emoji/6_293.png new file mode 100644 index 0000000000..bcf960e416 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_293.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_294.png b/TMessagesProj/src/main/assets/emoji/6_294.png new file mode 100644 index 0000000000..c31b4bc3ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_294.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_295.png b/TMessagesProj/src/main/assets/emoji/6_295.png new file mode 100644 index 0000000000..bd4ab3bbd8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_295.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_296.png b/TMessagesProj/src/main/assets/emoji/6_296.png new file mode 100644 index 0000000000..a810d6a0aa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_296.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_297.png b/TMessagesProj/src/main/assets/emoji/6_297.png new file mode 100644 index 0000000000..04e93645bd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_297.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_3.png b/TMessagesProj/src/main/assets/emoji/6_3.png new file mode 100644 index 0000000000..1e96ae1ca6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_30.png b/TMessagesProj/src/main/assets/emoji/6_30.png new file mode 100644 index 0000000000..8abadc5912 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_31.png b/TMessagesProj/src/main/assets/emoji/6_31.png new file mode 100644 index 0000000000..0fd37f4d6d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_32.png b/TMessagesProj/src/main/assets/emoji/6_32.png new file mode 100644 index 0000000000..eb43c0fccd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_33.png b/TMessagesProj/src/main/assets/emoji/6_33.png new file mode 100644 index 0000000000..d082155056 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_34.png b/TMessagesProj/src/main/assets/emoji/6_34.png new file mode 100644 index 0000000000..6d5dd056b0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_35.png b/TMessagesProj/src/main/assets/emoji/6_35.png new file mode 100644 index 0000000000..7979f374c7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_36.png b/TMessagesProj/src/main/assets/emoji/6_36.png new file mode 100644 index 0000000000..c9b6d6ed6e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_37.png b/TMessagesProj/src/main/assets/emoji/6_37.png new file mode 100644 index 0000000000..a4b804f6c6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_38.png b/TMessagesProj/src/main/assets/emoji/6_38.png new file mode 100644 index 0000000000..1b60a4ed8f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_39.png b/TMessagesProj/src/main/assets/emoji/6_39.png new file mode 100644 index 0000000000..7d635f1f03 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_4.png b/TMessagesProj/src/main/assets/emoji/6_4.png new file mode 100644 index 0000000000..a7f39f353d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_40.png b/TMessagesProj/src/main/assets/emoji/6_40.png new file mode 100644 index 0000000000..5896dc4600 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_41.png b/TMessagesProj/src/main/assets/emoji/6_41.png new file mode 100644 index 0000000000..1e7d05066c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_42.png b/TMessagesProj/src/main/assets/emoji/6_42.png new file mode 100644 index 0000000000..885eae8631 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_43.png b/TMessagesProj/src/main/assets/emoji/6_43.png new file mode 100644 index 0000000000..d904eacb22 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_44.png b/TMessagesProj/src/main/assets/emoji/6_44.png new file mode 100644 index 0000000000..7c201f3dfd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_45.png b/TMessagesProj/src/main/assets/emoji/6_45.png new file mode 100644 index 0000000000..10492081c0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_46.png b/TMessagesProj/src/main/assets/emoji/6_46.png new file mode 100644 index 0000000000..d9ac2454ee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_47.png b/TMessagesProj/src/main/assets/emoji/6_47.png new file mode 100644 index 0000000000..3050788bf0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_48.png b/TMessagesProj/src/main/assets/emoji/6_48.png new file mode 100644 index 0000000000..fcdf2ebc8d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_49.png b/TMessagesProj/src/main/assets/emoji/6_49.png new file mode 100644 index 0000000000..33631b00cc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_5.png b/TMessagesProj/src/main/assets/emoji/6_5.png new file mode 100644 index 0000000000..e0637c102d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_50.png b/TMessagesProj/src/main/assets/emoji/6_50.png new file mode 100644 index 0000000000..771f6603d3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_51.png b/TMessagesProj/src/main/assets/emoji/6_51.png new file mode 100644 index 0000000000..36df632e95 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_52.png b/TMessagesProj/src/main/assets/emoji/6_52.png new file mode 100644 index 0000000000..660421ba9b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_53.png b/TMessagesProj/src/main/assets/emoji/6_53.png new file mode 100644 index 0000000000..6cd196fb46 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_54.png b/TMessagesProj/src/main/assets/emoji/6_54.png new file mode 100644 index 0000000000..36656c9dfa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_55.png b/TMessagesProj/src/main/assets/emoji/6_55.png new file mode 100644 index 0000000000..282c3b2b32 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_56.png b/TMessagesProj/src/main/assets/emoji/6_56.png new file mode 100644 index 0000000000..92a35226dc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_57.png b/TMessagesProj/src/main/assets/emoji/6_57.png new file mode 100644 index 0000000000..15e37ecfee Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_58.png b/TMessagesProj/src/main/assets/emoji/6_58.png new file mode 100644 index 0000000000..15823f03be Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_59.png b/TMessagesProj/src/main/assets/emoji/6_59.png new file mode 100644 index 0000000000..2f0aa63dda Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_6.png b/TMessagesProj/src/main/assets/emoji/6_6.png new file mode 100644 index 0000000000..7dbf615acf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_60.png b/TMessagesProj/src/main/assets/emoji/6_60.png new file mode 100644 index 0000000000..4b3afc6cfa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_61.png b/TMessagesProj/src/main/assets/emoji/6_61.png new file mode 100644 index 0000000000..855d37c5b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_62.png b/TMessagesProj/src/main/assets/emoji/6_62.png new file mode 100644 index 0000000000..7ff21d95cd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_63.png b/TMessagesProj/src/main/assets/emoji/6_63.png new file mode 100644 index 0000000000..a2e0325df7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_64.png b/TMessagesProj/src/main/assets/emoji/6_64.png new file mode 100644 index 0000000000..0b89ec9f5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_65.png b/TMessagesProj/src/main/assets/emoji/6_65.png new file mode 100644 index 0000000000..3012bb56af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_66.png b/TMessagesProj/src/main/assets/emoji/6_66.png new file mode 100644 index 0000000000..37f948acd0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_67.png b/TMessagesProj/src/main/assets/emoji/6_67.png new file mode 100644 index 0000000000..2de16ccd48 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_68.png b/TMessagesProj/src/main/assets/emoji/6_68.png new file mode 100644 index 0000000000..43a3939a28 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_69.png b/TMessagesProj/src/main/assets/emoji/6_69.png new file mode 100644 index 0000000000..2ffb137d5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_7.png b/TMessagesProj/src/main/assets/emoji/6_7.png new file mode 100644 index 0000000000..027d4f76ad Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_70.png b/TMessagesProj/src/main/assets/emoji/6_70.png new file mode 100644 index 0000000000..ac1db913eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_71.png b/TMessagesProj/src/main/assets/emoji/6_71.png new file mode 100644 index 0000000000..6a18020bb4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_72.png b/TMessagesProj/src/main/assets/emoji/6_72.png new file mode 100644 index 0000000000..a2f94ead6a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_73.png b/TMessagesProj/src/main/assets/emoji/6_73.png new file mode 100644 index 0000000000..84ff60ec3d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_74.png b/TMessagesProj/src/main/assets/emoji/6_74.png new file mode 100644 index 0000000000..98a31f5d8c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_75.png b/TMessagesProj/src/main/assets/emoji/6_75.png new file mode 100644 index 0000000000..1871a1096b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_76.png b/TMessagesProj/src/main/assets/emoji/6_76.png new file mode 100644 index 0000000000..c3eaedafd9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_77.png b/TMessagesProj/src/main/assets/emoji/6_77.png new file mode 100644 index 0000000000..923c3b5211 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_78.png b/TMessagesProj/src/main/assets/emoji/6_78.png new file mode 100644 index 0000000000..7306b07ecb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_79.png b/TMessagesProj/src/main/assets/emoji/6_79.png new file mode 100644 index 0000000000..1724fdba01 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_8.png b/TMessagesProj/src/main/assets/emoji/6_8.png new file mode 100644 index 0000000000..15929f2f00 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_80.png b/TMessagesProj/src/main/assets/emoji/6_80.png new file mode 100644 index 0000000000..50e0d4e833 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_81.png b/TMessagesProj/src/main/assets/emoji/6_81.png new file mode 100644 index 0000000000..151f3a2ed7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_82.png b/TMessagesProj/src/main/assets/emoji/6_82.png new file mode 100644 index 0000000000..bb8b3d3785 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_83.png b/TMessagesProj/src/main/assets/emoji/6_83.png new file mode 100644 index 0000000000..769dffadb8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_84.png b/TMessagesProj/src/main/assets/emoji/6_84.png new file mode 100644 index 0000000000..95fc90aaac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_85.png b/TMessagesProj/src/main/assets/emoji/6_85.png new file mode 100644 index 0000000000..375aecb555 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_86.png b/TMessagesProj/src/main/assets/emoji/6_86.png new file mode 100644 index 0000000000..15a22ea03c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_87.png b/TMessagesProj/src/main/assets/emoji/6_87.png new file mode 100644 index 0000000000..8f07e10476 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_88.png b/TMessagesProj/src/main/assets/emoji/6_88.png new file mode 100644 index 0000000000..620f14797f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_89.png b/TMessagesProj/src/main/assets/emoji/6_89.png new file mode 100644 index 0000000000..ada731d06d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_9.png b/TMessagesProj/src/main/assets/emoji/6_9.png new file mode 100644 index 0000000000..0299ac4515 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_90.png b/TMessagesProj/src/main/assets/emoji/6_90.png new file mode 100644 index 0000000000..5a35a3b0a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_91.png b/TMessagesProj/src/main/assets/emoji/6_91.png new file mode 100644 index 0000000000..74ee5f5600 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_92.png b/TMessagesProj/src/main/assets/emoji/6_92.png new file mode 100644 index 0000000000..1d4b21d985 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_93.png b/TMessagesProj/src/main/assets/emoji/6_93.png new file mode 100644 index 0000000000..920ae1d8db Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_94.png b/TMessagesProj/src/main/assets/emoji/6_94.png new file mode 100644 index 0000000000..f38142de4a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_95.png b/TMessagesProj/src/main/assets/emoji/6_95.png new file mode 100644 index 0000000000..74721f37c5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_96.png b/TMessagesProj/src/main/assets/emoji/6_96.png new file mode 100644 index 0000000000..b0b842599d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_97.png b/TMessagesProj/src/main/assets/emoji/6_97.png new file mode 100644 index 0000000000..8d40f79690 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_98.png b/TMessagesProj/src/main/assets/emoji/6_98.png new file mode 100644 index 0000000000..21ed53cde8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_99.png b/TMessagesProj/src/main/assets/emoji/6_99.png new file mode 100644 index 0000000000..0692ef2480 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/6_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_0.png b/TMessagesProj/src/main/assets/emoji/7_0.png new file mode 100644 index 0000000000..212b86fb13 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_1.png b/TMessagesProj/src/main/assets/emoji/7_1.png new file mode 100644 index 0000000000..fde676a8ad Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_10.png b/TMessagesProj/src/main/assets/emoji/7_10.png new file mode 100644 index 0000000000..5e745e41f6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_100.png b/TMessagesProj/src/main/assets/emoji/7_100.png new file mode 100644 index 0000000000..a6c6d53d46 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_101.png b/TMessagesProj/src/main/assets/emoji/7_101.png new file mode 100644 index 0000000000..914de277e6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_102.png b/TMessagesProj/src/main/assets/emoji/7_102.png new file mode 100644 index 0000000000..557bb23d7f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_103.png b/TMessagesProj/src/main/assets/emoji/7_103.png new file mode 100644 index 0000000000..6398d337f8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_104.png b/TMessagesProj/src/main/assets/emoji/7_104.png new file mode 100644 index 0000000000..41b6333db4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_105.png b/TMessagesProj/src/main/assets/emoji/7_105.png new file mode 100644 index 0000000000..22ab30c460 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_106.png b/TMessagesProj/src/main/assets/emoji/7_106.png new file mode 100644 index 0000000000..44baad1f14 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_107.png b/TMessagesProj/src/main/assets/emoji/7_107.png new file mode 100644 index 0000000000..10a7f37bac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_108.png b/TMessagesProj/src/main/assets/emoji/7_108.png new file mode 100644 index 0000000000..a4f5c51b88 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_109.png b/TMessagesProj/src/main/assets/emoji/7_109.png new file mode 100644 index 0000000000..4b3891da53 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_11.png b/TMessagesProj/src/main/assets/emoji/7_11.png new file mode 100644 index 0000000000..5fc15898c5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_110.png b/TMessagesProj/src/main/assets/emoji/7_110.png new file mode 100644 index 0000000000..9973509483 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_111.png b/TMessagesProj/src/main/assets/emoji/7_111.png new file mode 100644 index 0000000000..a34c2d083c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_112.png b/TMessagesProj/src/main/assets/emoji/7_112.png new file mode 100644 index 0000000000..3890411aef Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_113.png b/TMessagesProj/src/main/assets/emoji/7_113.png new file mode 100644 index 0000000000..41bdebd776 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_114.png b/TMessagesProj/src/main/assets/emoji/7_114.png new file mode 100644 index 0000000000..ac2f50bf4a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_115.png b/TMessagesProj/src/main/assets/emoji/7_115.png new file mode 100644 index 0000000000..859402afeb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_116.png b/TMessagesProj/src/main/assets/emoji/7_116.png new file mode 100644 index 0000000000..840393f1eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_117.png b/TMessagesProj/src/main/assets/emoji/7_117.png new file mode 100644 index 0000000000..dbd9d378a2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_118.png b/TMessagesProj/src/main/assets/emoji/7_118.png new file mode 100644 index 0000000000..6b469f1c3d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_119.png b/TMessagesProj/src/main/assets/emoji/7_119.png new file mode 100644 index 0000000000..8096e1ff4f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_12.png b/TMessagesProj/src/main/assets/emoji/7_12.png new file mode 100644 index 0000000000..34de193d0e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_120.png b/TMessagesProj/src/main/assets/emoji/7_120.png new file mode 100644 index 0000000000..dff77d3cf0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_121.png b/TMessagesProj/src/main/assets/emoji/7_121.png new file mode 100644 index 0000000000..166cfc39af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_122.png b/TMessagesProj/src/main/assets/emoji/7_122.png new file mode 100644 index 0000000000..64200db398 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_123.png b/TMessagesProj/src/main/assets/emoji/7_123.png new file mode 100644 index 0000000000..d9f8e8557d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_124.png b/TMessagesProj/src/main/assets/emoji/7_124.png new file mode 100644 index 0000000000..ab0448dd15 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_125.png b/TMessagesProj/src/main/assets/emoji/7_125.png new file mode 100644 index 0000000000..4950cf9e63 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_126.png b/TMessagesProj/src/main/assets/emoji/7_126.png new file mode 100644 index 0000000000..41d8391b69 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_127.png b/TMessagesProj/src/main/assets/emoji/7_127.png new file mode 100644 index 0000000000..7933d8a58d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_128.png b/TMessagesProj/src/main/assets/emoji/7_128.png new file mode 100644 index 0000000000..dd34adfb0a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_129.png b/TMessagesProj/src/main/assets/emoji/7_129.png new file mode 100644 index 0000000000..504615f332 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_13.png b/TMessagesProj/src/main/assets/emoji/7_13.png new file mode 100644 index 0000000000..816a0bb0a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_130.png b/TMessagesProj/src/main/assets/emoji/7_130.png new file mode 100644 index 0000000000..58461da5f9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_131.png b/TMessagesProj/src/main/assets/emoji/7_131.png new file mode 100644 index 0000000000..ec40348864 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_132.png b/TMessagesProj/src/main/assets/emoji/7_132.png new file mode 100644 index 0000000000..d4686544fe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_133.png b/TMessagesProj/src/main/assets/emoji/7_133.png new file mode 100644 index 0000000000..447c67c8a0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_134.png b/TMessagesProj/src/main/assets/emoji/7_134.png new file mode 100644 index 0000000000..d098f05511 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_135.png b/TMessagesProj/src/main/assets/emoji/7_135.png new file mode 100644 index 0000000000..def61a2476 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_136.png b/TMessagesProj/src/main/assets/emoji/7_136.png new file mode 100644 index 0000000000..d209b38c74 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_137.png b/TMessagesProj/src/main/assets/emoji/7_137.png new file mode 100644 index 0000000000..b70e056ba3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_138.png b/TMessagesProj/src/main/assets/emoji/7_138.png new file mode 100644 index 0000000000..8ccabe50f8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_139.png b/TMessagesProj/src/main/assets/emoji/7_139.png new file mode 100644 index 0000000000..6bad042225 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_14.png b/TMessagesProj/src/main/assets/emoji/7_14.png new file mode 100644 index 0000000000..31dcbbf3ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_140.png b/TMessagesProj/src/main/assets/emoji/7_140.png new file mode 100644 index 0000000000..25f0778f46 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_141.png b/TMessagesProj/src/main/assets/emoji/7_141.png new file mode 100644 index 0000000000..36c4d78505 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_142.png b/TMessagesProj/src/main/assets/emoji/7_142.png new file mode 100644 index 0000000000..fc59e86a25 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_143.png b/TMessagesProj/src/main/assets/emoji/7_143.png new file mode 100644 index 0000000000..bb1d7ebcfa Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_144.png b/TMessagesProj/src/main/assets/emoji/7_144.png new file mode 100644 index 0000000000..3391a90f5b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_145.png b/TMessagesProj/src/main/assets/emoji/7_145.png new file mode 100644 index 0000000000..07f2807c63 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_146.png b/TMessagesProj/src/main/assets/emoji/7_146.png new file mode 100644 index 0000000000..c948e24eb9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_147.png b/TMessagesProj/src/main/assets/emoji/7_147.png new file mode 100644 index 0000000000..c5d6e373b5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_148.png b/TMessagesProj/src/main/assets/emoji/7_148.png new file mode 100644 index 0000000000..669b27b9b9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_149.png b/TMessagesProj/src/main/assets/emoji/7_149.png new file mode 100644 index 0000000000..4c9f5292a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_15.png b/TMessagesProj/src/main/assets/emoji/7_15.png new file mode 100644 index 0000000000..eac43f307d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_150.png b/TMessagesProj/src/main/assets/emoji/7_150.png new file mode 100644 index 0000000000..9ad64d6f66 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_151.png b/TMessagesProj/src/main/assets/emoji/7_151.png new file mode 100644 index 0000000000..402d6d305a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_152.png b/TMessagesProj/src/main/assets/emoji/7_152.png new file mode 100644 index 0000000000..7e9ae91369 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_153.png b/TMessagesProj/src/main/assets/emoji/7_153.png new file mode 100644 index 0000000000..5ddce5a530 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_154.png b/TMessagesProj/src/main/assets/emoji/7_154.png new file mode 100644 index 0000000000..5fe1cfd55b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_155.png b/TMessagesProj/src/main/assets/emoji/7_155.png new file mode 100644 index 0000000000..237fd69b0c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_156.png b/TMessagesProj/src/main/assets/emoji/7_156.png new file mode 100644 index 0000000000..2ec5dde2ba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_157.png b/TMessagesProj/src/main/assets/emoji/7_157.png new file mode 100644 index 0000000000..6420ccbcc6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_158.png b/TMessagesProj/src/main/assets/emoji/7_158.png new file mode 100644 index 0000000000..7dacecf16a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_159.png b/TMessagesProj/src/main/assets/emoji/7_159.png new file mode 100644 index 0000000000..9ea4542e05 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_16.png b/TMessagesProj/src/main/assets/emoji/7_16.png new file mode 100644 index 0000000000..e9d823d0fb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_160.png b/TMessagesProj/src/main/assets/emoji/7_160.png new file mode 100644 index 0000000000..e082abec5c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_161.png b/TMessagesProj/src/main/assets/emoji/7_161.png new file mode 100644 index 0000000000..a6304db3cc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_162.png b/TMessagesProj/src/main/assets/emoji/7_162.png new file mode 100644 index 0000000000..03d6b9e562 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_163.png b/TMessagesProj/src/main/assets/emoji/7_163.png new file mode 100644 index 0000000000..6c7fb57a20 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_164.png b/TMessagesProj/src/main/assets/emoji/7_164.png new file mode 100644 index 0000000000..78048d3b23 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_165.png b/TMessagesProj/src/main/assets/emoji/7_165.png new file mode 100644 index 0000000000..014ce32c1f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_166.png b/TMessagesProj/src/main/assets/emoji/7_166.png new file mode 100644 index 0000000000..83c45a4f24 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_167.png b/TMessagesProj/src/main/assets/emoji/7_167.png new file mode 100644 index 0000000000..7b00eaa70d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_168.png b/TMessagesProj/src/main/assets/emoji/7_168.png new file mode 100644 index 0000000000..3d4b49a4a2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_169.png b/TMessagesProj/src/main/assets/emoji/7_169.png new file mode 100644 index 0000000000..549e662ac7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_17.png b/TMessagesProj/src/main/assets/emoji/7_17.png new file mode 100644 index 0000000000..b45b2a449d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_170.png b/TMessagesProj/src/main/assets/emoji/7_170.png new file mode 100644 index 0000000000..0006217582 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_171.png b/TMessagesProj/src/main/assets/emoji/7_171.png new file mode 100644 index 0000000000..92f06dc05e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_172.png b/TMessagesProj/src/main/assets/emoji/7_172.png new file mode 100644 index 0000000000..2936fa29d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_173.png b/TMessagesProj/src/main/assets/emoji/7_173.png new file mode 100644 index 0000000000..260f2440da Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_174.png b/TMessagesProj/src/main/assets/emoji/7_174.png new file mode 100644 index 0000000000..379178952a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_175.png b/TMessagesProj/src/main/assets/emoji/7_175.png new file mode 100644 index 0000000000..92b31106c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_176.png b/TMessagesProj/src/main/assets/emoji/7_176.png new file mode 100644 index 0000000000..04a65af43d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_177.png b/TMessagesProj/src/main/assets/emoji/7_177.png new file mode 100644 index 0000000000..59825c05b4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_178.png b/TMessagesProj/src/main/assets/emoji/7_178.png new file mode 100644 index 0000000000..0b1540b4c8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_179.png b/TMessagesProj/src/main/assets/emoji/7_179.png new file mode 100644 index 0000000000..2eeebeb97e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_18.png b/TMessagesProj/src/main/assets/emoji/7_18.png new file mode 100644 index 0000000000..749831bb4f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_180.png b/TMessagesProj/src/main/assets/emoji/7_180.png new file mode 100644 index 0000000000..62e7c7f35d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_181.png b/TMessagesProj/src/main/assets/emoji/7_181.png new file mode 100644 index 0000000000..11ad19df88 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_182.png b/TMessagesProj/src/main/assets/emoji/7_182.png new file mode 100644 index 0000000000..cebc10098d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_183.png b/TMessagesProj/src/main/assets/emoji/7_183.png new file mode 100644 index 0000000000..1e17e2221d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_184.png b/TMessagesProj/src/main/assets/emoji/7_184.png new file mode 100644 index 0000000000..fd9fe91d9c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_185.png b/TMessagesProj/src/main/assets/emoji/7_185.png new file mode 100644 index 0000000000..fa20d36628 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_186.png b/TMessagesProj/src/main/assets/emoji/7_186.png new file mode 100644 index 0000000000..7d2e2361ef Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_187.png b/TMessagesProj/src/main/assets/emoji/7_187.png new file mode 100644 index 0000000000..c07bc27a62 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_188.png b/TMessagesProj/src/main/assets/emoji/7_188.png new file mode 100644 index 0000000000..03bfd8b643 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_189.png b/TMessagesProj/src/main/assets/emoji/7_189.png new file mode 100644 index 0000000000..bf9fd2f796 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_19.png b/TMessagesProj/src/main/assets/emoji/7_19.png new file mode 100644 index 0000000000..43a964a1cf Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_190.png b/TMessagesProj/src/main/assets/emoji/7_190.png new file mode 100644 index 0000000000..38b6f61692 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_191.png b/TMessagesProj/src/main/assets/emoji/7_191.png new file mode 100644 index 0000000000..52a4278490 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_192.png b/TMessagesProj/src/main/assets/emoji/7_192.png new file mode 100644 index 0000000000..04efd71657 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_193.png b/TMessagesProj/src/main/assets/emoji/7_193.png new file mode 100644 index 0000000000..1588f800ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_194.png b/TMessagesProj/src/main/assets/emoji/7_194.png new file mode 100644 index 0000000000..cf6b16e2d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_195.png b/TMessagesProj/src/main/assets/emoji/7_195.png new file mode 100644 index 0000000000..6898ac0e78 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_196.png b/TMessagesProj/src/main/assets/emoji/7_196.png new file mode 100644 index 0000000000..19aea02c49 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_197.png b/TMessagesProj/src/main/assets/emoji/7_197.png new file mode 100644 index 0000000000..4f8b1f6bb2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_198.png b/TMessagesProj/src/main/assets/emoji/7_198.png new file mode 100644 index 0000000000..2ed241947e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_199.png b/TMessagesProj/src/main/assets/emoji/7_199.png new file mode 100644 index 0000000000..621b079644 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_2.png b/TMessagesProj/src/main/assets/emoji/7_2.png new file mode 100644 index 0000000000..315c81080d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_20.png b/TMessagesProj/src/main/assets/emoji/7_20.png new file mode 100644 index 0000000000..430ac4812e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_200.png b/TMessagesProj/src/main/assets/emoji/7_200.png new file mode 100644 index 0000000000..0d661eb7e3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_201.png b/TMessagesProj/src/main/assets/emoji/7_201.png new file mode 100644 index 0000000000..88a342f4d6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_202.png b/TMessagesProj/src/main/assets/emoji/7_202.png new file mode 100644 index 0000000000..84f6d3fd95 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_203.png b/TMessagesProj/src/main/assets/emoji/7_203.png new file mode 100644 index 0000000000..6e9d049c5a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_204.png b/TMessagesProj/src/main/assets/emoji/7_204.png new file mode 100644 index 0000000000..31d257b81b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_205.png b/TMessagesProj/src/main/assets/emoji/7_205.png new file mode 100644 index 0000000000..0ef5aeddf6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_206.png b/TMessagesProj/src/main/assets/emoji/7_206.png new file mode 100644 index 0000000000..b282638f82 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_207.png b/TMessagesProj/src/main/assets/emoji/7_207.png new file mode 100644 index 0000000000..89b0768ac8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_208.png b/TMessagesProj/src/main/assets/emoji/7_208.png new file mode 100644 index 0000000000..0aad03a6e0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_209.png b/TMessagesProj/src/main/assets/emoji/7_209.png new file mode 100644 index 0000000000..e0f90d3d5b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_21.png b/TMessagesProj/src/main/assets/emoji/7_21.png new file mode 100644 index 0000000000..09ff5c12d6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_210.png b/TMessagesProj/src/main/assets/emoji/7_210.png new file mode 100644 index 0000000000..bba4bf822c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_211.png b/TMessagesProj/src/main/assets/emoji/7_211.png new file mode 100644 index 0000000000..f7b2414e7c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_212.png b/TMessagesProj/src/main/assets/emoji/7_212.png new file mode 100644 index 0000000000..d246fc3f79 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_213.png b/TMessagesProj/src/main/assets/emoji/7_213.png new file mode 100644 index 0000000000..210d20f09b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_214.png b/TMessagesProj/src/main/assets/emoji/7_214.png new file mode 100644 index 0000000000..639f103a3e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_215.png b/TMessagesProj/src/main/assets/emoji/7_215.png new file mode 100644 index 0000000000..8770c09087 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_216.png b/TMessagesProj/src/main/assets/emoji/7_216.png new file mode 100644 index 0000000000..1161527e12 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_217.png b/TMessagesProj/src/main/assets/emoji/7_217.png new file mode 100644 index 0000000000..ae5cb276e4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_218.png b/TMessagesProj/src/main/assets/emoji/7_218.png new file mode 100644 index 0000000000..587ee0bc6e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_219.png b/TMessagesProj/src/main/assets/emoji/7_219.png new file mode 100644 index 0000000000..21e6a023ed Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_22.png b/TMessagesProj/src/main/assets/emoji/7_22.png new file mode 100644 index 0000000000..ac462a3e69 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_220.png b/TMessagesProj/src/main/assets/emoji/7_220.png new file mode 100644 index 0000000000..66735f6fbb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_221.png b/TMessagesProj/src/main/assets/emoji/7_221.png new file mode 100644 index 0000000000..3075e56aef Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_222.png b/TMessagesProj/src/main/assets/emoji/7_222.png new file mode 100644 index 0000000000..9b56b4a592 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_223.png b/TMessagesProj/src/main/assets/emoji/7_223.png new file mode 100644 index 0000000000..d73b0963ba Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_224.png b/TMessagesProj/src/main/assets/emoji/7_224.png new file mode 100644 index 0000000000..0a4f8faffb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_225.png b/TMessagesProj/src/main/assets/emoji/7_225.png new file mode 100644 index 0000000000..b9dd492721 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_226.png b/TMessagesProj/src/main/assets/emoji/7_226.png new file mode 100644 index 0000000000..ecb646f3e9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_227.png b/TMessagesProj/src/main/assets/emoji/7_227.png new file mode 100644 index 0000000000..4a4100c72b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_228.png b/TMessagesProj/src/main/assets/emoji/7_228.png new file mode 100644 index 0000000000..c9c8e87bc3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_229.png b/TMessagesProj/src/main/assets/emoji/7_229.png new file mode 100644 index 0000000000..63261d7438 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_23.png b/TMessagesProj/src/main/assets/emoji/7_23.png new file mode 100644 index 0000000000..2e142fcc0d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_230.png b/TMessagesProj/src/main/assets/emoji/7_230.png new file mode 100644 index 0000000000..b6a641de5b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_230.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_231.png b/TMessagesProj/src/main/assets/emoji/7_231.png new file mode 100644 index 0000000000..2347dcce03 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_231.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_232.png b/TMessagesProj/src/main/assets/emoji/7_232.png new file mode 100644 index 0000000000..c442d58191 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_232.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_233.png b/TMessagesProj/src/main/assets/emoji/7_233.png new file mode 100644 index 0000000000..6587f5d54e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_233.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_234.png b/TMessagesProj/src/main/assets/emoji/7_234.png new file mode 100644 index 0000000000..9e9631e0ae Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_234.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_235.png b/TMessagesProj/src/main/assets/emoji/7_235.png new file mode 100644 index 0000000000..f8ef93c7ac Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_235.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_236.png b/TMessagesProj/src/main/assets/emoji/7_236.png new file mode 100644 index 0000000000..ec47921255 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_236.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_237.png b/TMessagesProj/src/main/assets/emoji/7_237.png new file mode 100644 index 0000000000..6a3ff655a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_237.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_238.png b/TMessagesProj/src/main/assets/emoji/7_238.png new file mode 100644 index 0000000000..5ee9713dad Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_238.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_239.png b/TMessagesProj/src/main/assets/emoji/7_239.png new file mode 100644 index 0000000000..80e3d7095b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_239.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_24.png b/TMessagesProj/src/main/assets/emoji/7_24.png new file mode 100644 index 0000000000..9325182e27 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_240.png b/TMessagesProj/src/main/assets/emoji/7_240.png new file mode 100644 index 0000000000..292932323a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_240.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_241.png b/TMessagesProj/src/main/assets/emoji/7_241.png new file mode 100644 index 0000000000..a402e13e3a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_241.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_242.png b/TMessagesProj/src/main/assets/emoji/7_242.png new file mode 100644 index 0000000000..6f1afc20a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_242.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_243.png b/TMessagesProj/src/main/assets/emoji/7_243.png new file mode 100644 index 0000000000..963b0727f1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_243.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_244.png b/TMessagesProj/src/main/assets/emoji/7_244.png new file mode 100644 index 0000000000..7acb9947b3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_244.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_245.png b/TMessagesProj/src/main/assets/emoji/7_245.png new file mode 100644 index 0000000000..c26be3ee21 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_245.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_246.png b/TMessagesProj/src/main/assets/emoji/7_246.png new file mode 100644 index 0000000000..86c5c8f7df Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_246.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_247.png b/TMessagesProj/src/main/assets/emoji/7_247.png new file mode 100644 index 0000000000..ac31a9e998 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_247.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_248.png b/TMessagesProj/src/main/assets/emoji/7_248.png new file mode 100644 index 0000000000..6d2a0faf33 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_248.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_249.png b/TMessagesProj/src/main/assets/emoji/7_249.png new file mode 100644 index 0000000000..7f065eeab6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_249.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_25.png b/TMessagesProj/src/main/assets/emoji/7_25.png new file mode 100644 index 0000000000..4a12897b95 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_250.png b/TMessagesProj/src/main/assets/emoji/7_250.png new file mode 100644 index 0000000000..208f1819f2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_250.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_251.png b/TMessagesProj/src/main/assets/emoji/7_251.png new file mode 100644 index 0000000000..f116e0e419 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_251.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_252.png b/TMessagesProj/src/main/assets/emoji/7_252.png new file mode 100644 index 0000000000..7eac9217c2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_252.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_253.png b/TMessagesProj/src/main/assets/emoji/7_253.png new file mode 100644 index 0000000000..9382c3d3d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_253.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_254.png b/TMessagesProj/src/main/assets/emoji/7_254.png new file mode 100644 index 0000000000..9dacf3ed7c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_254.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_255.png b/TMessagesProj/src/main/assets/emoji/7_255.png new file mode 100644 index 0000000000..222dc58e2c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_255.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_256.png b/TMessagesProj/src/main/assets/emoji/7_256.png new file mode 100644 index 0000000000..ae11786380 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_256.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_257.png b/TMessagesProj/src/main/assets/emoji/7_257.png new file mode 100644 index 0000000000..c01245ce5b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_257.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_258.png b/TMessagesProj/src/main/assets/emoji/7_258.png new file mode 100644 index 0000000000..277b14c953 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_258.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_26.png b/TMessagesProj/src/main/assets/emoji/7_26.png new file mode 100644 index 0000000000..12820d17a8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_27.png b/TMessagesProj/src/main/assets/emoji/7_27.png new file mode 100644 index 0000000000..17cf6544d0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_28.png b/TMessagesProj/src/main/assets/emoji/7_28.png new file mode 100644 index 0000000000..f4c5bc6453 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_29.png b/TMessagesProj/src/main/assets/emoji/7_29.png new file mode 100644 index 0000000000..db80e874b9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_3.png b/TMessagesProj/src/main/assets/emoji/7_3.png new file mode 100644 index 0000000000..43d776b2ce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_30.png b/TMessagesProj/src/main/assets/emoji/7_30.png new file mode 100644 index 0000000000..25336a9c64 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_31.png b/TMessagesProj/src/main/assets/emoji/7_31.png new file mode 100644 index 0000000000..e7920085af Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_32.png b/TMessagesProj/src/main/assets/emoji/7_32.png new file mode 100644 index 0000000000..64490f3829 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_33.png b/TMessagesProj/src/main/assets/emoji/7_33.png new file mode 100644 index 0000000000..c5eec42894 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_34.png b/TMessagesProj/src/main/assets/emoji/7_34.png new file mode 100644 index 0000000000..7da15351d1 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_35.png b/TMessagesProj/src/main/assets/emoji/7_35.png new file mode 100644 index 0000000000..3854981107 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_36.png b/TMessagesProj/src/main/assets/emoji/7_36.png new file mode 100644 index 0000000000..d97ca82999 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_37.png b/TMessagesProj/src/main/assets/emoji/7_37.png new file mode 100644 index 0000000000..472644810d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_38.png b/TMessagesProj/src/main/assets/emoji/7_38.png new file mode 100644 index 0000000000..1a5789bdfb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_39.png b/TMessagesProj/src/main/assets/emoji/7_39.png new file mode 100644 index 0000000000..1295a938d5 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_4.png b/TMessagesProj/src/main/assets/emoji/7_4.png new file mode 100644 index 0000000000..31c38b1d28 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_40.png b/TMessagesProj/src/main/assets/emoji/7_40.png new file mode 100644 index 0000000000..09faf1ade2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_41.png b/TMessagesProj/src/main/assets/emoji/7_41.png new file mode 100644 index 0000000000..0bdb8b27c9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_42.png b/TMessagesProj/src/main/assets/emoji/7_42.png new file mode 100644 index 0000000000..50279a28d7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_43.png b/TMessagesProj/src/main/assets/emoji/7_43.png new file mode 100644 index 0000000000..50d029042c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_44.png b/TMessagesProj/src/main/assets/emoji/7_44.png new file mode 100644 index 0000000000..7cdfaa7250 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_45.png b/TMessagesProj/src/main/assets/emoji/7_45.png new file mode 100644 index 0000000000..cd93305fa7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_46.png b/TMessagesProj/src/main/assets/emoji/7_46.png new file mode 100644 index 0000000000..07f307bc59 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_47.png b/TMessagesProj/src/main/assets/emoji/7_47.png new file mode 100644 index 0000000000..780daabd98 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_48.png b/TMessagesProj/src/main/assets/emoji/7_48.png new file mode 100644 index 0000000000..d808fec8b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_49.png b/TMessagesProj/src/main/assets/emoji/7_49.png new file mode 100644 index 0000000000..aad709d29c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_5.png b/TMessagesProj/src/main/assets/emoji/7_5.png new file mode 100644 index 0000000000..f09d1cf6b4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_50.png b/TMessagesProj/src/main/assets/emoji/7_50.png new file mode 100644 index 0000000000..6b7a0b9342 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_51.png b/TMessagesProj/src/main/assets/emoji/7_51.png new file mode 100644 index 0000000000..933cf70980 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_52.png b/TMessagesProj/src/main/assets/emoji/7_52.png new file mode 100644 index 0000000000..3a82fc2ab7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_53.png b/TMessagesProj/src/main/assets/emoji/7_53.png new file mode 100644 index 0000000000..5d5f4af7d6 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_54.png b/TMessagesProj/src/main/assets/emoji/7_54.png new file mode 100644 index 0000000000..433159efab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_55.png b/TMessagesProj/src/main/assets/emoji/7_55.png new file mode 100644 index 0000000000..535a9d1506 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_56.png b/TMessagesProj/src/main/assets/emoji/7_56.png new file mode 100644 index 0000000000..cac1c05807 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_57.png b/TMessagesProj/src/main/assets/emoji/7_57.png new file mode 100644 index 0000000000..915cdb9dfe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_58.png b/TMessagesProj/src/main/assets/emoji/7_58.png new file mode 100644 index 0000000000..edf96de13c Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_59.png b/TMessagesProj/src/main/assets/emoji/7_59.png new file mode 100644 index 0000000000..692e824723 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_6.png b/TMessagesProj/src/main/assets/emoji/7_6.png new file mode 100644 index 0000000000..19d5ae8b90 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_60.png b/TMessagesProj/src/main/assets/emoji/7_60.png new file mode 100644 index 0000000000..cae9baa97f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_61.png b/TMessagesProj/src/main/assets/emoji/7_61.png new file mode 100644 index 0000000000..47d13c3245 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_62.png b/TMessagesProj/src/main/assets/emoji/7_62.png new file mode 100644 index 0000000000..c750fa17ce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_63.png b/TMessagesProj/src/main/assets/emoji/7_63.png new file mode 100644 index 0000000000..29bd1e57a3 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_64.png b/TMessagesProj/src/main/assets/emoji/7_64.png new file mode 100644 index 0000000000..b8a0db51d4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_65.png b/TMessagesProj/src/main/assets/emoji/7_65.png new file mode 100644 index 0000000000..3dd5d8c75f Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_66.png b/TMessagesProj/src/main/assets/emoji/7_66.png new file mode 100644 index 0000000000..7496d73973 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_67.png b/TMessagesProj/src/main/assets/emoji/7_67.png new file mode 100644 index 0000000000..f92e47c008 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_68.png b/TMessagesProj/src/main/assets/emoji/7_68.png new file mode 100644 index 0000000000..a6baa29ef4 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_69.png b/TMessagesProj/src/main/assets/emoji/7_69.png new file mode 100644 index 0000000000..76c0e4714d Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_7.png b/TMessagesProj/src/main/assets/emoji/7_7.png new file mode 100644 index 0000000000..c9385ac836 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_70.png b/TMessagesProj/src/main/assets/emoji/7_70.png new file mode 100644 index 0000000000..edd7c2b7d2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_71.png b/TMessagesProj/src/main/assets/emoji/7_71.png new file mode 100644 index 0000000000..61a2767dc2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_72.png b/TMessagesProj/src/main/assets/emoji/7_72.png new file mode 100644 index 0000000000..3f5f6a72ab Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_73.png b/TMessagesProj/src/main/assets/emoji/7_73.png new file mode 100644 index 0000000000..0d5e0a2396 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_74.png b/TMessagesProj/src/main/assets/emoji/7_74.png new file mode 100644 index 0000000000..94d532bb3a Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_75.png b/TMessagesProj/src/main/assets/emoji/7_75.png new file mode 100644 index 0000000000..31cdb241bd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_76.png b/TMessagesProj/src/main/assets/emoji/7_76.png new file mode 100644 index 0000000000..8a7131f1ce Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_77.png b/TMessagesProj/src/main/assets/emoji/7_77.png new file mode 100644 index 0000000000..672c097708 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_78.png b/TMessagesProj/src/main/assets/emoji/7_78.png new file mode 100644 index 0000000000..475b4026b2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_79.png b/TMessagesProj/src/main/assets/emoji/7_79.png new file mode 100644 index 0000000000..378b68f8a2 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_8.png b/TMessagesProj/src/main/assets/emoji/7_8.png new file mode 100644 index 0000000000..150372b8a7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_80.png b/TMessagesProj/src/main/assets/emoji/7_80.png new file mode 100644 index 0000000000..84d1b00d25 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_81.png b/TMessagesProj/src/main/assets/emoji/7_81.png new file mode 100644 index 0000000000..d1305f1d65 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_82.png b/TMessagesProj/src/main/assets/emoji/7_82.png new file mode 100644 index 0000000000..419f4b9df8 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_83.png b/TMessagesProj/src/main/assets/emoji/7_83.png new file mode 100644 index 0000000000..5260172a89 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_84.png b/TMessagesProj/src/main/assets/emoji/7_84.png new file mode 100644 index 0000000000..0ac5029939 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_85.png b/TMessagesProj/src/main/assets/emoji/7_85.png new file mode 100644 index 0000000000..d5dc4f8489 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_86.png b/TMessagesProj/src/main/assets/emoji/7_86.png new file mode 100644 index 0000000000..6631dac4f0 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_87.png b/TMessagesProj/src/main/assets/emoji/7_87.png new file mode 100644 index 0000000000..dae3b6dc52 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_88.png b/TMessagesProj/src/main/assets/emoji/7_88.png new file mode 100644 index 0000000000..2d0ed50c80 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_89.png b/TMessagesProj/src/main/assets/emoji/7_89.png new file mode 100644 index 0000000000..30065e0bc9 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_9.png b/TMessagesProj/src/main/assets/emoji/7_9.png new file mode 100644 index 0000000000..e9bc7ee5b7 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_90.png b/TMessagesProj/src/main/assets/emoji/7_90.png new file mode 100644 index 0000000000..42c1fc75dc Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_91.png b/TMessagesProj/src/main/assets/emoji/7_91.png new file mode 100644 index 0000000000..27d86a92eb Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_92.png b/TMessagesProj/src/main/assets/emoji/7_92.png new file mode 100644 index 0000000000..ab9a847fbe Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_93.png b/TMessagesProj/src/main/assets/emoji/7_93.png new file mode 100644 index 0000000000..a2316d270e Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_94.png b/TMessagesProj/src/main/assets/emoji/7_94.png new file mode 100644 index 0000000000..10356ca24b Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_95.png b/TMessagesProj/src/main/assets/emoji/7_95.png new file mode 100644 index 0000000000..d42b2ddafd Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_96.png b/TMessagesProj/src/main/assets/emoji/7_96.png new file mode 100644 index 0000000000..9b112d2d86 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_97.png b/TMessagesProj/src/main/assets/emoji/7_97.png new file mode 100644 index 0000000000..e843e2f902 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_98.png b/TMessagesProj/src/main/assets/emoji/7_98.png new file mode 100644 index 0000000000..cba6150958 Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_99.png b/TMessagesProj/src/main/assets/emoji/7_99.png new file mode 100644 index 0000000000..bf57c995de Binary files /dev/null and b/TMessagesProj/src/main/assets/emoji/7_99.png differ diff --git a/TMessagesProj/src/main/java/androidx/recyclerview/widget/ItemTouchHelper.java b/TMessagesProj/src/main/java/androidx/recyclerview/widget/ItemTouchHelper.java index 0eb906e73f..78f569481e 100644 --- a/TMessagesProj/src/main/java/androidx/recyclerview/widget/ItemTouchHelper.java +++ b/TMessagesProj/src/main/java/androidx/recyclerview/widget/ItemTouchHelper.java @@ -695,7 +695,10 @@ public void onAnimationEnd(Animator animation) { if (actionState == ACTION_STATE_DRAG) { if (!NekoConfig.disableVibration.Bool()) { - mSelected.itemView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); + try { + mSelected.itemView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); + } catch (Exception ignore) { + } } } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java index d4fcb1149e..32ae139fb8 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java @@ -50,6 +50,7 @@ import android.os.PowerManager; import android.os.SystemClock; import android.os.Vibrator; +import android.os.VibratorManager; import android.provider.CallLog; import android.provider.DocumentsContract; import android.provider.MediaStore; @@ -70,6 +71,7 @@ import android.text.method.LinkMovementMethod; import android.text.style.CharacterStyle; import android.text.style.ClickableSpan; +import android.text.style.DynamicDrawableSpan; import android.text.style.URLSpan; import android.text.util.Linkify; import android.util.DisplayMetrics; @@ -79,6 +81,7 @@ import android.util.TypedValue; import android.view.Display; import android.view.Gravity; +import android.view.HapticFeedbackConstants; import android.view.MotionEvent; import android.view.PixelCopy; import android.view.Surface; @@ -87,6 +90,7 @@ import android.view.View; import android.view.ViewConfiguration; import android.view.ViewGroup; +import android.view.ViewParent; import android.view.ViewPropertyAnimator; import android.view.Window; import android.view.WindowInsets; @@ -145,6 +149,7 @@ import org.telegram.ui.Components.AlertsCreator; import org.telegram.ui.Components.BackgroundGradientDrawable; import org.telegram.ui.Components.Bulletin; +import org.telegram.ui.Components.ColoredImageSpan; import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.EllipsizeSpanAnimator; import org.telegram.ui.Components.ForegroundColorSpanThemable; @@ -218,6 +223,7 @@ public class AndroidUtilities { public final static int REPLACING_TAG_TYPE_LINK = 0; public final static int REPLACING_TAG_TYPE_BOLD = 1; public final static int REPLACING_TAG_TYPE_LINKBOLD = 2; + public final static int REPLACING_TAG_TYPE_LINK_NBSP = 3; public final static String TYPEFACE_ROBOTO_MEDIUM = "fonts/rmedium.ttf"; public final static String TYPEFACE_ROBOTO_MEDIUM_ITALIC = "fonts/rmediumitalic.ttf"; @@ -487,7 +493,10 @@ public static SpannableStringBuilder replaceSingleTag(String str, int colorKey, } SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(str); if (index >= 0) { - if (type == REPLACING_TAG_TYPE_LINK || type == REPLACING_TAG_TYPE_LINKBOLD) { + if (type == REPLACING_TAG_TYPE_LINK_NBSP) { + spannableStringBuilder.replace(index, index + len, AndroidUtilities.replaceMultipleCharSequence(" ", spannableStringBuilder.subSequence(index, index + len), "ย ")); + } + if (type == REPLACING_TAG_TYPE_LINK || type == REPLACING_TAG_TYPE_LINK_NBSP || type == REPLACING_TAG_TYPE_LINKBOLD) { spannableStringBuilder.setSpan(new ClickableSpan() { @Override @@ -559,6 +568,26 @@ public void onClick(@NonNull View view) { return spannableStringBuilder; } + public static CharSequence replaceArrows(CharSequence text, boolean link) { + ColoredImageSpan span = new ColoredImageSpan(R.drawable.msg_mini_forumarrow, DynamicDrawableSpan.ALIGN_BOTTOM); + span.setScale(.88f, .88f); + span.translate(-dp(8f / 3f), 0); + span.spaceScaleX = .8f; + if (link) { + span.useLinkPaintColor = link; + } + + SpannableString rightArrow = new SpannableString("ย >"); + rightArrow.setSpan(span, rightArrow.length() - 1, rightArrow.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + text = AndroidUtilities.replaceMultipleCharSequence(" >", text, rightArrow); + + rightArrow = new SpannableString(">"); + rightArrow.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + text = AndroidUtilities.replaceMultipleCharSequence(">", text, rightArrow); + + return text; + } + public static void recycleBitmaps(List bitmapToRecycle) { if (Build.VERSION.SDK_INT <= 23) { // cause to crash: @@ -5121,10 +5150,10 @@ public static CharSequence replaceMultipleCharSequence(String what, CharSequence } else { spannableStringBuilder = new SpannableStringBuilder(from); } - int index = TextUtils.indexOf(from, what); + int index = TextUtils.indexOf(from, what, 0); while (index >= 0) { spannableStringBuilder.replace(index, index + what.length(), obj); - index = TextUtils.indexOf(spannableStringBuilder, what); + index = TextUtils.indexOf(spannableStringBuilder, what, index + 1); } return spannableStringBuilder; } @@ -5563,4 +5592,71 @@ public static boolean isHonor() { } return isHonor; } + + public static CharSequence withLearnMore(CharSequence text, Runnable onClick) { + SpannableString link = new SpannableString(LocaleController.getString(R.string.LearnMoreArrow)); + link.setSpan(new ClickableSpan() { + @Override + public void onClick(@NonNull View widget) { + if (onClick != null) { + onClick.run(); + } + } + + @Override + public void updateDrawState(@NonNull TextPaint ds) { + ds.setUnderlineText(false); + ds.setColor(ds.linkColor); + } + }, 0, link.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + + SpannableStringBuilder result = new SpannableStringBuilder(text); + result.append(" "); + result.append(link); + + return replaceArrows(result, true); + } + + public static View findChildViewUnder(ViewGroup parent, float x, float y) { + if (parent == null) return null; + if (parent.getVisibility() != View.VISIBLE) return null; + for (int i = 0; i < parent.getChildCount(); ++i) { + View child = parent.getChildAt(i); + if (child == null) continue; + if (child.getVisibility() != View.VISIBLE) continue; + if (child instanceof ViewGroup) { + View foundChild = findChildViewUnder((ViewGroup) child, x - child.getLeft(), y - child.getTop()); + if (foundChild != null) { + return foundChild; + } + } else if ( + x >= child.getX() && x <= child.getX() + child.getWidth() && + y >= child.getY() && x <= child.getY() + child.getHeight() + ) { + return child; + } + } + return null; + } + + public static void vibrateCursor(View view) { + try { + if (view == null || view.getContext() == null) return; + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) return; + if (!((Vibrator) view.getContext().getSystemService(Context.VIBRATOR_SERVICE)).hasAmplitudeControl()) return; + if (NekoConfig.disableVibration.Bool()) return; + view.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); + } catch (Exception ignore) {} + } + + public static void vibrate(View view) { + try { + if (view == null || view.getContext() == null) return; + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) return; + if (!((Vibrator) view.getContext().getSystemService(Context.VIBRATOR_SERVICE)).hasAmplitudeControl()) return; + if (NekoConfig.disableVibration.Bool()) return; + view.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); + } catch (Exception ignore) {} + } + } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/AuthTokensHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/AuthTokensHelper.java index 045670cba4..e1a0f78a08 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/AuthTokensHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/AuthTokensHelper.java @@ -66,10 +66,14 @@ public static ArrayList getSavedLogInTokens() { ArrayList tokens = new ArrayList<>(); for (int i = 0; i < count; i++) { String value = preferences.getString("log_in_token_" + i, ""); - SerializedData serializedData = new SerializedData(Utilities.hexToBytes(value)); - TLRPC.auth_Authorization token = TLRPC.auth_Authorization.TLdeserialize(serializedData, serializedData.readInt32(true), true); - if (token instanceof TLRPC.TL_auth_authorization) { - tokens.add((TLRPC.TL_auth_authorization) token); + try { + SerializedData serializedData = new SerializedData(Utilities.hexToBytes(value)); + TLRPC.auth_Authorization token = TLRPC.auth_Authorization.TLdeserialize(serializedData, serializedData.readInt32(true), true); + if (token instanceof TLRPC.TL_auth_authorization) { + tokens.add((TLRPC.TL_auth_authorization) token); + } + } catch (Exception e) { + FileLog.e(e); } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/BillingController.java b/TMessagesProj/src/main/java/org/telegram/messenger/BillingController.java index 64d57ff67d..468d60f21d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/BillingController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/BillingController.java @@ -5,15 +5,27 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; +import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.util.Consumer; import androidx.core.util.Pair; -import com.google.android.exoplayer2.util.Util; +import com.android.billingclient.api.BillingClient; +import com.android.billingclient.api.BillingClientStateListener; +import com.android.billingclient.api.BillingFlowParams; +import com.android.billingclient.api.BillingResult; +import com.android.billingclient.api.ConsumeParams; +import com.android.billingclient.api.ProductDetails; +import com.android.billingclient.api.ProductDetailsResponseListener; +import com.android.billingclient.api.Purchase; +import com.android.billingclient.api.PurchasesResponseListener; +import com.android.billingclient.api.PurchasesUpdatedListener; +import com.android.billingclient.api.QueryProductDetailsParams; +import com.android.billingclient.api.QueryPurchasesParams; -//import org.telegram.messenger.utils.BillingUtilities; +import org.telegram.messenger.utils.BillingUtilities; import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLRPC; import org.telegram.ui.PremiumPreviewFragment; @@ -27,12 +39,28 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; -public class BillingController { +public class BillingController implements PurchasesUpdatedListener, BillingClientStateListener { + public final static String PREMIUM_PRODUCT_ID = "telegram_premium"; + public final static QueryProductDetailsParams.Product PREMIUM_PRODUCT = QueryProductDetailsParams.Product.newBuilder() + .setProductType(BillingClient.ProductType.SUBS) + .setProductId(PREMIUM_PRODUCT_ID) + .build(); + + @Nullable + public static ProductDetails PREMIUM_PRODUCT_DETAILS; private static BillingController instance; - private String lastPremiumTransaction = ""; - private String lastPremiumToken = ""; + public static boolean billingClientEmpty; + + private final Map> resultListeners = new HashMap<>(); + private final List requestingTokens = Collections.synchronizedList(new ArrayList<>()); + private final Map currencyExpMap = new HashMap<>(); + private final BillingClient billingClient; + private String lastPremiumTransaction; + private String lastPremiumToken; + private boolean isDisconnected; + private Runnable onCanceled; public static BillingController getInstance() { if (instance == null) { @@ -42,11 +70,14 @@ public static BillingController getInstance() { } private BillingController(Context ctx) { - + billingClient = BillingClient.newBuilder(ctx) + .enablePendingPurchases() + .setListener(this) + .build(); } public void setOnCanceled(Runnable onCanceled) { -// this.onCanceled = onCanceled; + this.onCanceled = onCanceled; } public String getLastPremiumTransaction() { @@ -69,6 +100,9 @@ public String formatCurrency(long amount, String currency, int exp, boolean roun if (currency == null || currency.isEmpty()) { return String.valueOf(amount); } + if ("TON".equalsIgnoreCase(currency)) { + return "TON " + (amount / 1_000_000_000.0); + } Currency cur = Currency.getInstance(currency); if (cur != null) { NumberFormat numberFormat = NumberFormat.getCurrencyInstance(); @@ -83,30 +117,283 @@ public String formatCurrency(long amount, String currency, int exp, boolean roun @SuppressWarnings("ConstantConditions") public int getCurrencyExp(String currency) { - return 0; -// BillingUtilities.extractCurrencyExp(currencyExpMap); -// return currencyExpMap.getOrDefault(currency, 0); - } - -// public void startConnection() { -// if (isReady()) { -// return; -// } -// BillingUtilities.extractCurrencyExp(currencyExpMap); -// if (!BuildVars.useInvoiceBilling()) { -// billingClient.startConnection(this); -// } -// } -// -// private void switchToInvoice() { -// if (billingClientEmpty) { -// return; -// } -// billingClientEmpty = true; -// NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.billingProductDetailsUpdated); -// } + BillingUtilities.extractCurrencyExp(currencyExpMap); + return currencyExpMap.getOrDefault(currency, 0); + } + + public void startConnection() { + if (isReady()) { + return; + } + BillingUtilities.extractCurrencyExp(currencyExpMap); + if (!BuildVars.useInvoiceBilling()) { + billingClient.startConnection(this); + } + } + + private void switchToInvoice() { + if (billingClientEmpty) { + return; + } + billingClientEmpty = true; + NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.billingProductDetailsUpdated); + } + + private void switchBackFromInvoice() { + if (!billingClientEmpty) { + return; + } + billingClientEmpty = false; + NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.billingProductDetailsUpdated); + } public boolean isReady() { - return false; + return billingClient.isReady(); + } + + public void queryProductDetails(List products, ProductDetailsResponseListener responseListener) { + if (!isReady()) { + throw new IllegalStateException("Billing: Controller should be ready for this call!"); + } + billingClient.queryProductDetailsAsync(QueryProductDetailsParams.newBuilder().setProductList(products).build(), responseListener); + } + + /** + * {@link BillingClient#queryPurchasesAsync} returns only active subscriptions and not consumed purchases. + */ + public void queryPurchases(String productType, PurchasesResponseListener responseListener) { + billingClient.queryPurchasesAsync(QueryPurchasesParams.newBuilder().setProductType(productType).build(), responseListener); + } + + public boolean startManageSubscription(Context ctx, String productId) { + try { + ctx.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("https://play.google.com/store/account/subscriptions?sku=%s&package=%s", productId, ctx.getPackageName())))); + return true; + } catch (ActivityNotFoundException e) { + return false; + } + } + + public void addResultListener(String productId, Consumer listener) { + resultListeners.put(productId, listener); + } + + public void launchBillingFlow(Activity activity, AccountInstance accountInstance, TLRPC.InputStorePaymentPurpose paymentPurpose, List productDetails) { + launchBillingFlow(activity, accountInstance, paymentPurpose, productDetails, null, false); + } + + public void launchBillingFlow(Activity activity, AccountInstance accountInstance, TLRPC.InputStorePaymentPurpose paymentPurpose, List productDetails, BillingFlowParams.SubscriptionUpdateParams subscriptionUpdateParams, boolean checkedConsume) { + if (!isReady() || activity == null) { + return; + } + + if (paymentPurpose instanceof TLRPC.TL_inputStorePaymentGiftPremium && !checkedConsume) { + queryPurchases(BillingClient.ProductType.INAPP, (billingResult, list) -> { + if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) { + Runnable callback = () -> launchBillingFlow(activity, accountInstance, paymentPurpose, productDetails, subscriptionUpdateParams, true); + + AtomicInteger productsToBeConsumed = new AtomicInteger(0); + List productsConsumed = new ArrayList<>(); + for (Purchase purchase : list) { + if (purchase.isAcknowledged()) { + for (BillingFlowParams.ProductDetailsParams params : productDetails) { + String productId = params.zza().getProductId(); + if (purchase.getProducts().contains(productId)) { + productsToBeConsumed.incrementAndGet(); + billingClient.consumeAsync(ConsumeParams.newBuilder() + .setPurchaseToken(purchase.getPurchaseToken()) + .build(), (billingResult1, s) -> { + if (billingResult1.getResponseCode() == BillingClient.BillingResponseCode.OK) { + productsConsumed.add(productId); + + if (productsToBeConsumed.get() == productsConsumed.size()) { + callback.run(); + } + } + }); + break; + } + } + } else { + onPurchasesUpdated(BillingResult.newBuilder().setResponseCode(BillingClient.BillingResponseCode.OK).build(), Collections.singletonList(purchase)); + return; + } + } + + if (productsToBeConsumed.get() == 0) { + callback.run(); + } + } + }); + return; + } + + Pair payload = BillingUtilities.createDeveloperPayload(paymentPurpose, accountInstance); + String obfuscatedAccountId = payload.first; + String obfuscatedData = payload.second; + + BillingFlowParams.Builder flowParams = BillingFlowParams.newBuilder() + .setObfuscatedAccountId(obfuscatedAccountId) + .setObfuscatedProfileId(obfuscatedData) + .setProductDetailsParamsList(productDetails); + if (subscriptionUpdateParams != null) { + flowParams.setSubscriptionUpdateParams(subscriptionUpdateParams); + } + int responseCode = billingClient.launchBillingFlow(activity, flowParams.build()).getResponseCode(); + if (responseCode != BillingClient.BillingResponseCode.OK) { + FileLog.d("Billing: Launch Error: " + responseCode + ", " + obfuscatedAccountId + ", " + obfuscatedData); + } + } + + @Override + public void onPurchasesUpdated(@NonNull BillingResult billing, @Nullable List list) { + FileLog.d("Billing: Purchases updated: " + billing + ", " + list); + if (billing.getResponseCode() != BillingClient.BillingResponseCode.OK) { + if (billing.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED) { + PremiumPreviewFragment.sentPremiumBuyCanceled(); + } + if (onCanceled != null) { + onCanceled.run(); + onCanceled = null; + } + return; + } + if (list == null || list.isEmpty()) { + return; + } + lastPremiumTransaction = null; + for (Purchase purchase : list) { + if (purchase.getProducts().contains(PREMIUM_PRODUCT_ID)) { + lastPremiumTransaction = purchase.getOrderId(); + lastPremiumToken = purchase.getPurchaseToken(); + } + + if (!requestingTokens.contains(purchase.getPurchaseToken()) && purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) { + Pair payload = BillingUtilities.extractDeveloperPayload(purchase); + if (payload == null) { + continue; + } + if (!purchase.isAcknowledged()) { + requestingTokens.add(purchase.getPurchaseToken()); + + TLRPC.TL_payments_assignPlayMarketTransaction req = new TLRPC.TL_payments_assignPlayMarketTransaction(); + req.receipt = new TLRPC.TL_dataJSON(); + req.receipt.data = purchase.getOriginalJson(); + req.purpose = payload.second; + + AccountInstance acc = payload.first; + acc.getConnectionsManager().sendRequest(req, (response, error) -> { + requestingTokens.remove(purchase.getPurchaseToken()); + + if (response instanceof TLRPC.Updates) { + acc.getMessagesController().processUpdates((TLRPC.Updates) response, false); + + for (String productId : purchase.getProducts()) { + Consumer listener = resultListeners.remove(productId); + if (listener != null) { + listener.accept(billing); + } + } + + consumeGiftPurchase(purchase, req.purpose); + } else if (error != null) { + if (onCanceled != null) { + onCanceled.run(); + onCanceled = null; + } + NotificationCenter.getGlobalInstance().postNotificationNameOnUIThread(NotificationCenter.billingConfirmPurchaseError, req, error); + } + }, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagInvokeAfter); + } else { + consumeGiftPurchase(purchase, payload.second); + } + } + } + } + + /** + * All consumable purchases must be consumed. For us it is a gift. + * Without confirmation the user will not be able to buy the product again. + */ + private void consumeGiftPurchase(Purchase purchase, TLRPC.InputStorePaymentPurpose purpose) { + if (purpose instanceof TLRPC.TL_inputStorePaymentGiftPremium + || purpose instanceof TLRPC.TL_inputStorePaymentPremiumGiftCode + || purpose instanceof TLRPC.TL_inputStorePaymentPremiumGiveaway) { + billingClient.consumeAsync( + ConsumeParams.newBuilder() + .setPurchaseToken(purchase.getPurchaseToken()) + .build(), (r, s) -> { + }); + } + } + + /** + * May occur in extremely rare cases. + * For example when Google Play decides to update. + */ + @SuppressWarnings("Convert2MethodRef") + @Override + public void onBillingServiceDisconnected() { + FileLog.d("Billing: Service disconnected"); + int delay = isDisconnected ? 15000 : 5000; + isDisconnected = true; + AndroidUtilities.runOnUIThread(() -> startConnection(), delay); + } + + private int triesLeft = 0; + + @Override + public void onBillingSetupFinished(@NonNull BillingResult setupBillingResult) { + FileLog.d("Billing: Setup finished with result " + setupBillingResult); + if (setupBillingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) { + isDisconnected = false; + triesLeft = 3; + try { + queryProductDetails(Collections.singletonList(PREMIUM_PRODUCT), this::onQueriedPremiumProductDetails); + } catch (Exception e) { + FileLog.e(e); + } + queryPurchases(BillingClient.ProductType.INAPP, this::onPurchasesUpdated); + queryPurchases(BillingClient.ProductType.SUBS, this::onPurchasesUpdated); + } else { + if (!isDisconnected) { + switchToInvoice(); + } + } + } + + private void onQueriedPremiumProductDetails(BillingResult billingResult, List list) { + FileLog.d("Billing: Query product details finished " + billingResult + ", " + list); + if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) { + for (ProductDetails details : list) { + if (details.getProductId().equals(PREMIUM_PRODUCT_ID)) { + PREMIUM_PRODUCT_DETAILS = details; + } + } + if (PREMIUM_PRODUCT_DETAILS == null) { + switchToInvoice(); + } else { + switchBackFromInvoice(); + NotificationCenter.getGlobalInstance().postNotificationNameOnUIThread(NotificationCenter.billingProductDetailsUpdated); + } + } else { + switchToInvoice(); + triesLeft--; + if (triesLeft > 0) { + long delay; + if (triesLeft == 2) { + delay = 1000; + } else { + delay = 10000; + } + AndroidUtilities.runOnUIThread(() -> { + try { + queryProductDetails(Collections.singletonList(PREMIUM_PRODUCT), this::onQueriedPremiumProductDetails); + } catch (Exception e) { + FileLog.e(e); + } + }, delay); + } + } } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/BirthdayController.java b/TMessagesProj/src/main/java/org/telegram/messenger/BirthdayController.java new file mode 100644 index 0000000000..706063f07b --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/messenger/BirthdayController.java @@ -0,0 +1,297 @@ +package org.telegram.messenger; + +import android.content.SharedPreferences; +import android.os.Build; +import android.util.SparseArray; + +import org.telegram.tgnet.AbstractSerializedData; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.SerializedData; +import org.telegram.tgnet.TLObject; +import org.telegram.tgnet.TLRPC; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +public class BirthdayController { + + private static volatile SparseArray Instance = new SparseArray<>(); + private static final Object lockObject = new Object(); + + public static BirthdayController getInstance(int num) { + BirthdayController localInstance = Instance.get(num); + if (localInstance == null) { + synchronized (lockObject) { + localInstance = Instance.get(num); + if (localInstance == null) { + Instance.put(num, localInstance = new BirthdayController(num)); + } + } + } + return localInstance; + } + + private final int currentAccount; + + private long lastCheckDate; + private BirthdayState state; + private final Set hiddenDays; + + private BirthdayController(int currentAccount) { + this.currentAccount = currentAccount; + + SharedPreferences prefs = MessagesController.getInstance(currentAccount).getMainSettings(); + lastCheckDate = prefs.getLong("bday_check", 0); + String contactsString = prefs.getString("bday_contacts", null); + if (contactsString != null) { + try { + final SerializedData data = new SerializedData(Utilities.hexToBytes(contactsString)); + TL_birthdays birthdays = TL_birthdays.TLdeserialize(data, data.readInt32(true), true); + if (birthdays != null && !birthdays.contacts.isEmpty()) { + final ArrayList uids = new ArrayList<>(); + for (int i = 0; i < birthdays.contacts.size(); ++i) { + uids.add(birthdays.contacts.get(i).contact_id); + } + MessagesStorage.getInstance(currentAccount).getStorageQueue().postRunnable(() -> { + final ArrayList users = MessagesStorage.getInstance(currentAccount).getUsers(uids); + AndroidUtilities.runOnUIThread(() -> { + TLRPC.TL_contacts_contactBirthdays contacts = new TLRPC.TL_contacts_contactBirthdays(); + contacts.contacts = birthdays.contacts; + contacts.users = users; + state = BirthdayState.from(contacts); + }); + }); + } + } catch (Exception e) { + FileLog.e(e); + } + } + hiddenDays = prefs.getStringSet("bday_hidden", new HashSet<>()); + } + + private boolean loading; + + public void check() { + if (loading) return; + + final long now = System.currentTimeMillis(); + boolean shouldCheck = lastCheckDate == 0; + if (!shouldCheck) { + shouldCheck = now - lastCheckDate > (BuildVars.DEBUG_PRIVATE_VERSION ? 1000 * 25 : 1000 * 60 * 60 * 12); + } + if (!shouldCheck) { + Calendar checkDate = Calendar.getInstance(); + checkDate.setTimeInMillis(lastCheckDate); + Calendar nowDate = Calendar.getInstance(); + nowDate.setTimeInMillis(now); + + shouldCheck = ( + checkDate.get(Calendar.DAY_OF_MONTH) != nowDate.get(Calendar.DAY_OF_MONTH) || + checkDate.get(Calendar.MONTH) != nowDate.get(Calendar.MONTH) || + checkDate.get(Calendar.YEAR) != nowDate.get(Calendar.YEAR) + ); + } + + if (!shouldCheck) { + return; + } + + loading = true; + ConnectionsManager.getInstance(currentAccount).sendRequest(new TLRPC.TL_account_getBirthdays(), (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TLRPC.TL_contacts_contactBirthdays) { + lastCheckDate = System.currentTimeMillis(); + TLRPC.TL_contacts_contactBirthdays response = (TLRPC.TL_contacts_contactBirthdays) res; + state = BirthdayState.from(response); + + MessagesController.getInstance(currentAccount).putUsers(response.users, false); + MessagesStorage.getInstance(currentAccount).putUsersAndChats(response.users, null, true, true); + + SharedPreferences.Editor edit = MessagesController.getInstance(currentAccount).getMainSettings().edit(); + edit.putLong("bday_check", lastCheckDate); + TL_birthdays birthdays = new TL_birthdays(); + birthdays.contacts = response.contacts; + SerializedData data = new SerializedData(birthdays.getObjectSize()); + birthdays.serializeToStream(data); + edit.putString("bday_contacts", Utilities.bytesToHex(data.toByteArray())); + edit.apply(); + + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.premiumPromoUpdated); + + loading = false; + } + })); + } + + public boolean contains() { + final BirthdayState state = getState(); + return state != null && !state.isTodayEmpty(); + } + + public BirthdayState getState() { + if (state == null) + return null; + if (hiddenDays.contains(state.todayKey)) + return null; + return state; + } + + public void hide() { + if (state == null) return; + if (hiddenDays.contains(state.todayKey)) + return; + hiddenDays.add(state.todayKey); + + SharedPreferences.Editor edit = MessagesController.getInstance(currentAccount).getMainSettings().edit(); + edit.putStringSet("bday_hidden", hiddenDays); + edit.apply(); + + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.premiumPromoUpdated); + } + + public static class BirthdayState { + + public String yesterdayKey; + public String todayKey; + public String tomorrowKey; + + public final ArrayList yesterday = new ArrayList<>(); + public final ArrayList today = new ArrayList<>(); + public final ArrayList tomorrow = new ArrayList<>(); + + private BirthdayState(String yesterdayKey, String todayKey, String tomorrowKey) { + this.yesterdayKey = yesterdayKey; + this.todayKey = todayKey; + this.tomorrowKey = tomorrowKey; + } + + public static BirthdayState from(TLRPC.TL_contacts_contactBirthdays tl) { + Calendar calendar = Calendar.getInstance(); + int todayDay = calendar.get(Calendar.DAY_OF_MONTH); + int todayMonth = 1 + calendar.get(Calendar.MONTH); + int todayYear = calendar.get(Calendar.YEAR); + + calendar.add(Calendar.DATE, -1); + int yesterdayDay = calendar.get(Calendar.DAY_OF_MONTH); + int yesterdayMonth = 1 + calendar.get(Calendar.MONTH); + int yesterdayYear = calendar.get(Calendar.YEAR); + + calendar = Calendar.getInstance(); + calendar.add(Calendar.DATE, +1); + int tomorrowDay = calendar.get(Calendar.DAY_OF_MONTH); + int tomorrowMonth = 1 + calendar.get(Calendar.MONTH); + int tomorrowYear = calendar.get(Calendar.YEAR); + + BirthdayState state = new BirthdayState( + yesterdayDay + "_" + yesterdayMonth + "_" + yesterdayYear, + todayDay + "_" + todayMonth + "_" + todayYear, + tomorrowDay + "_" + tomorrowMonth + "_" + tomorrowYear + ); + + for (TLRPC.TL_contactBirthday contact : tl.contacts) { + ArrayList array = null; + if (contact.birthday.day == todayDay && contact.birthday.month == todayMonth) { + array = state.today; + } else if (contact.birthday.day == yesterdayDay && contact.birthday.month == yesterdayMonth) { + array = state.yesterday; + } else if (contact.birthday.day == tomorrowDay && contact.birthday.month == tomorrowMonth) { + array = state.tomorrow; + } + if (array != null) { + TLRPC.User user = null; + for (int i = 0; i < tl.users.size(); ++i) { + if (tl.users.get(i).id == contact.contact_id) { + user = tl.users.get(i); + break; + } + } + if (user != null && !UserObject.isUserSelf(user)) { + array.add(user); + } + } + } + + return state; + } + + public boolean isTodayEmpty() { + return today.isEmpty(); + } + + public boolean contains(long did) { + for (TLRPC.User user : yesterday) { + if (user.id == did) + return true; + } + for (TLRPC.User user : today) { + if (user.id == did) + return true; + } + for (TLRPC.User user : tomorrow) { + if (user.id == did) + return true; + } + return false; + } + } + + private static class TL_birthdays extends TLObject { + public static final int constructor = 0x114ff30d; + + public ArrayList contacts = new ArrayList<>(); + + public static TL_birthdays TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (constructor != TL_birthdays.constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_birthdays", constructor)); + } + return null; + } + TL_birthdays result = new TL_birthdays(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int i = 0; i < count; ++i) { + contacts.add(TLRPC.TL_contactBirthday.TLdeserialize(stream, stream.readInt32(exception), exception)); + } + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(0x1cb5c415); + int count = contacts.size(); + stream.writeInt32(count); + for (int i = 0; i < count; ++i) { + contacts.get(i).serializeToStream(stream); + } + } + } + + public static boolean isToday(TLRPC.UserFull userFull) { + if (userFull == null) return false; + return isToday(userFull.birthday); + } + + public static boolean isToday(TLRPC.TL_birthday birthday) { + if (birthday == null) return false; + Calendar calendar = Calendar.getInstance(); + int todayDay = calendar.get(Calendar.DAY_OF_MONTH); + int todayMonth = 1 + calendar.get(Calendar.MONTH); + return birthday.day == todayDay && birthday.month == todayMonth; + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ContactsController.java b/TMessagesProj/src/main/java/org/telegram/messenger/ContactsController.java index 2e9caa53f9..86d2624eb6 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ContactsController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ContactsController.java @@ -88,6 +88,7 @@ public class ContactsController extends BaseController { private ArrayList phonePrivacyRules; private ArrayList addedByPhonePrivacyRules; private ArrayList voiceMessagesRules; + private ArrayList birthdayPrivacyRules; private TLRPC.TL_globalPrivacySettings globalPrivacySettings; public final static int PRIVACY_RULES_TYPE_LASTSEEN = 0; @@ -101,8 +102,9 @@ public class ContactsController extends BaseController { public final static int PRIVACY_RULES_TYPE_VOICE_MESSAGES = 8; public final static int PRIVACY_RULES_TYPE_BIO = 9; public final static int PRIVACY_RULES_TYPE_MESSAGES = 10; + public final static int PRIVACY_RULES_TYPE_BIRTHDAY = 11; - public final static int PRIVACY_RULES_TYPE_COUNT = 10; + public final static int PRIVACY_RULES_TYPE_COUNT = 12; private class MyContentObserver extends ContentObserver { @@ -338,6 +340,7 @@ public void cleanup() { p2pPrivacyRules = null; profilePhotoPrivacyRules = null; bioPrivacyRules = null; + birthdayPrivacyRules = null; forwardsPrivacyRules = null; phonePrivacyRules = null; @@ -2671,10 +2674,14 @@ public void loadPrivacySettings() { case PRIVACY_RULES_TYPE_VOICE_MESSAGES: req.key = new TLRPC.TL_inputPrivacyKeyVoiceMessages(); break; + case PRIVACY_RULES_TYPE_BIRTHDAY: + req.key = new TLRPC.TL_inputPrivacyKeyBirthday(); + break; case PRIVACY_RULES_TYPE_ADDED_BY_PHONE: - default: req.key = new TLRPC.TL_inputPrivacyKeyAddedByPhone(); break; + default: + continue; } getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { @@ -2702,6 +2709,9 @@ public void loadPrivacySettings() { case PRIVACY_RULES_TYPE_BIO: bioPrivacyRules = rules.rules; break; + case PRIVACY_RULES_TYPE_BIRTHDAY: + birthdayPrivacyRules = rules.rules; + break; case PRIVACY_RULES_TYPE_FORWARDS: forwardsPrivacyRules = rules.rules; break; @@ -2764,6 +2774,8 @@ public ArrayList getPrivacyRules(int type) { return profilePhotoPrivacyRules; case PRIVACY_RULES_TYPE_BIO: return bioPrivacyRules; + case PRIVACY_RULES_TYPE_BIRTHDAY: + return birthdayPrivacyRules; case PRIVACY_RULES_TYPE_FORWARDS: return forwardsPrivacyRules; case PRIVACY_RULES_TYPE_PHONE: @@ -2796,6 +2808,9 @@ public void setPrivacyRules(ArrayList rules, int type) { case PRIVACY_RULES_TYPE_BIO: bioPrivacyRules = rules; break; + case PRIVACY_RULES_TYPE_BIRTHDAY: + birthdayPrivacyRules = rules; + break; case PRIVACY_RULES_TYPE_FORWARDS: forwardsPrivacyRules = rules; break; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/DatabaseMigrationHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/DatabaseMigrationHelper.java index 586760bca3..896da5e1c7 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/DatabaseMigrationHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/DatabaseMigrationHelper.java @@ -1475,6 +1475,28 @@ public static int migrate(MessagesStorage messagesStorage, int version) throws E version = 149; } + if (version == 149) { + database.executeFast("ALTER TABLE stickersets2 ADD COLUMN short_name TEXT;").stepThis().dispose(); + database.executeFast("CREATE INDEX IF NOT EXISTS stickersets2_id_short_name ON stickersets2(id, short_name);").stepThis().dispose(); + + database.executeFast("PRAGMA user_version = 150").stepThis().dispose(); + version = 150; + } + + if (version == 150) { + database.executeFast("CREATE TABLE business_links(data BLOB, order_value INTEGER);").stepThis().dispose(); + + database.executeFast("PRAGMA user_version = 151").stepThis().dispose(); + version = 151; + } + + if (version == 151) { + database.executeFast("ALTER TABLE profile_stories ADD COLUMN seen INTEGER default 0;").stepThis().dispose(); + + database.executeFast("PRAGMA user_version = 152").stepThis().dispose(); + version = 152; + } + return version; } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/DialogObject.java b/TMessagesProj/src/main/java/org/telegram/messenger/DialogObject.java index 8b269fdcff..c9ad0ca351 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/DialogObject.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/DialogObject.java @@ -8,11 +8,15 @@ package org.telegram.messenger; +import android.text.TextUtils; + import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.Components.AvatarDrawable; import org.telegram.ui.Components.BackupImageView; +import java.util.ArrayList; + public class DialogObject { public static boolean isChannel(TLRPC.Dialog dialog) { @@ -185,4 +189,24 @@ public static boolean emojiStatusesEqual(TLRPC.EmojiStatus a, TLRPC.EmojiStatus return getEmojiStatusDocumentId(a) == getEmojiStatusDocumentId(b) && getEmojiStatusUntil(a) == getEmojiStatusUntil(b); } + public static TLRPC.TL_username findUsername(String username, TLRPC.User user) { + if (user == null) return null; + return findUsername(username, user.usernames); + } + + public static TLRPC.TL_username findUsername(String username, TLRPC.Chat chat) { + if (chat == null) return null; + return findUsername(username, chat.usernames); + } + + public static TLRPC.TL_username findUsername(String username, ArrayList usernames) { + if (usernames == null) return null; + for (TLRPC.TL_username u : usernames) { + if (u != null && TextUtils.equals(u.username, username)) { + return u; + } + } + return null; + } + } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java b/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java index 8468965c8d..068ba989d6 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java @@ -28,6 +28,9 @@ import android.view.ViewGroup; import android.widget.TextView; +import org.checkerframework.checker.units.qual.A; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.Components.AnimatedEmojiDrawable; import org.telegram.ui.Components.AnimatedEmojiSpan; import java.io.File; @@ -259,12 +262,21 @@ public static EmojiDrawable getEmojiDrawable(CharSequence code) { } return null; } - EmojiDrawable ed = new SimpleEmojiDrawable(info); + EmojiDrawable ed = new SimpleEmojiDrawable(info, endsWithRightArrow(code)); ed.setBounds(0, 0, drawImgSize, drawImgSize); return ed; } + public static boolean endsWithRightArrow(CharSequence code) { + return code != null && code.length() > 2 && + code.charAt(code.length() - 2) == 'โ€' && + code.charAt(code.length() - 1) == 'โžก'; + } + private static DrawableInfo getDrawableInfo(CharSequence code) { + if (endsWithRightArrow(code)) { + code = code.subSequence(0, code.length() - 2); + } DrawableInfo info = rects.get(code); if (info == null) { CharSequence newCode = EmojiData.emojiAliasMap.get(code); @@ -327,9 +339,11 @@ public static class SimpleEmojiDrawable extends EmojiDrawable { private DrawableInfo info; private static Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG); private static Rect rect = new Rect(); + private boolean invert; - public SimpleEmojiDrawable(DrawableInfo i) { + public SimpleEmojiDrawable(DrawableInfo i, boolean invert) { info = i; + this.invert = invert; } public DrawableInfo getDrawableInfo() { @@ -364,7 +378,14 @@ public void draw(Canvas canvas) { } if (!canvas.quickReject(b.left, b.top, b.right, b.bottom, Canvas.EdgeType.AA)) { + if (invert) { + canvas.save(); + canvas.scale(-1, 1, b.centerX(), b.centerY()); + } canvas.drawBitmap(emojiBmp[info.page][info.page2], null, b, paint); + if (invert) { + canvas.restore(); + } } } @@ -659,6 +680,79 @@ public static CharSequence replaceEmoji(CharSequence cs, Paint.FontMetricsInt fo return s; } + public static CharSequence replaceWithRestrictedEmoji(CharSequence cs, TextView textView, Runnable update) { + return replaceWithRestrictedEmoji(cs, textView.getPaint().getFontMetricsInt(), update); + } + + public static CharSequence replaceWithRestrictedEmoji(CharSequence cs, Paint.FontMetricsInt fontMetrics, Runnable update) { + if (NekoConfig.useSystemEmoji.Bool() || cs == null || cs.length() == 0) { + return cs; + } + + final int currentAccount = UserConfig.selectedAccount; + TLRPC.InputStickerSet inputStickerSet = new TLRPC.TL_inputStickerSetShortName(); + inputStickerSet.short_name = "RestrictedEmoji"; + TLRPC.TL_messages_stickerSet set = MediaDataController.getInstance(currentAccount).getStickerSet(inputStickerSet, 0, false, true, update == null ? null : s -> update.run()); + + Spannable s; + if (cs instanceof Spannable) { + s = (Spannable) cs; + } else { + s = Spannable.Factory.getInstance().newSpannable(cs.toString()); + } + ArrayList emojis = parseEmojis(s, null); + if (emojis.isEmpty()) { + return cs; + } + + AnimatedEmojiSpan[] animatedEmojiSpans = s.getSpans(0, s.length(), AnimatedEmojiSpan.class); + EmojiSpan span; + Drawable drawable; + int limitCount = SharedConfig.getDevicePerformanceClass() >= SharedConfig.PERFORMANCE_CLASS_HIGH ? 100 : 50; + for (int i = 0; i < emojis.size(); ++i) { + try { + EmojiSpanRange emojiRange = emojis.get(i); + if (animatedEmojiSpans != null) { + boolean hasAnimated = false; + for (int j = 0; j < animatedEmojiSpans.length; ++j) { + AnimatedEmojiSpan animatedSpan = animatedEmojiSpans[j]; + if (animatedSpan != null && s.getSpanStart(animatedSpan) == emojiRange.start && s.getSpanEnd(animatedSpan) == emojiRange.end) { + hasAnimated = true; + break; + } + } + if (hasAnimated) { + continue; + } + } + TLRPC.Document document = null; + if (set != null) { + for (TLRPC.Document d : set.documents) { + if (MessageObject.findAnimatedEmojiEmoticon(d, null).contains(emojiRange.code)) { + document = d; + break; + } + } + } + AnimatedEmojiSpan animatedSpan; + if (document != null) { + animatedSpan = new AnimatedEmojiSpan(document, fontMetrics); + } else { + animatedSpan = new AnimatedEmojiSpan(0, fontMetrics); + } + animatedSpan.emoji = (emojiRange.code).toString(); + animatedSpan.cacheType = AnimatedEmojiDrawable.CACHE_TYPE_STANDARD_EMOJI; + s.setSpan(animatedSpan, emojiRange.start, emojiRange.end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } catch (Exception e) { + FileLog.e(e); + } + if ((Build.VERSION.SDK_INT < 23 || Build.VERSION.SDK_INT >= 29)/* && !BuildVars.DEBUG_PRIVATE_VERSION*/ && (i + 1) >= limitCount) { + break; + } + } + return s; + } + public static class EmojiSpan extends ImageSpan { public Paint.FontMetricsInt fontMetrics; public float scale = 1f; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/EmojiData.java b/TMessagesProj/src/main/java/org/telegram/messenger/EmojiData.java index ec36ede986..ea93d588da 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/EmojiData.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/EmojiData.java @@ -63,7 +63,7 @@ public class EmojiData { }; public static final String[] emojiColored = { - "๐Ÿซถ", "๐Ÿคฒ", "๐Ÿ‘", "๐Ÿ™Œ", "๐Ÿ‘", "๐Ÿ‘", "๐Ÿ‘Ž", "๐Ÿ‘Š", "โœŠ", "๐Ÿค›", "๐Ÿคœ", "๐Ÿซท", "๐Ÿซธ", "๐Ÿคž", "โœŒ", "๐Ÿซฐ", "๐ŸคŸ", "๐Ÿค˜", "๐Ÿ‘Œ", "๐ŸคŒ", "๐Ÿค", "๐Ÿซณ", "๐Ÿซด", "๐Ÿ‘ˆ", "๐Ÿ‘‰", "๐Ÿ‘†", "๐Ÿ‘‡", "โ˜", "โœ‹", "๐Ÿคš", "๐Ÿ–", "๐Ÿ––", "๐Ÿ‘‹", "๐Ÿค™", "๐Ÿซฒ", "๐Ÿซฑ", "๐Ÿ’ช", "๐Ÿ–•", "โœ", "๐Ÿ™", "๐Ÿซต", "๐Ÿฆถ", "๐Ÿฆต", "๐Ÿ‘‚", "๐Ÿฆป", "๐Ÿ‘ƒ", "๐Ÿ‘ถ", "๐Ÿ‘ง", "๐Ÿง’", "๐Ÿ‘ฆ", "๐Ÿ‘ฉ", "๐Ÿง‘", "๐Ÿ‘จ", "๐Ÿ‘ฉโ€๐Ÿฆฑ", "๐Ÿง‘โ€๐Ÿฆฑ", "๐Ÿ‘จโ€๐Ÿฆฑ", "๐Ÿ‘ฉโ€๐Ÿฆฐ", "๐Ÿง‘โ€๐Ÿฆฐ", "๐Ÿ‘จโ€๐Ÿฆฐ", "๐Ÿ‘ฑโ€โ™€", "๐Ÿ‘ฑ", "๐Ÿ‘ฑโ€โ™‚", "๐Ÿ‘ฉโ€๐Ÿฆณ", "๐Ÿง‘โ€๐Ÿฆณ", "๐Ÿ‘จโ€๐Ÿฆณ", "๐Ÿ‘ฉโ€๐Ÿฆฒ", "๐Ÿง‘โ€๐Ÿฆฒ", "๐Ÿ‘จโ€๐Ÿฆฒ", "๐Ÿง”โ€โ™€", "๐Ÿง”", "๐Ÿง”โ€โ™‚", "๐Ÿ‘ต", "๐Ÿง“", "๐Ÿ‘ด", "๐Ÿ‘ฒ", "๐Ÿ‘ณโ€โ™€", "๐Ÿ‘ณ", "๐Ÿ‘ณโ€โ™‚", "๐Ÿง•", "๐Ÿ‘ฎโ€โ™€", "๐Ÿ‘ฎ", "๐Ÿ‘ฎโ€โ™‚", "๐Ÿ‘ทโ€โ™€", "๐Ÿ‘ท", "๐Ÿ‘ทโ€โ™‚", "๐Ÿ’‚โ€โ™€", "๐Ÿ’‚", "๐Ÿ’‚โ€โ™‚", "๐Ÿ•ตโ€โ™€", "๐Ÿ•ต", "๐Ÿ•ตโ€โ™‚", "๐Ÿ‘ฉโ€โš•", "๐Ÿง‘โ€โš•", "๐Ÿ‘จโ€โš•", "๐Ÿ‘ฉโ€๐ŸŒพ", "๐Ÿง‘โ€๐ŸŒพ", "๐Ÿ‘จโ€๐ŸŒพ", "๐Ÿ‘ฉโ€๐Ÿณ", "๐Ÿง‘โ€๐Ÿณ", "๐Ÿ‘จโ€๐Ÿณ", "๐Ÿ‘ฉโ€๐ŸŽ“", "๐Ÿง‘โ€๐ŸŽ“", "๐Ÿ‘จโ€๐ŸŽ“", "๐Ÿ‘ฉโ€๐ŸŽค", "๐Ÿง‘โ€๐ŸŽค", "๐Ÿ‘จโ€๐ŸŽค", "๐Ÿ‘ฉโ€๐Ÿซ", "๐Ÿง‘โ€๐Ÿซ", "๐Ÿ‘จโ€๐Ÿซ", "๐Ÿ‘ฉโ€๐Ÿญ", "๐Ÿง‘โ€๐Ÿญ", "๐Ÿ‘จโ€๐Ÿญ", "๐Ÿ‘ฉโ€๐Ÿ’ป", "๐Ÿง‘โ€๐Ÿ’ป", "๐Ÿ‘จโ€๐Ÿ’ป", "๐Ÿ‘ฉโ€๐Ÿ’ผ", "๐Ÿง‘โ€๐Ÿ’ผ", "๐Ÿ‘จโ€๐Ÿ’ผ", "๐Ÿ‘ฉโ€๐Ÿ”ง", "๐Ÿง‘โ€๐Ÿ”ง", "๐Ÿ‘จโ€๐Ÿ”ง", "๐Ÿ‘ฉโ€๐Ÿ”ฌ", "๐Ÿง‘โ€๐Ÿ”ฌ", "๐Ÿ‘จโ€๐Ÿ”ฌ", "๐Ÿ‘ฉโ€๐ŸŽจ", "๐Ÿง‘โ€๐ŸŽจ", "๐Ÿ‘จโ€๐ŸŽจ", "๐Ÿ‘ฉโ€๐Ÿš’", "๐Ÿง‘โ€๐Ÿš’", "๐Ÿ‘จโ€๐Ÿš’", "๐Ÿ‘ฉโ€โœˆ", "๐Ÿง‘โ€โœˆ", "๐Ÿ‘จโ€โœˆ", "๐Ÿ‘ฉโ€๐Ÿš€", "๐Ÿง‘โ€๐Ÿš€", "๐Ÿ‘จโ€๐Ÿš€", "๐Ÿ‘ฉโ€โš–", "๐Ÿง‘โ€โš–", "๐Ÿ‘จโ€โš–", "๐Ÿ‘ฐโ€โ™€", "๐Ÿ‘ฐ", "๐Ÿ‘ฐโ€โ™‚", "๐Ÿคตโ€โ™€", "๐Ÿคต", "๐Ÿคตโ€โ™‚", "๐Ÿ‘ธ", "๐Ÿคด", "๐Ÿฅท", "๐Ÿฆธโ€โ™€", "๐Ÿฆธ", "๐Ÿฆธโ€โ™‚", "๐Ÿฆนโ€โ™€", "๐Ÿฆน", "๐Ÿฆนโ€โ™‚", "๐Ÿคถ", "๐Ÿง‘โ€๐ŸŽ„", "๐ŸŽ…", "๐Ÿง™โ€โ™€", "๐Ÿง™", "๐Ÿง™โ€โ™‚", "๐Ÿงโ€โ™€", "๐Ÿง", "๐Ÿงโ€โ™‚", "๐Ÿง›โ€โ™€", "๐Ÿง›", "๐Ÿง›โ€โ™‚", "๐Ÿงœโ€โ™€", "๐Ÿงœ", "๐Ÿงœโ€โ™‚", "๐Ÿงšโ€โ™€", "๐Ÿงš", "๐Ÿงšโ€โ™‚", "๐Ÿ‘ผ", "๐Ÿคฐ", "๐Ÿซ„", "๐Ÿซƒ", "๐Ÿคฑ", "๐Ÿ‘ฉโ€๐Ÿผ", "๐Ÿง‘โ€๐Ÿผ", "๐Ÿ‘จโ€๐Ÿผ", "๐Ÿ™‡โ€โ™€", "๐Ÿ™‡", "๐Ÿ™‡โ€โ™‚", "๐Ÿ’โ€โ™€", "๐Ÿ’", "๐Ÿ’โ€โ™‚", "๐Ÿ™…โ€โ™€", "๐Ÿ™…", "๐Ÿ™…โ€โ™‚", "๐Ÿ™†โ€โ™€", "๐Ÿ™†", "๐Ÿ™†โ€โ™‚", "๐Ÿ™‹โ€โ™€", "๐Ÿ™‹", "๐Ÿ™‹โ€โ™‚", "๐Ÿงโ€โ™€", "๐Ÿง", "๐Ÿงโ€โ™‚", "๐Ÿคฆโ€โ™€", "๐Ÿคฆ", "๐Ÿคฆโ€โ™‚", "๐Ÿคทโ€โ™€", "๐Ÿคท", "๐Ÿคทโ€โ™‚", "๐Ÿ™Žโ€โ™€", "๐Ÿ™Ž", "๐Ÿ™Žโ€โ™‚", "๐Ÿ™โ€โ™€", "๐Ÿ™", "๐Ÿ™โ€โ™‚", "๐Ÿ’‡โ€โ™€", "๐Ÿ’‡", "๐Ÿ’‡โ€โ™‚", "๐Ÿ’†โ€โ™€", "๐Ÿ’†", "๐Ÿ’†โ€โ™‚", "๐Ÿง–โ€โ™€", "๐Ÿง–", "๐Ÿง–โ€โ™‚", "๐Ÿ’…", "๐Ÿคณ", "๐Ÿ’ƒ", "๐Ÿ•บ", "๐Ÿ•ด", "๐Ÿ‘ฉโ€๐Ÿฆฝ", "๐Ÿง‘โ€๐Ÿฆฝ", "๐Ÿ‘จโ€๐Ÿฆฝ", "๐Ÿ‘ฉโ€๐Ÿฆผ", "๐Ÿง‘โ€๐Ÿฆผ", "๐Ÿ‘จโ€๐Ÿฆผ", "๐Ÿšถโ€โ™€", "๐Ÿšถ", "๐Ÿšถโ€โ™‚", "๐Ÿ‘ฉโ€๐Ÿฆฏ", "๐Ÿง‘โ€๐Ÿฆฏ", "๐Ÿ‘จโ€๐Ÿฆฏ", "๐ŸงŽโ€โ™€", "๐ŸงŽ", "๐ŸงŽโ€โ™‚", "๐Ÿƒโ€โ™€", "๐Ÿƒ", "๐Ÿƒโ€โ™‚", "๐Ÿงโ€โ™€", "๐Ÿง", "๐Ÿงโ€โ™‚", "๐Ÿ‹โ€โ™€", "๐Ÿ‹", "๐Ÿ‹โ€โ™‚", "๐Ÿคธโ€โ™€", "๐Ÿคธ", "๐Ÿคธโ€โ™‚", "โ›นโ€โ™€", "โ›น", "โ›นโ€โ™‚", "๐Ÿคพโ€โ™€", "๐Ÿคพ", "๐Ÿคพโ€โ™‚", "๐ŸŒโ€โ™€", "๐ŸŒ", "๐ŸŒโ€โ™‚", "๐Ÿ‡", "๐Ÿง˜โ€โ™€", "๐Ÿง˜", "๐Ÿง˜โ€โ™‚", "๐Ÿ„โ€โ™€", "๐Ÿ„", "๐Ÿ„โ€โ™‚", "๐ŸŠโ€โ™€", "๐ŸŠ", "๐ŸŠโ€โ™‚", "๐Ÿคฝโ€โ™€", "๐Ÿคฝ", "๐Ÿคฝโ€โ™‚", "๐Ÿšฃโ€โ™€", "๐Ÿšฃ", "๐Ÿšฃโ€โ™‚", "๐Ÿง—โ€โ™€", "๐Ÿง—", "๐Ÿง—โ€โ™‚", "๐Ÿšตโ€โ™€", "๐Ÿšต", "๐Ÿšตโ€โ™‚", "๐Ÿšดโ€โ™€", "๐Ÿšด", "๐Ÿšดโ€โ™‚", "๐Ÿคนโ€โ™€", "๐Ÿคน", "๐Ÿคนโ€โ™‚", "๐Ÿ›€" + "๐Ÿซถ", "๐Ÿคฒ", "๐Ÿ‘", "๐Ÿ™Œ", "๐Ÿ‘", "๐Ÿ‘", "๐Ÿ‘Ž", "๐Ÿ‘Š", "โœŠ", "๐Ÿค›", "๐Ÿคœ", "๐Ÿซท", "๐Ÿซธ", "๐Ÿคž", "โœŒ", "๐Ÿซฐ", "๐ŸคŸ", "๐Ÿค˜", "๐Ÿ‘Œ", "๐ŸคŒ", "๐Ÿค", "๐Ÿซณ", "๐Ÿซด", "๐Ÿ‘ˆ", "๐Ÿ‘‰", "๐Ÿ‘†", "๐Ÿ‘‡", "โ˜", "โœ‹", "๐Ÿคš", "๐Ÿ–", "๐Ÿ––", "๐Ÿ‘‹", "๐Ÿค™", "๐Ÿซฒ", "๐Ÿซฑ", "๐Ÿ’ช", "๐Ÿ–•", "โœ", "๐Ÿ™", "๐Ÿซต", "๐Ÿฆถ", "๐Ÿฆต", "๐Ÿ‘‚", "๐Ÿฆป", "๐Ÿ‘ƒ", "๐Ÿ‘ถ", "๐Ÿ‘ง", "๐Ÿง’", "๐Ÿ‘ฆ", "๐Ÿ‘ฉ", "๐Ÿง‘", "๐Ÿ‘จ", "๐Ÿ‘ฉโ€๐Ÿฆฑ", "๐Ÿง‘โ€๐Ÿฆฑ", "๐Ÿ‘จโ€๐Ÿฆฑ", "๐Ÿ‘ฉโ€๐Ÿฆฐ", "๐Ÿง‘โ€๐Ÿฆฐ", "๐Ÿ‘จโ€๐Ÿฆฐ", "๐Ÿ‘ฑโ€โ™€", "๐Ÿ‘ฑ", "๐Ÿ‘ฑโ€โ™‚", "๐Ÿ‘ฉโ€๐Ÿฆณ", "๐Ÿง‘โ€๐Ÿฆณ", "๐Ÿ‘จโ€๐Ÿฆณ", "๐Ÿ‘ฉโ€๐Ÿฆฒ", "๐Ÿง‘โ€๐Ÿฆฒ", "๐Ÿ‘จโ€๐Ÿฆฒ", "๐Ÿง”โ€โ™€", "๐Ÿง”", "๐Ÿง”โ€โ™‚", "๐Ÿ‘ต", "๐Ÿง“", "๐Ÿ‘ด", "๐Ÿ‘ฒ", "๐Ÿ‘ณโ€โ™€", "๐Ÿ‘ณ", "๐Ÿ‘ณโ€โ™‚", "๐Ÿง•", "๐Ÿ‘ฎโ€โ™€", "๐Ÿ‘ฎ", "๐Ÿ‘ฎโ€โ™‚", "๐Ÿ‘ทโ€โ™€", "๐Ÿ‘ท", "๐Ÿ‘ทโ€โ™‚", "๐Ÿ’‚โ€โ™€", "๐Ÿ’‚", "๐Ÿ’‚โ€โ™‚", "๐Ÿ•ตโ€โ™€", "๐Ÿ•ต", "๐Ÿ•ตโ€โ™‚", "๐Ÿ‘ฉโ€โš•", "๐Ÿง‘โ€โš•", "๐Ÿ‘จโ€โš•", "๐Ÿ‘ฉโ€๐ŸŒพ", "๐Ÿง‘โ€๐ŸŒพ", "๐Ÿ‘จโ€๐ŸŒพ", "๐Ÿ‘ฉโ€๐Ÿณ", "๐Ÿง‘โ€๐Ÿณ", "๐Ÿ‘จโ€๐Ÿณ", "๐Ÿ‘ฉโ€๐ŸŽ“", "๐Ÿง‘โ€๐ŸŽ“", "๐Ÿ‘จโ€๐ŸŽ“", "๐Ÿ‘ฉโ€๐ŸŽค", "๐Ÿง‘โ€๐ŸŽค", "๐Ÿ‘จโ€๐ŸŽค", "๐Ÿ‘ฉโ€๐Ÿซ", "๐Ÿง‘โ€๐Ÿซ", "๐Ÿ‘จโ€๐Ÿซ", "๐Ÿ‘ฉโ€๐Ÿญ", "๐Ÿง‘โ€๐Ÿญ", "๐Ÿ‘จโ€๐Ÿญ", "๐Ÿ‘ฉโ€๐Ÿ’ป", "๐Ÿง‘โ€๐Ÿ’ป", "๐Ÿ‘จโ€๐Ÿ’ป", "๐Ÿ‘ฉโ€๐Ÿ’ผ", "๐Ÿง‘โ€๐Ÿ’ผ", "๐Ÿ‘จโ€๐Ÿ’ผ", "๐Ÿ‘ฉโ€๐Ÿ”ง", "๐Ÿง‘โ€๐Ÿ”ง", "๐Ÿ‘จโ€๐Ÿ”ง", "๐Ÿ‘ฉโ€๐Ÿ”ฌ", "๐Ÿง‘โ€๐Ÿ”ฌ", "๐Ÿ‘จโ€๐Ÿ”ฌ", "๐Ÿ‘ฉโ€๐ŸŽจ", "๐Ÿง‘โ€๐ŸŽจ", "๐Ÿ‘จโ€๐ŸŽจ", "๐Ÿ‘ฉโ€๐Ÿš’", "๐Ÿง‘โ€๐Ÿš’", "๐Ÿ‘จโ€๐Ÿš’", "๐Ÿ‘ฉโ€โœˆ", "๐Ÿง‘โ€โœˆ", "๐Ÿ‘จโ€โœˆ", "๐Ÿ‘ฉโ€๐Ÿš€", "๐Ÿง‘โ€๐Ÿš€", "๐Ÿ‘จโ€๐Ÿš€", "๐Ÿ‘ฉโ€โš–", "๐Ÿง‘โ€โš–", "๐Ÿ‘จโ€โš–", "๐Ÿ‘ฐโ€โ™€", "๐Ÿ‘ฐ", "๐Ÿ‘ฐโ€โ™‚", "๐Ÿคตโ€โ™€", "๐Ÿคต", "๐Ÿคตโ€โ™‚", "๐Ÿ‘ธ", "๐Ÿคด", "๐Ÿฅท", "๐Ÿฆธโ€โ™€", "๐Ÿฆธ", "๐Ÿฆธโ€โ™‚", "๐Ÿฆนโ€โ™€", "๐Ÿฆน", "๐Ÿฆนโ€โ™‚", "๐Ÿคถ", "๐Ÿง‘โ€๐ŸŽ„", "๐ŸŽ…", "๐Ÿง™โ€โ™€", "๐Ÿง™", "๐Ÿง™โ€โ™‚", "๐Ÿงโ€โ™€", "๐Ÿง", "๐Ÿงโ€โ™‚", "๐Ÿง›โ€โ™€", "๐Ÿง›", "๐Ÿง›โ€โ™‚", "๐Ÿงœโ€โ™€", "๐Ÿงœ", "๐Ÿงœโ€โ™‚", "๐Ÿงšโ€โ™€", "๐Ÿงš", "๐Ÿงšโ€โ™‚", "๐Ÿ‘ผ", "๐Ÿคฐ", "๐Ÿซ„", "๐Ÿซƒ", "๐Ÿคฑ", "๐Ÿ‘ฉโ€๐Ÿผ", "๐Ÿง‘โ€๐Ÿผ", "๐Ÿ‘จโ€๐Ÿผ", "๐Ÿ™‡โ€โ™€", "๐Ÿ™‡", "๐Ÿ™‡โ€โ™‚", "๐Ÿ’โ€โ™€", "๐Ÿ’", "๐Ÿ’โ€โ™‚", "๐Ÿ™…โ€โ™€", "๐Ÿ™…", "๐Ÿ™…โ€โ™‚", "๐Ÿ™†โ€โ™€", "๐Ÿ™†", "๐Ÿ™†โ€โ™‚", "๐Ÿ™‹โ€โ™€", "๐Ÿ™‹", "๐Ÿ™‹โ€โ™‚", "๐Ÿงโ€โ™€", "๐Ÿง", "๐Ÿงโ€โ™‚", "๐Ÿคฆโ€โ™€", "๐Ÿคฆ", "๐Ÿคฆโ€โ™‚", "๐Ÿคทโ€โ™€", "๐Ÿคท", "๐Ÿคทโ€โ™‚", "๐Ÿ™Žโ€โ™€", "๐Ÿ™Ž", "๐Ÿ™Žโ€โ™‚", "๐Ÿ™โ€โ™€", "๐Ÿ™", "๐Ÿ™โ€โ™‚", "๐Ÿ’‡โ€โ™€", "๐Ÿ’‡", "๐Ÿ’‡โ€โ™‚", "๐Ÿ’†โ€โ™€", "๐Ÿ’†", "๐Ÿ’†โ€โ™‚", "๐Ÿง–โ€โ™€", "๐Ÿง–", "๐Ÿง–โ€โ™‚", "๐Ÿ’…", "๐Ÿคณ", "๐Ÿ’ƒ", "๐Ÿ•บ", "๐Ÿ•ด", "๐Ÿ‘ฉโ€๐Ÿฆฝ","๐Ÿง‘โ€๐Ÿฆฝ","๐Ÿ‘จโ€๐Ÿฆฝ","๐Ÿ‘ฉโ€๐Ÿฆฝโ€โžก","๐Ÿง‘โ€๐Ÿฆฝโ€โžก","๐Ÿ‘จโ€๐Ÿฆฝโ€โžก","๐Ÿ‘ฉโ€๐Ÿฆผ","๐Ÿง‘โ€๐Ÿฆผ","๐Ÿ‘จโ€๐Ÿฆผ","๐Ÿ‘ฉโ€๐Ÿฆผโ€โžก","๐Ÿง‘โ€๐Ÿฆผโ€โžก","๐Ÿ‘จโ€๐Ÿฆผโ€โžก","๐Ÿšถโ€โ™€","๐Ÿšถ","๐Ÿšถโ€โ™‚","๐Ÿšถโ€โ™€โ€โžก","๐Ÿšถโ€โžก","๐Ÿšถโ€โ™‚โ€โžก","๐Ÿ‘ฉโ€๐Ÿฆฏ","๐Ÿง‘โ€๐Ÿฆฏ","๐Ÿ‘จโ€๐Ÿฆฏ","๐Ÿ‘ฉโ€๐Ÿฆฏโ€โžก","๐Ÿง‘โ€๐Ÿฆฏโ€โžก","๐Ÿ‘จโ€๐Ÿฆฏโ€โžก","๐ŸงŽโ€โ™€","๐ŸงŽ","๐ŸงŽโ€โ™‚","๐Ÿƒโ€โ™€","๐Ÿƒ","๐Ÿƒโ€โ™‚","๐Ÿƒโ€โ™€โ€โžก","๐Ÿƒโ€โžก","๐Ÿƒโ€โ™‚โ€โžก","๐ŸงŽโ€โ™€โ€โžก","๐ŸงŽโ€โžก","๐ŸงŽโ€โ™‚โ€โžก", "๐Ÿงโ€โ™€", "๐Ÿง", "๐Ÿงโ€โ™‚", "๐Ÿ‹โ€โ™€", "๐Ÿ‹", "๐Ÿ‹โ€โ™‚", "๐Ÿคธโ€โ™€", "๐Ÿคธ", "๐Ÿคธโ€โ™‚", "โ›นโ€โ™€", "โ›น", "โ›นโ€โ™‚", "๐Ÿคพโ€โ™€", "๐Ÿคพ", "๐Ÿคพโ€โ™‚", "๐ŸŒโ€โ™€", "๐ŸŒ", "๐ŸŒโ€โ™‚", "๐Ÿ‡", "๐Ÿง˜โ€โ™€", "๐Ÿง˜", "๐Ÿง˜โ€โ™‚", "๐Ÿ„โ€โ™€", "๐Ÿ„", "๐Ÿ„โ€โ™‚", "๐ŸŠโ€โ™€", "๐ŸŠ", "๐ŸŠโ€โ™‚", "๐Ÿคฝโ€โ™€", "๐Ÿคฝ", "๐Ÿคฝโ€โ™‚", "๐Ÿšฃโ€โ™€", "๐Ÿšฃ", "๐Ÿšฃโ€โ™‚", "๐Ÿง—โ€โ™€", "๐Ÿง—", "๐Ÿง—โ€โ™‚", "๐Ÿšตโ€โ™€", "๐Ÿšต", "๐Ÿšตโ€โ™‚", "๐Ÿšดโ€โ™€", "๐Ÿšด", "๐Ÿšดโ€โ™‚", "๐Ÿคนโ€โ™€", "๐Ÿคน", "๐Ÿคนโ€โ™‚", "๐Ÿ›€" }; public static final String[] emojiBigColored = { @@ -72,7 +72,7 @@ public class EmojiData { public static final String[][] dataColored = { new String[]{ - "๐Ÿ˜€", "๐Ÿ˜ƒ", "๐Ÿ˜„", "๐Ÿ˜", "๐Ÿ˜†", "๐Ÿฅน", "๐Ÿ˜…", "๐Ÿ˜‚", "๐Ÿคฃ", "๐Ÿฅฒ", "โ˜บ", "๐Ÿ˜Š", "๐Ÿ˜‡", "๐Ÿ™‚", "๐Ÿ™ƒ", "๐Ÿ˜‰", "๐Ÿ˜Œ", "๐Ÿ˜", "๐Ÿฅฐ", "๐Ÿ˜˜", "๐Ÿ˜—", "๐Ÿ˜™", "๐Ÿ˜š", "๐Ÿ˜‹", "๐Ÿ˜›", "๐Ÿ˜", "๐Ÿ˜œ", "๐Ÿคช", "๐Ÿคจ", "๐Ÿง", "๐Ÿค“", "๐Ÿ˜Ž", "๐Ÿฅธ", "๐Ÿคฉ", "๐Ÿฅณ", "๐Ÿ˜", "๐Ÿ˜’", "๐Ÿ˜ž", "๐Ÿ˜”", "๐Ÿ˜Ÿ", "๐Ÿ˜•", "๐Ÿ™", "โ˜น", "๐Ÿ˜ฃ", "๐Ÿ˜–", "๐Ÿ˜ซ", "๐Ÿ˜ฉ", "๐Ÿฅบ", "๐Ÿ˜ข", "๐Ÿ˜ญ", "๐Ÿ˜ค", "๐Ÿ˜ ", "๐Ÿ˜ก", "๐Ÿคฌ", "๐Ÿคฏ", "๐Ÿ˜ณ", "๐Ÿฅต", "๐Ÿฅถ", "๐Ÿ˜ถโ€๐ŸŒซ", "๐Ÿ˜ฑ", "๐Ÿ˜จ", "๐Ÿ˜ฐ", "๐Ÿ˜ฅ", "๐Ÿ˜“", "๐Ÿค—", "๐Ÿค”", "๐Ÿซฃ", "๐Ÿคญ", "๐Ÿซข", "๐Ÿซก", "๐Ÿคซ", "๐Ÿซ ", "๐Ÿคฅ", "๐Ÿ˜ถ", "๐Ÿซฅ", "๐Ÿ˜", "๐Ÿซค", "๐Ÿ˜‘", "๐Ÿซจ", "๐Ÿ˜ฌ", "๐Ÿ™„", "๐Ÿ˜ฏ", "๐Ÿ˜ฆ", "๐Ÿ˜ง", "๐Ÿ˜ฎ", "๐Ÿ˜ฒ", "๐Ÿฅฑ", "๐Ÿ˜ด", "๐Ÿคค", "๐Ÿ˜ช", "๐Ÿ˜ฎโ€๐Ÿ’จ", "๐Ÿ˜ต", "๐Ÿ˜ตโ€๐Ÿ’ซ", "๐Ÿค", "๐Ÿฅด", "๐Ÿคข", "๐Ÿคฎ", "๐Ÿคง", "๐Ÿ˜ท", "๐Ÿค’", "๐Ÿค•", "๐Ÿค‘", "๐Ÿค ", "๐Ÿ˜ˆ", "๐Ÿ‘ฟ", "๐Ÿ‘น", "๐Ÿ‘บ", "๐Ÿคก", "๐Ÿ’ฉ", "๐Ÿ‘ป", "๐Ÿ’€", "โ˜ ", "๐Ÿ‘ฝ", "๐Ÿ‘พ", "๐Ÿค–", "๐ŸŽƒ", "๐Ÿ˜บ", "๐Ÿ˜ธ", "๐Ÿ˜น", "๐Ÿ˜ป", "๐Ÿ˜ผ", "๐Ÿ˜ฝ", "๐Ÿ™€", "๐Ÿ˜ฟ", "๐Ÿ˜พ", + "๐Ÿ˜€", "๐Ÿ˜ƒ", "๐Ÿ˜„", "๐Ÿ˜", "๐Ÿ˜†", "๐Ÿฅน", "๐Ÿ˜…", "๐Ÿ˜‚", "๐Ÿคฃ", "๐Ÿฅฒ", "โ˜บ", "๐Ÿ˜Š", "๐Ÿ˜‡", "๐Ÿ™‚", "๐Ÿ™ƒ", "๐Ÿ˜‰", "๐Ÿ˜Œ", "๐Ÿ˜", "๐Ÿฅฐ", "๐Ÿ˜˜", "๐Ÿ˜—", "๐Ÿ˜™", "๐Ÿ˜š", "๐Ÿ˜‹", "๐Ÿ˜›", "๐Ÿ˜", "๐Ÿ˜œ", "๐Ÿคช", "๐Ÿคจ", "๐Ÿง", "๐Ÿค“", "๐Ÿ˜Ž", "๐Ÿฅธ", "๐Ÿคฉ", "๐Ÿฅณ", "๐Ÿ™‚โ€โ†•", "๐Ÿ˜", "๐Ÿ˜’", "๐Ÿ™‚โ€โ†”", "๐Ÿ˜ž", "๐Ÿ˜”", "๐Ÿ˜Ÿ", "๐Ÿ˜•", "๐Ÿ™", "โ˜น", "๐Ÿ˜ฃ", "๐Ÿ˜–", "๐Ÿ˜ซ", "๐Ÿ˜ฉ", "๐Ÿฅบ", "๐Ÿ˜ข", "๐Ÿ˜ญ", "๐Ÿ˜ค", "๐Ÿ˜ ", "๐Ÿ˜ก", "๐Ÿคฌ", "๐Ÿคฏ", "๐Ÿ˜ณ", "๐Ÿฅต", "๐Ÿฅถ", "๐Ÿ˜ถโ€๐ŸŒซ", "๐Ÿ˜ฑ", "๐Ÿ˜จ", "๐Ÿ˜ฐ", "๐Ÿ˜ฅ", "๐Ÿ˜“", "๐Ÿค—", "๐Ÿค”", "๐Ÿซฃ", "๐Ÿคญ", "๐Ÿซข", "๐Ÿซก", "๐Ÿคซ", "๐Ÿซ ", "๐Ÿคฅ", "๐Ÿ˜ถ", "๐Ÿซฅ", "๐Ÿ˜", "๐Ÿซค", "๐Ÿ˜‘", "๐Ÿซจ", "๐Ÿ˜ฌ", "๐Ÿ™„", "๐Ÿ˜ฏ", "๐Ÿ˜ฆ", "๐Ÿ˜ง", "๐Ÿ˜ฎ", "๐Ÿ˜ฒ", "๐Ÿฅฑ", "๐Ÿ˜ด", "๐Ÿคค", "๐Ÿ˜ช", "๐Ÿ˜ฎโ€๐Ÿ’จ", "๐Ÿ˜ต", "๐Ÿ˜ตโ€๐Ÿ’ซ", "๐Ÿค", "๐Ÿฅด", "๐Ÿคข", "๐Ÿคฎ", "๐Ÿคง", "๐Ÿ˜ท", "๐Ÿค’", "๐Ÿค•", "๐Ÿค‘", "๐Ÿค ", "๐Ÿ˜ˆ", "๐Ÿ‘ฟ", "๐Ÿ‘น", "๐Ÿ‘บ", "๐Ÿคก", "๐Ÿ’ฉ", "๐Ÿ‘ป", "๐Ÿ’€", "โ˜ ", "๐Ÿ‘ฝ", "๐Ÿ‘พ", "๐Ÿค–", "๐ŸŽƒ", "๐Ÿ˜บ", "๐Ÿ˜ธ", "๐Ÿ˜น", "๐Ÿ˜ป", "๐Ÿ˜ผ", "๐Ÿ˜ฝ", "๐Ÿ™€", "๐Ÿ˜ฟ", "๐Ÿ˜พ", "๐Ÿซถ", "๐Ÿคฒ", "๐Ÿ‘", @@ -305,24 +305,7 @@ public class EmojiData { "๐Ÿ•บ", "๐Ÿ‘ฏโ€โ™€", "๐Ÿ‘ฏ", "๐Ÿ‘ฏโ€โ™‚", "๐Ÿ•ด", - "๐Ÿ‘ฉโ€๐Ÿฆฝ", - "๐Ÿง‘โ€๐Ÿฆฝ", - "๐Ÿ‘จโ€๐Ÿฆฝ", - "๐Ÿ‘ฉโ€๐Ÿฆผ", - "๐Ÿง‘โ€๐Ÿฆผ", - "๐Ÿ‘จโ€๐Ÿฆผ", - "๐Ÿšถโ€โ™€", - "๐Ÿšถ", - "๐Ÿšถโ€โ™‚", - "๐Ÿ‘ฉโ€๐Ÿฆฏ", - "๐Ÿง‘โ€๐Ÿฆฏ", - "๐Ÿ‘จโ€๐Ÿฆฏ", - "๐ŸงŽโ€โ™€", - "๐ŸงŽ", - "๐ŸงŽโ€โ™‚", - "๐Ÿƒโ€โ™€", - "๐Ÿƒ", - "๐Ÿƒโ€โ™‚", + "๐Ÿ‘ฉโ€๐Ÿฆฝ","๐Ÿง‘โ€๐Ÿฆฝ","๐Ÿ‘จโ€๐Ÿฆฝ","๐Ÿ‘ฉโ€๐Ÿฆฝโ€โžก","๐Ÿง‘โ€๐Ÿฆฝโ€โžก","๐Ÿ‘จโ€๐Ÿฆฝโ€โžก","๐Ÿ‘ฉโ€๐Ÿฆผ","๐Ÿง‘โ€๐Ÿฆผ","๐Ÿ‘จโ€๐Ÿฆผ","๐Ÿ‘ฉโ€๐Ÿฆผโ€โžก","๐Ÿง‘โ€๐Ÿฆผโ€โžก","๐Ÿ‘จโ€๐Ÿฆผโ€โžก","๐Ÿšถโ€โ™€","๐Ÿšถ","๐Ÿšถโ€โ™‚","๐Ÿšถโ€โ™€โ€โžก","๐Ÿšถโ€โžก","๐Ÿšถโ€โ™‚โ€โžก","๐Ÿ‘ฉโ€๐Ÿฆฏ","๐Ÿง‘โ€๐Ÿฆฏ","๐Ÿ‘จโ€๐Ÿฆฏ","๐Ÿ‘ฉโ€๐Ÿฆฏโ€โžก","๐Ÿง‘โ€๐Ÿฆฏโ€โžก","๐Ÿ‘จโ€๐Ÿฆฏโ€โžก","๐ŸงŽโ€โ™€","๐ŸงŽ","๐ŸงŽโ€โ™‚","๐Ÿƒโ€โ™€","๐Ÿƒ","๐Ÿƒโ€โ™‚","๐Ÿƒโ€โ™€โ€โžก","๐Ÿƒโ€โžก","๐Ÿƒโ€โ™‚โ€โžก","๐ŸงŽโ€โ™€โ€โžก","๐ŸงŽโ€โžก","๐ŸงŽโ€โ™‚โ€โžก", "๐Ÿงโ€โ™€", "๐Ÿง", "๐Ÿงโ€โ™‚", @@ -337,7 +320,7 @@ public class EmojiData { "๐Ÿ‘ฉโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ", "๐Ÿ’", "๐Ÿ‘จโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ", - "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿชข", "๐Ÿงถ", "๐Ÿงต", "๐Ÿชก", "๐Ÿงฅ", "๐Ÿฅผ", "๐Ÿฆบ", "๐Ÿ‘š", "๐Ÿ‘•", "๐Ÿ‘–", "๐Ÿฉฒ", "๐Ÿฉณ", "๐Ÿ‘”", "๐Ÿ‘—", "๐Ÿ‘™", "๐Ÿฉฑ", "๐Ÿ‘˜", "๐Ÿฅป", "๐Ÿฉด", "๐Ÿฅฟ", "๐Ÿ‘ ", "๐Ÿ‘ก", "๐Ÿ‘ข", "๐Ÿ‘ž", "๐Ÿ‘Ÿ", "๐Ÿฅพ", "๐Ÿงฆ", "๐Ÿงค", "๐Ÿงฃ", "๐ŸŽฉ", "๐Ÿงข", "๐Ÿ‘’", "๐ŸŽ“", "โ›‘", "๐Ÿช–", "๐Ÿ‘‘", "๐Ÿ’", "๐Ÿ‘", "๐Ÿ‘›", "๐Ÿ‘œ", "๐Ÿ’ผ", "๐ŸŽ’", "๐Ÿงณ", "๐Ÿ‘“", "๐Ÿ•ถ", "๐Ÿฅฝ", "๐ŸŒ‚" + "๐Ÿชข", "๐Ÿงถ", "๐Ÿงต", "๐Ÿชก", "๐Ÿงฅ", "๐Ÿฅผ", "๐Ÿฆบ", "๐Ÿ‘š", "๐Ÿ‘•", "๐Ÿ‘–", "๐Ÿฉฒ", "๐Ÿฉณ", "๐Ÿ‘”", "๐Ÿ‘—", "๐Ÿ‘™", "๐Ÿฉฑ", "๐Ÿ‘˜", "๐Ÿฅป", "๐Ÿฉด", "๐Ÿฅฟ", "๐Ÿ‘ ", "๐Ÿ‘ก", "๐Ÿ‘ข", "๐Ÿ‘ž", "๐Ÿ‘Ÿ", "๐Ÿฅพ", "๐Ÿงฆ", "๐Ÿงค", "๐Ÿงฃ", "๐ŸŽฉ", "๐Ÿงข", "๐Ÿ‘’", "๐ŸŽ“", "โ›‘", "๐Ÿช–", "๐Ÿ‘‘", "๐Ÿ’", "๐Ÿ‘", "๐Ÿ‘›", "๐Ÿ‘œ", "๐Ÿ’ผ", "๐ŸŽ’", "๐Ÿงณ", "๐Ÿ‘“", "๐Ÿ•ถ", "๐Ÿฅฝ", "๐ŸŒ‚" }, null, null, @@ -393,11 +376,13 @@ public class EmojiData { }, null, new String[]{ - "โŒš", "๐Ÿ“ฑ", "๐Ÿ“ฒ", "๐Ÿ’ป", "โŒจ", "๐Ÿ–ฅ", "๐Ÿ–จ", "๐Ÿ–ฑ", "๐Ÿ–ฒ", "๐Ÿ•น", "๐Ÿ—œ", "๐Ÿ’ฝ", "๐Ÿ’พ", "๐Ÿ’ฟ", "๐Ÿ“€", "๐Ÿ“ผ", "๐Ÿ“ท", "๐Ÿ“ธ", "๐Ÿ“น", "๐ŸŽฅ", "๐Ÿ“ฝ", "๐ŸŽž", "๐Ÿ“ž", "โ˜Ž", "๐Ÿ“Ÿ", "๐Ÿ“ ", "๐Ÿ“บ", "๐Ÿ“ป", "๐ŸŽ™", "๐ŸŽš", "๐ŸŽ›", "๐Ÿงญ", "โฑ", "โฒ", "โฐ", "๐Ÿ•ฐ", "โŒ›", "โณ", "๐Ÿ“ก", "๐Ÿ”‹", "๐Ÿชซ", "๐Ÿ”Œ", "๐Ÿ’ก", "๐Ÿ”ฆ", "๐Ÿ•ฏ", "๐Ÿช”", "๐Ÿงฏ", "๐Ÿ›ข", "๐Ÿ’ธ", "๐Ÿ’ต", "๐Ÿ’ด", "๐Ÿ’ถ", "๐Ÿ’ท", "๐Ÿช™", "๐Ÿ’ฐ", "๐Ÿ’ณ", "๐Ÿชช", "๐Ÿ’Ž", "โš–", "๐Ÿชœ", "๐Ÿงฐ", "๐Ÿช›", "๐Ÿ”ง", "๐Ÿ”จ", "โš’", "๐Ÿ› ", "โ›", "๐Ÿชš", "๐Ÿ”ฉ", "โš™", "๐Ÿชค", "๐Ÿงฑ", "โ›“", "๐Ÿงฒ", "๐Ÿ”ซ", "๐Ÿ’ฃ", "๐Ÿงจ", "๐Ÿช“", "๐Ÿ”ช", "๐Ÿ—ก", "โš”", "๐Ÿ›ก", "๐Ÿšฌ", "โšฐ", "๐Ÿชฆ", "โšฑ", "๐Ÿบ", "๐Ÿ”ฎ", "๐Ÿ“ฟ", "๐Ÿงฟ", "๐Ÿชฌ", "๐Ÿ’ˆ", "โš—", "๐Ÿ”ญ", "๐Ÿ”ฌ", "๐Ÿ•ณ", "๐Ÿฉป", "๐Ÿฉน", "๐Ÿฉบ", "๐Ÿ’Š", "๐Ÿ’‰", "๐Ÿฉธ", "๐Ÿงฌ", "๐Ÿฆ ", "๐Ÿงซ", "๐Ÿงช", "๐ŸŒก", "๐Ÿงน", "๐Ÿช ", "๐Ÿงบ", "๐Ÿงป", "๐Ÿšฝ", "๐Ÿšฐ", "๐Ÿšฟ", "๐Ÿ›", + "โŒš", "๐Ÿ“ฑ", "๐Ÿ“ฒ", "๐Ÿ’ป", "โŒจ", "๐Ÿ–ฅ", "๐Ÿ–จ", "๐Ÿ–ฑ", "๐Ÿ–ฒ", "๐Ÿ•น", "๐Ÿ—œ", "๐Ÿ’ฝ", "๐Ÿ’พ", "๐Ÿ’ฟ", "๐Ÿ“€", "๐Ÿ“ผ", "๐Ÿ“ท", "๐Ÿ“ธ", "๐Ÿ“น", "๐ŸŽฅ", "๐Ÿ“ฝ", "๐ŸŽž", "๐Ÿ“ž", "โ˜Ž", "๐Ÿ“Ÿ", "๐Ÿ“ ", "๐Ÿ“บ", "๐Ÿ“ป", "๐ŸŽ™", "๐ŸŽš", "๐ŸŽ›", "๐Ÿงญ", "โฑ", "โฒ", "โฐ", "๐Ÿ•ฐ", "โŒ›", "โณ", "๐Ÿ“ก", "๐Ÿ”‹", "๐Ÿชซ", "๐Ÿ”Œ", "๐Ÿ’ก", "๐Ÿ”ฆ", "๐Ÿ•ฏ", "๐Ÿช”", "๐Ÿงฏ", "๐Ÿ›ข", "๐Ÿ’ธ", "๐Ÿ’ต", "๐Ÿ’ด", "๐Ÿ’ถ", "๐Ÿ’ท", "๐Ÿช™", "๐Ÿ’ฐ", "๐Ÿ’ณ", "๐Ÿชช", "๐Ÿ’Ž", "โš–", "๐Ÿชœ", "๐Ÿงฐ", "๐Ÿช›", "๐Ÿ”ง", "๐Ÿ”จ", "โš’", "๐Ÿ› ", "โ›", "๐Ÿชš", "๐Ÿ”ฉ", "โš™", "๐Ÿชค", "๐Ÿงฑ", "โ›“", "โ›“โ€๐Ÿ’ฅ", "๐Ÿงฒ", "๐Ÿ”ซ", "๐Ÿ’ฃ", "๐Ÿงจ", "๐Ÿช“", "๐Ÿ”ช", "๐Ÿ—ก", "โš”", "๐Ÿ›ก", "๐Ÿšฌ", "โšฐ", "๐Ÿชฆ", "โšฑ", "๐Ÿบ", "๐Ÿ”ฎ", "๐Ÿ“ฟ", "๐Ÿงฟ", "๐Ÿชฌ", "๐Ÿ’ˆ", "โš—", "๐Ÿ”ญ", "๐Ÿ”ฌ", "๐Ÿ•ณ", "๐Ÿฉป", "๐Ÿฉน", "๐Ÿฉบ", "๐Ÿ’Š", "๐Ÿ’‰", "๐Ÿฉธ", "๐Ÿงฌ", "๐Ÿฆ ", "๐Ÿงซ", "๐Ÿงช", "๐ŸŒก", "๐Ÿงน", "๐Ÿช ", "๐Ÿงบ", "๐Ÿงป", "๐Ÿšฝ", "๐Ÿšฐ", "๐Ÿšฟ", "๐Ÿ›", "๐Ÿ›€", "๐Ÿงผ", "๐Ÿชฅ", "๐Ÿช’", "๐Ÿชฎ", "๐Ÿงฝ", "๐Ÿชฃ", "๐Ÿงด", "๐Ÿ›Ž", "๐Ÿ”‘", "๐Ÿ—", "๐Ÿšช", "๐Ÿช‘", "๐Ÿ›‹", "๐Ÿ›", "๐Ÿ›Œ", "๐Ÿงธ", "๐Ÿช†", "๐Ÿ–ผ", "๐Ÿชž", "๐ŸชŸ", "๐Ÿ›", "๐Ÿ›’", "๐ŸŽ", "๐ŸŽˆ", "๐ŸŽ", "๐ŸŽ€", "๐Ÿช„", "๐Ÿช…", "๐ŸŽŠ", "๐ŸŽ‰", "๐ŸŽŽ", "๐Ÿชญ", "๐Ÿฎ", "๐ŸŽ", "๐Ÿชฉ", "๐Ÿงง", "โœ‰", "๐Ÿ“ฉ", "๐Ÿ“จ", "๐Ÿ“ง", "๐Ÿ’Œ", "๐Ÿ“ฅ", "๐Ÿ“ค", "๐Ÿ“ฆ", "๐Ÿท", "๐Ÿชง", "๐Ÿ“ช", "๐Ÿ“ซ", "๐Ÿ“ฌ", "๐Ÿ“ญ", "๐Ÿ“ฎ", "๐Ÿ“ฏ", "๐Ÿ“œ", "๐Ÿ“ƒ", "๐Ÿ“„", "๐Ÿ“‘", "๐Ÿงพ", "๐Ÿ“Š", "๐Ÿ“ˆ", "๐Ÿ“‰", "๐Ÿ—’", "๐Ÿ—“", "๐Ÿ“†", "๐Ÿ“…", "๐Ÿ—‘", "๐Ÿ“‡", "๐Ÿ—ƒ", "๐Ÿ—ณ", "๐Ÿ—„", "๐Ÿ“‹", "๐Ÿ“", "๐Ÿ“‚", "๐Ÿ—‚", "๐Ÿ—ž", "๐Ÿ“ฐ", "๐Ÿ““", "๐Ÿ“”", "๐Ÿ“’", "๐Ÿ“•", "๐Ÿ“—", "๐Ÿ“˜", "๐Ÿ“™", "๐Ÿ“š", "๐Ÿ“–", "๐Ÿ”–", "๐Ÿงท", "๐Ÿ”—", "๐Ÿ“Ž", "๐Ÿ–‡", "๐Ÿ“", "๐Ÿ“", "๐Ÿงฎ", "๐Ÿ“Œ", "๐Ÿ“", "โœ‚", "๐Ÿ–Š", "๐Ÿ–‹", "โœ’", "๐Ÿ–Œ", "๐Ÿ–", "๐Ÿ“", "โœ", "๐Ÿ”", "๐Ÿ”Ž", "๐Ÿ”", "๐Ÿ”", "๐Ÿ”’", "๐Ÿ”“" }, - null, + new String[]{ + "๐Ÿฉท", "โค", "๐Ÿงก", "๐Ÿ’›", "๐Ÿ’š", "๐Ÿฉต", "๐Ÿ’™", "๐Ÿ’œ", "๐Ÿ–ค", "๐Ÿฉถ", "๐Ÿค", "๐ŸคŽ", "๐Ÿ’”", "โคโ€๐Ÿ”ฅ", "โคโ€๐Ÿฉน", "โฃ", "๐Ÿ’•", "๐Ÿ’ž", "๐Ÿ’“", "๐Ÿ’—", "๐Ÿ’–", "๐Ÿ’˜", "๐Ÿ’", "๐Ÿ’Ÿ", "โ˜ฎ", "โœ", "โ˜ช", "๐Ÿ•‰", "โ˜ธ", "๐Ÿชฏ", "โœก", "๐Ÿ”ฏ", "๐Ÿ•Ž", "โ˜ฏ", "โ˜ฆ", "๐Ÿ›", "โ›Ž", "โ™ˆ", "โ™‰", "โ™Š", "โ™‹", "โ™Œ", "โ™", "โ™Ž", "โ™", "โ™", "โ™‘", "โ™’", "โ™“", "๐Ÿ†”", "โš›", "๐Ÿ‰‘", "โ˜ข", "โ˜ฃ", "๐Ÿ“ด", "๐Ÿ“ณ", "๐Ÿˆถ", "๐Ÿˆš", "๐Ÿˆธ", "๐Ÿˆบ", "๐Ÿˆท", "โœด", "๐Ÿ†š", "๐Ÿ’ฎ", "๐Ÿ‰", "ใŠ™", "ใŠ—", "๐Ÿˆด", "๐Ÿˆต", "๐Ÿˆน", "๐Ÿˆฒ", "๐Ÿ…ฐ", "๐Ÿ…ฑ", "๐Ÿ†Ž", "๐Ÿ†‘", "๐Ÿ…พ", "๐Ÿ†˜", "โŒ", "โญ•", "๐Ÿ›‘", "โ›”", "๐Ÿ“›", "๐Ÿšซ", "๐Ÿ’ฏ", "๐Ÿ’ข", "โ™จ", "๐Ÿšท", "๐Ÿšฏ", "๐Ÿšณ", "๐Ÿšฑ", "๐Ÿ”ž", "๐Ÿ“ต", "๐Ÿšญ", "โ—", "โ•", "โ“", "โ”", "โ€ผ", "โ‰", "๐Ÿ”…", "๐Ÿ”†", "ใ€ฝ", "โš ", "๐Ÿšธ", "๐Ÿ”ฑ", "โšœ", "๐Ÿ”ฐ", "โ™ป", "โœ…", "๐Ÿˆฏ", "๐Ÿ’น", "โ‡", "โœณ", "โŽ", "๐ŸŒ", "๐Ÿ’ ", "โ“‚", "๐ŸŒ€", "๐Ÿ’ค", "๐Ÿง", "๐Ÿšพ", "โ™ฟ", "๐Ÿ…ฟ", "๐Ÿ›—", "๐Ÿˆณ", "๐Ÿˆ‚", "๐Ÿ›‚", "๐Ÿ›ƒ", "๐Ÿ›„", "๐Ÿ›…", "๐Ÿ›œ", "๐Ÿšน", "๐Ÿšบ", "๐Ÿšผ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "โšง", "๐Ÿšป", "๐Ÿšฎ", "๐ŸŽฆ", "๐Ÿ“ถ", "๐Ÿˆ", "๐Ÿ”ฃ", "โ„น", "๐Ÿ”ค", "๐Ÿ”ก", "๐Ÿ” ", "๐Ÿ†–", "๐Ÿ†—", "๐Ÿ†™", "๐Ÿ†’", "๐Ÿ†•", "๐Ÿ†“", "0โƒฃ", "1โƒฃ", "2โƒฃ", "3โƒฃ", "4โƒฃ", "5โƒฃ", "6โƒฃ", "7โƒฃ", "8โƒฃ", "9โƒฃ", "๐Ÿ”Ÿ", "๐Ÿ”ข", "#โƒฃ", "*โƒฃ", "โ", "โ–ถ", "โธ", "โฏ", "โน", "โบ", "โญ", "โฎ", "โฉ", "โช", "โซ", "โฌ", "โ—€", "๐Ÿ”ผ", "๐Ÿ”ฝ", "โžก", "โฌ…", "โฌ†", "โฌ‡", "โ†—", "โ†˜", "โ†™", "โ†–", "โ†•", "โ†”", "โ†ช", "โ†ฉ", "โคด", "โคต", "๐Ÿ”€", "๐Ÿ”", "๐Ÿ”‚", "๐Ÿ”„", "๐Ÿ”ƒ", "๐ŸŽต", "๐ŸŽถ", "โž•", "โž–", "โž—", "โœ–", "๐ŸŸฐ", "โ™พ", "๐Ÿ’ฒ", "๐Ÿ’ฑ", "โ„ข๏ธ", "ยฉ", "ยฎ", "๐Ÿ‘โ€๐Ÿ—จ", "๐Ÿ”š", "๐Ÿ”™", "๐Ÿ”›", "๐Ÿ”", "๐Ÿ”œ", "ใ€ฐ", "โžฐ", "โžฟ", "โœ”", "โ˜‘", "๐Ÿ”˜", "๐Ÿ”ด", "๐ŸŸ ", "๐ŸŸก", "๐ŸŸข", "๐Ÿ”ต", "๐ŸŸฃ", "โšซ", "โšช", "๐ŸŸค", "๐Ÿ”บ", "๐Ÿ”ป", "๐Ÿ”ธ", "๐Ÿ”น", "๐Ÿ”ถ", "๐Ÿ”ท", "๐Ÿ”ณ", "๐Ÿ”ฒ", "โ–ช", "โ–ซ", "โ—พ", "โ—ฝ", "โ—ผ", "โ—ป", "๐ŸŸฅ", "๐ŸŸง", "๐ŸŸจ", "๐ŸŸฉ", "๐ŸŸฆ", "๐ŸŸช", "โฌ›", "โฌœ", "๐ŸŸซ", "๐Ÿ”ˆ", "๐Ÿ”‡", "๐Ÿ”‰", "๐Ÿ”Š", "๐Ÿ””", "๐Ÿ”•", "๐Ÿ“ฃ", "๐Ÿ“ข", "๐Ÿ’ฌ", "๐Ÿ’ญ", "๐Ÿ—ฏ", "โ™ ", "โ™ฃ", "โ™ฅ", "โ™ฆ", "๐Ÿƒ", "๐ŸŽด", "๐Ÿ€„", "๐Ÿ•", "๐Ÿ•‘", "๐Ÿ•’", "๐Ÿ•“", "๐Ÿ•”", "๐Ÿ••", "๐Ÿ•–", "๐Ÿ•—", "๐Ÿ•˜", "๐Ÿ•™", "๐Ÿ•š", "๐Ÿ•›", "๐Ÿ•œ", "๐Ÿ•", "๐Ÿ•ž", "๐Ÿ•Ÿ", "๐Ÿ• ", "๐Ÿ•ก", "๐Ÿ•ข", "๐Ÿ•ฃ", "๐Ÿ•ค", "๐Ÿ•ฅ", "๐Ÿ•ฆ", "๐Ÿ•ง" + }, null }; @@ -505,13 +490,13 @@ public class EmojiData { public static final String[][] data = { new String[]{ - "๐Ÿ˜€", "๐Ÿ˜ƒ", "๐Ÿ˜„", "๐Ÿ˜", "๐Ÿ˜†", "๐Ÿฅน", "๐Ÿ˜…", "๐Ÿ˜‚", "๐Ÿคฃ", "๐Ÿฅฒ", "โ˜บ", "๐Ÿ˜Š", "๐Ÿ˜‡", "๐Ÿ™‚", "๐Ÿ™ƒ", "๐Ÿ˜‰", "๐Ÿ˜Œ", "๐Ÿ˜", "๐Ÿฅฐ", "๐Ÿ˜˜", "๐Ÿ˜—", "๐Ÿ˜™", "๐Ÿ˜š", "๐Ÿ˜‹", "๐Ÿ˜›", "๐Ÿ˜", "๐Ÿ˜œ", "๐Ÿคช", "๐Ÿคจ", "๐Ÿง", "๐Ÿค“", "๐Ÿ˜Ž", "๐Ÿฅธ", "๐Ÿคฉ", "๐Ÿฅณ", "๐Ÿ˜", "๐Ÿ˜’", "๐Ÿ˜ž", "๐Ÿ˜”", "๐Ÿ˜Ÿ", "๐Ÿ˜•", "๐Ÿ™", "โ˜น", "๐Ÿ˜ฃ", "๐Ÿ˜–", "๐Ÿ˜ซ", "๐Ÿ˜ฉ", "๐Ÿฅบ", "๐Ÿ˜ข", "๐Ÿ˜ญ", "๐Ÿ˜ค", "๐Ÿ˜ ", "๐Ÿ˜ก", "๐Ÿคฌ", "๐Ÿคฏ", "๐Ÿ˜ณ", "๐Ÿฅต", "๐Ÿฅถ", "๐Ÿ˜ถโ€๐ŸŒซ", "๐Ÿ˜ฑ", "๐Ÿ˜จ", "๐Ÿ˜ฐ", "๐Ÿ˜ฅ", "๐Ÿ˜“", "๐Ÿค—", "๐Ÿค”", "๐Ÿซฃ", "๐Ÿคญ", "๐Ÿซข", "๐Ÿซก", "๐Ÿคซ", "๐Ÿซ ", "๐Ÿคฅ", "๐Ÿ˜ถ", "๐Ÿซฅ", "๐Ÿ˜", "๐Ÿซค", "๐Ÿ˜‘", "๐Ÿซจ", "๐Ÿ˜ฌ", "๐Ÿ™„", "๐Ÿ˜ฏ", "๐Ÿ˜ฆ", "๐Ÿ˜ง", "๐Ÿ˜ฎ", "๐Ÿ˜ฒ", "๐Ÿฅฑ", "๐Ÿ˜ด", "๐Ÿคค", "๐Ÿ˜ช", "๐Ÿ˜ฎโ€๐Ÿ’จ", "๐Ÿ˜ต", "๐Ÿ˜ตโ€๐Ÿ’ซ", "๐Ÿค", "๐Ÿฅด", "๐Ÿคข", "๐Ÿคฎ", "๐Ÿคง", "๐Ÿ˜ท", "๐Ÿค’", "๐Ÿค•", "๐Ÿค‘", "๐Ÿค ", "๐Ÿ˜ˆ", "๐Ÿ‘ฟ", "๐Ÿ‘น", "๐Ÿ‘บ", "๐Ÿคก", "๐Ÿ’ฉ", "๐Ÿ‘ป", "๐Ÿ’€", "โ˜ ", "๐Ÿ‘ฝ", "๐Ÿ‘พ", "๐Ÿค–", "๐ŸŽƒ", "๐Ÿ˜บ", "๐Ÿ˜ธ", "๐Ÿ˜น", "๐Ÿ˜ป", "๐Ÿ˜ผ", "๐Ÿ˜ฝ", "๐Ÿ™€", "๐Ÿ˜ฟ", "๐Ÿ˜พ", "๐Ÿซถ", "๐Ÿซถ๐Ÿป", "๐Ÿซถ๐Ÿผ", "๐Ÿซถ๐Ÿฝ", "๐Ÿซถ๐Ÿพ", "๐Ÿซถ๐Ÿฟ", "๐Ÿคฒ", "๐Ÿคฒ๐Ÿป", "๐Ÿคฒ๐Ÿผ", "๐Ÿคฒ๐Ÿฝ", "๐Ÿคฒ๐Ÿพ", "๐Ÿคฒ๐Ÿฟ", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", "๐Ÿ™Œ", "๐Ÿ™Œ๐Ÿป", "๐Ÿ™Œ๐Ÿผ", "๐Ÿ™Œ๐Ÿฝ", "๐Ÿ™Œ๐Ÿพ", "๐Ÿ™Œ๐Ÿฟ", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", "๐Ÿค", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", "๐Ÿ‘Ž", "๐Ÿ‘Ž๐Ÿป", "๐Ÿ‘Ž๐Ÿผ", "๐Ÿ‘Ž๐Ÿฝ", "๐Ÿ‘Ž๐Ÿพ", "๐Ÿ‘Ž๐Ÿฟ", "๐Ÿ‘Š", "๐Ÿ‘Š๐Ÿป", "๐Ÿ‘Š๐Ÿผ", "๐Ÿ‘Š๐Ÿฝ", "๐Ÿ‘Š๐Ÿพ", "๐Ÿ‘Š๐Ÿฟ", "โœŠ", "โœŠ๐Ÿป", "โœŠ๐Ÿผ", "โœŠ๐Ÿฝ", "โœŠ๐Ÿพ", "โœŠ๐Ÿฟ", "๐Ÿค›", "๐Ÿค›๐Ÿป", "๐Ÿค›๐Ÿผ", "๐Ÿค›๐Ÿฝ", "๐Ÿค›๐Ÿพ", "๐Ÿค›๐Ÿฟ", "๐Ÿคœ", "๐Ÿคœ๐Ÿป", "๐Ÿคœ๐Ÿผ", "๐Ÿคœ๐Ÿฝ", "๐Ÿคœ๐Ÿพ", "๐Ÿคœ๐Ÿฟ", "๐Ÿซท", "๐Ÿซท๐Ÿป", "๐Ÿซท๐Ÿผ", "๐Ÿซท๐Ÿฝ", "๐Ÿซท๐Ÿพ", "๐Ÿซท๐Ÿฟ", "๐Ÿซธ", "๐Ÿซธ๐Ÿป", "๐Ÿซธ๐Ÿผ", "๐Ÿซธ๐Ÿฝ", "๐Ÿซธ๐Ÿพ", "๐Ÿซธ๐Ÿฟ", "๐Ÿคž", "๐Ÿคž๐Ÿป", "๐Ÿคž๐Ÿผ", "๐Ÿคž๐Ÿฝ", "๐Ÿคž๐Ÿพ", "๐Ÿคž๐Ÿฟ", "โœŒ", "โœŒ๐Ÿป", "โœŒ๐Ÿผ", "โœŒ๐Ÿฝ", "โœŒ๐Ÿพ", "โœŒ๐Ÿฟ", "๐Ÿซฐ", "๐Ÿซฐ๐Ÿป", "๐Ÿซฐ๐Ÿผ", "๐Ÿซฐ๐Ÿฝ", "๐Ÿซฐ๐Ÿพ", "๐Ÿซฐ๐Ÿฟ", "๐ŸคŸ", "๐ŸคŸ๐Ÿป", "๐ŸคŸ๐Ÿผ", "๐ŸคŸ๐Ÿฝ", "๐ŸคŸ๐Ÿพ", "๐ŸคŸ๐Ÿฟ", "๐Ÿค˜", "๐Ÿค˜๐Ÿป", "๐Ÿค˜๐Ÿผ", "๐Ÿค˜๐Ÿฝ", "๐Ÿค˜๐Ÿพ", "๐Ÿค˜๐Ÿฟ", "๐Ÿ‘Œ", "๐Ÿ‘Œ๐Ÿป", "๐Ÿ‘Œ๐Ÿผ", "๐Ÿ‘Œ๐Ÿฝ", "๐Ÿ‘Œ๐Ÿพ", "๐Ÿ‘Œ๐Ÿฟ", "๐ŸคŒ", "๐ŸคŒ๐Ÿป", "๐ŸคŒ๐Ÿผ", "๐ŸคŒ๐Ÿฝ", "๐ŸคŒ๐Ÿพ", "๐ŸคŒ๐Ÿฟ", "๐Ÿค", "๐Ÿค๐Ÿป", "๐Ÿค๐Ÿผ", "๐Ÿค๐Ÿฝ", "๐Ÿค๐Ÿพ", "๐Ÿค๐Ÿฟ", "๐Ÿซณ", "๐Ÿซณ๐Ÿป", "๐Ÿซณ๐Ÿผ", "๐Ÿซณ๐Ÿฝ", "๐Ÿซณ๐Ÿพ", "๐Ÿซณ๐Ÿฟ", "๐Ÿซด", "๐Ÿซด๐Ÿป", "๐Ÿซด๐Ÿผ", "๐Ÿซด๐Ÿฝ", "๐Ÿซด๐Ÿพ", "๐Ÿซด๐Ÿฟ", "๐Ÿ‘ˆ", "๐Ÿ‘ˆ๐Ÿป", "๐Ÿ‘ˆ๐Ÿผ", "๐Ÿ‘ˆ๐Ÿฝ", "๐Ÿ‘ˆ๐Ÿพ", "๐Ÿ‘ˆ๐Ÿฟ", "๐Ÿ‘‰", "๐Ÿ‘‰๐Ÿป", "๐Ÿ‘‰๐Ÿผ", "๐Ÿ‘‰๐Ÿฝ", "๐Ÿ‘‰๐Ÿพ", "๐Ÿ‘‰๐Ÿฟ", "๐Ÿ‘†", "๐Ÿ‘†๐Ÿป", "๐Ÿ‘†๐Ÿผ", "๐Ÿ‘†๐Ÿฝ", "๐Ÿ‘†๐Ÿพ", "๐Ÿ‘†๐Ÿฟ", "๐Ÿ‘‡", "๐Ÿ‘‡๐Ÿป", "๐Ÿ‘‡๐Ÿผ", "๐Ÿ‘‡๐Ÿฝ", "๐Ÿ‘‡๐Ÿพ", "๐Ÿ‘‡๐Ÿฟ", "โ˜", "โ˜๐Ÿป", "โ˜๐Ÿผ", "โ˜๐Ÿฝ", "โ˜๐Ÿพ", "โ˜๐Ÿฟ", "โœ‹", "โœ‹๐Ÿป", "โœ‹๐Ÿผ", "โœ‹๐Ÿฝ", "โœ‹๐Ÿพ", "โœ‹๐Ÿฟ", "๐Ÿคš", "๐Ÿคš๐Ÿป", "๐Ÿคš๐Ÿผ", "๐Ÿคš๐Ÿฝ", "๐Ÿคš๐Ÿพ", "๐Ÿคš๐Ÿฟ", "๐Ÿ–", "๐Ÿ–๐Ÿป", "๐Ÿ–๐Ÿผ", "๐Ÿ–๐Ÿฝ", "๐Ÿ–๐Ÿพ", "๐Ÿ–๐Ÿฟ", "๐Ÿ––", "๐Ÿ––๐Ÿป", "๐Ÿ––๐Ÿผ", "๐Ÿ––๐Ÿฝ", "๐Ÿ––๐Ÿพ", "๐Ÿ––๐Ÿฟ", "๐Ÿ‘‹", "๐Ÿ‘‹๐Ÿป", "๐Ÿ‘‹๐Ÿผ", "๐Ÿ‘‹๐Ÿฝ", "๐Ÿ‘‹๐Ÿพ", "๐Ÿ‘‹๐Ÿฟ", "๐Ÿค™", "๐Ÿค™๐Ÿป", "๐Ÿค™๐Ÿผ", "๐Ÿค™๐Ÿฝ", "๐Ÿค™๐Ÿพ", "๐Ÿค™๐Ÿฟ", "๐Ÿซฒ", "๐Ÿซฒ๐Ÿป", "๐Ÿซฒ๐Ÿผ", "๐Ÿซฒ๐Ÿฝ", "๐Ÿซฒ๐Ÿพ", "๐Ÿซฒ๐Ÿฟ", "๐Ÿซฑ", "๐Ÿซฑ๐Ÿป", "๐Ÿซฑ๐Ÿผ", "๐Ÿซฑ๐Ÿฝ", "๐Ÿซฑ๐Ÿพ", "๐Ÿซฑ๐Ÿฟ", "๐Ÿ’ช", "๐Ÿ’ช๐Ÿป", "๐Ÿ’ช๐Ÿผ", "๐Ÿ’ช๐Ÿฝ", "๐Ÿ’ช๐Ÿพ", "๐Ÿ’ช๐Ÿฟ", "๐Ÿฆพ", "๐Ÿ–•", "๐Ÿ–•๐Ÿป", "๐Ÿ–•๐Ÿผ", "๐Ÿ–•๐Ÿฝ", "๐Ÿ–•๐Ÿพ", "๐Ÿ–•๐Ÿฟ", "โœ", "โœ๐Ÿป", "โœ๐Ÿผ", "โœ๐Ÿฝ", "โœ๐Ÿพ", "โœ๐Ÿฟ", "๐Ÿ™", "๐Ÿ™๐Ÿป", "๐Ÿ™๐Ÿผ", "๐Ÿ™๐Ÿฝ", "๐Ÿ™๐Ÿพ", "๐Ÿ™๐Ÿฟ", "๐Ÿซต", "๐Ÿซต๐Ÿป", "๐Ÿซต๐Ÿผ", "๐Ÿซต๐Ÿฝ", "๐Ÿซต๐Ÿพ", "๐Ÿซต๐Ÿฟ", "๐Ÿฆถ", "๐Ÿฆถ๐Ÿป", "๐Ÿฆถ๐Ÿผ", "๐Ÿฆถ๐Ÿฝ", "๐Ÿฆถ๐Ÿพ", "๐Ÿฆถ๐Ÿฟ", "๐Ÿฆต", "๐Ÿฆต๐Ÿป", "๐Ÿฆต๐Ÿผ", "๐Ÿฆต๐Ÿฝ", "๐Ÿฆต๐Ÿพ", "๐Ÿฆต๐Ÿฟ", "๐Ÿฆฟ", "๐Ÿ’„", "๐Ÿ’‹", "๐Ÿ‘„", "๐Ÿซฆ", "๐Ÿฆท", "๐Ÿ‘…", "๐Ÿ‘‚", "๐Ÿ‘‚๐Ÿป", "๐Ÿ‘‚๐Ÿผ", "๐Ÿ‘‚๐Ÿฝ", "๐Ÿ‘‚๐Ÿพ", "๐Ÿ‘‚๐Ÿฟ", "๐Ÿฆป", "๐Ÿฆป๐Ÿป", "๐Ÿฆป๐Ÿผ", "๐Ÿฆป๐Ÿฝ", "๐Ÿฆป๐Ÿพ", "๐Ÿฆป๐Ÿฟ", "๐Ÿ‘ƒ", "๐Ÿ‘ƒ๐Ÿป", "๐Ÿ‘ƒ๐Ÿผ", "๐Ÿ‘ƒ๐Ÿฝ", "๐Ÿ‘ƒ๐Ÿพ", "๐Ÿ‘ƒ๐Ÿฟ", "๐Ÿ‘ฃ", "๐Ÿ‘", "๐Ÿ‘€", "๐Ÿซ€", "๐Ÿซ", "๐Ÿง ", "๐Ÿ—ฃ", "๐Ÿ‘ค", "๐Ÿ‘ฅ", "๐Ÿซ‚", "๐Ÿ‘ถ", "๐Ÿ‘ถ๐Ÿป", "๐Ÿ‘ถ๐Ÿผ", "๐Ÿ‘ถ๐Ÿฝ", "๐Ÿ‘ถ๐Ÿพ", "๐Ÿ‘ถ๐Ÿฟ", "๐Ÿ‘ง", "๐Ÿ‘ง๐Ÿป", "๐Ÿ‘ง๐Ÿผ", "๐Ÿ‘ง๐Ÿฝ", "๐Ÿ‘ง๐Ÿพ", "๐Ÿ‘ง๐Ÿฟ", "๐Ÿง’", "๐Ÿง’๐Ÿป", "๐Ÿง’๐Ÿผ", "๐Ÿง’๐Ÿฝ", "๐Ÿง’๐Ÿพ", "๐Ÿง’๐Ÿฟ", "๐Ÿ‘ฆ", "๐Ÿ‘ฆ๐Ÿป", "๐Ÿ‘ฆ๐Ÿผ", "๐Ÿ‘ฆ๐Ÿฝ", "๐Ÿ‘ฆ๐Ÿพ", "๐Ÿ‘ฆ๐Ÿฟ", "๐Ÿ‘ฉ", "๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿง‘", "๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿฟ", "๐Ÿ‘จ", "๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉโ€๐Ÿฆฑ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฑ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฑ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฑ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฑ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฑ", "๐Ÿง‘โ€๐Ÿฆฑ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆฑ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆฑ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆฑ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆฑ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆฑ", "๐Ÿ‘จโ€๐Ÿฆฑ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฑ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฑ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฑ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฑ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฑ", "๐Ÿ‘ฉโ€๐Ÿฆฐ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฐ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฐ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฐ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฐ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฐ", "๐Ÿง‘โ€๐Ÿฆฐ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆฐ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆฐ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆฐ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆฐ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆฐ", "๐Ÿ‘จโ€๐Ÿฆฐ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฐ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฐ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฐ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฐ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฐ", "๐Ÿ‘ฑโ€โ™€", "๐Ÿ‘ฑ๐Ÿปโ€โ™€", "๐Ÿ‘ฑ๐Ÿผโ€โ™€", "๐Ÿ‘ฑ๐Ÿฝโ€โ™€", "๐Ÿ‘ฑ๐Ÿพโ€โ™€", "๐Ÿ‘ฑ๐Ÿฟโ€โ™€", "๐Ÿ‘ฑ", "๐Ÿ‘ฑ๐Ÿป", "๐Ÿ‘ฑ๐Ÿผ", "๐Ÿ‘ฑ๐Ÿฝ", "๐Ÿ‘ฑ๐Ÿพ", "๐Ÿ‘ฑ๐Ÿฟ", "๐Ÿ‘ฑโ€โ™‚", "๐Ÿ‘ฑ๐Ÿปโ€โ™‚", "๐Ÿ‘ฑ๐Ÿผโ€โ™‚", "๐Ÿ‘ฑ๐Ÿฝโ€โ™‚", "๐Ÿ‘ฑ๐Ÿพโ€โ™‚", "๐Ÿ‘ฑ๐Ÿฟโ€โ™‚", "๐Ÿ‘ฉโ€๐Ÿฆณ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆณ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆณ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆณ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆณ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆณ", "๐Ÿง‘โ€๐Ÿฆณ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆณ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆณ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆณ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆณ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆณ", "๐Ÿ‘จโ€๐Ÿฆณ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆณ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆณ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆณ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆณ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆณ", "๐Ÿ‘ฉโ€๐Ÿฆฒ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฒ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฒ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฒ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฒ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฒ", "๐Ÿง‘โ€๐Ÿฆฒ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆฒ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆฒ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆฒ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆฒ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆฒ", "๐Ÿ‘จโ€๐Ÿฆฒ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฒ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฒ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฒ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฒ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฒ", "๐Ÿง”โ€โ™€", "๐Ÿง”๐Ÿปโ€โ™€", "๐Ÿง”๐Ÿผโ€โ™€", "๐Ÿง”๐Ÿฝโ€โ™€", "๐Ÿง”๐Ÿพโ€โ™€", "๐Ÿง”๐Ÿฟโ€โ™€", "๐Ÿง”", "๐Ÿง”๐Ÿป", "๐Ÿง”๐Ÿผ", "๐Ÿง”๐Ÿฝ", "๐Ÿง”๐Ÿพ", "๐Ÿง”๐Ÿฟ", "๐Ÿง”โ€โ™‚", "๐Ÿง”๐Ÿปโ€โ™‚", "๐Ÿง”๐Ÿผโ€โ™‚", "๐Ÿง”๐Ÿฝโ€โ™‚", "๐Ÿง”๐Ÿพโ€โ™‚", "๐Ÿง”๐Ÿฟโ€โ™‚", "๐Ÿ‘ต", "๐Ÿ‘ต๐Ÿป", "๐Ÿ‘ต๐Ÿผ", "๐Ÿ‘ต๐Ÿฝ", "๐Ÿ‘ต๐Ÿพ", "๐Ÿ‘ต๐Ÿฟ", "๐Ÿง“", "๐Ÿง“๐Ÿป", "๐Ÿง“๐Ÿผ", "๐Ÿง“๐Ÿฝ", "๐Ÿง“๐Ÿพ", "๐Ÿง“๐Ÿฟ", "๐Ÿ‘ด", "๐Ÿ‘ด๐Ÿป", "๐Ÿ‘ด๐Ÿผ", "๐Ÿ‘ด๐Ÿฝ", "๐Ÿ‘ด๐Ÿพ", "๐Ÿ‘ด๐Ÿฟ", "๐Ÿ‘ฒ", "๐Ÿ‘ฒ๐Ÿป", "๐Ÿ‘ฒ๐Ÿผ", "๐Ÿ‘ฒ๐Ÿฝ", "๐Ÿ‘ฒ๐Ÿพ", "๐Ÿ‘ฒ๐Ÿฟ", "๐Ÿ‘ณโ€โ™€", "๐Ÿ‘ณ๐Ÿปโ€โ™€", "๐Ÿ‘ณ๐Ÿผโ€โ™€", "๐Ÿ‘ณ๐Ÿฝโ€โ™€", "๐Ÿ‘ณ๐Ÿพโ€โ™€", "๐Ÿ‘ณ๐Ÿฟโ€โ™€", "๐Ÿ‘ณ", "๐Ÿ‘ณ๐Ÿป", "๐Ÿ‘ณ๐Ÿผ", "๐Ÿ‘ณ๐Ÿฝ", "๐Ÿ‘ณ๐Ÿพ", "๐Ÿ‘ณ๐Ÿฟ", "๐Ÿ‘ณโ€โ™‚", "๐Ÿ‘ณ๐Ÿปโ€โ™‚", "๐Ÿ‘ณ๐Ÿผโ€โ™‚", "๐Ÿ‘ณ๐Ÿฝโ€โ™‚", "๐Ÿ‘ณ๐Ÿพโ€โ™‚", "๐Ÿ‘ณ๐Ÿฟโ€โ™‚", "๐Ÿง•", "๐Ÿง•๐Ÿป", "๐Ÿง•๐Ÿผ", "๐Ÿง•๐Ÿฝ", "๐Ÿง•๐Ÿพ", "๐Ÿง•๐Ÿฟ", "๐Ÿ‘ฎโ€โ™€", "๐Ÿ‘ฎ๐Ÿปโ€โ™€", "๐Ÿ‘ฎ๐Ÿผโ€โ™€", "๐Ÿ‘ฎ๐Ÿฝโ€โ™€", "๐Ÿ‘ฎ๐Ÿพโ€โ™€", "๐Ÿ‘ฎ๐Ÿฟโ€โ™€", "๐Ÿ‘ฎ", "๐Ÿ‘ฎ๐Ÿป", "๐Ÿ‘ฎ๐Ÿผ", "๐Ÿ‘ฎ๐Ÿฝ", "๐Ÿ‘ฎ๐Ÿพ", "๐Ÿ‘ฎ๐Ÿฟ", "๐Ÿ‘ฎโ€โ™‚", "๐Ÿ‘ฎ๐Ÿปโ€โ™‚", "๐Ÿ‘ฎ๐Ÿผโ€โ™‚", "๐Ÿ‘ฎ๐Ÿฝโ€โ™‚", "๐Ÿ‘ฎ๐Ÿพโ€โ™‚", "๐Ÿ‘ฎ๐Ÿฟโ€โ™‚", "๐Ÿ‘ทโ€โ™€", "๐Ÿ‘ท๐Ÿปโ€โ™€", "๐Ÿ‘ท๐Ÿผโ€โ™€", "๐Ÿ‘ท๐Ÿฝโ€โ™€", "๐Ÿ‘ท๐Ÿพโ€โ™€", "๐Ÿ‘ท๐Ÿฟโ€โ™€", "๐Ÿ‘ท", "๐Ÿ‘ท๐Ÿป", "๐Ÿ‘ท๐Ÿผ", "๐Ÿ‘ท๐Ÿฝ", "๐Ÿ‘ท๐Ÿพ", "๐Ÿ‘ท๐Ÿฟ", "๐Ÿ‘ทโ€โ™‚", "๐Ÿ‘ท๐Ÿปโ€โ™‚", "๐Ÿ‘ท๐Ÿผโ€โ™‚", "๐Ÿ‘ท๐Ÿฝโ€โ™‚", "๐Ÿ‘ท๐Ÿพโ€โ™‚", "๐Ÿ‘ท๐Ÿฟโ€โ™‚", "๐Ÿ’‚โ€โ™€", "๐Ÿ’‚๐Ÿปโ€โ™€", "๐Ÿ’‚๐Ÿผโ€โ™€", "๐Ÿ’‚๐Ÿฝโ€โ™€", "๐Ÿ’‚๐Ÿพโ€โ™€", "๐Ÿ’‚๐Ÿฟโ€โ™€", "๐Ÿ’‚", "๐Ÿ’‚๐Ÿป", "๐Ÿ’‚๐Ÿผ", "๐Ÿ’‚๐Ÿฝ", "๐Ÿ’‚๐Ÿพ", "๐Ÿ’‚๐Ÿฟ", "๐Ÿ’‚โ€โ™‚", "๐Ÿ’‚๐Ÿปโ€โ™‚", "๐Ÿ’‚๐Ÿผโ€โ™‚", "๐Ÿ’‚๐Ÿฝโ€โ™‚", "๐Ÿ’‚๐Ÿพโ€โ™‚", "๐Ÿ’‚๐Ÿฟโ€โ™‚", "๐Ÿ•ตโ€โ™€", "๐Ÿ•ต๐Ÿปโ€โ™€", "๐Ÿ•ต๐Ÿผโ€โ™€", "๐Ÿ•ต๐Ÿฝโ€โ™€", "๐Ÿ•ต๐Ÿพโ€โ™€", "๐Ÿ•ต๐Ÿฟโ€โ™€", "๐Ÿ•ต", "๐Ÿ•ต๐Ÿป", "๐Ÿ•ต๐Ÿผ", "๐Ÿ•ต๐Ÿฝ", "๐Ÿ•ต๐Ÿพ", "๐Ÿ•ต๐Ÿฟ", "๐Ÿ•ตโ€โ™‚", "๐Ÿ•ต๐Ÿปโ€โ™‚", "๐Ÿ•ต๐Ÿผโ€โ™‚", "๐Ÿ•ต๐Ÿฝโ€โ™‚", "๐Ÿ•ต๐Ÿพโ€โ™‚", "๐Ÿ•ต๐Ÿฟโ€โ™‚", "๐Ÿ‘ฉโ€โš•", "๐Ÿ‘ฉ๐Ÿปโ€โš•", "๐Ÿ‘ฉ๐Ÿผโ€โš•", "๐Ÿ‘ฉ๐Ÿฝโ€โš•", "๐Ÿ‘ฉ๐Ÿพโ€โš•", "๐Ÿ‘ฉ๐Ÿฟโ€โš•", "๐Ÿง‘โ€โš•", "๐Ÿง‘๐Ÿปโ€โš•", "๐Ÿง‘๐Ÿผโ€โš•", "๐Ÿง‘๐Ÿฝโ€โš•", "๐Ÿง‘๐Ÿพโ€โš•", "๐Ÿง‘๐Ÿฟโ€โš•", "๐Ÿ‘จโ€โš•", "๐Ÿ‘จ๐Ÿปโ€โš•", "๐Ÿ‘จ๐Ÿผโ€โš•", "๐Ÿ‘จ๐Ÿฝโ€โš•", "๐Ÿ‘จ๐Ÿพโ€โš•", "๐Ÿ‘จ๐Ÿฟโ€โš•", "๐Ÿ‘ฉโ€๐ŸŒพ", "๐Ÿ‘ฉ๐Ÿปโ€๐ŸŒพ", "๐Ÿ‘ฉ๐Ÿผโ€๐ŸŒพ", "๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŒพ", "๐Ÿ‘ฉ๐Ÿพโ€๐ŸŒพ", "๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŒพ", "๐Ÿง‘โ€๐ŸŒพ", "๐Ÿง‘๐Ÿปโ€๐ŸŒพ", "๐Ÿง‘๐Ÿผโ€๐ŸŒพ", "๐Ÿง‘๐Ÿฝโ€๐ŸŒพ", "๐Ÿง‘๐Ÿพโ€๐ŸŒพ", "๐Ÿง‘๐Ÿฟโ€๐ŸŒพ", "๐Ÿ‘จโ€๐ŸŒพ", "๐Ÿ‘จ๐Ÿปโ€๐ŸŒพ", "๐Ÿ‘จ๐Ÿผโ€๐ŸŒพ", "๐Ÿ‘จ๐Ÿฝโ€๐ŸŒพ", "๐Ÿ‘จ๐Ÿพโ€๐ŸŒพ", "๐Ÿ‘จ๐Ÿฟโ€๐ŸŒพ", "๐Ÿ‘ฉโ€๐Ÿณ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿณ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿณ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿณ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿณ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿณ", "๐Ÿง‘โ€๐Ÿณ", "๐Ÿง‘๐Ÿปโ€๐Ÿณ", "๐Ÿง‘๐Ÿผโ€๐Ÿณ", "๐Ÿง‘๐Ÿฝโ€๐Ÿณ", "๐Ÿง‘๐Ÿพโ€๐Ÿณ", "๐Ÿง‘๐Ÿฟโ€๐Ÿณ", "๐Ÿ‘จโ€๐Ÿณ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿณ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿณ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿณ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿณ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿณ", "๐Ÿ‘ฉโ€๐ŸŽ“", "๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽ“", "๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽ“", "๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽ“", "๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽ“", "๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽ“", "๐Ÿง‘โ€๐ŸŽ“", "๐Ÿง‘๐Ÿปโ€๐ŸŽ“", "๐Ÿง‘๐Ÿผโ€๐ŸŽ“", "๐Ÿง‘๐Ÿฝโ€๐ŸŽ“", "๐Ÿง‘๐Ÿพโ€๐ŸŽ“", "๐Ÿง‘๐Ÿฟโ€๐ŸŽ“", "๐Ÿ‘จโ€๐ŸŽ“", "๐Ÿ‘จ๐Ÿปโ€๐ŸŽ“", "๐Ÿ‘จ๐Ÿผโ€๐ŸŽ“", "๐Ÿ‘จ๐Ÿฝโ€๐ŸŽ“", "๐Ÿ‘จ๐Ÿพโ€๐ŸŽ“", "๐Ÿ‘จ๐Ÿฟโ€๐ŸŽ“", "๐Ÿ‘ฉโ€๐ŸŽค", "๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽค", "๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽค", "๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽค", "๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽค", "๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽค", "๐Ÿง‘โ€๐ŸŽค", "๐Ÿง‘๐Ÿปโ€๐ŸŽค", "๐Ÿง‘๐Ÿผโ€๐ŸŽค", "๐Ÿง‘๐Ÿฝโ€๐ŸŽค", "๐Ÿง‘๐Ÿพโ€๐ŸŽค", "๐Ÿง‘๐Ÿฟโ€๐ŸŽค", "๐Ÿ‘จโ€๐ŸŽค", "๐Ÿ‘จ๐Ÿปโ€๐ŸŽค", "๐Ÿ‘จ๐Ÿผโ€๐ŸŽค", "๐Ÿ‘จ๐Ÿฝโ€๐ŸŽค", "๐Ÿ‘จ๐Ÿพโ€๐ŸŽค", "๐Ÿ‘จ๐Ÿฟโ€๐ŸŽค", "๐Ÿ‘ฉโ€๐Ÿซ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿซ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿซ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿซ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿซ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿซ", "๐Ÿง‘โ€๐Ÿซ", "๐Ÿง‘๐Ÿปโ€๐Ÿซ", "๐Ÿง‘๐Ÿผโ€๐Ÿซ", "๐Ÿง‘๐Ÿฝโ€๐Ÿซ", "๐Ÿง‘๐Ÿพโ€๐Ÿซ", "๐Ÿง‘๐Ÿฟโ€๐Ÿซ", "๐Ÿ‘จโ€๐Ÿซ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿซ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿซ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿซ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿซ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿซ", "๐Ÿ‘ฉโ€๐Ÿญ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿญ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿญ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿญ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿญ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿญ", "๐Ÿง‘โ€๐Ÿญ", "๐Ÿง‘๐Ÿปโ€๐Ÿญ", "๐Ÿง‘๐Ÿผโ€๐Ÿญ", "๐Ÿง‘๐Ÿฝโ€๐Ÿญ", "๐Ÿง‘๐Ÿพโ€๐Ÿญ", "๐Ÿง‘๐Ÿฟโ€๐Ÿญ", "๐Ÿ‘จโ€๐Ÿญ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿญ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿญ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿญ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿญ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿญ", "๐Ÿ‘ฉโ€๐Ÿ’ป", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ป", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ป", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ’ป", "๐Ÿง‘โ€๐Ÿ’ป", "๐Ÿง‘๐Ÿปโ€๐Ÿ’ป", "๐Ÿง‘๐Ÿผโ€๐Ÿ’ป", "๐Ÿง‘๐Ÿฝโ€๐Ÿ’ป", "๐Ÿง‘๐Ÿพโ€๐Ÿ’ป", "๐Ÿง‘๐Ÿฟโ€๐Ÿ’ป", "๐Ÿ‘จโ€๐Ÿ’ป", "๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป", "๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ป", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป", "๐Ÿ‘จ๐Ÿพโ€๐Ÿ’ป", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ป", "๐Ÿ‘ฉโ€๐Ÿ’ผ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ผ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ผ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ผ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ผ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ’ผ", "๐Ÿง‘โ€๐Ÿ’ผ", "๐Ÿง‘๐Ÿปโ€๐Ÿ’ผ", "๐Ÿง‘๐Ÿผโ€๐Ÿ’ผ", "๐Ÿง‘๐Ÿฝโ€๐Ÿ’ผ", "๐Ÿง‘๐Ÿพโ€๐Ÿ’ผ", "๐Ÿง‘๐Ÿฟโ€๐Ÿ’ผ", "๐Ÿ‘จโ€๐Ÿ’ผ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ผ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ผ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ผ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿ’ผ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ผ", "๐Ÿ‘ฉโ€๐Ÿ”ง", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ง", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ”ง", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ”ง", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ”ง", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ”ง", "๐Ÿง‘โ€๐Ÿ”ง", "๐Ÿง‘๐Ÿปโ€๐Ÿ”ง", "๐Ÿง‘๐Ÿผโ€๐Ÿ”ง", "๐Ÿง‘๐Ÿฝโ€๐Ÿ”ง", "๐Ÿง‘๐Ÿพโ€๐Ÿ”ง", "๐Ÿง‘๐Ÿฟโ€๐Ÿ”ง", "๐Ÿ‘จโ€๐Ÿ”ง", "๐Ÿ‘จ๐Ÿปโ€๐Ÿ”ง", "๐Ÿ‘จ๐Ÿผโ€๐Ÿ”ง", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿ”ง", "๐Ÿ‘จ๐Ÿพโ€๐Ÿ”ง", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿ”ง", "๐Ÿ‘ฉโ€๐Ÿ”ฌ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ฌ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ”ฌ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ”ฌ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ”ฌ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ”ฌ", "๐Ÿง‘โ€๐Ÿ”ฌ", "๐Ÿง‘๐Ÿปโ€๐Ÿ”ฌ", "๐Ÿง‘๐Ÿผโ€๐Ÿ”ฌ", "๐Ÿง‘๐Ÿฝโ€๐Ÿ”ฌ", "๐Ÿง‘๐Ÿพโ€๐Ÿ”ฌ", "๐Ÿง‘๐Ÿฟโ€๐Ÿ”ฌ", "๐Ÿ‘จโ€๐Ÿ”ฌ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿ”ฌ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿ”ฌ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿ”ฌ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿ”ฌ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿ”ฌ", "๐Ÿ‘ฉโ€๐ŸŽจ", "๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽจ", "๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽจ", "๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽจ", "๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽจ", "๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽจ", "๐Ÿง‘โ€๐ŸŽจ", "๐Ÿง‘๐Ÿปโ€๐ŸŽจ", "๐Ÿง‘๐Ÿผโ€๐ŸŽจ", "๐Ÿง‘๐Ÿฝโ€๐ŸŽจ", "๐Ÿง‘๐Ÿพโ€๐ŸŽจ", "๐Ÿง‘๐Ÿฟโ€๐ŸŽจ", "๐Ÿ‘จโ€๐ŸŽจ", "๐Ÿ‘จ๐Ÿปโ€๐ŸŽจ", "๐Ÿ‘จ๐Ÿผโ€๐ŸŽจ", "๐Ÿ‘จ๐Ÿฝโ€๐ŸŽจ", "๐Ÿ‘จ๐Ÿพโ€๐ŸŽจ", "๐Ÿ‘จ๐Ÿฟโ€๐ŸŽจ", "๐Ÿ‘ฉโ€๐Ÿš’", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿš’", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿš’", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿš’", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿš’", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿš’", "๐Ÿง‘โ€๐Ÿš’", "๐Ÿง‘๐Ÿปโ€๐Ÿš’", "๐Ÿง‘๐Ÿผโ€๐Ÿš’", "๐Ÿง‘๐Ÿฝโ€๐Ÿš’", "๐Ÿง‘๐Ÿพโ€๐Ÿš’", "๐Ÿง‘๐Ÿฟโ€๐Ÿš’", "๐Ÿ‘จโ€๐Ÿš’", "๐Ÿ‘จ๐Ÿปโ€๐Ÿš’", "๐Ÿ‘จ๐Ÿผโ€๐Ÿš’", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿš’", "๐Ÿ‘จ๐Ÿพโ€๐Ÿš’", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿš’", "๐Ÿ‘ฉโ€โœˆ", "๐Ÿ‘ฉ๐Ÿปโ€โœˆ", "๐Ÿ‘ฉ๐Ÿผโ€โœˆ", "๐Ÿ‘ฉ๐Ÿฝโ€โœˆ", "๐Ÿ‘ฉ๐Ÿพโ€โœˆ", "๐Ÿ‘ฉ๐Ÿฟโ€โœˆ", "๐Ÿง‘โ€โœˆ", "๐Ÿง‘๐Ÿปโ€โœˆ", "๐Ÿง‘๐Ÿผโ€โœˆ", "๐Ÿง‘๐Ÿฝโ€โœˆ", "๐Ÿง‘๐Ÿพโ€โœˆ", "๐Ÿง‘๐Ÿฟโ€โœˆ", "๐Ÿ‘จโ€โœˆ", "๐Ÿ‘จ๐Ÿปโ€โœˆ", "๐Ÿ‘จ๐Ÿผโ€โœˆ", "๐Ÿ‘จ๐Ÿฝโ€โœˆ", "๐Ÿ‘จ๐Ÿพโ€โœˆ", "๐Ÿ‘จ๐Ÿฟโ€โœˆ", "๐Ÿ‘ฉโ€๐Ÿš€", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿš€", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿš€", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿš€", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿš€", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿš€", "๐Ÿง‘โ€๐Ÿš€", "๐Ÿง‘๐Ÿปโ€๐Ÿš€", "๐Ÿง‘๐Ÿผโ€๐Ÿš€", "๐Ÿง‘๐Ÿฝโ€๐Ÿš€", "๐Ÿง‘๐Ÿพโ€๐Ÿš€", "๐Ÿง‘๐Ÿฟโ€๐Ÿš€", "๐Ÿ‘จโ€๐Ÿš€", "๐Ÿ‘จ๐Ÿปโ€๐Ÿš€", "๐Ÿ‘จ๐Ÿผโ€๐Ÿš€", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿš€", "๐Ÿ‘จ๐Ÿพโ€๐Ÿš€", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿš€", "๐Ÿ‘ฉโ€โš–", "๐Ÿ‘ฉ๐Ÿปโ€โš–", "๐Ÿ‘ฉ๐Ÿผโ€โš–", "๐Ÿ‘ฉ๐Ÿฝโ€โš–", "๐Ÿ‘ฉ๐Ÿพโ€โš–", "๐Ÿ‘ฉ๐Ÿฟโ€โš–", "๐Ÿง‘โ€โš–", "๐Ÿง‘๐Ÿปโ€โš–", "๐Ÿง‘๐Ÿผโ€โš–", "๐Ÿง‘๐Ÿฝโ€โš–", "๐Ÿง‘๐Ÿพโ€โš–", "๐Ÿง‘๐Ÿฟโ€โš–", "๐Ÿ‘จโ€โš–", "๐Ÿ‘จ๐Ÿปโ€โš–", "๐Ÿ‘จ๐Ÿผโ€โš–", "๐Ÿ‘จ๐Ÿฝโ€โš–", "๐Ÿ‘จ๐Ÿพโ€โš–", "๐Ÿ‘จ๐Ÿฟโ€โš–", "๐Ÿ‘ฐโ€โ™€", "๐Ÿ‘ฐ๐Ÿปโ€โ™€", "๐Ÿ‘ฐ๐Ÿผโ€โ™€", "๐Ÿ‘ฐ๐Ÿฝโ€โ™€", "๐Ÿ‘ฐ๐Ÿพโ€โ™€", "๐Ÿ‘ฐ๐Ÿฟโ€โ™€", "๐Ÿ‘ฐ", "๐Ÿ‘ฐ๐Ÿป", "๐Ÿ‘ฐ๐Ÿผ", "๐Ÿ‘ฐ๐Ÿฝ", "๐Ÿ‘ฐ๐Ÿพ", "๐Ÿ‘ฐ๐Ÿฟ", "๐Ÿ‘ฐโ€โ™‚", "๐Ÿ‘ฐ๐Ÿปโ€โ™‚", "๐Ÿ‘ฐ๐Ÿผโ€โ™‚", "๐Ÿ‘ฐ๐Ÿฝโ€โ™‚", "๐Ÿ‘ฐ๐Ÿพโ€โ™‚", "๐Ÿ‘ฐ๐Ÿฟโ€โ™‚", "๐Ÿคตโ€โ™€", "๐Ÿคต๐Ÿปโ€โ™€", "๐Ÿคต๐Ÿผโ€โ™€", "๐Ÿคต๐Ÿฝโ€โ™€", "๐Ÿคต๐Ÿพโ€โ™€", "๐Ÿคต๐Ÿฟโ€โ™€", "๐Ÿคต", "๐Ÿคต๐Ÿป", "๐Ÿคต๐Ÿผ", "๐Ÿคต๐Ÿฝ", "๐Ÿคต๐Ÿพ", "๐Ÿคต๐Ÿฟ", "๐Ÿคตโ€โ™‚", "๐Ÿคต๐Ÿปโ€โ™‚", "๐Ÿคต๐Ÿผโ€โ™‚", "๐Ÿคต๐Ÿฝโ€โ™‚", "๐Ÿคต๐Ÿพโ€โ™‚", "๐Ÿคต๐Ÿฟโ€โ™‚", "๐Ÿ‘ธ", "๐Ÿ‘ธ๐Ÿป", "๐Ÿ‘ธ๐Ÿผ", "๐Ÿ‘ธ๐Ÿฝ", "๐Ÿ‘ธ๐Ÿพ", "๐Ÿ‘ธ๐Ÿฟ", "๐Ÿซ…", "๐Ÿซ…๐Ÿป", "๐Ÿซ…๐Ÿผ", "๐Ÿซ…๐Ÿฝ", "๐Ÿซ…๐Ÿพ", "๐Ÿซ…๐Ÿฟ", "๐Ÿคด", "๐Ÿคด๐Ÿป", "๐Ÿคด๐Ÿผ", "๐Ÿคด๐Ÿฝ", "๐Ÿคด๐Ÿพ", "๐Ÿคด๐Ÿฟ", "๐Ÿฅท", "๐Ÿฅท๐Ÿป", "๐Ÿฅท๐Ÿผ", "๐Ÿฅท๐Ÿฝ", "๐Ÿฅท๐Ÿพ", "๐Ÿฅท๐Ÿฟ", "๐Ÿฆธโ€โ™€", "๐Ÿฆธ๐Ÿปโ€โ™€", "๐Ÿฆธ๐Ÿผโ€โ™€", "๐Ÿฆธ๐Ÿฝโ€โ™€", "๐Ÿฆธ๐Ÿพโ€โ™€", "๐Ÿฆธ๐Ÿฟโ€โ™€", "๐Ÿฆธ", "๐Ÿฆธ๐Ÿป", "๐Ÿฆธ๐Ÿผ", "๐Ÿฆธ๐Ÿฝ", "๐Ÿฆธ๐Ÿพ", "๐Ÿฆธ๐Ÿฟ", "๐Ÿฆธโ€โ™‚", "๐Ÿฆธ๐Ÿปโ€โ™‚", "๐Ÿฆธ๐Ÿผโ€โ™‚", "๐Ÿฆธ๐Ÿฝโ€โ™‚", "๐Ÿฆธ๐Ÿพโ€โ™‚", "๐Ÿฆธ๐Ÿฟโ€โ™‚", "๐Ÿฆนโ€โ™€", "๐Ÿฆน๐Ÿปโ€โ™€", "๐Ÿฆน๐Ÿผโ€โ™€", "๐Ÿฆน๐Ÿฝโ€โ™€", "๐Ÿฆน๐Ÿพโ€โ™€", "๐Ÿฆน๐Ÿฟโ€โ™€", "๐Ÿฆน", "๐Ÿฆน๐Ÿป", "๐Ÿฆน๐Ÿผ", "๐Ÿฆน๐Ÿฝ", "๐Ÿฆน๐Ÿพ", "๐Ÿฆน๐Ÿฟ", "๐Ÿฆนโ€โ™‚", "๐Ÿฆน๐Ÿปโ€โ™‚", "๐Ÿฆน๐Ÿผโ€โ™‚", "๐Ÿฆน๐Ÿฝโ€โ™‚", "๐Ÿฆน๐Ÿพโ€โ™‚", "๐Ÿฆน๐Ÿฟโ€โ™‚", "๐Ÿคถ", "๐Ÿคถ๐Ÿป", "๐Ÿคถ๐Ÿผ", "๐Ÿคถ๐Ÿฝ", "๐Ÿคถ๐Ÿพ", "๐Ÿคถ๐Ÿฟ", "๐Ÿง‘โ€๐ŸŽ„", "๐Ÿง‘๐Ÿปโ€๐ŸŽ„", "๐Ÿง‘๐Ÿผโ€๐ŸŽ„", "๐Ÿง‘๐Ÿฝโ€๐ŸŽ„", "๐Ÿง‘๐Ÿพโ€๐ŸŽ„", "๐Ÿง‘๐Ÿฟโ€๐ŸŽ„", "๐ŸŽ…", "๐ŸŽ…๐Ÿป", "๐ŸŽ…๐Ÿผ", "๐ŸŽ…๐Ÿฝ", "๐ŸŽ…๐Ÿพ", "๐ŸŽ…๐Ÿฟ", "๐Ÿง™โ€โ™€", "๐Ÿง™๐Ÿปโ€โ™€", "๐Ÿง™๐Ÿผโ€โ™€", "๐Ÿง™๐Ÿฝโ€โ™€", "๐Ÿง™๐Ÿพโ€โ™€", "๐Ÿง™๐Ÿฟโ€โ™€", "๐Ÿง™", "๐Ÿง™๐Ÿป", "๐Ÿง™๐Ÿผ", "๐Ÿง™๐Ÿฝ", "๐Ÿง™๐Ÿพ", "๐Ÿง™๐Ÿฟ", "๐Ÿง™โ€โ™‚", "๐Ÿง™๐Ÿปโ€โ™‚", "๐Ÿง™๐Ÿผโ€โ™‚", "๐Ÿง™๐Ÿฝโ€โ™‚", "๐Ÿง™๐Ÿพโ€โ™‚", "๐Ÿง™๐Ÿฟโ€โ™‚", "๐Ÿงโ€โ™€", "๐Ÿง๐Ÿปโ€โ™€", "๐Ÿง๐Ÿผโ€โ™€", "๐Ÿง๐Ÿฝโ€โ™€", "๐Ÿง๐Ÿพโ€โ™€", "๐Ÿง๐Ÿฟโ€โ™€", "๐Ÿง", "๐Ÿง๐Ÿป", "๐Ÿง๐Ÿผ", "๐Ÿง๐Ÿฝ", "๐Ÿง๐Ÿพ", "๐Ÿง๐Ÿฟ", "๐Ÿงโ€โ™‚", "๐Ÿง๐Ÿปโ€โ™‚", "๐Ÿง๐Ÿผโ€โ™‚", "๐Ÿง๐Ÿฝโ€โ™‚", "๐Ÿง๐Ÿพโ€โ™‚", "๐Ÿง๐Ÿฟโ€โ™‚", "๐ŸงŒ", "๐Ÿง›โ€โ™€", "๐Ÿง›๐Ÿปโ€โ™€", "๐Ÿง›๐Ÿผโ€โ™€", "๐Ÿง›๐Ÿฝโ€โ™€", "๐Ÿง›๐Ÿพโ€โ™€", "๐Ÿง›๐Ÿฟโ€โ™€", "๐Ÿง›", "๐Ÿง›๐Ÿป", "๐Ÿง›๐Ÿผ", "๐Ÿง›๐Ÿฝ", "๐Ÿง›๐Ÿพ", "๐Ÿง›๐Ÿฟ", "๐Ÿง›โ€โ™‚", "๐Ÿง›๐Ÿปโ€โ™‚", "๐Ÿง›๐Ÿผโ€โ™‚", "๐Ÿง›๐Ÿฝโ€โ™‚", "๐Ÿง›๐Ÿพโ€โ™‚", "๐Ÿง›๐Ÿฟโ€โ™‚", "๐ŸงŸโ€โ™€", "๐ŸงŸ", "๐ŸงŸโ€โ™‚", "๐Ÿงžโ€โ™€", "๐Ÿงž", "๐Ÿงžโ€โ™‚", "๐Ÿงœโ€โ™€", "๐Ÿงœ๐Ÿปโ€โ™€", "๐Ÿงœ๐Ÿผโ€โ™€", "๐Ÿงœ๐Ÿฝโ€โ™€", "๐Ÿงœ๐Ÿพโ€โ™€", "๐Ÿงœ๐Ÿฟโ€โ™€", "๐Ÿงœ", "๐Ÿงœ๐Ÿป", "๐Ÿงœ๐Ÿผ", "๐Ÿงœ๐Ÿฝ", "๐Ÿงœ๐Ÿพ", "๐Ÿงœ๐Ÿฟ", "๐Ÿงœโ€โ™‚", "๐Ÿงœ๐Ÿปโ€โ™‚", "๐Ÿงœ๐Ÿผโ€โ™‚", "๐Ÿงœ๐Ÿฝโ€โ™‚", "๐Ÿงœ๐Ÿพโ€โ™‚", "๐Ÿงœ๐Ÿฟโ€โ™‚", "๐Ÿงšโ€โ™€", "๐Ÿงš๐Ÿปโ€โ™€", "๐Ÿงš๐Ÿผโ€โ™€", "๐Ÿงš๐Ÿฝโ€โ™€", "๐Ÿงš๐Ÿพโ€โ™€", "๐Ÿงš๐Ÿฟโ€โ™€", "๐Ÿงš", "๐Ÿงš๐Ÿป", "๐Ÿงš๐Ÿผ", "๐Ÿงš๐Ÿฝ", "๐Ÿงš๐Ÿพ", "๐Ÿงš๐Ÿฟ", "๐Ÿงšโ€โ™‚", "๐Ÿงš๐Ÿปโ€โ™‚", "๐Ÿงš๐Ÿผโ€โ™‚", "๐Ÿงš๐Ÿฝโ€โ™‚", "๐Ÿงš๐Ÿพโ€โ™‚", "๐Ÿงš๐Ÿฟโ€โ™‚", "๐Ÿ‘ผ", "๐Ÿ‘ผ๐Ÿป", "๐Ÿ‘ผ๐Ÿผ", "๐Ÿ‘ผ๐Ÿฝ", "๐Ÿ‘ผ๐Ÿพ", "๐Ÿ‘ผ๐Ÿฟ", "๐Ÿคฐ", "๐Ÿคฐ๐Ÿป", "๐Ÿคฐ๐Ÿผ", "๐Ÿคฐ๐Ÿฝ", "๐Ÿคฐ๐Ÿพ", "๐Ÿคฐ๐Ÿฟ", "๐Ÿซ„", "๐Ÿซ„๐Ÿป", "๐Ÿซ„๐Ÿผ", "๐Ÿซ„๐Ÿฝ", "๐Ÿซ„๐Ÿพ", "๐Ÿซ„๐Ÿฟ", "๐Ÿซƒ", "๐Ÿซƒ๐Ÿป", "๐Ÿซƒ๐Ÿผ", "๐Ÿซƒ๐Ÿฝ", "๐Ÿซƒ๐Ÿพ", "๐Ÿซƒ๐Ÿฟ", "๐Ÿคฑ", "๐Ÿคฑ๐Ÿป", "๐Ÿคฑ๐Ÿผ", "๐Ÿคฑ๐Ÿฝ", "๐Ÿคฑ๐Ÿพ", "๐Ÿคฑ๐Ÿฟ", "๐Ÿ‘ฉโ€๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿผ", "๐Ÿง‘โ€๐Ÿผ", "๐Ÿง‘๐Ÿปโ€๐Ÿผ", "๐Ÿง‘๐Ÿผโ€๐Ÿผ", "๐Ÿง‘๐Ÿฝโ€๐Ÿผ", "๐Ÿง‘๐Ÿพโ€๐Ÿผ", "๐Ÿง‘๐Ÿฟโ€๐Ÿผ", "๐Ÿ‘จโ€๐Ÿผ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿผ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿผ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿผ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿผ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿผ", "๐Ÿ™‡โ€โ™€", "๐Ÿ™‡๐Ÿปโ€โ™€", "๐Ÿ™‡๐Ÿผโ€โ™€", "๐Ÿ™‡๐Ÿฝโ€โ™€", "๐Ÿ™‡๐Ÿพโ€โ™€", "๐Ÿ™‡๐Ÿฟโ€โ™€", "๐Ÿ™‡", "๐Ÿ™‡๐Ÿป", "๐Ÿ™‡๐Ÿผ", "๐Ÿ™‡๐Ÿฝ", "๐Ÿ™‡๐Ÿพ", "๐Ÿ™‡๐Ÿฟ", "๐Ÿ™‡โ€โ™‚", "๐Ÿ™‡๐Ÿปโ€โ™‚", "๐Ÿ™‡๐Ÿผโ€โ™‚", "๐Ÿ™‡๐Ÿฝโ€โ™‚", "๐Ÿ™‡๐Ÿพโ€โ™‚", "๐Ÿ™‡๐Ÿฟโ€โ™‚", "๐Ÿ’โ€โ™€", "๐Ÿ’๐Ÿปโ€โ™€", "๐Ÿ’๐Ÿผโ€โ™€", "๐Ÿ’๐Ÿฝโ€โ™€", "๐Ÿ’๐Ÿพโ€โ™€", "๐Ÿ’๐Ÿฟโ€โ™€", "๐Ÿ’", "๐Ÿ’๐Ÿป", "๐Ÿ’๐Ÿผ", "๐Ÿ’๐Ÿฝ", "๐Ÿ’๐Ÿพ", "๐Ÿ’๐Ÿฟ", "๐Ÿ’โ€โ™‚", "๐Ÿ’๐Ÿปโ€โ™‚", "๐Ÿ’๐Ÿผโ€โ™‚", "๐Ÿ’๐Ÿฝโ€โ™‚", "๐Ÿ’๐Ÿพโ€โ™‚", "๐Ÿ’๐Ÿฟโ€โ™‚", "๐Ÿ™…โ€โ™€", "๐Ÿ™…๐Ÿปโ€โ™€", "๐Ÿ™…๐Ÿผโ€โ™€", "๐Ÿ™…๐Ÿฝโ€โ™€", "๐Ÿ™…๐Ÿพโ€โ™€", "๐Ÿ™…๐Ÿฟโ€โ™€", "๐Ÿ™…", "๐Ÿ™…๐Ÿป", "๐Ÿ™…๐Ÿผ", "๐Ÿ™…๐Ÿฝ", "๐Ÿ™…๐Ÿพ", "๐Ÿ™…๐Ÿฟ", "๐Ÿ™…โ€โ™‚", "๐Ÿ™…๐Ÿปโ€โ™‚", "๐Ÿ™…๐Ÿผโ€โ™‚", "๐Ÿ™…๐Ÿฝโ€โ™‚", "๐Ÿ™…๐Ÿพโ€โ™‚", "๐Ÿ™…๐Ÿฟโ€โ™‚", "๐Ÿ™†โ€โ™€", "๐Ÿ™†๐Ÿปโ€โ™€", "๐Ÿ™†๐Ÿผโ€โ™€", "๐Ÿ™†๐Ÿฝโ€โ™€", "๐Ÿ™†๐Ÿพโ€โ™€", "๐Ÿ™†๐Ÿฟโ€โ™€", "๐Ÿ™†", "๐Ÿ™†๐Ÿป", "๐Ÿ™†๐Ÿผ", "๐Ÿ™†๐Ÿฝ", "๐Ÿ™†๐Ÿพ", "๐Ÿ™†๐Ÿฟ", "๐Ÿ™†โ€โ™‚", "๐Ÿ™†๐Ÿปโ€โ™‚", "๐Ÿ™†๐Ÿผโ€โ™‚", "๐Ÿ™†๐Ÿฝโ€โ™‚", "๐Ÿ™†๐Ÿพโ€โ™‚", "๐Ÿ™†๐Ÿฟโ€โ™‚", "๐Ÿ™‹โ€โ™€", "๐Ÿ™‹๐Ÿปโ€โ™€", "๐Ÿ™‹๐Ÿผโ€โ™€", "๐Ÿ™‹๐Ÿฝโ€โ™€", "๐Ÿ™‹๐Ÿพโ€โ™€", "๐Ÿ™‹๐Ÿฟโ€โ™€", "๐Ÿ™‹", "๐Ÿ™‹๐Ÿป", "๐Ÿ™‹๐Ÿผ", "๐Ÿ™‹๐Ÿฝ", "๐Ÿ™‹๐Ÿพ", "๐Ÿ™‹๐Ÿฟ", "๐Ÿ™‹โ€โ™‚", "๐Ÿ™‹๐Ÿปโ€โ™‚", "๐Ÿ™‹๐Ÿผโ€โ™‚", "๐Ÿ™‹๐Ÿฝโ€โ™‚", "๐Ÿ™‹๐Ÿพโ€โ™‚", "๐Ÿ™‹๐Ÿฟโ€โ™‚", "๐Ÿงโ€โ™€", "๐Ÿง๐Ÿปโ€โ™€", "๐Ÿง๐Ÿผโ€โ™€", "๐Ÿง๐Ÿฝโ€โ™€", "๐Ÿง๐Ÿพโ€โ™€", "๐Ÿง๐Ÿฟโ€โ™€", "๐Ÿง", "๐Ÿง๐Ÿป", "๐Ÿง๐Ÿผ", "๐Ÿง๐Ÿฝ", "๐Ÿง๐Ÿพ", "๐Ÿง๐Ÿฟ", "๐Ÿงโ€โ™‚", "๐Ÿง๐Ÿปโ€โ™‚", "๐Ÿง๐Ÿผโ€โ™‚", "๐Ÿง๐Ÿฝโ€โ™‚", "๐Ÿง๐Ÿพโ€โ™‚", "๐Ÿง๐Ÿฟโ€โ™‚", "๐Ÿคฆโ€โ™€", "๐Ÿคฆ๐Ÿปโ€โ™€", "๐Ÿคฆ๐Ÿผโ€โ™€", "๐Ÿคฆ๐Ÿฝโ€โ™€", "๐Ÿคฆ๐Ÿพโ€โ™€", "๐Ÿคฆ๐Ÿฟโ€โ™€", "๐Ÿคฆ", "๐Ÿคฆ๐Ÿป", "๐Ÿคฆ๐Ÿผ", "๐Ÿคฆ๐Ÿฝ", "๐Ÿคฆ๐Ÿพ", "๐Ÿคฆ๐Ÿฟ", "๐Ÿคฆโ€โ™‚", "๐Ÿคฆ๐Ÿปโ€โ™‚", "๐Ÿคฆ๐Ÿผโ€โ™‚", "๐Ÿคฆ๐Ÿฝโ€โ™‚", "๐Ÿคฆ๐Ÿพโ€โ™‚", "๐Ÿคฆ๐Ÿฟโ€โ™‚", "๐Ÿคทโ€โ™€", "๐Ÿคท๐Ÿปโ€โ™€", "๐Ÿคท๐Ÿผโ€โ™€", "๐Ÿคท๐Ÿฝโ€โ™€", "๐Ÿคท๐Ÿพโ€โ™€", "๐Ÿคท๐Ÿฟโ€โ™€", "๐Ÿคท", "๐Ÿคท๐Ÿป", "๐Ÿคท๐Ÿผ", "๐Ÿคท๐Ÿฝ", "๐Ÿคท๐Ÿพ", "๐Ÿคท๐Ÿฟ", "๐Ÿคทโ€โ™‚", "๐Ÿคท๐Ÿปโ€โ™‚", "๐Ÿคท๐Ÿผโ€โ™‚", "๐Ÿคท๐Ÿฝโ€โ™‚", "๐Ÿคท๐Ÿพโ€โ™‚", "๐Ÿคท๐Ÿฟโ€โ™‚", "๐Ÿ™Žโ€โ™€", "๐Ÿ™Ž๐Ÿปโ€โ™€", "๐Ÿ™Ž๐Ÿผโ€โ™€", "๐Ÿ™Ž๐Ÿฝโ€โ™€", "๐Ÿ™Ž๐Ÿพโ€โ™€", "๐Ÿ™Ž๐Ÿฟโ€โ™€", "๐Ÿ™Ž", "๐Ÿ™Ž๐Ÿป", "๐Ÿ™Ž๐Ÿผ", "๐Ÿ™Ž๐Ÿฝ", "๐Ÿ™Ž๐Ÿพ", "๐Ÿ™Ž๐Ÿฟ", "๐Ÿ™Žโ€โ™‚", "๐Ÿ™Ž๐Ÿปโ€โ™‚", "๐Ÿ™Ž๐Ÿผโ€โ™‚", "๐Ÿ™Ž๐Ÿฝโ€โ™‚", "๐Ÿ™Ž๐Ÿพโ€โ™‚", "๐Ÿ™Ž๐Ÿฟโ€โ™‚", "๐Ÿ™โ€โ™€", "๐Ÿ™๐Ÿปโ€โ™€", "๐Ÿ™๐Ÿผโ€โ™€", "๐Ÿ™๐Ÿฝโ€โ™€", "๐Ÿ™๐Ÿพโ€โ™€", "๐Ÿ™๐Ÿฟโ€โ™€", "๐Ÿ™", "๐Ÿ™๐Ÿป", "๐Ÿ™๐Ÿผ", "๐Ÿ™๐Ÿฝ", "๐Ÿ™๐Ÿพ", "๐Ÿ™๐Ÿฟ", "๐Ÿ™โ€โ™‚", "๐Ÿ™๐Ÿปโ€โ™‚", "๐Ÿ™๐Ÿผโ€โ™‚", "๐Ÿ™๐Ÿฝโ€โ™‚", "๐Ÿ™๐Ÿพโ€โ™‚", "๐Ÿ™๐Ÿฟโ€โ™‚", "๐Ÿ’‡โ€โ™€", "๐Ÿ’‡๐Ÿปโ€โ™€", "๐Ÿ’‡๐Ÿผโ€โ™€", "๐Ÿ’‡๐Ÿฝโ€โ™€", "๐Ÿ’‡๐Ÿพโ€โ™€", "๐Ÿ’‡๐Ÿฟโ€โ™€", "๐Ÿ’‡", "๐Ÿ’‡๐Ÿป", "๐Ÿ’‡๐Ÿผ", "๐Ÿ’‡๐Ÿฝ", "๐Ÿ’‡๐Ÿพ", "๐Ÿ’‡๐Ÿฟ", "๐Ÿ’‡โ€โ™‚", "๐Ÿ’‡๐Ÿปโ€โ™‚", "๐Ÿ’‡๐Ÿผโ€โ™‚", "๐Ÿ’‡๐Ÿฝโ€โ™‚", "๐Ÿ’‡๐Ÿพโ€โ™‚", "๐Ÿ’‡๐Ÿฟโ€โ™‚", "๐Ÿ’†โ€โ™€", "๐Ÿ’†๐Ÿปโ€โ™€", "๐Ÿ’†๐Ÿผโ€โ™€", "๐Ÿ’†๐Ÿฝโ€โ™€", "๐Ÿ’†๐Ÿพโ€โ™€", "๐Ÿ’†๐Ÿฟโ€โ™€", "๐Ÿ’†", "๐Ÿ’†๐Ÿป", "๐Ÿ’†๐Ÿผ", "๐Ÿ’†๐Ÿฝ", "๐Ÿ’†๐Ÿพ", "๐Ÿ’†๐Ÿฟ", "๐Ÿ’†โ€โ™‚", "๐Ÿ’†๐Ÿปโ€โ™‚", "๐Ÿ’†๐Ÿผโ€โ™‚", "๐Ÿ’†๐Ÿฝโ€โ™‚", "๐Ÿ’†๐Ÿพโ€โ™‚", "๐Ÿ’†๐Ÿฟโ€โ™‚", "๐Ÿง–โ€โ™€", "๐Ÿง–๐Ÿปโ€โ™€", "๐Ÿง–๐Ÿผโ€โ™€", "๐Ÿง–๐Ÿฝโ€โ™€", "๐Ÿง–๐Ÿพโ€โ™€", "๐Ÿง–๐Ÿฟโ€โ™€", "๐Ÿง–", "๐Ÿง–๐Ÿป", "๐Ÿง–๐Ÿผ", "๐Ÿง–๐Ÿฝ", "๐Ÿง–๐Ÿพ", "๐Ÿง–๐Ÿฟ", "๐Ÿง–โ€โ™‚", "๐Ÿง–๐Ÿปโ€โ™‚", "๐Ÿง–๐Ÿผโ€โ™‚", "๐Ÿง–๐Ÿฝโ€โ™‚", "๐Ÿง–๐Ÿพโ€โ™‚", "๐Ÿง–๐Ÿฟโ€โ™‚", "๐Ÿ’…", "๐Ÿ’…๐Ÿป", "๐Ÿ’…๐Ÿผ", "๐Ÿ’…๐Ÿฝ", "๐Ÿ’…๐Ÿพ", "๐Ÿ’…๐Ÿฟ", "๐Ÿคณ", "๐Ÿคณ๐Ÿป", "๐Ÿคณ๐Ÿผ", "๐Ÿคณ๐Ÿฝ", "๐Ÿคณ๐Ÿพ", "๐Ÿคณ๐Ÿฟ", "๐Ÿ’ƒ", "๐Ÿ’ƒ๐Ÿป", "๐Ÿ’ƒ๐Ÿผ", "๐Ÿ’ƒ๐Ÿฝ", "๐Ÿ’ƒ๐Ÿพ", "๐Ÿ’ƒ๐Ÿฟ", "๐Ÿ•บ", "๐Ÿ•บ๐Ÿป", "๐Ÿ•บ๐Ÿผ", "๐Ÿ•บ๐Ÿฝ", "๐Ÿ•บ๐Ÿพ", "๐Ÿ•บ๐Ÿฟ", "๐Ÿ‘ฏโ€โ™€", "๐Ÿ‘ฏ", "๐Ÿ‘ฏโ€โ™‚", "๐Ÿ•ด", "๐Ÿ•ด๐Ÿป", "๐Ÿ•ด๐Ÿผ", "๐Ÿ•ด๐Ÿฝ", "๐Ÿ•ด๐Ÿพ", "๐Ÿ•ด๐Ÿฟ", "๐Ÿ‘ฉโ€๐Ÿฆฝ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฝ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฝ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฝ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฝ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฝ", "๐Ÿง‘โ€๐Ÿฆฝ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆฝ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆฝ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆฝ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆฝ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆฝ", "๐Ÿ‘จโ€๐Ÿฆฝ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฝ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฝ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฝ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฝ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฝ", "๐Ÿ‘ฉโ€๐Ÿฆผ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆผ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆผ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆผ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆผ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆผ", "๐Ÿง‘โ€๐Ÿฆผ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆผ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆผ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆผ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆผ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆผ", "๐Ÿ‘จโ€๐Ÿฆผ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆผ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆผ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆผ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆผ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆผ", "๐Ÿšถโ€โ™€", "๐Ÿšถ๐Ÿปโ€โ™€", "๐Ÿšถ๐Ÿผโ€โ™€", "๐Ÿšถ๐Ÿฝโ€โ™€", "๐Ÿšถ๐Ÿพโ€โ™€", "๐Ÿšถ๐Ÿฟโ€โ™€", "๐Ÿšถ", "๐Ÿšถ๐Ÿป", "๐Ÿšถ๐Ÿผ", "๐Ÿšถ๐Ÿฝ", "๐Ÿšถ๐Ÿพ", "๐Ÿšถ๐Ÿฟ", "๐Ÿšถโ€โ™‚", "๐Ÿšถ๐Ÿปโ€โ™‚", "๐Ÿšถ๐Ÿผโ€โ™‚", "๐Ÿšถ๐Ÿฝโ€โ™‚", "๐Ÿšถ๐Ÿพโ€โ™‚", "๐Ÿšถ๐Ÿฟโ€โ™‚", "๐Ÿ‘ฉโ€๐Ÿฆฏ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฏ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฏ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฏ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฏ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฏ", "๐Ÿง‘โ€๐Ÿฆฏ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆฏ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆฏ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆฏ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆฏ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆฏ", "๐Ÿ‘จโ€๐Ÿฆฏ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฏ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฏ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฏ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฏ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฏ", "๐ŸงŽโ€โ™€", "๐ŸงŽ๐Ÿปโ€โ™€", "๐ŸงŽ๐Ÿผโ€โ™€", "๐ŸงŽ๐Ÿฝโ€โ™€", "๐ŸงŽ๐Ÿพโ€โ™€", "๐ŸงŽ๐Ÿฟโ€โ™€", "๐ŸงŽ", "๐ŸงŽ๐Ÿป", "๐ŸงŽ๐Ÿผ", "๐ŸงŽ๐Ÿฝ", "๐ŸงŽ๐Ÿพ", "๐ŸงŽ๐Ÿฟ", "๐ŸงŽโ€โ™‚", "๐ŸงŽ๐Ÿปโ€โ™‚", "๐ŸงŽ๐Ÿผโ€โ™‚", "๐ŸงŽ๐Ÿฝโ€โ™‚", "๐ŸงŽ๐Ÿพโ€โ™‚", "๐ŸงŽ๐Ÿฟโ€โ™‚", "๐Ÿƒโ€โ™€", "๐Ÿƒ๐Ÿปโ€โ™€", "๐Ÿƒ๐Ÿผโ€โ™€", "๐Ÿƒ๐Ÿฝโ€โ™€", "๐Ÿƒ๐Ÿพโ€โ™€", "๐Ÿƒ๐Ÿฟโ€โ™€", "๐Ÿƒ", "๐Ÿƒ๐Ÿป", "๐Ÿƒ๐Ÿผ", "๐Ÿƒ๐Ÿฝ", "๐Ÿƒ๐Ÿพ", "๐Ÿƒ๐Ÿฟ", "๐Ÿƒโ€โ™‚", "๐Ÿƒ๐Ÿปโ€โ™‚", "๐Ÿƒ๐Ÿผโ€โ™‚", "๐Ÿƒ๐Ÿฝโ€โ™‚", "๐Ÿƒ๐Ÿพโ€โ™‚", "๐Ÿƒ๐Ÿฟโ€โ™‚", "๐Ÿงโ€โ™€", "๐Ÿง๐Ÿปโ€โ™€", "๐Ÿง๐Ÿผโ€โ™€", "๐Ÿง๐Ÿฝโ€โ™€", "๐Ÿง๐Ÿพโ€โ™€", "๐Ÿง๐Ÿฟโ€โ™€", "๐Ÿง", "๐Ÿง๐Ÿป", "๐Ÿง๐Ÿผ", "๐Ÿง๐Ÿฝ", "๐Ÿง๐Ÿพ", "๐Ÿง๐Ÿฟ", "๐Ÿงโ€โ™‚", "๐Ÿง๐Ÿปโ€โ™‚", "๐Ÿง๐Ÿผโ€โ™‚", "๐Ÿง๐Ÿฝโ€โ™‚", "๐Ÿง๐Ÿพโ€โ™‚", "๐Ÿง๐Ÿฟโ€โ™‚", "๐Ÿ‘ซ", "๐Ÿ‘ซ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ซ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ซ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ซ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ซ๐Ÿฟ", "๐Ÿ‘ญ", "๐Ÿ‘ญ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ญ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ญ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ญ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ญ๐Ÿฟ", "๐Ÿ‘ฌ", "๐Ÿ‘ฌ๐Ÿป", "๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฌ๐Ÿผ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฌ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฌ๐Ÿพ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฌ๐Ÿฟ", "๐Ÿ‘ฉโ€โคโ€๐Ÿ‘จ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉโ€โคโ€๐Ÿ‘ฉ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ’‘", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿฟ", "๐Ÿ‘จโ€โคโ€๐Ÿ‘จ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ’", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "๐Ÿ‘จโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿชข", "๐Ÿงถ", "๐Ÿงต", "๐Ÿชก", "๐Ÿงฅ", "๐Ÿฅผ", "๐Ÿฆบ", "๐Ÿ‘š", "๐Ÿ‘•", "๐Ÿ‘–", "๐Ÿฉฒ", "๐Ÿฉณ", "๐Ÿ‘”", "๐Ÿ‘—", "๐Ÿ‘™", "๐Ÿฉฑ", "๐Ÿ‘˜", "๐Ÿฅป", "๐Ÿฉด", "๐Ÿฅฟ", "๐Ÿ‘ ", "๐Ÿ‘ก", "๐Ÿ‘ข", "๐Ÿ‘ž", "๐Ÿ‘Ÿ", "๐Ÿฅพ", "๐Ÿงฆ", "๐Ÿงค", "๐Ÿงฃ", "๐ŸŽฉ", "๐Ÿงข", "๐Ÿ‘’", "๐ŸŽ“", "โ›‘", "๐Ÿช–", "๐Ÿ‘‘", "๐Ÿ’", "๐Ÿ‘", "๐Ÿ‘›", "๐Ÿ‘œ", "๐Ÿ’ผ", "๐ŸŽ’", "๐Ÿงณ", "๐Ÿ‘“", "๐Ÿ•ถ", "๐Ÿฅฝ", "๐ŸŒ‚" + "๐Ÿ˜€", "๐Ÿ˜ƒ", "๐Ÿ˜„", "๐Ÿ˜", "๐Ÿ˜†", "๐Ÿฅน", "๐Ÿ˜…", "๐Ÿ˜‚", "๐Ÿคฃ", "๐Ÿฅฒ", "โ˜บ", "๐Ÿ˜Š", "๐Ÿ˜‡", "๐Ÿ™‚", "๐Ÿ™ƒ", "๐Ÿ˜‰", "๐Ÿ˜Œ", "๐Ÿ˜", "๐Ÿฅฐ", "๐Ÿ˜˜", "๐Ÿ˜—", "๐Ÿ˜™", "๐Ÿ˜š", "๐Ÿ˜‹", "๐Ÿ˜›", "๐Ÿ˜", "๐Ÿ˜œ", "๐Ÿคช", "๐Ÿคจ", "๐Ÿง", "๐Ÿค“", "๐Ÿ˜Ž", "๐Ÿฅธ", "๐Ÿคฉ", "๐Ÿฅณ", "๐Ÿ™‚โ€โ†•", "๐Ÿ˜", "๐Ÿ˜’", "๐Ÿ™‚โ€โ†”", "๐Ÿ˜ž", "๐Ÿ˜”", "๐Ÿ˜Ÿ", "๐Ÿ˜•", "๐Ÿ™", "โ˜น", "๐Ÿ˜ฃ", "๐Ÿ˜–", "๐Ÿ˜ซ", "๐Ÿ˜ฉ", "๐Ÿฅบ", "๐Ÿ˜ข", "๐Ÿ˜ญ", "๐Ÿ˜ค", "๐Ÿ˜ ", "๐Ÿ˜ก", "๐Ÿคฌ", "๐Ÿคฏ", "๐Ÿ˜ณ", "๐Ÿฅต", "๐Ÿฅถ", "๐Ÿ˜ถโ€๐ŸŒซ", "๐Ÿ˜ฑ", "๐Ÿ˜จ", "๐Ÿ˜ฐ", "๐Ÿ˜ฅ", "๐Ÿ˜“", "๐Ÿค—", "๐Ÿค”", "๐Ÿซฃ", "๐Ÿคญ", "๐Ÿซข", "๐Ÿซก", "๐Ÿคซ", "๐Ÿซ ", "๐Ÿคฅ", "๐Ÿ˜ถ", "๐Ÿซฅ", "๐Ÿ˜", "๐Ÿซค", "๐Ÿ˜‘", "๐Ÿซจ", "๐Ÿ˜ฌ", "๐Ÿ™„", "๐Ÿ˜ฏ", "๐Ÿ˜ฆ", "๐Ÿ˜ง", "๐Ÿ˜ฎ", "๐Ÿ˜ฒ", "๐Ÿฅฑ", "๐Ÿ˜ด", "๐Ÿคค", "๐Ÿ˜ช", "๐Ÿ˜ฎโ€๐Ÿ’จ", "๐Ÿ˜ต", "๐Ÿ˜ตโ€๐Ÿ’ซ", "๐Ÿค", "๐Ÿฅด", "๐Ÿคข", "๐Ÿคฎ", "๐Ÿคง", "๐Ÿ˜ท", "๐Ÿค’", "๐Ÿค•", "๐Ÿค‘", "๐Ÿค ", "๐Ÿ˜ˆ", "๐Ÿ‘ฟ", "๐Ÿ‘น", "๐Ÿ‘บ", "๐Ÿคก", "๐Ÿ’ฉ", "๐Ÿ‘ป", "๐Ÿ’€", "โ˜ ", "๐Ÿ‘ฝ", "๐Ÿ‘พ", "๐Ÿค–", "๐ŸŽƒ", "๐Ÿ˜บ", "๐Ÿ˜ธ", "๐Ÿ˜น", "๐Ÿ˜ป", "๐Ÿ˜ผ", "๐Ÿ˜ฝ", "๐Ÿ™€", "๐Ÿ˜ฟ", "๐Ÿ˜พ", "๐Ÿซถ", "๐Ÿซถ๐Ÿป", "๐Ÿซถ๐Ÿผ", "๐Ÿซถ๐Ÿฝ", "๐Ÿซถ๐Ÿพ", "๐Ÿซถ๐Ÿฟ", "๐Ÿคฒ", "๐Ÿคฒ๐Ÿป", "๐Ÿคฒ๐Ÿผ", "๐Ÿคฒ๐Ÿฝ", "๐Ÿคฒ๐Ÿพ", "๐Ÿคฒ๐Ÿฟ", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", "๐Ÿ™Œ", "๐Ÿ™Œ๐Ÿป", "๐Ÿ™Œ๐Ÿผ", "๐Ÿ™Œ๐Ÿฝ", "๐Ÿ™Œ๐Ÿพ", "๐Ÿ™Œ๐Ÿฟ", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", "๐Ÿค", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", "๐Ÿ‘Ž", "๐Ÿ‘Ž๐Ÿป", "๐Ÿ‘Ž๐Ÿผ", "๐Ÿ‘Ž๐Ÿฝ", "๐Ÿ‘Ž๐Ÿพ", "๐Ÿ‘Ž๐Ÿฟ", "๐Ÿ‘Š", "๐Ÿ‘Š๐Ÿป", "๐Ÿ‘Š๐Ÿผ", "๐Ÿ‘Š๐Ÿฝ", "๐Ÿ‘Š๐Ÿพ", "๐Ÿ‘Š๐Ÿฟ", "โœŠ", "โœŠ๐Ÿป", "โœŠ๐Ÿผ", "โœŠ๐Ÿฝ", "โœŠ๐Ÿพ", "โœŠ๐Ÿฟ", "๐Ÿค›", "๐Ÿค›๐Ÿป", "๐Ÿค›๐Ÿผ", "๐Ÿค›๐Ÿฝ", "๐Ÿค›๐Ÿพ", "๐Ÿค›๐Ÿฟ", "๐Ÿคœ", "๐Ÿคœ๐Ÿป", "๐Ÿคœ๐Ÿผ", "๐Ÿคœ๐Ÿฝ", "๐Ÿคœ๐Ÿพ", "๐Ÿคœ๐Ÿฟ", "๐Ÿซท", "๐Ÿซท๐Ÿป", "๐Ÿซท๐Ÿผ", "๐Ÿซท๐Ÿฝ", "๐Ÿซท๐Ÿพ", "๐Ÿซท๐Ÿฟ", "๐Ÿซธ", "๐Ÿซธ๐Ÿป", "๐Ÿซธ๐Ÿผ", "๐Ÿซธ๐Ÿฝ", "๐Ÿซธ๐Ÿพ", "๐Ÿซธ๐Ÿฟ", "๐Ÿคž", "๐Ÿคž๐Ÿป", "๐Ÿคž๐Ÿผ", "๐Ÿคž๐Ÿฝ", "๐Ÿคž๐Ÿพ", "๐Ÿคž๐Ÿฟ", "โœŒ", "โœŒ๐Ÿป", "โœŒ๐Ÿผ", "โœŒ๐Ÿฝ", "โœŒ๐Ÿพ", "โœŒ๐Ÿฟ", "๐Ÿซฐ", "๐Ÿซฐ๐Ÿป", "๐Ÿซฐ๐Ÿผ", "๐Ÿซฐ๐Ÿฝ", "๐Ÿซฐ๐Ÿพ", "๐Ÿซฐ๐Ÿฟ", "๐ŸคŸ", "๐ŸคŸ๐Ÿป", "๐ŸคŸ๐Ÿผ", "๐ŸคŸ๐Ÿฝ", "๐ŸคŸ๐Ÿพ", "๐ŸคŸ๐Ÿฟ", "๐Ÿค˜", "๐Ÿค˜๐Ÿป", "๐Ÿค˜๐Ÿผ", "๐Ÿค˜๐Ÿฝ", "๐Ÿค˜๐Ÿพ", "๐Ÿค˜๐Ÿฟ", "๐Ÿ‘Œ", "๐Ÿ‘Œ๐Ÿป", "๐Ÿ‘Œ๐Ÿผ", "๐Ÿ‘Œ๐Ÿฝ", "๐Ÿ‘Œ๐Ÿพ", "๐Ÿ‘Œ๐Ÿฟ", "๐ŸคŒ", "๐ŸคŒ๐Ÿป", "๐ŸคŒ๐Ÿผ", "๐ŸคŒ๐Ÿฝ", "๐ŸคŒ๐Ÿพ", "๐ŸคŒ๐Ÿฟ", "๐Ÿค", "๐Ÿค๐Ÿป", "๐Ÿค๐Ÿผ", "๐Ÿค๐Ÿฝ", "๐Ÿค๐Ÿพ", "๐Ÿค๐Ÿฟ", "๐Ÿซณ", "๐Ÿซณ๐Ÿป", "๐Ÿซณ๐Ÿผ", "๐Ÿซณ๐Ÿฝ", "๐Ÿซณ๐Ÿพ", "๐Ÿซณ๐Ÿฟ", "๐Ÿซด", "๐Ÿซด๐Ÿป", "๐Ÿซด๐Ÿผ", "๐Ÿซด๐Ÿฝ", "๐Ÿซด๐Ÿพ", "๐Ÿซด๐Ÿฟ", "๐Ÿ‘ˆ", "๐Ÿ‘ˆ๐Ÿป", "๐Ÿ‘ˆ๐Ÿผ", "๐Ÿ‘ˆ๐Ÿฝ", "๐Ÿ‘ˆ๐Ÿพ", "๐Ÿ‘ˆ๐Ÿฟ", "๐Ÿ‘‰", "๐Ÿ‘‰๐Ÿป", "๐Ÿ‘‰๐Ÿผ", "๐Ÿ‘‰๐Ÿฝ", "๐Ÿ‘‰๐Ÿพ", "๐Ÿ‘‰๐Ÿฟ", "๐Ÿ‘†", "๐Ÿ‘†๐Ÿป", "๐Ÿ‘†๐Ÿผ", "๐Ÿ‘†๐Ÿฝ", "๐Ÿ‘†๐Ÿพ", "๐Ÿ‘†๐Ÿฟ", "๐Ÿ‘‡", "๐Ÿ‘‡๐Ÿป", "๐Ÿ‘‡๐Ÿผ", "๐Ÿ‘‡๐Ÿฝ", "๐Ÿ‘‡๐Ÿพ", "๐Ÿ‘‡๐Ÿฟ", "โ˜", "โ˜๐Ÿป", "โ˜๐Ÿผ", "โ˜๐Ÿฝ", "โ˜๐Ÿพ", "โ˜๐Ÿฟ", "โœ‹", "โœ‹๐Ÿป", "โœ‹๐Ÿผ", "โœ‹๐Ÿฝ", "โœ‹๐Ÿพ", "โœ‹๐Ÿฟ", "๐Ÿคš", "๐Ÿคš๐Ÿป", "๐Ÿคš๐Ÿผ", "๐Ÿคš๐Ÿฝ", "๐Ÿคš๐Ÿพ", "๐Ÿคš๐Ÿฟ", "๐Ÿ–", "๐Ÿ–๐Ÿป", "๐Ÿ–๐Ÿผ", "๐Ÿ–๐Ÿฝ", "๐Ÿ–๐Ÿพ", "๐Ÿ–๐Ÿฟ", "๐Ÿ––", "๐Ÿ––๐Ÿป", "๐Ÿ––๐Ÿผ", "๐Ÿ––๐Ÿฝ", "๐Ÿ––๐Ÿพ", "๐Ÿ––๐Ÿฟ", "๐Ÿ‘‹", "๐Ÿ‘‹๐Ÿป", "๐Ÿ‘‹๐Ÿผ", "๐Ÿ‘‹๐Ÿฝ", "๐Ÿ‘‹๐Ÿพ", "๐Ÿ‘‹๐Ÿฟ", "๐Ÿค™", "๐Ÿค™๐Ÿป", "๐Ÿค™๐Ÿผ", "๐Ÿค™๐Ÿฝ", "๐Ÿค™๐Ÿพ", "๐Ÿค™๐Ÿฟ", "๐Ÿซฒ", "๐Ÿซฒ๐Ÿป", "๐Ÿซฒ๐Ÿผ", "๐Ÿซฒ๐Ÿฝ", "๐Ÿซฒ๐Ÿพ", "๐Ÿซฒ๐Ÿฟ", "๐Ÿซฑ", "๐Ÿซฑ๐Ÿป", "๐Ÿซฑ๐Ÿผ", "๐Ÿซฑ๐Ÿฝ", "๐Ÿซฑ๐Ÿพ", "๐Ÿซฑ๐Ÿฟ", "๐Ÿ’ช", "๐Ÿ’ช๐Ÿป", "๐Ÿ’ช๐Ÿผ", "๐Ÿ’ช๐Ÿฝ", "๐Ÿ’ช๐Ÿพ", "๐Ÿ’ช๐Ÿฟ", "๐Ÿฆพ", "๐Ÿ–•", "๐Ÿ–•๐Ÿป", "๐Ÿ–•๐Ÿผ", "๐Ÿ–•๐Ÿฝ", "๐Ÿ–•๐Ÿพ", "๐Ÿ–•๐Ÿฟ", "โœ", "โœ๐Ÿป", "โœ๐Ÿผ", "โœ๐Ÿฝ", "โœ๐Ÿพ", "โœ๐Ÿฟ", "๐Ÿ™", "๐Ÿ™๐Ÿป", "๐Ÿ™๐Ÿผ", "๐Ÿ™๐Ÿฝ", "๐Ÿ™๐Ÿพ", "๐Ÿ™๐Ÿฟ", "๐Ÿซต", "๐Ÿซต๐Ÿป", "๐Ÿซต๐Ÿผ", "๐Ÿซต๐Ÿฝ", "๐Ÿซต๐Ÿพ", "๐Ÿซต๐Ÿฟ", "๐Ÿฆถ", "๐Ÿฆถ๐Ÿป", "๐Ÿฆถ๐Ÿผ", "๐Ÿฆถ๐Ÿฝ", "๐Ÿฆถ๐Ÿพ", "๐Ÿฆถ๐Ÿฟ", "๐Ÿฆต", "๐Ÿฆต๐Ÿป", "๐Ÿฆต๐Ÿผ", "๐Ÿฆต๐Ÿฝ", "๐Ÿฆต๐Ÿพ", "๐Ÿฆต๐Ÿฟ", "๐Ÿฆฟ", "๐Ÿ’„", "๐Ÿ’‹", "๐Ÿ‘„", "๐Ÿซฆ", "๐Ÿฆท", "๐Ÿ‘…", "๐Ÿ‘‚", "๐Ÿ‘‚๐Ÿป", "๐Ÿ‘‚๐Ÿผ", "๐Ÿ‘‚๐Ÿฝ", "๐Ÿ‘‚๐Ÿพ", "๐Ÿ‘‚๐Ÿฟ", "๐Ÿฆป", "๐Ÿฆป๐Ÿป", "๐Ÿฆป๐Ÿผ", "๐Ÿฆป๐Ÿฝ", "๐Ÿฆป๐Ÿพ", "๐Ÿฆป๐Ÿฟ", "๐Ÿ‘ƒ", "๐Ÿ‘ƒ๐Ÿป", "๐Ÿ‘ƒ๐Ÿผ", "๐Ÿ‘ƒ๐Ÿฝ", "๐Ÿ‘ƒ๐Ÿพ", "๐Ÿ‘ƒ๐Ÿฟ", "๐Ÿ‘ฃ", "๐Ÿ‘", "๐Ÿ‘€", "๐Ÿซ€", "๐Ÿซ", "๐Ÿง ", "๐Ÿ—ฃ", "๐Ÿ‘ค", "๐Ÿ‘ฅ", "๐Ÿซ‚", "๐Ÿ‘ถ", "๐Ÿ‘ถ๐Ÿป", "๐Ÿ‘ถ๐Ÿผ", "๐Ÿ‘ถ๐Ÿฝ", "๐Ÿ‘ถ๐Ÿพ", "๐Ÿ‘ถ๐Ÿฟ", "๐Ÿ‘ง", "๐Ÿ‘ง๐Ÿป", "๐Ÿ‘ง๐Ÿผ", "๐Ÿ‘ง๐Ÿฝ", "๐Ÿ‘ง๐Ÿพ", "๐Ÿ‘ง๐Ÿฟ", "๐Ÿง’", "๐Ÿง’๐Ÿป", "๐Ÿง’๐Ÿผ", "๐Ÿง’๐Ÿฝ", "๐Ÿง’๐Ÿพ", "๐Ÿง’๐Ÿฟ", "๐Ÿ‘ฆ", "๐Ÿ‘ฆ๐Ÿป", "๐Ÿ‘ฆ๐Ÿผ", "๐Ÿ‘ฆ๐Ÿฝ", "๐Ÿ‘ฆ๐Ÿพ", "๐Ÿ‘ฆ๐Ÿฟ", "๐Ÿ‘ฉ", "๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿง‘", "๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿฟ", "๐Ÿ‘จ", "๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉโ€๐Ÿฆฑ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฑ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฑ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฑ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฑ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฑ", "๐Ÿง‘โ€๐Ÿฆฑ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆฑ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆฑ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆฑ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆฑ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆฑ", "๐Ÿ‘จโ€๐Ÿฆฑ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฑ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฑ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฑ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฑ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฑ", "๐Ÿ‘ฉโ€๐Ÿฆฐ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฐ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฐ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฐ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฐ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฐ", "๐Ÿง‘โ€๐Ÿฆฐ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆฐ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆฐ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆฐ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆฐ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆฐ", "๐Ÿ‘จโ€๐Ÿฆฐ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฐ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฐ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฐ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฐ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฐ", "๐Ÿ‘ฑโ€โ™€", "๐Ÿ‘ฑ๐Ÿปโ€โ™€", "๐Ÿ‘ฑ๐Ÿผโ€โ™€", "๐Ÿ‘ฑ๐Ÿฝโ€โ™€", "๐Ÿ‘ฑ๐Ÿพโ€โ™€", "๐Ÿ‘ฑ๐Ÿฟโ€โ™€", "๐Ÿ‘ฑ", "๐Ÿ‘ฑ๐Ÿป", "๐Ÿ‘ฑ๐Ÿผ", "๐Ÿ‘ฑ๐Ÿฝ", "๐Ÿ‘ฑ๐Ÿพ", "๐Ÿ‘ฑ๐Ÿฟ", "๐Ÿ‘ฑโ€โ™‚", "๐Ÿ‘ฑ๐Ÿปโ€โ™‚", "๐Ÿ‘ฑ๐Ÿผโ€โ™‚", "๐Ÿ‘ฑ๐Ÿฝโ€โ™‚", "๐Ÿ‘ฑ๐Ÿพโ€โ™‚", "๐Ÿ‘ฑ๐Ÿฟโ€โ™‚", "๐Ÿ‘ฉโ€๐Ÿฆณ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆณ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆณ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆณ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆณ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆณ", "๐Ÿง‘โ€๐Ÿฆณ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆณ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆณ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆณ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆณ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆณ", "๐Ÿ‘จโ€๐Ÿฆณ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆณ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆณ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆณ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆณ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆณ", "๐Ÿ‘ฉโ€๐Ÿฆฒ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฒ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฒ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฒ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฒ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฒ", "๐Ÿง‘โ€๐Ÿฆฒ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆฒ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆฒ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆฒ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆฒ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆฒ", "๐Ÿ‘จโ€๐Ÿฆฒ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฒ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฒ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฒ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฒ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฒ", "๐Ÿง”โ€โ™€", "๐Ÿง”๐Ÿปโ€โ™€", "๐Ÿง”๐Ÿผโ€โ™€", "๐Ÿง”๐Ÿฝโ€โ™€", "๐Ÿง”๐Ÿพโ€โ™€", "๐Ÿง”๐Ÿฟโ€โ™€", "๐Ÿง”", "๐Ÿง”๐Ÿป", "๐Ÿง”๐Ÿผ", "๐Ÿง”๐Ÿฝ", "๐Ÿง”๐Ÿพ", "๐Ÿง”๐Ÿฟ", "๐Ÿง”โ€โ™‚", "๐Ÿง”๐Ÿปโ€โ™‚", "๐Ÿง”๐Ÿผโ€โ™‚", "๐Ÿง”๐Ÿฝโ€โ™‚", "๐Ÿง”๐Ÿพโ€โ™‚", "๐Ÿง”๐Ÿฟโ€โ™‚", "๐Ÿ‘ต", "๐Ÿ‘ต๐Ÿป", "๐Ÿ‘ต๐Ÿผ", "๐Ÿ‘ต๐Ÿฝ", "๐Ÿ‘ต๐Ÿพ", "๐Ÿ‘ต๐Ÿฟ", "๐Ÿง“", "๐Ÿง“๐Ÿป", "๐Ÿง“๐Ÿผ", "๐Ÿง“๐Ÿฝ", "๐Ÿง“๐Ÿพ", "๐Ÿง“๐Ÿฟ", "๐Ÿ‘ด", "๐Ÿ‘ด๐Ÿป", "๐Ÿ‘ด๐Ÿผ", "๐Ÿ‘ด๐Ÿฝ", "๐Ÿ‘ด๐Ÿพ", "๐Ÿ‘ด๐Ÿฟ", "๐Ÿ‘ฒ", "๐Ÿ‘ฒ๐Ÿป", "๐Ÿ‘ฒ๐Ÿผ", "๐Ÿ‘ฒ๐Ÿฝ", "๐Ÿ‘ฒ๐Ÿพ", "๐Ÿ‘ฒ๐Ÿฟ", "๐Ÿ‘ณโ€โ™€", "๐Ÿ‘ณ๐Ÿปโ€โ™€", "๐Ÿ‘ณ๐Ÿผโ€โ™€", "๐Ÿ‘ณ๐Ÿฝโ€โ™€", "๐Ÿ‘ณ๐Ÿพโ€โ™€", "๐Ÿ‘ณ๐Ÿฟโ€โ™€", "๐Ÿ‘ณ", "๐Ÿ‘ณ๐Ÿป", "๐Ÿ‘ณ๐Ÿผ", "๐Ÿ‘ณ๐Ÿฝ", "๐Ÿ‘ณ๐Ÿพ", "๐Ÿ‘ณ๐Ÿฟ", "๐Ÿ‘ณโ€โ™‚", "๐Ÿ‘ณ๐Ÿปโ€โ™‚", "๐Ÿ‘ณ๐Ÿผโ€โ™‚", "๐Ÿ‘ณ๐Ÿฝโ€โ™‚", "๐Ÿ‘ณ๐Ÿพโ€โ™‚", "๐Ÿ‘ณ๐Ÿฟโ€โ™‚", "๐Ÿง•", "๐Ÿง•๐Ÿป", "๐Ÿง•๐Ÿผ", "๐Ÿง•๐Ÿฝ", "๐Ÿง•๐Ÿพ", "๐Ÿง•๐Ÿฟ", "๐Ÿ‘ฎโ€โ™€", "๐Ÿ‘ฎ๐Ÿปโ€โ™€", "๐Ÿ‘ฎ๐Ÿผโ€โ™€", "๐Ÿ‘ฎ๐Ÿฝโ€โ™€", "๐Ÿ‘ฎ๐Ÿพโ€โ™€", "๐Ÿ‘ฎ๐Ÿฟโ€โ™€", "๐Ÿ‘ฎ", "๐Ÿ‘ฎ๐Ÿป", "๐Ÿ‘ฎ๐Ÿผ", "๐Ÿ‘ฎ๐Ÿฝ", "๐Ÿ‘ฎ๐Ÿพ", "๐Ÿ‘ฎ๐Ÿฟ", "๐Ÿ‘ฎโ€โ™‚", "๐Ÿ‘ฎ๐Ÿปโ€โ™‚", "๐Ÿ‘ฎ๐Ÿผโ€โ™‚", "๐Ÿ‘ฎ๐Ÿฝโ€โ™‚", "๐Ÿ‘ฎ๐Ÿพโ€โ™‚", "๐Ÿ‘ฎ๐Ÿฟโ€โ™‚", "๐Ÿ‘ทโ€โ™€", "๐Ÿ‘ท๐Ÿปโ€โ™€", "๐Ÿ‘ท๐Ÿผโ€โ™€", "๐Ÿ‘ท๐Ÿฝโ€โ™€", "๐Ÿ‘ท๐Ÿพโ€โ™€", "๐Ÿ‘ท๐Ÿฟโ€โ™€", "๐Ÿ‘ท", "๐Ÿ‘ท๐Ÿป", "๐Ÿ‘ท๐Ÿผ", "๐Ÿ‘ท๐Ÿฝ", "๐Ÿ‘ท๐Ÿพ", "๐Ÿ‘ท๐Ÿฟ", "๐Ÿ‘ทโ€โ™‚", "๐Ÿ‘ท๐Ÿปโ€โ™‚", "๐Ÿ‘ท๐Ÿผโ€โ™‚", "๐Ÿ‘ท๐Ÿฝโ€โ™‚", "๐Ÿ‘ท๐Ÿพโ€โ™‚", "๐Ÿ‘ท๐Ÿฟโ€โ™‚", "๐Ÿ’‚โ€โ™€", "๐Ÿ’‚๐Ÿปโ€โ™€", "๐Ÿ’‚๐Ÿผโ€โ™€", "๐Ÿ’‚๐Ÿฝโ€โ™€", "๐Ÿ’‚๐Ÿพโ€โ™€", "๐Ÿ’‚๐Ÿฟโ€โ™€", "๐Ÿ’‚", "๐Ÿ’‚๐Ÿป", "๐Ÿ’‚๐Ÿผ", "๐Ÿ’‚๐Ÿฝ", "๐Ÿ’‚๐Ÿพ", "๐Ÿ’‚๐Ÿฟ", "๐Ÿ’‚โ€โ™‚", "๐Ÿ’‚๐Ÿปโ€โ™‚", "๐Ÿ’‚๐Ÿผโ€โ™‚", "๐Ÿ’‚๐Ÿฝโ€โ™‚", "๐Ÿ’‚๐Ÿพโ€โ™‚", "๐Ÿ’‚๐Ÿฟโ€โ™‚", "๐Ÿ•ตโ€โ™€", "๐Ÿ•ต๐Ÿปโ€โ™€", "๐Ÿ•ต๐Ÿผโ€โ™€", "๐Ÿ•ต๐Ÿฝโ€โ™€", "๐Ÿ•ต๐Ÿพโ€โ™€", "๐Ÿ•ต๐Ÿฟโ€โ™€", "๐Ÿ•ต", "๐Ÿ•ต๐Ÿป", "๐Ÿ•ต๐Ÿผ", "๐Ÿ•ต๐Ÿฝ", "๐Ÿ•ต๐Ÿพ", "๐Ÿ•ต๐Ÿฟ", "๐Ÿ•ตโ€โ™‚", "๐Ÿ•ต๐Ÿปโ€โ™‚", "๐Ÿ•ต๐Ÿผโ€โ™‚", "๐Ÿ•ต๐Ÿฝโ€โ™‚", "๐Ÿ•ต๐Ÿพโ€โ™‚", "๐Ÿ•ต๐Ÿฟโ€โ™‚", "๐Ÿ‘ฉโ€โš•", "๐Ÿ‘ฉ๐Ÿปโ€โš•", "๐Ÿ‘ฉ๐Ÿผโ€โš•", "๐Ÿ‘ฉ๐Ÿฝโ€โš•", "๐Ÿ‘ฉ๐Ÿพโ€โš•", "๐Ÿ‘ฉ๐Ÿฟโ€โš•", "๐Ÿง‘โ€โš•", "๐Ÿง‘๐Ÿปโ€โš•", "๐Ÿง‘๐Ÿผโ€โš•", "๐Ÿง‘๐Ÿฝโ€โš•", "๐Ÿง‘๐Ÿพโ€โš•", "๐Ÿง‘๐Ÿฟโ€โš•", "๐Ÿ‘จโ€โš•", "๐Ÿ‘จ๐Ÿปโ€โš•", "๐Ÿ‘จ๐Ÿผโ€โš•", "๐Ÿ‘จ๐Ÿฝโ€โš•", "๐Ÿ‘จ๐Ÿพโ€โš•", "๐Ÿ‘จ๐Ÿฟโ€โš•", "๐Ÿ‘ฉโ€๐ŸŒพ", "๐Ÿ‘ฉ๐Ÿปโ€๐ŸŒพ", "๐Ÿ‘ฉ๐Ÿผโ€๐ŸŒพ", "๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŒพ", "๐Ÿ‘ฉ๐Ÿพโ€๐ŸŒพ", "๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŒพ", "๐Ÿง‘โ€๐ŸŒพ", "๐Ÿง‘๐Ÿปโ€๐ŸŒพ", "๐Ÿง‘๐Ÿผโ€๐ŸŒพ", "๐Ÿง‘๐Ÿฝโ€๐ŸŒพ", "๐Ÿง‘๐Ÿพโ€๐ŸŒพ", "๐Ÿง‘๐Ÿฟโ€๐ŸŒพ", "๐Ÿ‘จโ€๐ŸŒพ", "๐Ÿ‘จ๐Ÿปโ€๐ŸŒพ", "๐Ÿ‘จ๐Ÿผโ€๐ŸŒพ", "๐Ÿ‘จ๐Ÿฝโ€๐ŸŒพ", "๐Ÿ‘จ๐Ÿพโ€๐ŸŒพ", "๐Ÿ‘จ๐Ÿฟโ€๐ŸŒพ", "๐Ÿ‘ฉโ€๐Ÿณ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿณ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿณ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿณ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿณ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿณ", "๐Ÿง‘โ€๐Ÿณ", "๐Ÿง‘๐Ÿปโ€๐Ÿณ", "๐Ÿง‘๐Ÿผโ€๐Ÿณ", "๐Ÿง‘๐Ÿฝโ€๐Ÿณ", "๐Ÿง‘๐Ÿพโ€๐Ÿณ", "๐Ÿง‘๐Ÿฟโ€๐Ÿณ", "๐Ÿ‘จโ€๐Ÿณ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿณ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿณ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿณ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿณ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿณ", "๐Ÿ‘ฉโ€๐ŸŽ“", "๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽ“", "๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽ“", "๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽ“", "๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽ“", "๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽ“", "๐Ÿง‘โ€๐ŸŽ“", "๐Ÿง‘๐Ÿปโ€๐ŸŽ“", "๐Ÿง‘๐Ÿผโ€๐ŸŽ“", "๐Ÿง‘๐Ÿฝโ€๐ŸŽ“", "๐Ÿง‘๐Ÿพโ€๐ŸŽ“", "๐Ÿง‘๐Ÿฟโ€๐ŸŽ“", "๐Ÿ‘จโ€๐ŸŽ“", "๐Ÿ‘จ๐Ÿปโ€๐ŸŽ“", "๐Ÿ‘จ๐Ÿผโ€๐ŸŽ“", "๐Ÿ‘จ๐Ÿฝโ€๐ŸŽ“", "๐Ÿ‘จ๐Ÿพโ€๐ŸŽ“", "๐Ÿ‘จ๐Ÿฟโ€๐ŸŽ“", "๐Ÿ‘ฉโ€๐ŸŽค", "๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽค", "๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽค", "๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽค", "๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽค", "๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽค", "๐Ÿง‘โ€๐ŸŽค", "๐Ÿง‘๐Ÿปโ€๐ŸŽค", "๐Ÿง‘๐Ÿผโ€๐ŸŽค", "๐Ÿง‘๐Ÿฝโ€๐ŸŽค", "๐Ÿง‘๐Ÿพโ€๐ŸŽค", "๐Ÿง‘๐Ÿฟโ€๐ŸŽค", "๐Ÿ‘จโ€๐ŸŽค", "๐Ÿ‘จ๐Ÿปโ€๐ŸŽค", "๐Ÿ‘จ๐Ÿผโ€๐ŸŽค", "๐Ÿ‘จ๐Ÿฝโ€๐ŸŽค", "๐Ÿ‘จ๐Ÿพโ€๐ŸŽค", "๐Ÿ‘จ๐Ÿฟโ€๐ŸŽค", "๐Ÿ‘ฉโ€๐Ÿซ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿซ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿซ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿซ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿซ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿซ", "๐Ÿง‘โ€๐Ÿซ", "๐Ÿง‘๐Ÿปโ€๐Ÿซ", "๐Ÿง‘๐Ÿผโ€๐Ÿซ", "๐Ÿง‘๐Ÿฝโ€๐Ÿซ", "๐Ÿง‘๐Ÿพโ€๐Ÿซ", "๐Ÿง‘๐Ÿฟโ€๐Ÿซ", "๐Ÿ‘จโ€๐Ÿซ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿซ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿซ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿซ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿซ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿซ", "๐Ÿ‘ฉโ€๐Ÿญ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿญ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿญ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿญ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿญ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿญ", "๐Ÿง‘โ€๐Ÿญ", "๐Ÿง‘๐Ÿปโ€๐Ÿญ", "๐Ÿง‘๐Ÿผโ€๐Ÿญ", "๐Ÿง‘๐Ÿฝโ€๐Ÿญ", "๐Ÿง‘๐Ÿพโ€๐Ÿญ", "๐Ÿง‘๐Ÿฟโ€๐Ÿญ", "๐Ÿ‘จโ€๐Ÿญ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿญ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿญ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿญ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿญ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿญ", "๐Ÿ‘ฉโ€๐Ÿ’ป", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ป", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ป", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ’ป", "๐Ÿง‘โ€๐Ÿ’ป", "๐Ÿง‘๐Ÿปโ€๐Ÿ’ป", "๐Ÿง‘๐Ÿผโ€๐Ÿ’ป", "๐Ÿง‘๐Ÿฝโ€๐Ÿ’ป", "๐Ÿง‘๐Ÿพโ€๐Ÿ’ป", "๐Ÿง‘๐Ÿฟโ€๐Ÿ’ป", "๐Ÿ‘จโ€๐Ÿ’ป", "๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป", "๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ป", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป", "๐Ÿ‘จ๐Ÿพโ€๐Ÿ’ป", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ป", "๐Ÿ‘ฉโ€๐Ÿ’ผ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ผ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ผ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ผ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ผ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ’ผ", "๐Ÿง‘โ€๐Ÿ’ผ", "๐Ÿง‘๐Ÿปโ€๐Ÿ’ผ", "๐Ÿง‘๐Ÿผโ€๐Ÿ’ผ", "๐Ÿง‘๐Ÿฝโ€๐Ÿ’ผ", "๐Ÿง‘๐Ÿพโ€๐Ÿ’ผ", "๐Ÿง‘๐Ÿฟโ€๐Ÿ’ผ", "๐Ÿ‘จโ€๐Ÿ’ผ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ผ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ผ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ผ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿ’ผ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ผ", "๐Ÿ‘ฉโ€๐Ÿ”ง", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ง", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ”ง", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ”ง", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ”ง", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ”ง", "๐Ÿง‘โ€๐Ÿ”ง", "๐Ÿง‘๐Ÿปโ€๐Ÿ”ง", "๐Ÿง‘๐Ÿผโ€๐Ÿ”ง", "๐Ÿง‘๐Ÿฝโ€๐Ÿ”ง", "๐Ÿง‘๐Ÿพโ€๐Ÿ”ง", "๐Ÿง‘๐Ÿฟโ€๐Ÿ”ง", "๐Ÿ‘จโ€๐Ÿ”ง", "๐Ÿ‘จ๐Ÿปโ€๐Ÿ”ง", "๐Ÿ‘จ๐Ÿผโ€๐Ÿ”ง", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿ”ง", "๐Ÿ‘จ๐Ÿพโ€๐Ÿ”ง", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿ”ง", "๐Ÿ‘ฉโ€๐Ÿ”ฌ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ฌ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ”ฌ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ”ฌ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ”ฌ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ”ฌ", "๐Ÿง‘โ€๐Ÿ”ฌ", "๐Ÿง‘๐Ÿปโ€๐Ÿ”ฌ", "๐Ÿง‘๐Ÿผโ€๐Ÿ”ฌ", "๐Ÿง‘๐Ÿฝโ€๐Ÿ”ฌ", "๐Ÿง‘๐Ÿพโ€๐Ÿ”ฌ", "๐Ÿง‘๐Ÿฟโ€๐Ÿ”ฌ", "๐Ÿ‘จโ€๐Ÿ”ฌ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿ”ฌ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿ”ฌ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿ”ฌ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿ”ฌ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿ”ฌ", "๐Ÿ‘ฉโ€๐ŸŽจ", "๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽจ", "๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽจ", "๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽจ", "๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽจ", "๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽจ", "๐Ÿง‘โ€๐ŸŽจ", "๐Ÿง‘๐Ÿปโ€๐ŸŽจ", "๐Ÿง‘๐Ÿผโ€๐ŸŽจ", "๐Ÿง‘๐Ÿฝโ€๐ŸŽจ", "๐Ÿง‘๐Ÿพโ€๐ŸŽจ", "๐Ÿง‘๐Ÿฟโ€๐ŸŽจ", "๐Ÿ‘จโ€๐ŸŽจ", "๐Ÿ‘จ๐Ÿปโ€๐ŸŽจ", "๐Ÿ‘จ๐Ÿผโ€๐ŸŽจ", "๐Ÿ‘จ๐Ÿฝโ€๐ŸŽจ", "๐Ÿ‘จ๐Ÿพโ€๐ŸŽจ", "๐Ÿ‘จ๐Ÿฟโ€๐ŸŽจ", "๐Ÿ‘ฉโ€๐Ÿš’", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿš’", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿš’", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿš’", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿš’", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿš’", "๐Ÿง‘โ€๐Ÿš’", "๐Ÿง‘๐Ÿปโ€๐Ÿš’", "๐Ÿง‘๐Ÿผโ€๐Ÿš’", "๐Ÿง‘๐Ÿฝโ€๐Ÿš’", "๐Ÿง‘๐Ÿพโ€๐Ÿš’", "๐Ÿง‘๐Ÿฟโ€๐Ÿš’", "๐Ÿ‘จโ€๐Ÿš’", "๐Ÿ‘จ๐Ÿปโ€๐Ÿš’", "๐Ÿ‘จ๐Ÿผโ€๐Ÿš’", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿš’", "๐Ÿ‘จ๐Ÿพโ€๐Ÿš’", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿš’", "๐Ÿ‘ฉโ€โœˆ", "๐Ÿ‘ฉ๐Ÿปโ€โœˆ", "๐Ÿ‘ฉ๐Ÿผโ€โœˆ", "๐Ÿ‘ฉ๐Ÿฝโ€โœˆ", "๐Ÿ‘ฉ๐Ÿพโ€โœˆ", "๐Ÿ‘ฉ๐Ÿฟโ€โœˆ", "๐Ÿง‘โ€โœˆ", "๐Ÿง‘๐Ÿปโ€โœˆ", "๐Ÿง‘๐Ÿผโ€โœˆ", "๐Ÿง‘๐Ÿฝโ€โœˆ", "๐Ÿง‘๐Ÿพโ€โœˆ", "๐Ÿง‘๐Ÿฟโ€โœˆ", "๐Ÿ‘จโ€โœˆ", "๐Ÿ‘จ๐Ÿปโ€โœˆ", "๐Ÿ‘จ๐Ÿผโ€โœˆ", "๐Ÿ‘จ๐Ÿฝโ€โœˆ", "๐Ÿ‘จ๐Ÿพโ€โœˆ", "๐Ÿ‘จ๐Ÿฟโ€โœˆ", "๐Ÿ‘ฉโ€๐Ÿš€", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿš€", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿš€", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿš€", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿš€", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿš€", "๐Ÿง‘โ€๐Ÿš€", "๐Ÿง‘๐Ÿปโ€๐Ÿš€", "๐Ÿง‘๐Ÿผโ€๐Ÿš€", "๐Ÿง‘๐Ÿฝโ€๐Ÿš€", "๐Ÿง‘๐Ÿพโ€๐Ÿš€", "๐Ÿง‘๐Ÿฟโ€๐Ÿš€", "๐Ÿ‘จโ€๐Ÿš€", "๐Ÿ‘จ๐Ÿปโ€๐Ÿš€", "๐Ÿ‘จ๐Ÿผโ€๐Ÿš€", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿš€", "๐Ÿ‘จ๐Ÿพโ€๐Ÿš€", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿš€", "๐Ÿ‘ฉโ€โš–", "๐Ÿ‘ฉ๐Ÿปโ€โš–", "๐Ÿ‘ฉ๐Ÿผโ€โš–", "๐Ÿ‘ฉ๐Ÿฝโ€โš–", "๐Ÿ‘ฉ๐Ÿพโ€โš–", "๐Ÿ‘ฉ๐Ÿฟโ€โš–", "๐Ÿง‘โ€โš–", "๐Ÿง‘๐Ÿปโ€โš–", "๐Ÿง‘๐Ÿผโ€โš–", "๐Ÿง‘๐Ÿฝโ€โš–", "๐Ÿง‘๐Ÿพโ€โš–", "๐Ÿง‘๐Ÿฟโ€โš–", "๐Ÿ‘จโ€โš–", "๐Ÿ‘จ๐Ÿปโ€โš–", "๐Ÿ‘จ๐Ÿผโ€โš–", "๐Ÿ‘จ๐Ÿฝโ€โš–", "๐Ÿ‘จ๐Ÿพโ€โš–", "๐Ÿ‘จ๐Ÿฟโ€โš–", "๐Ÿ‘ฐโ€โ™€", "๐Ÿ‘ฐ๐Ÿปโ€โ™€", "๐Ÿ‘ฐ๐Ÿผโ€โ™€", "๐Ÿ‘ฐ๐Ÿฝโ€โ™€", "๐Ÿ‘ฐ๐Ÿพโ€โ™€", "๐Ÿ‘ฐ๐Ÿฟโ€โ™€", "๐Ÿ‘ฐ", "๐Ÿ‘ฐ๐Ÿป", "๐Ÿ‘ฐ๐Ÿผ", "๐Ÿ‘ฐ๐Ÿฝ", "๐Ÿ‘ฐ๐Ÿพ", "๐Ÿ‘ฐ๐Ÿฟ", "๐Ÿ‘ฐโ€โ™‚", "๐Ÿ‘ฐ๐Ÿปโ€โ™‚", "๐Ÿ‘ฐ๐Ÿผโ€โ™‚", "๐Ÿ‘ฐ๐Ÿฝโ€โ™‚", "๐Ÿ‘ฐ๐Ÿพโ€โ™‚", "๐Ÿ‘ฐ๐Ÿฟโ€โ™‚", "๐Ÿคตโ€โ™€", "๐Ÿคต๐Ÿปโ€โ™€", "๐Ÿคต๐Ÿผโ€โ™€", "๐Ÿคต๐Ÿฝโ€โ™€", "๐Ÿคต๐Ÿพโ€โ™€", "๐Ÿคต๐Ÿฟโ€โ™€", "๐Ÿคต", "๐Ÿคต๐Ÿป", "๐Ÿคต๐Ÿผ", "๐Ÿคต๐Ÿฝ", "๐Ÿคต๐Ÿพ", "๐Ÿคต๐Ÿฟ", "๐Ÿคตโ€โ™‚", "๐Ÿคต๐Ÿปโ€โ™‚", "๐Ÿคต๐Ÿผโ€โ™‚", "๐Ÿคต๐Ÿฝโ€โ™‚", "๐Ÿคต๐Ÿพโ€โ™‚", "๐Ÿคต๐Ÿฟโ€โ™‚", "๐Ÿ‘ธ", "๐Ÿ‘ธ๐Ÿป", "๐Ÿ‘ธ๐Ÿผ", "๐Ÿ‘ธ๐Ÿฝ", "๐Ÿ‘ธ๐Ÿพ", "๐Ÿ‘ธ๐Ÿฟ", "๐Ÿซ…", "๐Ÿซ…๐Ÿป", "๐Ÿซ…๐Ÿผ", "๐Ÿซ…๐Ÿฝ", "๐Ÿซ…๐Ÿพ", "๐Ÿซ…๐Ÿฟ", "๐Ÿคด", "๐Ÿคด๐Ÿป", "๐Ÿคด๐Ÿผ", "๐Ÿคด๐Ÿฝ", "๐Ÿคด๐Ÿพ", "๐Ÿคด๐Ÿฟ", "๐Ÿฅท", "๐Ÿฅท๐Ÿป", "๐Ÿฅท๐Ÿผ", "๐Ÿฅท๐Ÿฝ", "๐Ÿฅท๐Ÿพ", "๐Ÿฅท๐Ÿฟ", "๐Ÿฆธโ€โ™€", "๐Ÿฆธ๐Ÿปโ€โ™€", "๐Ÿฆธ๐Ÿผโ€โ™€", "๐Ÿฆธ๐Ÿฝโ€โ™€", "๐Ÿฆธ๐Ÿพโ€โ™€", "๐Ÿฆธ๐Ÿฟโ€โ™€", "๐Ÿฆธ", "๐Ÿฆธ๐Ÿป", "๐Ÿฆธ๐Ÿผ", "๐Ÿฆธ๐Ÿฝ", "๐Ÿฆธ๐Ÿพ", "๐Ÿฆธ๐Ÿฟ", "๐Ÿฆธโ€โ™‚", "๐Ÿฆธ๐Ÿปโ€โ™‚", "๐Ÿฆธ๐Ÿผโ€โ™‚", "๐Ÿฆธ๐Ÿฝโ€โ™‚", "๐Ÿฆธ๐Ÿพโ€โ™‚", "๐Ÿฆธ๐Ÿฟโ€โ™‚", "๐Ÿฆนโ€โ™€", "๐Ÿฆน๐Ÿปโ€โ™€", "๐Ÿฆน๐Ÿผโ€โ™€", "๐Ÿฆน๐Ÿฝโ€โ™€", "๐Ÿฆน๐Ÿพโ€โ™€", "๐Ÿฆน๐Ÿฟโ€โ™€", "๐Ÿฆน", "๐Ÿฆน๐Ÿป", "๐Ÿฆน๐Ÿผ", "๐Ÿฆน๐Ÿฝ", "๐Ÿฆน๐Ÿพ", "๐Ÿฆน๐Ÿฟ", "๐Ÿฆนโ€โ™‚", "๐Ÿฆน๐Ÿปโ€โ™‚", "๐Ÿฆน๐Ÿผโ€โ™‚", "๐Ÿฆน๐Ÿฝโ€โ™‚", "๐Ÿฆน๐Ÿพโ€โ™‚", "๐Ÿฆน๐Ÿฟโ€โ™‚", "๐Ÿคถ", "๐Ÿคถ๐Ÿป", "๐Ÿคถ๐Ÿผ", "๐Ÿคถ๐Ÿฝ", "๐Ÿคถ๐Ÿพ", "๐Ÿคถ๐Ÿฟ", "๐Ÿง‘โ€๐ŸŽ„", "๐Ÿง‘๐Ÿปโ€๐ŸŽ„", "๐Ÿง‘๐Ÿผโ€๐ŸŽ„", "๐Ÿง‘๐Ÿฝโ€๐ŸŽ„", "๐Ÿง‘๐Ÿพโ€๐ŸŽ„", "๐Ÿง‘๐Ÿฟโ€๐ŸŽ„", "๐ŸŽ…", "๐ŸŽ…๐Ÿป", "๐ŸŽ…๐Ÿผ", "๐ŸŽ…๐Ÿฝ", "๐ŸŽ…๐Ÿพ", "๐ŸŽ…๐Ÿฟ", "๐Ÿง™โ€โ™€", "๐Ÿง™๐Ÿปโ€โ™€", "๐Ÿง™๐Ÿผโ€โ™€", "๐Ÿง™๐Ÿฝโ€โ™€", "๐Ÿง™๐Ÿพโ€โ™€", "๐Ÿง™๐Ÿฟโ€โ™€", "๐Ÿง™", "๐Ÿง™๐Ÿป", "๐Ÿง™๐Ÿผ", "๐Ÿง™๐Ÿฝ", "๐Ÿง™๐Ÿพ", "๐Ÿง™๐Ÿฟ", "๐Ÿง™โ€โ™‚", "๐Ÿง™๐Ÿปโ€โ™‚", "๐Ÿง™๐Ÿผโ€โ™‚", "๐Ÿง™๐Ÿฝโ€โ™‚", "๐Ÿง™๐Ÿพโ€โ™‚", "๐Ÿง™๐Ÿฟโ€โ™‚", "๐Ÿงโ€โ™€", "๐Ÿง๐Ÿปโ€โ™€", "๐Ÿง๐Ÿผโ€โ™€", "๐Ÿง๐Ÿฝโ€โ™€", "๐Ÿง๐Ÿพโ€โ™€", "๐Ÿง๐Ÿฟโ€โ™€", "๐Ÿง", "๐Ÿง๐Ÿป", "๐Ÿง๐Ÿผ", "๐Ÿง๐Ÿฝ", "๐Ÿง๐Ÿพ", "๐Ÿง๐Ÿฟ", "๐Ÿงโ€โ™‚", "๐Ÿง๐Ÿปโ€โ™‚", "๐Ÿง๐Ÿผโ€โ™‚", "๐Ÿง๐Ÿฝโ€โ™‚", "๐Ÿง๐Ÿพโ€โ™‚", "๐Ÿง๐Ÿฟโ€โ™‚", "๐ŸงŒ", "๐Ÿง›โ€โ™€", "๐Ÿง›๐Ÿปโ€โ™€", "๐Ÿง›๐Ÿผโ€โ™€", "๐Ÿง›๐Ÿฝโ€โ™€", "๐Ÿง›๐Ÿพโ€โ™€", "๐Ÿง›๐Ÿฟโ€โ™€", "๐Ÿง›", "๐Ÿง›๐Ÿป", "๐Ÿง›๐Ÿผ", "๐Ÿง›๐Ÿฝ", "๐Ÿง›๐Ÿพ", "๐Ÿง›๐Ÿฟ", "๐Ÿง›โ€โ™‚", "๐Ÿง›๐Ÿปโ€โ™‚", "๐Ÿง›๐Ÿผโ€โ™‚", "๐Ÿง›๐Ÿฝโ€โ™‚", "๐Ÿง›๐Ÿพโ€โ™‚", "๐Ÿง›๐Ÿฟโ€โ™‚", "๐ŸงŸโ€โ™€", "๐ŸงŸ", "๐ŸงŸโ€โ™‚", "๐Ÿงžโ€โ™€", "๐Ÿงž", "๐Ÿงžโ€โ™‚", "๐Ÿงœโ€โ™€", "๐Ÿงœ๐Ÿปโ€โ™€", "๐Ÿงœ๐Ÿผโ€โ™€", "๐Ÿงœ๐Ÿฝโ€โ™€", "๐Ÿงœ๐Ÿพโ€โ™€", "๐Ÿงœ๐Ÿฟโ€โ™€", "๐Ÿงœ", "๐Ÿงœ๐Ÿป", "๐Ÿงœ๐Ÿผ", "๐Ÿงœ๐Ÿฝ", "๐Ÿงœ๐Ÿพ", "๐Ÿงœ๐Ÿฟ", "๐Ÿงœโ€โ™‚", "๐Ÿงœ๐Ÿปโ€โ™‚", "๐Ÿงœ๐Ÿผโ€โ™‚", "๐Ÿงœ๐Ÿฝโ€โ™‚", "๐Ÿงœ๐Ÿพโ€โ™‚", "๐Ÿงœ๐Ÿฟโ€โ™‚", "๐Ÿงšโ€โ™€", "๐Ÿงš๐Ÿปโ€โ™€", "๐Ÿงš๐Ÿผโ€โ™€", "๐Ÿงš๐Ÿฝโ€โ™€", "๐Ÿงš๐Ÿพโ€โ™€", "๐Ÿงš๐Ÿฟโ€โ™€", "๐Ÿงš", "๐Ÿงš๐Ÿป", "๐Ÿงš๐Ÿผ", "๐Ÿงš๐Ÿฝ", "๐Ÿงš๐Ÿพ", "๐Ÿงš๐Ÿฟ", "๐Ÿงšโ€โ™‚", "๐Ÿงš๐Ÿปโ€โ™‚", "๐Ÿงš๐Ÿผโ€โ™‚", "๐Ÿงš๐Ÿฝโ€โ™‚", "๐Ÿงš๐Ÿพโ€โ™‚", "๐Ÿงš๐Ÿฟโ€โ™‚", "๐Ÿ‘ผ", "๐Ÿ‘ผ๐Ÿป", "๐Ÿ‘ผ๐Ÿผ", "๐Ÿ‘ผ๐Ÿฝ", "๐Ÿ‘ผ๐Ÿพ", "๐Ÿ‘ผ๐Ÿฟ", "๐Ÿคฐ", "๐Ÿคฐ๐Ÿป", "๐Ÿคฐ๐Ÿผ", "๐Ÿคฐ๐Ÿฝ", "๐Ÿคฐ๐Ÿพ", "๐Ÿคฐ๐Ÿฟ", "๐Ÿซ„", "๐Ÿซ„๐Ÿป", "๐Ÿซ„๐Ÿผ", "๐Ÿซ„๐Ÿฝ", "๐Ÿซ„๐Ÿพ", "๐Ÿซ„๐Ÿฟ", "๐Ÿซƒ", "๐Ÿซƒ๐Ÿป", "๐Ÿซƒ๐Ÿผ", "๐Ÿซƒ๐Ÿฝ", "๐Ÿซƒ๐Ÿพ", "๐Ÿซƒ๐Ÿฟ", "๐Ÿคฑ", "๐Ÿคฑ๐Ÿป", "๐Ÿคฑ๐Ÿผ", "๐Ÿคฑ๐Ÿฝ", "๐Ÿคฑ๐Ÿพ", "๐Ÿคฑ๐Ÿฟ", "๐Ÿ‘ฉโ€๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿผ", "๐Ÿง‘โ€๐Ÿผ", "๐Ÿง‘๐Ÿปโ€๐Ÿผ", "๐Ÿง‘๐Ÿผโ€๐Ÿผ", "๐Ÿง‘๐Ÿฝโ€๐Ÿผ", "๐Ÿง‘๐Ÿพโ€๐Ÿผ", "๐Ÿง‘๐Ÿฟโ€๐Ÿผ", "๐Ÿ‘จโ€๐Ÿผ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿผ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿผ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿผ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿผ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿผ", "๐Ÿ™‡โ€โ™€", "๐Ÿ™‡๐Ÿปโ€โ™€", "๐Ÿ™‡๐Ÿผโ€โ™€", "๐Ÿ™‡๐Ÿฝโ€โ™€", "๐Ÿ™‡๐Ÿพโ€โ™€", "๐Ÿ™‡๐Ÿฟโ€โ™€", "๐Ÿ™‡", "๐Ÿ™‡๐Ÿป", "๐Ÿ™‡๐Ÿผ", "๐Ÿ™‡๐Ÿฝ", "๐Ÿ™‡๐Ÿพ", "๐Ÿ™‡๐Ÿฟ", "๐Ÿ™‡โ€โ™‚", "๐Ÿ™‡๐Ÿปโ€โ™‚", "๐Ÿ™‡๐Ÿผโ€โ™‚", "๐Ÿ™‡๐Ÿฝโ€โ™‚", "๐Ÿ™‡๐Ÿพโ€โ™‚", "๐Ÿ™‡๐Ÿฟโ€โ™‚", "๐Ÿ’โ€โ™€", "๐Ÿ’๐Ÿปโ€โ™€", "๐Ÿ’๐Ÿผโ€โ™€", "๐Ÿ’๐Ÿฝโ€โ™€", "๐Ÿ’๐Ÿพโ€โ™€", "๐Ÿ’๐Ÿฟโ€โ™€", "๐Ÿ’", "๐Ÿ’๐Ÿป", "๐Ÿ’๐Ÿผ", "๐Ÿ’๐Ÿฝ", "๐Ÿ’๐Ÿพ", "๐Ÿ’๐Ÿฟ", "๐Ÿ’โ€โ™‚", "๐Ÿ’๐Ÿปโ€โ™‚", "๐Ÿ’๐Ÿผโ€โ™‚", "๐Ÿ’๐Ÿฝโ€โ™‚", "๐Ÿ’๐Ÿพโ€โ™‚", "๐Ÿ’๐Ÿฟโ€โ™‚", "๐Ÿ™…โ€โ™€", "๐Ÿ™…๐Ÿปโ€โ™€", "๐Ÿ™…๐Ÿผโ€โ™€", "๐Ÿ™…๐Ÿฝโ€โ™€", "๐Ÿ™…๐Ÿพโ€โ™€", "๐Ÿ™…๐Ÿฟโ€โ™€", "๐Ÿ™…", "๐Ÿ™…๐Ÿป", "๐Ÿ™…๐Ÿผ", "๐Ÿ™…๐Ÿฝ", "๐Ÿ™…๐Ÿพ", "๐Ÿ™…๐Ÿฟ", "๐Ÿ™…โ€โ™‚", "๐Ÿ™…๐Ÿปโ€โ™‚", "๐Ÿ™…๐Ÿผโ€โ™‚", "๐Ÿ™…๐Ÿฝโ€โ™‚", "๐Ÿ™…๐Ÿพโ€โ™‚", "๐Ÿ™…๐Ÿฟโ€โ™‚", "๐Ÿ™†โ€โ™€", "๐Ÿ™†๐Ÿปโ€โ™€", "๐Ÿ™†๐Ÿผโ€โ™€", "๐Ÿ™†๐Ÿฝโ€โ™€", "๐Ÿ™†๐Ÿพโ€โ™€", "๐Ÿ™†๐Ÿฟโ€โ™€", "๐Ÿ™†", "๐Ÿ™†๐Ÿป", "๐Ÿ™†๐Ÿผ", "๐Ÿ™†๐Ÿฝ", "๐Ÿ™†๐Ÿพ", "๐Ÿ™†๐Ÿฟ", "๐Ÿ™†โ€โ™‚", "๐Ÿ™†๐Ÿปโ€โ™‚", "๐Ÿ™†๐Ÿผโ€โ™‚", "๐Ÿ™†๐Ÿฝโ€โ™‚", "๐Ÿ™†๐Ÿพโ€โ™‚", "๐Ÿ™†๐Ÿฟโ€โ™‚", "๐Ÿ™‹โ€โ™€", "๐Ÿ™‹๐Ÿปโ€โ™€", "๐Ÿ™‹๐Ÿผโ€โ™€", "๐Ÿ™‹๐Ÿฝโ€โ™€", "๐Ÿ™‹๐Ÿพโ€โ™€", "๐Ÿ™‹๐Ÿฟโ€โ™€", "๐Ÿ™‹", "๐Ÿ™‹๐Ÿป", "๐Ÿ™‹๐Ÿผ", "๐Ÿ™‹๐Ÿฝ", "๐Ÿ™‹๐Ÿพ", "๐Ÿ™‹๐Ÿฟ", "๐Ÿ™‹โ€โ™‚", "๐Ÿ™‹๐Ÿปโ€โ™‚", "๐Ÿ™‹๐Ÿผโ€โ™‚", "๐Ÿ™‹๐Ÿฝโ€โ™‚", "๐Ÿ™‹๐Ÿพโ€โ™‚", "๐Ÿ™‹๐Ÿฟโ€โ™‚", "๐Ÿงโ€โ™€", "๐Ÿง๐Ÿปโ€โ™€", "๐Ÿง๐Ÿผโ€โ™€", "๐Ÿง๐Ÿฝโ€โ™€", "๐Ÿง๐Ÿพโ€โ™€", "๐Ÿง๐Ÿฟโ€โ™€", "๐Ÿง", "๐Ÿง๐Ÿป", "๐Ÿง๐Ÿผ", "๐Ÿง๐Ÿฝ", "๐Ÿง๐Ÿพ", "๐Ÿง๐Ÿฟ", "๐Ÿงโ€โ™‚", "๐Ÿง๐Ÿปโ€โ™‚", "๐Ÿง๐Ÿผโ€โ™‚", "๐Ÿง๐Ÿฝโ€โ™‚", "๐Ÿง๐Ÿพโ€โ™‚", "๐Ÿง๐Ÿฟโ€โ™‚", "๐Ÿคฆโ€โ™€", "๐Ÿคฆ๐Ÿปโ€โ™€", "๐Ÿคฆ๐Ÿผโ€โ™€", "๐Ÿคฆ๐Ÿฝโ€โ™€", "๐Ÿคฆ๐Ÿพโ€โ™€", "๐Ÿคฆ๐Ÿฟโ€โ™€", "๐Ÿคฆ", "๐Ÿคฆ๐Ÿป", "๐Ÿคฆ๐Ÿผ", "๐Ÿคฆ๐Ÿฝ", "๐Ÿคฆ๐Ÿพ", "๐Ÿคฆ๐Ÿฟ", "๐Ÿคฆโ€โ™‚", "๐Ÿคฆ๐Ÿปโ€โ™‚", "๐Ÿคฆ๐Ÿผโ€โ™‚", "๐Ÿคฆ๐Ÿฝโ€โ™‚", "๐Ÿคฆ๐Ÿพโ€โ™‚", "๐Ÿคฆ๐Ÿฟโ€โ™‚", "๐Ÿคทโ€โ™€", "๐Ÿคท๐Ÿปโ€โ™€", "๐Ÿคท๐Ÿผโ€โ™€", "๐Ÿคท๐Ÿฝโ€โ™€", "๐Ÿคท๐Ÿพโ€โ™€", "๐Ÿคท๐Ÿฟโ€โ™€", "๐Ÿคท", "๐Ÿคท๐Ÿป", "๐Ÿคท๐Ÿผ", "๐Ÿคท๐Ÿฝ", "๐Ÿคท๐Ÿพ", "๐Ÿคท๐Ÿฟ", "๐Ÿคทโ€โ™‚", "๐Ÿคท๐Ÿปโ€โ™‚", "๐Ÿคท๐Ÿผโ€โ™‚", "๐Ÿคท๐Ÿฝโ€โ™‚", "๐Ÿคท๐Ÿพโ€โ™‚", "๐Ÿคท๐Ÿฟโ€โ™‚", "๐Ÿ™Žโ€โ™€", "๐Ÿ™Ž๐Ÿปโ€โ™€", "๐Ÿ™Ž๐Ÿผโ€โ™€", "๐Ÿ™Ž๐Ÿฝโ€โ™€", "๐Ÿ™Ž๐Ÿพโ€โ™€", "๐Ÿ™Ž๐Ÿฟโ€โ™€", "๐Ÿ™Ž", "๐Ÿ™Ž๐Ÿป", "๐Ÿ™Ž๐Ÿผ", "๐Ÿ™Ž๐Ÿฝ", "๐Ÿ™Ž๐Ÿพ", "๐Ÿ™Ž๐Ÿฟ", "๐Ÿ™Žโ€โ™‚", "๐Ÿ™Ž๐Ÿปโ€โ™‚", "๐Ÿ™Ž๐Ÿผโ€โ™‚", "๐Ÿ™Ž๐Ÿฝโ€โ™‚", "๐Ÿ™Ž๐Ÿพโ€โ™‚", "๐Ÿ™Ž๐Ÿฟโ€โ™‚", "๐Ÿ™โ€โ™€", "๐Ÿ™๐Ÿปโ€โ™€", "๐Ÿ™๐Ÿผโ€โ™€", "๐Ÿ™๐Ÿฝโ€โ™€", "๐Ÿ™๐Ÿพโ€โ™€", "๐Ÿ™๐Ÿฟโ€โ™€", "๐Ÿ™", "๐Ÿ™๐Ÿป", "๐Ÿ™๐Ÿผ", "๐Ÿ™๐Ÿฝ", "๐Ÿ™๐Ÿพ", "๐Ÿ™๐Ÿฟ", "๐Ÿ™โ€โ™‚", "๐Ÿ™๐Ÿปโ€โ™‚", "๐Ÿ™๐Ÿผโ€โ™‚", "๐Ÿ™๐Ÿฝโ€โ™‚", "๐Ÿ™๐Ÿพโ€โ™‚", "๐Ÿ™๐Ÿฟโ€โ™‚", "๐Ÿ’‡โ€โ™€", "๐Ÿ’‡๐Ÿปโ€โ™€", "๐Ÿ’‡๐Ÿผโ€โ™€", "๐Ÿ’‡๐Ÿฝโ€โ™€", "๐Ÿ’‡๐Ÿพโ€โ™€", "๐Ÿ’‡๐Ÿฟโ€โ™€", "๐Ÿ’‡", "๐Ÿ’‡๐Ÿป", "๐Ÿ’‡๐Ÿผ", "๐Ÿ’‡๐Ÿฝ", "๐Ÿ’‡๐Ÿพ", "๐Ÿ’‡๐Ÿฟ", "๐Ÿ’‡โ€โ™‚", "๐Ÿ’‡๐Ÿปโ€โ™‚", "๐Ÿ’‡๐Ÿผโ€โ™‚", "๐Ÿ’‡๐Ÿฝโ€โ™‚", "๐Ÿ’‡๐Ÿพโ€โ™‚", "๐Ÿ’‡๐Ÿฟโ€โ™‚", "๐Ÿ’†โ€โ™€", "๐Ÿ’†๐Ÿปโ€โ™€", "๐Ÿ’†๐Ÿผโ€โ™€", "๐Ÿ’†๐Ÿฝโ€โ™€", "๐Ÿ’†๐Ÿพโ€โ™€", "๐Ÿ’†๐Ÿฟโ€โ™€", "๐Ÿ’†", "๐Ÿ’†๐Ÿป", "๐Ÿ’†๐Ÿผ", "๐Ÿ’†๐Ÿฝ", "๐Ÿ’†๐Ÿพ", "๐Ÿ’†๐Ÿฟ", "๐Ÿ’†โ€โ™‚", "๐Ÿ’†๐Ÿปโ€โ™‚", "๐Ÿ’†๐Ÿผโ€โ™‚", "๐Ÿ’†๐Ÿฝโ€โ™‚", "๐Ÿ’†๐Ÿพโ€โ™‚", "๐Ÿ’†๐Ÿฟโ€โ™‚", "๐Ÿง–โ€โ™€", "๐Ÿง–๐Ÿปโ€โ™€", "๐Ÿง–๐Ÿผโ€โ™€", "๐Ÿง–๐Ÿฝโ€โ™€", "๐Ÿง–๐Ÿพโ€โ™€", "๐Ÿง–๐Ÿฟโ€โ™€", "๐Ÿง–", "๐Ÿง–๐Ÿป", "๐Ÿง–๐Ÿผ", "๐Ÿง–๐Ÿฝ", "๐Ÿง–๐Ÿพ", "๐Ÿง–๐Ÿฟ", "๐Ÿง–โ€โ™‚", "๐Ÿง–๐Ÿปโ€โ™‚", "๐Ÿง–๐Ÿผโ€โ™‚", "๐Ÿง–๐Ÿฝโ€โ™‚", "๐Ÿง–๐Ÿพโ€โ™‚", "๐Ÿง–๐Ÿฟโ€โ™‚", "๐Ÿ’…", "๐Ÿ’…๐Ÿป", "๐Ÿ’…๐Ÿผ", "๐Ÿ’…๐Ÿฝ", "๐Ÿ’…๐Ÿพ", "๐Ÿ’…๐Ÿฟ", "๐Ÿคณ", "๐Ÿคณ๐Ÿป", "๐Ÿคณ๐Ÿผ", "๐Ÿคณ๐Ÿฝ", "๐Ÿคณ๐Ÿพ", "๐Ÿคณ๐Ÿฟ", "๐Ÿ’ƒ", "๐Ÿ’ƒ๐Ÿป", "๐Ÿ’ƒ๐Ÿผ", "๐Ÿ’ƒ๐Ÿฝ", "๐Ÿ’ƒ๐Ÿพ", "๐Ÿ’ƒ๐Ÿฟ", "๐Ÿ•บ", "๐Ÿ•บ๐Ÿป", "๐Ÿ•บ๐Ÿผ", "๐Ÿ•บ๐Ÿฝ", "๐Ÿ•บ๐Ÿพ", "๐Ÿ•บ๐Ÿฟ", "๐Ÿ‘ฏโ€โ™€", "๐Ÿ‘ฏ", "๐Ÿ‘ฏโ€โ™‚", "๐Ÿ•ด", "๐Ÿ•ด๐Ÿป", "๐Ÿ•ด๐Ÿผ", "๐Ÿ•ด๐Ÿฝ", "๐Ÿ•ด๐Ÿพ", "๐Ÿ•ด๐Ÿฟ", "๐Ÿ‘ฉโ€๐Ÿฆฝ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฝ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฝ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฝ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฝ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฝ", "๐Ÿง‘โ€๐Ÿฆฝ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆฝ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆฝ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆฝ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆฝ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆฝ", "๐Ÿ‘จโ€๐Ÿฆฝ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฝ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฝ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฝ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฝ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฝ", "๐Ÿ‘ฉโ€๐Ÿฆผ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆผ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆผ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆผ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆผ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆผ", "๐Ÿง‘โ€๐Ÿฆผ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆผ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆผ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆผ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆผ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆผ", "๐Ÿ‘จโ€๐Ÿฆผ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆผ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆผ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆผ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆผ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆผ", "๐Ÿšถโ€โ™€", "๐Ÿšถ๐Ÿปโ€โ™€", "๐Ÿšถ๐Ÿผโ€โ™€", "๐Ÿšถ๐Ÿฝโ€โ™€", "๐Ÿšถ๐Ÿพโ€โ™€", "๐Ÿšถ๐Ÿฟโ€โ™€", "๐Ÿšถ", "๐Ÿšถ๐Ÿป", "๐Ÿšถ๐Ÿผ", "๐Ÿšถ๐Ÿฝ", "๐Ÿšถ๐Ÿพ", "๐Ÿšถ๐Ÿฟ", "๐Ÿšถโ€โ™‚", "๐Ÿšถ๐Ÿปโ€โ™‚", "๐Ÿšถ๐Ÿผโ€โ™‚", "๐Ÿšถ๐Ÿฝโ€โ™‚", "๐Ÿšถ๐Ÿพโ€โ™‚", "๐Ÿšถ๐Ÿฟโ€โ™‚", "๐Ÿ‘ฉโ€๐Ÿฆฏ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฏ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฏ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฏ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฏ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฏ", "๐Ÿง‘โ€๐Ÿฆฏ", "๐Ÿง‘๐Ÿปโ€๐Ÿฆฏ", "๐Ÿง‘๐Ÿผโ€๐Ÿฆฏ", "๐Ÿง‘๐Ÿฝโ€๐Ÿฆฏ", "๐Ÿง‘๐Ÿพโ€๐Ÿฆฏ", "๐Ÿง‘๐Ÿฟโ€๐Ÿฆฏ", "๐Ÿ‘จโ€๐Ÿฆฏ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฏ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฏ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฏ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฏ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฏ", "๐ŸงŽโ€โ™€", "๐ŸงŽ๐Ÿปโ€โ™€", "๐ŸงŽ๐Ÿผโ€โ™€", "๐ŸงŽ๐Ÿฝโ€โ™€", "๐ŸงŽ๐Ÿพโ€โ™€", "๐ŸงŽ๐Ÿฟโ€โ™€", "๐ŸงŽ", "๐ŸงŽ๐Ÿป", "๐ŸงŽ๐Ÿผ", "๐ŸงŽ๐Ÿฝ", "๐ŸงŽ๐Ÿพ", "๐ŸงŽ๐Ÿฟ", "๐ŸงŽโ€โ™‚", "๐ŸงŽ๐Ÿปโ€โ™‚", "๐ŸงŽ๐Ÿผโ€โ™‚", "๐ŸงŽ๐Ÿฝโ€โ™‚", "๐ŸงŽ๐Ÿพโ€โ™‚", "๐ŸงŽ๐Ÿฟโ€โ™‚", "๐Ÿƒโ€โ™€", "๐Ÿƒ๐Ÿปโ€โ™€", "๐Ÿƒ๐Ÿผโ€โ™€", "๐Ÿƒ๐Ÿฝโ€โ™€", "๐Ÿƒ๐Ÿพโ€โ™€", "๐Ÿƒ๐Ÿฟโ€โ™€", "๐Ÿƒ", "๐Ÿƒ๐Ÿป", "๐Ÿƒ๐Ÿผ", "๐Ÿƒ๐Ÿฝ", "๐Ÿƒ๐Ÿพ", "๐Ÿƒ๐Ÿฟ", "๐Ÿƒโ€โ™‚", "๐Ÿƒ๐Ÿปโ€โ™‚", "๐Ÿƒ๐Ÿผโ€โ™‚", "๐Ÿƒ๐Ÿฝโ€โ™‚", "๐Ÿƒ๐Ÿพโ€โ™‚", "๐Ÿƒ๐Ÿฟโ€โ™‚", "๐Ÿงโ€โ™€", "๐Ÿง๐Ÿปโ€โ™€", "๐Ÿง๐Ÿผโ€โ™€", "๐Ÿง๐Ÿฝโ€โ™€", "๐Ÿง๐Ÿพโ€โ™€", "๐Ÿง๐Ÿฟโ€โ™€", "๐Ÿง", "๐Ÿง๐Ÿป", "๐Ÿง๐Ÿผ", "๐Ÿง๐Ÿฝ", "๐Ÿง๐Ÿพ", "๐Ÿง๐Ÿฟ", "๐Ÿงโ€โ™‚", "๐Ÿง๐Ÿปโ€โ™‚", "๐Ÿง๐Ÿผโ€โ™‚", "๐Ÿง๐Ÿฝโ€โ™‚", "๐Ÿง๐Ÿพโ€โ™‚", "๐Ÿง๐Ÿฟโ€โ™‚", "๐Ÿ‘ซ", "๐Ÿ‘ซ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ซ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ซ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ซ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ซ๐Ÿฟ", "๐Ÿ‘ญ", "๐Ÿ‘ญ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ญ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ญ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ญ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ญ๐Ÿฟ", "๐Ÿ‘ฌ", "๐Ÿ‘ฌ๐Ÿป", "๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฌ๐Ÿผ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฌ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฌ๐Ÿพ", "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฌ๐Ÿฟ", "๐Ÿ‘ฉโ€โคโ€๐Ÿ‘จ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉโ€โคโ€๐Ÿ‘ฉ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ’‘", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿฟ", "๐Ÿ‘จโ€โคโ€๐Ÿ‘จ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘ฉโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "๐Ÿ’", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "๐Ÿ‘จโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง", "๐Ÿชข", "๐Ÿงถ", "๐Ÿงต", "๐Ÿชก", "๐Ÿงฅ", "๐Ÿฅผ", "๐Ÿฆบ", "๐Ÿ‘š", "๐Ÿ‘•", "๐Ÿ‘–", "๐Ÿฉฒ", "๐Ÿฉณ", "๐Ÿ‘”", "๐Ÿ‘—", "๐Ÿ‘™", "๐Ÿฉฑ", "๐Ÿ‘˜", "๐Ÿฅป", "๐Ÿฉด", "๐Ÿฅฟ", "๐Ÿ‘ ", "๐Ÿ‘ก", "๐Ÿ‘ข", "๐Ÿ‘ž", "๐Ÿ‘Ÿ", "๐Ÿฅพ", "๐Ÿงฆ", "๐Ÿงค", "๐Ÿงฃ", "๐ŸŽฉ", "๐Ÿงข", "๐Ÿ‘’", "๐ŸŽ“", "โ›‘", "๐Ÿช–", "๐Ÿ‘‘", "๐Ÿ’", "๐Ÿ‘", "๐Ÿ‘›", "๐Ÿ‘œ", "๐Ÿ’ผ", "๐ŸŽ’", "๐Ÿงณ", "๐Ÿ‘“", "๐Ÿ•ถ", "๐Ÿฅฝ", "๐ŸŒ‚" }, new String[]{ - "๐Ÿถ", "๐Ÿฑ", "๐Ÿญ", "๐Ÿน", "๐Ÿฐ", "๐ŸฆŠ", "๐Ÿป", "๐Ÿผ", "๐Ÿปโ€โ„", "๐Ÿจ", "๐Ÿฏ", "๐Ÿฆ", "๐Ÿฎ", "๐Ÿท", "๐Ÿฝ", "๐Ÿธ", "๐Ÿต", "๐Ÿ™ˆ", "๐Ÿ™‰", "๐Ÿ™Š", "๐Ÿ’", "๐Ÿ”", "๐Ÿง", "๐Ÿฆ", "๐Ÿค", "๐Ÿฃ", "๐Ÿฅ", "๐Ÿชฟ", "๐Ÿฆ†", "๐Ÿฆโ€โฌ›", "๐Ÿฆ…", "๐Ÿฆ‰", "๐Ÿฆ‡", "๐Ÿบ", "๐Ÿ—", "๐Ÿด", "๐Ÿฆ„", "๐ŸซŽ", "๐Ÿ", "๐Ÿชฑ", "๐Ÿ›", "๐Ÿฆ‹", "๐ŸŒ", "๐Ÿž", "๐Ÿœ", "๐Ÿชฐ", "๐Ÿชฒ", "๐Ÿชณ", "๐ŸฆŸ", "๐Ÿฆ—", "๐Ÿ•ท", "๐Ÿ•ธ", "๐Ÿฆ‚", "๐Ÿข", "๐Ÿ", "๐ŸฆŽ", "๐Ÿฆ–", "๐Ÿฆ•", "๐Ÿ™", "๐Ÿฆ‘", "๐Ÿชผ", "๐Ÿฆ", "๐Ÿฆž", "๐Ÿฆ€", "๐Ÿก", "๐Ÿ ", "๐ŸŸ", "๐Ÿฌ", "๐Ÿณ", "๐Ÿ‹", "๐Ÿฆˆ", "๐Ÿฆญ", "๐ŸŠ", "๐Ÿ…", "๐Ÿ†", "๐Ÿฆ“", "๐Ÿฆ", "๐Ÿฆง", "๐Ÿฆฃ", "๐Ÿ˜", "๐Ÿฆ›", "๐Ÿฆ", "๐Ÿช", "๐Ÿซ", "๐Ÿฆ’", "๐Ÿฆ˜", "๐Ÿฆฌ", "๐Ÿƒ", "๐Ÿ‚", "๐Ÿ„", "๐Ÿซ", "๐ŸŽ", "๐Ÿ–", "๐Ÿ", "๐Ÿ‘", "๐Ÿฆ™", "๐Ÿ", "๐ŸฆŒ", "๐Ÿ•", "๐Ÿฉ", "๐Ÿฆฎ", "๐Ÿ•โ€๐Ÿฆบ", "๐Ÿˆ", "๐Ÿˆโ€โฌ›", "๐Ÿชถ", "๐Ÿชฝ", "๐Ÿ“", "๐Ÿฆƒ", "๐Ÿฆค", "๐Ÿฆš", "๐Ÿฆœ", "๐Ÿฆข", "๐Ÿฆฉ", "๐Ÿ•Š", "๐Ÿ‡", "๐Ÿฆ", "๐Ÿฆจ", "๐Ÿฆก", "๐Ÿฆซ", "๐Ÿฆฆ", "๐Ÿฆฅ", "๐Ÿ", "๐Ÿ€", "๐Ÿฟ", "๐Ÿฆ”", "๐Ÿพ", "๐Ÿ‰", "๐Ÿฒ", "๐ŸŒต", "๐ŸŽ„", "๐ŸŒฒ", "๐ŸŒณ", "๐ŸŒด", "๐Ÿชต", "๐ŸŒฑ", "๐ŸŒฟ", "โ˜˜", "๐Ÿ€", "๐ŸŽ", "๐Ÿชด", "๐ŸŽ‹", "๐Ÿƒ", "๐Ÿ‚", "๐Ÿ", "๐Ÿชบ", "๐Ÿชน", "๐Ÿ„", "๐Ÿš", "๐Ÿชธ", "๐Ÿชจ", "๐ŸŒพ", "๐Ÿ’", "๐ŸŒท", "๐ŸŒน", "๐Ÿฅ€", "๐Ÿชป", "๐Ÿชท", "๐ŸŒบ", "๐ŸŒธ", "๐ŸŒผ", "๐ŸŒป", "๐ŸŒž", "๐ŸŒ", "๐ŸŒ›", "๐ŸŒœ", "๐ŸŒš", "๐ŸŒ•", "๐ŸŒ–", "๐ŸŒ—", "๐ŸŒ˜", "๐ŸŒ‘", "๐ŸŒ’", "๐ŸŒ“", "๐ŸŒ”", "๐ŸŒ™", "๐ŸŒŽ", "๐ŸŒ", "๐ŸŒ", "๐Ÿช", "๐Ÿ’ซ", "โญ", "๐ŸŒŸ", "โœจ", "โšก", "โ˜„", "๐Ÿ’ฅ", "๐Ÿ”ฅ", "๐ŸŒช", "๐ŸŒˆ", "โ˜€", "๐ŸŒค", "โ›…", "๐ŸŒฅ", "โ˜", "๐ŸŒฆ", "๐ŸŒง", "โ›ˆ", "๐ŸŒฉ", "๐ŸŒจ", "โ„", "โ˜ƒ", "โ›„", "๐ŸŒฌ", "๐Ÿ’จ", "๐Ÿ’ง", "๐Ÿ’ฆ", "๐Ÿซง", "โ˜”", "โ˜‚", "๐ŸŒŠ", "๐ŸŒซ" + "๐Ÿถ", "๐Ÿฑ", "๐Ÿญ", "๐Ÿน", "๐Ÿฐ", "๐ŸฆŠ", "๐Ÿป", "๐Ÿผ", "๐Ÿปโ€โ„", "๐Ÿจ", "๐Ÿฏ", "๐Ÿฆ", "๐Ÿฎ", "๐Ÿท", "๐Ÿฝ", "๐Ÿธ", "๐Ÿต", "๐Ÿ™ˆ", "๐Ÿ™‰", "๐Ÿ™Š", "๐Ÿ’", "๐Ÿ”", "๐Ÿง", "๐Ÿฆ", "๐Ÿค", "๐Ÿฃ", "๐Ÿฅ", "๐Ÿชฟ", "๐Ÿฆ†", "๐Ÿฆโ€โฌ›", "๐Ÿฆ…", "๐Ÿฆ‰", "๐Ÿฆ‡", "๐Ÿบ", "๐Ÿ—", "๐Ÿด", "๐Ÿฆ„", "๐ŸซŽ", "๐Ÿ", "๐Ÿชฑ", "๐Ÿ›", "๐Ÿฆ‹", "๐ŸŒ", "๐Ÿž", "๐Ÿœ", "๐Ÿชฐ", "๐Ÿชฒ", "๐Ÿชณ", "๐ŸฆŸ", "๐Ÿฆ—", "๐Ÿ•ท", "๐Ÿ•ธ", "๐Ÿฆ‚", "๐Ÿข", "๐Ÿ", "๐ŸฆŽ", "๐Ÿฆ–", "๐Ÿฆ•", "๐Ÿ™", "๐Ÿฆ‘", "๐Ÿชผ", "๐Ÿฆ", "๐Ÿฆž", "๐Ÿฆ€", "๐Ÿก", "๐Ÿ ", "๐ŸŸ", "๐Ÿฌ", "๐Ÿณ", "๐Ÿ‹", "๐Ÿฆˆ", "๐Ÿฆญ", "๐ŸŠ", "๐Ÿ…", "๐Ÿ†", "๐Ÿฆ“", "๐Ÿฆ", "๐Ÿฆง", "๐Ÿฆฃ", "๐Ÿ˜", "๐Ÿฆ›", "๐Ÿฆ", "๐Ÿช", "๐Ÿซ", "๐Ÿฆ’", "๐Ÿฆ˜", "๐Ÿฆฌ", "๐Ÿƒ", "๐Ÿ‚", "๐Ÿ„", "๐Ÿซ", "๐ŸŽ", "๐Ÿ–", "๐Ÿ", "๐Ÿ‘", "๐Ÿฆ™", "๐Ÿ", "๐ŸฆŒ", "๐Ÿ•", "๐Ÿฉ", "๐Ÿฆฎ", "๐Ÿ•โ€๐Ÿฆบ", "๐Ÿˆ", "๐Ÿˆโ€โฌ›", "๐Ÿชถ", "๐Ÿชฝ", "๐Ÿ“", "๐Ÿฆƒ", "๐Ÿฆค", "๐Ÿฆš", "๐Ÿฆœ", "๐Ÿฆข", "๐Ÿฆฉ", "๐Ÿ•Š", "๐Ÿ‡", "๐Ÿฆ", "๐Ÿฆจ", "๐Ÿฆก", "๐Ÿฆซ", "๐Ÿฆฆ", "๐Ÿฆฅ", "๐Ÿ", "๐Ÿ€", "๐Ÿฟ", "๐Ÿฆ”", "๐Ÿพ", "๐Ÿ‰", "๐Ÿฒ", "๐Ÿฆโ€๐Ÿ”ฅ", "๐ŸŒต", "๐ŸŽ„", "๐ŸŒฒ", "๐ŸŒณ", "๐ŸŒด", "๐Ÿชต", "๐ŸŒฑ", "๐ŸŒฟ", "โ˜˜", "๐Ÿ€", "๐ŸŽ", "๐Ÿชด", "๐ŸŽ‹", "๐Ÿƒ", "๐Ÿ‚", "๐Ÿ", "๐Ÿชบ", "๐Ÿชน", "๐Ÿ„", "๐Ÿ„โ€๐ŸŸซ", "๐Ÿš", "๐Ÿชธ", "๐Ÿชจ", "๐ŸŒพ", "๐Ÿ’", "๐ŸŒท", "๐ŸŒน", "๐Ÿฅ€", "๐Ÿชป", "๐Ÿชท", "๐ŸŒบ", "๐ŸŒธ", "๐ŸŒผ", "๐ŸŒป", "๐ŸŒž", "๐ŸŒ", "๐ŸŒ›", "๐ŸŒœ", "๐ŸŒš", "๐ŸŒ•", "๐ŸŒ–", "๐ŸŒ—", "๐ŸŒ˜", "๐ŸŒ‘", "๐ŸŒ’", "๐ŸŒ“", "๐ŸŒ”", "๐ŸŒ™", "๐ŸŒŽ", "๐ŸŒ", "๐ŸŒ", "๐Ÿช", "๐Ÿ’ซ", "โญ", "๐ŸŒŸ", "โœจ", "โšก", "โ˜„", "๐Ÿ’ฅ", "๐Ÿ”ฅ", "๐ŸŒช", "๐ŸŒˆ", "โ˜€", "๐ŸŒค", "โ›…", "๐ŸŒฅ", "โ˜", "๐ŸŒฆ", "๐ŸŒง", "โ›ˆ", "๐ŸŒฉ", "๐ŸŒจ", "โ„", "โ˜ƒ", "โ›„", "๐ŸŒฌ", "๐Ÿ’จ", "๐Ÿ’ง", "๐Ÿ’ฆ", "๐Ÿซง", "โ˜”", "โ˜‚", "๐ŸŒŠ", "๐ŸŒซ" }, new String[]{ - "๐Ÿ", "๐ŸŽ", "๐Ÿ", "๐ŸŠ", "๐Ÿ‹", "๐ŸŒ", "๐Ÿ‰", "๐Ÿ‡", "๐Ÿ“", "๐Ÿซ", "๐Ÿˆ", "๐Ÿ’", "๐Ÿ‘", "๐Ÿฅญ", "๐Ÿ", "๐Ÿฅฅ", "๐Ÿฅ", "๐Ÿ…", "๐Ÿ†", "๐Ÿฅ‘", "๐Ÿซ›", "๐Ÿฅฆ", "๐Ÿฅฌ", "๐Ÿฅ’", "๐ŸŒถ", "๐Ÿซ‘", "๐ŸŒฝ", "๐Ÿฅ•", "๐Ÿซ’", "๐Ÿง„", "๐Ÿง…", "๐Ÿฅ”", "๐Ÿ ", "๐Ÿซš", "๐Ÿฅ", "๐Ÿฅฏ", "๐Ÿž", "๐Ÿฅ–", "๐Ÿฅจ", "๐Ÿง€", "๐Ÿฅš", "๐Ÿณ", "๐Ÿงˆ", "๐Ÿฅž", "๐Ÿง‡", "๐Ÿฅ“", "๐Ÿฅฉ", "๐Ÿ—", "๐Ÿ–", "๐Ÿฆด", "๐ŸŒญ", "๐Ÿ”", "๐ŸŸ", "๐Ÿ•", "๐Ÿซ“", "๐Ÿฅช", "๐Ÿฅ™", "๐Ÿง†", "๐ŸŒฎ", "๐ŸŒฏ", "๐Ÿซ”", "๐Ÿฅ—", "๐Ÿฅ˜", "๐Ÿซ•", "๐Ÿฅซ", "๐Ÿซ™", "๐Ÿ", "๐Ÿœ", "๐Ÿฒ", "๐Ÿ›", "๐Ÿฃ", "๐Ÿฑ", "๐ŸฅŸ", "๐Ÿฆช", "๐Ÿค", "๐Ÿ™", "๐Ÿš", "๐Ÿ˜", "๐Ÿฅ", "๐Ÿฅ ", "๐Ÿฅฎ", "๐Ÿข", "๐Ÿก", "๐Ÿง", "๐Ÿจ", "๐Ÿฆ", "๐Ÿฅง", "๐Ÿง", "๐Ÿฐ", "๐ŸŽ‚", "๐Ÿฎ", "๐Ÿญ", "๐Ÿฌ", "๐Ÿซ", "๐Ÿฟ", "๐Ÿฉ", "๐Ÿช", "๐ŸŒฐ", "๐Ÿฅœ", "๐Ÿซ˜", "๐Ÿฏ", "๐Ÿฅ›", "๐Ÿซ—", "๐Ÿผ", "๐Ÿซ–", "โ˜•", "๐Ÿต", "๐Ÿงƒ", "๐Ÿฅค", "๐Ÿง‹", "๐Ÿถ", "๐Ÿบ", "๐Ÿป", "๐Ÿฅ‚", "๐Ÿท", "๐Ÿฅƒ", "๐Ÿธ", "๐Ÿน", "๐Ÿง‰", "๐Ÿพ", "๐ŸงŠ", "๐Ÿฅ„", "๐Ÿด", "๐Ÿฝ", "๐Ÿฅฃ", "๐Ÿฅก", "๐Ÿฅข", "๐Ÿง‚" + "๐Ÿ", "๐ŸŽ", "๐Ÿ", "๐ŸŠ", "๐Ÿ‹", "๐Ÿ‹โ€๐ŸŸฉ", "๐ŸŒ", "๐Ÿ‰", "๐Ÿ‡", "๐Ÿ“", "๐Ÿซ", "๐Ÿˆ", "๐Ÿ’", "๐Ÿ‘", "๐Ÿฅญ", "๐Ÿ", "๐Ÿฅฅ", "๐Ÿฅ", "๐Ÿ…", "๐Ÿ†", "๐Ÿฅ‘", "๐Ÿซ›", "๐Ÿฅฆ", "๐Ÿฅฌ", "๐Ÿฅ’", "๐ŸŒถ", "๐Ÿซ‘", "๐ŸŒฝ", "๐Ÿฅ•", "๐Ÿซ’", "๐Ÿง„", "๐Ÿง…", "๐Ÿฅ”", "๐Ÿ ", "๐Ÿซš", "๐Ÿฅ", "๐Ÿฅฏ", "๐Ÿž", "๐Ÿฅ–", "๐Ÿฅจ", "๐Ÿง€", "๐Ÿฅš", "๐Ÿณ", "๐Ÿงˆ", "๐Ÿฅž", "๐Ÿง‡", "๐Ÿฅ“", "๐Ÿฅฉ", "๐Ÿ—", "๐Ÿ–", "๐Ÿฆด", "๐ŸŒญ", "๐Ÿ”", "๐ŸŸ", "๐Ÿ•", "๐Ÿซ“", "๐Ÿฅช", "๐Ÿฅ™", "๐Ÿง†", "๐ŸŒฎ", "๐ŸŒฏ", "๐Ÿซ”", "๐Ÿฅ—", "๐Ÿฅ˜", "๐Ÿซ•", "๐Ÿฅซ", "๐Ÿซ™", "๐Ÿ", "๐Ÿœ", "๐Ÿฒ", "๐Ÿ›", "๐Ÿฃ", "๐Ÿฑ", "๐ŸฅŸ", "๐Ÿฆช", "๐Ÿค", "๐Ÿ™", "๐Ÿš", "๐Ÿ˜", "๐Ÿฅ", "๐Ÿฅ ", "๐Ÿฅฎ", "๐Ÿข", "๐Ÿก", "๐Ÿง", "๐Ÿจ", "๐Ÿฆ", "๐Ÿฅง", "๐Ÿง", "๐Ÿฐ", "๐ŸŽ‚", "๐Ÿฎ", "๐Ÿญ", "๐Ÿฌ", "๐Ÿซ", "๐Ÿฟ", "๐Ÿฉ", "๐Ÿช", "๐ŸŒฐ", "๐Ÿฅœ", "๐Ÿซ˜", "๐Ÿฏ", "๐Ÿฅ›", "๐Ÿซ—", "๐Ÿผ", "๐Ÿซ–", "โ˜•", "๐Ÿต", "๐Ÿงƒ", "๐Ÿฅค", "๐Ÿง‹", "๐Ÿถ", "๐Ÿบ", "๐Ÿป", "๐Ÿฅ‚", "๐Ÿท", "๐Ÿฅƒ", "๐Ÿธ", "๐Ÿน", "๐Ÿง‰", "๐Ÿพ", "๐ŸงŠ", "๐Ÿฅ„", "๐Ÿด", "๐Ÿฝ", "๐Ÿฅฃ", "๐Ÿฅก", "๐Ÿฅข", "๐Ÿง‚" }, new String[]{ "โšฝ", "๐Ÿ€", "๐Ÿˆ", "โšพ", "๐ŸฅŽ", "๐ŸŽพ", "๐Ÿ", "๐Ÿ‰", "๐Ÿฅ", "๐ŸŽฑ", "๐Ÿช€", "๐Ÿ“", "๐Ÿธ", "๐Ÿ’", "๐Ÿ‘", "๐Ÿฅ", "๐Ÿ", "๐Ÿชƒ", "๐Ÿฅ…", "โ›ณ", "๐Ÿช", "๐Ÿ›", "๐Ÿน", "๐ŸŽฃ", "๐Ÿคฟ", "๐ŸฅŠ", "๐Ÿฅ‹", "๐ŸŽฝ", "๐Ÿ›น", "๐Ÿ›ผ", "๐Ÿ›ท", "โ›ธ", "๐ŸฅŒ", "๐ŸŽฟ", "โ›ท", "๐Ÿ‚", "๐Ÿช‚", "๐Ÿ‹โ€โ™€", "๐Ÿ‹๐Ÿปโ€โ™€", "๐Ÿ‹๐Ÿผโ€โ™€", "๐Ÿ‹๐Ÿฝโ€โ™€", "๐Ÿ‹๐Ÿพโ€โ™€", "๐Ÿ‹๐Ÿฟโ€โ™€", "๐Ÿ‹", "๐Ÿ‹๐Ÿป", "๐Ÿ‹๐Ÿผ", "๐Ÿ‹๐Ÿฝ", "๐Ÿ‹๐Ÿพ", "๐Ÿ‹๐Ÿฟ", "๐Ÿ‹โ€โ™‚", "๐Ÿ‹๐Ÿปโ€โ™‚", "๐Ÿ‹๐Ÿผโ€โ™‚", "๐Ÿ‹๐Ÿฝโ€โ™‚", "๐Ÿ‹๐Ÿพโ€โ™‚", "๐Ÿ‹๐Ÿฟโ€โ™‚", "๐Ÿคผโ€โ™€", "๐Ÿคผ", "๐Ÿคผโ€โ™‚", "๐Ÿคธโ€โ™€", "๐Ÿคธ๐Ÿปโ€โ™€", "๐Ÿคธ๐Ÿผโ€โ™€", "๐Ÿคธ๐Ÿฝโ€โ™€", "๐Ÿคธ๐Ÿพโ€โ™€", "๐Ÿคธ๐Ÿฟโ€โ™€", "๐Ÿคธ", "๐Ÿคธ๐Ÿป", "๐Ÿคธ๐Ÿผ", "๐Ÿคธ๐Ÿฝ", "๐Ÿคธ๐Ÿพ", "๐Ÿคธ๐Ÿฟ", "๐Ÿคธโ€โ™‚", "๐Ÿคธ๐Ÿปโ€โ™‚", "๐Ÿคธ๐Ÿผโ€โ™‚", "๐Ÿคธ๐Ÿฝโ€โ™‚", "๐Ÿคธ๐Ÿพโ€โ™‚", "๐Ÿคธ๐Ÿฟโ€โ™‚", "โ›นโ€โ™€", "โ›น๐Ÿปโ€โ™€", "โ›น๐Ÿผโ€โ™€", "โ›น๐Ÿฝโ€โ™€", "โ›น๐Ÿพโ€โ™€", "โ›น๐Ÿฟโ€โ™€", "โ›น", "โ›น๐Ÿป", "โ›น๐Ÿผ", "โ›น๐Ÿฝ", "โ›น๐Ÿพ", "โ›น๐Ÿฟ", "โ›นโ€โ™‚", "โ›น๐Ÿปโ€โ™‚", "โ›น๐Ÿผโ€โ™‚", "โ›น๐Ÿฝโ€โ™‚", "โ›น๐Ÿพโ€โ™‚", "โ›น๐Ÿฟโ€โ™‚", "๐Ÿคบ", "๐Ÿคพโ€โ™€", "๐Ÿคพ๐Ÿปโ€โ™€", "๐Ÿคพ๐Ÿผโ€โ™€", "๐Ÿคพ๐Ÿฝโ€โ™€", "๐Ÿคพ๐Ÿพโ€โ™€", "๐Ÿคพ๐Ÿฟโ€โ™€", "๐Ÿคพ", "๐Ÿคพ๐Ÿป", "๐Ÿคพ๐Ÿผ", "๐Ÿคพ๐Ÿฝ", "๐Ÿคพ๐Ÿพ", "๐Ÿคพ๐Ÿฟ", "๐Ÿคพโ€โ™‚", "๐Ÿคพ๐Ÿปโ€โ™‚", "๐Ÿคพ๐Ÿผโ€โ™‚", "๐Ÿคพ๐Ÿฝโ€โ™‚", "๐Ÿคพ๐Ÿพโ€โ™‚", "๐Ÿคพ๐Ÿฟโ€โ™‚", "๐ŸŒโ€โ™€", "๐ŸŒ๐Ÿปโ€โ™€", "๐ŸŒ๐Ÿผโ€โ™€", "๐ŸŒ๐Ÿฝโ€โ™€", "๐ŸŒ๐Ÿพโ€โ™€", "๐ŸŒ๐Ÿฟโ€โ™€", "๐ŸŒ", "๐ŸŒ๐Ÿป", "๐ŸŒ๐Ÿผ", "๐ŸŒ๐Ÿฝ", "๐ŸŒ๐Ÿพ", "๐ŸŒ๐Ÿฟ", "๐ŸŒโ€โ™‚", "๐ŸŒ๐Ÿปโ€โ™‚", "๐ŸŒ๐Ÿผโ€โ™‚", "๐ŸŒ๐Ÿฝโ€โ™‚", "๐ŸŒ๐Ÿพโ€โ™‚", "๐ŸŒ๐Ÿฟโ€โ™‚", "๐Ÿ‡", "๐Ÿ‡๐Ÿป", "๐Ÿ‡๐Ÿผ", "๐Ÿ‡๐Ÿฝ", "๐Ÿ‡๐Ÿพ", "๐Ÿ‡๐Ÿฟ", "๐Ÿง˜โ€โ™€", "๐Ÿง˜๐Ÿปโ€โ™€", "๐Ÿง˜๐Ÿผโ€โ™€", "๐Ÿง˜๐Ÿฝโ€โ™€", "๐Ÿง˜๐Ÿพโ€โ™€", "๐Ÿง˜๐Ÿฟโ€โ™€", "๐Ÿง˜", "๐Ÿง˜๐Ÿป", "๐Ÿง˜๐Ÿผ", "๐Ÿง˜๐Ÿฝ", "๐Ÿง˜๐Ÿพ", "๐Ÿง˜๐Ÿฟ", "๐Ÿง˜โ€โ™‚", "๐Ÿง˜๐Ÿปโ€โ™‚", "๐Ÿง˜๐Ÿผโ€โ™‚", "๐Ÿง˜๐Ÿฝโ€โ™‚", "๐Ÿง˜๐Ÿพโ€โ™‚", "๐Ÿง˜๐Ÿฟโ€โ™‚", "๐Ÿ„โ€โ™€", "๐Ÿ„๐Ÿปโ€โ™€", "๐Ÿ„๐Ÿผโ€โ™€", "๐Ÿ„๐Ÿฝโ€โ™€", "๐Ÿ„๐Ÿพโ€โ™€", "๐Ÿ„๐Ÿฟโ€โ™€", "๐Ÿ„", "๐Ÿ„๐Ÿป", "๐Ÿ„๐Ÿผ", "๐Ÿ„๐Ÿฝ", "๐Ÿ„๐Ÿพ", "๐Ÿ„๐Ÿฟ", "๐Ÿ„โ€โ™‚", "๐Ÿ„๐Ÿปโ€โ™‚", "๐Ÿ„๐Ÿผโ€โ™‚", "๐Ÿ„๐Ÿฝโ€โ™‚", "๐Ÿ„๐Ÿพโ€โ™‚", "๐Ÿ„๐Ÿฟโ€โ™‚", "๐ŸŠโ€โ™€", "๐ŸŠ๐Ÿปโ€โ™€", "๐ŸŠ๐Ÿผโ€โ™€", "๐ŸŠ๐Ÿฝโ€โ™€", "๐ŸŠ๐Ÿพโ€โ™€", "๐ŸŠ๐Ÿฟโ€โ™€", "๐ŸŠ", "๐ŸŠ๐Ÿป", "๐ŸŠ๐Ÿผ", "๐ŸŠ๐Ÿฝ", "๐ŸŠ๐Ÿพ", "๐ŸŠ๐Ÿฟ", "๐ŸŠโ€โ™‚", "๐ŸŠ๐Ÿปโ€โ™‚", "๐ŸŠ๐Ÿผโ€โ™‚", "๐ŸŠ๐Ÿฝโ€โ™‚", "๐ŸŠ๐Ÿพโ€โ™‚", "๐ŸŠ๐Ÿฟโ€โ™‚", "๐Ÿคฝโ€โ™€", "๐Ÿคฝ๐Ÿปโ€โ™€", "๐Ÿคฝ๐Ÿผโ€โ™€", "๐Ÿคฝ๐Ÿฝโ€โ™€", "๐Ÿคฝ๐Ÿพโ€โ™€", "๐Ÿคฝ๐Ÿฟโ€โ™€", "๐Ÿคฝ", "๐Ÿคฝ๐Ÿป", "๐Ÿคฝ๐Ÿผ", "๐Ÿคฝ๐Ÿฝ", "๐Ÿคฝ๐Ÿพ", "๐Ÿคฝ๐Ÿฟ", "๐Ÿคฝโ€โ™‚", "๐Ÿคฝ๐Ÿปโ€โ™‚", "๐Ÿคฝ๐Ÿผโ€โ™‚", "๐Ÿคฝ๐Ÿฝโ€โ™‚", "๐Ÿคฝ๐Ÿพโ€โ™‚", "๐Ÿคฝ๐Ÿฟโ€โ™‚", "๐Ÿšฃโ€โ™€", "๐Ÿšฃ๐Ÿปโ€โ™€", "๐Ÿšฃ๐Ÿผโ€โ™€", "๐Ÿšฃ๐Ÿฝโ€โ™€", "๐Ÿšฃ๐Ÿพโ€โ™€", "๐Ÿšฃ๐Ÿฟโ€โ™€", "๐Ÿšฃ", "๐Ÿšฃ๐Ÿป", "๐Ÿšฃ๐Ÿผ", "๐Ÿšฃ๐Ÿฝ", "๐Ÿšฃ๐Ÿพ", "๐Ÿšฃ๐Ÿฟ", "๐Ÿšฃโ€โ™‚", "๐Ÿšฃ๐Ÿปโ€โ™‚", "๐Ÿšฃ๐Ÿผโ€โ™‚", "๐Ÿšฃ๐Ÿฝโ€โ™‚", "๐Ÿšฃ๐Ÿพโ€โ™‚", "๐Ÿšฃ๐Ÿฟโ€โ™‚", "๐Ÿง—โ€โ™€", "๐Ÿง—๐Ÿปโ€โ™€", "๐Ÿง—๐Ÿผโ€โ™€", "๐Ÿง—๐Ÿฝโ€โ™€", "๐Ÿง—๐Ÿพโ€โ™€", "๐Ÿง—๐Ÿฟโ€โ™€", "๐Ÿง—", "๐Ÿง—๐Ÿป", "๐Ÿง—๐Ÿผ", "๐Ÿง—๐Ÿฝ", "๐Ÿง—๐Ÿพ", "๐Ÿง—๐Ÿฟ", "๐Ÿง—โ€โ™‚", "๐Ÿง—๐Ÿปโ€โ™‚", "๐Ÿง—๐Ÿผโ€โ™‚", "๐Ÿง—๐Ÿฝโ€โ™‚", "๐Ÿง—๐Ÿพโ€โ™‚", "๐Ÿง—๐Ÿฟโ€โ™‚", "๐Ÿšตโ€โ™€", "๐Ÿšต๐Ÿปโ€โ™€", "๐Ÿšต๐Ÿผโ€โ™€", "๐Ÿšต๐Ÿฝโ€โ™€", "๐Ÿšต๐Ÿพโ€โ™€", "๐Ÿšต๐Ÿฟโ€โ™€", "๐Ÿšต", "๐Ÿšต๐Ÿป", "๐Ÿšต๐Ÿผ", "๐Ÿšต๐Ÿฝ", "๐Ÿšต๐Ÿพ", "๐Ÿšต๐Ÿฟ", "๐Ÿšตโ€โ™‚", "๐Ÿšต๐Ÿปโ€โ™‚", "๐Ÿšต๐Ÿผโ€โ™‚", "๐Ÿšต๐Ÿฝโ€โ™‚", "๐Ÿšต๐Ÿพโ€โ™‚", "๐Ÿšต๐Ÿฟโ€โ™‚", "๐Ÿšดโ€โ™€", "๐Ÿšด๐Ÿปโ€โ™€", "๐Ÿšด๐Ÿผโ€โ™€", "๐Ÿšด๐Ÿฝโ€โ™€", "๐Ÿšด๐Ÿพโ€โ™€", "๐Ÿšด๐Ÿฟโ€โ™€", "๐Ÿšด", "๐Ÿšด๐Ÿป", "๐Ÿšด๐Ÿผ", "๐Ÿšด๐Ÿฝ", "๐Ÿšด๐Ÿพ", "๐Ÿšด๐Ÿฟ", "๐Ÿšดโ€โ™‚", "๐Ÿšด๐Ÿปโ€โ™‚", "๐Ÿšด๐Ÿผโ€โ™‚", "๐Ÿšด๐Ÿฝโ€โ™‚", "๐Ÿšด๐Ÿพโ€โ™‚", "๐Ÿšด๐Ÿฟโ€โ™‚", "๐Ÿ†", "๐Ÿฅ‡", "๐Ÿฅˆ", "๐Ÿฅ‰", "๐Ÿ…", "๐ŸŽ–", "๐Ÿต", "๐ŸŽ—", "๐ŸŽซ", "๐ŸŽŸ", "๐ŸŽช", "๐Ÿคนโ€โ™€", "๐Ÿคน๐Ÿปโ€โ™€", "๐Ÿคน๐Ÿผโ€โ™€", "๐Ÿคน๐Ÿฝโ€โ™€", "๐Ÿคน๐Ÿพโ€โ™€", "๐Ÿคน๐Ÿฟโ€โ™€", "๐Ÿคน", "๐Ÿคน๐Ÿป", "๐Ÿคน๐Ÿผ", "๐Ÿคน๐Ÿฝ", "๐Ÿคน๐Ÿพ", "๐Ÿคน๐Ÿฟ", "๐Ÿคนโ€โ™‚", "๐Ÿคน๐Ÿปโ€โ™‚", "๐Ÿคน๐Ÿผโ€โ™‚", "๐Ÿคน๐Ÿฝโ€โ™‚", "๐Ÿคน๐Ÿพโ€โ™‚", "๐Ÿคน๐Ÿฟโ€โ™‚", "๐ŸŽญ", "๐Ÿฉฐ", "๐ŸŽจ", "๐ŸŽฌ", "๐ŸŽค", "๐ŸŽง", "๐ŸŽผ", "๐ŸŽน", "๐Ÿช‡", "๐Ÿฅ", "๐Ÿช˜", "๐ŸŽท", "๐ŸŽบ", "๐Ÿช—", "๐ŸŽธ", "๐Ÿช•", "๐ŸŽป", "๐Ÿชˆ", "๐ŸŽฒ", "โ™Ÿ", "๐ŸŽฏ", "๐ŸŽณ", "๐ŸŽฎ", "๐ŸŽฐ", "๐Ÿงฉ" @@ -520,7 +505,7 @@ public class EmojiData { "๐Ÿš—", "๐Ÿš•", "๐Ÿš™", "๐ŸšŒ", "๐ŸšŽ", "๐ŸŽ", "๐Ÿš“", "๐Ÿš‘", "๐Ÿš’", "๐Ÿš", "๐Ÿ›ป", "๐Ÿšš", "๐Ÿš›", "๐Ÿšœ", "๐Ÿฆฏ", "๐Ÿฆฝ", "๐Ÿฆผ", "๐Ÿฉผ", "๐Ÿ›ด", "๐Ÿšฒ", "๐Ÿ›ต", "๐Ÿ", "๐Ÿ›บ", "๐Ÿ›ž", "๐Ÿšจ", "๐Ÿš”", "๐Ÿš", "๐Ÿš˜", "๐Ÿš–", "๐Ÿšก", "๐Ÿš ", "๐ŸšŸ", "๐Ÿšƒ", "๐Ÿš‹", "๐Ÿšž", "๐Ÿš", "๐Ÿš„", "๐Ÿš…", "๐Ÿšˆ", "๐Ÿš‚", "๐Ÿš†", "๐Ÿš‡", "๐ŸšŠ", "๐Ÿš‰", "โœˆ", "๐Ÿ›ซ", "๐Ÿ›ฌ", "๐Ÿ›ฉ", "๐Ÿ’บ", "๐Ÿ›ฐ", "๐Ÿš€", "๐Ÿ›ธ", "๐Ÿš", "๐Ÿ›ถ", "โ›ต", "๐Ÿšค", "๐Ÿ›ฅ", "๐Ÿ›ณ", "โ›ด", "๐Ÿšข", "๐Ÿ›Ÿ", "โš“", "๐Ÿช", "โ›ฝ", "๐Ÿšง", "๐Ÿšฆ", "๐Ÿšฅ", "๐Ÿš", "๐Ÿ—บ", "๐Ÿ—ฟ", "๐Ÿ—ฝ", "๐Ÿ—ผ", "๐Ÿฐ", "๐Ÿฏ", "๐ŸŸ", "๐ŸŽก", "๐ŸŽข", "๐ŸŽ ", "โ›ฒ", "โ›ฑ", "๐Ÿ–", "๐Ÿ", "๐Ÿœ", "๐ŸŒ‹", "โ›ฐ", "๐Ÿ”", "๐Ÿ—ป", "๐Ÿ•", "โ›บ", "๐Ÿ›–", "๐Ÿ ", "๐Ÿก", "๐Ÿ˜", "๐Ÿš", "๐Ÿ—", "๐Ÿญ", "๐Ÿข", "๐Ÿฌ", "๐Ÿฃ", "๐Ÿค", "๐Ÿฅ", "๐Ÿฆ", "๐Ÿจ", "๐Ÿช", "๐Ÿซ", "๐Ÿฉ", "๐Ÿ’’", "๐Ÿ›", "โ›ช", "๐Ÿ•Œ", "๐Ÿ•", "๐Ÿ›•", "๐Ÿ•‹", "โ›ฉ", "๐Ÿ›ค", "๐Ÿ›ฃ", "๐Ÿ—พ", "๐ŸŽ‘", "๐Ÿž", "๐ŸŒ…", "๐ŸŒ„", "๐ŸŒ ", "๐ŸŽ‡", "๐ŸŽ†", "๐ŸŒ‡", "๐ŸŒ†", "๐Ÿ™", "๐ŸŒƒ", "๐ŸŒŒ", "๐ŸŒ‰", "๐ŸŒ" }, new String[]{ - "โŒš", "๐Ÿ“ฑ", "๐Ÿ“ฒ", "๐Ÿ’ป", "โŒจ", "๐Ÿ–ฅ", "๐Ÿ–จ", "๐Ÿ–ฑ", "๐Ÿ–ฒ", "๐Ÿ•น", "๐Ÿ—œ", "๐Ÿ’ฝ", "๐Ÿ’พ", "๐Ÿ’ฟ", "๐Ÿ“€", "๐Ÿ“ผ", "๐Ÿ“ท", "๐Ÿ“ธ", "๐Ÿ“น", "๐ŸŽฅ", "๐Ÿ“ฝ", "๐ŸŽž", "๐Ÿ“ž", "โ˜Ž", "๐Ÿ“Ÿ", "๐Ÿ“ ", "๐Ÿ“บ", "๐Ÿ“ป", "๐ŸŽ™", "๐ŸŽš", "๐ŸŽ›", "๐Ÿงญ", "โฑ", "โฒ", "โฐ", "๐Ÿ•ฐ", "โŒ›", "โณ", "๐Ÿ“ก", "๐Ÿ”‹", "๐Ÿชซ", "๐Ÿ”Œ", "๐Ÿ’ก", "๐Ÿ”ฆ", "๐Ÿ•ฏ", "๐Ÿช”", "๐Ÿงฏ", "๐Ÿ›ข", "๐Ÿ’ธ", "๐Ÿ’ต", "๐Ÿ’ด", "๐Ÿ’ถ", "๐Ÿ’ท", "๐Ÿช™", "๐Ÿ’ฐ", "๐Ÿ’ณ", "๐Ÿชช", "๐Ÿ’Ž", "โš–", "๐Ÿชœ", "๐Ÿงฐ", "๐Ÿช›", "๐Ÿ”ง", "๐Ÿ”จ", "โš’", "๐Ÿ› ", "โ›", "๐Ÿชš", "๐Ÿ”ฉ", "โš™", "๐Ÿชค", "๐Ÿงฑ", "โ›“", "๐Ÿงฒ", "๐Ÿ”ซ", "๐Ÿ’ฃ", "๐Ÿงจ", "๐Ÿช“", "๐Ÿ”ช", "๐Ÿ—ก", "โš”", "๐Ÿ›ก", "๐Ÿšฌ", "โšฐ", "๐Ÿชฆ", "โšฑ", "๐Ÿบ", "๐Ÿ”ฎ", "๐Ÿ“ฟ", "๐Ÿงฟ", "๐Ÿชฌ", "๐Ÿ’ˆ", "โš—", "๐Ÿ”ญ", "๐Ÿ”ฌ", "๐Ÿ•ณ๏ธ", "๐Ÿฉป", "๐Ÿฉน", "๐Ÿฉบ", "๐Ÿ’Š", "๐Ÿ’‰", "๐Ÿฉธ", "๐Ÿงฌ", "๐Ÿฆ ", "๐Ÿงซ", "๐Ÿงช", "๐ŸŒก", "๐Ÿงน", "๐Ÿช ", "๐Ÿงบ", "๐Ÿงป", "๐Ÿšฝ", "๐Ÿšฐ", "๐Ÿšฟ", "๐Ÿ›", "๐Ÿ›€", "๐Ÿ›€๐Ÿป", "๐Ÿ›€๐Ÿผ", "๐Ÿ›€๐Ÿฝ", "๐Ÿ›€๐Ÿพ", "๐Ÿ›€๐Ÿฟ", "๐Ÿงผ", "๐Ÿชฅ", "๐Ÿช’", "๐Ÿชฎ", "๐Ÿงฝ", "๐Ÿชฃ", "๐Ÿงด", "๐Ÿ›Ž", "๐Ÿ”‘", "๐Ÿ—", "๐Ÿšช", "๐Ÿช‘", "๐Ÿ›‹", "๐Ÿ›", "๐Ÿ›Œ", "๐Ÿงธ", "๐Ÿช†", "๐Ÿ–ผ", "๐Ÿชž", "๐ŸชŸ", "๐Ÿ›", "๐Ÿ›’", "๐ŸŽ", "๐ŸŽˆ", "๐ŸŽ", "๐ŸŽ€", "๐Ÿช„", "๐Ÿช…", "๐ŸŽŠ", "๐ŸŽ‰", "๐ŸŽŽ", "๐Ÿชญ", "๐Ÿฎ", "๐ŸŽ", "๐Ÿชฉ", "๐Ÿงง", "โœ‰", "๐Ÿ“ฉ", "๐Ÿ“จ", "๐Ÿ“ง", "๐Ÿ’Œ", "๐Ÿ“ฅ", "๐Ÿ“ค", "๐Ÿ“ฆ", "๐Ÿท", "๐Ÿชง", "๐Ÿ“ช", "๐Ÿ“ซ", "๐Ÿ“ฌ", "๐Ÿ“ญ", "๐Ÿ“ฎ", "๐Ÿ“ฏ", "๐Ÿ“œ", "๐Ÿ“ƒ", "๐Ÿ“„", "๐Ÿ“‘", "๐Ÿงพ", "๐Ÿ“Š", "๐Ÿ“ˆ", "๐Ÿ“‰", "๐Ÿ—’", "๐Ÿ—“", "๐Ÿ“†", "๐Ÿ“…", "๐Ÿ—‘", "๐Ÿ“‡", "๐Ÿ—ƒ", "๐Ÿ—ณ", "๐Ÿ—„", "๐Ÿ“‹", "๐Ÿ“", "๐Ÿ“‚", "๐Ÿ—‚", "๐Ÿ—ž", "๐Ÿ“ฐ", "๐Ÿ““", "๐Ÿ“”", "๐Ÿ“’", "๐Ÿ“•", "๐Ÿ“—", "๐Ÿ“˜", "๐Ÿ“™", "๐Ÿ“š", "๐Ÿ“–", "๐Ÿ”–", "๐Ÿงท", "๐Ÿ”—", "๐Ÿ“Ž", "๐Ÿ–‡", "๐Ÿ“", "๐Ÿ“", "๐Ÿงฎ", "๐Ÿ“Œ", "๐Ÿ“", "โœ‚", "๐Ÿ–Š", "๐Ÿ–‹", "โœ’", "๐Ÿ–Œ", "๐Ÿ–", "๐Ÿ“", "โœ", "๐Ÿ”", "๐Ÿ”Ž", "๐Ÿ”", "๐Ÿ”", "๐Ÿ”’", "๐Ÿ”“" + "โŒš", "๐Ÿ“ฑ", "๐Ÿ“ฒ", "๐Ÿ’ป", "โŒจ", "๐Ÿ–ฅ", "๐Ÿ–จ", "๐Ÿ–ฑ", "๐Ÿ–ฒ", "๐Ÿ•น", "๐Ÿ—œ", "๐Ÿ’ฝ", "๐Ÿ’พ", "๐Ÿ’ฟ", "๐Ÿ“€", "๐Ÿ“ผ", "๐Ÿ“ท", "๐Ÿ“ธ", "๐Ÿ“น", "๐ŸŽฅ", "๐Ÿ“ฝ", "๐ŸŽž", "๐Ÿ“ž", "โ˜Ž", "๐Ÿ“Ÿ", "๐Ÿ“ ", "๐Ÿ“บ", "๐Ÿ“ป", "๐ŸŽ™", "๐ŸŽš", "๐ŸŽ›", "๐Ÿงญ", "โฑ", "โฒ", "โฐ", "๐Ÿ•ฐ", "โŒ›", "โณ", "๐Ÿ“ก", "๐Ÿ”‹", "๐Ÿชซ", "๐Ÿ”Œ", "๐Ÿ’ก", "๐Ÿ”ฆ", "๐Ÿ•ฏ", "๐Ÿช”", "๐Ÿงฏ", "๐Ÿ›ข", "๐Ÿ’ธ", "๐Ÿ’ต", "๐Ÿ’ด", "๐Ÿ’ถ", "๐Ÿ’ท", "๐Ÿช™", "๐Ÿ’ฐ", "๐Ÿ’ณ", "๐Ÿชช", "๐Ÿ’Ž", "โš–", "๐Ÿชœ", "๐Ÿงฐ", "๐Ÿช›", "๐Ÿ”ง", "๐Ÿ”จ", "โš’", "๐Ÿ› ", "โ›", "๐Ÿชš", "๐Ÿ”ฉ", "โš™", "๐Ÿชค", "๐Ÿงฑ", "โ›“", "โ›“โ€๐Ÿ’ฅ", "๐Ÿงฒ", "๐Ÿ”ซ", "๐Ÿ’ฃ", "๐Ÿงจ", "๐Ÿช“", "๐Ÿ”ช", "๐Ÿ—ก", "โš”", "๐Ÿ›ก", "๐Ÿšฌ", "โšฐ", "๐Ÿชฆ", "โšฑ", "๐Ÿบ", "๐Ÿ”ฎ", "๐Ÿ“ฟ", "๐Ÿงฟ", "๐Ÿชฌ", "๐Ÿ’ˆ", "โš—", "๐Ÿ”ญ", "๐Ÿ”ฌ", "๐Ÿ•ณ๏ธ", "๐Ÿฉป", "๐Ÿฉน", "๐Ÿฉบ", "๐Ÿ’Š", "๐Ÿ’‰", "๐Ÿฉธ", "๐Ÿงฌ", "๐Ÿฆ ", "๐Ÿงซ", "๐Ÿงช", "๐ŸŒก", "๐Ÿงน", "๐Ÿช ", "๐Ÿงบ", "๐Ÿงป", "๐Ÿšฝ", "๐Ÿšฐ", "๐Ÿšฟ", "๐Ÿ›", "๐Ÿ›€", "๐Ÿ›€๐Ÿป", "๐Ÿ›€๐Ÿผ", "๐Ÿ›€๐Ÿฝ", "๐Ÿ›€๐Ÿพ", "๐Ÿ›€๐Ÿฟ", "๐Ÿงผ", "๐Ÿชฅ", "๐Ÿช’", "๐Ÿชฎ", "๐Ÿงฝ", "๐Ÿชฃ", "๐Ÿงด", "๐Ÿ›Ž", "๐Ÿ”‘", "๐Ÿ—", "๐Ÿšช", "๐Ÿช‘", "๐Ÿ›‹", "๐Ÿ›", "๐Ÿ›Œ", "๐Ÿงธ", "๐Ÿช†", "๐Ÿ–ผ", "๐Ÿชž", "๐ŸชŸ", "๐Ÿ›", "๐Ÿ›’", "๐ŸŽ", "๐ŸŽˆ", "๐ŸŽ", "๐ŸŽ€", "๐Ÿช„", "๐Ÿช…", "๐ŸŽŠ", "๐ŸŽ‰", "๐ŸŽŽ", "๐Ÿชญ", "๐Ÿฎ", "๐ŸŽ", "๐Ÿชฉ", "๐Ÿงง", "โœ‰", "๐Ÿ“ฉ", "๐Ÿ“จ", "๐Ÿ“ง", "๐Ÿ’Œ", "๐Ÿ“ฅ", "๐Ÿ“ค", "๐Ÿ“ฆ", "๐Ÿท", "๐Ÿชง", "๐Ÿ“ช", "๐Ÿ“ซ", "๐Ÿ“ฌ", "๐Ÿ“ญ", "๐Ÿ“ฎ", "๐Ÿ“ฏ", "๐Ÿ“œ", "๐Ÿ“ƒ", "๐Ÿ“„", "๐Ÿ“‘", "๐Ÿงพ", "๐Ÿ“Š", "๐Ÿ“ˆ", "๐Ÿ“‰", "๐Ÿ—’", "๐Ÿ—“", "๐Ÿ“†", "๐Ÿ“…", "๐Ÿ—‘", "๐Ÿ“‡", "๐Ÿ—ƒ", "๐Ÿ—ณ", "๐Ÿ—„", "๐Ÿ“‹", "๐Ÿ“", "๐Ÿ“‚", "๐Ÿ—‚", "๐Ÿ—ž", "๐Ÿ“ฐ", "๐Ÿ““", "๐Ÿ“”", "๐Ÿ“’", "๐Ÿ“•", "๐Ÿ“—", "๐Ÿ“˜", "๐Ÿ“™", "๐Ÿ“š", "๐Ÿ“–", "๐Ÿ”–", "๐Ÿงท", "๐Ÿ”—", "๐Ÿ“Ž", "๐Ÿ–‡", "๐Ÿ“", "๐Ÿ“", "๐Ÿงฎ", "๐Ÿ“Œ", "๐Ÿ“", "โœ‚", "๐Ÿ–Š", "๐Ÿ–‹", "โœ’", "๐Ÿ–Œ", "๐Ÿ–", "๐Ÿ“", "โœ", "๐Ÿ”", "๐Ÿ”Ž", "๐Ÿ”", "๐Ÿ”", "๐Ÿ”’", "๐Ÿ”“" }, new String[]{ "๐Ÿฉท", "โค", "๐Ÿงก", "๐Ÿ’›", "๐Ÿ’š", "๐Ÿฉต", "๐Ÿ’™", "๐Ÿ’œ", "๐Ÿ–ค", "๐Ÿฉถ", "๐Ÿค", "๐ŸคŽ", "๐Ÿ’”", "โคโ€๐Ÿ”ฅ", "โคโ€๐Ÿฉน", "โฃ", "๐Ÿ’•", "๐Ÿ’ž", "๐Ÿ’“", "๐Ÿ’—", "๐Ÿ’–", "๐Ÿ’˜", "๐Ÿ’", "๐Ÿ’Ÿ", "โ˜ฎ", "โœ", "โ˜ช", "๐Ÿ•‰", "โ˜ธ", "๐Ÿชฏ", "โœก", "๐Ÿ”ฏ", "๐Ÿ•Ž", "โ˜ฏ", "โ˜ฆ", "๐Ÿ›", "โ›Ž", "โ™ˆ", "โ™‰", "โ™Š", "โ™‹", "โ™Œ", "โ™", "โ™Ž", "โ™", "โ™", "โ™‘", "โ™’", "โ™“", "๐Ÿ†”", "โš›", "๐Ÿ‰‘", "โ˜ข", "โ˜ฃ", "๐Ÿ“ด", "๐Ÿ“ณ", "๐Ÿˆถ", "๐Ÿˆš", "๐Ÿˆธ", "๐Ÿˆบ", "๐Ÿˆท", "โœด", "๐Ÿ†š", "๐Ÿ’ฎ", "๐Ÿ‰", "ใŠ™", "ใŠ—", "๐Ÿˆด", "๐Ÿˆต", "๐Ÿˆน", "๐Ÿˆฒ", "๐Ÿ…ฐ", "๐Ÿ…ฑ", "๐Ÿ†Ž", "๐Ÿ†‘", "๐Ÿ…พ", "๐Ÿ†˜", "โŒ", "โญ•", "๐Ÿ›‘", "โ›”", "๐Ÿ“›", "๐Ÿšซ", "๐Ÿ’ฏ", "๐Ÿ’ข", "โ™จ", "๐Ÿšท", "๐Ÿšฏ", "๐Ÿšณ", "๐Ÿšฑ", "๐Ÿ”ž", "๐Ÿ“ต", "๐Ÿšญ", "โ—", "โ•", "โ“", "โ”", "โ€ผ", "โ‰", "๐Ÿ”…", "๐Ÿ”†", "ใ€ฝ", "โš ", "๐Ÿšธ", "๐Ÿ”ฑ", "โšœ", "๐Ÿ”ฐ", "โ™ป", "โœ…", "๐Ÿˆฏ", "๐Ÿ’น", "โ‡", "โœณ", "โŽ", "๐ŸŒ", "๐Ÿ’ ", "โ“‚", "๐ŸŒ€", "๐Ÿ’ค", "๐Ÿง", "๐Ÿšพ", "โ™ฟ", "๐Ÿ…ฟ", "๐Ÿ›—", "๐Ÿˆณ", "๐Ÿˆ‚", "๐Ÿ›‚", "๐Ÿ›ƒ", "๐Ÿ›„", "๐Ÿ›…", "๐Ÿ›œ", "๐Ÿšน", "๐Ÿšบ", "๐Ÿšผ", "โšง", "๐Ÿšป", "๐Ÿšฎ", "๐ŸŽฆ", "๐Ÿ“ถ", "๐Ÿˆ", "๐Ÿ”ฃ", "โ„น", "๐Ÿ”ค", "๐Ÿ”ก", "๐Ÿ” ", "๐Ÿ†–", "๐Ÿ†—", "๐Ÿ†™", "๐Ÿ†’", "๐Ÿ†•", "๐Ÿ†“", "0โƒฃ", "1โƒฃ", "2โƒฃ", "3โƒฃ", "4โƒฃ", "5โƒฃ", "6โƒฃ", "7โƒฃ", "8โƒฃ", "9โƒฃ", "๐Ÿ”Ÿ", "๐Ÿ”ข", "#โƒฃ", "*โƒฃ", "โ", "โ–ถ", "โธ", "โฏ", "โน", "โบ", "โญ", "โฎ", "โฉ", "โช", "โซ", "โฌ", "โ—€", "๐Ÿ”ผ", "๐Ÿ”ฝ", "โžก", "โฌ…", "โฌ†", "โฌ‡", "โ†—", "โ†˜", "โ†™", "โ†–", "โ†•", "โ†”", "โ†ช", "โ†ฉ", "โคด", "โคต", "๐Ÿ”€", "๐Ÿ”", "๐Ÿ”‚", "๐Ÿ”„", "๐Ÿ”ƒ", "๐ŸŽต", "๐ŸŽถ", "โž•", "โž–", "โž—", "โœ–", "๐ŸŸฐ", "โ™พ", "๐Ÿ’ฒ", "๐Ÿ’ฑ", "โ„ข๏ธ", "ยฉ", "ยฎ", "๐Ÿ‘โ€๐Ÿ—จ", "๐Ÿ”š", "๐Ÿ”™", "๐Ÿ”›", "๐Ÿ”", "๐Ÿ”œ", "ใ€ฐ", "โžฐ", "โžฟ", "โœ”", "โ˜‘", "๐Ÿ”˜", "๐Ÿ”ด", "๐ŸŸ ", "๐ŸŸก", "๐ŸŸข", "๐Ÿ”ต", "๐ŸŸฃ", "โšซ", "โšช", "๐ŸŸค", "๐Ÿ”บ", "๐Ÿ”ป", "๐Ÿ”ธ", "๐Ÿ”น", "๐Ÿ”ถ", "๐Ÿ”ท", "๐Ÿ”ณ", "๐Ÿ”ฒ", "โ–ช", "โ–ซ", "โ—พ", "โ—ฝ", "โ—ผ", "โ—ป", "๐ŸŸฅ", "๐ŸŸง", "๐ŸŸจ", "๐ŸŸฉ", "๐ŸŸฆ", "๐ŸŸช", "โฌ›", "โฌœ", "๐ŸŸซ", "๐Ÿ”ˆ", "๐Ÿ”‡", "๐Ÿ”‰", "๐Ÿ”Š", "๐Ÿ””", "๐Ÿ”•", "๐Ÿ“ฃ", "๐Ÿ“ข", "๐Ÿ’ฌ", "๐Ÿ’ญ", "๐Ÿ—ฏ", "โ™ ", "โ™ฃ", "โ™ฅ", "โ™ฆ", "๐Ÿƒ", "๐ŸŽด", "๐Ÿ€„", "๐Ÿ•", "๐Ÿ•‘", "๐Ÿ•’", "๐Ÿ•“", "๐Ÿ•”", "๐Ÿ••", "๐Ÿ•–", "๐Ÿ•—", "๐Ÿ•˜", "๐Ÿ•™", "๐Ÿ•š", "๐Ÿ•›", "๐Ÿ•œ", "๐Ÿ•", "๐Ÿ•ž", "๐Ÿ•Ÿ", "๐Ÿ• ", "๐Ÿ•ก", "๐Ÿ•ข", "๐Ÿ•ฃ", "๐Ÿ•ค", "๐Ÿ•ฅ", "๐Ÿ•ฆ", "๐Ÿ•ง" diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/EmuDetector.java b/TMessagesProj/src/main/java/org/telegram/messenger/EmuDetector.java index a7d34375eb..807e2348c0 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/EmuDetector.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/EmuDetector.java @@ -7,12 +7,12 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.Build; -import androidx.core.content.ContextCompat; - import android.os.Environment; import android.telephony.TelephonyManager; import android.text.TextUtils; +import androidx.core.content.ContextCompat; + import java.io.File; import java.io.FileInputStream; import java.io.InputStream; @@ -215,6 +215,7 @@ private boolean checkBasic() { || Build.HARDWARE.toLowerCase().contains("vbox86") || Build.HARDWARE.toLowerCase().contains("android_x86") || Build.HARDWARE.toLowerCase().contains("nox") + || Build.HARDWARE.toLowerCase().contains("ranchu") || Build.PRODUCT.equals("sdk") || Build.PRODUCT.equals("google_sdk") || Build.PRODUCT.equals("sdk_x86") diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java index a0ad101481..989bd8b109 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java @@ -51,6 +51,7 @@ public class FileLoadOperation { private Runnable fileWriteRunnable; public boolean isStory; + public volatile boolean caughtPremiumFloodWait; public void setStream(FileLoadOperationStream stream, boolean streamPriority, long streamOffset) { FileLog.e("FileLoadOperation " + getFileName() + " setStream(" + stream + ")"); this.stream = stream; @@ -97,10 +98,10 @@ public boolean checkPrefixPreloadFinished() { } protected static class RequestInfo { + public int requestToken; public long requestStartTime; public int chunkSize; public int connectionType; - private int requestToken; private long offset; private TLRPC.TL_upload_file response; private TLRPC.TL_upload_webFile responseWeb; @@ -241,7 +242,7 @@ private PreloadRange(long o, long l) { private byte[] cdnCheckBytes; private boolean requestingCdnOffsets; - private ArrayList requestInfos; + public ArrayList requestInfos; private ArrayList cancelledRequestInfos; private ArrayList delayedRequestInfos; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoader.java index 76acbafe5a..8d19cd4a30 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoader.java @@ -690,6 +690,50 @@ public void cancelLoadAllFiles() { } } + public FileUploadOperation findUploadOperationByRequestToken(final int requestToken) { + for (FileUploadOperation operation : uploadOperationPaths.values()) { + if (operation == null) continue; + for (int i = 0; i < operation.requestTokens.size(); ++i) { + if (operation.requestTokens.valueAt(i) == requestToken) { + return operation; + } + } + } + return null; + } + + public boolean checkUploadCaughtPremiumFloodWait(final String filename) { + if (filename == null) return false; + FileUploadOperation operation = uploadOperationPaths.get(filename); + if (operation != null && operation.caughtPremiumFloodWait) { + operation.caughtPremiumFloodWait = false; + return true; + } + return false; + } + + public FileLoadOperation findLoadOperationByRequestToken(final int requestToken) { + for (FileLoadOperation operation : loadOperationPaths.values()) { + if (operation == null || operation.requestInfos == null) continue; + for (FileLoadOperation.RequestInfo requestInfo : operation.requestInfos) { + if (requestInfo.requestToken == requestToken) { + return operation; + } + } + } + return null; + } + + public boolean checkLoadCaughtPremiumFloodWait(final String filename) { + if (filename == null) return false; + FileLoadOperation operation = loadOperationPaths.get(filename); + if (operation != null && operation.caughtPremiumFloodWait) { + operation.caughtPremiumFloodWait = false; + return true; + } + return false; + } + public boolean isLoadingFile(final String fileName) { return fileName != null && loadOperationPathsUI.containsKey(fileName); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java index dd556e332f..60b8dbfa20 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java @@ -16,6 +16,10 @@ import com.google.gson.FieldAttributes; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; import org.telegram.messenger.time.FastDateFormat; import org.telegram.messenger.video.MediaCodecVideoConvertor; @@ -28,6 +32,8 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; +import java.lang.reflect.Field; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.HashSet; import java.util.Locale; @@ -76,6 +82,7 @@ public FileLog() { private static Gson gson; + private static ExclusionStrategy exclusionStrategy; private static HashSet excludeRequests; public static void dumpResponseAndRequest(int account, TLObject request, TLObject response, TLRPC.TL_error error, long requestMsgId, long startRequestTimeInMillis, int requestToken) { @@ -122,7 +129,7 @@ public static void dumpResponseAndRequest(int account, TLObject request, TLObjec } } - public static void dumpUnparsedMessage(TLObject message, long messageId) { + public static void dumpUnparsedMessage(TLObject message, long messageId, int account) { if (!BuildVars.DEBUG_PRIVATE_VERSION || !BuildVars.LOGS_ENABLED || message == null) { return; } @@ -134,7 +141,7 @@ public static void dumpUnparsedMessage(TLObject message, long messageId) { long time = System.currentTimeMillis(); FileLog.getInstance().logQueue.postRunnable(() -> { try { - String metadata = getInstance().dateFormat.format(time);// + " msgId=" + messageId; + String metadata = getInstance().dateFormat.format(time) + " msgId=" + messageId + " account=" + account; FileLog.getInstance().tlStreamWriter.write(metadata); FileLog.getInstance().tlStreamWriter.write("\n"); @@ -142,7 +149,7 @@ public static void dumpUnparsedMessage(TLObject message, long messageId) { FileLog.getInstance().tlStreamWriter.write("\n\n"); FileLog.getInstance().tlStreamWriter.flush(); - Log.d(mtproto_tag, "msgId=" + messageId); + Log.d(mtproto_tag, "msgId=" + messageId + " account=" + account); Log.d(mtproto_tag, messageStr); Log.d(mtproto_tag, " "); } catch (Exception e) { @@ -158,9 +165,10 @@ public static void disableGson(boolean disable) { gsonDisabled = disable; } + private static HashSet privateFields; private static void checkGson() { if (gson == null) { - HashSet privateFields = new HashSet<>(); + privateFields = new HashSet<>(); privateFields.add("message"); privateFields.add("phone"); privateFields.add("about"); @@ -174,13 +182,14 @@ private static void checkGson() { privateFields.add("disableFree"); privateFields.add("mContext"); privateFields.add("priority"); + privateFields.add("constructor"); //exclude file loading excludeRequests = new HashSet<>(); excludeRequests.add("TL_upload_getFile"); excludeRequests.add("TL_upload_getWebFile"); - ExclusionStrategy strategy = new ExclusionStrategy() { + exclusionStrategy = new ExclusionStrategy() { @Override public boolean shouldSkipField(FieldAttributes f) { @@ -195,10 +204,49 @@ public boolean shouldSkipClass(Class clazz) { return clazz.isInstance(DispatchQueue.class) || clazz.isInstance(AnimatedFileDrawable.class) || clazz.isInstance(ColorStateList.class) || clazz.isInstance(Context.class); } }; - gson = new GsonBuilder().addSerializationExclusionStrategy(strategy).registerTypeAdapterFactory(RuntimeClassNameTypeAdapterFactory.of(TLObject.class, "type_", strategy)).create(); + gson = new GsonBuilder() + .addSerializationExclusionStrategy(exclusionStrategy) + .registerTypeAdapterFactory(RuntimeClassNameTypeAdapterFactory.of(TLObject.class, "type_", exclusionStrategy)) + .registerTypeHierarchyAdapter(TLObject.class, new TLObjectDeserializer()) + .create(); } } + private static class TLObjectDeserializer implements JsonSerializer { + @Override + public JsonElement serialize(TLObject src, Type typeOfSrc, JsonSerializationContext context) { + JsonObject jsonObj = new JsonObject(); + String className = src.getClass().getName(); + final String usualPrefix = "org.telegram.tgnet."; + if (className.startsWith(usualPrefix)) { + className = className.substring(usualPrefix.length()); + } + jsonObj.addProperty("_", className); + try { + Field[] fields = src.getClass().getFields(); + for (Field field : fields) { + if (privateFields != null && privateFields.contains(field.getName())) continue; + field.setAccessible(true); + try { + Object value = field.get(src); + if (value != null) { + Class clazz = value.getClass(); + if (clazz.isInstance(DispatchQueue.class) || clazz.isInstance(AnimatedFileDrawable.class) || clazz.isInstance(ColorStateList.class) || clazz.isInstance(Context.class)) { + continue; + } + } + JsonElement jsonElement = context.serialize(value); + jsonObj.add(field.getName(), jsonElement); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return jsonObj; + } + } public void init() { if (initied) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java index be307bf112..a629989f4d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java @@ -56,7 +56,7 @@ private static class UploadCachedResult { private int state; private byte[] readBuffer; private FileUploadOperationDelegate delegate; - private SparseIntArray requestTokens = new SparseIntArray(); + public final SparseIntArray requestTokens = new SparseIntArray(); private int currentPartNum; private long currentFileId; private long totalFileSize; @@ -86,6 +86,8 @@ private static class UploadCachedResult { private boolean[] recalculatedEstimatedSize = {false, false}; protected long lastProgressUpdateTime; + public volatile boolean caughtPremiumFloodWait; + public interface FileUploadOperationDelegate { void didFinishUploadingFile(FileUploadOperation operation, TLRPC.InputFile inputFile, TLRPC.InputEncryptedFile inputEncryptedFile, byte[] key, byte[] iv); void didFailedUploadingFile(FileUploadOperation operation); @@ -674,7 +676,7 @@ private void startUploadRequest() { } }), forceSmallFile ? ConnectionsManager.RequestFlagCanCompress : 0, ConnectionsManager.DEFAULT_DATACENTER_ID, connectionType, true); if (BuildVars.LOGS_ENABLED) { - FileLog.d("debug_uploading: " + " send reqId " + requestToken[0] + " " + uploadingFilePath); + FileLog.d("debug_uploading: " + " send reqId " + requestToken[0] + " " + uploadingFilePath + " file_part=" + currentRequestPartNum + " isBig=" + isBigFile + " file_id=" + currentFileId); } requestTokens.put(requestNumFinal, requestToken[0]); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java index d9fb58818d..056e235b51 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java @@ -4008,7 +4008,16 @@ private static TLRPC.PhotoSize scaleAndSaveImageInternal(TLRPC.PhotoSize photoSi location = (TLRPC.TL_fileLocationToBeDeprecated) photoSize.location; } - String fileName = location.volume_id + "_" + location.local_id + ".jpg"; + String external = ".jpg"; + switch (compressFormat) { + case WEBP: + case WEBP_LOSSY: + case WEBP_LOSSLESS: + external = ".webp"; + break; + } + + String fileName = location.volume_id + "_" + location.local_id + external; File fileDir; if (forceCacheDir) { fileDir = FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java index 019889416f..bf77ccaa0f 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java @@ -247,8 +247,10 @@ public static ImageLocation getForSticker(TLRPC.PhotoSize photoSize, TLRPC.Docum return null; } ImageLocation imageLocation = getForPhoto(photoSize.location, photoSize.size, null, null, null, TYPE_SMALL, sticker.dc_id, stickerSet, photoSize.type); - if (MessageObject.isAnimatedStickerDocument(sticker, true)) { + if (photoSize.type.equalsIgnoreCase("a")) { imageLocation.imageType = FileLoader.IMAGE_TYPE_LOTTIE; + } else if (photoSize.type.equalsIgnoreCase("v")) { + imageLocation.imageType = FileLoader.IMAGE_TYPE_ANIMATION; } imageLocation.thumbVersion = thumbVersion; return imageLocation; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ImageReceiver.java b/TMessagesProj/src/main/java/org/telegram/messenger/ImageReceiver.java index dc1c0ab156..1b7c49770b 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ImageReceiver.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ImageReceiver.java @@ -97,6 +97,10 @@ public interface ImageReceiverDelegate { default void onAnimationReady(ImageReceiver imageReceiver) { } + + default void didSetImageBitmap(int type, String key, Drawable drawable) { + + } } public static class BitmapHolder { @@ -2255,6 +2259,10 @@ public boolean hasImageSet() { return currentImageDrawable != null || currentMediaDrawable != null || currentThumbDrawable != null || staticThumbDrawable != null || currentImageKey != null || currentMediaKey != null; } + public boolean hasMediaSet() { + return currentMediaDrawable != null; + } + public boolean hasBitmapImage() { return currentImageDrawable != null || currentThumbDrawable != null || staticThumbDrawable != null || currentMediaDrawable != null; } @@ -2690,6 +2698,9 @@ protected boolean setImageBitmapByKey(Drawable drawable, String key, int type, b if (!key.equals(currentImageKey)) { return false; } + if (delegate != null) { + delegate.didSetImageBitmap(type, key, drawable); + } boolean allowCrossFade = true; if (!(drawable instanceof AnimatedFileDrawable)) { ImageLoader.getInstance().incrementUseCount(currentImageKey); @@ -2741,6 +2752,9 @@ protected boolean setImageBitmapByKey(Drawable drawable, String key, int type, b if (!key.equals(currentMediaKey)) { return false; } + if (delegate != null) { + delegate.didSetImageBitmap(type, key, drawable); + } if (!(drawable instanceof AnimatedFileDrawable)) { ImageLoader.getInstance().incrementUseCount(currentMediaKey); } else { @@ -2794,6 +2808,9 @@ protected boolean setImageBitmapByKey(Drawable drawable, String key, int type, b if (!key.equals(currentThumbKey)) { return false; } + if (delegate != null) { + delegate.didSetImageBitmap(type, key, drawable); + } ImageLoader.getInstance().incrementUseCount(currentThumbKey); currentThumbDrawable = drawable; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java index edd51bf6ad..9540d6ab3d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java @@ -2519,6 +2519,10 @@ private void sortPlaylist() { }); } + public boolean hasNoNextVoiceOrRoundVideoMessage() { + return playingMessageObject == null || (!playingMessageObject.isVoice() && !playingMessageObject.isRoundVideo()) || voiceMessagesPlaylist == null || voiceMessagesPlaylist.size() <= 1 || !voiceMessagesPlaylist.contains(playingMessageObject) || voiceMessagesPlaylist.indexOf(playingMessageObject) >= (voiceMessagesPlaylist.size() - 1); + } + public void playNextMessage() { playNextMessageWithoutOrder(false); } @@ -2941,7 +2945,7 @@ private void updateVideoState(MessageObject messageObject, int[] playCount, bool playCount[0]++; } } else { - cleanupPlayer(true, true, true, false); + cleanupPlayer(true, hasNoNextVoiceOrRoundVideoMessage(), true, false); } } } @@ -3264,7 +3268,7 @@ public boolean playMessage(final MessageObject messageObject, boolean silent) { lastProgress = 0; audioInfo = null; playingMessageObject = messageObject; - if (playingMessageObject.isMusic()) { + if (canStartMusicPlayerService()) { Intent intent = new Intent(ApplicationLoader.applicationContext, MusicPlayerService.class); try { /*if (Build.VERSION.SDK_INT >= 26) { @@ -3469,7 +3473,7 @@ public void onStateChanged(boolean playWhenReady, int playbackState) { if (!playlist.isEmpty() && (playlist.size() > 1 || !messageObject.isVoice())) { playNextMessageWithoutOrder(true); } else { - cleanupPlayer(true, true, messageObject.isVoice(), false); + cleanupPlayer(true, hasNoNextVoiceOrRoundVideoMessage(), messageObject.isVoice(), false); } } else if (audioPlayer != null && seekToProgressPending != 0 && (playbackState == ExoPlayer.STATE_READY || playbackState == ExoPlayer.STATE_IDLE)) { int seekTo = (int) (audioPlayer.getDuration() * seekToProgressPending); @@ -3656,8 +3660,7 @@ public boolean needUpdate() { FileLog.e(e2); } } - - if (playingMessageObject != null && playingMessageObject.isMusic()) { + if (canStartMusicPlayerService()) { Intent intent = new Intent(ApplicationLoader.applicationContext, MusicPlayerService.class); try { /*if (Build.VERSION.SDK_INT >= 26) { @@ -3675,6 +3678,10 @@ public boolean needUpdate() { return true; } + + private boolean canStartMusicPlayerService() { + return playingMessageObject != null && (playingMessageObject.isMusic() || playingMessageObject.isVoice() || playingMessageObject.isRoundVideo()) && !playingMessageObject.isVoiceOnce() && !playingMessageObject.isRoundOnce(); + } public void updateSilent(boolean value) { isSilent = value; @@ -3860,8 +3867,8 @@ public void requestAudioFocus(boolean request) { } } - public void prepareResumedRecording(int currentAccount, MediaDataController.DraftVoice draft, long dialogId, MessageObject replyToMsg, MessageObject replyToTopMsg, TL_stories.StoryItem replyStory, int guid, boolean manual, String query_shortcut, int query_shortcut_id) { - manualRecording = manual; + public void prepareResumedRecording(int currentAccount, MediaDataController.DraftVoice draft, long dialogId, MessageObject replyToMsg, MessageObject replyToTopMsg, TL_stories.StoryItem replyStory, int guid, String query_shortcut, int query_shortcut_id) { + manualRecording = false; requestAudioFocus(true); recordQueue.cancelRunnable(recordStartRunnable); recordQueue.postRunnable(() -> { @@ -4178,6 +4185,22 @@ public void generateWaveform(MessageObject messageObject) { }); } + public void cleanRecording(boolean delete) { + recordingAudio = null; + AutoDeleteMediaTask.unlockFile(recordingAudioFile); + if (delete && recordingAudioFile != null) { + try { + recordingAudioFile.delete(); + } catch (Exception e) { + FileLog.e(e); + } + } + recordingAudioFile = null; + manualRecording = false; + raiseToEarRecord = false; + ignoreOnPause = false; + } + private void stopRecordingInternal(final int send, boolean notify, int scheduleDate, boolean once) { if (send != 0) { final TLRPC.TL_document audioToSend = recordingAudio; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java index 763d1000a5..61468e659f 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java @@ -69,12 +69,12 @@ import org.telegram.ui.Components.AnimatedEmojiSpan; import org.telegram.ui.Components.AvatarDrawable; import org.telegram.ui.Components.BackupImageView; -import org.telegram.ui.Components.BotWebViewSheet; import org.telegram.ui.Components.Bulletin; import org.telegram.ui.Components.ChatThemeBottomSheet; import org.telegram.ui.Components.QuoteSpan; import org.telegram.ui.Components.Reactions.ReactionsLayoutInBubble; import org.telegram.ui.Components.StickerSetBulletinLayout; +import org.telegram.ui.Components.StickersAlert; import org.telegram.ui.Components.StickersArchiveAlert; import org.telegram.ui.Components.TextStyleSpan; import org.telegram.ui.Components.URLSpanReplacement; @@ -823,14 +823,22 @@ public void checkFeaturedEmoji() { } public ArrayList getRecentStickers(int type) { - return getRecentStickers(type, 0); + return getRecentStickers(type, false); } - public ArrayList getRecentStickers(int type, int padding) { + public ArrayList getRecentStickers(int type, boolean firstEmpty) { + return getRecentStickers(type, false, 0); + } + + public ArrayList getRecentStickers(int type, boolean firstEmpty, int padding) { ArrayList arrayList = recentStickers[type]; if (type == TYPE_PREMIUM_STICKERS) { return new ArrayList<>(recentStickers[type]); } + ArrayList result = new ArrayList<>(arrayList.subList(0, Math.min(arrayList.size(), 20))); + if (firstEmpty && !result.isEmpty() && !StickersAlert.DISABLE_STICKER_EDITOR) { + result.add(0, new TLRPC.TL_documentEmpty()); + } return new ArrayList<>(arrayList.subList(0, Math.min(arrayList.size(), NekoConfig.maxRecentStickerCount.Int() + padding))); } @@ -1156,6 +1164,16 @@ public static TLRPC.InputStickerSet getInputStickerSet(TLRPC.StickerSet set) { return null; } + public static TLRPC.TL_inputStickerSetItem getInputStickerSetItem(TLRPC.Document document, String emoji) { + TLRPC.TL_inputStickerSetItem item = new TLRPC.TL_inputStickerSetItem(); + item.document = new TLRPC.TL_inputDocument(); + item.document.id = document.id; + item.document.access_hash = document.access_hash; + item.document.file_reference = document.file_reference; + item.emoji = emoji; + return item; + } + public void setPlaceholderImage(BackupImageView imageView, String setName, String emoji, String filter) { TLRPC.InputStickerSet inputStickerSet = new TLRPC.TL_inputStickerSetShortName(); inputStickerSet.short_name = setName; @@ -1191,6 +1209,10 @@ public TLRPC.TL_messages_stickerSet getStickerSet(TLRPC.InputStickerSet inputSti } public TLRPC.TL_messages_stickerSet getStickerSet(TLRPC.InputStickerSet inputStickerSet, Integer hash, boolean cacheOnly, Utilities.Callback onResponse) { + return getStickerSet(inputStickerSet, hash, cacheOnly, false, onResponse); + } + + public TLRPC.TL_messages_stickerSet getStickerSet(TLRPC.InputStickerSet inputStickerSet, Integer hash, boolean cacheOnly, boolean runWhenRemote, Utilities.Callback onResponse) { if (inputStickerSet == null) { return null; } @@ -1205,7 +1227,7 @@ public TLRPC.TL_messages_stickerSet getStickerSet(TLRPC.InputStickerSet inputSti cacheSet = stickerSetDefaultChannelStatuses; } if (cacheSet != null) { - if (onResponse != null) { + if (!runWhenRemote && onResponse != null) { onResponse.run(cacheSet); } return cacheSet; @@ -1238,6 +1260,34 @@ public TLRPC.TL_messages_stickerSet getStickerSet(TLRPC.InputStickerSet inputSti } }); }); + } else if (inputStickerSet instanceof TLRPC.TL_inputStickerSetShortName) { + getMessagesStorage().getStorageQueue().postRunnable(() -> { + TLRPC.TL_messages_stickerSet cachedSet = getCachedStickerSetInternal(inputStickerSet.short_name.toLowerCase(), hash); + AndroidUtilities.runOnUIThread(() -> { + if (cachedSet != null) { + if (onResponse != null) { + onResponse.run(cachedSet); + } + if (cachedSet.set != null) { + stickerSetsById.put(cachedSet.set.id, cachedSet); + stickerSetsByName.put(cachedSet.set.short_name.toLowerCase(), cachedSet); + } + getNotificationCenter().postNotificationName(NotificationCenter.groupStickersDidLoad, cachedSet.set.id, cachedSet); + } else { + fetchStickerSetInternal(inputStickerSet, (ok, set) -> { + if (onResponse != null) { + onResponse.run(set); + } + if (set != null && set.set != null) { + stickerSetsById.put(set.set.id, set); + stickerSetsByName.put(set.set.short_name.toLowerCase(), set); + saveStickerSetIntoCache(set); + getNotificationCenter().postNotificationName(NotificationCenter.groupStickersDidLoad, set.set.id, set); + } + }); + } + }); + }); } else if (!cacheOnly) { fetchStickerSetInternal(inputStickerSet, (ok, set) -> { if (onResponse != null) { @@ -1284,7 +1334,7 @@ private void saveStickerSetIntoCache(TLRPC.TL_messages_stickerSet set) { } getMessagesStorage().getStorageQueue().postRunnable(() -> { try { - SQLitePreparedStatement state = getMessagesStorage().getDatabase().executeFast("REPLACE INTO stickersets2 VALUES(?, ?, ?, ?)"); + SQLitePreparedStatement state = getMessagesStorage().getDatabase().executeFast("REPLACE INTO stickersets2 VALUES(?, ?, ?, ?, ?)"); state.requery(); NativeByteBuffer data = new NativeByteBuffer(set.getObjectSize()); set.serializeToStream(data); @@ -1292,6 +1342,7 @@ private void saveStickerSetIntoCache(TLRPC.TL_messages_stickerSet set) { state.bindByteBuffer(2, data); state.bindInteger(3, set.set.hash); state.bindLong(4, System.currentTimeMillis()); + state.bindString(5, set.set.short_name == null ? "" : set.set.short_name.toLowerCase()); state.step(); data.reuse(); state.dispose(); @@ -1307,7 +1358,37 @@ private TLRPC.TL_messages_stickerSet getCachedStickerSetInternal(long id, Intege SQLiteCursor cursor = null; NativeByteBuffer data = null; try { - cursor = getMessagesStorage().getDatabase().queryFinalized("SELECT data, hash FROM stickersets2 WHERE id = " + id + " LIMIT 1"); + cursor = getMessagesStorage().getDatabase().queryFinalized("SELECT data, hash FROM stickersets2 WHERE id = ? LIMIT 1", id); + if (cursor.next() && !cursor.isNull(0)) { + data = cursor.byteBufferValue(0); + if (data != null) { + set = TLRPC.TL_messages_stickerSet.TLdeserialize(data, data.readInt32(false), false); + int cachedHash = cursor.intValue(1); + if (hash != null && hash != 0 && hash != cachedHash) { + return null; + } + } + } + } catch (Throwable e) { + FileLog.e(e); + } finally { + if (data != null) { + data.reuse(); + } + if (cursor != null) { + cursor.dispose(); + } + } + return set; + } + + + private TLRPC.TL_messages_stickerSet getCachedStickerSetInternal(String short_name, Integer hash) { + TLRPC.TL_messages_stickerSet set = null; + SQLiteCursor cursor = null; + NativeByteBuffer data = null; + try { + cursor = getMessagesStorage().getDatabase().queryFinalized("SELECT data, hash FROM stickersets2 WHERE short_name = ? LIMIT 1", short_name); if (cursor.next() && !cursor.isNull(0)) { data = cursor.byteBufferValue(0); if (data != null) { @@ -2551,7 +2632,7 @@ public void loadStickersByEmojiOrName(String name, boolean isEmoji, boolean cach private void processLoadedDiceStickers(String name, boolean isEmoji, TLRPC.TL_messages_stickerSet res, boolean cache, int date) { AndroidUtilities.runOnUIThread(() -> loadingDiceStickerSets.remove(name)); Utilities.stageQueue.postRunnable(() -> { - if (cache && (res == null || Math.abs(System.currentTimeMillis() / 1000 - date) >= 60 * 60 * 24) || !cache && res == null) { + if (cache && (res == null || Math.abs(System.currentTimeMillis() / 1000 - date) >= 60 * 60 * 24)) { AndroidUtilities.runOnUIThread(() -> loadStickersByEmojiOrName(name, isEmoji, false), res == null && !cache ? 1000 : 0); if (res == null) { return; @@ -3086,6 +3167,7 @@ public void toggleStickerSet(Context context, TLObject stickerSetObject, int tog currentIndex = a; stickerSets[type].remove(a); if (toggle == 2) { + set.set.title = stickerSet.title; stickerSets[type].add(0, set); } else if (forget) { stickerSetsById.remove(set.set.id); @@ -3360,6 +3442,7 @@ public void processStickerSetInstallResultArchive(BaseFragment baseFragment, boo private SparseArray[] searchServerResultMessagesMap = new SparseArray[]{new SparseArray<>(), new SparseArray<>()}; private ArrayList deletedFromResultMessages = new ArrayList<>(); private String lastSearchQuery; + private TLRPC.MessagesFilter lastSearchFilter; private int lastReturnedNum; private boolean loadingMoreSearchMessages; private boolean loadingSearchLocal; @@ -3477,8 +3560,8 @@ public boolean isMessageFound(int messageId, boolean mergeDialog) { return searchServerResultMessagesMap[mergeDialog ? 1 : 0].indexOfKey(messageId) >= 0; } - public void searchMessagesInChat(String query, long dialogId, long mergeDialogId, int guid, int direction, long replyMessageId, TLRPC.User user, TLRPC.Chat chat, ReactionsLayoutInBubble.VisibleReaction reaction) { - searchMessagesInChat(query, dialogId, mergeDialogId, guid, direction, replyMessageId, false, user, chat, true, reaction); + public void searchMessagesInChat(String query, long dialogId, long mergeDialogId, int guid, int direction, long replyMessageId, TLRPC.User user, TLRPC.Chat chat, ReactionsLayoutInBubble.VisibleReaction reaction, TLRPC.MessagesFilter filter) { + searchMessagesInChat(query, dialogId, mergeDialogId, guid, direction, replyMessageId, false, user, chat, true, reaction, filter); } public void jumpToSearchedMessage(int guid, int index) { @@ -3519,7 +3602,7 @@ public void loadMoreSearchMessages(boolean fromList) { int temp = lastReturnedNum; lastReturnedNum = searchResultMessages.size(); loadingMoreSearchMessages = true; - searchMessagesInChat(null, lastDialogId, lastMergeDialogId, lastGuid, 1, lastReplyMessageId, false, lastSearchUser, lastSearchChat, false, lastReaction); + searchMessagesInChat(null, lastDialogId, lastMergeDialogId, lastGuid, 1, lastReplyMessageId, false, lastSearchUser, lastSearchChat, false, lastReaction, lastSearchFilter); lastReturnedNum = temp; } @@ -3527,7 +3610,7 @@ public boolean isSearchLoading() { return reqId != 0; } - public void searchMessagesInChat(String query, long dialogId, long mergeDialogId, int guid, int direction, long replyMessageId, boolean internal, TLRPC.User user, TLRPC.Chat chat, boolean jumpToMessage, ReactionsLayoutInBubble.VisibleReaction reaction) { + public void searchMessagesInChat(String query, long dialogId, long mergeDialogId, int guid, int direction, long replyMessageId, boolean internal, TLRPC.User user, TLRPC.Chat chat, boolean jumpToMessage, ReactionsLayoutInBubble.VisibleReaction reaction, TLRPC.MessagesFilter filter) { int max_id = 0; long queryWithDialog = dialogId; boolean firstQuery = !internal; @@ -3632,7 +3715,11 @@ public void searchMessagesInChat(String query, long dialogId, long mergeDialogId req.saved_reaction.add(reaction.toTLReaction()); req.flags |= 8; } - req.filter = new TLRPC.TL_inputMessagesFilterEmpty(); + if (filter == null) { + req.filter = new TLRPC.TL_inputMessagesFilterEmpty(); + } else { + req.filter = filter; + } mergeReqId = getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { if (lastMergeDialogId == mergeDialogId) { mergeReqId = 0; @@ -3640,11 +3727,11 @@ public void searchMessagesInChat(String query, long dialogId, long mergeDialogId TLRPC.messages_Messages res = (TLRPC.messages_Messages) response; messagesSearchEndReached[1] = res.messages.isEmpty(); messagesSearchCount[1] = res instanceof TLRPC.TL_messages_messagesSlice ? res.count : res.messages.size(); - searchMessagesInChat(req.q, dialogId, mergeDialogId, guid, direction, replyMessageId, true, user, chat, jumpToMessage, reaction); + searchMessagesInChat(req.q, dialogId, mergeDialogId, guid, direction, replyMessageId, true, user, chat, jumpToMessage, reaction, filter); } else { messagesSearchEndReached[1] = true; messagesSearchCount[1] = 0; - searchMessagesInChat(req.q, dialogId, mergeDialogId, guid, direction, replyMessageId, true, user, chat, jumpToMessage, reaction); + searchMessagesInChat(req.q, dialogId, mergeDialogId, guid, direction, replyMessageId, true, user, chat, jumpToMessage, reaction, filter); } } }), ConnectionsManager.RequestFlagFailOnServerErrors); @@ -3661,6 +3748,7 @@ public void searchMessagesInChat(String query, long dialogId, long mergeDialogId loadingMoreSearchMessages = false; return; } + lastSearchFilter = filter; lastGuid = guid; lastDialogId = dialogId; lastSearchUser = user; @@ -3717,7 +3805,11 @@ public void searchMessagesInChat(String query, long dialogId, long mergeDialogId req.saved_reaction.add(reaction.toTLReaction()); req.flags |= 8; } - req.filter = new TLRPC.TL_inputMessagesFilterEmpty(); + if (filter == null) { + req.filter = new TLRPC.TL_inputMessagesFilterEmpty(); + } else { + req.filter = filter; + } lastSearchQuery = query; long queryWithDialogFinal = queryWithDialog; String finalQuery = query; @@ -3789,7 +3881,7 @@ public void searchMessagesInChat(String query, long dialogId, long mergeDialogId } } if (queryWithDialogFinal == dialogId && messagesSearchEndReached[0] && mergeDialogId != 0 && !messagesSearchEndReached[1]) { - searchMessagesInChat(lastSearchQuery, dialogId, mergeDialogId, guid, 0, replyMessageId, true, user, chat, jumpToMessage, lastReaction); + searchMessagesInChat(lastSearchQuery, dialogId, mergeDialogId, guid, 0, replyMessageId, true, user, chat, jumpToMessage, lastReaction, lastSearchFilter); } }; if (isSaved) { @@ -5232,8 +5324,8 @@ private Intent createIntrnalShortcutIntent(long dialogId) { return shortcutIntent; } - private Intent createIntrnalAttachedBotShortcutIntent(long botId, int botType) { - if (botId == 0 || botType != BotWebViewSheet.TYPE_WEB_VIEW_BOT_APP) { + private Intent createIntrnalAttachedBotShortcutIntent(long botId) { + if (botId == 0 || !canCreateAttachedMenuBotShortcut(botId)) { return null; } Intent shortcutIntent = new Intent(ApplicationLoader.applicationContext, OpenAttachedMenuBotReceiver.class); @@ -5250,7 +5342,7 @@ private Intent createIntrnalAttachedBotShortcutIntent(long botId, int botType) { public void installShortcut(long dialogId, int type) { try { - Intent shortcutIntent = type == SHORTCUT_TYPE_USER_OR_CHAT ? createIntrnalShortcutIntent(dialogId) : createIntrnalAttachedBotShortcutIntent(dialogId, BotWebViewSheet.TYPE_WEB_VIEW_BOT_APP); + Intent shortcutIntent = type == SHORTCUT_TYPE_USER_OR_CHAT ? createIntrnalShortcutIntent(dialogId) : createIntrnalAttachedBotShortcutIntent(dialogId); if (shortcutIntent == null) { return; } @@ -5464,7 +5556,7 @@ public void uninstallShortcut(long dialogId, int type) { name = chat.title; } - Intent shortcutIntent = type == SHORTCUT_TYPE_USER_OR_CHAT ? createIntrnalShortcutIntent(dialogId) : createIntrnalAttachedBotShortcutIntent(dialogId, BotWebViewSheet.TYPE_WEB_VIEW_BOT_APP); + Intent shortcutIntent = type == SHORTCUT_TYPE_USER_OR_CHAT ? createIntrnalShortcutIntent(dialogId) : createIntrnalAttachedBotShortcutIntent(dialogId); Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); @@ -5491,6 +5583,15 @@ public boolean isShortcutAdded(long dialogId, int type) { } return false; } + + public boolean canCreateAttachedMenuBotShortcut(long botId) { + for (int i = 0; i < attachMenuBots.bots.size(); i++) { + if (attachMenuBots.bots.get(i).bot_id == botId) { + return attachMenuBots.bots.get(i).show_in_side_menu && !isShortcutAdded(botId, MediaDataController.SHORTCUT_TYPE_ATTACHED_BOT); + } + } + return false; + } //---------------- SEARCH END ---------------- private static Comparator entityComparator = (entity1, entity2) -> { @@ -6727,7 +6828,9 @@ public ArrayList getEntities(CharSequence[] message, boolea if (endMessage.length() > 0 && endMessage.charAt(0) != '\n') { endMessage = AndroidUtilities.concat("\n", endMessage); } + boolean contentWasTruncated = false; if (content.length() > 0 && content.charAt(content.length() - 1) == '\n') { + contentWasTruncated = true; content = substring(content, 0, content.length() - 1); } if (!TextUtils.isEmpty(content)) { @@ -6738,7 +6841,7 @@ public ArrayList getEntities(CharSequence[] message, boolea message[0] = AndroidUtilities.concat(startMessage, content, endMessage); TLRPC.TL_messageEntityPre entity = new TLRPC.TL_messageEntityPre(); entity.offset = start + (replacedFirst ? 0 : 1); - entity.length = index - start - 3 - (language.length() + (!language.isEmpty() ? 1 : 0)) + (replacedFirst ? 0 : 1); + entity.length = index - start - 3 - (language.length() + (!language.isEmpty() ? 1 : 0)) + (replacedFirst ? 0 : 1) - (contentWasTruncated ? 1 : 0); entity.language = TextUtils.isEmpty(language) || language.trim().length() == 0 ? "" : language; entities.add(entity); lastIndex -= 6; @@ -6943,6 +7046,44 @@ public ArrayList getEntities(CharSequence[] message, boolea return entities; } + public static boolean entitiesEqual(TLRPC.MessageEntity entity1, TLRPC.MessageEntity entity2) { + if (entity1.getClass() != entity2.getClass() || + entity1.offset != entity2.offset || + entity1.length != entity2.length || + !TextUtils.equals(entity1.url, entity2.url) || + !TextUtils.equals(entity1.language, entity2.language)) { + return false; + } + if (entity1 instanceof TLRPC.TL_inputMessageEntityMentionName && ((TLRPC.TL_inputMessageEntityMentionName) entity1).user_id != ((TLRPC.TL_inputMessageEntityMentionName) entity2).user_id) { + return false; + } + if (entity1 instanceof TLRPC.TL_messageEntityMentionName && ((TLRPC.TL_messageEntityMentionName) entity1).user_id != ((TLRPC.TL_messageEntityMentionName) entity2).user_id) { + return false; + } + if (entity1 instanceof TLRPC.TL_messageEntityCustomEmoji && ((TLRPC.TL_messageEntityCustomEmoji) entity1).document_id != ((TLRPC.TL_messageEntityCustomEmoji) entity2).document_id) { + return false; + } + + return true; + } + + public static boolean entitiesEqual(ArrayList entities1, ArrayList entities2) { + if (entities1.size() != entities2.size()) { + return false; + } + + for (int i = 0; i < entities1.size(); i++) { + TLRPC.MessageEntity entity1 = entities1.get(i); + TLRPC.MessageEntity entity2 = entities2.get(i); + + if (!MediaDataController.entitiesEqual(entity1, entity2)) { + return false; + } + } + + return true; + } + private CharSequence parsePattern(CharSequence cs, Pattern pattern, ArrayList entities, GenericProvider entityProvider) { Matcher m = pattern.matcher(cs); int offset = 0; @@ -9088,7 +9229,7 @@ public void loadRestrictedStatusEmojis() { public LongSparseArray draftVoices = new LongSparseArray<>(); private void loadDraftVoiceMessages() { if (draftVoicesLoaded) return; - SharedPreferences prefs = ApplicationLoader.applicationContext.getSharedPreferences("voicedrafts_" + currentAccount, Context.MODE_PRIVATE); + SharedPreferences prefs = ApplicationLoader.applicationContext.getSharedPreferences("2voicedrafts_" + currentAccount, Context.MODE_PRIVATE); Set> entries = prefs.getAll().entrySet(); draftVoices.clear(); for (Map.Entry entry : entries) { @@ -9104,12 +9245,12 @@ public void toggleDraftVoiceOnce(long dialog_id, long topic_id, boolean once) { DraftVoice draft = getDraftVoice(dialog_id, topic_id); if (draft != null && draft.once != once) { draft.once = once; - SharedPreferences prefs = ApplicationLoader.applicationContext.getSharedPreferences("voicedrafts_" + currentAccount, Context.MODE_PRIVATE); + SharedPreferences prefs = ApplicationLoader.applicationContext.getSharedPreferences("2voicedrafts_" + currentAccount, Context.MODE_PRIVATE); prefs.edit().putString(Objects.hash(dialog_id, topic_id) + "", draft.toString()).apply(); } } public void pushDraftVoiceMessage(long dialog_id, long topic_id, DraftVoice draft) { - SharedPreferences prefs = ApplicationLoader.applicationContext.getSharedPreferences("voicedrafts_" + currentAccount, Context.MODE_PRIVATE); + SharedPreferences prefs = ApplicationLoader.applicationContext.getSharedPreferences("2voicedrafts_" + currentAccount, Context.MODE_PRIVATE); final long hash = Objects.hash(dialog_id, topic_id); final String key = hash + ""; if (draft == null) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java index 34c2c73b7d..3b76c35989 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java @@ -223,6 +223,7 @@ public class MessageObject { public TLRPC.TL_sponsoredWebPage sponsoredWebPage; public TLRPC.BotApp sponsoredBotApp; public String sponsoredButtonText; + public boolean sponsoredCanReport; public boolean replyTextEllipsized; public boolean replyTextRevealed; public int overrideLinkColor = -1; @@ -3692,7 +3693,7 @@ public void createMessageSendInfo() { boolean notReadyYet = videoEditedInfo != null && videoEditedInfo.notReadyYet; if (messageOwner.message != null && (messageOwner.id < 0 || isEditing()) && messageOwner.params != null) { String param; - if ((param = messageOwner.params.get("ve")) != null && (isVideo() || isNewGif() || isRoundVideo())) { + if ((param = messageOwner.params.get("ve")) != null && (isVideo() || isNewGif() || isRoundVideo() || isVideoSticker())) { videoEditedInfo = new VideoEditedInfo(); if (!videoEditedInfo.parseString(param)) { videoEditedInfo = null; @@ -5090,6 +5091,10 @@ public static boolean isAnimatedStickerDocument(TLRPC.Document document) { return document != null && document.mime_type.equals("video/webm"); } + public static boolean isStaticStickerDocument(TLRPC.Document document) { + return document != null && document.mime_type.equals("image/webp"); + } + public static boolean isGifDocument(WebFile document) { return document != null && (document.mime_type.equals("image/gif") || isNewGifDocument(document)); } @@ -6009,13 +6014,20 @@ public void replaceEmojiToLottieFrame(CharSequence text, int[] emojiOnly) { return; } for (int i = 0; i < spans.length; ++i) { - TLRPC.Document lottieDocument = MediaDataController.getInstance(currentAccount).getEmojiAnimatedSticker(spans[i].emoji); + CharSequence emoji = spans[i].emoji; + boolean invert = false; + if (Emoji.endsWithRightArrow(emoji)) { + emoji = emoji.subSequence(0, emoji.length() - 2); + invert = true; + } + TLRPC.Document lottieDocument = MediaDataController.getInstance(currentAccount).getEmojiAnimatedSticker(emoji); if (lottieDocument != null) { int start = spannable.getSpanStart(spans[i]); int end = spannable.getSpanEnd(spans[i]); spannable.removeSpan(spans[i]); AnimatedEmojiSpan span = new AnimatedEmojiSpan(lottieDocument, spans[i].fontMetrics); span.standard = true; + span.invert = invert; spannable.setSpan(span, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } } @@ -8984,7 +8996,7 @@ public boolean needDrawForwarded() { if (fromId >= 0) { fromId = DialogObject.getPeerDialogId(messageOwner.fwd_from.from_id); } - if (fromId == 0) return savedId != UserObject.ANONYMOUS; + if (fromId == 0) return savedId >= 0 && savedId != UserObject.ANONYMOUS; return savedId != fromId && fromId != selfId; } return (messageOwner.flags & TLRPC.MESSAGE_FLAG_FWD) != 0 && messageOwner.fwd_from != null && !messageOwner.fwd_from.imported && (messageOwner.fwd_from.saved_from_peer == null || !(messageOwner.fwd_from.from_id instanceof TLRPC.TL_peerChannel) || messageOwner.fwd_from.saved_from_peer.channel_id != messageOwner.fwd_from.from_id.channel_id) && UserConfig.getInstance(currentAccount).getClientUserId() != getDialogId(); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java index eec46c56ca..5dc34ecc62 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java @@ -255,7 +255,7 @@ public ChatlistUpdatesStat(TL_chatlists.TL_chatlists_chatlistUpdates value) { public boolean dialogFiltersLoaded; public ArrayList suggestedFilters = new ArrayList<>(); - private LongSparseArray> updatesQueueChannels = new LongSparseArray<>(); + private final LongSparseArray> updatesQueueChannels = new LongSparseArray<>(); private LongSparseLongArray updatesStartWaitTimeChannels = new LongSparseLongArray(); private LongSparseIntArray channelsPts = new LongSparseIntArray(); private LongSparseArray gettingDifferenceChannels = new LongSparseArray<>(); @@ -557,6 +557,7 @@ protected boolean useCache(Integer arguments) { public int recommendedChannelsLimitDefault; public int recommendedChannelsLimitPremium; public int boostsChannelLevelMax; + public int channelRestrictSponsoredLevelMin; public int channelsLimitDefault; public int channelsLimitPremium; @@ -610,6 +611,14 @@ protected boolean useCache(Integer arguments) { public int groupTranscribeLevelMin; public int quickRepliesLimit; public int quickReplyMessagesLimit; + public float uploadPremiumSpeedupUpload; + public float uploadPremiumSpeedupDownload; + public int uploadPremiumSpeedupNotifyPeriod; + public int introTitleLengthLimit; + public int introDescriptionLengthLimit; + public int businessChatLinksLimit; + public boolean channelRevenueWithdrawalEnabled; + public boolean newNoncontactPeersRequirePremiumWithoutOwnpremium; public int savedDialogsPinnedLimitDefault; public int savedDialogsPinnedLimitPremium; @@ -1595,11 +1604,20 @@ public MessagesController(int num) { recommendedChannelsLimitDefault = mainPreferences.getInt("recommendedChannelsLimitDefault", 10); recommendedChannelsLimitPremium = mainPreferences.getInt("recommendedChannelsLimitPremium", 100); boostsChannelLevelMax = mainPreferences.getInt("boostsChannelLevelMax", 100); + channelRestrictSponsoredLevelMin = mainPreferences.getInt("channelRestrictSponsoredLevelMin", 30); savedDialogsPinnedLimitDefault = mainPreferences.getInt("savedDialogsPinnedLimitDefault", 4); savedDialogsPinnedLimitPremium = mainPreferences.getInt("savedDialogsPinnedLimitPremium", 6); storyQualityFull = mainPreferences.getBoolean("storyQualityFull", true); savedViewAsChats = mainPreferences.getBoolean("savedViewAsChats", false); folderTags = mainPreferences.getBoolean("folderTags", false); + uploadPremiumSpeedupUpload = mainPreferences.getFloat("uploadPremiumSpeedupUpload", 10.0f); + uploadPremiumSpeedupDownload = mainPreferences.getFloat("uploadPremiumSpeedupDownload", 10.0f); + uploadPremiumSpeedupNotifyPeriod = mainPreferences.getInt("uploadPremiumSpeedupNotifyPeriod2", 3600); + introTitleLengthLimit = mainPreferences.getInt("introTitleLengthLimit", 32); + introDescriptionLengthLimit = mainPreferences.getInt("introDescriptionLengthLimit", 72); + businessChatLinksLimit = mainPreferences.getInt("businessChatLinksLimit", 100); + channelRevenueWithdrawalEnabled = mainPreferences.getBoolean("channelRevenueWithdrawalEnabled", false); + newNoncontactPeersRequirePremiumWithoutOwnpremium = mainPreferences.getBoolean("newNoncontactPeersRequirePremiumWithoutOwnpremium", false); scheduleTranscriptionUpdate(); // BuildVars.GOOGLE_AUTH_CLIENT_ID = mainPreferences.getString("googleAuthClientId", BuildVars.GOOGLE_AUTH_CLIENT_ID); if (mainPreferences.contains("dcDomainName2")) { @@ -3801,6 +3819,17 @@ private void applyAppConfig(TLRPC.TL_jsonObject object) { } break; } + case "channel_restrict_sponsored_level_min": { + if (value.value instanceof TLRPC.TL_jsonNumber) { + TLRPC.TL_jsonNumber num = (TLRPC.TL_jsonNumber) value.value; + if (channelRestrictSponsoredLevelMin != num.value) { + channelRestrictSponsoredLevelMin = (int) num.value; + editor.putInt("channelRestrictSponsoredLevelMin", channelRestrictSponsoredLevelMin); + changed = true; + } + } + break; + } case "channel_bg_icon_level_min": { if (value.value instanceof TLRPC.TL_jsonNumber) { TLRPC.TL_jsonNumber num = (TLRPC.TL_jsonNumber) value.value; @@ -3966,6 +3995,94 @@ private void applyAppConfig(TLRPC.TL_jsonObject object) { } break; } + case "upload_premium_speedup_upload": { + if (value.value instanceof TLRPC.TL_jsonNumber) { + TLRPC.TL_jsonNumber num = (TLRPC.TL_jsonNumber) value.value; + if (Math.abs(num.value - uploadPremiumSpeedupUpload) >= 0.01f) { + uploadPremiumSpeedupUpload = (float) num.value; + editor.putFloat("uploadPremiumSpeedupUpload", uploadPremiumSpeedupUpload); + changed = true; + } + } + break; + } + case "upload_premium_speedup_download": { + if (value.value instanceof TLRPC.TL_jsonNumber) { + TLRPC.TL_jsonNumber num = (TLRPC.TL_jsonNumber) value.value; + if (Math.abs(num.value - uploadPremiumSpeedupDownload) >= 0.01f) { + uploadPremiumSpeedupDownload = (float) num.value; + editor.putFloat("uploadPremiumSpeedupDownload", uploadPremiumSpeedupDownload); + changed = true; + } + } + break; + } + case "upload_premium_speedup_notify_period": { + if (value.value instanceof TLRPC.TL_jsonNumber) { + TLRPC.TL_jsonNumber num = (TLRPC.TL_jsonNumber) value.value; + if (num.value != uploadPremiumSpeedupNotifyPeriod) { + uploadPremiumSpeedupNotifyPeriod = (int) num.value; + editor.putInt("uploadPremiumSpeedupNotifyPeriod2", uploadPremiumSpeedupNotifyPeriod); + changed = true; + } + } + break; + } + case "intro_title_length_limit": { + if (value.value instanceof TLRPC.TL_jsonNumber) { + TLRPC.TL_jsonNumber num = (TLRPC.TL_jsonNumber) value.value; + if (num.value != introTitleLengthLimit) { + introTitleLengthLimit = (int) num.value; + editor.putInt("introTitleLengthLimit", introTitleLengthLimit); + changed = true; + } + } + break; + } + case "intro_description_length_limit": { + if (value.value instanceof TLRPC.TL_jsonNumber) { + TLRPC.TL_jsonNumber num = (TLRPC.TL_jsonNumber) value.value; + if (num.value != introDescriptionLengthLimit) { + introDescriptionLengthLimit = (int) num.value; + editor.putInt("introDescriptionLengthLimit", introDescriptionLengthLimit); + changed = true; + } + } + break; + } + case "business_chat_links_limit": { + if (value.value instanceof TLRPC.TL_jsonNumber) { + TLRPC.TL_jsonNumber num = (TLRPC.TL_jsonNumber) value.value; + if (num.value != businessChatLinksLimit) { + businessChatLinksLimit = (int) num.value; + editor.putInt("businessChatLinksLimit", businessChatLinksLimit); + changed = true; + } + } + break; + } + case "channel_revenue_withdrawal_enabled": { + if (value.value instanceof TLRPC.TL_jsonBool) { + TLRPC.TL_jsonBool num = (TLRPC.TL_jsonBool) value.value; + if (num.value != channelRevenueWithdrawalEnabled) { + channelRevenueWithdrawalEnabled = num.value; + editor.putBoolean("channelRevenueWithdrawalEnabled", channelRevenueWithdrawalEnabled); + changed = true; + } + } + break; + } + case "new_noncontact_peers_require_premium_without_ownpremium": { + if (value.value instanceof TLRPC.TL_jsonBool) { + TLRPC.TL_jsonBool num = (TLRPC.TL_jsonBool) value.value; + if (num.value != newNoncontactPeersRequirePremiumWithoutOwnpremium) { + newNoncontactPeersRequirePremiumWithoutOwnpremium = num.value; + editor.putBoolean("newNoncontactPeersRequirePremiumWithoutOwnpremium", newNoncontactPeersRequirePremiumWithoutOwnpremium); + changed = true; + } + } + break; + } } } @@ -4494,9 +4611,10 @@ public static PeerColor fromString(String string) { private void resetAppConfig() { getfileExperimentalParams = false; + channelRevenueWithdrawalEnabled = false; collectDeviceStats = false; smsjobsStickyNotificationEnabled = false; - mainPreferences.edit().remove("getfileExperimentalParams").remove("smsjobsStickyNotificationEnabled").apply(); + mainPreferences.edit().remove("getfileExperimentalParams").remove("smsjobsStickyNotificationEnabled").remove("channelRevenueWithdrawalEnabled").apply(); } private boolean savePremiumFeaturesPreviewOrder(String key, SparseIntArray array, SharedPreferences.Editor editor, ArrayList value) { @@ -4874,6 +4992,18 @@ public TLRPC.Peer getPeer(long id) { return inputPeer; } + public TLRPC.InputDocument getInputDocument(TLRPC.Document document) { + if (document == null) return null; + TLRPC.TL_inputDocument id = new TLRPC.TL_inputDocument(); + id.id = document.id; + id.access_hash = document.access_hash; + id.file_reference = document.file_reference; + if (id.file_reference == null) { + id.file_reference = new byte[0]; + } + return id; + } + public String getPeerName(long dialogId) { return getPeerName(dialogId, false); @@ -6054,7 +6184,7 @@ public void cancelLoadFullChat(long chatId) { loadingFullChats.remove(chatId); } - protected void clearFullUsers() { + public void clearFullUsers() { loadedFullUsers.clear(); loadedFullChats.clear(); } @@ -6182,7 +6312,7 @@ public boolean isChannelAdminsLoaded(long chatId) { public void loadChannelAdmins(long chatId, boolean cache) { int loadTime = loadingChannelAdmins.get(chatId); - if (SystemClock.elapsedRealtime() - loadTime < 60) { + if ((SystemClock.elapsedRealtime() / 1000) - loadTime < 60) { return; } loadingChannelAdmins.put(chatId, (int) (SystemClock.elapsedRealtime() / 1000)); @@ -6620,11 +6750,23 @@ public void reportSpam(final long dialogId, TLRPC.User currentUser, TLRPC.Chat c } } - private void savePeerSettings(long dialogId, TLRPC.TL_peerSettings settings, boolean update) { - if (settings == null || notificationsPreferences.getInt("dialog_bar_vis3" + dialogId, 0) == 3) { + private void savePeerSettings(long dialogId, TLRPC.PeerSettings settings, boolean update) { + if (settings == null) { return; } SharedPreferences.Editor editor = notificationsPreferences.edit(); + if (settings.business_bot_id != 0) { + editor.putLong("dialog_botid" + dialogId, settings.business_bot_id); + editor.putString("dialog_boturl" + dialogId, settings.business_bot_manage_url); + editor.putInt("dialog_botflags" + dialogId, (settings.business_bot_paused ? 1 : 0) + (settings.business_bot_can_reply ? 2 : 0)); + } else { + editor.remove("dialog_botid" + dialogId).remove("dialog_boturl" + dialogId).remove("dialog_botflags" + dialogId); + } + if (notificationsPreferences.getInt("dialog_bar_vis3" + dialogId, 0) == 3) { + editor.apply(); + getNotificationCenter().postNotificationName(NotificationCenter.peerSettingsDidLoad, dialogId); + return; + } boolean bar_hidden = settings.flags == 0; if (BuildVars.LOGS_ENABLED) { FileLog.d("peer settings loaded for " + dialogId + " add = " + settings.add_contact + " block = " + settings.block_contact + " spam = " + settings.report_spam + " share = " + settings.share_contact + " geo = " + settings.report_geo + " hide = " + bar_hidden + " distance = " + settings.geo_distance + " invite = " + settings.invite_members); @@ -6648,6 +6790,10 @@ private void savePeerSettings(long dialogId, TLRPC.TL_peerSettings settings, boo editor.remove("dialog_bar_distance" + dialogId); } } + if (dialogId == getUserConfig().getClientUserId()) { + settings.business_bot_id = UserObject.REPLY_BOT; + settings.business_bot_manage_url = "https://telegram.org/"; + } editor.apply(); getNotificationCenter().postNotificationName(NotificationCenter.peerSettingsDidLoad, dialogId); } @@ -6686,7 +6832,7 @@ public void loadPeerSettings(TLRPC.User currentUser, TLRPC.Chat currentChat) { loadingPeerSettings.remove(dialogId); if (response != null) { TLRPC.TL_messages_peerSettings res = (TLRPC.TL_messages_peerSettings) response; - TLRPC.TL_peerSettings settings = res.settings; + TLRPC.PeerSettings settings = res.settings; putUsers(res.users, false); putChats(res.chats, false); @@ -7360,7 +7506,7 @@ public void setUserAdminRole(long chatId, TLRPC.User user, TLRPC.TL_chatAdminRig LimitReachedBottomSheet restricterdUsersBottomSheet = new LimitReachedBottomSheet(lastFragment, lastFragment.getParentActivity(), LimitReachedBottomSheet.TYPE_ADD_MEMBERS_RESTRICTED, currentAccount, null); ArrayList users = new ArrayList(); users.add(user); - restricterdUsersBottomSheet.setRestrictedUsers(chat, users); + restricterdUsersBottomSheet.setRestrictedUsers(chat, users, null, null); restricterdUsersBottomSheet.show(); } onError.run(error); @@ -11973,13 +12119,14 @@ private void applyDialogNotificationsSettings(long dialogId, long topicId, TLRPC } private void applyDialogsNotificationsSettings(ArrayList dialogs) { - SharedPreferences.Editor editor = null; + SharedPreferences.Editor editor = getNotificationsSettings(currentAccount).edit(); for (int a = 0; a < dialogs.size(); a++) { TLRPC.Dialog dialog = dialogs.get(a); if (dialog.peer != null && dialog.notify_settings instanceof TLRPC.TL_peerNotifySettings) { - getNotificationsController().getNotificationsSettingsFacade().setSettingsForDialog(dialog, dialog.notify_settings); + getNotificationsController().getNotificationsSettingsFacade().setSettingsForDialog(editor, dialog, dialog.notify_settings); } } + editor.apply(); } public void reloadMentionsCountForChannel(TLRPC.InputPeer peer, long taskId) { @@ -13010,18 +13157,20 @@ public int createChat(String title, ArrayList selectedContacts, String abo }); return; } - TLRPC.Updates updates = (TLRPC.Updates) response; - processUpdates(updates, false); - AndroidUtilities.runOnUIThread(() -> { - putUsers(updates.users, false); - putChats(updates.chats, false); - if (updates.chats != null && !updates.chats.isEmpty()) { - getNotificationCenter().postNotificationName(NotificationCenter.chatDidCreated, updates.chats.get(0).id); - AlertsCreator.checkRestrictedInviteUsers(currentAccount, updates.chats.get(0), updates); - } else { - getNotificationCenter().postNotificationName(NotificationCenter.chatDidFailCreate); - } - }); + if (response instanceof TLRPC.TL_messages_invitedUsers) { + TLRPC.TL_messages_invitedUsers res = (TLRPC.TL_messages_invitedUsers) response; + processUpdates(res.updates, false); + AndroidUtilities.runOnUIThread(() -> { + putUsers(res.updates.users, false); + putChats(res.updates.chats, false); + if (res.updates.chats != null && !res.updates.chats.isEmpty()) { + getNotificationCenter().postNotificationName(NotificationCenter.chatDidCreated, res.updates.chats.get(0).id); + AlertsCreator.checkRestrictedInviteUsers(currentAccount, res.updates.chats.get(0), res); + } else { + getNotificationCenter().postNotificationName(NotificationCenter.chatDidFailCreate); + } + }); + } }, ConnectionsManager.RequestFlagFailOnServerErrors); } else if (forImport || type == ChatObject.CHAT_TYPE_CHANNEL || type == ChatObject.CHAT_TYPE_MEGAGROUP || type == ChatObject.CHAT_TYPE_FORUM) { TLRPC.TL_channels_createChannel req = new TLRPC.TL_channels_createChannel(); @@ -13209,11 +13358,15 @@ public void addUsersToChannel(long chatId, ArrayList users, Bas AndroidUtilities.runOnUIThread(() -> AlertsCreator.processError(currentAccount, error, fragment, req, true)); return; } - processUpdates((TLRPC.Updates) response, false); - AndroidUtilities.runOnUIThread(() -> { - AlertsCreator.checkRestrictedInviteUsers(currentAccount, getChat(chatId), (TLRPC.Updates) response); - }); - + if (response instanceof TLRPC.TL_messages_invitedUsers) { + TLRPC.TL_messages_invitedUsers res = (TLRPC.TL_messages_invitedUsers) response; + processUpdates(res.updates, false); + AndroidUtilities.runOnUIThread(() -> { + putUsers(res.updates.users, false); + putChats(res.updates.chats, false); + AlertsCreator.checkRestrictedInviteUsers(currentAccount, getChat(chatId), res); + }); + } }); } @@ -13427,47 +13580,40 @@ public interface ErrorDelegate { public boolean run(TLRPC.TL_error error); } + public void loadUsersPremiumLocked( + final ArrayList users, + Utilities.Callback> whenDone + ) { + if (whenDone == null) return; + if (getUserConfig().isPremium()) { + whenDone.run(null); + return; + } + TLRPC.TL_users_getIsPremiumRequiredToContact req = new TLRPC.TL_users_getIsPremiumRequiredToContact(); + MessagesController mc = MessagesController.getInstance(currentAccount); + for (TLRPC.User user : users) { + req.id.add(mc.getInputUser(user)); + } + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + ArrayList lockedUserIds = new ArrayList<>(); + if (res instanceof TLRPC.Vector) { + TLRPC.Vector vector = (TLRPC.Vector) res; + for (int i = 0; i < vector.objects.size(); ++i) { + if (i < users.size() && vector.objects.get(i) instanceof TLRPC.TL_boolTrue) { + lockedUserIds.add(users.get(i).id); + } + } + } + whenDone.run(lockedUserIds); + })); + } + public void addUsersToChat(TLRPC.Chat currentChat, BaseFragment baseFragment, ArrayList users, int fwdCount, Consumer onAddUser, Consumer onRestricted, Runnable onComplete) { final int count = users.size(); final int[] processed = new int[1]; - final ArrayList userRestrictedPrivacy = new ArrayList<>(); processed[0] = 0; - final Runnable showUserRestrictedPrivacyAlert = () -> { - AndroidUtilities.runOnUIThread(() -> { - BaseFragment lastFragment = LaunchActivity.getLastFragment(); - if (lastFragment != null && lastFragment.getParentActivity() != null && !lastFragment.getParentActivity().isFinishing()) { -// if (ChatObject.canUserDoAdminAction(currentChat, ChatObject.ACTION_INVITE)) { - LimitReachedBottomSheet restricterdUsersBottomSheet = new LimitReachedBottomSheet(lastFragment, lastFragment.getParentActivity(), LimitReachedBottomSheet.TYPE_ADD_MEMBERS_RESTRICTED, currentAccount, null); - restricterdUsersBottomSheet.setRestrictedUsers(currentChat, userRestrictedPrivacy); - restricterdUsersBottomSheet.show(); -// } else { -// CharSequence title, description; -// if (userRestrictedPrivacy.size() == 1) { -// if (count > 1) { -// title = LocaleController.getString("InviteToGroupErrorTitleAUser", R.string.InviteToGroupErrorTitleAUser); -// } else { -// title = LocaleController.getString("InviteToGroupErrorTitleThisUser", R.string.InviteToGroupErrorTitleThisUser); -// } -// description = AndroidUtilities.replaceTags(LocaleController.formatString("InviteToGroupErrorMessageSingle", R.string.InviteToGroupErrorMessageSingle, UserObject.getFirstName(userRestrictedPrivacy.get(0)))); -// } else if (userRestrictedPrivacy.size() == 2) { -// title = LocaleController.getString("InviteToGroupErrorTitleSomeUsers", R.string.InviteToGroupErrorTitleSomeUsers); -// description = AndroidUtilities.replaceTags(LocaleController.formatString("InviteToGroupErrorMessageDouble", R.string.InviteToGroupErrorMessageDouble, UserObject.getFirstName(userRestrictedPrivacy.get(0)), UserObject.getFirstName(userRestrictedPrivacy.get(1)))); -// } else if (userRestrictedPrivacy.size() == count) { -// title = LocaleController.getString("InviteToGroupErrorTitleTheseUsers", R.string.InviteToGroupErrorTitleTheseUsers); -// description = LocaleController.getString("InviteToGroupErrorMessageMultipleAll", R.string.InviteToGroupErrorMessageMultipleAll); -// } else { -// title = LocaleController.getString("InviteToGroupErrorTitleSomeUsers", R.string.InviteToGroupErrorTitleSomeUsers); -// description = LocaleController.getString("InviteToGroupErrorMessageMultipleSome", R.string.InviteToGroupErrorMessageMultipleSome); -// } -// new AlertDialog.Builder(lastFragment.getParentActivity()) -// .setTitle(title) -// .setMessage(description) -// .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) -// .show(); -// } - } - }, 200); - }; + TLRPC.TL_messages_invitedUsers totalInvitedUsers = new TLRPC.TL_messages_invitedUsers(); + totalInvitedUsers.updates = new TLRPC.TL_updates(); long chatId = currentChat.id; for (int a = 0; a < count; a++) { final TLRPC.User user = users.get(a); @@ -13475,38 +13621,63 @@ public void addUsersToChat(TLRPC.Chat currentChat, BaseFragment baseFragment, Ar if (onAddUser != null) { onAddUser.accept(user); } + }, err -> { + if (onRestricted != null) { + onRestricted.accept(user); + } + return !(err != null && "USER_PRIVACY_RESTRICTED".equals(err.text)); + }, invitedUsers -> { + if (invitedUsers != null) { + totalInvitedUsers.missing_invitees.addAll(invitedUsers.missing_invitees); + } processed[0]++; if (processed[0] >= count) { - if (userRestrictedPrivacy.size() > 0) { - showUserRestrictedPrivacyAlert.run(); + if (!totalInvitedUsers.missing_invitees.isEmpty()) { + AndroidUtilities.runOnUIThread(() -> { + AlertsCreator.checkRestrictedInviteUsers(currentAccount, currentChat, totalInvitedUsers); + }); } if (onComplete != null) { onComplete.run(); } } - }, err -> { - processed[0]++; - boolean privacyRestricted; - if (privacyRestricted = err != null && "USER_PRIVACY_RESTRICTED".equals(err.text)) { - userRestrictedPrivacy.add(user); - } - if (processed[0] >= count && userRestrictedPrivacy.size() > 0) { - showUserRestrictedPrivacyAlert.run(); - } - if (onRestricted != null) { - onRestricted.accept(user); - } - return !privacyRestricted; }); putUser(user, false); } } - public void addUserToChat(long chatId, TLRPC.User user, int forwardCount, String botHash, BaseFragment fragment, boolean ignoreIfAlreadyExists, Runnable onFinishRunnable, ErrorDelegate onError) { + + public void addUserToChat( + long chatId, + TLRPC.User user, + int forwardCount, + String botHash, + BaseFragment fragment, + boolean ignoreIfAlreadyExists, + Runnable onFinishRunnable, + ErrorDelegate onError + ) { + addUserToChat(chatId, user, forwardCount, botHash, fragment, ignoreIfAlreadyExists, onFinishRunnable, onError, null); + } + + public void addUserToChat( + long chatId, + TLRPC.User user, + int forwardCount, + String botHash, + BaseFragment fragment, + boolean ignoreIfAlreadyExists, + Runnable onFinishRunnable, + ErrorDelegate onError, + Utilities.Callback processInvitedUsers + ) { if (user == null) { if (onError != null) { onError.run(null); } + if (processInvitedUsers != null) { + processInvitedUsers.run(null); + } return; } @@ -13560,6 +13731,28 @@ public void addUserToChat(long chatId, TLRPC.User user, int forwardCount, String AndroidUtilities.runOnUIThread(() -> joiningToChannels.remove(chatId)); } if (error != null) { + if ("PRIVACY_PREMIUM_REQUIRED".equals(error.text)) { + TLRPC.TL_messages_invitedUsers invitedUsers = new TLRPC.TL_messages_invitedUsers(); + invitedUsers.updates = new TLRPC.TL_updates(); + TLRPC.TL_missingInvitee missingInvitee = new TLRPC.TL_missingInvitee(); + missingInvitee.user_id = user.id; + missingInvitee.premium_would_allow_invite = true; + missingInvitee.premium_required_for_pm = true; + invitedUsers.missing_invitees.add(missingInvitee); + AndroidUtilities.runOnUIThread(() -> { + if (processInvitedUsers != null) { + processInvitedUsers.run(invitedUsers); + } else { + AlertsCreator.checkRestrictedInviteUsers(currentAccount, getChat(chatId), invitedUsers); + } + }); + return; + } + AndroidUtilities.runOnUIThread(() -> { + if (processInvitedUsers != null) { + processInvitedUsers.run(null); + } + }); if ("USER_ALREADY_PARTICIPANT".equals(error.text) && ignoreIfAlreadyExists) { if (onFinishRunnable != null) { AndroidUtilities.runOnUIThread(onFinishRunnable); @@ -13585,7 +13778,23 @@ public void addUserToChat(long chatId, TLRPC.User user, int forwardCount, String return; } boolean hasJoinMessage = false; - TLRPC.Updates updates = (TLRPC.Updates) response; + TLRPC.Updates updates; + TLRPC.TL_messages_invitedUsers invitedUsers; + if (response instanceof TLRPC.TL_messages_invitedUsers) { + invitedUsers = (TLRPC.TL_messages_invitedUsers) response; + updates = invitedUsers.updates; + } else if (response instanceof TLRPC.Updates) { + invitedUsers = null; + updates = (TLRPC.Updates) response; + } else { + FileLog.e("unexpected " + response + " in addUserToChat"); + AndroidUtilities.runOnUIThread(() -> { + if (processInvitedUsers != null) { + processInvitedUsers.run(null); + } + }); + return; + } for (int a = 0; a < updates.updates.size(); a++) { TLRPC.Update update = updates.updates.get(a); if (update instanceof TLRPC.TL_updateNewChannelMessage) { @@ -13596,13 +13805,22 @@ public void addUserToChat(long chatId, TLRPC.User user, int forwardCount, String } } processUpdates(updates, false); + if (invitedUsers != null && !invitedUsers.missing_invitees.isEmpty()) { + AndroidUtilities.runOnUIThread(() -> { + putUsers(updates.users, false); + putChats(updates.chats, false); + if (processInvitedUsers != null) { + processInvitedUsers.run(invitedUsers); + } else { + AlertsCreator.checkRestrictedInviteUsers(currentAccount, getChat(chatId), invitedUsers); + } + }); + return; + } if (isChannel) { if (!hasJoinMessage && inputUser instanceof TLRPC.TL_inputUserSelf) { generateJoinMessage(chatId, true); } - AndroidUtilities.runOnUIThread(() -> { - AlertsCreator.checkRestrictedInviteUsers(currentAccount, getChat(chatId), (TLRPC.Updates) response); - }); AndroidUtilities.runOnUIThread(() -> loadFullChat(chatId, 0, true), 1000); } if (isChannel && inputUser instanceof TLRPC.TL_inputUserSelf) { @@ -13611,6 +13829,9 @@ public void addUserToChat(long chatId, TLRPC.User user, int forwardCount, String if (onFinishRunnable != null) { AndroidUtilities.runOnUIThread(onFinishRunnable); } + if (processInvitedUsers != null) { + AndroidUtilities.runOnUIThread(() -> processInvitedUsers.run(null)); + } }); } @@ -18257,7 +18478,7 @@ public boolean processUpdateArray(ArrayList updates, ArrayList value = scheduledMessagesFinal.valueAt(a); - updateInterfaceWithMessages(key, value, 0); + updateInterfaceWithMessages(key, value, ChatActivity.MODE_SCHEDULED); } } if (editingMessagesFinal != null) { @@ -18847,6 +19068,7 @@ public SponsoredMessagesInfo getSponsoredMessages(long dialogId) { messageObject.sponsoredWebPage = sponsoredMessage.webpage; messageObject.sponsoredBotApp = sponsoredMessage.app; messageObject.sponsoredButtonText = sponsoredMessage.button_text; + messageObject.sponsoredCanReport = sponsoredMessage.can_report; result.add(messageObject); } } @@ -19051,7 +19273,7 @@ public boolean updateInterfaceWithMessages(long dialogId, ArrayList Instance = new SparseArray(); private static final Object lockObject = new Object(); - public final static int LAST_DB_VERSION = 149; + public final static int LAST_DB_VERSION = 152; private boolean databaseMigrationInProgress; public boolean showClearDatabaseAlert; private LongSparseIntArray dialogIsForum = new LongSparseIntArray(); @@ -626,8 +624,9 @@ public static void createTables(SQLiteDatabase database) throws SQLiteException database.executeFast("CREATE TABLE requested_holes(uid INTEGER, seq_out_start INTEGER, seq_out_end INTEGER, PRIMARY KEY (uid, seq_out_start, seq_out_end));").stepThis().dispose(); database.executeFast("CREATE TABLE sharing_locations(uid INTEGER PRIMARY KEY, mid INTEGER, date INTEGER, period INTEGER, message BLOB, proximity INTEGER);").stepThis().dispose(); - database.executeFast("CREATE TABLE stickersets2(id INTEGER PRIMATE KEY, data BLOB, hash INTEGER, date INTEGER);").stepThis().dispose(); + database.executeFast("CREATE TABLE stickersets2(id INTEGER PRIMATE KEY, data BLOB, hash INTEGER, date INTEGER, short_name TEXT);").stepThis().dispose(); database.executeFast("CREATE INDEX IF NOT EXISTS stickersets2_id_index ON stickersets2(id);").stepThis().dispose(); + database.executeFast("CREATE INDEX IF NOT EXISTS stickersets2_id_short_name ON stickersets2(id, short_name);").stepThis().dispose(); database.executeFast("CREATE INDEX IF NOT EXISTS stickers_featured_emoji_index ON stickers_featured(emoji);").stepThis().dispose(); @@ -700,7 +699,7 @@ public static void createTables(SQLiteDatabase database) throws SQLiteException database.executeFast("CREATE TABLE stories (dialog_id INTEGER, story_id INTEGER, data BLOB, custom_params BLOB, PRIMARY KEY (dialog_id, story_id));").stepThis().dispose(); database.executeFast("CREATE TABLE stories_counter (dialog_id INTEGER PRIMARY KEY, count INTEGER, max_read INTEGER);").stepThis().dispose(); - database.executeFast("CREATE TABLE profile_stories (dialog_id INTEGER, story_id INTEGER, data BLOB, type INTEGER, PRIMARY KEY(dialog_id, story_id));").stepThis().dispose(); + database.executeFast("CREATE TABLE profile_stories (dialog_id INTEGER, story_id INTEGER, data BLOB, type INTEGER, seen INTEGER, PRIMARY KEY(dialog_id, story_id));").stepThis().dispose(); database.executeFast("CREATE TABLE story_drafts (id INTEGER PRIMARY KEY, date INTEGER, data BLOB, type INTEGER);").stepThis().dispose(); @@ -722,6 +721,8 @@ public static void createTables(SQLiteDatabase database) throws SQLiteException database.executeFast("CREATE INDEX IF NOT EXISTS reply_to_idx_quick_replies_messages ON quick_replies_messages(mid, reply_to_message_id);").stepThis().dispose(); database.executeFast("CREATE INDEX IF NOT EXISTS idx_to_reply_quick_replies_messages ON quick_replies_messages(reply_to_message_id, mid);").stepThis().dispose(); + database.executeFast("CREATE TABLE business_links(data BLOB, order_value INTEGER);").stepThis().dispose(); + database.executeFast("PRAGMA user_version = " + MessagesStorage.LAST_DB_VERSION).stepThis().dispose(); @@ -3595,6 +3596,7 @@ protected void loadReplyMessages(LongSparseArray { SQLiteCursor cursor = null; + int magic = 0; try { ArrayList usersToLoad = new ArrayList<>(); ArrayList chatsToLoad = new ArrayList<>(); @@ -3651,7 +3653,8 @@ public void loadUnreadMessages() { while (cursor.next()) { NativeByteBuffer data = cursor.byteBufferValue(1); if (data != null) { - TLRPC.Message message = TLRPC.Message.TLdeserialize(data, data.readInt32(false), false); + magic = data.readInt32(false); + TLRPC.Message message = TLRPC.Message.TLdeserialize(data, magic, false); message.readAttachPath(data, getUserConfig().clientUserId); data.reuse(); MessageObject.setUnreadFlags(message, cursor.intValue(0)); @@ -6733,6 +6736,17 @@ public void loadUserInfo(TLRPC.User user, boolean force, int classGuid, int from } } } + ArrayList chatsToLoad = new ArrayList<>(); + if (info != null && (info.flags2 & 64) != 0 && info.personal_channel_id != 0) { + chatsToLoad.add(info.personal_channel_id); + } + if (!chatsToLoad.isEmpty()) { + ArrayList chats = new ArrayList<>(); + getChatsInternal(TextUtils.join(",", chatsToLoad), chats); + AndroidUtilities.runOnUIThread(() -> { + getMessagesController().putChats(chats, true); + }); + } } catch (Exception e) { checkSQLException(e); } finally { @@ -14556,6 +14570,38 @@ public void replaceMessageIfExists(TLRPC.Message message, ArrayList }); } + public void loadMessageAttachPaths(ArrayList messageObjects, Runnable done) { + storageQueue.postRunnable(() -> { + final long selfId = getUserConfig().getClientUserId(); + for (MessageObject messageObject : messageObjects) { + if (messageObject.scheduled) continue; // TODO if needed + if (messageObject.isQuickReply()) continue; + SQLiteCursor cursor = null; + try { + cursor = database.queryFinalized("SELECT data FROM messages_v2 WHERE uid = ? AND mid = ?", messageObject.getDialogId(), messageObject.getId()); + if (cursor.next()) { + NativeByteBuffer data = cursor.byteBufferValue(0); + if (data != null) { + TLRPC.Message message = TLRPC.Message.TLdeserialize(data, data.readInt32(false), false); + message.readAttachPath(data, selfId); + data.reuse(); + + messageObject.messageOwner.attachPath = message.attachPath; + messageObject.checkMediaExistance(); + } + } + } catch (Exception e) { + FileLog.e(e); + } finally { + if (cursor != null) { + cursor.dispose(); + } + } + } + AndroidUtilities.runOnUIThread(done); + }); + } + // put messages in data base while load history public void putMessages(TLRPC.messages_Messages messages, long dialogId, int load_type, int max_id, boolean createDialog, int mode, long threadMessageId) { storageQueue.postRunnable(() -> { @@ -14574,9 +14620,6 @@ public void putMessages(TLRPC.messages_Messages messages, long dialogId, int loa final boolean scheduled = mode == ChatActivity.MODE_SCHEDULED; final boolean quickReplies = mode == ChatActivity.MODE_QUICK_REPLIES; if (quickReplies) { -// final long type = dialogId; - -// database.executeFast(String.format(Locale.US, "DELETE FROM quick_replies_messages WHERE topic_id = %d AND mid > 0", topic_id)).stepThis().dispose(); state_messages = database.executeFast("REPLACE INTO quick_replies_messages VALUES(?, ?, ?, ?, ?, ?, NULL, 0)"); int count = messages.messages.size(); for (int a = 0; a < count; a++) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MusicPlayerService.java b/TMessagesProj/src/main/java/org/telegram/messenger/MusicPlayerService.java index 9933bcd48c..eb2ea110a1 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MusicPlayerService.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MusicPlayerService.java @@ -28,6 +28,7 @@ import android.media.RemoteControlClient; import android.media.session.MediaSession; import android.media.session.PlaybackState; +import android.net.Uri; import android.os.Build; import android.os.IBinder; import android.text.TextUtils; @@ -37,9 +38,12 @@ import androidx.core.app.NotificationCompat; import com.google.android.exoplayer2.C; -import com.google.android.exoplayer2.util.Log; import org.telegram.messenger.audioinfo.AudioInfo; +import org.telegram.tgnet.TLObject; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.AvatarDrawable; import org.telegram.ui.LaunchActivity; import java.io.File; @@ -125,12 +129,18 @@ public void onPause() { @Override public void onSkipToNext() { - MediaController.getInstance().playNextMessage(); + MessageObject playingMessageObject = MediaController.getInstance().getPlayingMessageObject(); + if (playingMessageObject != null && playingMessageObject.isMusic()) { + MediaController.getInstance().playNextMessage(); + } } @Override public void onSkipToPrevious() { - MediaController.getInstance().playPreviousMessage(); + MessageObject playingMessageObject = MediaController.getInstance().getPlayingMessageObject(); + if (playingMessageObject != null && playingMessageObject.isMusic()) { + MediaController.getInstance().playPreviousMessage(); + } } @Override @@ -213,39 +223,148 @@ private Bitmap loadArtworkFromUrl(String artworkUrl, boolean big, boolean tryLoa return null; } + + private Bitmap getAvatarBitmap(TLObject userOrChat, boolean big, boolean tryLoad) { + int size = big ? 600 : 100; + Bitmap bitmap = null; + try { + if (userOrChat instanceof TLRPC.User) { + TLRPC.User user = (TLRPC.User) userOrChat; + TLRPC.FileLocation photoPath = big ? user.photo.photo_big : user.photo.photo_small; + if (photoPath != null) { + File path = FileLoader.getInstance(UserConfig.selectedAccount).getPathToAttach(photoPath, true); + if (path.exists()) { + return ImageLoader.loadBitmap(path.getAbsolutePath(), null, size, size, false); + } + if (big) { + if (tryLoad) { + loadingFilePath = FileLoader.getAttachFileName(photoPath); + ImageLocation photoLocation = ImageLocation.getForUser(user, ImageLocation.TYPE_BIG); + imageReceiver.setImage(photoLocation, "", null, null, null, 0); + } else { + loadingFilePath = null; + } + } + } + } else { + TLRPC.Chat chat = (TLRPC.Chat) userOrChat; + TLRPC.FileLocation photoPath = big ? chat.photo.photo_big : chat.photo.photo_small; + if (photoPath != null) { + File path = FileLoader.getInstance(UserConfig.selectedAccount).getPathToAttach(photoPath, true); + if (path.exists()) { + return ImageLoader.loadBitmap(path.getAbsolutePath(), null, size, size, false); + } + if (big) { + if (tryLoad) { + loadingFilePath = FileLoader.getAttachFileName(photoPath); + ImageLocation photoLocation = ImageLocation.getForChat(chat, ImageLocation.TYPE_BIG); + imageReceiver.setImage(photoLocation, "", null, null, null, 0); + } else { + loadingFilePath = null; + } + } + } + } + } catch (Throwable e) { + FileLog.e(e); + } + if (!big) { + Theme.createDialogsResources(this); + AvatarDrawable placeholder; + if (userOrChat instanceof TLRPC.User) { + placeholder = new AvatarDrawable((TLRPC.User) userOrChat); + } else { + placeholder = new AvatarDrawable((TLRPC.Chat) userOrChat); + } + placeholder.setRoundRadius(1); + bitmap = Bitmap.createBitmap(AndroidUtilities.dp(size), AndroidUtilities.dp(size), Bitmap.Config.ARGB_8888); + placeholder.setBounds(0, 0, bitmap.getWidth(), bitmap.getHeight()); + placeholder.draw(new Canvas(bitmap)); + } + return bitmap; + } + @SuppressLint("NewApi") private void createNotification(MessageObject messageObject, boolean forBitmap) { - String songName = messageObject.getMusicTitle(); - String authorName = messageObject.getMusicAuthor(); + String contentTitle = messageObject.getMusicTitle(); + String contentText = messageObject.getMusicAuthor(); AudioInfo audioInfo = MediaController.getInstance().getAudioInfo(); - Intent intent = new Intent(ApplicationLoader.applicationContext, LaunchActivity.class); - intent.setAction("com.tmessages.openplayer"); - intent.addCategory(Intent.CATEGORY_LAUNCHER); + if (messageObject.isMusic()) { + intent.setAction("com.tmessages.openplayer"); + intent.addCategory(Intent.CATEGORY_LAUNCHER); + } else if (messageObject.isVoice() || messageObject.isRoundVideo()) { + intent.setAction(Intent.ACTION_VIEW); + long fromId = 0; + TLRPC.Message owner = messageObject.messageOwner; + if (owner.peer_id instanceof TLRPC.TL_peerUser) { + fromId = owner.peer_id.user_id; + } else if (owner.peer_id instanceof TLRPC.TL_peerChat) { + fromId = owner.peer_id.chat_id; + } else if (owner.peer_id instanceof TLRPC.TL_peerChannel) { + fromId = owner.peer_id.channel_id; + } + if (fromId != 0) { + if (owner.peer_id instanceof TLRPC.TL_peerUser) { + intent.setData(Uri.parse("tg://openmessage?user_id=" + fromId + "&message_id=" + messageObject.getId())); + } else { + intent.setData(Uri.parse("tg://openmessage?chat_id=" + fromId + "&message_id=" + messageObject.getId())); + } + } + } PendingIntent contentIntent = PendingIntent.getActivity(ApplicationLoader.applicationContext, 0, intent, fixIntentFlags(PendingIntent.FLAG_MUTABLE)); Notification notification; - - String artworkUrl = messageObject.getArtworkUrl(true); - String artworkUrlBig = messageObject.getArtworkUrl(false); + Bitmap albumArt = null; + Bitmap fullAlbumArt = null; long duration = (long) (messageObject.getDuration() * 1000); + if (messageObject.isMusic()) { + String artworkUrl = messageObject.getArtworkUrl(true); + String artworkUrlBig = messageObject.getArtworkUrl(false); - Bitmap albumArt = audioInfo != null ? audioInfo.getSmallCover() : null; - Bitmap fullAlbumArt = audioInfo != null ? audioInfo.getCover() : null; + albumArt = audioInfo != null ? audioInfo.getSmallCover() : null; + fullAlbumArt = audioInfo != null ? audioInfo.getCover() : null; - loadingFilePath = null; - imageReceiver.setImageBitmap((BitmapDrawable) null); - if (albumArt == null && !TextUtils.isEmpty(artworkUrl)) { - fullAlbumArt = loadArtworkFromUrl(artworkUrlBig, true, !forBitmap); - if (fullAlbumArt == null) { - fullAlbumArt = albumArt = loadArtworkFromUrl(artworkUrl, false, !forBitmap); + loadingFilePath = null; + imageReceiver.setImageBitmap((BitmapDrawable) null); + if (albumArt == null && !TextUtils.isEmpty(artworkUrl)) { + fullAlbumArt = loadArtworkFromUrl(artworkUrlBig, true, !forBitmap); + if (fullAlbumArt == null) { + fullAlbumArt = albumArt = loadArtworkFromUrl(artworkUrl, false, !forBitmap); + } else { + albumArt = loadArtworkFromUrl(artworkUrlBig, false, !forBitmap); + } } else { - albumArt = loadArtworkFromUrl(artworkUrlBig, false, !forBitmap); + loadingFilePath = FileLoader.getInstance(UserConfig.selectedAccount).getPathToAttach(messageObject.getDocument()).getAbsolutePath(); + } + } else if (messageObject.isVoice() || messageObject.isRoundVideo()) { + long senderId = messageObject.getSenderId(); + if (messageObject.isFromUser()) { + TLRPC.User user = MessagesController.getInstance(UserConfig.selectedAccount).getUser(senderId); + if (user != null) { + contentTitle = UserObject.getUserName(user); + fullAlbumArt = getAvatarBitmap(user, true, !forBitmap); + albumArt = getAvatarBitmap(user, false, !forBitmap); + + } + } else { + TLRPC.Chat chat = MessagesController.getInstance(UserConfig.selectedAccount).getChat(-senderId); + if (chat != null) { + contentTitle = chat.title; + fullAlbumArt = getAvatarBitmap(chat, true, !forBitmap); + albumArt = getAvatarBitmap(chat, false, !forBitmap); + } } - } else { - loadingFilePath = FileLoader.getInstance(UserConfig.selectedAccount).getPathToAttach(messageObject.getDocument()).getAbsolutePath(); - } + if (fullAlbumArt == null && albumArt != null) { + fullAlbumArt = albumArt; + } + if (messageObject.isVoice()) { + contentText = LocaleController.getString("AttachAudio", R.string.AttachAudio); + } else { + contentText = LocaleController.getString("AttachRound", R.string.AttachRound); + } + } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { boolean isPlaying = !MediaController.getInstance().isMessagePaused(); @@ -256,20 +375,24 @@ private void createNotification(MessageObject messageObject, boolean forBitmap) PendingIntent pendingNext = PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent(NOTIFY_NEXT).setComponent(new ComponentName(this, MusicPlayerReceiver.class)), fixIntentFlags(PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_CANCEL_CURRENT)); PendingIntent pendingSeek = PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent(NOTIFY_SEEK).setComponent(new ComponentName(this, MusicPlayerReceiver.class)), fixIntentFlags(PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_CANCEL_CURRENT)); + Notification.MediaStyle mediaStyle = new Notification.MediaStyle().setMediaSession(mediaSession.getSessionToken()); + if (messageObject.isMusic()) { + mediaStyle.setShowActionsInCompactView(0, 1, 2); + } else if (messageObject.isVoice() || messageObject.isRoundVideo()) { + mediaStyle.setShowActionsInCompactView(0); + } Notification.Builder bldr = new Notification.Builder(this); bldr.setSmallIcon(R.drawable.player) .setOngoing(isPlaying) - .setContentTitle(songName) - .setContentText(authorName) - .setSubText(audioInfo != null ? audioInfo.getAlbum() : null) + .setContentTitle(contentTitle) + .setContentText(contentText) + .setSubText(audioInfo != null && messageObject.isMusic() ? audioInfo.getAlbum() : null) .setContentIntent(contentIntent) .setDeleteIntent(pendingStop) .setShowWhen(false) .setCategory(Notification.CATEGORY_TRANSPORT) .setPriority(Notification.PRIORITY_MAX) - .setStyle(new Notification.MediaStyle() - .setMediaSession(mediaSession.getSessionToken()) - .setShowActionsInCompactView(0, 1, 2)); + .setStyle(mediaStyle); if (Build.VERSION.SDK_INT >= 26) { NotificationsController.checkOtherNotificationsChannel(); bldr.setChannelId(NotificationsController.OTHER_NOTIFICATIONS_CHANNEL); @@ -285,28 +408,40 @@ private void createNotification(MessageObject messageObject, boolean forBitmap) if (MediaController.getInstance().isDownloadingCurrentMessage()) { playbackState.setState(PlaybackState.STATE_BUFFERING, 0, 1).setActions(0); - bldr.addAction(new Notification.Action.Builder(R.drawable.ic_action_previous, previousDescription, pendingPrev).build()) - .addAction(new Notification.Action.Builder(R.drawable.loading_animation2, LocaleController.getString("Loading", R.string.Loading), null).build()) - .addAction(new Notification.Action.Builder(R.drawable.ic_action_next, nextDescription, pendingNext).build()); + if (messageObject.isMusic()) { + bldr.addAction(new Notification.Action.Builder(R.drawable.ic_action_previous, previousDescription, pendingPrev).build()); + } + bldr.addAction(new Notification.Action.Builder(R.drawable.loading_animation2, LocaleController.getString("Loading", R.string.Loading), null).build()); + if (messageObject.isMusic()) { + bldr.addAction(new Notification.Action.Builder(R.drawable.ic_action_next, nextDescription, pendingNext).build()); + } } else { + long actions = PlaybackState.ACTION_PLAY_PAUSE | PlaybackState.ACTION_PLAY | PlaybackState.ACTION_PAUSE | PlaybackState.ACTION_SEEK_TO; + if (messageObject.isMusic()) { + actions |= PlaybackState.ACTION_SKIP_TO_PREVIOUS | PlaybackState.ACTION_SKIP_TO_NEXT; + } playbackState.setState(isPlaying ? PlaybackState.STATE_PLAYING : PlaybackState.STATE_PAUSED, - MediaController.getInstance().getPlayingMessageObject().audioProgressSec * 1000L, - isPlaying ? 1 : 0) - .setActions(PlaybackState.ACTION_PLAY_PAUSE | PlaybackState.ACTION_PLAY | PlaybackState.ACTION_PAUSE | PlaybackState.ACTION_SEEK_TO | PlaybackState.ACTION_SKIP_TO_PREVIOUS | PlaybackState.ACTION_SKIP_TO_NEXT); + MediaController.getInstance().getPlayingMessageObject().audioProgressSec * 1000L, + getPlaybackSpeed(isPlaying, messageObject)) + .setActions(actions); final String playPauseTitle = isPlaying ? LocaleController.getString("AccActionPause", R.string.AccActionPause) : LocaleController.getString("AccActionPlay", R.string.AccActionPlay); - bldr.addAction(new Notification.Action.Builder(R.drawable.ic_action_previous, previousDescription, pendingPrev).build()) - .addAction(new Notification.Action.Builder(isPlaying ? R.drawable.ic_action_pause : R.drawable.ic_action_play, playPauseTitle, pendingPlaypause).build()) - .addAction(new Notification.Action.Builder(R.drawable.ic_action_next, nextDescription, pendingNext).build()); + if (messageObject.isMusic()) { + bldr.addAction(new Notification.Action.Builder(R.drawable.ic_action_previous, previousDescription, pendingPrev).build()); + } + bldr.addAction(new Notification.Action.Builder(isPlaying ? R.drawable.ic_action_pause : R.drawable.ic_action_play, playPauseTitle, pendingPlaypause).build()); + if (messageObject.isMusic()) { + bldr.addAction(new Notification.Action.Builder(R.drawable.ic_action_next, nextDescription, pendingNext).build()); + } } mediaSession.setPlaybackState(playbackState.build()); MediaMetadata.Builder meta = new MediaMetadata.Builder() .putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, fullAlbumArt) - .putString(MediaMetadata.METADATA_KEY_ALBUM_ARTIST, authorName) - .putString(MediaMetadata.METADATA_KEY_ARTIST, authorName) + .putString(MediaMetadata.METADATA_KEY_ALBUM_ARTIST, contentText) + .putString(MediaMetadata.METADATA_KEY_ARTIST, contentText) .putLong(MediaMetadata.METADATA_KEY_DURATION, duration) - .putString(MediaMetadata.METADATA_KEY_TITLE, songName) - .putString(MediaMetadata.METADATA_KEY_ALBUM, audioInfo != null ? audioInfo.getAlbum() : null); + .putString(MediaMetadata.METADATA_KEY_TITLE, contentTitle) + .putString(MediaMetadata.METADATA_KEY_ALBUM, audioInfo != null && messageObject.isMusic() ? audioInfo.getAlbum() : null); mediaSession.setMetadata(meta.build()); @@ -343,7 +478,7 @@ private void createNotification(MessageObject messageObject, boolean forBitmap) .setSmallIcon(R.drawable.player) .setContentIntent(contentIntent) .setChannelId(NotificationsController.OTHER_NOTIFICATIONS_CHANNEL) - .setContentTitle(songName).build(); + .setContentTitle(contentTitle).build(); notification.contentView = simpleContentView; if (supportBigNotifications) { @@ -381,11 +516,21 @@ private void createNotification(MessageObject messageObject, boolean forBitmap) } } else { notification.contentView.setViewVisibility(R.id.player_progress_bar, View.GONE); - notification.contentView.setViewVisibility(R.id.player_next, View.VISIBLE); - notification.contentView.setViewVisibility(R.id.player_previous, View.VISIBLE); + if (messageObject.isMusic()) { + notification.contentView.setViewVisibility(R.id.player_next, View.VISIBLE); + notification.contentView.setViewVisibility(R.id.player_previous, View.VISIBLE); + } else { + notification.bigContentView.setViewVisibility(R.id.player_next, View.GONE); + notification.bigContentView.setViewVisibility(R.id.player_previous, View.GONE); + } if (supportBigNotifications) { - notification.bigContentView.setViewVisibility(R.id.player_next, View.VISIBLE); - notification.bigContentView.setViewVisibility(R.id.player_previous, View.VISIBLE); + if (messageObject.isMusic()) { + notification.bigContentView.setViewVisibility(R.id.player_next, View.VISIBLE); + notification.bigContentView.setViewVisibility(R.id.player_previous, View.VISIBLE); + } else { + notification.bigContentView.setViewVisibility(R.id.player_next, View.GONE); + notification.bigContentView.setViewVisibility(R.id.player_previous, View.GONE); + } notification.bigContentView.setViewVisibility(R.id.player_progress_bar, View.GONE); } @@ -406,11 +551,11 @@ private void createNotification(MessageObject messageObject, boolean forBitmap) } } - notification.contentView.setTextViewText(R.id.player_song_name, songName); - notification.contentView.setTextViewText(R.id.player_author_name, authorName); + notification.contentView.setTextViewText(R.id.player_song_name, contentTitle); + notification.contentView.setTextViewText(R.id.player_author_name, contentText); if (supportBigNotifications) { - notification.bigContentView.setTextViewText(R.id.player_song_name, songName); - notification.bigContentView.setTextViewText(R.id.player_author_name, authorName); + notification.bigContentView.setTextViewText(R.id.player_song_name, contentTitle); + notification.bigContentView.setTextViewText(R.id.player_author_name, contentText); notification.bigContentView.setTextViewText(R.id.player_album_title, audioInfo != null && !TextUtils.isEmpty(audioInfo.getAlbum()) ? audioInfo.getAlbum() : ""); } notification.flags |= Notification.FLAG_ONGOING_EVENT; @@ -422,8 +567,8 @@ private void createNotification(MessageObject messageObject, boolean forBitmap) if (notificationMessageID != currentID) { notificationMessageID = currentID; RemoteControlClient.MetadataEditor metadataEditor = remoteControlClient.editMetadata(true); - metadataEditor.putString(MediaMetadataRetriever.METADATA_KEY_ARTIST, authorName); - metadataEditor.putString(MediaMetadataRetriever.METADATA_KEY_TITLE, songName); + metadataEditor.putString(MediaMetadataRetriever.METADATA_KEY_ARTIST, contentText); + metadataEditor.putString(MediaMetadataRetriever.METADATA_KEY_TITLE, contentTitle); if (audioInfo != null && !TextUtils.isEmpty(audioInfo.getAlbum())) { metadataEditor.putString(MediaMetadataRetriever.METADATA_KEY_ALBUM, audioInfo.getAlbum()); } @@ -484,14 +629,30 @@ private void updatePlaybackState(long seekTo) { if (MediaController.getInstance().isDownloadingCurrentMessage()) { playbackState.setState(PlaybackState.STATE_BUFFERING, 0, 1).setActions(0); } else { + long actions = PlaybackState.ACTION_PLAY_PAUSE | PlaybackState.ACTION_PLAY | PlaybackState.ACTION_PAUSE | PlaybackState.ACTION_SEEK_TO; + MessageObject messageObject = MediaController.getInstance().getPlayingMessageObject(); + if (messageObject != null && messageObject.isMusic()) { + actions |= PlaybackState.ACTION_SKIP_TO_PREVIOUS | PlaybackState.ACTION_SKIP_TO_NEXT; + } playbackState.setState(isPlaying ? PlaybackState.STATE_PLAYING : PlaybackState.STATE_PAUSED, - seekTo, - isPlaying ? 1 : 0) - .setActions(PlaybackState.ACTION_PLAY_PAUSE | PlaybackState.ACTION_PLAY | PlaybackState.ACTION_PAUSE | PlaybackState.ACTION_SEEK_TO | PlaybackState.ACTION_SKIP_TO_PREVIOUS | PlaybackState.ACTION_SKIP_TO_NEXT); + seekTo, + getPlaybackSpeed(isPlaying, messageObject)) + .setActions(actions); } mediaSession.setPlaybackState(playbackState.build()); } + private float getPlaybackSpeed(boolean isPlaying, MessageObject messageObject) { + if (isPlaying) { + if (messageObject.isVoice() || messageObject.isRoundVideo()) { + return MediaController.getInstance().getPlaybackSpeed(false); + } + return 1; + } else { + return 0; + } + } + public void setListeners(RemoteViews view) { PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent(NOTIFY_PREVIOUS), fixIntentFlags(PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT)); view.setOnClickPendingIntent(R.id.player_previous, pendingIntent); @@ -547,8 +708,9 @@ public void didReceivedNotification(int id, int account, Object... args) { } } else if (id == NotificationCenter.messagePlayingDidSeek) { MessageObject messageObject = MediaController.getInstance().getPlayingMessageObject(); + long progress = Math.round(messageObject.audioPlayerDuration * (float) args[1]) * 1000L; + updatePlaybackState(progress); if (remoteControlClient != null && Build.VERSION.SDK_INT >= 18) { - long progress = Math.round(messageObject.audioPlayerDuration * (float) args[1]) * 1000L; remoteControlClient.setPlaybackState(MediaController.getInstance().isMessagePaused() ? RemoteControlClient.PLAYSTATE_PAUSED : RemoteControlClient.PLAYSTATE_PLAYING, progress, MediaController.getInstance().isMessagePaused() ? 0f : 1f); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/NativeLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/NativeLoader.java index ffe444a606..2564528668 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/NativeLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/NativeLoader.java @@ -19,7 +19,7 @@ public class NativeLoader { - private final static int LIB_VERSION = 48; + private final static int LIB_VERSION = 49; private final static String LIB_NAME = "tmessages." + LIB_VERSION; private final static String LIB_SO_NAME = "lib" + LIB_NAME + ".so"; private final static String LOCALE_LIB_SO_NAME = "lib" + LIB_NAME + "loc.so"; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java index f138ec4f76..a1fd78a2f0 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java @@ -142,6 +142,10 @@ public class NotificationCenter { public static final int quickRepliesUpdated = totalEvents++; public static final int quickRepliesDeleted = totalEvents++; + public static final int businessLinksUpdated = totalEvents++; + public static final int businessLinkCreated = totalEvents++; + public static final int needDeleteBusinessLink = totalEvents++; + public static final int messageTranslated = totalEvents++; public static final int messageTranslating = totalEvents++; public static final int dialogIsTranslatable = totalEvents++; @@ -242,6 +246,8 @@ public class NotificationCenter { public static final int chatWasBoostedByUser = totalEvents++; public static final int groupPackUpdated = totalEvents++; public static final int timezonesUpdated = totalEvents++; + public static final int customStickerCreated = totalEvents++; + public static final int premiumFloodWaitReceived = totalEvents++; //global public static final int pushMessagesUpdated = totalEvents++; @@ -763,7 +769,7 @@ private AllowedNotifications() { } } - public Runnable listen(View view, final int id, final Utilities.Callback callback) { + public Runnable listenGlobal(View view, final int id, final Utilities.Callback callback) { if (view == null || callback == null) { return () -> {}; } @@ -790,8 +796,35 @@ public void onViewDetachedFromWindow(View view) { }; } + public Runnable listen(View view, final int id, final Utilities.Callback callback) { + if (view == null || callback == null) { + return () -> {}; + } + final NotificationCenterDelegate delegate = (_id, account, args) -> { + if (_id == id) { + callback.run(args); + } + }; + final View.OnAttachStateChangeListener viewListener = new View.OnAttachStateChangeListener() { + @Override + public void onViewAttachedToWindow(View view) { + addObserver(delegate, id); + } + @Override + public void onViewDetachedFromWindow(View view) { + removeObserver(delegate, id); + } + }; + view.addOnAttachStateChangeListener(viewListener); + + return () -> { + view.removeOnAttachStateChangeListener(viewListener); + removeObserver(delegate, id); + }; + } + public static void listenEmojiLoading(View view) { - getGlobalInstance().listen(view, NotificationCenter.emojiLoaded, args -> view.invalidate()); + getGlobalInstance().listenGlobal(view, NotificationCenter.emojiLoaded, args -> view.invalidate()); } public void listenOnce(int id, Runnable callback) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java index 27a3276aa8..c8af899f2e 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java @@ -5845,10 +5845,10 @@ private void updateStoryPushesRunnable() { minChangeTime = Math.min(minChangeTime, d.second); } } - AndroidUtilities.cancelRunOnUIThread(checkStoryPushesRunnable); + notificationsQueue.cancelRunnable(checkStoryPushesRunnable); long delay = minChangeTime - System.currentTimeMillis(); if (minChangeTime != Long.MAX_VALUE) { - AndroidUtilities.runOnUIThread(checkStoryPushesRunnable, Math.max(0, delay)); + notificationsQueue.postRunnable(checkStoryPushesRunnable, Math.max(0, delay)); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsSettingsFacade.java b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsSettingsFacade.java index 597e75cfc7..04d171f738 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsSettingsFacade.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsSettingsFacade.java @@ -256,8 +256,7 @@ public void applySoundSettings(TLRPC.NotificationSound settings, SharedPreferenc } } - public void setSettingsForDialog(TLRPC.Dialog dialog, TLRPC.PeerNotifySettings notify_settings) { - SharedPreferences.Editor editor = getPreferences().edit(); + public void setSettingsForDialog(SharedPreferences.Editor editor, TLRPC.Dialog dialog, TLRPC.PeerNotifySettings notify_settings) { long dialogId = MessageObject.getPeerId(dialog.peer); if ((dialog.notify_settings.flags & 2) != 0) { @@ -281,7 +280,5 @@ public void setSettingsForDialog(TLRPC.Dialog dialog, TLRPC.PeerNotifySettings n } else { editor.remove(PROPERTY_NOTIFY + dialogId); } - - editor.apply(); } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SegmentTree.java b/TMessagesProj/src/main/java/org/telegram/messenger/SegmentTree.java index cc78ff746c..71be5ff639 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SegmentTree.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SegmentTree.java @@ -3,9 +3,9 @@ public class SegmentTree { private Node[] heap; - private int[] array; + private long[] array; - public SegmentTree(int[] array) { + public SegmentTree(long[] array) { this.array = array; if (array.length < 30) { return; @@ -37,9 +37,9 @@ private void build(int v, int from, int size) { } } - public int rMaxQ(int from, int to) { + public long rMaxQ(int from, int to) { if (array.length < 30) { - int max = Integer.MIN_VALUE; + long max = Long.MIN_VALUE; if (from < 0) from = 0; if (to > array.length - 1) to = array.length - 1; for (int i = from; i <= to; i++) { @@ -50,7 +50,7 @@ public int rMaxQ(int from, int to) { return rMaxQ(1, from, to); } - private int rMaxQ(int v, int from, int to) { + private long rMaxQ(int v, int from, int to) { Node n = heap[v]; //If you did a range update that contained this node, you can infer the Min value without going down the tree if (n.pendingVal != null && contains(n.from, n.to, from, to)) { @@ -63,8 +63,8 @@ private int rMaxQ(int v, int from, int to) { if (intersects(from, to, n.from, n.to)) { propagate(v); - int leftMin = rMaxQ(2 * v, from, to); - int rightMin = rMaxQ(2 * v + 1, from, to); + final long leftMin = rMaxQ(2 * v, from, to); + final long rightMin = rMaxQ(2 * v + 1, from, to); return Math.max(leftMin, rightMin); } @@ -72,9 +72,9 @@ private int rMaxQ(int v, int from, int to) { return 0; } - public int rMinQ(int from, int to) { + public long rMinQ(int from, int to) { if (array.length < 30) { - int min = Integer.MAX_VALUE; + long min = Long.MAX_VALUE; if (from < 0) from = 0; if (to > array.length - 1) to = array.length - 1; for (int i = from; i <= to; i++) { @@ -85,7 +85,7 @@ public int rMinQ(int from, int to) { return rMinQ(1, from, to); } - private int rMinQ(int v, int from, int to) { + private long rMinQ(int v, int from, int to) { Node n = heap[v]; //If you did a range update that contained this node, you can infer the Min value without going down the tree if (n.pendingVal != null && contains(n.from, n.to, from, to)) { @@ -98,8 +98,8 @@ private int rMinQ(int v, int from, int to) { if (intersects(from, to, n.from, n.to)) { propagate(v); - int leftMin = rMinQ(2 * v, from, to); - int rightMin = rMinQ(2 * v + 1, from, to); + long leftMin = rMinQ(2 * v, from, to); + long rightMin = rMinQ(2 * v + 1, from, to); return Math.min(leftMin, rightMin); } @@ -136,9 +136,9 @@ private boolean intersects(int from1, int to1, int from2, int to2) { } static class Node { - int sum; - int max; - int min; + long sum; + long max; + long min; Integer pendingVal = null; int from; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java index 3381594e89..c040130750 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java @@ -66,7 +66,7 @@ import org.telegram.ui.Components.AlertsCreator; import org.telegram.ui.Components.AnimatedEmojiSpan; import org.telegram.ui.Components.AnimatedFileDrawable; -import org.telegram.ui.Components.BotWebViewSheet; +import org.telegram.ui.bots.BotWebViewSheet; import org.telegram.ui.Components.Bulletin; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.Point; @@ -379,6 +379,7 @@ public static class ImportingSticker { public boolean animated; public TLRPC.TL_inputStickerSetItem item; + public VideoEditedInfo videoEditedInfo; public void uploadMedia(int account, TLRPC.InputFile inputFile, Runnable onFinish) { TLRPC.TL_messages_uploadMedia req = new TLRPC.TL_messages_uploadMedia(); req.peer = new TLRPC.TL_inputPeerSelf(); @@ -502,7 +503,6 @@ private void startImport() { req.user_id = new TLRPC.TL_inputUserSelf(); req.title = title; req.short_name = shortName; - req.animated = uploadMedia.get(0).animated; if (software != null) { req.software = software; req.flags |= 8; @@ -2178,7 +2178,7 @@ public int sendMessage(ArrayList messages, final long peer, boole if (arr.size() == 100 || a == messages.size() - 1 || a != messages.size() - 1 && messages.get(a + 1).getDialogId() != msgObj.getDialogId()) { getMessagesStorage().putMessages(new ArrayList<>(arr), false, true, false, 0, scheduleDate != 0 ? 1 : 0, 0); - getMessagesController().updateInterfaceWithMessages(peer, objArr, 0); + getMessagesController().updateInterfaceWithMessages(peer, objArr, scheduleDate != 0 ? 1 : 0); getNotificationCenter().postNotificationName(NotificationCenter.dialogsNeedReload); getUserConfig().saveConfig(false); @@ -3206,7 +3206,7 @@ public void sendCallback(final boolean cache, final MessageObject messageObject, builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("BotOwnershipTransferReadyAlertText", R.string.BotOwnershipTransferReadyAlertText))); builder.setPositiveButton(LocaleController.getString("BotOwnershipTransferChangeOwner", R.string.BotOwnershipTransferChangeOwner), (dialogInterface, i) -> { TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); - fragment.setDelegate(password -> sendCallback(cache, messageObject, button, password, fragment, parentFragment)); + fragment.setDelegate(0, password -> sendCallback(cache, messageObject, button, password, fragment, parentFragment)); parentFragment.presentFragment(fragment); }); builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); @@ -3752,7 +3752,7 @@ public void sendMessage(SendMessageParams sendMessageParams) { newMsg.media.document = document; if (params != null && params.containsKey("query_id")) { type = 9; - } else if (!MessageObject.isVideoSticker(document) && (MessageObject.isVideoDocument(document) || MessageObject.isRoundVideoDocument(document) || videoEditedInfo != null)) { + } else if ((!MessageObject.isVideoSticker(document) || videoEditedInfo != null) && (MessageObject.isVideoDocument(document) || MessageObject.isRoundVideoDocument(document) || videoEditedInfo != null)) { type = 3; } else if (MessageObject.isVoiceDocument(document)) { type = 8; @@ -5125,7 +5125,7 @@ private void performSendDelayedMessage(final DelayedMessage message, int index) String location = message.obj.messageOwner.attachPath; TLRPC.Document document = message.obj.getDocument(); if (location == null) { - location = FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE) + "/" + document.id + ".mp4"; + location = FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE) + "/" + document.id + "." + (message.videoEditedInfo.isSticker ? "webm" : "mp4"); } putToDelayedMessages(location, message); if (!message.videoEditedInfo.alreadyScheduledConverting) { @@ -6956,6 +6956,13 @@ private static int prepareSendingDocumentInternal(AccountInstance accountInstanc attributeImageSize.w = bmOptions.outWidth; attributeImageSize.h = bmOptions.outHeight; document.attributes.add(attributeImageSize); + + Bitmap bitmap = ImageLoader.loadBitmap(f.getAbsolutePath(), null, 400, 400, true); + TLRPC.PhotoSize thumb = ImageLoader.scaleAndSaveImage(null, bitmap, Bitmap.CompressFormat.PNG, false, 400, 400, 100, isEncrypted, 0, 0, false); + if (thumb != null) { + document.thumbs.add(thumb); + document.flags |= 1; + } } } } @@ -8198,8 +8205,23 @@ public static void prepareSendingMedia(AccountInstance accountInstance, ArrayLis document.thumbs.add(size); document.flags |= 1; } - document.mime_type = "video/mp4"; + if (info.videoEditedInfo != null && info.videoEditedInfo.isSticker) { + document.mime_type = "video/webm"; + } else { + document.mime_type = "video/mp4"; + } accountInstance.getUserConfig().saveConfig(false); + if (info.videoEditedInfo != null && info.videoEditedInfo.isSticker) { + document.attributes.add(new TLRPC.TL_documentAttributeAnimated()); + TLRPC.TL_documentAttributeSticker sticker = new TLRPC.TL_documentAttributeSticker(); + sticker.alt = "๐Ÿ‘"; + sticker.stickerset = new TLRPC.TL_inputStickerSetEmpty(); + document.attributes.add(sticker); +// document.size = videoEditedInfo.estimatedSize; + if (size != null && size.location != null) { + thumbKey = String.format(Locale.US, "%d_%d@b1", size.location.volume_id, size.location.local_id); + } + } TLRPC.TL_documentAttributeVideo attributeVideo; if (isEncrypted) { attributeVideo = new TLRPC.TL_documentAttributeVideo_layer159(); @@ -8259,7 +8281,8 @@ public static void prepareSendingMedia(AccountInstance accountInstance, ArrayLis } } if (videoEditedInfo != null && (videoEditedInfo.needConvert() || !info.isVideo)) { - String fileName = Integer.MIN_VALUE + "_" + SharedConfig.getLastLocalId() + ".mp4"; + String ext = videoEditedInfo.isSticker ? "webm" : "mp4"; + String fileName = Integer.MIN_VALUE + "_" + SharedConfig.getLastLocalId() + "." + ext; File cacheFile = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), fileName); SharedConfig.saveConfig(); path = cacheFile.getAbsolutePath(); @@ -8285,7 +8308,7 @@ public static void prepareSendingMedia(AccountInstance accountInstance, ArrayLis lastGroupId = 0; } } - if (!isEncrypted && info.masks != null && !info.masks.isEmpty()) { + if (!isEncrypted && (videoEditedInfo == null || !videoEditedInfo.isSticker) && info.masks != null && !info.masks.isEmpty()) { document.attributes.add(new TLRPC.TL_documentAttributeHasStickers()); SerializedData serializedData = new SerializedData(4 + info.masks.size() * 20); serializedData.writeInt32(info.masks.size()); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/UserObject.java b/TMessagesProj/src/main/java/org/telegram/messenger/UserObject.java index ffb25421cf..1c27f47236 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/UserObject.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/UserObject.java @@ -111,7 +111,25 @@ public static String getFirstName(TLRPC.User user, boolean allowShort) { } else if (!allowShort && name.length() <= 2) { return ContactsController.formatName(user.first_name, user.last_name); } - return !TextUtils.isEmpty(name) ? MessageHelper.INSTANCE.zalgoFilter(name) : LocaleController.getString("HiddenName", R.string.HiddenName); + return !TextUtils.isEmpty(name) ? MessageHelper.INSTANCE.zalgoFilter(name) : LocaleController.getString(R.string.HiddenName); + } + + public static String getForcedFirstName(TLRPC.User user) { + if (user == null || isDeleted(user)) { + return "DELETED"; + } + String name = user.first_name; + if (TextUtils.isEmpty(name)) { + name = user.last_name; + } + if (name == null) { + return LocaleController.getString(R.string.HiddenName); + } + int index = name.indexOf(" "); + if (index >= 0) { + name = name.substring(0, index); + } + return name; } public static boolean hasPhoto(TLRPC.User user) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/VideoEditedInfo.java b/TMessagesProj/src/main/java/org/telegram/messenger/VideoEditedInfo.java index 1701798152..af68fe0eaa 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/VideoEditedInfo.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/VideoEditedInfo.java @@ -10,6 +10,8 @@ import android.graphics.Bitmap; import android.graphics.Canvas; +import android.graphics.Matrix; +import android.graphics.RectF; import android.text.TextUtils; import android.view.View; @@ -49,6 +51,7 @@ public class VideoEditedInfo { public long estimatedDuration; public boolean roundVideo; public boolean muted; + public float volume = 1f; public long originalDuration; public TLRPC.InputFile file; public TLRPC.InputEncryptedFile encryptedFile; @@ -62,6 +65,8 @@ public class VideoEditedInfo { public boolean isStory; public StoryEntry.HDRInfo hdrInfo; + public boolean isSticker; + public Bitmap thumb; public boolean notReadyYet; @@ -157,6 +162,7 @@ public static class MediaEntity { public float currentFrame; public float framesPerDraw; public Bitmap bitmap; + public Matrix matrix; public View view; public Canvas canvas; @@ -387,7 +393,7 @@ public String getString() { blurPathBytes = null; } SerializedData serializedData = new SerializedData(len); - serializedData.writeInt32(8); + serializedData.writeInt32(10); serializedData.writeInt64(avatarStartTime); serializedData.writeInt32(originalBitrate); if (filterState != null) { @@ -478,6 +484,8 @@ public String getString() { } else { serializedData.writeByte(0); } + serializedData.writeFloat(volume); + serializedData.writeBool(isSticker); filters = Utilities.bytesToHex(serializedData.toByteArray()); serializedData.cleanup(); } else { @@ -605,6 +613,12 @@ public boolean parseString(String string) { blurPath = new String(bytes); } } + if (version >= 9) { + volume = serializedData.readFloat(false); + } + if (version >= 10) { + isSticker = serializedData.readBool(false); + } serializedData.cleanup(); } } else { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/browser/Browser.java b/TMessagesProj/src/main/java/org/telegram/messenger/browser/Browser.java index 273b7a9e58..8f41c63353 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/browser/Browser.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/browser/Browser.java @@ -148,6 +148,13 @@ public void onNavigationEvent(int navigationEvent, Bundle extras) { } } + private static List TWITTER_FIXES = List.of( + "fxtwitter.com", + "fixupx.com", + "twittpr.com", + "vxtwitter.com" + ); + public static void openUrl(Context context, String url) { if (url == null) { return; @@ -332,6 +339,9 @@ public static void openUrl(final Context context, Uri uri, final boolean allowCu } uri = Uri.parse("https://" + finalPath); } + if (host != null && TWITTER_FIXES.stream().anyMatch(host::endsWith)) { + uri = uri.buildUpon().authority("twitter.com").build(); + } if (allowCustom && SharedConfig.customTabs && !internalUri && !scheme.equals("tel")) { String[] browserPackageNames = null; try { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraController.java b/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraController.java index 180a77d661..1f493014d2 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraController.java @@ -173,9 +173,9 @@ private void initCamera(final Runnable onInitRunnable, boolean withDelay) { List list = params.getSupportedPreviewSizes(); for (int a = 0; a < list.size(); a++) { Camera.Size size = list.get(a); - if (size.width == 1280 && size.height != 720) { - continue; - } +// if (size.width == 1280 && size.height != 720) { +// continue; +// } if (size.height < 2160 && size.width < 2160) { cameraInfo.previewSizes.add(new Size(size.width, size.height)); if (BuildVars.LOGS_ENABLED) { @@ -187,9 +187,9 @@ private void initCamera(final Runnable onInitRunnable, boolean withDelay) { list = params.getSupportedPictureSizes(); for (int a = 0; a < list.size(); a++) { Camera.Size size = list.get(a); - if (size.width == 1280 && size.height != 720) { - continue; - } +// if (size.width == 1280 && size.height != 720) { +// continue; +// } if (!"samsung".equals(Build.MANUFACTURER) || !"jflteuc".equals(Build.PRODUCT) || size.width < 2048) { cameraInfo.pictureSizes.add(new Size(size.width, size.height)); if (BuildVars.LOGS_ENABLED) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/utils/BillingUtilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/utils/BillingUtilities.java new file mode 100644 index 0000000000..93dfa81113 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/messenger/utils/BillingUtilities.java @@ -0,0 +1,124 @@ +package org.telegram.messenger.utils; + +import android.content.Context; +import android.util.Base64; + +import androidx.core.util.Pair; + +import com.android.billingclient.api.AccountIdentifiers; +import com.android.billingclient.api.Purchase; +import com.google.android.exoplayer2.util.Util; +import com.google.common.base.Charsets; + +import org.json.JSONObject; +import org.telegram.messenger.AccountInstance; +import org.telegram.messenger.ApplicationLoader; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.SharedConfig; +import org.telegram.messenger.UserConfig; +import org.telegram.tgnet.SerializedData; +import org.telegram.tgnet.TLRPC; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +public class BillingUtilities { + private static final String CURRENCY_FILE = "currencies.json"; + private static final String CURRENCY_EXP = "exp"; + + private static TLRPC.InputStorePaymentPurpose remPaymentPurpose; + + @SuppressWarnings("ConstantConditions") + public static void extractCurrencyExp(Map currencyExpMap) { + if (!currencyExpMap.isEmpty()) { + return; + } + try { + Context ctx = ApplicationLoader.applicationContext; + InputStream in = ctx.getAssets().open(CURRENCY_FILE); + JSONObject obj = new JSONObject(new String(Util.toByteArray(in), Charsets.UTF_8)); + Iterator it = obj.keys(); + while (it.hasNext()) { + String key = it.next(); + JSONObject currency = obj.optJSONObject(key); + currencyExpMap.put(key, currency.optInt(CURRENCY_EXP)); + } + in.close(); + } catch (Exception e) { + FileLog.e(e); + } + } + + public static Pair createDeveloperPayload(TLRPC.InputStorePaymentPurpose paymentPurpose, AccountInstance accountInstance) { + long currentAccountId = accountInstance.getUserConfig().getClientUserId(); + byte[] currentAccountIdBytes = String.valueOf(currentAccountId).getBytes(Charsets.UTF_8); + String obfuscatedAccountId = Base64.encodeToString(currentAccountIdBytes, Base64.DEFAULT); + + SerializedData serializedData = new SerializedData(paymentPurpose.getObjectSize()); + paymentPurpose.serializeToStream(serializedData); + String obfuscatedData = Base64.encodeToString(serializedData.toByteArray(), Base64.DEFAULT); + serializedData.cleanup(); + if (paymentPurpose instanceof TLRPC.TL_inputStorePaymentPremiumGiftCode || paymentPurpose instanceof TLRPC.TL_inputStorePaymentPremiumGiveaway) { + remPaymentPurpose = paymentPurpose; + return Pair.create(obfuscatedAccountId, obfuscatedAccountId); + } else { + remPaymentPurpose = null; + } + return Pair.create(obfuscatedAccountId, obfuscatedData); + } + + private static AccountInstance findAccountById(long accountId) { + AccountInstance result = null; + for (int i : SharedConfig.activeAccounts) { + AccountInstance acc = AccountInstance.getInstance(i); + if (acc.getUserConfig().getClientUserId() == accountId) { + result = acc; + break; + } + } + return result; + } + + public static Pair extractDeveloperPayload(Purchase purchase) { + AccountIdentifiers identifiers = purchase.getAccountIdentifiers(); + if (identifiers == null) { + FileLog.d("Billing: Extract payload. No AccountIdentifiers"); + return null; + } + String obfuscatedAccountId = identifiers.getObfuscatedAccountId(); + String obfuscatedData = identifiers.getObfuscatedProfileId(); + if (obfuscatedAccountId == null || obfuscatedAccountId.isEmpty() || obfuscatedData == null || obfuscatedData.isEmpty()) { + FileLog.d("Billing: Extract payload. Empty AccountIdentifiers"); + return null; + } + + try { + TLRPC.InputStorePaymentPurpose purpose; + if (remPaymentPurpose == null) { + byte[] obfuscatedDataBytes = Base64.decode(obfuscatedData, Base64.DEFAULT); + SerializedData data = new SerializedData(obfuscatedDataBytes); + purpose = TLRPC.InputStorePaymentPurpose.TLdeserialize(data, data.readInt32(true), true); + data.cleanup(); + } else { + purpose = remPaymentPurpose; + remPaymentPurpose = null; + } + + byte[] obfuscatedAccountIdBytes = Base64.decode(obfuscatedAccountId, Base64.DEFAULT); + long accountId = Long.parseLong(new String(obfuscatedAccountIdBytes, Charsets.UTF_8)); + + AccountInstance acc = findAccountById(accountId); + if (acc == null) { + FileLog.d("Billing: Extract payload. AccountInstance not found"); + return null; + } + return Pair.create(acc, purpose); + } catch (Exception e) { + FileLog.e("Billing: Extract Payload", e); + return null; + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioRecoder.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioRecoder.java index 63eb63d16e..9cf7e6ab24 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioRecoder.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioRecoder.java @@ -84,7 +84,7 @@ public void release() { } } - public boolean step(MP4Builder muxer, int audioTrackIndex) throws Exception { + public boolean step(MediaCodecVideoConvertor.Muxer muxer, int audioTrackIndex) throws Exception { if (!encoderInputDone) { int encoderBufferIndex = encoder.dequeueInputBuffer(TIMEOUT_USEC); if (encoderBufferIndex >= 0) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java index d8b614a008..6b5b5f0791 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java @@ -3,8 +3,10 @@ import android.annotation.TargetApi; import android.media.MediaCodec; import android.media.MediaCodecInfo; +import android.media.MediaCodecList; import android.media.MediaExtractor; import android.media.MediaFormat; +import android.media.MediaMuxer; import android.os.Build; import androidx.annotation.NonNull; @@ -24,13 +26,14 @@ import org.telegram.ui.Stories.recorder.StoryEntry; import java.io.File; +import java.io.FileDescriptor; import java.io.IOException; import java.nio.ByteBuffer; import java.util.ArrayList; public class MediaCodecVideoConvertor { - private MP4Builder mediaMuxer; + private Muxer muxer; private MediaExtractor extractor; private long endPresentationTime; @@ -48,9 +51,12 @@ public class MediaCodecVideoConvertor { private static final int MEDIACODEC_TIMEOUT_INCREASED = 22000; private String outputMimeType; - public boolean convertVideo(ConvertVideoParams convertStoryVideoParams) { - this.callback = convertStoryVideoParams.callback; - return convertVideoInternal(convertStoryVideoParams, false, 0); + public boolean convertVideo(ConvertVideoParams convertVideoParams) { + if (convertVideoParams.isSticker) { + return WebmEncoder.convert(convertVideoParams); + } + this.callback = convertVideoParams.callback; + return convertVideoInternal(convertVideoParams, false, 0); } public long getLastFrameTimestamp() { @@ -87,6 +93,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, Integer gradientTopColor = convertVideoParams.gradientTopColor; Integer gradientBottomColor = convertVideoParams.gradientBottomColor; boolean muted = convertVideoParams.muted; + float volume = convertVideoParams.volume; boolean isStory = convertVideoParams.isStory; StoryEntry.HDRInfo hdrInfo = convertVideoParams.hdrInfo; @@ -98,21 +105,18 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, int videoTrackIndex = -5; String selectedEncoderName = null; + final boolean isWebm = convertVideoParams.isSticker; boolean shouldUseHevc = isStory; - outputMimeType = shouldUseHevc ? "video/hevc" : "video/avc"; + outputMimeType = isWebm ? "video/x-vnd.on2.vp9" : shouldUseHevc ? "video/hevc" : "video/avc"; boolean canBeBrokenEncoder = false; MediaCodec encoder = null; MediaCodec decoder = null; InputSurface inputSurface = null; OutputSurface outputSurface = null; + MediaCodec.BufferInfo info = null; try { - MediaCodec.BufferInfo info = new MediaCodec.BufferInfo(); - Mp4Movie movie = new Mp4Movie(); - movie.setCacheFile(cacheFile); - movie.setRotation(0); - movie.setSize(resultWidth, resultHeight); - + info = new MediaCodec.BufferInfo(); long currentPts = 0; float durationS = duration / 1000f; @@ -189,7 +193,15 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, checkConversionCanceled(); - mediaMuxer = new MP4Builder().createMovie(movie, isSecret, outputMimeType.equals("video/hevc")); + if (isWebm) { + muxer = new Muxer(new MediaMuxer(cacheFile.getAbsolutePath(), MediaMuxer.OutputFormat.MUXER_OUTPUT_WEBM)); + } else { + Mp4Movie movie = new Mp4Movie(); + movie.setCacheFile(cacheFile); + movie.setRotation(0); + movie.setSize(resultWidth, resultHeight); + muxer = new Muxer(new MP4Builder().createMovie(movie, isSecret, outputMimeType.equals("video/hevc"))); + } int audioTrackIndex = -1; boolean audioEncoderDone = true; @@ -202,13 +214,13 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, applyAudioInputs(convertVideoParams.soundInfos, audioInputs); audioRecoder = new AudioRecoder(audioInputs, totalDuration); - audioTrackIndex = mediaMuxer.addTrack(audioRecoder.format, true); + audioTrackIndex = muxer.addTrack(audioRecoder.format, true); } while (!outputDone || !audioEncoderDone) { checkConversionCanceled(); if (audioRecoder != null) { - audioEncoderDone = audioRecoder.step(mediaMuxer, audioTrackIndex); + audioEncoderDone = audioRecoder.step(muxer, audioTrackIndex); } boolean decoderOutputAvailable = !decoderDone; @@ -228,7 +240,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, FileLog.d("photo encoder new format " + newFormat); } if (videoTrackIndex == -5 && newFormat != null) { - videoTrackIndex = mediaMuxer.addTrack(newFormat, false); + videoTrackIndex = muxer.addTrack(newFormat, false); if (newFormat.containsKey(MediaFormat.KEY_PREPEND_HEADER_TO_SYNC_FRAMES) && newFormat.getInteger(MediaFormat.KEY_PREPEND_HEADER_TO_SYNC_FRAMES) == 1) { ByteBuffer spsBuff = newFormat.getByteBuffer("csd-0"); ByteBuffer ppsBuff = newFormat.getByteBuffer("csd-1"); @@ -257,7 +269,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, cutOfNalData(outputMimeType, encodedData, info); firstEncode = false; } - long availableSize = mediaMuxer.writeSampleData(videoTrackIndex, encodedData, info, true); + long availableSize = muxer.writeSampleData(videoTrackIndex, encodedData, info, true); if (availableSize != 0) { if (callback != null) { if (info.presentationTimeUs > currentPts) { @@ -295,7 +307,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, newFormat.setByteBuffer("csd-0", sps); newFormat.setByteBuffer("csd-1", pps); } - videoTrackIndex = mediaMuxer.addTrack(newFormat, false); + videoTrackIndex = muxer.addTrack(newFormat, false); } } outputDone = (info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0; @@ -354,7 +366,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, extractor.setDataSource(videoPath); int videoIndex = MediaController.findTrack(extractor, false); - int audioIndex = bitrate != -1 && !muted ? MediaController.findTrack(extractor, true) : -1; + int audioIndex = bitrate != -1 && !muted && volume > 0 ? MediaController.findTrack(extractor, true) : -1; boolean needConvertVideo = false; if (videoIndex >= 0 && !extractor.getTrackFormat(videoIndex).getString(MediaFormat.KEY_MIME).equals(MediaController.VIDEO_MIME_TYPE)) { needConvertVideo = true; @@ -492,8 +504,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, inputSurface.makeCurrent(); encoder.start(); - outputSurface = new OutputSurface(savedFilterState, null, paintPath, blurPath, mediaEntities, cropState, resultWidth, resultHeight, originalWidth, originalHeight, rotationValue, framerate, false, gradientTopColor, gradientBottomColor, hdrInfo, convertVideoParams); - if (hdrInfo == null && outputSurface.supportsEXTYUV() && hasHDR) { + if (hdrInfo == null && hasHDR) { hdrInfo = new StoryEntry.HDRInfo(); hdrInfo.colorTransfer = colorTransfer; hdrInfo.colorStandard = colorStandard; @@ -502,11 +513,13 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, outputFormat.setInteger(MediaFormat.KEY_COLOR_TRANSFER, MediaFormat.COLOR_TRANSFER_SDR_VIDEO); } } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && hdrInfo != null && hdrInfo.getHDRType() != 0 && outputSurface.supportsEXTYUV()) { + + outputSurface = new OutputSurface(savedFilterState, null, paintPath, blurPath, mediaEntities, cropState, resultWidth, resultHeight, originalWidth, originalHeight, rotationValue, framerate, false, gradientTopColor, gradientBottomColor, hdrInfo, convertVideoParams); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && hdrInfo != null && hdrInfo.getHDRType() != 0) { outputSurface.changeFragmentShader( hdrFragmentShader(originalWidth, originalHeight, resultWidth, resultHeight, true, hdrInfo), hdrFragmentShader(originalWidth, originalHeight, resultWidth, resultHeight, false, hdrInfo), - true + false ); } else if (!isRound && Math.max(resultHeight, resultHeight) / (float) Math.max(originalHeight, originalWidth) < 0.9f) { outputSurface.changeFragmentShader( @@ -528,10 +541,20 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, } int maxBufferSize = 0; - mediaMuxer = new MP4Builder().createMovie(movie, isSecret, outputMimeType.equals("video/hevc")); + + if (isWebm) { + muxer = new Muxer(new MediaMuxer(cacheFile.getAbsolutePath(), MediaMuxer.OutputFormat.MUXER_OUTPUT_WEBM)); + } else { + Mp4Movie movie = new Mp4Movie(); + movie.setCacheFile(cacheFile); + movie.setRotation(0); + movie.setSize(resultWidth, resultHeight); + muxer = new Muxer(new MP4Builder().createMovie(movie, isSecret, outputMimeType.equals("video/hevc"))); + } + if (audioIndex >= 0) { MediaFormat audioFormat = extractor.getTrackFormat(audioIndex); - copyAudioBuffer = convertVideoParams.soundInfos.isEmpty() && audioFormat.getString(MediaFormat.KEY_MIME).equals(MediaController.AUDIO_MIME_TYPE) || audioFormat.getString(MediaFormat.KEY_MIME).equals("audio/mpeg"); + copyAudioBuffer = Math.abs(volume - 1f) < 0.001f && (convertVideoParams.soundInfos.isEmpty() && audioFormat.getString(MediaFormat.KEY_MIME).equals(MediaController.AUDIO_MIME_TYPE) || audioFormat.getString(MediaFormat.KEY_MIME).equals("audio/mpeg")); if (audioFormat.getString(MediaFormat.KEY_MIME).equals("audio/unknown")) { audioIndex = -1; @@ -539,7 +562,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, if (audioIndex >= 0) { if (copyAudioBuffer) { - audioTrackIndex = mediaMuxer.addTrack(audioFormat, true); + audioTrackIndex = muxer.addTrack(audioFormat, true); extractor.selectTrack(audioIndex); try { maxBufferSize = audioFormat.getInteger(MediaFormat.KEY_MAX_INPUT_SIZE); @@ -565,11 +588,12 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, if (startTime > 0) { mainInput.setStartTimeUs(startTime); } + mainInput.setVolume(volume); audioInputs.add(mainInput); applyAudioInputs(convertVideoParams.soundInfos, audioInputs); audioRecoder = new AudioRecoder(audioInputs, duration); - audioTrackIndex = mediaMuxer.addTrack(audioRecoder.format, true); + audioTrackIndex = muxer.addTrack(audioRecoder.format, true); } } } else if (!convertVideoParams.soundInfos.isEmpty()) { @@ -580,7 +604,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, applyAudioInputs(convertVideoParams.soundInfos, audioInputs); audioRecoder = new AudioRecoder(audioInputs, duration); - audioTrackIndex = mediaMuxer.addTrack(audioRecoder.format, true); + audioTrackIndex = muxer.addTrack(audioRecoder.format, true); } boolean audioEncoderDone = audioRecoder == null; @@ -589,12 +613,11 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, checkConversionCanceled(); - while (!outputDone || (!copyAudioBuffer && !audioEncoderDone)) { checkConversionCanceled(); if (audioRecoder != null) { - audioEncoderDone = audioRecoder.step(mediaMuxer, audioTrackIndex); + audioEncoderDone = audioRecoder.step(muxer, audioTrackIndex); } if (!inputDone) { @@ -641,7 +664,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, if (info.size > 0 && (endTime < 0 || info.presentationTimeUs < endTime)) { info.offset = 0; info.flags = extractor.getSampleFlags(); - long availableSize = mediaMuxer.writeSampleData(audioTrackIndex, audioBuffer, info, false); + long availableSize = muxer.writeSampleData(audioTrackIndex, audioBuffer, info, false); if (availableSize != 0) { if (callback != null) { if (info.presentationTimeUs - startTime > currentPts) { @@ -677,7 +700,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, } else if (encoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) { MediaFormat newFormat = encoder.getOutputFormat(); if (videoTrackIndex == -5 && newFormat != null) { - videoTrackIndex = mediaMuxer.addTrack(newFormat, false); + videoTrackIndex = muxer.addTrack(newFormat, false); if (newFormat.containsKey(MediaFormat.KEY_PREPEND_HEADER_TO_SYNC_FRAMES) && newFormat.getInteger(MediaFormat.KEY_PREPEND_HEADER_TO_SYNC_FRAMES) == 1) { ByteBuffer spsBuff = newFormat.getByteBuffer("csd-0"); ByteBuffer ppsBuff = newFormat.getByteBuffer("csd-1"); @@ -706,7 +729,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, cutOfNalData(outputMimeType, encodedData, info); firstEncode = false; } - long availableSize = mediaMuxer.writeSampleData(videoTrackIndex, encodedData, info, true); + long availableSize = muxer.writeSampleData(videoTrackIndex, encodedData, info, true); if (availableSize != 0) { if (callback != null) { if (info.presentationTimeUs - startTime > currentPts) { @@ -741,7 +764,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, newFormat.setByteBuffer("csd-0", sps); newFormat.setByteBuffer("csd-1", pps); } - videoTrackIndex = mediaMuxer.addTrack(newFormat, false); + videoTrackIndex = muxer.addTrack(newFormat, false); } } outputDone = (info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0; @@ -881,8 +904,12 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, } checkConversionCanceled(); } else { - mediaMuxer = new MP4Builder().createMovie(movie, isSecret, false); - readAndWriteTracks(extractor, mediaMuxer, info, startTime, endTime, duration, cacheFile, bitrate != -1 && !muted); + Mp4Movie movie = new Mp4Movie(); + movie.setCacheFile(cacheFile); + movie.setRotation(0); + movie.setSize(resultWidth, resultHeight); + muxer = new Muxer(new MP4Builder().createMovie(movie, isSecret, false)); + readAndWriteTracks(extractor, muxer, info, startTime, endTime, duration, cacheFile, bitrate != -1 && !muted); } } } catch (Throwable e) { @@ -893,10 +920,10 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, if (extractor != null) { extractor.release(); } - if (mediaMuxer != null) { + if (muxer != null) { try { - mediaMuxer.finishMovie(); - endPresentationTime = mediaMuxer.getLastFrameTimestamp(videoTrackIndex); + muxer.finishMovie(); + endPresentationTime = muxer.getLastFrameTimestamp(videoTrackIndex, info); } catch (Throwable e) { FileLog.e(e); } @@ -974,7 +1001,9 @@ private MediaCodec createEncoderForMimeType() throws IOException { encoder = MediaCodec.createByCodecName(encoderName); } } else { - outputMimeType = "video/avc"; + if (outputMimeType.equals("video/hevc")) { + outputMimeType = "video/avc"; + } encoder = MediaCodec.createEncoderByType(outputMimeType); } // if (encoder != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && "c2.qti.avc.encoder".equals(encoder.getName())) { @@ -1033,8 +1062,77 @@ private boolean isMediatekAvcEncoder(MediaCodec encoder) { return encoder.getName().equals("c2.mtk.avc.encoder"); } - private long readAndWriteTracks(MediaExtractor extractor, MP4Builder mediaMuxer, - MediaCodec.BufferInfo info, long start, long end, long duration, File file, boolean needAudio) throws Exception { + public static class Muxer { + + public final MP4Builder mp4Builder; + public final MediaMuxer mediaMuxer; + + private boolean started = false; + + public Muxer(MP4Builder mp4Builder) { + this.mp4Builder = mp4Builder; + this.mediaMuxer = null; + } + public Muxer(MediaMuxer mediaMuxer) { + this.mp4Builder = null; + this.mediaMuxer = mediaMuxer; + } + + public int addTrack(MediaFormat format, boolean isAudio) { + if (mediaMuxer != null) { + return mediaMuxer.addTrack(format); + } else if (mp4Builder != null) { + return mp4Builder.addTrack(format, isAudio); + } + return 0; + } + + public long writeSampleData(int trackIndex, ByteBuffer byteBuf, MediaCodec.BufferInfo bufferInfo, boolean writeLength) throws Exception { + if (mediaMuxer != null) { + if (!started) { + mediaMuxer.start(); + started = true; + } + mediaMuxer.writeSampleData(trackIndex, byteBuf, bufferInfo); + return 0; + } else if (mp4Builder != null) { + return mp4Builder.writeSampleData(trackIndex, byteBuf, bufferInfo, writeLength); + } + return 0; + } + + public long getLastFrameTimestamp(int trackIndex, MediaCodec.BufferInfo bufferInfo) { + if (mediaMuxer != null) { + return bufferInfo.presentationTimeUs; + } else if (mp4Builder != null) { + return mp4Builder.getLastFrameTimestamp(trackIndex); + } + return 0; + } + + public void start() { + if (mediaMuxer != null) { + mediaMuxer.start(); + } else if (mp4Builder != null) { + + } + } + + public void finishMovie() throws Exception { + if (mediaMuxer != null) { + mediaMuxer.stop(); + mediaMuxer.release(); + } else if (mp4Builder != null) { + mp4Builder.finishMovie(); + } + } + + } + + private long readAndWriteTracks( + MediaExtractor extractor, Muxer mediaMuxer, + MediaCodec.BufferInfo info, long start, long end, long duration, File file, boolean needAudio + ) throws Exception { int videoTrackIndex = MediaController.findTrack(extractor, false); int audioTrackIndex = needAudio ? MediaController.findTrack(extractor, true) : -1; int muxerVideoTrackIndex = -1; @@ -1201,27 +1299,24 @@ private static String hdrFragmentShader( if (external) { String shaderCode; if (hdrInfo.getHDRType() == 1) { - shaderCode = RLottieDrawable.readRes(null, R.raw.yuv_hlg2rgb); + shaderCode = RLottieDrawable.readRes(null, R.raw.hdr2sdr_hlg); } else { - shaderCode = RLottieDrawable.readRes(null, R.raw.yuv_pq2rgb); + shaderCode = RLottieDrawable.readRes(null, R.raw.hdr2sdr_pq); } shaderCode = shaderCode.replace("$dstWidth", dstWidth + ".0"); shaderCode = shaderCode.replace("$dstHeight", dstHeight + ".0"); // TODO(@dkaraush): use minlum/maxlum return shaderCode + "\n" + - "in vec2 vTextureCoord;\n" + - "out vec4 fragColor;\n" + + "varying vec2 vTextureCoord;\n" + "void main() {\n" + - " fragColor = TEX(vTextureCoord);\n" + + " gl_FragColor = TEX(vTextureCoord);\n" + "}"; } else { - return "#version 320 es\n" + - "precision mediump float;\n" + + return "precision mediump float;\n" + "varying vec2 vTextureCoord;\n" + "uniform sampler2D sTexture;\n" + - "out vec4 fragColor;\n" + "void main() {\n" + - "fragColor = texture(sTexture, vTextureCoord);\n" + + " gl_FragColor = texture2D(sTexture, vTextureCoord);\n" + "}\n"; } } @@ -1343,12 +1438,14 @@ public static class ConvertVideoParams { Integer gradientTopColor; Integer gradientBottomColor; boolean muted; + float volume; boolean isStory; StoryEntry.HDRInfo hdrInfo; public ArrayList soundInfos = new ArrayList(); int account; boolean isDark; long wallpaperPeerId; + boolean isSticker; private ConvertVideoParams() { @@ -1391,6 +1488,7 @@ public static ConvertVideoParams of(String videoPath, File cacheFile, params.gradientTopColor = info.gradientTopColor; params.gradientBottomColor = info.gradientBottomColor; params.muted = info.muted; + params.volume = info.volume; params.isStory = info.isStory; params.hdrInfo = info.hdrInfo; params.isDark = info.isDark; @@ -1399,6 +1497,7 @@ public static ConvertVideoParams of(String videoPath, File cacheFile, params.messagePath = info.messagePath; params.messageVideoMaskPath = info.messageVideoMaskPath; params.backgroundPath = info.backgroundPath; + params.isSticker = info.isSticker; return params; } } @@ -1415,4 +1514,5 @@ public MixedSoundInfo(String file) { this.audioFile = file; } } + } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java index fcd99b7175..f27b855b5b 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java @@ -1207,179 +1207,187 @@ public void surfaceCreated() { ) { initStickerEntity(entity); } else if (entity.type == VideoEditedInfo.MediaEntity.TYPE_TEXT) { - EditTextOutline editText = new EditTextOutline(ApplicationLoader.applicationContext); - editText.getPaint().setAntiAlias(true); - editText.drawAnimatedEmojiDrawables = false; - editText.setBackgroundColor(Color.TRANSPARENT); - editText.setPadding(AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7)); - Typeface typeface; - if (entity.textTypeface != null && (typeface = entity.textTypeface.getTypeface()) != null) { - editText.setTypeface(typeface); - } - editText.setTextSize(TypedValue.COMPLEX_UNIT_PX, entity.fontSize); - SpannableString text = new SpannableString(entity.text); - for (VideoEditedInfo.EmojiEntity e : entity.entities) { - if (e.documentAbsolutePath == null) { - continue; - } - e.entity = new VideoEditedInfo.MediaEntity(); - e.entity.text = e.documentAbsolutePath; - e.entity.subType = e.subType; - AnimatedEmojiSpan span = new AnimatedEmojiSpan(0L, 1f, editText.getPaint().getFontMetricsInt()) { - @Override - public void draw(@NonNull Canvas canvas, CharSequence charSequence, int start, int end, float x, int top, int y, int bottom, @NonNull Paint paint) { - super.draw(canvas, charSequence, start, end, x, top, y, bottom, paint); - - float tcx = entity.x + (editText.getPaddingLeft() + x + measuredSize / 2f) / entity.viewWidth * entity.width; - float tcy = entity.y + (editText.getPaddingTop() + top + (bottom - top) / 2f) / entity.viewHeight * entity.height; - - if (entity.rotation != 0) { - float mx = entity.x + entity.width / 2f; - float my = entity.y + entity.height / 2f; - float ratio = transformedWidth / (float) transformedHeight; - float x1 = tcx - mx; - float y1 = (tcy - my) / ratio; - tcx = (float) (x1 * Math.cos(-entity.rotation) - y1 * Math.sin(-entity.rotation)) + mx; - tcy = (float) (x1 * Math.sin(-entity.rotation) + y1 * Math.cos(-entity.rotation)) * ratio + my; - } - - e.entity.width = (float) measuredSize / entity.viewWidth * entity.width; - e.entity.height = (float) measuredSize / entity.viewHeight * entity.height; - e.entity.x = tcx - e.entity.width / 2f; - e.entity.y = tcy - e.entity.height / 2f; - e.entity.rotation = entity.rotation; - - if (e.entity.bitmap == null) - initStickerEntity(e.entity); - } - }; - text.setSpan(span, e.offset, e.offset + e.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } - editText.setText(Emoji.replaceEmoji(text, editText.getPaint().getFontMetricsInt(), (int) (editText.getTextSize() * .8f), false)); - editText.setTextColor(entity.color); - CharSequence text2 = editText.getText(); - if (text2 instanceof Spanned) { - Emoji.EmojiSpan[] spans = ((Spanned) text2).getSpans(0, text2.length(), Emoji.EmojiSpan.class); - for (int i = 0; i < spans.length; ++i) { - spans[i].scale = .85f; - } - } + initTextEntity(entity); + } else if (entity.type == VideoEditedInfo.MediaEntity.TYPE_LOCATION) { + initLocationEntity(entity); + } + } + } catch (Throwable e) { + FileLog.e(e); + } + } + } + private void initTextEntity(VideoEditedInfo.MediaEntity entity) { + EditTextOutline editText = new EditTextOutline(ApplicationLoader.applicationContext); + editText.getPaint().setAntiAlias(true); + editText.drawAnimatedEmojiDrawables = false; + editText.setBackgroundColor(Color.TRANSPARENT); + editText.setPadding(AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7)); + Typeface typeface; + if (entity.textTypeface != null && (typeface = entity.textTypeface.getTypeface()) != null) { + editText.setTypeface(typeface); + } + editText.setTextSize(TypedValue.COMPLEX_UNIT_PX, entity.fontSize); + SpannableString text = new SpannableString(entity.text); + for (VideoEditedInfo.EmojiEntity e : entity.entities) { + if (e.documentAbsolutePath == null) { + continue; + } + e.entity = new VideoEditedInfo.MediaEntity(); + e.entity.text = e.documentAbsolutePath; + e.entity.subType = e.subType; + AnimatedEmojiSpan span = new AnimatedEmojiSpan(0L, 1f, editText.getPaint().getFontMetricsInt()) { + @Override + public void draw(@NonNull Canvas canvas, CharSequence charSequence, int start, int end, float x, int top, int y, int bottom, @NonNull Paint paint) { + super.draw(canvas, charSequence, start, end, x, top, y, bottom, paint); + + float tcx = entity.x + (editText.getPaddingLeft() + x + measuredSize / 2f) / entity.viewWidth * entity.width; + float tcy = entity.y + (editText.getPaddingTop() + top + (bottom - top) / 2f) / entity.viewHeight * entity.height; + + if (entity.rotation != 0) { + float mx = entity.x + entity.width / 2f; + float my = entity.y + entity.height / 2f; + float ratio = transformedWidth / (float) transformedHeight; + float x1 = tcx - mx; + float y1 = (tcy - my) / ratio; + tcx = (float) (x1 * Math.cos(-entity.rotation) - y1 * Math.sin(-entity.rotation)) + mx; + tcy = (float) (x1 * Math.sin(-entity.rotation) + y1 * Math.cos(-entity.rotation)) * ratio + my; + } - int gravity; - switch (entity.textAlign) { - default: - case PaintTextOptionsView.ALIGN_LEFT: - gravity = Gravity.LEFT | Gravity.CENTER_VERTICAL; - break; - case PaintTextOptionsView.ALIGN_CENTER: - gravity = Gravity.CENTER; - break; - case PaintTextOptionsView.ALIGN_RIGHT: - gravity = Gravity.RIGHT | Gravity.CENTER_VERTICAL; - break; - } + e.entity.width = (float) measuredSize / entity.viewWidth * entity.width; + e.entity.height = (float) measuredSize / entity.viewHeight * entity.height; + e.entity.x = tcx - e.entity.width / 2f; + e.entity.y = tcy - e.entity.height / 2f; + e.entity.rotation = entity.rotation; - editText.setGravity(gravity); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { - int textAlign; - switch (entity.textAlign) { - default: - case PaintTextOptionsView.ALIGN_LEFT: - textAlign = LocaleController.isRTL ? View.TEXT_ALIGNMENT_TEXT_END : View.TEXT_ALIGNMENT_TEXT_START; - break; - case PaintTextOptionsView.ALIGN_CENTER: - textAlign = View.TEXT_ALIGNMENT_CENTER; - break; - case PaintTextOptionsView.ALIGN_RIGHT: - textAlign = LocaleController.isRTL ? View.TEXT_ALIGNMENT_TEXT_START : View.TEXT_ALIGNMENT_TEXT_END; - break; - } - editText.setTextAlignment(textAlign); - } + if (e.entity.bitmap == null) + initStickerEntity(e.entity); + } + }; + text.setSpan(span, e.offset, e.offset + e.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + editText.setText(Emoji.replaceEmoji(text, editText.getPaint().getFontMetricsInt(), (int) (editText.getTextSize() * .8f), false)); + editText.setTextColor(entity.color); + CharSequence text2 = editText.getText(); + if (text2 instanceof Spanned) { + Emoji.EmojiSpan[] spans = ((Spanned) text2).getSpans(0, text2.length(), Emoji.EmojiSpan.class); + for (int i = 0; i < spans.length; ++i) { + spans[i].scale = .85f; + } + } - editText.setHorizontallyScrolling(false); - editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); - editText.setFocusableInTouchMode(true); - editText.setInputType(editText.getInputType() | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES); - if (Build.VERSION.SDK_INT >= 23) { - setBreakStrategy(editText); - } - if (entity.subType == 0) { - editText.setFrameColor(entity.color); - editText.setTextColor(AndroidUtilities.computePerceivedBrightness(entity.color) >= .721f ? Color.BLACK : Color.WHITE); - } else if (entity.subType == 1) { - editText.setFrameColor(AndroidUtilities.computePerceivedBrightness(entity.color) >= .25f ? 0x99000000 : 0x99ffffff); - editText.setTextColor(entity.color); - } else if (entity.subType == 2) { - editText.setFrameColor(AndroidUtilities.computePerceivedBrightness(entity.color) >= .25f ? Color.BLACK : Color.WHITE); - editText.setTextColor(entity.color); - } else if (entity.subType == 3) { - editText.setFrameColor(0); - editText.setTextColor(entity.color); - } - editText.measure(View.MeasureSpec.makeMeasureSpec(entity.viewWidth, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(entity.viewHeight, View.MeasureSpec.EXACTLY)); - editText.layout(0, 0, entity.viewWidth, entity.viewHeight); - entity.bitmap = Bitmap.createBitmap(entity.viewWidth, entity.viewHeight, Bitmap.Config.ARGB_8888); - Canvas canvas = new Canvas(entity.bitmap); - editText.draw(canvas); - } else if (entity.type == VideoEditedInfo.MediaEntity.TYPE_LOCATION) { - LocationMarker marker = new LocationMarker(ApplicationLoader.applicationContext, entity.density); - marker.setText(entity.text); - marker.setType(entity.subType, entity.color); - marker.setMaxWidth(entity.viewWidth); - if (entity.entities.size() == 1) { - marker.forceEmoji(); - } - marker.measure(View.MeasureSpec.makeMeasureSpec(entity.viewWidth, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(entity.viewHeight, View.MeasureSpec.EXACTLY)); - marker.layout(0, 0, entity.viewWidth, entity.viewHeight); - float scale = entity.width * transformedWidth / entity.viewWidth; - int w = (int) (entity.viewWidth * scale), h = (int) (entity.viewHeight * scale), pad = 8; - entity.bitmap = Bitmap.createBitmap(w + pad + pad, h + pad + pad, Bitmap.Config.ARGB_8888); - Canvas canvas = new Canvas(entity.bitmap); - canvas.translate(pad, pad); - canvas.scale(scale, scale); - marker.draw(canvas); - entity.additionalWidth = (2 * pad) * scale / transformedWidth; - entity.additionalHeight = (2 * pad) * scale / transformedHeight; - if (entity.entities.size() == 1) { - VideoEditedInfo.EmojiEntity e = entity.entities.get(0); - e.entity = new VideoEditedInfo.MediaEntity(); - e.entity.text = e.documentAbsolutePath; - e.entity.subType = e.subType; - - RectF bounds = new RectF(); - marker.getEmojiBounds(bounds); - - float tcx = entity.x + (bounds.centerX()) / entity.viewWidth * entity.width; - float tcy = entity.y + (bounds.centerY()) / entity.viewHeight * entity.height; - - if (entity.rotation != 0) { - float mx = entity.x + entity.width / 2f; - float my = entity.y + entity.height / 2f; - float ratio = transformedWidth / (float) transformedHeight; - float x1 = tcx - mx; - float y1 = (tcy - my) / ratio; - tcx = (float) (x1 * Math.cos(-entity.rotation) - y1 * Math.sin(-entity.rotation)) + mx; - tcy = (float) (x1 * Math.sin(-entity.rotation) + y1 * Math.cos(-entity.rotation)) * ratio + my; - } + int gravity; + switch (entity.textAlign) { + default: + case PaintTextOptionsView.ALIGN_LEFT: + gravity = Gravity.LEFT | Gravity.CENTER_VERTICAL; + break; + case PaintTextOptionsView.ALIGN_CENTER: + gravity = Gravity.CENTER; + break; + case PaintTextOptionsView.ALIGN_RIGHT: + gravity = Gravity.RIGHT | Gravity.CENTER_VERTICAL; + break; + } - e.entity.width = (float) bounds.width() / entity.viewWidth * entity.width; - e.entity.height = (float) bounds.height() / entity.viewHeight * entity.height; - e.entity.width *= LocationMarker.SCALE; - e.entity.height *= LocationMarker.SCALE; - e.entity.x = tcx - e.entity.width / 2f; - e.entity.y = tcy - e.entity.height / 2f; - e.entity.rotation = entity.rotation; + editText.setGravity(gravity); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + int textAlign; + switch (entity.textAlign) { + default: + case PaintTextOptionsView.ALIGN_LEFT: + textAlign = LocaleController.isRTL ? View.TEXT_ALIGNMENT_TEXT_END : View.TEXT_ALIGNMENT_TEXT_START; + break; + case PaintTextOptionsView.ALIGN_CENTER: + textAlign = View.TEXT_ALIGNMENT_CENTER; + break; + case PaintTextOptionsView.ALIGN_RIGHT: + textAlign = LocaleController.isRTL ? View.TEXT_ALIGNMENT_TEXT_START : View.TEXT_ALIGNMENT_TEXT_END; + break; + } + editText.setTextAlignment(textAlign); + } - initStickerEntity(e.entity); - } - } - } - } catch (Throwable e) { - FileLog.e(e); + editText.setHorizontallyScrolling(false); + editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); + editText.setFocusableInTouchMode(true); + editText.setInputType(editText.getInputType() | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES); + if (Build.VERSION.SDK_INT >= 23) { + setBreakStrategy(editText); + } + if (entity.subType == 0) { + editText.setFrameColor(entity.color); + editText.setTextColor(AndroidUtilities.computePerceivedBrightness(entity.color) >= .721f ? Color.BLACK : Color.WHITE); + } else if (entity.subType == 1) { + editText.setFrameColor(AndroidUtilities.computePerceivedBrightness(entity.color) >= .25f ? 0x99000000 : 0x99ffffff); + editText.setTextColor(entity.color); + } else if (entity.subType == 2) { + editText.setFrameColor(AndroidUtilities.computePerceivedBrightness(entity.color) >= .25f ? Color.BLACK : Color.WHITE); + editText.setTextColor(entity.color); + } else if (entity.subType == 3) { + editText.setFrameColor(0); + editText.setTextColor(entity.color); + } + + editText.measure(View.MeasureSpec.makeMeasureSpec(entity.viewWidth, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(entity.viewHeight, View.MeasureSpec.EXACTLY)); + editText.layout(0, 0, entity.viewWidth, entity.viewHeight); + entity.bitmap = Bitmap.createBitmap(entity.viewWidth, entity.viewHeight, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(entity.bitmap); + editText.draw(canvas); + } + + private void initLocationEntity(VideoEditedInfo.MediaEntity entity) { + LocationMarker marker = new LocationMarker(ApplicationLoader.applicationContext, entity.density); + marker.setText(entity.text); + marker.setType(entity.subType, entity.color); + marker.setMaxWidth(entity.viewWidth); + if (entity.entities.size() == 1) { + marker.forceEmoji(); + } + marker.measure(View.MeasureSpec.makeMeasureSpec(entity.viewWidth, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(entity.viewHeight, View.MeasureSpec.EXACTLY)); + marker.layout(0, 0, entity.viewWidth, entity.viewHeight); + float scale = entity.width * transformedWidth / entity.viewWidth; + int w = (int) (entity.viewWidth * scale), h = (int) (entity.viewHeight * scale), pad = 8; + entity.bitmap = Bitmap.createBitmap(w + pad + pad, h + pad + pad, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(entity.bitmap); + canvas.translate(pad, pad); + canvas.scale(scale, scale); + marker.draw(canvas); + entity.additionalWidth = (2 * pad) * scale / transformedWidth; + entity.additionalHeight = (2 * pad) * scale / transformedHeight; + if (entity.entities.size() == 1) { + VideoEditedInfo.EmojiEntity e = entity.entities.get(0); + e.entity = new VideoEditedInfo.MediaEntity(); + e.entity.text = e.documentAbsolutePath; + e.entity.subType = e.subType; + + RectF bounds = new RectF(); + marker.getEmojiBounds(bounds); + + float tcx = entity.x + (bounds.centerX()) / entity.viewWidth * entity.width; + float tcy = entity.y + (bounds.centerY()) / entity.viewHeight * entity.height; + + if (entity.rotation != 0) { + float mx = entity.x + entity.width / 2f; + float my = entity.y + entity.height / 2f; + float ratio = transformedWidth / (float) transformedHeight; + float x1 = tcx - mx; + float y1 = (tcy - my) / ratio; + tcx = (float) (x1 * Math.cos(-entity.rotation) - y1 * Math.sin(-entity.rotation)) + mx; + tcy = (float) (x1 * Math.sin(-entity.rotation) + y1 * Math.cos(-entity.rotation)) * ratio + my; } + + e.entity.width = (float) bounds.width() / entity.viewWidth * entity.width; + e.entity.height = (float) bounds.height() / entity.viewHeight * entity.height; + e.entity.width *= LocationMarker.SCALE; + e.entity.height *= LocationMarker.SCALE; + e.entity.x = tcx - e.entity.width / 2f; + e.entity.y = tcy - e.entity.height / 2f; + e.entity.rotation = entity.rotation; + + initStickerEntity(e.entity); } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/VideoPlayerHolderBase.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/VideoPlayerHolderBase.java index b542128881..ccca9d8281 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/VideoPlayerHolderBase.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/VideoPlayerHolderBase.java @@ -187,7 +187,7 @@ public void onError(VideoPlayer player, Exception e) { triesCount--; if (triesCount > 0) { dispatchQueue.postRunnable(initRunnable = () -> { - if (released) { + if (released || uri == null) { return; } videoPlayer.preparePlayer(uri, "other"); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/WebmEncoder.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/WebmEncoder.java new file mode 100644 index 0000000000..3dce8ec352 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/WebmEncoder.java @@ -0,0 +1,493 @@ +package org.telegram.messenger.video; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.Path; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; +import android.graphics.RectF; +import android.graphics.Typeface; +import android.opengl.GLES20; +import android.opengl.GLUtils; +import android.os.Build; +import android.text.Layout; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.TextUtils; +import android.util.Log; +import android.util.Pair; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.View; +import android.view.inputmethod.EditorInfo; + +import androidx.annotation.NonNull; +import androidx.annotation.RequiresApi; + +import com.google.common.collect.BiMap; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.ApplicationLoader; +import org.telegram.messenger.Bitmaps; +import org.telegram.messenger.Emoji; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.UserConfig; +import org.telegram.messenger.Utilities; +import org.telegram.messenger.VideoEditedInfo; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.AnimatedEmojiSpan; +import org.telegram.ui.Components.AnimatedFileDrawable; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.Paint.Views.EditTextOutline; +import org.telegram.ui.Components.Paint.Views.PaintTextOptionsView; +import org.telegram.ui.Components.RLottieDrawable; + +import java.io.File; +import java.io.RandomAccessFile; +import java.nio.ByteBuffer; +import java.nio.channels.FileChannel; +import java.util.ArrayList; + +import javax.microedition.khronos.opengles.GL10; + +public class WebmEncoder { + + private static native long createEncoder( + String outputPath, + int width, int height, + int fps, long bitrate + ); + private static native boolean writeFrame( + long ptr, + ByteBuffer argbPixels, + int width, int height + ); + public static native void stop(long ptr); + + + public static boolean convert(MediaCodecVideoConvertor.ConvertVideoParams params) { + final int W = params.resultWidth; + final int H = params.resultHeight; + + final long ptr = createEncoder(params.cacheFile.getAbsolutePath(), W, H, params.framerate, params.bitrate); + if (ptr == 0) { + return true; + } + + boolean error = false; + Bitmap bitmap = null; + try { + + bitmap = Bitmap.createBitmap(W, H, Bitmap.Config.ARGB_8888); + ByteBuffer buffer = ByteBuffer.allocateDirect(bitmap.getByteCount()); + + Canvas canvas = new Canvas(bitmap); + FrameDrawer frameDrawer = new FrameDrawer(params); + + final int framesCount = (int) Math.ceil(params.framerate * (params.duration / 1000.0)); + for (int frame = 0; frame < framesCount; ++frame) { + frameDrawer.draw(canvas, frame); + + bitmap.copyPixelsToBuffer(buffer); + buffer.flip(); + + if (!writeFrame(ptr, buffer, W, H)) { + FileLog.d("webm writeFile error at " + frame + "/" + framesCount); + return true; + } + + if (params.callback != null) { + params.callback.didWriteData(params.cacheFile.length(), (float) frame / framesCount); + } + + if (frame % 3 == 0 && params.callback != null) { + params.callback.checkConversionCanceled(); + } + } + } catch (Exception e) { + FileLog.e(e); + error = true; + } finally { + stop(ptr); + if (bitmap != null) { + bitmap.recycle(); + } + } + + if (params.callback != null) { + params.callback.didWriteData(params.cacheFile.length(), 1f); + } + + FileLog.d("webm encoded to " + params.cacheFile + " with size=" + params.cacheFile.length()); + + return error; + } + + public static class FrameDrawer { + + private final int W, H; + private final int fps; + + private final Bitmap photo; + private final ArrayList mediaEntities = new ArrayList<>(); + + private final Paint clearPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + private final Paint bitmapPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG); + + public FrameDrawer(MediaCodecVideoConvertor.ConvertVideoParams params) { + this.W = params.resultWidth; + this.H = params.resultHeight; + this.fps = params.framerate; + + photo = BitmapFactory.decodeFile(params.videoPath); + + mediaEntities.addAll(params.mediaEntities); + for (int a = 0, N = mediaEntities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = mediaEntities.get(a); + if ( + entity.type == VideoEditedInfo.MediaEntity.TYPE_STICKER || + entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO || + entity.type == VideoEditedInfo.MediaEntity.TYPE_ROUND + ) { + initStickerEntity(entity); + } else if (entity.type == VideoEditedInfo.MediaEntity.TYPE_TEXT) { + initTextEntity(entity); + } + } + + clearPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); + } + + public void draw(Canvas canvas, int frame) { + canvas.drawPaint(clearPaint); + if (photo != null) { + canvas.drawBitmap(photo, 0, 0, null); + } + final long time = frame * (1_000_000_000L / fps); + for (int a = 0, N = mediaEntities.size(); a < N; a++) { + VideoEditedInfo.MediaEntity entity = mediaEntities.get(a); + drawEntity(canvas, entity, entity.color, time); + } + } + + private void drawEntity(Canvas canvas, VideoEditedInfo.MediaEntity entity, int textColor, long time) { + if (entity.ptr != 0) { + if (entity.bitmap == null || entity.W <= 0 || entity.H <= 0) { + return; + } + RLottieDrawable.getFrame(entity.ptr, (int) entity.currentFrame, entity.bitmap, entity.W, entity.H, entity.bitmap.getRowBytes(), true); + applyRoundRadius(entity, entity.bitmap, (entity.subType & 8) != 0 ? textColor : 0); + + canvas.drawBitmap(entity.bitmap, entity.matrix, bitmapPaint); + + entity.currentFrame += entity.framesPerDraw; + if (entity.currentFrame >= entity.metadata[0]) { + entity.currentFrame = 0; + } + } else if (entity.animatedFileDrawable != null) { + int lastFrame = (int) entity.currentFrame; + float scale = 1f; + entity.currentFrame += entity.framesPerDraw; + int currentFrame = (int) entity.currentFrame; + while (lastFrame != currentFrame) { + entity.animatedFileDrawable.getNextFrame(true); + currentFrame--; + } + Bitmap frameBitmap = entity.animatedFileDrawable.getBackgroundBitmap(); + if (frameBitmap != null) { + canvas.drawBitmap(frameBitmap, entity.matrix, bitmapPaint); + } + } else { + canvas.drawBitmap(entity.bitmap, entity.matrix, bitmapPaint); + if (entity.entities != null && !entity.entities.isEmpty()) { + for (int i = 0; i < entity.entities.size(); ++i) { + VideoEditedInfo.EmojiEntity e = entity.entities.get(i); + if (e == null) { + continue; + } + VideoEditedInfo.MediaEntity entity1 = e.entity; + if (entity1 == null) { + continue; + } + drawEntity(canvas, entity1, entity.color, time); + } + } + } + } + + private void initTextEntity(VideoEditedInfo.MediaEntity entity) { + EditTextOutline editText = new EditTextOutline(ApplicationLoader.applicationContext); + editText.getPaint().setAntiAlias(true); + editText.drawAnimatedEmojiDrawables = false; + editText.setBackgroundColor(Color.TRANSPARENT); + editText.setPadding(AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7), AndroidUtilities.dp(7)); + Typeface typeface; + if (entity.textTypeface != null && (typeface = entity.textTypeface.getTypeface()) != null) { + editText.setTypeface(typeface); + } + editText.setTextSize(TypedValue.COMPLEX_UNIT_PX, entity.fontSize); + SpannableString text = new SpannableString(entity.text); + for (VideoEditedInfo.EmojiEntity e : entity.entities) { + if (e.documentAbsolutePath == null) { + continue; + } + e.entity = new VideoEditedInfo.MediaEntity(); + e.entity.text = e.documentAbsolutePath; + e.entity.subType = e.subType; + AnimatedEmojiSpan span = new AnimatedEmojiSpan(0L, 1f, editText.getPaint().getFontMetricsInt()) { + @Override + public void draw(@NonNull Canvas canvas, CharSequence charSequence, int start, int end, float x, int top, int y, int bottom, @NonNull Paint paint) { + super.draw(canvas, charSequence, start, end, x, top, y, bottom, paint); + + float tcx = entity.x + (editText.getPaddingLeft() + x + measuredSize / 2f) / entity.viewWidth * entity.width; + float tcy = entity.y + (editText.getPaddingTop() + top + (bottom - top) / 2f) / entity.viewHeight * entity.height; + + if (entity.rotation != 0) { + float mx = entity.x + entity.width / 2f; + float my = entity.y + entity.height / 2f; + float ratio = W / (float) H; + float x1 = tcx - mx; + float y1 = (tcy - my) / ratio; + tcx = (float) (x1 * Math.cos(-entity.rotation) - y1 * Math.sin(-entity.rotation)) + mx; + tcy = (float) (x1 * Math.sin(-entity.rotation) + y1 * Math.cos(-entity.rotation)) * ratio + my; + } + + e.entity.width = (float) measuredSize / entity.viewWidth * entity.width; + e.entity.height = (float) measuredSize / entity.viewHeight * entity.height; + e.entity.x = tcx - e.entity.width / 2f; + e.entity.y = tcy - e.entity.height / 2f; + e.entity.rotation = entity.rotation; + + if (e.entity.bitmap == null) + initStickerEntity(e.entity); + } + }; + text.setSpan(span, e.offset, e.offset + e.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + editText.setText(Emoji.replaceEmoji(text, editText.getPaint().getFontMetricsInt(), (int) (editText.getTextSize() * .8f), false)); + editText.setTextColor(entity.color); + CharSequence text2 = editText.getText(); + if (text2 instanceof Spanned) { + Emoji.EmojiSpan[] spans = ((Spanned) text2).getSpans(0, text2.length(), Emoji.EmojiSpan.class); + for (int i = 0; i < spans.length; ++i) { + spans[i].scale = .85f; + } + } + + + int gravity; + switch (entity.textAlign) { + default: + case PaintTextOptionsView.ALIGN_LEFT: + gravity = Gravity.LEFT | Gravity.CENTER_VERTICAL; + break; + case PaintTextOptionsView.ALIGN_CENTER: + gravity = Gravity.CENTER; + break; + case PaintTextOptionsView.ALIGN_RIGHT: + gravity = Gravity.RIGHT | Gravity.CENTER_VERTICAL; + break; + } + + editText.setGravity(gravity); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + int textAlign; + switch (entity.textAlign) { + default: + case PaintTextOptionsView.ALIGN_LEFT: + textAlign = LocaleController.isRTL ? View.TEXT_ALIGNMENT_TEXT_END : View.TEXT_ALIGNMENT_TEXT_START; + break; + case PaintTextOptionsView.ALIGN_CENTER: + textAlign = View.TEXT_ALIGNMENT_CENTER; + break; + case PaintTextOptionsView.ALIGN_RIGHT: + textAlign = LocaleController.isRTL ? View.TEXT_ALIGNMENT_TEXT_START : View.TEXT_ALIGNMENT_TEXT_END; + break; + } + editText.setTextAlignment(textAlign); + } + + editText.setHorizontallyScrolling(false); + editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); + editText.setFocusableInTouchMode(true); + editText.setInputType(editText.getInputType() | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES); + if (Build.VERSION.SDK_INT >= 23) { + setBreakStrategy(editText); + } + if (entity.subType == 0) { + editText.setFrameColor(entity.color); + editText.setTextColor(AndroidUtilities.computePerceivedBrightness(entity.color) >= .721f ? Color.BLACK : Color.WHITE); + } else if (entity.subType == 1) { + editText.setFrameColor(AndroidUtilities.computePerceivedBrightness(entity.color) >= .25f ? 0x99000000 : 0x99ffffff); + editText.setTextColor(entity.color); + } else if (entity.subType == 2) { + editText.setFrameColor(AndroidUtilities.computePerceivedBrightness(entity.color) >= .25f ? Color.BLACK : Color.WHITE); + editText.setTextColor(entity.color); + } else if (entity.subType == 3) { + editText.setFrameColor(0); + editText.setTextColor(entity.color); + } + + editText.measure(View.MeasureSpec.makeMeasureSpec(entity.viewWidth, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(entity.viewHeight, View.MeasureSpec.EXACTLY)); + editText.layout(0, 0, entity.viewWidth, entity.viewHeight); + entity.bitmap = Bitmap.createBitmap(entity.viewWidth, entity.viewHeight, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(entity.bitmap); + editText.draw(canvas); + + setupMatrix(entity); + } + + @RequiresApi(api = Build.VERSION_CODES.M) + public void setBreakStrategy(EditTextOutline editText) { + editText.setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE); + } + + private void initStickerEntity(VideoEditedInfo.MediaEntity entity) { + entity.W = (int) (entity.width * W); + entity.H = (int) (entity.height * H); + if (entity.W > 512) { + entity.H = (int) (entity.H / (float) entity.W * 512); + entity.W = 512; + } + if (entity.H > 512) { + entity.W = (int) (entity.W / (float) entity.H * 512); + entity.H = 512; + } + if ((entity.subType & 1) != 0) { + if (entity.W <= 0 || entity.H <= 0) { + return; + } + entity.bitmap = Bitmap.createBitmap(entity.W, entity.H, Bitmap.Config.ARGB_8888); + entity.metadata = new int[3]; + entity.ptr = RLottieDrawable.create(entity.text, null, entity.W, entity.H, entity.metadata, false, null, false, 0); + entity.framesPerDraw = entity.metadata[1] / fps; + } else if ((entity.subType & 4) != 0) { + entity.looped = false; + entity.animatedFileDrawable = new AnimatedFileDrawable(new File(entity.text), true, 0, 0, null, null, null, 0, UserConfig.selectedAccount, true, 512, 512, null); + entity.framesPerDraw = entity.animatedFileDrawable.getFps() / fps; + entity.currentFrame = 1; + entity.animatedFileDrawable.getNextFrame(true); + if (entity.type == VideoEditedInfo.MediaEntity.TYPE_ROUND) { + entity.firstSeek = true; + } + } else { + String path = entity.text; + if (!TextUtils.isEmpty(entity.segmentedPath) && (entity.subType & 16) != 0) { + path = entity.segmentedPath; + } + if (Build.VERSION.SDK_INT >= 19) { + BitmapFactory.Options opts = new BitmapFactory.Options(); + if (entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO) { + opts.inMutable = true; + } + entity.bitmap = BitmapFactory.decodeFile(path, opts); + } else { + try { + File filePath = new File(path); + RandomAccessFile file = new RandomAccessFile(filePath, "r"); + ByteBuffer buffer = file.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, filePath.length()); + BitmapFactory.Options bmOptions = new BitmapFactory.Options(); + bmOptions.inJustDecodeBounds = true; + Utilities.loadWebpImage(null, buffer, buffer.limit(), bmOptions, true); + if (entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO) { + bmOptions.inMutable = true; + } + entity.bitmap = Bitmaps.createBitmap(bmOptions.outWidth, bmOptions.outHeight, Bitmap.Config.ARGB_8888); + Utilities.loadWebpImage(entity.bitmap, buffer, buffer.limit(), null, true); + file.close(); + } catch (Throwable e) { + FileLog.e(e); + } + } + if (entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO && entity.bitmap != null) { + entity.roundRadius = AndroidUtilities.dp(12) / (float) Math.min(entity.viewWidth, entity.viewHeight); + Pair orientation = AndroidUtilities.getImageOrientation(entity.text); + entity.rotation -= Math.toRadians(orientation.first); + if ((orientation.first / 90 % 2) == 1) { + float cx = entity.x + entity.width / 2f, cy = entity.y + entity.height / 2f; + + float w = entity.width * W / H; + entity.width = entity.height * H / W; + entity.height = w; + + entity.x = cx - entity.width / 2f; + entity.y = cy - entity.height / 2f; + } + applyRoundRadius(entity, entity.bitmap, 0); + } else if (entity.bitmap != null) { + float aspect = entity.bitmap.getWidth() / (float) entity.bitmap.getHeight(); + if (aspect > 1) { + float h = entity.height / aspect; + entity.y += (entity.height - h) / 2; + entity.height = h; + } else if (aspect < 1) { + float w = entity.width * aspect; + entity.x += (entity.width - w) / 2; + entity.width = w; + } + } + } + + setupMatrix(entity); + } + + private void setupMatrix(VideoEditedInfo.MediaEntity entity) { + entity.matrix = new Matrix(); + Bitmap bitmap = entity.bitmap; + if (bitmap == null && entity.animatedFileDrawable != null) { + bitmap = entity.animatedFileDrawable.getBackgroundBitmap(); + } + if (bitmap != null) { + entity.matrix.postScale(1f / bitmap.getWidth(), 1f / bitmap.getHeight()); + } + if ((entity.subType & 2) != 0) { + entity.matrix.postScale(-1, 1, .5f, .5f); + } + entity.matrix.postScale(entity.width * W, entity.height * H); + entity.matrix.postTranslate(entity.x * W, entity.y * H); + entity.matrix.postRotate((float) (-entity.rotation / Math.PI * 180), (entity.x + entity.width) * W, (entity.x + entity.height) * H); + } + + Path path; + Paint xRefPaint; + Paint textColorPaint; + private void applyRoundRadius(VideoEditedInfo.MediaEntity entity, Bitmap stickerBitmap, int color) { + if (stickerBitmap == null || entity == null || entity.roundRadius == 0 && color == 0) { + return; + } + if (entity.roundRadiusCanvas == null) { + entity.roundRadiusCanvas = new Canvas(stickerBitmap); + } + if (entity.roundRadius != 0) { + if (path == null) { + path = new Path(); + } + if (xRefPaint == null) { + xRefPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + xRefPaint.setColor(0xff000000); + xRefPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); + } + float rad = Math.min(stickerBitmap.getWidth(), stickerBitmap.getHeight()) * entity.roundRadius; + path.rewind(); + RectF rect = new RectF(0, 0, stickerBitmap.getWidth(), stickerBitmap.getHeight()); + path.addRoundRect(rect, rad, rad, Path.Direction.CCW); + path.toggleInverseFillType(); + entity.roundRadiusCanvas.drawPath(path, xRefPaint); + } + if (color != 0) { + if (textColorPaint == null) { + textColorPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + textColorPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); + } + textColorPaint.setColor(color); + entity.roundRadiusCanvas.drawRect(0, 0, stickerBitmap.getWidth(), stickerBitmap.getHeight(), textColorPaint); + } + } + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java b/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java index 9b319aad11..8fa6765518 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java @@ -6,6 +6,8 @@ import android.os.AsyncTask; import android.os.Build; import android.os.SystemClock; +import android.text.SpannableString; +import android.text.Spanned; import android.text.TextUtils; import android.util.Base64; import android.util.SparseArray; @@ -24,17 +26,28 @@ import org.telegram.messenger.BuildConfig; import org.telegram.messenger.BuildVars; import org.telegram.messenger.EmuDetector; +import org.telegram.messenger.FileLoadOperation; +import org.telegram.messenger.FileLoader; import org.telegram.messenger.FileLog; +import org.telegram.messenger.FileUploadOperation; import org.telegram.messenger.KeepAliveJob; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MessagesController; import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.PushListenerController; +import org.telegram.messenger.R; import org.telegram.messenger.SharedConfig; import org.telegram.messenger.StatsController; import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserObject; import org.telegram.messenger.Utilities; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ChatActivity; +import org.telegram.ui.Components.BulletinFactory; +import org.telegram.ui.Components.TypefaceSpan; +import org.telegram.ui.DialogsActivity; +import org.telegram.ui.LaunchActivity; +import org.telegram.ui.PremiumPreviewFragment; import java.io.File; import java.net.Inet4Address; @@ -725,7 +738,7 @@ public static void onUnparsedMessageReceived(long address, final int currentAcco buff.reused = true; int constructor = buff.readInt32(true); final TLObject message = TLClassStore.Instance().TLdeserialize(buff, constructor, true); - FileLog.dumpUnparsedMessage(message, messageId); + FileLog.dumpUnparsedMessage(message, messageId, currentAccount); if (message instanceof TLRPC.Updates) { if (BuildVars.LOGS_ENABLED) { FileLog.d("java received " + message); @@ -1202,4 +1215,31 @@ protected void onPostExecute(final NativeByteBuffer result) { } } + public static long lastPremiumFloodWaitShown = 0; + public static void onPremiumFloodWait(final int currentAccount, final int requestToken, boolean isUpload) { + AndroidUtilities.runOnUIThread(() -> { + if (UserConfig.selectedAccount != currentAccount) { + return; + } + + boolean updated = false; + if (isUpload) { + FileUploadOperation operation = FileLoader.getInstance(currentAccount).findUploadOperationByRequestToken(requestToken); + if (operation != null) { + updated = !operation.caughtPremiumFloodWait; + operation.caughtPremiumFloodWait = true; + } + } else { + FileLoadOperation operation = FileLoader.getInstance(currentAccount).findLoadOperationByRequestToken(requestToken); + if (operation != null) { + updated = !operation.caughtPremiumFloodWait; + operation.caughtPremiumFloodWait = true; + } + } + + if (updated) { + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.premiumFloodWaitReceived); + } + }); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java b/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java index acbd989eae..c5e76fa78f 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java @@ -83,158 +83,7 @@ public class TLRPC { public static final int MESSAGE_FLAG_HAS_BOT_ID = 0x00000800; public static final int MESSAGE_FLAG_EDITED = 0x00008000; - public static final int LAYER = 176; - - public static class TL_stats_megagroupStats extends TLObject { - public static final int constructor = 0xef7ff916; - public TL_statsDateRangeDays period; - public TL_statsAbsValueAndPrev members; - public TL_statsAbsValueAndPrev messages; - public TL_statsAbsValueAndPrev viewers; - public TL_statsAbsValueAndPrev posters; - public StatsGraph growth_graph; - public StatsGraph members_graph; - public StatsGraph new_members_by_source_graph; - public StatsGraph languages_graph; - public StatsGraph messages_graph; - public StatsGraph actions_graph; - public StatsGraph top_hours_graph; - public StatsGraph weekdays_graph; - public ArrayList top_posters = new ArrayList<>(); - public ArrayList top_admins = new ArrayList<>(); - public ArrayList top_inviters = new ArrayList<>(); - public ArrayList users = new ArrayList<>(); - - public static TL_stats_megagroupStats TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_stats_megagroupStats.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_stats_megagroupStats", constructor)); - } else { - return null; - } - } - TL_stats_megagroupStats result = new TL_stats_megagroupStats(); - result.readParams(stream, exception); - return result; - } - - public void readParams(AbstractSerializedData stream, boolean exception) { - period = TL_statsDateRangeDays.TLdeserialize(stream, stream.readInt32(exception), exception); - members = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); - messages = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); - viewers = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); - posters = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); - growth_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - members_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - new_members_by_source_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - languages_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - messages_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - actions_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - top_hours_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - weekdays_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - int magic = stream.readInt32(exception); - if (magic != 0x1cb5c415) { - if (exception) { - throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); - } - return; - } - int count = stream.readInt32(exception); - for (int a = 0; a < count; a++) { - TL_statsGroupTopPoster object = TL_statsGroupTopPoster.TLdeserialize(stream, stream.readInt32(exception), exception); - if (object == null) { - return; - } - top_posters.add(object); - } - magic = stream.readInt32(exception); - if (magic != 0x1cb5c415) { - if (exception) { - throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); - } - return; - } - count = stream.readInt32(exception); - for (int a = 0; a < count; a++) { - TL_statsGroupTopAdmin object = TL_statsGroupTopAdmin.TLdeserialize(stream, stream.readInt32(exception), exception); - if (object == null) { - return; - } - top_admins.add(object); - } - magic = stream.readInt32(exception); - if (magic != 0x1cb5c415) { - if (exception) { - throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); - } - return; - } - count = stream.readInt32(exception); - for (int a = 0; a < count; a++) { - TL_statsGroupTopInviter object = TL_statsGroupTopInviter.TLdeserialize(stream, stream.readInt32(exception), exception); - if (object == null) { - return; - } - top_inviters.add(object); - } - magic = stream.readInt32(exception); - if (magic != 0x1cb5c415) { - if (exception) { - throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); - } - return; - } - count = stream.readInt32(exception); - for (int a = 0; a < count; a++) { - User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); - if (object == null) { - return; - } - users.add(object); - } - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - period.serializeToStream(stream); - members.serializeToStream(stream); - messages.serializeToStream(stream); - viewers.serializeToStream(stream); - posters.serializeToStream(stream); - growth_graph.serializeToStream(stream); - members_graph.serializeToStream(stream); - new_members_by_source_graph.serializeToStream(stream); - languages_graph.serializeToStream(stream); - messages_graph.serializeToStream(stream); - actions_graph.serializeToStream(stream); - top_hours_graph.serializeToStream(stream); - weekdays_graph.serializeToStream(stream); - stream.writeInt32(0x1cb5c415); - int count = top_posters.size(); - stream.writeInt32(count); - for (int a = 0; a < count; a++) { - top_posters.get(a).serializeToStream(stream); - } - stream.writeInt32(0x1cb5c415); - count = top_admins.size(); - stream.writeInt32(count); - for (int a = 0; a < count; a++) { - top_admins.get(a).serializeToStream(stream); - } - stream.writeInt32(0x1cb5c415); - count = top_inviters.size(); - stream.writeInt32(count); - for (int a = 0; a < count; a++) { - top_inviters.get(a).serializeToStream(stream); - } - stream.writeInt32(0x1cb5c415); - count = users.size(); - stream.writeInt32(count); - for (int a = 0; a < count; a++) { - users.get(a).serializeToStream(stream); - } - } - } + public static final int LAYER = 177; public static abstract class EmailVerifyPurpose extends TLObject { @@ -2490,34 +2339,6 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_dataJSON extends TLObject { - public static final int constructor = 0x7d748d04; - - public String data; - - public static TL_dataJSON TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_dataJSON.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_dataJSON", constructor)); - } else { - return null; - } - } - TL_dataJSON result = new TL_dataJSON(); - result.readParams(stream, exception); - return result; - } - - public void readParams(AbstractSerializedData stream, boolean exception) { - data = stream.readString(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeString(data); - } - } - public static class TL_contactStatus extends TLObject { public static final int constructor = 0x16d9703b; @@ -3687,43 +3508,6 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_statsGroupTopAdmin extends TLObject { - public static final int constructor = 0xd7584c87; - - public long user_id; - public int deleted; - public int kicked; - public int banned; - - public static TL_statsGroupTopAdmin TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_statsGroupTopAdmin.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_statsGroupTopAdmin", constructor)); - } else { - return null; - } - } - TL_statsGroupTopAdmin result = new TL_statsGroupTopAdmin(); - result.readParams(stream, exception); - return result; - } - - public void readParams(AbstractSerializedData stream, boolean exception) { - user_id = stream.readInt64(exception); - deleted = stream.readInt32(exception); - kicked = stream.readInt32(exception); - banned = stream.readInt32(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeInt64(user_id); - stream.writeInt32(deleted); - stream.writeInt32(kicked); - stream.writeInt32(banned); - } - } - public static class TL_payments_paymentForm extends TLObject { public static final int constructor = 0xa0058751; @@ -4554,37 +4338,6 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_statsAbsValueAndPrev extends TLObject { - public static final int constructor = 0xcb43acde; - - public double current; - public double previous; - - public static TL_statsAbsValueAndPrev TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_statsAbsValueAndPrev.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_statsAbsValueAndPrev", constructor)); - } else { - return null; - } - } - TL_statsAbsValueAndPrev result = new TL_statsAbsValueAndPrev(); - result.readParams(stream, exception); - return result; - } - - public void readParams(AbstractSerializedData stream, boolean exception) { - current = stream.readDouble(exception); - previous = stream.readDouble(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeDouble(current); - stream.writeDouble(previous); - } - } - public static abstract class PollResults extends TLObject { public int flags; @@ -5431,156 +5184,6 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static abstract class StatsGraph extends TLObject { - - public static StatsGraph TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - StatsGraph result = null; - switch (constructor) { - case 0x8ea464b6: - result = new TL_statsGraph(); - break; - case 0x4a27eb2d: - result = new TL_statsGraphAsync(); - break; - case 0xbedc9822: - result = new TL_statsGraphError(); - break; - } - if (result == null && exception) { - throw new RuntimeException(String.format("can't parse magic %x in StatsGraph", constructor)); - } - if (result != null) { - result.readParams(stream, exception); - } - return result; - } - } - - public static class TL_statsGraph extends StatsGraph { - public static final int constructor = 0x8ea464b6; - - public int flags; - public TL_dataJSON json; - public String zoom_token; - - public void readParams(AbstractSerializedData stream, boolean exception) { - flags = stream.readInt32(exception); - json = TL_dataJSON.TLdeserialize(stream, stream.readInt32(exception), exception); - if ((flags & 1) != 0) { - zoom_token = stream.readString(exception); - } - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeInt32(flags); - json.serializeToStream(stream); - if ((flags & 1) != 0) { - stream.writeString(zoom_token); - } - } - } - - public static class TL_statsGraphAsync extends StatsGraph { - public static final int constructor = 0x4a27eb2d; - - public String token; - - public void readParams(AbstractSerializedData stream, boolean exception) { - token = stream.readString(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeString(token); - } - } - - public static class TL_statsGraphError extends StatsGraph { - public static final int constructor = 0xbedc9822; - - public String error; - - public void readParams(AbstractSerializedData stream, boolean exception) { - error = stream.readString(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeString(error); - } - } - - public static abstract class PostInteractionCounters extends TLObject { - - public static PostInteractionCounters TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - PostInteractionCounters result = null; - switch (constructor) { - case TL_postInteractionCountersStory.constructor: - result = new TL_postInteractionCountersStory(); - break; - case TL_postInteractionCountersMessage.constructor: - result = new TL_postInteractionCountersMessage(); - break; - } - if (result == null && exception) { - throw new RuntimeException(String.format("can't parse magic %x in PostInteractionCounters", constructor)); - } - if (result != null) { - result.readParams(stream, exception); - } - return result; - } - } - - public static class TL_postInteractionCountersStory extends PostInteractionCounters { - public final static int constructor = 0x8a480e27; - - public int story_id; - public int views; - public int forwards; - public int reactions; - - public void readParams(AbstractSerializedData stream, boolean exception) { - story_id = stream.readInt32(exception); - views = stream.readInt32(exception); - forwards = stream.readInt32(exception); - reactions = stream.readInt32(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeInt32(story_id); - stream.writeInt32(views); - stream.writeInt32(forwards); - stream.writeInt32(reactions); - } - } - - public static class TL_postInteractionCountersMessage extends PostInteractionCounters { - public static final int constructor = 0xe7058e7f; - - public int msg_id; - public int views; - public int forwards; - public int reactions; - - public void readParams(AbstractSerializedData stream, boolean exception) { - msg_id = stream.readInt32(exception); - views = stream.readInt32(exception); - forwards = stream.readInt32(exception); - reactions = stream.readInt32(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeInt32(msg_id); - stream.writeInt32(views); - stream.writeInt32(forwards); - stream.writeInt32(reactions); - } - } - public static abstract class updates_Difference extends TLObject { public ArrayList new_messages = new ArrayList<>(); public ArrayList new_encrypted_messages = new ArrayList<>(); @@ -5892,36 +5495,39 @@ public static abstract class PrivacyKey extends TLObject { public static PrivacyKey TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PrivacyKey result = null; switch (constructor) { - case 0xbc2eab30: + case TL_privacyKeyStatusTimestamp.constructor: result = new TL_privacyKeyStatusTimestamp(); break; - case 0x39491cc8: + case TL_privacyKeyPhoneP2P.constructor: result = new TL_privacyKeyPhoneP2P(); break; - case 0x500e6dfa: + case TL_privacyKeyChatInvite.constructor: result = new TL_privacyKeyChatInvite(); break; - case 0x42ffd42b: + case TL_privacyKeyAddedByPhone.constructor: result = new TL_privacyKeyAddedByPhone(); break; - case 0x697f414: + case TL_privacyKeyVoiceMessages.constructor: result = new TL_privacyKeyVoiceMessages(); break; - case 0xa486b761: + case TL_privacyKeyAbout.constructor: result = new TL_privacyKeyAbout(); break; - case 0x3d662b7b: + case TL_privacyKeyPhoneCall.constructor: result = new TL_privacyKeyPhoneCall(); break; - case 0x69ec56a3: + case TL_privacyKeyForwards.constructor: result = new TL_privacyKeyForwards(); break; - case 0xd19ae46d: + case TL_privacyKeyPhoneNumber.constructor: result = new TL_privacyKeyPhoneNumber(); break; - case 0x96151fed: + case TL_privacyKeyProfilePhoto.constructor: result = new TL_privacyKeyProfilePhoto(); break; + case TL_privacyKeyBirthday.constructor: + result = new TL_privacyKeyBirthday(); + break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PrivacyKey", constructor)); @@ -6023,6 +5629,15 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_privacyKeyBirthday extends PrivacyKey { + public static final int constructor = 0x2000a518; + + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + } + } + public static abstract class GeoPoint extends TLObject { public int flags; public double _long; @@ -7511,8 +7126,8 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_peerSettings extends TLObject { - public static final int constructor = 0xa518110d; + + public static class PeerSettings extends TLObject { public int flags; public boolean report_spam; @@ -7527,19 +7142,33 @@ public static class TL_peerSettings extends TLObject { public int geo_distance; public String request_chat_title; public int request_chat_date; + public boolean business_bot_paused; + public boolean business_bot_can_reply; + public long business_bot_id; + public String business_bot_manage_url; - public static TL_peerSettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_peerSettings.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_peerSettings", constructor)); - } else { - return null; - } + public static PeerSettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + PeerSettings result = null; + switch (constructor) { + case TL_peerSettings.constructor: + result = new TL_peerSettings(); + break; + case TL_peerSettings_layer176.constructor: + result = new TL_peerSettings_layer176(); + break; + } + if (result == null && exception) { + throw new RuntimeException(String.format("can't parse magic %x in PeerSettings", constructor)); + } + if (result != null) { + result.readParams(stream, exception); } - TL_peerSettings result = new TL_peerSettings(); - result.readParams(stream, exception); return result; } + } + + public static class TL_peerSettings extends PeerSettings { + public static final int constructor = 0xacd66c5e; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -7552,6 +7181,8 @@ public void readParams(AbstractSerializedData stream, boolean exception) { autoarchived = (flags & 128) != 0; invite_members = (flags & 256) != 0; request_chat_broadcast = (flags & 1024) != 0; + business_bot_paused = (flags & 2048) != 0; + business_bot_can_reply = (flags & 4096) != 0; if ((flags & 64) != 0) { geo_distance = stream.readInt32(exception); } @@ -7561,6 +7192,12 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 512) != 0) { request_chat_date = stream.readInt32(exception); } + if ((flags & 8192) != 0) { + business_bot_id = stream.readInt64(exception); + } + if ((flags & 8192) != 0) { + business_bot_manage_url = stream.readString(exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -7574,6 +7211,8 @@ public void serializeToStream(AbstractSerializedData stream) { flags = autoarchived ? (flags | 128) : (flags &~ 128); flags = invite_members ? (flags | 256) : (flags &~ 256); flags = request_chat_broadcast ? (flags | 1024) : (flags &~ 1024); + flags = business_bot_paused ? (flags | 2048) : (flags &~ 2048); + flags = business_bot_can_reply ? (flags | 4096) : (flags &~ 4096); stream.writeInt32(flags); if ((flags & 64) != 0) { stream.writeInt32(geo_distance); @@ -7584,68 +7223,92 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 512) != 0) { stream.writeInt32(request_chat_date); } + if ((flags & 8192) != 0) { + stream.writeInt64(business_bot_id); + } + if ((flags & 8192) != 0) { + stream.writeString(business_bot_manage_url); + } } } - public static class TL_readParticipantDate extends TLObject { - public static final int constructor = 0x4a4ff172; - - public long user_id; - public int date; - - public static TL_readParticipantDate TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_readParticipantDate.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_readParticipantDate", constructor)); - } else { - return null; - } - } - TL_readParticipantDate result = new TL_readParticipantDate(); - result.readParams(stream, exception); - return result; - } + public static class TL_peerSettings_layer176 extends TL_peerSettings { + public static final int constructor = 0xa518110d; public void readParams(AbstractSerializedData stream, boolean exception) { - user_id = stream.readInt64(exception); - date = stream.readInt32(exception); + flags = stream.readInt32(exception); + report_spam = (flags & 1) != 0; + add_contact = (flags & 2) != 0; + block_contact = (flags & 4) != 0; + share_contact = (flags & 8) != 0; + need_contacts_exception = (flags & 16) != 0; + report_geo = (flags & 32) != 0; + autoarchived = (flags & 128) != 0; + invite_members = (flags & 256) != 0; + request_chat_broadcast = (flags & 1024) != 0; + if ((flags & 64) != 0) { + geo_distance = stream.readInt32(exception); + } + if ((flags & 512) != 0) { + request_chat_title = stream.readString(exception); + } + if ((flags & 512) != 0) { + request_chat_date = stream.readInt32(exception); + } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); - stream.writeInt64(user_id); - stream.writeInt32(date); + flags = report_spam ? (flags | 1) : (flags &~ 1); + flags = add_contact ? (flags | 2) : (flags &~ 2); + flags = block_contact ? (flags | 4) : (flags &~ 4); + flags = share_contact ? (flags | 8) : (flags &~ 8); + flags = need_contacts_exception ? (flags | 16) : (flags &~ 16); + flags = report_geo ? (flags | 32) : (flags &~ 32); + flags = autoarchived ? (flags | 128) : (flags &~ 128); + flags = invite_members ? (flags | 256) : (flags &~ 256); + flags = request_chat_broadcast ? (flags | 1024) : (flags &~ 1024); + stream.writeInt32(flags); + if ((flags & 64) != 0) { + stream.writeInt32(geo_distance); + } + if ((flags & 512) != 0) { + stream.writeString(request_chat_title); + } + if ((flags & 512) != 0) { + stream.writeInt32(request_chat_date); + } } } - public static class TL_statsGroupTopInviter extends TLObject { - public static final int constructor = 0x535f779d; + public static class TL_readParticipantDate extends TLObject { + public static final int constructor = 0x4a4ff172; public long user_id; - public int invitations; + public int date; - public static TL_statsGroupTopInviter TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_statsGroupTopInviter.constructor != constructor) { + public static TL_readParticipantDate TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_readParticipantDate.constructor != constructor) { if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_statsGroupTopInviter", constructor)); + throw new RuntimeException(String.format("can't parse magic %x in TL_readParticipantDate", constructor)); } else { return null; } } - TL_statsGroupTopInviter result = new TL_statsGroupTopInviter(); + TL_readParticipantDate result = new TL_readParticipantDate(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt64(exception); - invitations = stream.readInt32(exception); + date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(user_id); - stream.writeInt32(invitations); + stream.writeInt32(date); } } @@ -8131,6 +7794,9 @@ public static PrivacyRule TLdeserialize(AbstractSerializedData stream, int const case 0xf7e8d89b: result = new TL_privacyValueAllowCloseFriends(); break; + case 0xece9814b: + result = new TL_privacyValueAllowPremium(); + break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PrivacyRule", constructor)); @@ -8307,6 +7973,15 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_privacyValueAllowPremium extends PrivacyRule { + public static final int constructor = 0xece9814b; + + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + } + } + public static class TL_pageTableCell extends TLObject { public static final int constructor = 0x34566b6a; @@ -12644,36 +12319,39 @@ public static abstract class InputPrivacyKey extends TLObject { public static InputPrivacyKey TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputPrivacyKey result = null; switch (constructor) { - case 0x4f96cb18: + case TL_inputPrivacyKeyStatusTimestamp.constructor: result = new TL_inputPrivacyKeyStatusTimestamp(); break; - case 0xbdfb0426: + case TL_inputPrivacyKeyChatInvite.constructor: result = new TL_inputPrivacyKeyChatInvite(); break; - case 0xfabadc5f: + case TL_inputPrivacyKeyPhoneCall.constructor: result = new TL_inputPrivacyKeyPhoneCall(); break; - case 0xa4dd4c08: + case TL_inputPrivacyKeyForwards.constructor: result = new TL_inputPrivacyKeyForwards(); break; - case 0x5719bacc: + case TL_inputPrivacyKeyProfilePhoto.constructor: result = new TL_inputPrivacyKeyProfilePhoto(); break; - case 0x352dafa: + case TL_inputPrivacyKeyPhoneNumber.constructor: result = new TL_inputPrivacyKeyPhoneNumber(); break; - case 0xd1219bdd: + case TL_inputPrivacyKeyAddedByPhone.constructor: result = new TL_inputPrivacyKeyAddedByPhone(); break; - case 0xaee69d68: + case TL_inputPrivacyKeyVoiceMessages.constructor: result = new TL_inputPrivacyKeyVoiceMessages(); break; - case 0xdb9e70d2: + case TL_inputPrivacyKeyPhoneP2P.constructor: result = new TL_inputPrivacyKeyPhoneP2P(); break; - case 0x3823cc40: + case TL_inputPrivacyKeyAbout.constructor: result = new TL_inputPrivacyKeyAbout(); break; + case TL_inputPrivacyKeyBirthday.constructor: + result = new TL_inputPrivacyKeyBirthday(); + break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputPrivacyKey", constructor)); @@ -12757,6 +12435,15 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_inputPrivacyKeyBirthday extends InputPrivacyKey { + public static final int constructor = 0xd65a11cc; + + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + } + } + public static class TL_inputPrivacyKeyProfilePhoto extends InputPrivacyKey { public static final int constructor = 0x5719bacc; @@ -13118,24 +12805,29 @@ public static abstract class ChatFull extends TLObject { public boolean translations_disabled; public boolean stories_pinned_available; public boolean view_forum_as_messages; + public boolean restricted_sponsored; public ChatReactions available_reactions; public TL_stories.PeerStories stories; public WallPaper wallpaper; public int boosts_applied; public int boosts_unrestrict; public StickerSet emojiset; + public boolean can_view_revenue; public long inviterId; //custom public int invitesCount; //custom public static ChatFull TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ChatFull result = null; switch (constructor) { - case 0xc9d31138: + case TL_chatFull.constructor: result = new TL_chatFull(); break; case TL_channelFull.constructor: result = new TL_channelFull(); break; + case TL_channelFull_layer176.constructor: + result = new TL_channelFull_layer176(); + break; case TL_channelFull_layer167.constructor: result = new TL_channelFull_layer167(); break; @@ -15609,6 +15301,8 @@ public void readParams(AbstractSerializedData stream, boolean exception) { translations_disabled = (flags2 & 8) != 0; stories_pinned_available = (flags2 & 32) != 0; view_forum_as_messages = (flags2 & 64) != 0; + restricted_sponsored = (flags2 & 2048) != 0; + can_view_revenue = (flags2 & 4096) != 0; id = stream.readInt64(exception); about = stream.readString(exception); if ((flags & 1) != 0) { @@ -15764,6 +15458,8 @@ public void serializeToStream(AbstractSerializedData stream) { flags2 = translations_disabled ? (flags2 | 8) : (flags2 &~ 8); flags2 = stories_pinned_available ? (flags2 | 32) : (flags2 &~ 32); flags2 = view_forum_as_messages ? (flags2 | 64) : (flags2 &~ 64); + flags2 = restricted_sponsored ? (flags2 | 2048) : (flags2 &~ 2048); + flags2 = can_view_revenue ? (flags2 | 4096) : (flags2 &~ 4096); stream.writeInt32(flags2); stream.writeInt64(id); stream.writeString(about); @@ -15885,8 +15581,9 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_channelFull_layer173 extends ChatFull { - public static final int constructor = 0xf2bcb6f; + + public static class TL_channelFull_layer176 extends TL_channelFull { + public static final int constructor = 0x680b773c; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -16032,6 +15729,15 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags2 & 128) != 0) { wallpaper = WallPaper.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags2 & 256) != 0) { + boosts_applied = stream.readInt32(exception); + } + if ((flags2 & 512) != 0) { + boosts_unrestrict = stream.readInt32(exception); + } + if ((flags2 & 1024) != 0) { + emojiset = StickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -16160,11 +15866,20 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags2 & 128) != 0) { wallpaper.serializeToStream(stream); } + if ((flags2 & 256) != 0) { + stream.writeInt32(boosts_applied); + } + if ((flags2 & 512) != 0) { + stream.writeInt32(boosts_unrestrict); + } + if ((flags2 & 1024) != 0) { + emojiset.serializeToStream(stream); + } } } - public static class TL_channelFull_layer167 extends TL_channelFull { - public static final int constructor = 0x723027bd; + public static class TL_channelFull_layer173 extends ChatFull { + public static final int constructor = 0xf2bcb6f; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -16307,6 +16022,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags2 & 16) != 0) { stories = TL_stories.PeerStories.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags2 & 128) != 0) { + wallpaper = WallPaper.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -16432,11 +16150,14 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags2 & 16) != 0) { stories.serializeToStream(stream); } + if ((flags2 & 128) != 0) { + wallpaper.serializeToStream(stream); + } } } - public static class TL_channelFull_layer162 extends TL_channelFull { - public static final int constructor = 0xf2355507; + public static class TL_channelFull_layer167 extends TL_channelFull { + public static final int constructor = 0x723027bd; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -16453,6 +16174,8 @@ public void readParams(AbstractSerializedData stream, boolean exception) { antispam = (flags2 & 2) != 0; participants_hidden = (flags2 & 4) != 0; translations_disabled = (flags2 & 8) != 0; + stories_pinned_available = (flags2 & 32) != 0; + view_forum_as_messages = (flags2 & 64) != 0; id = stream.readInt64(exception); about = stream.readString(exception); if ((flags & 1) != 0) { @@ -16574,6 +16297,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 1073741824) != 0) { available_reactions = ChatReactions.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags2 & 16) != 0) { + stories = TL_stories.PeerStories.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -16591,6 +16317,8 @@ public void serializeToStream(AbstractSerializedData stream) { flags2 = antispam ? (flags2 | 2) : (flags2 &~ 2); flags2 = participants_hidden ? (flags2 | 4) : (flags2 &~ 4); flags2 = translations_disabled ? (flags2 | 8) : (flags2 &~ 8); + flags2 = stories_pinned_available ? (flags2 | 32) : (flags2 &~ 32); + flags2 = view_forum_as_messages ? (flags2 | 64) : (flags2 &~ 64); stream.writeInt32(flags2); stream.writeInt64(id); stream.writeString(about); @@ -16694,11 +16422,14 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 1073741824) != 0) { available_reactions.serializeToStream(stream); } + if ((flags2 & 16) != 0) { + stories.serializeToStream(stream); + } } } - public static class TL_channelFull_layer144 extends ChatFull { - public static final int constructor = 0xea68a619; + public static class TL_channelFull_layer162 extends TL_channelFull { + public static final int constructor = 0xf2355507; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -16712,6 +16443,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { blocked = (flags & 4194304) != 0; flags2 = stream.readInt32(exception); can_delete_channel = (flags2 & 1) != 0; + antispam = (flags2 & 2) != 0; + participants_hidden = (flags2 & 4) != 0; + translations_disabled = (flags2 & 8) != 0; id = stream.readInt64(exception); about = stream.readString(exception); if ((flags & 1) != 0) { @@ -16831,17 +16565,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { default_send_as = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 1073741824) != 0) { - magic = stream.readInt32(exception); - if (magic != 0x1cb5c415) { - if (exception) { - throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); - } - return; - } - count = stream.readInt32(exception); - for (int a = 0; a < count; a++) { - available_reactions_legacy.add(stream.readString(exception)); - } + available_reactions = ChatReactions.TLdeserialize(stream, stream.readInt32(exception), exception); } } @@ -16857,6 +16581,9 @@ public void serializeToStream(AbstractSerializedData stream) { flags = blocked ? (flags | 4194304) : (flags &~ 4194304); stream.writeInt32(flags); flags2 = can_delete_channel ? (flags2 | 1) : (flags2 &~ 1); + flags2 = antispam ? (flags2 | 2) : (flags2 &~ 2); + flags2 = participants_hidden ? (flags2 | 4) : (flags2 &~ 4); + flags2 = translations_disabled ? (flags2 | 8) : (flags2 &~ 8); stream.writeInt32(flags2); stream.writeInt64(id); stream.writeString(about); @@ -16958,18 +16685,13 @@ public void serializeToStream(AbstractSerializedData stream) { default_send_as.serializeToStream(stream); } if ((flags & 1073741824) != 0) { - stream.writeInt32(0x1cb5c415); - count = available_reactions_legacy.size(); - stream.writeInt32(count); - for (int a = 0; a < count; a++) { - stream.writeString(available_reactions_legacy.get(a)); - } + available_reactions.serializeToStream(stream); } } } - public static class TL_channelFull_layer139 extends ChatFull { - public static final int constructor = 0xe13c3d20; + public static class TL_channelFull_layer144 extends ChatFull { + public static final int constructor = 0xea68a619; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -16981,6 +16703,8 @@ public void readParams(AbstractSerializedData stream, boolean exception) { has_scheduled = (flags & 524288) != 0; can_view_stats = (flags & 1048576) != 0; blocked = (flags & 4194304) != 0; + flags2 = stream.readInt32(exception); + can_delete_channel = (flags2 & 1) != 0; id = stream.readInt64(exception); about = stream.readString(exception); if ((flags & 1) != 0) { @@ -17125,6 +16849,8 @@ public void serializeToStream(AbstractSerializedData stream) { flags = can_view_stats ? (flags | 1048576) : (flags &~ 1048576); flags = blocked ? (flags | 4194304) : (flags &~ 4194304); stream.writeInt32(flags); + flags2 = can_delete_channel ? (flags2 | 1) : (flags2 &~ 1); + stream.writeInt32(flags2); stream.writeInt64(id); stream.writeString(about); if ((flags & 1) != 0) { @@ -17235,9 +16961,8 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_channelFull_layer131 extends TL_channelFull { - public static final int constructor = 0x548c3f93; - + public static class TL_channelFull_layer139 extends ChatFull { + public static final int constructor = 0xe13c3d20; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -17272,7 +16997,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 8388608) != 0) { - exported_invite = (TL_chatInviteExported) ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); + exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); } int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { @@ -17345,6 +17070,41 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 67108864) != 0) { groupcall_default_join_as = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags & 134217728) != 0) { + theme_emoticon = stream.readString(exception); + } + if ((flags & 268435456) != 0) { + requests_pending = stream.readInt32(exception); + } + if ((flags & 268435456) != 0) { + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + recent_requesters.add(stream.readInt64(exception)); + } + } + if ((flags & 536870912) != 0) { + default_send_as = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 1073741824) != 0) { + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + available_reactions_legacy.add(stream.readString(exception)); + } + } } public void serializeToStream(AbstractSerializedData stream) { @@ -17440,11 +17200,36 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 67108864) != 0) { groupcall_default_join_as.serializeToStream(stream); } + if ((flags & 134217728) != 0) { + stream.writeString(theme_emoticon); + } + if ((flags & 268435456) != 0) { + stream.writeInt32(requests_pending); + } + if ((flags & 268435456) != 0) { + stream.writeInt32(0x1cb5c415); + count = recent_requesters.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + stream.writeInt64(recent_requesters.get(a)); + } + } + if ((flags & 536870912) != 0) { + default_send_as.serializeToStream(stream); + } + if ((flags & 1073741824) != 0) { + stream.writeInt32(0x1cb5c415); + count = available_reactions_legacy.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + stream.writeString(available_reactions_legacy.get(a)); + } + } } } - public static class TL_channelFull_layer122 extends TL_channelFull { - public static final int constructor = 0xef3a6acd; + public static class TL_channelFull_layer131 extends TL_channelFull { + public static final int constructor = 0x548c3f93; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -17457,7 +17242,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { has_scheduled = (flags & 524288) != 0; can_view_stats = (flags & 1048576) != 0; blocked = (flags & 4194304) != 0; - id = stream.readInt32(exception); + id = stream.readInt64(exception); about = stream.readString(exception); if ((flags & 1) != 0) { participants_count = stream.readInt32(exception); @@ -17479,9 +17264,8 @@ public void readParams(AbstractSerializedData stream, boolean exception) { unread_count = stream.readInt32(exception); chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); - ExportedChatInvite invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); - if (invite instanceof TL_chatInviteExported) { - exported_invite = (TL_chatInviteExported) invite; + if ((flags & 8388608) != 0) { + exported_invite = (TL_chatInviteExported) ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); } int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { @@ -17499,7 +17283,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { bot_info.add(object); } if ((flags & 16) != 0) { - migrated_from_chat_id = stream.readInt32(exception); + migrated_from_chat_id = stream.readInt64(exception); } if ((flags & 16) != 0) { migrated_from_max_id = stream.readInt32(exception); @@ -17517,7 +17301,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { folder_id = stream.readInt32(exception); } if ((flags & 16384) != 0) { - linked_chat_id = stream.readInt32(exception); + linked_chat_id = stream.readInt64(exception); } if ((flags & 32768) != 0) { location = ChannelLocation.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -17535,6 +17319,25 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 2097152) != 0) { call = TL_inputGroupCall.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags & 16777216) != 0) { + ttl_period = stream.readInt32(exception); + } + if ((flags & 33554432) != 0) { + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + pending_suggestions.add(stream.readString(exception)); + } + } + if ((flags & 67108864) != 0) { + groupcall_default_join_as = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -17548,7 +17351,7 @@ public void serializeToStream(AbstractSerializedData stream) { flags = can_view_stats ? (flags | 1048576) : (flags &~ 1048576); flags = blocked ? (flags | 4194304) : (flags &~ 4194304); stream.writeInt32(flags); - stream.writeInt32((int) id); + stream.writeInt64(id); stream.writeString(about); if ((flags & 1) != 0) { stream.writeInt32(participants_count); @@ -17570,10 +17373,8 @@ public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(unread_count); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); - if (exported_invite != null) { + if ((flags & 8388608) != 0) { exported_invite.serializeToStream(stream); - } else { - new TLRPC.TL_chatInviteEmpty_layer122().serializeToStream(stream); } stream.writeInt32(0x1cb5c415); int count = bot_info.size(); @@ -17582,7 +17383,7 @@ public void serializeToStream(AbstractSerializedData stream) { bot_info.get(a).serializeToStream(stream); } if ((flags & 16) != 0) { - stream.writeInt32((int) migrated_from_chat_id); + stream.writeInt64(migrated_from_chat_id); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_max_id); @@ -17600,7 +17401,7 @@ public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(folder_id); } if ((flags & 16384) != 0) { - stream.writeInt32((int) linked_chat_id); + stream.writeInt64(linked_chat_id); } if ((flags & 32768) != 0) { location.serializeToStream(stream); @@ -17618,11 +17419,25 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 2097152) != 0) { call.serializeToStream(stream); } + if ((flags & 16777216) != 0) { + stream.writeInt32(ttl_period); + } + if ((flags & 33554432) != 0) { + stream.writeInt32(0x1cb5c415); + count = pending_suggestions.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + stream.writeString(pending_suggestions.get(a)); + } + } + if ((flags & 67108864) != 0) { + groupcall_default_join_as.serializeToStream(stream); + } } } - public static class TL_channelFull_layer121 extends TL_channelFull { - public static final int constructor = 0xf0e6672a; + public static class TL_channelFull_layer122 extends TL_channelFull { + public static final int constructor = 0xef3a6acd; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -17710,6 +17525,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { stats_dc = stream.readInt32(exception); } pts = stream.readInt32(exception); + if ((flags & 2097152) != 0) { + call = TL_inputGroupCall.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -17745,7 +17563,11 @@ public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(unread_count); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); - exported_invite.serializeToStream(stream); + if (exported_invite != null) { + exported_invite.serializeToStream(stream); + } else { + new TLRPC.TL_chatInviteEmpty_layer122().serializeToStream(stream); + } stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); @@ -17786,11 +17608,14 @@ public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(stats_dc); } stream.writeInt32(pts); + if ((flags & 2097152) != 0) { + call.serializeToStream(stream); + } } } - public static class TL_channelFull_layer103 extends TL_channelFull { - public static final int constructor = 0x10916653; + public static class TL_channelFull_layer121 extends TL_channelFull { + public static final int constructor = 0xf0e6672a; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -17799,8 +17624,10 @@ public void readParams(AbstractSerializedData stream, boolean exception) { can_set_username = (flags & 64) != 0; can_set_stickers = (flags & 128) != 0; hidden_prehistory = (flags & 1024) != 0; - can_view_stats = (flags & 4096) != 0; can_set_location = (flags & 65536) != 0; + has_scheduled = (flags & 524288) != 0; + can_view_stats = (flags & 1048576) != 0; + blocked = (flags & 4194304) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { @@ -17866,6 +17693,15 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 32768) != 0) { location = ChannelLocation.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags & 131072) != 0) { + slowmode_seconds = stream.readInt32(exception); + } + if ((flags & 262144) != 0) { + slowmode_next_send_date = stream.readInt32(exception); + } + if ((flags & 4096) != 0) { + stats_dc = stream.readInt32(exception); + } pts = stream.readInt32(exception); } @@ -17875,8 +17711,10 @@ public void serializeToStream(AbstractSerializedData stream) { flags = can_set_username ? (flags | 64) : (flags &~ 64); flags = can_set_stickers ? (flags | 128) : (flags &~ 128); flags = hidden_prehistory ? (flags | 1024) : (flags &~ 1024); - flags = can_view_stats ? (flags | 4096) : (flags &~ 4096); flags = can_set_location ? (flags | 65536) : (flags &~ 65536); + flags = has_scheduled ? (flags | 524288) : (flags &~ 524288); + flags = can_view_stats ? (flags | 1048576) : (flags &~ 1048576); + flags = blocked ? (flags | 4194304) : (flags &~ 4194304); stream.writeInt32(flags); stream.writeInt32((int) id); stream.writeString(about); @@ -17931,12 +17769,21 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 32768) != 0) { location.serializeToStream(stream); } + if ((flags & 131072) != 0) { + stream.writeInt32(slowmode_seconds); + } + if ((flags & 262144) != 0) { + stream.writeInt32(slowmode_next_send_date); + } + if ((flags & 4096) != 0) { + stream.writeInt32(stats_dc); + } stream.writeInt32(pts); } } - public static class TL_channelFull_layer101 extends TL_channelFull { - public static final int constructor = 0x9882e516; + public static class TL_channelFull_layer103 extends TL_channelFull { + public static final int constructor = 0x10916653; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -17946,6 +17793,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { can_set_stickers = (flags & 128) != 0; hidden_prehistory = (flags & 1024) != 0; can_view_stats = (flags & 4096) != 0; + can_set_location = (flags & 65536) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { @@ -18005,9 +17853,12 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 2048) != 0) { folder_id = stream.readInt32(exception); } - if ((flags & 8192) != 0) { + if ((flags & 16384) != 0) { linked_chat_id = stream.readInt32(exception); } + if ((flags & 32768) != 0) { + location = ChannelLocation.TLdeserialize(stream, stream.readInt32(exception), exception); + } pts = stream.readInt32(exception); } @@ -18018,6 +17869,7 @@ public void serializeToStream(AbstractSerializedData stream) { flags = can_set_stickers ? (flags | 128) : (flags &~ 128); flags = hidden_prehistory ? (flags | 1024) : (flags &~ 1024); flags = can_view_stats ? (flags | 4096) : (flags &~ 4096); + flags = can_set_location ? (flags | 65536) : (flags &~ 65536); stream.writeInt32(flags); stream.writeInt32((int) id); stream.writeString(about); @@ -18066,15 +17918,18 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 2048) != 0) { stream.writeInt32(folder_id); } - if ((flags & 8192) != 0) { + if ((flags & 16384) != 0) { stream.writeInt32((int) linked_chat_id); } + if ((flags & 32768) != 0) { + location.serializeToStream(stream); + } stream.writeInt32(pts); } } - public static class TL_channelFull_layer99 extends TL_channelFull { - public static final int constructor = 0x3648977; + public static class TL_channelFull_layer101 extends TL_channelFull { + public static final int constructor = 0x9882e516; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -18143,6 +17998,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 2048) != 0) { folder_id = stream.readInt32(exception); } + if ((flags & 8192) != 0) { + linked_chat_id = stream.readInt32(exception); + } pts = stream.readInt32(exception); } @@ -18201,12 +18059,15 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 2048) != 0) { stream.writeInt32(folder_id); } + if ((flags & 8192) != 0) { + stream.writeInt32((int) linked_chat_id); + } stream.writeInt32(pts); } } - public static class TL_channelFull_layer98 extends TL_channelFull { - public static final int constructor = 0x1c87a71a; + public static class TL_channelFull_layer99 extends TL_channelFull { + public static final int constructor = 0x3648977; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -18272,6 +18133,10 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 512) != 0) { available_min_id = stream.readInt32(exception); } + if ((flags & 2048) != 0) { + folder_id = stream.readInt32(exception); + } + pts = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { @@ -18326,57 +18191,15 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 512) != 0) { stream.writeInt32(available_min_id); } - } - } - - public static class TL_chatFull_layer87 extends TL_chatFull { - public static final int constructor = 0x2e02a614; - - - public void readParams(AbstractSerializedData stream, boolean exception) { - id = stream.readInt32(exception); - participants = ChatParticipants.TLdeserialize(stream, stream.readInt32(exception), exception); - chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); - notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); - ExportedChatInvite invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); - if (invite instanceof TL_chatInviteExported) { - exported_invite = (TL_chatInviteExported) invite; - } - int magic = stream.readInt32(exception); - if (magic != 0x1cb5c415) { - if (exception) { - throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); - } - return; - } - int count = stream.readInt32(exception); - for (int a = 0; a < count; a++) { - BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); - if (object == null) { - return; - } - bot_info.add(object); - } - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeInt32((int) id); - participants.serializeToStream(stream); - chat_photo.serializeToStream(stream); - notify_settings.serializeToStream(stream); - exported_invite.serializeToStream(stream); - stream.writeInt32(0x1cb5c415); - int count = bot_info.size(); - stream.writeInt32(count); - for (int a = 0; a < count; a++) { - bot_info.get(a).serializeToStream(stream); + if ((flags & 2048) != 0) { + stream.writeInt32(folder_id); } + stream.writeInt32(pts); } } - public static class TL_channelFull_layer89 extends TL_channelFull { - public static final int constructor = 0xcbb62890; + public static class TL_channelFull_layer98 extends TL_channelFull { + public static final int constructor = 0x1c87a71a; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -18385,6 +18208,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { can_set_username = (flags & 64) != 0; can_set_stickers = (flags & 128) != 0; hidden_prehistory = (flags & 1024) != 0; + can_view_stats = (flags & 4096) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { @@ -18399,6 +18223,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 4) != 0) { banned_count = stream.readInt32(exception); } + if ((flags & 8192) != 0) { + online_count = stream.readInt32(exception); + } read_inbox_max_id = stream.readInt32(exception); read_outbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); @@ -18438,9 +18265,6 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 512) != 0) { available_min_id = stream.readInt32(exception); } - if ((flags & 2048) != 0) { - call_msg_id = stream.readInt32(exception); - } } public void serializeToStream(AbstractSerializedData stream) { @@ -18449,6 +18273,7 @@ public void serializeToStream(AbstractSerializedData stream) { flags = can_set_username ? (flags | 64) : (flags &~ 64); flags = can_set_stickers ? (flags | 128) : (flags &~ 128); flags = hidden_prehistory ? (flags | 1024) : (flags &~ 1024); + flags = can_view_stats ? (flags | 4096) : (flags &~ 4096); stream.writeInt32(flags); stream.writeInt32((int) id); stream.writeString(about); @@ -18464,6 +18289,9 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 4) != 0) { stream.writeInt32(banned_count); } + if ((flags & 8192) != 0) { + stream.writeInt32(online_count); + } stream.writeInt32(read_inbox_max_id); stream.writeInt32(read_outbox_max_id); stream.writeInt32(unread_count); @@ -18491,14 +18319,57 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 512) != 0) { stream.writeInt32(available_min_id); } - if ((flags & 2048) != 0) { - stream.writeInt32(call_msg_id); + } + } + + public static class TL_chatFull_layer87 extends TL_chatFull { + public static final int constructor = 0x2e02a614; + + + public void readParams(AbstractSerializedData stream, boolean exception) { + id = stream.readInt32(exception); + participants = ChatParticipants.TLdeserialize(stream, stream.readInt32(exception), exception); + chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); + notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); + ExportedChatInvite invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); + if (invite instanceof TL_chatInviteExported) { + exported_invite = (TL_chatInviteExported) invite; + } + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + bot_info.add(object); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32((int) id); + participants.serializeToStream(stream); + chat_photo.serializeToStream(stream); + notify_settings.serializeToStream(stream); + exported_invite.serializeToStream(stream); + stream.writeInt32(0x1cb5c415); + int count = bot_info.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + bot_info.get(a).serializeToStream(stream); } } } - public static class TL_channelFull_layer72 extends TL_channelFull { - public static final int constructor = 0x76af5481; + public static class TL_channelFull_layer89 extends TL_channelFull { + public static final int constructor = 0xcbb62890; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -18560,6 +18431,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 512) != 0) { available_min_id = stream.readInt32(exception); } + if ((flags & 2048) != 0) { + call_msg_id = stream.readInt32(exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -18610,11 +18484,130 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 512) != 0) { stream.writeInt32(available_min_id); } + if ((flags & 2048) != 0) { + stream.writeInt32(call_msg_id); + } } } - public static class TL_channelFull_layer71 extends TL_channelFull { - public static final int constructor = 0x17f45fcf; + public static class TL_channelFull_layer72 extends TL_channelFull { + public static final int constructor = 0x76af5481; + + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + can_view_participants = (flags & 8) != 0; + can_set_username = (flags & 64) != 0; + can_set_stickers = (flags & 128) != 0; + hidden_prehistory = (flags & 1024) != 0; + id = stream.readInt32(exception); + about = stream.readString(exception); + if ((flags & 1) != 0) { + participants_count = stream.readInt32(exception); + } + if ((flags & 2) != 0) { + admins_count = stream.readInt32(exception); + } + if ((flags & 4) != 0) { + kicked_count = stream.readInt32(exception); + } + if ((flags & 4) != 0) { + banned_count = stream.readInt32(exception); + } + read_inbox_max_id = stream.readInt32(exception); + read_outbox_max_id = stream.readInt32(exception); + unread_count = stream.readInt32(exception); + chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); + notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); + ExportedChatInvite invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); + if (invite instanceof TL_chatInviteExported) { + exported_invite = (TL_chatInviteExported) invite; + } + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + bot_info.add(object); + } + if ((flags & 16) != 0) { + migrated_from_chat_id = stream.readInt32(exception); + } + if ((flags & 16) != 0) { + migrated_from_max_id = stream.readInt32(exception); + } + if ((flags & 32) != 0) { + pinned_msg_id = stream.readInt32(exception); + } + if ((flags & 256) != 0) { + stickerset = StickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 512) != 0) { + available_min_id = stream.readInt32(exception); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = can_view_participants ? (flags | 8) : (flags &~ 8); + flags = can_set_username ? (flags | 64) : (flags &~ 64); + flags = can_set_stickers ? (flags | 128) : (flags &~ 128); + flags = hidden_prehistory ? (flags | 1024) : (flags &~ 1024); + stream.writeInt32(flags); + stream.writeInt32((int) id); + stream.writeString(about); + if ((flags & 1) != 0) { + stream.writeInt32(participants_count); + } + if ((flags & 2) != 0) { + stream.writeInt32(admins_count); + } + if ((flags & 4) != 0) { + stream.writeInt32(kicked_count); + } + if ((flags & 4) != 0) { + stream.writeInt32(banned_count); + } + stream.writeInt32(read_inbox_max_id); + stream.writeInt32(read_outbox_max_id); + stream.writeInt32(unread_count); + chat_photo.serializeToStream(stream); + notify_settings.serializeToStream(stream); + exported_invite.serializeToStream(stream); + stream.writeInt32(0x1cb5c415); + int count = bot_info.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + bot_info.get(a).serializeToStream(stream); + } + if ((flags & 16) != 0) { + stream.writeInt32((int) migrated_from_chat_id); + } + if ((flags & 16) != 0) { + stream.writeInt32(migrated_from_max_id); + } + if ((flags & 32) != 0) { + stream.writeInt32(pinned_msg_id); + } + if ((flags & 256) != 0) { + stickerset.serializeToStream(stream); + } + if ((flags & 512) != 0) { + stream.writeInt32(available_min_id); + } + } + } + + public static class TL_channelFull_layer71 extends TL_channelFull { + public static final int constructor = 0x17f45fcf; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -19730,37 +19723,6 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_stats_messageStats extends TLObject { - public final static int constructor = 0x7fe91c14; - - public StatsGraph views_graph; - public StatsGraph reactions_by_emotion_graph; - - public static TL_stats_messageStats TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_stats_messageStats.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_stats_messageStats", constructor)); - } else { - return null; - } - } - TL_stats_messageStats result = new TL_stats_messageStats(); - result.readParams(stream, exception); - return result; - } - - public void readParams(AbstractSerializedData stream, boolean exception) { - views_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - reactions_by_emotion_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - views_graph.serializeToStream(stream); - reactions_by_emotion_graph.serializeToStream(stream); - } - } - public static abstract class BaseTheme extends TLObject { public static BaseTheme TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { @@ -24271,6 +24233,7 @@ public static abstract class PhoneCall extends TLObject { public byte[] g_a_hash; public byte[] g_b; public int receive_date; + public TL_dataJSON custom_parameters; public static PhoneCall TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PhoneCall result = null; @@ -24278,9 +24241,12 @@ public static PhoneCall TLdeserialize(AbstractSerializedData stream, int constru case 0x14b0ed0c: result = new TL_phoneCallRequested(); break; - case 0x967f7c67: + case 0x30535af5: result = new TL_phoneCall(); break; + case 0x967f7c67: + result = new TL_phoneCall_layer176(); + break; case 0x5366c915: result = new TL_phoneCallEmpty(); break; @@ -24335,6 +24301,69 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_phoneCall extends PhoneCall { + public static final int constructor = 0x30535af5; + + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + p2p_allowed = (flags & 32) != 0; + video = (flags & 64) != 0; + id = stream.readInt64(exception); + access_hash = stream.readInt64(exception); + date = stream.readInt32(exception); + admin_id = stream.readInt64(exception); + participant_id = stream.readInt64(exception); + g_a_or_b = stream.readByteArray(exception); + key_fingerprint = stream.readInt64(exception); + protocol = PhoneCallProtocol.TLdeserialize(stream, stream.readInt32(exception), exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + PhoneConnection object = PhoneConnection.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + connections.add(object); + } + start_date = stream.readInt32(exception); + if ((flags & 128) != 0) { + custom_parameters = TL_dataJSON.TLdeserialize(stream, stream.readInt32(exception), exception); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = p2p_allowed ? (flags | 32) : (flags &~ 32); + flags = video ? (flags | 64) : (flags &~ 64); + stream.writeInt32(flags); + stream.writeInt64(id); + stream.writeInt64(access_hash); + stream.writeInt32(date); + stream.writeInt64(admin_id); + stream.writeInt64(participant_id); + stream.writeByteArray(g_a_or_b); + stream.writeInt64(key_fingerprint); + protocol.serializeToStream(stream); + stream.writeInt32(0x1cb5c415); + int count = connections.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + connections.get(a).serializeToStream(stream); + } + stream.writeInt32(start_date); + if ((flags & 128) != 0) { + custom_parameters.serializeToStream(stream); + } + } + } + + public static class TL_phoneCall_layer176 extends TL_phoneCall { public static final int constructor = 0x967f7c67; @@ -24590,6 +24619,7 @@ public static abstract class User extends TLObject { public boolean bot_chat_history; public boolean bot_nochats; public boolean bot_can_edit; + public boolean bot_business; public boolean verified; public boolean restricted; public boolean min; @@ -24802,6 +24832,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { stories_hidden = (flags2 & 8) != 0; stories_unavailable = (flags2 & 16) != 0; contact_require_premium = (flags2 & 1024) != 0; + bot_business = (flags2 & 2048) != 0; id = stream.readInt64(exception); if ((flags & 1) != 0) { access_hash = stream.readInt64(exception); @@ -24914,6 +24945,7 @@ public void serializeToStream(AbstractSerializedData stream) { flags2 = stories_hidden ? (flags2 | 8) : (flags2 &~ 8); flags2 = stories_unavailable ? (flags2 | 16) : (flags2 &~ 16); flags2 = contact_require_premium ? (flags2 | 1024) : (flags2 &~ 1024); + flags2 = bot_business ? (flags2 | 2048) : (flags2 &~ 2048); stream.writeInt32(flags2); stream.writeInt64(id); if ((flags & 1) != 0) { @@ -26634,71 +26666,6 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_statsGroupTopPoster extends TLObject { - public static final int constructor = 0x9d04af9b; - - public long user_id; - public int messages; - public int avg_chars; - - public static TL_statsGroupTopPoster TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_statsGroupTopPoster.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_statsGroupTopPoster", constructor)); - } else { - return null; - } - } - TL_statsGroupTopPoster result = new TL_statsGroupTopPoster(); - result.readParams(stream, exception); - return result; - } - - public void readParams(AbstractSerializedData stream, boolean exception) { - user_id = stream.readInt64(exception); - messages = stream.readInt32(exception); - avg_chars = stream.readInt32(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeInt64(user_id); - stream.writeInt32(messages); - stream.writeInt32(avg_chars); - } - } - - public static class TL_statsDateRangeDays extends TLObject { - public static final int constructor = 0xb637edaf; - - public int min_date; - public int max_date; - - public static TL_statsDateRangeDays TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_statsDateRangeDays.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_statsDateRangeDays", constructor)); - } else { - return null; - } - } - TL_statsDateRangeDays result = new TL_statsDateRangeDays(); - result.readParams(stream, exception); - return result; - } - - public void readParams(AbstractSerializedData stream, boolean exception) { - min_date = stream.readInt32(exception); - max_date = stream.readInt32(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeInt32(min_date); - stream.writeInt32(max_date); - } - } - public static class TL_payments_bankCardData extends TLObject { public static final int constructor = 0x3e24e573; @@ -30810,116 +30777,6 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_stats_broadcastStats extends TLObject { - public static int constructor = 0x396ca5fc; - - public TL_statsDateRangeDays period; - public TL_statsAbsValueAndPrev followers; - public TL_statsAbsValueAndPrev views_per_post; - public TL_statsAbsValueAndPrev shares_per_post; - public TL_statsAbsValueAndPrev reactions_per_post; - public TL_statsAbsValueAndPrev views_per_story; - public TL_statsAbsValueAndPrev shares_per_story; - public TL_statsAbsValueAndPrev reactions_per_story; - public TL_statsPercentValue enabled_notifications; - public StatsGraph growth_graph; - public StatsGraph followers_graph; - public StatsGraph mute_graph; - public StatsGraph top_hours_graph; - public StatsGraph interactions_graph; - public StatsGraph iv_interactions_graph; - public StatsGraph views_by_source_graph; - public StatsGraph new_followers_by_source_graph; - public StatsGraph languages_graph; - public StatsGraph reactions_by_emotion_graph; - public StatsGraph story_interactions_graph; - public StatsGraph story_reactions_by_emotion_graph; - public ArrayList recent_posts_interactions = new ArrayList<>(); - - public static TL_stats_broadcastStats TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_stats_broadcastStats.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_stats_broadcastStats", constructor)); - } else { - return null; - } - } - TL_stats_broadcastStats result = new TL_stats_broadcastStats(); - result.readParams(stream, exception); - return result; - } - - public void readParams(AbstractSerializedData stream, boolean exception) { - period = TL_statsDateRangeDays.TLdeserialize(stream, stream.readInt32(exception), exception); - followers = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); - views_per_post = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); - shares_per_post = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); - reactions_per_post = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); - views_per_story = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); - shares_per_story = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); - reactions_per_story = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); - enabled_notifications = TL_statsPercentValue.TLdeserialize(stream, stream.readInt32(exception), exception); - growth_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - followers_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - mute_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - top_hours_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - interactions_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - iv_interactions_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - views_by_source_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - new_followers_by_source_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - languages_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - reactions_by_emotion_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - story_interactions_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - story_reactions_by_emotion_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - int magic = stream.readInt32(exception); - if (magic != 0x1cb5c415) { - if (exception) { - throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); - } - return; - } - int count = stream.readInt32(exception); - for (int a = 0; a < count; a++) { - PostInteractionCounters object = PostInteractionCounters.TLdeserialize(stream, stream.readInt32(exception), exception); - if (object == null) { - return; - } - recent_posts_interactions.add(object); - } - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - period.serializeToStream(stream); - followers.serializeToStream(stream); - views_per_post.serializeToStream(stream); - shares_per_post.serializeToStream(stream); - reactions_per_post.serializeToStream(stream); - views_per_story.serializeToStream(stream); - shares_per_story.serializeToStream(stream); - reactions_per_story.serializeToStream(stream); - enabled_notifications.serializeToStream(stream); - growth_graph.serializeToStream(stream); - followers_graph.serializeToStream(stream); - mute_graph.serializeToStream(stream); - top_hours_graph.serializeToStream(stream); - interactions_graph.serializeToStream(stream); - iv_interactions_graph.serializeToStream(stream); - views_by_source_graph.serializeToStream(stream); - new_followers_by_source_graph.serializeToStream(stream); - languages_graph.serializeToStream(stream); - reactions_by_emotion_graph.serializeToStream(stream); - story_interactions_graph.serializeToStream(stream); - story_reactions_by_emotion_graph.serializeToStream(stream); - stream.writeInt32(0x1cb5c415); - int count = recent_posts_interactions.size(); - stream.writeInt32(count); - for (int a = 0; a < count; a++) { - recent_posts_interactions.get(a).serializeToStream(stream); - } - } - } - public static abstract class SecureValueType extends TLObject { public static SecureValueType TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { @@ -32765,6 +32622,9 @@ public static InputPrivacyRule TLdeserialize(AbstractSerializedData stream, int case 0x2f453e49: result = new TL_inputPrivacyValueAllowCloseFriends(); break; + case 0x77cdc9f1: + result = new TL_inputPrivacyValueAllowPremium(); + break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputPrivacyRule", constructor)); @@ -32948,6 +32808,14 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_inputPrivacyValueAllowPremium extends InputPrivacyRule { + public static final int constructor = 0x77cdc9f1; + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + } + } + public static class TL_maskCoords extends TLObject { public static final int constructor = 0xaed6dbb2; @@ -34448,7 +34316,7 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_messages_peerSettings extends TLObject { public static final int constructor = 0x6880b94d; - public TL_peerSettings settings; + public PeerSettings settings; public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); @@ -34466,7 +34334,7 @@ public static TL_messages_peerSettings TLdeserialize(AbstractSerializedData stre } public void readParams(AbstractSerializedData stream, boolean exception) { - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { @@ -35110,9 +34978,6 @@ public static Update TLdeserialize(AbstractSerializedData stream, int constructo case TL_updateUser.constructor: result = new TL_updateUser(); break; - case TL_updateGroupInvitePrivacyForbidden.constructor: - result = new TL_updateGroupInvitePrivacyForbidden(); - break; case TL_updateAttachMenuBots.constructor: result = new TL_updateAttachMenuBots(); break; @@ -35623,11 +35488,11 @@ public static class TL_updatePeerSettings extends Update { public static final int constructor = 0x6a7e7366; public Peer peer; - public TL_peerSettings settings; + public PeerSettings settings; public void readParams(AbstractSerializedData stream, boolean exception) { peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { @@ -42059,6 +41924,7 @@ public static class TL_sponsoredMessage extends TLObject { public int flags; public boolean recommended; public boolean show_peer_photo; + public boolean can_report; public byte[] random_id; public Peer from_id; public ChatInvite chat_invite; @@ -42090,6 +41956,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); recommended = (flags & 32) != 0; show_peer_photo = (flags & 64) != 0; + can_report = (flags & 4096) != 0; random_id = stream.readByteArray(exception); if ((flags & 8) != 0) { from_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -42145,6 +42012,7 @@ public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = recommended ? (flags | 32) : (flags &~ 32); flags = show_peer_photo ? (flags | 64) : (flags &~ 64); + flags = can_report ? (flags | 4096) : (flags &~ 4096); stream.writeInt32(flags); stream.writeByteArray(random_id); if ((flags & 8) != 0) { @@ -42189,6 +42057,134 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_sponsoredMessageReportOption extends TLObject { + public static int constructor = 0x430d3150; + + public String text; + public byte[] option; + + public static TL_sponsoredMessageReportOption TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_sponsoredMessageReportOption.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_sponsoredMessageReportOption", constructor)); + } else { + return null; + } + } + TL_sponsoredMessageReportOption result = new TL_sponsoredMessageReportOption(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + text = stream.readString(exception); + option = stream.readByteArray(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(text); + stream.writeByteArray(option); + } + } + + public static abstract class channels_SponsoredMessageReportResult extends TLObject { + + public static channels_SponsoredMessageReportResult TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + channels_SponsoredMessageReportResult result = null; + switch (constructor) { + case 0x846f9e42: + result = new TL_channels_sponsoredMessageReportResultChooseOption(); + break; + case 0x3e3bcf2f: + result = new TL_channels_sponsoredMessageReportResultAdsHidden(); + break; + case 0xad798849: + result = new TL_channels_sponsoredMessageReportResultReported(); + break; + } + if (result == null && exception) { + throw new RuntimeException(String.format("can't parse magic %x in channels_SponsoredMessageReportResult", constructor)); + } + if (result != null) { + result.readParams(stream, exception); + } + return result; + } + } + + public static class TL_channels_sponsoredMessageReportResultChooseOption extends channels_SponsoredMessageReportResult { + public static final int constructor = 0x846f9e42; + + public String title; + public ArrayList options = new ArrayList<>(); + + public void readParams(AbstractSerializedData stream, boolean exception) { + title = stream.readString(exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_sponsoredMessageReportOption object = TL_sponsoredMessageReportOption.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + options.add(object); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(title); + stream.writeInt32(0x1cb5c415); + int count = options.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + options.get(a).serializeToStream(stream); + } + } + } + + public static class TL_channels_sponsoredMessageReportResultAdsHidden extends channels_SponsoredMessageReportResult { + public static final int constructor = 0x3e3bcf2f; + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + } + } + + public static class TL_channels_sponsoredMessageReportResultReported extends channels_SponsoredMessageReportResult { + public static final int constructor = 0xad798849; + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + } + } + + public static class TL_channels_reportSponsoredMessage extends TLObject { + public static final int constructor = 0xaf8ff6b9; + + public InputChannel channel; + public byte[] random_id; + public byte[] option; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return channels_SponsoredMessageReportResult.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + channel.serializeToStream(stream); + stream.writeByteArray(random_id); + stream.writeByteArray(option); + } + } + public static class TL_account_authorizationForm extends TLObject { public static final int constructor = 0xad2e1cd8; @@ -46716,37 +46712,6 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_statsPercentValue extends TLObject { - public static final int constructor = 0xcbce2fe0; - - public double part; - public double total; - - public static TL_statsPercentValue TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_statsPercentValue.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_statsPercentValue", constructor)); - } else { - return null; - } - } - TL_statsPercentValue result = new TL_statsPercentValue(); - result.readParams(stream, exception); - return result; - } - - public void readParams(AbstractSerializedData stream, boolean exception) { - part = stream.readDouble(exception); - total = stream.readDouble(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeDouble(part); - stream.writeDouble(total); - } - } - public static class TL_autoDownloadSettings extends TLObject { public static final int constructor = 0xbaa57628; @@ -49544,9 +49509,7 @@ public static abstract class StickerSet extends TLObject { public boolean installed; public boolean archived; public boolean official; - public boolean animated; public boolean masks; - public boolean videos; public boolean emojis; public boolean text_color; public boolean channel_emoji_status; @@ -49562,6 +49525,7 @@ public static abstract class StickerSet extends TLObject { public int thumb_version; public long thumb_document_id; public boolean gifs; + public boolean creator; public static StickerSet TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { StickerSet result = null; @@ -49629,11 +49593,10 @@ public void readParams(AbstractSerializedData stream, boolean exception) { archived = (flags & 2) != 0; official = (flags & 4) != 0; masks = (flags & 8) != 0; - animated = (flags & 32) != 0; - videos = (flags & 64) != 0; emojis = (flags & 128) != 0; text_color = (flags & 512) != 0; channel_emoji_status = (flags & 1024) != 0; + creator = (flags & 2048) != 0; if ((flags & 1) != 0) { installed_date = stream.readInt32(exception); } @@ -49676,11 +49639,10 @@ public void serializeToStream(AbstractSerializedData stream) { flags = archived ? (flags | 2) : (flags &~ 2); flags = official ? (flags | 4) : (flags &~ 4); flags = masks ? (flags | 8) : (flags &~ 8); - flags = animated ? (flags | 32) : (flags &~ 32); - flags = videos ? (flags | 64) : (flags &~ 64); flags = emojis ? (flags | 128) : (flags &~ 128); flags = text_color ? (flags | 512) : (flags &~ 512); flags = channel_emoji_status ? (flags | 1024) : (flags &~ 1024); + flags = creator ? (flags | 2048) : (flags &~ 2048); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(installed_date); @@ -49719,8 +49681,6 @@ public void readParams(AbstractSerializedData stream, boolean exception) { archived = (flags & 2) != 0; official = (flags & 4) != 0; masks = (flags & 8) != 0; - animated = (flags & 32) != 0; - videos = (flags & 64) != 0; emojis = (flags & 128) != 0; if ((flags & 1) != 0) { installed_date = stream.readInt32(exception); @@ -49764,8 +49724,6 @@ public void serializeToStream(AbstractSerializedData stream) { flags = archived ? (flags | 2) : (flags &~ 2); flags = official ? (flags | 4) : (flags &~ 4); flags = masks ? (flags | 8) : (flags &~ 8); - flags = animated ? (flags | 32) : (flags &~ 32); - flags = videos ? (flags | 64) : (flags &~ 64); flags = emojis ? (flags | 128) : (flags &~ 128); stream.writeInt32(flags); if ((flags & 1) != 0) { @@ -49891,7 +49849,6 @@ public void readParams(AbstractSerializedData stream, boolean exception) { archived = (flags & 2) != 0; official = (flags & 4) != 0; masks = (flags & 8) != 0; - animated = (flags & 32) != 0; if ((flags & 1) != 0) { installed_date = stream.readInt32(exception); } @@ -49928,7 +49885,6 @@ public void serializeToStream(AbstractSerializedData stream) { flags = archived ? (flags | 2) : (flags &~ 2); flags = official ? (flags | 4) : (flags &~ 4); flags = masks ? (flags | 8) : (flags &~ 8); - flags = animated ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(installed_date); @@ -49962,7 +49918,6 @@ public void readParams(AbstractSerializedData stream, boolean exception) { archived = (flags & 2) != 0; official = (flags & 4) != 0; masks = (flags & 8) != 0; - animated = (flags & 32) != 0; if ((flags & 1) != 0) { installed_date = stream.readInt32(exception); } @@ -49988,7 +49943,6 @@ public void serializeToStream(AbstractSerializedData stream) { flags = archived ? (flags | 2) : (flags &~ 2); flags = official ? (flags | 4) : (flags &~ 4); flags = masks ? (flags | 8) : (flags &~ 8); - flags = animated ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(installed_date); @@ -52290,7 +52244,7 @@ public static abstract class UserFull extends TLObject { public int common_chats_count; public int folder_id; public int ttl_period; - public TL_peerSettings settings; + public PeerSettings settings; public String theme_emoticon; public long id; public String private_forward_name; @@ -52304,6 +52258,10 @@ public static abstract class UserFull extends TLObject { public TL_businessLocation business_location; public TL_businessGreetingMessage business_greeting_message; public TL_businessAwayMessage business_away_message; + public TL_businessIntro business_intro; + public TL_birthday birthday; + public long personal_channel_id; + public int personal_channel_message; public static UserFull TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { UserFull result = null; @@ -52311,6 +52269,15 @@ public static UserFull TLdeserialize(AbstractSerializedData stream, int construc case TL_userFull.constructor: result = new TL_userFull(); break; + case TL_userFull_layer176_3.constructor: + result = new TL_userFull_layer176_3(); + break; + case TL_userFull_layer176_2.constructor: + result = new TL_userFull_layer176_2(); + break; + case TL_userFull_layer176.constructor: + result = new TL_userFull_layer176(); + break; case TL_userFull_layer175.constructor: result = new TL_userFull_layer175(); break; @@ -52362,7 +52329,7 @@ public static UserFull TLdeserialize(AbstractSerializedData stream, int construc } public static class TL_userFull extends UserFull { - public static final int constructor = 0x22ff3e85; + public static final int constructor = 0xcc997720; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -52384,7 +52351,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 2097152) != 0) { personal_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -52455,6 +52422,16 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags2 & 8) != 0) { business_away_message = TL_businessAwayMessage.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags2 & 16) != 0) { + business_intro = TL_businessIntro.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 32) != 0) { + birthday = TL_birthday.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 64) != 0) { + personal_channel_id = stream.readInt64(exception); + personal_channel_message = stream.readInt32(exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -52540,11 +52517,21 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags2 & 8) != 0) { business_away_message.serializeToStream(stream); } + if ((flags2 & 16) != 0) { + business_intro.serializeToStream(stream); + } + if ((flags2 & 32) != 0) { + birthday.serializeToStream(stream); + } + if ((flags2 & 64) != 0) { + stream.writeInt64(personal_channel_id); + stream.writeInt32(personal_channel_message); + } } } - public static class TL_userFull_layer175 extends TL_userFull { - public static final int constructor = 0xb9b12c6c; + public static class TL_userFull_layer176_3 extends TL_userFull { + public static final int constructor = 0xecdadceb; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -52561,11 +52548,12 @@ public void readParams(AbstractSerializedData stream, boolean exception) { wallpaper_overridden = (flags & 268435456) != 0; contact_require_premium = (flags & 536870912) != 0; read_dates_private = (flags & 1073741824) != 0; + flags2 = stream.readInt32(exception); id = stream.readInt64(exception); if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 2097152) != 0) { personal_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -52624,6 +52612,24 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 33554432) != 0) { stories = TL_stories.PeerStories.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags2 & 1) != 0) { + business_work_hours = TL_businessWorkHours.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 2) != 0) { + business_location = TL_businessLocation.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 4) != 0) { + business_greeting_message = TL_businessGreetingMessage.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 8) != 0) { + business_away_message = TL_businessAwayMessage.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 16) != 0) { + business_intro = TL_businessIntro.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 32) != 0) { + birthday = TL_birthday.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -52642,6 +52648,7 @@ public void serializeToStream(AbstractSerializedData stream) { flags = contact_require_premium ? (flags | 536870912) : (flags &~ 536870912); flags = read_dates_private ? (flags | 1073741824) : (flags &~ 1073741824); stream.writeInt32(flags); + stream.writeInt32(flags2); stream.writeInt64(id); if ((flags & 2) != 0) { stream.writeString(about); @@ -52696,11 +52703,29 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 33554432) != 0) { stories.serializeToStream(stream); } + if ((flags2 & 1) != 0) { + business_work_hours.serializeToStream(stream); + } + if ((flags2 & 2) != 0) { + business_location.serializeToStream(stream); + } + if ((flags2 & 4) != 0) { + business_greeting_message.serializeToStream(stream); + } + if ((flags2 & 8) != 0) { + business_away_message.serializeToStream(stream); + } + if ((flags2 & 16) != 0) { + business_intro.serializeToStream(stream); + } + if ((flags2 & 32) != 0) { + birthday.serializeToStream(stream); + } } } - public static class TL_userFull_layer162 extends UserFull { - public static final int constructor = 0x4fe1cc86; + public static class TL_userFull_layer176_2 extends TL_userFull { + public static final int constructor = 0x670bbc9c; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -52714,11 +52739,15 @@ public void readParams(AbstractSerializedData stream, boolean exception) { translations_disabled = (flags & 8388608) != 0; stories_pinned_available = (flags & 67108864) != 0; blocked_my_stories_from = (flags & 134217728) != 0; + wallpaper_overridden = (flags & 268435456) != 0; + contact_require_premium = (flags & 536870912) != 0; + read_dates_private = (flags & 1073741824) != 0; + flags2 = stream.readInt32(exception); id = stream.readInt64(exception); if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 2097152) != 0) { personal_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -52777,6 +52806,21 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 33554432) != 0) { stories = TL_stories.PeerStories.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags2 & 1) != 0) { + business_work_hours = TL_businessWorkHours.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 2) != 0) { + business_location = TL_businessLocation.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 4) != 0) { + business_greeting_message = TL_businessGreetingMessage.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 8) != 0) { + business_away_message = TL_businessAwayMessage.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 16) != 0) { + business_intro = TL_businessIntro.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -52791,7 +52835,11 @@ public void serializeToStream(AbstractSerializedData stream) { flags = translations_disabled ? (flags | 8388608) : (flags &~ 8388608); flags = stories_pinned_available ? (flags | 67108864) : (flags &~ 67108864); flags = blocked_my_stories_from ? (flags | 134217728) : (flags &~ 134217728); + flags = wallpaper_overridden ? (flags | 268435456) : (flags &~ 268435456); + flags = contact_require_premium ? (flags | 536870912) : (flags &~ 536870912); + flags = read_dates_private ? (flags | 1073741824) : (flags &~ 1073741824); stream.writeInt32(flags); + stream.writeInt32(flags2); stream.writeInt64(id); if ((flags & 2) != 0) { stream.writeString(about); @@ -52846,11 +52894,26 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 33554432) != 0) { stories.serializeToStream(stream); } + if ((flags2 & 1) != 0) { + business_work_hours.serializeToStream(stream); + } + if ((flags2 & 2) != 0) { + business_location.serializeToStream(stream); + } + if ((flags2 & 4) != 0) { + business_greeting_message.serializeToStream(stream); + } + if ((flags2 & 8) != 0) { + business_away_message.serializeToStream(stream); + } + if ((flags2 & 16) != 0) { + business_intro.serializeToStream(stream); + } } } - public static class TL_userFull_layer159 extends UserFull { - public static final int constructor = 0x93eadb53; + public static class TL_userFull_layer176 extends TL_userFull { + public static final int constructor = 0x22ff3e85; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -52862,11 +52925,17 @@ public void readParams(AbstractSerializedData stream, boolean exception) { video_calls_available = (flags & 8192) != 0; voice_messages_forbidden = (flags & 1048576) != 0; translations_disabled = (flags & 8388608) != 0; + stories_pinned_available = (flags & 67108864) != 0; + blocked_my_stories_from = (flags & 134217728) != 0; + wallpaper_overridden = (flags & 268435456) != 0; + contact_require_premium = (flags & 536870912) != 0; + read_dates_private = (flags & 1073741824) != 0; + flags2 = stream.readInt32(exception); id = stream.readInt64(exception); if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 2097152) != 0) { personal_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -52922,6 +52991,21 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 16777216) != 0) { wallpaper = WallPaper.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags & 33554432) != 0) { + stories = TL_stories.PeerStories.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 1) != 0) { + business_work_hours = TL_businessWorkHours.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 2) != 0) { + business_location = TL_businessLocation.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 4) != 0) { + business_greeting_message = TL_businessGreetingMessage.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags2 & 8) != 0) { + business_away_message = TL_businessAwayMessage.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -52934,7 +53018,13 @@ public void serializeToStream(AbstractSerializedData stream) { flags = video_calls_available ? (flags | 8192) : (flags &~ 8192); flags = voice_messages_forbidden ? (flags | 1048576) : (flags &~ 1048576); flags = translations_disabled ? (flags | 8388608) : (flags &~ 8388608); + flags = stories_pinned_available ? (flags | 67108864) : (flags &~ 67108864); + flags = blocked_my_stories_from ? (flags | 134217728) : (flags &~ 134217728); + flags = wallpaper_overridden ? (flags | 268435456) : (flags &~ 268435456); + flags = contact_require_premium ? (flags | 536870912) : (flags &~ 536870912); + flags = read_dates_private ? (flags | 1073741824) : (flags &~ 1073741824); stream.writeInt32(flags); + stream.writeInt32(flags2); stream.writeInt64(id); if ((flags & 2) != 0) { stream.writeString(about); @@ -52986,11 +53076,25 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 16777216) != 0) { wallpaper.serializeToStream(stream); } + if ((flags & 33554432) != 0) { + stories.serializeToStream(stream); + } + if ((flags2 & 1) != 0) { + business_work_hours.serializeToStream(stream); + } + if ((flags2 & 2) != 0) { + business_location.serializeToStream(stream); + } + if ((flags2 & 4) != 0) { + business_greeting_message.serializeToStream(stream); + } + if ((flags2 & 8) != 0) { + business_away_message.serializeToStream(stream); + } } } - - public static class TL_userFull_layer156 extends UserFull { - public static final int constructor = 0xf8d32aed; + public static class TL_userFull_layer175 extends TL_userFull { + public static final int constructor = 0xb9b12c6c; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -53002,11 +53106,16 @@ public void readParams(AbstractSerializedData stream, boolean exception) { video_calls_available = (flags & 8192) != 0; voice_messages_forbidden = (flags & 1048576) != 0; translations_disabled = (flags & 8388608) != 0; + stories_pinned_available = (flags & 67108864) != 0; + blocked_my_stories_from = (flags & 134217728) != 0; + wallpaper_overridden = (flags & 268435456) != 0; + contact_require_premium = (flags & 536870912) != 0; + read_dates_private = (flags & 1073741824) != 0; id = stream.readInt64(exception); if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 2097152) != 0) { personal_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -53059,6 +53168,12 @@ public void readParams(AbstractSerializedData stream, boolean exception) { premium_gifts.add(object); } } + if ((flags & 16777216) != 0) { + wallpaper = WallPaper.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 33554432) != 0) { + stories = TL_stories.PeerStories.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -53071,6 +53186,11 @@ public void serializeToStream(AbstractSerializedData stream) { flags = video_calls_available ? (flags | 8192) : (flags &~ 8192); flags = voice_messages_forbidden ? (flags | 1048576) : (flags &~ 1048576); flags = translations_disabled ? (flags | 8388608) : (flags &~ 8388608); + flags = stories_pinned_available ? (flags | 67108864) : (flags &~ 67108864); + flags = blocked_my_stories_from ? (flags | 134217728) : (flags &~ 134217728); + flags = wallpaper_overridden ? (flags | 268435456) : (flags &~ 268435456); + flags = contact_require_premium ? (flags | 536870912) : (flags &~ 536870912); + flags = read_dates_private ? (flags | 1073741824) : (flags &~ 1073741824); stream.writeInt32(flags); stream.writeInt64(id); if ((flags & 2) != 0) { @@ -53120,11 +53240,17 @@ public void serializeToStream(AbstractSerializedData stream) { premium_gifts.get(a).serializeToStream(stream); } } + if ((flags & 16777216) != 0) { + wallpaper.serializeToStream(stream); + } + if ((flags & 33554432) != 0) { + stories.serializeToStream(stream); + } } } - public static class TL_userFull_layer150_rev2 extends UserFull { - public static final int constructor = 0xec6d41e3; + public static class TL_userFull_layer162 extends UserFull { + public static final int constructor = 0x4fe1cc86; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -53135,17 +53261,23 @@ public void readParams(AbstractSerializedData stream, boolean exception) { has_scheduled = (flags & 4096) != 0; video_calls_available = (flags & 8192) != 0; voice_messages_forbidden = (flags & 1048576) != 0; + translations_disabled = (flags & 8388608) != 0; + stories_pinned_available = (flags & 67108864) != 0; + blocked_my_stories_from = (flags & 134217728) != 0; id = stream.readInt64(exception); if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 2097152) != 0) { personal_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 4) != 0) { profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags & 4194304) != 0) { + fallback_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); + } notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 8) != 0) { bot_info = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -53189,6 +53321,12 @@ public void readParams(AbstractSerializedData stream, boolean exception) { premium_gifts.add(object); } } + if ((flags & 16777216) != 0) { + wallpaper = WallPaper.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 33554432) != 0) { + stories = TL_stories.PeerStories.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -53200,6 +53338,9 @@ public void serializeToStream(AbstractSerializedData stream) { flags = has_scheduled ? (flags | 4096) : (flags &~ 4096); flags = video_calls_available ? (flags | 8192) : (flags &~ 8192); flags = voice_messages_forbidden ? (flags | 1048576) : (flags &~ 1048576); + flags = translations_disabled ? (flags | 8388608) : (flags &~ 8388608); + flags = stories_pinned_available ? (flags | 67108864) : (flags &~ 67108864); + flags = blocked_my_stories_from ? (flags | 134217728) : (flags &~ 134217728); stream.writeInt32(flags); stream.writeInt64(id); if ((flags & 2) != 0) { @@ -53212,6 +53353,9 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 4) != 0) { profile_photo.serializeToStream(stream); } + if ((flags & 4194304) != 0) { + fallback_photo.serializeToStream(stream); + } notify_settings.serializeToStream(stream); if ((flags & 8) != 0) { bot_info.serializeToStream(stream); @@ -53246,11 +53390,17 @@ public void serializeToStream(AbstractSerializedData stream) { premium_gifts.get(a).serializeToStream(stream); } } + if ((flags & 16777216) != 0) { + wallpaper.serializeToStream(stream); + } + if ((flags & 33554432) != 0) { + stories.serializeToStream(stream); + } } } - public static class TL_userFull_layer150 extends UserFull { - public static final int constructor = 0xc4b1fc3f; + public static class TL_userFull_layer159 extends UserFull { + public static final int constructor = 0x93eadb53; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -53261,14 +53411,21 @@ public void readParams(AbstractSerializedData stream, boolean exception) { has_scheduled = (flags & 4096) != 0; video_calls_available = (flags & 8192) != 0; voice_messages_forbidden = (flags & 1048576) != 0; + translations_disabled = (flags & 8388608) != 0; id = stream.readInt64(exception); if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 2097152) != 0) { + personal_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); + } if ((flags & 4) != 0) { profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags & 4194304) != 0) { + fallback_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); + } notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 8) != 0) { bot_info = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -53312,6 +53469,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { premium_gifts.add(object); } } + if ((flags & 16777216) != 0) { + wallpaper = WallPaper.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -53323,15 +53483,22 @@ public void serializeToStream(AbstractSerializedData stream) { flags = has_scheduled ? (flags | 4096) : (flags &~ 4096); flags = video_calls_available ? (flags | 8192) : (flags &~ 8192); flags = voice_messages_forbidden ? (flags | 1048576) : (flags &~ 1048576); + flags = translations_disabled ? (flags | 8388608) : (flags &~ 8388608); stream.writeInt32(flags); stream.writeInt64(id); if ((flags & 2) != 0) { stream.writeString(about); } settings.serializeToStream(stream); + if ((flags & 2097152) != 0) { + personal_photo.serializeToStream(stream); + } if ((flags & 4) != 0) { profile_photo.serializeToStream(stream); } + if ((flags & 4194304) != 0) { + fallback_photo.serializeToStream(stream); + } notify_settings.serializeToStream(stream); if ((flags & 8) != 0) { bot_info.serializeToStream(stream); @@ -53366,11 +53533,14 @@ public void serializeToStream(AbstractSerializedData stream) { premium_gifts.get(a).serializeToStream(stream); } } + if ((flags & 16777216) != 0) { + wallpaper.serializeToStream(stream); + } } } - public static class TL_userFull_layer143 extends TL_userFull { - public static final int constructor = 0x8c72ea81; + public static class TL_userFull_layer156 extends UserFull { + public static final int constructor = 0xf8d32aed; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -53380,14 +53550,22 @@ public void readParams(AbstractSerializedData stream, boolean exception) { can_pin_message = (flags & 128) != 0; has_scheduled = (flags & 4096) != 0; video_calls_available = (flags & 8192) != 0; + voice_messages_forbidden = (flags & 1048576) != 0; + translations_disabled = (flags & 8388608) != 0; id = stream.readInt64(exception); if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 2097152) != 0) { + personal_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); + } if ((flags & 4) != 0) { profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags & 4194304) != 0) { + fallback_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); + } notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 8) != 0) { bot_info = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -53414,6 +53592,23 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 262144) != 0) { bot_broadcast_admin_rights = TL_chatAdminRights.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags & 524288) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_premiumGiftOption object = TL_premiumGiftOption.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + premium_gifts.add(object); + } + } } public void serializeToStream(AbstractSerializedData stream) { @@ -53424,15 +53619,23 @@ public void serializeToStream(AbstractSerializedData stream) { flags = can_pin_message ? (flags | 128) : (flags &~ 128); flags = has_scheduled ? (flags | 4096) : (flags &~ 4096); flags = video_calls_available ? (flags | 8192) : (flags &~ 8192); + flags = voice_messages_forbidden ? (flags | 1048576) : (flags &~ 1048576); + flags = translations_disabled ? (flags | 8388608) : (flags &~ 8388608); stream.writeInt32(flags); stream.writeInt64(id); if ((flags & 2) != 0) { stream.writeString(about); } settings.serializeToStream(stream); + if ((flags & 2097152) != 0) { + personal_photo.serializeToStream(stream); + } if ((flags & 4) != 0) { profile_photo.serializeToStream(stream); } + if ((flags & 4194304) != 0) { + fallback_photo.serializeToStream(stream); + } notify_settings.serializeToStream(stream); if ((flags & 8) != 0) { bot_info.serializeToStream(stream); @@ -53459,11 +53662,19 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 262144) != 0) { bot_broadcast_admin_rights.serializeToStream(stream); } + if ((flags & 524288) != 0) { + stream.writeInt32(0x1cb5c415); + int count = premium_gifts.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + premium_gifts.get(a).serializeToStream(stream); + } + } } } - public static class TL_userFull_layer139 extends UserFull { - public static final int constructor = 0xcf366521; + public static class TL_userFull_layer150_rev2 extends UserFull { + public static final int constructor = 0xec6d41e3; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -53473,11 +53684,15 @@ public void readParams(AbstractSerializedData stream, boolean exception) { can_pin_message = (flags & 128) != 0; has_scheduled = (flags & 4096) != 0; video_calls_available = (flags & 8192) != 0; + voice_messages_forbidden = (flags & 1048576) != 0; id = stream.readInt64(exception); if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 2097152) != 0) { + personal_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); + } if ((flags & 4) != 0) { profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -53501,6 +53716,29 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 65536) != 0) { private_forward_name = stream.readString(exception); } + if ((flags & 131072) != 0) { + bot_group_admin_rights = TL_chatAdminRights.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 262144) != 0) { + bot_broadcast_admin_rights = TL_chatAdminRights.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 524288) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_premiumGiftOption object = TL_premiumGiftOption.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + premium_gifts.add(object); + } + } } public void serializeToStream(AbstractSerializedData stream) { @@ -53511,12 +53749,16 @@ public void serializeToStream(AbstractSerializedData stream) { flags = can_pin_message ? (flags | 128) : (flags &~ 128); flags = has_scheduled ? (flags | 4096) : (flags &~ 4096); flags = video_calls_available ? (flags | 8192) : (flags &~ 8192); + flags = voice_messages_forbidden ? (flags | 1048576) : (flags &~ 1048576); stream.writeInt32(flags); stream.writeInt64(id); if ((flags & 2) != 0) { stream.writeString(about); } settings.serializeToStream(stream); + if ((flags & 2097152) != 0) { + personal_photo.serializeToStream(stream); + } if ((flags & 4) != 0) { profile_photo.serializeToStream(stream); } @@ -53540,12 +53782,25 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 65536) != 0) { stream.writeString(private_forward_name); } + if ((flags & 131072) != 0) { + bot_group_admin_rights.serializeToStream(stream); + } + if ((flags & 262144) != 0) { + bot_broadcast_admin_rights.serializeToStream(stream); + } + if ((flags & 524288) != 0) { + stream.writeInt32(0x1cb5c415); + int count = premium_gifts.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + premium_gifts.get(a).serializeToStream(stream); + } + } } } - public static class TL_userFull_layer134 extends TL_userFull { - public static final int constructor = 0xd697ff05; - + public static class TL_userFull_layer150 extends UserFull { + public static final int constructor = 0xc4b1fc3f; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -53555,11 +53810,12 @@ public void readParams(AbstractSerializedData stream, boolean exception) { can_pin_message = (flags & 128) != 0; has_scheduled = (flags & 4096) != 0; video_calls_available = (flags & 8192) != 0; - user = User.TLdeserialize(stream, stream.readInt32(exception), exception); + voice_messages_forbidden = (flags & 1048576) != 0; + id = stream.readInt64(exception); if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -53580,6 +53836,32 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 32768) != 0) { theme_emoticon = stream.readString(exception); } + if ((flags & 65536) != 0) { + private_forward_name = stream.readString(exception); + } + if ((flags & 131072) != 0) { + bot_group_admin_rights = TL_chatAdminRights.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 262144) != 0) { + bot_broadcast_admin_rights = TL_chatAdminRights.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 524288) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_premiumGiftOption object = TL_premiumGiftOption.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + premium_gifts.add(object); + } + } } public void serializeToStream(AbstractSerializedData stream) { @@ -53590,8 +53872,9 @@ public void serializeToStream(AbstractSerializedData stream) { flags = can_pin_message ? (flags | 128) : (flags &~ 128); flags = has_scheduled ? (flags | 4096) : (flags &~ 4096); flags = video_calls_available ? (flags | 8192) : (flags &~ 8192); + flags = voice_messages_forbidden ? (flags | 1048576) : (flags &~ 1048576); stream.writeInt32(flags); - user.serializeToStream(stream); + stream.writeInt64(id); if ((flags & 2) != 0) { stream.writeString(about); } @@ -53616,12 +53899,28 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 32768) != 0) { stream.writeString(theme_emoticon); } + if ((flags & 65536) != 0) { + stream.writeString(private_forward_name); + } + if ((flags & 131072) != 0) { + bot_group_admin_rights.serializeToStream(stream); + } + if ((flags & 262144) != 0) { + bot_broadcast_admin_rights.serializeToStream(stream); + } + if ((flags & 524288) != 0) { + stream.writeInt32(0x1cb5c415); + int count = premium_gifts.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + premium_gifts.get(a).serializeToStream(stream); + } + } } } - public static class TL_userFull_layer101 extends TL_userFull { - public static final int constructor = 0x745559cc; - + public static class TL_userFull_layer143 extends TL_userFull { + public static final int constructor = 0x8c72ea81; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -53629,11 +53928,13 @@ public void readParams(AbstractSerializedData stream, boolean exception) { phone_calls_available = (flags & 16) != 0; phone_calls_private = (flags & 32) != 0; can_pin_message = (flags & 128) != 0; - user = User.TLdeserialize(stream, stream.readInt32(exception), exception); + has_scheduled = (flags & 4096) != 0; + video_calls_available = (flags & 8192) != 0; + id = stream.readInt64(exception); if ((flags & 2) != 0) { about = stream.readString(exception); } - link = TL_contacts_link_layer101.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -53648,6 +53949,21 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 2048) != 0) { folder_id = stream.readInt32(exception); } + if ((flags & 16384) != 0) { + ttl_period = stream.readInt32(exception); + } + if ((flags & 32768) != 0) { + theme_emoticon = stream.readString(exception); + } + if ((flags & 65536) != 0) { + private_forward_name = stream.readString(exception); + } + if ((flags & 131072) != 0) { + bot_group_admin_rights = TL_chatAdminRights.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 262144) != 0) { + bot_broadcast_admin_rights = TL_chatAdminRights.TLdeserialize(stream, stream.readInt32(exception), exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -53656,12 +53972,14 @@ public void serializeToStream(AbstractSerializedData stream) { flags = phone_calls_available ? (flags | 16) : (flags &~ 16); flags = phone_calls_private ? (flags | 32) : (flags &~ 32); flags = can_pin_message ? (flags | 128) : (flags &~ 128); + flags = has_scheduled ? (flags | 4096) : (flags &~ 4096); + flags = video_calls_available ? (flags | 8192) : (flags &~ 8192); stream.writeInt32(flags); - user.serializeToStream(stream); + stream.writeInt64(id); if ((flags & 2) != 0) { stream.writeString(about); } - link.serializeToStream(stream); + settings.serializeToStream(stream); if ((flags & 4) != 0) { profile_photo.serializeToStream(stream); } @@ -53676,12 +53994,26 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 2048) != 0) { stream.writeInt32(folder_id); } + if ((flags & 16384) != 0) { + stream.writeInt32(ttl_period); + } + if ((flags & 32768) != 0) { + stream.writeString(theme_emoticon); + } + if ((flags & 65536) != 0) { + stream.writeString(private_forward_name); + } + if ((flags & 131072) != 0) { + bot_group_admin_rights.serializeToStream(stream); + } + if ((flags & 262144) != 0) { + bot_broadcast_admin_rights.serializeToStream(stream); + } } } - public static class TL_userFull_layer98 extends TL_userFull { - public static final int constructor = 0x8ea4a881; - + public static class TL_userFull_layer139 extends UserFull { + public static final int constructor = 0xcf366521; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -53689,11 +54021,13 @@ public void readParams(AbstractSerializedData stream, boolean exception) { phone_calls_available = (flags & 16) != 0; phone_calls_private = (flags & 32) != 0; can_pin_message = (flags & 128) != 0; - user = User.TLdeserialize(stream, stream.readInt32(exception), exception); + has_scheduled = (flags & 4096) != 0; + video_calls_available = (flags & 8192) != 0; + id = stream.readInt64(exception); if ((flags & 2) != 0) { about = stream.readString(exception); } - link = TL_contacts_link_layer101.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -53705,6 +54039,18 @@ public void readParams(AbstractSerializedData stream, boolean exception) { pinned_msg_id = stream.readInt32(exception); } common_chats_count = stream.readInt32(exception); + if ((flags & 2048) != 0) { + folder_id = stream.readInt32(exception); + } + if ((flags & 16384) != 0) { + ttl_period = stream.readInt32(exception); + } + if ((flags & 32768) != 0) { + theme_emoticon = stream.readString(exception); + } + if ((flags & 65536) != 0) { + private_forward_name = stream.readString(exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -53713,12 +54059,14 @@ public void serializeToStream(AbstractSerializedData stream) { flags = phone_calls_available ? (flags | 16) : (flags &~ 16); flags = phone_calls_private ? (flags | 32) : (flags &~ 32); flags = can_pin_message ? (flags | 128) : (flags &~ 128); + flags = has_scheduled ? (flags | 4096) : (flags &~ 4096); + flags = video_calls_available ? (flags | 8192) : (flags &~ 8192); stream.writeInt32(flags); - user.serializeToStream(stream); + stream.writeInt64(id); if ((flags & 2) != 0) { stream.writeString(about); } - link.serializeToStream(stream); + settings.serializeToStream(stream); if ((flags & 4) != 0) { profile_photo.serializeToStream(stream); } @@ -53730,11 +54078,23 @@ public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(pinned_msg_id); } stream.writeInt32(common_chats_count); + if ((flags & 2048) != 0) { + stream.writeInt32(folder_id); + } + if ((flags & 16384) != 0) { + stream.writeInt32(ttl_period); + } + if ((flags & 32768) != 0) { + stream.writeString(theme_emoticon); + } + if ((flags & 65536) != 0) { + stream.writeString(private_forward_name); + } } } - public static class TL_userFull_layer131 extends TL_userFull { - public static final int constructor = 0x139a9a77; + public static class TL_userFull_layer134 extends TL_userFull { + public static final int constructor = 0xd697ff05; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -53749,7 +54109,197 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 4) != 0) { + profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); + } + notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 8) != 0) { + bot_info = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 64) != 0) { + pinned_msg_id = stream.readInt32(exception); + } + common_chats_count = stream.readInt32(exception); + if ((flags & 2048) != 0) { + folder_id = stream.readInt32(exception); + } + if ((flags & 16384) != 0) { + ttl_period = stream.readInt32(exception); + } + if ((flags & 32768) != 0) { + theme_emoticon = stream.readString(exception); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = blocked ? (flags | 1) : (flags &~ 1); + flags = phone_calls_available ? (flags | 16) : (flags &~ 16); + flags = phone_calls_private ? (flags | 32) : (flags &~ 32); + flags = can_pin_message ? (flags | 128) : (flags &~ 128); + flags = has_scheduled ? (flags | 4096) : (flags &~ 4096); + flags = video_calls_available ? (flags | 8192) : (flags &~ 8192); + stream.writeInt32(flags); + user.serializeToStream(stream); + if ((flags & 2) != 0) { + stream.writeString(about); + } + settings.serializeToStream(stream); + if ((flags & 4) != 0) { + profile_photo.serializeToStream(stream); + } + notify_settings.serializeToStream(stream); + if ((flags & 8) != 0) { + bot_info.serializeToStream(stream); + } + if ((flags & 64) != 0) { + stream.writeInt32(pinned_msg_id); + } + stream.writeInt32(common_chats_count); + if ((flags & 2048) != 0) { + stream.writeInt32(folder_id); + } + if ((flags & 16384) != 0) { + stream.writeInt32(ttl_period); + } + if ((flags & 32768) != 0) { + stream.writeString(theme_emoticon); + } + } + } + + public static class TL_userFull_layer101 extends TL_userFull { + public static final int constructor = 0x745559cc; + + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + blocked = (flags & 1) != 0; + phone_calls_available = (flags & 16) != 0; + phone_calls_private = (flags & 32) != 0; + can_pin_message = (flags & 128) != 0; + user = User.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 2) != 0) { + about = stream.readString(exception); + } + link = TL_contacts_link_layer101.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 4) != 0) { + profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); + } + notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 8) != 0) { + bot_info = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 64) != 0) { + pinned_msg_id = stream.readInt32(exception); + } + common_chats_count = stream.readInt32(exception); + if ((flags & 2048) != 0) { + folder_id = stream.readInt32(exception); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = blocked ? (flags | 1) : (flags &~ 1); + flags = phone_calls_available ? (flags | 16) : (flags &~ 16); + flags = phone_calls_private ? (flags | 32) : (flags &~ 32); + flags = can_pin_message ? (flags | 128) : (flags &~ 128); + stream.writeInt32(flags); + user.serializeToStream(stream); + if ((flags & 2) != 0) { + stream.writeString(about); + } + link.serializeToStream(stream); + if ((flags & 4) != 0) { + profile_photo.serializeToStream(stream); + } + notify_settings.serializeToStream(stream); + if ((flags & 8) != 0) { + bot_info.serializeToStream(stream); + } + if ((flags & 64) != 0) { + stream.writeInt32(pinned_msg_id); + } + stream.writeInt32(common_chats_count); + if ((flags & 2048) != 0) { + stream.writeInt32(folder_id); + } + } + } + + public static class TL_userFull_layer98 extends TL_userFull { + public static final int constructor = 0x8ea4a881; + + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + blocked = (flags & 1) != 0; + phone_calls_available = (flags & 16) != 0; + phone_calls_private = (flags & 32) != 0; + can_pin_message = (flags & 128) != 0; + user = User.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 2) != 0) { + about = stream.readString(exception); + } + link = TL_contacts_link_layer101.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 4) != 0) { + profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); + } + notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 8) != 0) { + bot_info = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 64) != 0) { + pinned_msg_id = stream.readInt32(exception); + } + common_chats_count = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = blocked ? (flags | 1) : (flags &~ 1); + flags = phone_calls_available ? (flags | 16) : (flags &~ 16); + flags = phone_calls_private ? (flags | 32) : (flags &~ 32); + flags = can_pin_message ? (flags | 128) : (flags &~ 128); + stream.writeInt32(flags); + user.serializeToStream(stream); + if ((flags & 2) != 0) { + stream.writeString(about); + } + link.serializeToStream(stream); + if ((flags & 4) != 0) { + profile_photo.serializeToStream(stream); + } + notify_settings.serializeToStream(stream); + if ((flags & 8) != 0) { + bot_info.serializeToStream(stream); + } + if ((flags & 64) != 0) { + stream.writeInt32(pinned_msg_id); + } + stream.writeInt32(common_chats_count); + } + } + + public static class TL_userFull_layer131 extends TL_userFull { + public static final int constructor = 0x139a9a77; + + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + blocked = (flags & 1) != 0; + phone_calls_available = (flags & 16) != 0; + phone_calls_private = (flags & 32) != 0; + can_pin_message = (flags & 128) != 0; + has_scheduled = (flags & 4096) != 0; + video_calls_available = (flags & 8192) != 0; + user = User.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 2) != 0) { + about = stream.readString(exception); + } + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -53819,7 +54369,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 2) != 0) { about = stream.readString(exception); } - settings = TL_peerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); + settings = PeerSettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -58560,7 +59110,7 @@ public static class TL_messages_addChatUser extends TLObject { public int fwd_limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { - return Updates.TLdeserialize(stream, constructor, exception); + return TL_messages_invitedUsers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { @@ -58601,7 +59151,7 @@ public static class TL_messages_createChat extends TLObject { public int ttl_period; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { - return Updates.TLdeserialize(stream, constructor, exception); + return TL_messages_invitedUsers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { @@ -63539,7 +64089,7 @@ public static class TL_channels_inviteToChannel extends TLObject { public ArrayList users = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { - return Updates.TLdeserialize(stream, constructor, exception); + return TL_messages_invitedUsers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { @@ -63615,6 +64165,7 @@ public static class TL_channels_getAdminedPublicChannels extends TLObject { public int flags; public boolean by_location; public boolean check_limit; + public boolean for_personal; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Chats.TLdeserialize(stream, constructor, exception); @@ -63624,6 +64175,7 @@ public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = by_location ? (flags | 1) : (flags &~ 1); flags = check_limit ? (flags | 2) : (flags &~ 2); + flags = for_personal ? (flags | 4) : (flags &~ 4); stream.writeInt32(flags); } } @@ -63865,8 +64417,6 @@ public static class TL_stickers_createStickerSet extends TLObject { public int flags; public boolean masks; - public boolean animated; - public boolean videos; public boolean emojis; public InputUser user_id; public String title; @@ -63882,8 +64432,6 @@ public TLObject deserializeResponse(AbstractSerializedData stream, int construct public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = masks ? (flags | 1) : (flags &~ 1); - flags = animated ? (flags | 2) : (flags &~ 2); - flags = videos ? (flags | 16) : (flags &~ 16); flags = emojis ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); user_id.serializeToStream(stream); @@ -63904,6 +64452,225 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_stickers_removeStickerFromSet extends TLObject { + public static int constructor = 0xf7760f51; + + public InputDocument sticker; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return messages_StickerSet.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + sticker.serializeToStream(stream); + } + } + + public static class TL_stickers_changeStickerPosition extends TLObject { + public static int constructor = 0xffb6d4ca; + + public InputDocument sticker; + public int position; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return messages_StickerSet.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + sticker.serializeToStream(stream); + stream.writeInt32(position); + } + } + + public static class TL_stickers_addStickerToSet extends TLObject { + public static int constructor = 0x8653febe; + + public InputStickerSet stickerset; + public TL_inputStickerSetItem sticker; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return messages_StickerSet.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stickerset.serializeToStream(stream); + sticker.serializeToStream(stream); + } + } + + public static class TL_stickers_setStickerSetThumb extends TLObject { + public static final int constructor = 0xa76a5392; + + public int flags; + public InputStickerSet stickerset; + public InputDocument thumb; + public long thumb_document_id; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return messages_StickerSet.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + stickerset.serializeToStream(stream); + if ((flags & 1) != 0) { + thumb.serializeToStream(stream); + } + if ((flags & 2) != 0) { + stream.writeInt64(thumb_document_id); + } + } + } + + public static class TL_stickers_changeSticker extends TLObject { + public static final int constructor = 0xf5537ebc; + + public int flags; + public InputDocument sticker; + public String emoji; + public TL_maskCoords mask_coords; + public String keywords; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return messages_StickerSet.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + sticker.serializeToStream(stream); + if ((flags & 1) != 0) { + stream.writeString(emoji); + } + if ((flags & 2) != 0) { + mask_coords.serializeToStream(stream); + } + if ((flags & 4) != 0) { + stream.writeString(keywords); + } + } + } + + public static class TL_stickers_renameStickerSet extends TLObject { + public static final int constructor = 0x124b1c00; + + public InputStickerSet stickerset; + public String title; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return messages_StickerSet.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stickerset.serializeToStream(stream); + stream.writeString(title); + } + } + + public static class TL_stickers_deleteStickerSet extends TLObject { + public static final int constructor = 0x87704394; + + public InputStickerSet stickerset; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return Bool.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stickerset.serializeToStream(stream); + } + } + + public static class TL_stickers_replaceSticker extends TLObject { + public static final int constructor = 0x4696459a; + + public InputDocument sticker; + public TL_inputStickerSetItem new_sticker; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return messages_StickerSet.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + sticker.serializeToStream(stream); + new_sticker.serializeToStream(stream); + } + } + + public static class TL_messages_getMyStickers extends TLObject { + public static final int constructor = 0xd0b5e1fc; + + public long offset_id; + public int limit; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_messages_myStickers.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt64(offset_id); + stream.writeInt32(limit); + } + } + + public static class TL_messages_myStickers extends TLObject { + public static final int constructor = 0xfaff629d; + + public int count; + public ArrayList sets = new ArrayList<>(); + + public static TL_messages_myStickers TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_messages_myStickers.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_messages_myStickers", constructor)); + } else { + return null; + } + } + TL_messages_myStickers result = new TL_messages_myStickers(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + count = stream.readInt32(exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + StickerSetCovered object = StickerSetCovered.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + sets.add(object); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(count); + stream.writeInt32(0x1cb5c415); + int count = sets.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + sets.get(a).serializeToStream(stream); + } + } + } + public static class TL_stickers_checkShortName extends TLObject { public static final int constructor = 0x284b3639; @@ -65109,269 +65876,6 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_stats_getBroadcastStats extends TLObject { - public static final int constructor = 0xab42441a; - - public int flags; - public boolean dark; - public InputChannel channel; - - public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { - return TL_stats_broadcastStats.TLdeserialize(stream, constructor, exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - flags = dark ? (flags | 1) : (flags &~ 1); - stream.writeInt32(flags); - channel.serializeToStream(stream); - } - } - - public static class TL_stats_loadAsyncGraph extends TLObject { - public static final int constructor = 0x621d5fa0; - - public int flags; - public String token; - public long x; - - public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { - return StatsGraph.TLdeserialize(stream, constructor, exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeInt32(flags); - stream.writeString(token); - if ((flags & 1) != 0) { - stream.writeInt64(x); - } - } - } - - public static class TL_stats_getMegagroupStats extends TLObject { - public static final int constructor = 0xdcdf8607; - - public int flags; - public boolean dark; - public InputChannel channel; - - public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { - return TL_stats_megagroupStats.TLdeserialize(stream, constructor, exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - flags = dark ? (flags | 1) : (flags &~ 1); - stream.writeInt32(flags); - channel.serializeToStream(stream); - } - } - - public static class TL_stats_getMessagePublicForwards extends TLObject { - public static final int constructor = 0x5f150144; - - public InputChannel channel; - public int msg_id; - public String offset; - public int limit; - - public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { - return TL_stats_publicForwards.TLdeserialize(stream, constructor, exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - channel.serializeToStream(stream); - stream.writeInt32(msg_id); - stream.writeString(offset); - stream.writeInt32(limit); - } - } - - public static class TL_stats_getMessageStats extends TLObject { - public static final int constructor = 0xb6e0a3f5; - - public int flags; - public boolean dark; - public InputChannel channel; - public int msg_id; - - public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { - return TL_stats_messageStats.TLdeserialize(stream, constructor, exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - flags = dark ? (flags | 1) : (flags &~ 1); - stream.writeInt32(flags); - channel.serializeToStream(stream); - stream.writeInt32(msg_id); - } - } - - public static class TL_stats_getStoryPublicForwards extends TLObject { - public static final int constructor = 0xa6437ef6; - - public InputPeer peer; - public int id; - public String offset; - public int limit; - - public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { - return TL_stats_publicForwards.TLdeserialize(stream, constructor, exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - peer.serializeToStream(stream); - stream.writeInt32(id); - stream.writeString(offset); - stream.writeInt32(limit); - } - } - - public static class TL_stats_publicForwards extends TLObject { - public static final int constructor = 0x93037e20; - - public int flags; - public int count; - public ArrayList forwards = new ArrayList<>(); - public String next_offset; - public ArrayList chats = new ArrayList<>(); - public ArrayList users = new ArrayList<>(); - - public static TL_stats_publicForwards TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_stats_publicForwards.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_stats_publicForwards", constructor)); - } else { - return null; - } - } - TL_stats_publicForwards result = new TL_stats_publicForwards(); - result.readParams(stream, exception); - return result; - } - - public void readParams(AbstractSerializedData stream, boolean exception) { - flags = stream.readInt32(exception); - count = stream.readInt32(exception); - int magic = stream.readInt32(exception); - if (magic != 0x1cb5c415) { - if (exception) { - throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); - } - return; - } - int count = stream.readInt32(exception); - for (int a = 0; a < count; a++) { - PublicForward object = PublicForward.TLdeserialize(stream, stream.readInt32(exception), exception); - if (object == null) { - return; - } - forwards.add(object); - } - if ((flags & 1) != 0) { - next_offset = stream.readString(exception); - } - magic = stream.readInt32(exception); - if (magic != 0x1cb5c415) { - if (exception) { - throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); - } - return; - } - count = stream.readInt32(exception); - for (int a = 0; a < count; a++) { - Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); - if (object == null) { - return; - } - chats.add(object); - } - magic = stream.readInt32(exception); - if (magic != 0x1cb5c415) { - if (exception) { - throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); - } - return; - } - count = stream.readInt32(exception); - for (int a = 0; a < count; a++) { - User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); - if (object == null) { - return; - } - users.add(object); - } - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeInt32(flags); - stream.writeInt32(count); - stream.writeInt32(0x1cb5c415); - int count = forwards.size(); - stream.writeInt32(count); - for (int a = 0; a < count; a++) { - forwards.get(a).serializeToStream(stream); - } - if ((flags & 1) != 0) { - stream.writeString(next_offset); - } - stream.writeInt32(0x1cb5c415); - count = chats.size(); - stream.writeInt32(count); - for (int a = 0; a < count; a++) { - chats.get(a).serializeToStream(stream); - } - stream.writeInt32(0x1cb5c415); - count = users.size(); - stream.writeInt32(count); - for (int a = 0; a < count; a++) { - users.get(a).serializeToStream(stream); - } - } - } - - public static abstract class PublicForward extends TLObject { - - public static PublicForward TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - PublicForward result = null; - switch (constructor) { - case TL_publicForwardMessage.constructor: - result = new TL_publicForwardMessage(); - break; - case TL_stories.TL_publicForwardStory.constructor: - result = new TL_stories.TL_publicForwardStory(); - break; - } - if (result == null && exception) { - throw new RuntimeException(String.format("can't parse magic %x in PublicForward", constructor)); - } - if (result != null) { - result.readParams(stream, exception); - } - return result; - } - } - - public static class TL_publicForwardMessage extends PublicForward { - public static final int constructor = 0x1f2bf4a; - - public Message message; - - public void readParams(AbstractSerializedData stream, boolean exception) { - message = Message.TLdeserialize(stream, stream.readInt32(exception), exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - message.serializeToStream(stream); - } - } - //manually created public static class TL_photoPathSize extends PhotoSize { @@ -66217,6 +66721,7 @@ public static class Message extends TLObject { public String message; public MessageMedia media; public int flags; + public int flags2; public boolean mentioned; public boolean media_unread; public boolean out; @@ -66236,6 +66741,7 @@ public static class Message extends TLObject { public boolean pinned; public MessageFwdHeader fwd_from; public long via_bot_id; + public long via_business_bot_id; public MessageReplyHeader reply_to; public String post_author; public long grouped_id; @@ -66245,6 +66751,7 @@ public static class Message extends TLObject { public int quick_reply_shortcut_id; public boolean noforwards; public boolean invert_media; + public boolean offline; public int send_state = 0; //custom public int fwd_msg_id = 0; //custom public String attachPath = ""; //custom @@ -66366,9 +66873,13 @@ public static Message TLdeserialize(AbstractSerializedData stream, int construct case 0x85d6cbe2: result = new TL_message_layer135(); break; + case 0xa4e97f37: case TL_message.constructor: result = new TL_message(); break; + case TL_message_layer176.constructor: + result = new TL_message_layer176(); + break; case TL_message_layer175.constructor: result = new TL_message_layer175(); break; @@ -67078,7 +67589,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_message extends Message { - public static final int constructor = 0xa66c7efc; + public static final int constructor = 0x2357bf25; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -67093,6 +67604,8 @@ public void readParams(AbstractSerializedData stream, boolean exception) { pinned = (flags & 16777216) != 0; noforwards = (flags & 67108864) != 0; invert_media = (flags & 134217728) != 0; + flags2 = stream.readInt32(exception); + offline = (flags2 & 2) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { from_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -67110,6 +67623,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 2048) != 0) { via_bot_id = stream.readInt64(exception); } + if ((flags2 & 1) != 0) { + via_business_bot_id = stream.readInt64(exception); + } if ((flags & 8) != 0) { reply_to = MessageReplyHeader.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -67204,6 +67720,8 @@ public void serializeToStream(AbstractSerializedData stream) { flags = noforwards ? (flags | 67108864) : (flags &~ 67108864); flags = invert_media ? (flags | 134217728) : (flags &~ 134217728); stream.writeInt32(flags); + flags2 = offline ? (flags2 | 2) : (flags2 &~ 2); + stream.writeInt32(flags2); stream.writeInt32(id); if ((flags & 256) != 0) { from_id.serializeToStream(stream); @@ -67221,6 +67739,9 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 2048) != 0) { stream.writeInt64(via_bot_id); } + if ((flags2 & 1) != 0) { + stream.writeInt64(via_business_bot_id); + } if ((flags & 8) != 0) { reply_to.serializeToStream(stream); } @@ -67279,8 +67800,8 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_message_layer175 extends TL_message { - public static final int constructor = 0x1e4c8a69; + public static class TL_message_layer176 extends TL_message { + public static final int constructor = 0xa66c7efc; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -67387,6 +67908,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 33554432) != 0) { ttl_period = stream.readInt32(exception); } + if ((flags & 1073741824) != 0) { + quick_reply_shortcut_id = stream.readInt32(exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -67471,12 +67995,15 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 33554432) != 0) { stream.writeInt32(ttl_period); } + if ((flags & 1073741824) != 0) { + stream.writeInt32(quick_reply_shortcut_id); + } writeAttachPath(stream); } } - public static class TL_message_layer173 extends TL_message { - public static final int constructor = 0x76bec211; + public static class TL_message_layer175 extends TL_message { + public static final int constructor = 0x1e4c8a69; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -67495,6 +68022,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 256) != 0) { from_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); } + if ((flags & 536870912) != 0) { + from_boosts_applied = stream.readInt32(exception); + } peer_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 268435456) != 0) { saved_peer_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -67600,6 +68130,9 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 256) != 0) { from_id.serializeToStream(stream); } + if ((flags & 536870912) != 0) { + stream.writeInt32(from_boosts_applied); + } peer_id.serializeToStream(stream); if ((flags & 268435456) != 0) { saved_peer_id.serializeToStream(stream); @@ -67665,8 +68198,8 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_message_layer169 extends TL_message { - public static final int constructor = 0x38116ee0; + public static class TL_message_layer173 extends TL_message { + public static final int constructor = 0x76bec211; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -67686,6 +68219,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { from_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); } peer_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 268435456) != 0) { + saved_peer_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); + } if ((flags & 4) != 0) { fwd_from = MessageFwdHeader.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -67788,6 +68324,9 @@ public void serializeToStream(AbstractSerializedData stream) { from_id.serializeToStream(stream); } peer_id.serializeToStream(stream); + if ((flags & 268435456) != 0) { + saved_peer_id.serializeToStream(stream); + } if ((flags & 4) != 0) { fwd_from.serializeToStream(stream); } @@ -67849,9 +68388,8 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_message_layer135 extends TL_message { - public static final int constructor = 0x85d6cbe2; - + public static class TL_message_layer169 extends TL_message { + public static final int constructor = 0x38116ee0; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -67865,6 +68403,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { edit_hide = (flags & 2097152) != 0; pinned = (flags & 16777216) != 0; noforwards = (flags & 67108864) != 0; + invert_media = (flags & 134217728) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { from_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -67928,6 +68467,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 131072) != 0) { grouped_id = stream.readInt64(exception); } + if ((flags & 1048576) != 0) { + reactions = MessageReactions.TLdeserialize(stream, stream.readInt32(exception), exception); + } if ((flags & 4194304) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { @@ -67962,6 +68504,7 @@ public void serializeToStream(AbstractSerializedData stream) { flags = edit_hide ? (flags | 2097152) : (flags &~ 2097152); flags = pinned ? (flags | 16777216) : (flags &~ 16777216); flags = noforwards ? (flags | 67108864) : (flags &~ 67108864); + flags = invert_media ? (flags | 134217728) : (flags &~ 134217728); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 256) != 0) { @@ -68011,6 +68554,9 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 131072) != 0) { stream.writeInt64(grouped_id); } + if ((flags & 1048576) != 0) { + reactions.serializeToStream(stream); + } if ((flags & 4194304) != 0) { stream.writeInt32(0x1cb5c415); int count = restriction_reason.size(); @@ -68026,8 +68572,8 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_message_layer131 extends TL_message { - public static final int constructor = 0xbce383d2; + public static class TL_message_layer135 extends TL_message { + public static final int constructor = 0x85d6cbe2; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -68041,6 +68587,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { legacy = (flags & 524288) != 0; edit_hide = (flags & 2097152) != 0; pinned = (flags & 16777216) != 0; + noforwards = (flags & 67108864) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { from_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -68050,7 +68597,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { fwd_from = MessageFwdHeader.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2048) != 0) { - via_bot_id = stream.readInt32(exception); + via_bot_id = stream.readInt64(exception); } if ((flags & 8) != 0) { reply_to = MessageReplyHeader.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -68060,7 +68607,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 512) != 0) { media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null) { - ttl = media.ttl_seconds; //custom + ttl = media.ttl_seconds; } if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; @@ -68137,6 +68684,7 @@ public void serializeToStream(AbstractSerializedData stream) { flags = legacy ? (flags | 524288) : (flags &~ 524288); flags = edit_hide ? (flags | 2097152) : (flags &~ 2097152); flags = pinned ? (flags | 16777216) : (flags &~ 16777216); + flags = noforwards ? (flags | 67108864) : (flags &~ 67108864); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 256) != 0) { @@ -68147,7 +68695,7 @@ public void serializeToStream(AbstractSerializedData stream) { fwd_from.serializeToStream(stream); } if ((flags & 2048) != 0) { - stream.writeInt32((int) via_bot_id); + stream.writeInt64(via_bot_id); } if ((flags & 8) != 0) { reply_to.serializeToStream(stream); @@ -68197,12 +68745,12 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 33554432) != 0) { stream.writeInt32(ttl_period); } - writeAttachPath(stream); //custom + writeAttachPath(stream); } } - public static class TL_message_layer123 extends TL_message { - public static final int constructor = 0x58ae39c9; + public static class TL_message_layer131 extends TL_message { + public static final int constructor = 0xbce383d2; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -68296,6 +68844,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { restriction_reason.add(object); } } + if ((flags & 33554432) != 0) { + ttl_period = stream.readInt32(exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -68366,12 +68917,15 @@ public void serializeToStream(AbstractSerializedData stream) { restriction_reason.get(a).serializeToStream(stream); } } - writeAttachPath(stream); + if ((flags & 33554432) != 0) { + stream.writeInt32(ttl_period); + } + writeAttachPath(stream); //custom } } - public static class TL_message_layer118 extends TL_message { - public static final int constructor = 0xf52e6b7f; + public static class TL_message_layer123 extends TL_message { + public static final int constructor = 0x58ae39c9; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -68384,10 +68938,10 @@ public void readParams(AbstractSerializedData stream, boolean exception) { from_scheduled = (flags & 262144) != 0; legacy = (flags & 524288) != 0; edit_hide = (flags & 2097152) != 0; + pinned = (flags & 16777216) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { - from_id = new TLRPC.TL_peerUser(); - from_id.user_id = stream.readInt32(exception); + from_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); } peer_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { @@ -68397,9 +68951,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { via_bot_id = stream.readInt32(exception); } if ((flags & 8) != 0) { - reply_to = new TLRPC.TL_messageReplyHeader(); - reply_to.flags |= 16; - reply_to.reply_to_msg_id = stream.readInt32(exception); + reply_to = MessageReplyHeader.TLdeserialize(stream, stream.readInt32(exception), exception); } date = stream.readInt32(exception); message = stream.readString(exception); @@ -68438,6 +68990,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 1024) != 0) { forwards = stream.readInt32(exception); } + if ((flags & 8388608) != 0) { + replies = MessageReplies.TLdeserialize(stream, stream.readInt32(exception), exception); + } if ((flags & 32768) != 0) { edit_date = stream.readInt32(exception); } @@ -68476,10 +69031,11 @@ public void serializeToStream(AbstractSerializedData stream) { flags = from_scheduled ? (flags | 262144) : (flags &~ 262144); flags = legacy ? (flags | 524288) : (flags &~ 524288); flags = edit_hide ? (flags | 2097152) : (flags &~ 2097152); + flags = pinned ? (flags | 16777216) : (flags &~ 16777216); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 256) != 0) { - stream.writeInt32((int) from_id.user_id); + from_id.serializeToStream(stream); } peer_id.serializeToStream(stream); if ((flags & 4) != 0) { @@ -68489,7 +69045,7 @@ public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32((int) via_bot_id); } if ((flags & 8) != 0) { - stream.writeInt32(reply_to.reply_to_msg_id); + reply_to.serializeToStream(stream); } stream.writeInt32(date); stream.writeString(message); @@ -68513,6 +69069,9 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 1024) != 0) { stream.writeInt32(forwards); } + if ((flags & 8388608) != 0) { + replies.serializeToStream(stream); + } if ((flags & 32768) != 0) { stream.writeInt32(edit_date); } @@ -68534,8 +69093,8 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_message_layer117 extends TL_message { - public static final int constructor = 0x452c0e65; + public static class TL_message_layer118 extends TL_message { + public static final int constructor = 0xf52e6b7f; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -68599,6 +69158,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 1024) != 0) { views = stream.readInt32(exception); } + if ((flags & 1024) != 0) { + forwards = stream.readInt32(exception); + } if ((flags & 32768) != 0) { edit_date = stream.readInt32(exception); } @@ -68671,6 +69233,9 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 1024) != 0) { stream.writeInt32(views); } + if ((flags & 1024) != 0) { + stream.writeInt32(forwards); + } if ((flags & 32768) != 0) { stream.writeInt32(edit_date); } @@ -68692,8 +69257,8 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_message_layer104_3 extends TL_message { - public static final int constructor = 0x9789dac4; + public static class TL_message_layer117 extends TL_message { + public static final int constructor = 0x452c0e65; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -68766,9 +69331,6 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 131072) != 0) { grouped_id = stream.readInt64(exception); } - if ((flags & 1048576) != 0) { - reactions = MessageReactions.TLdeserialize(stream, stream.readInt32(exception), exception); - } if ((flags & 4194304) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { @@ -68841,9 +69403,6 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 131072) != 0) { stream.writeInt64(grouped_id); } - if ((flags & 1048576) != 0) { - reactions.serializeToStream(stream); - } if ((flags & 4194304) != 0) { stream.writeInt32(0x1cb5c415); int count = restriction_reason.size(); @@ -68856,8 +69415,8 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_message_layer104_2 extends TL_message { - public static final int constructor = 0x1c9b1027; + public static class TL_message_layer104_3 extends TL_message { + public static final int constructor = 0x9789dac4; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -68934,7 +69493,21 @@ public void readParams(AbstractSerializedData stream, boolean exception) { reactions = MessageReactions.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 4194304) != 0) { - stream.readString(exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_restrictionReason object = TL_restrictionReason.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + restriction_reason.add(object); + } } } @@ -68995,14 +69568,20 @@ public void serializeToStream(AbstractSerializedData stream) { reactions.serializeToStream(stream); } if ((flags & 4194304) != 0) { - stream.writeString(""); + stream.writeInt32(0x1cb5c415); + int count = restriction_reason.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + restriction_reason.get(a).serializeToStream(stream); + } } writeAttachPath(stream); } } - public static class TL_message_layer104 extends TL_message { - public static final int constructor = 0x44f9b43d; + public static class TL_message_layer104_2 extends TL_message { + public static final int constructor = 0x1c9b1027; + public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -69013,6 +69592,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { post = (flags & 16384) != 0; from_scheduled = (flags & 262144) != 0; legacy = (flags & 524288) != 0; + edit_hide = (flags & 2097152) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { from_id = new TLRPC.TL_peerUser(); @@ -69073,6 +69653,12 @@ public void readParams(AbstractSerializedData stream, boolean exception) { if ((flags & 131072) != 0) { grouped_id = stream.readInt64(exception); } + if ((flags & 1048576) != 0) { + reactions = MessageReactions.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 4194304) != 0) { + stream.readString(exception); + } } public void serializeToStream(AbstractSerializedData stream) { @@ -69084,6 +69670,7 @@ public void serializeToStream(AbstractSerializedData stream) { flags = post ? (flags | 16384) : (flags &~ 16384); flags = from_scheduled ? (flags | 262144) : (flags &~ 262144); flags = legacy ? (flags | 524288) : (flags &~ 524288); + flags = edit_hide ? (flags | 2097152) : (flags &~ 2097152); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 256) != 0) { @@ -69127,30 +69714,39 @@ public void serializeToStream(AbstractSerializedData stream) { if ((flags & 131072) != 0) { stream.writeInt64(grouped_id); } + if ((flags & 1048576) != 0) { + reactions.serializeToStream(stream); + } + if ((flags & 4194304) != 0) { + stream.writeString(""); + } writeAttachPath(stream); } } - public static class TL_message_old6 extends TL_message { - public static final int constructor = 0x2bebfa86; - + public static class TL_message_layer104 extends TL_message { + public static final int constructor = 0x44f9b43d; public void readParams(AbstractSerializedData stream, boolean exception) { - flags = stream.readInt32(exception) | MESSAGE_FLAG_HAS_FROM_ID; - unread = (flags & 1) != 0; + flags = stream.readInt32(exception); out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; + silent = (flags & 8192) != 0; + post = (flags & 16384) != 0; + from_scheduled = (flags & 262144) != 0; + legacy = (flags & 524288) != 0; id = stream.readInt32(exception); - from_id = new TLRPC.TL_peerUser(); - from_id.user_id = stream.readInt32(exception); + if ((flags & 256) != 0) { + from_id = new TLRPC.TL_peerUser(); + from_id.user_id = stream.readInt32(exception); + } peer_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { - fwd_from = new TL_messageFwdHeader(); - fwd_from.from_id = new TLRPC.TL_peerUser(); - fwd_from.from_id.user_id = stream.readInt32(exception); - fwd_from.flags |= 1; - fwd_from.date = stream.readInt32(exception); + fwd_from = MessageFwdHeader.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 2048) != 0) { + via_bot_id = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to = new TLRPC.TL_messageReplyHeader(); @@ -69161,11 +69757,12 @@ public void readParams(AbstractSerializedData stream, boolean exception) { message = stream.readString(exception); if ((flags & 512) != 0) { media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); + if (media != null) { + ttl = media.ttl_seconds; //custom + } if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } - } else { - media = new TL_messageMediaEmpty(); } if ((flags & 64) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -69187,21 +69784,40 @@ public void readParams(AbstractSerializedData stream, boolean exception) { entities.add(object); } } + if ((flags & 1024) != 0) { + views = stream.readInt32(exception); + } + if ((flags & 32768) != 0) { + edit_date = stream.readInt32(exception); + } + if ((flags & 65536) != 0) { + post_author = stream.readString(exception); + } + if ((flags & 131072) != 0) { + grouped_id = stream.readInt64(exception); + } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); - flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); + flags = silent ? (flags | 8192) : (flags &~ 8192); + flags = post ? (flags | 16384) : (flags &~ 16384); + flags = from_scheduled ? (flags | 262144) : (flags &~ 262144); + flags = legacy ? (flags | 524288) : (flags &~ 524288); stream.writeInt32(flags); stream.writeInt32(id); - stream.writeInt32((int) from_id.user_id); + if ((flags & 256) != 0) { + stream.writeInt32((int) from_id.user_id); + } peer_id.serializeToStream(stream); if ((flags & 4) != 0) { - stream.writeInt32((int) fwd_from.from_id.user_id); - stream.writeInt32(fwd_from.date); + fwd_from.serializeToStream(stream); + } + if ((flags & 2048) != 0) { + stream.writeInt32((int) via_bot_id); } if ((flags & 8) != 0) { stream.writeInt32(reply_to.reply_to_msg_id); @@ -69222,16 +69838,28 @@ public void serializeToStream(AbstractSerializedData stream) { entities.get(a).serializeToStream(stream); } } + if ((flags & 1024) != 0) { + stream.writeInt32(views); + } + if ((flags & 32768) != 0) { + stream.writeInt32(edit_date); + } + if ((flags & 65536) != 0) { + stream.writeString(post_author); + } + if ((flags & 131072) != 0) { + stream.writeInt64(grouped_id); + } writeAttachPath(stream); } } - public static class TL_message_old5 extends TL_message { - public static final int constructor = 0xf07814c8; + public static class TL_message_old6 extends TL_message { + public static final int constructor = 0x2bebfa86; public void readParams(AbstractSerializedData stream, boolean exception) { - flags = stream.readInt32(exception) | MESSAGE_FLAG_HAS_FROM_ID | MESSAGE_FLAG_HAS_MEDIA; + flags = stream.readInt32(exception) | MESSAGE_FLAG_HAS_FROM_ID; unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; @@ -69254,9 +69882,13 @@ public void readParams(AbstractSerializedData stream, boolean exception) { } date = stream.readInt32(exception); message = stream.readString(exception); - media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); - if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { - message = media.captionLegacy; + if ((flags & 512) != 0) { + media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); + if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { + message = media.captionLegacy; + } + } else { + media = new TL_messageMediaEmpty(); } if ((flags & 64) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); @@ -69299,7 +69931,9 @@ public void serializeToStream(AbstractSerializedData stream) { } stream.writeInt32(date); stream.writeString(message); - media.serializeToStream(stream); + if ((flags & 512) != 0) { + media.serializeToStream(stream); + } if ((flags & 64) != 0) { reply_markup.serializeToStream(stream); } @@ -69315,52 +69949,141 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_messageService_layer48 extends TL_messageService { - public static final int constructor = 0xc06b9607; - - - public void readParams(AbstractSerializedData stream, boolean exception) { - flags = stream.readInt32(exception); - unread = (flags & 1) != 0; - out = (flags & 2) != 0; - mentioned = (flags & 16) != 0; - media_unread = (flags & 32) != 0; - silent = (flags & 8192) != 0; - post = (flags & 16384) != 0; - id = stream.readInt32(exception); - if ((flags & 256) != 0) { - from_id = new TLRPC.TL_peerUser(); - from_id.user_id = stream.readInt32(exception); - } - peer_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); - if (from_id == null) { - from_id = peer_id; - } - date = stream.readInt32(exception); - action = MessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - flags = unread ? (flags | 1) : (flags &~ 1); - flags = out ? (flags | 2) : (flags &~ 2); - flags = mentioned ? (flags | 16) : (flags &~ 16); - flags = media_unread ? (flags | 32) : (flags &~ 32); - flags = silent ? (flags | 8192) : (flags &~ 8192); - flags = post ? (flags | 16384) : (flags &~ 16384); - stream.writeInt32(flags); - stream.writeInt32(id); - if ((flags & 256) != 0) { - stream.writeInt32((int) from_id.user_id); - } - peer_id.serializeToStream(stream); - stream.writeInt32(date); - action.serializeToStream(stream); - } - } - - public static class TL_message_old4 extends TL_message { - public static final int constructor = 0xc3060325; + public static class TL_message_old5 extends TL_message { + public static final int constructor = 0xf07814c8; + + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception) | MESSAGE_FLAG_HAS_FROM_ID | MESSAGE_FLAG_HAS_MEDIA; + unread = (flags & 1) != 0; + out = (flags & 2) != 0; + mentioned = (flags & 16) != 0; + media_unread = (flags & 32) != 0; + id = stream.readInt32(exception); + from_id = new TLRPC.TL_peerUser(); + from_id.user_id = stream.readInt32(exception); + peer_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 4) != 0) { + fwd_from = new TL_messageFwdHeader(); + fwd_from.from_id = new TLRPC.TL_peerUser(); + fwd_from.from_id.user_id = stream.readInt32(exception); + fwd_from.flags |= 1; + fwd_from.date = stream.readInt32(exception); + } + if ((flags & 8) != 0) { + reply_to = new TLRPC.TL_messageReplyHeader(); + reply_to.flags |= 16; + reply_to.reply_to_msg_id = stream.readInt32(exception); + } + date = stream.readInt32(exception); + message = stream.readString(exception); + media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); + if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { + message = media.captionLegacy; + } + if ((flags & 64) != 0) { + reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 128) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + entities.add(object); + } + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = unread ? (flags | 1) : (flags &~ 1); + flags = out ? (flags | 2) : (flags &~ 2); + flags = mentioned ? (flags | 16) : (flags &~ 16); + flags = media_unread ? (flags | 32) : (flags &~ 32); + stream.writeInt32(flags); + stream.writeInt32(id); + stream.writeInt32((int) from_id.user_id); + peer_id.serializeToStream(stream); + if ((flags & 4) != 0) { + stream.writeInt32((int) fwd_from.from_id.user_id); + stream.writeInt32(fwd_from.date); + } + if ((flags & 8) != 0) { + stream.writeInt32(reply_to.reply_to_msg_id); + } + stream.writeInt32(date); + stream.writeString(message); + media.serializeToStream(stream); + if ((flags & 64) != 0) { + reply_markup.serializeToStream(stream); + } + if ((flags & 128) != 0) { + stream.writeInt32(0x1cb5c415); + int count = entities.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + entities.get(a).serializeToStream(stream); + } + } + writeAttachPath(stream); + } + } + + public static class TL_messageService_layer48 extends TL_messageService { + public static final int constructor = 0xc06b9607; + + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + unread = (flags & 1) != 0; + out = (flags & 2) != 0; + mentioned = (flags & 16) != 0; + media_unread = (flags & 32) != 0; + silent = (flags & 8192) != 0; + post = (flags & 16384) != 0; + id = stream.readInt32(exception); + if ((flags & 256) != 0) { + from_id = new TLRPC.TL_peerUser(); + from_id.user_id = stream.readInt32(exception); + } + peer_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); + if (from_id == null) { + from_id = peer_id; + } + date = stream.readInt32(exception); + action = MessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = unread ? (flags | 1) : (flags &~ 1); + flags = out ? (flags | 2) : (flags &~ 2); + flags = mentioned ? (flags | 16) : (flags &~ 16); + flags = media_unread ? (flags | 32) : (flags &~ 32); + flags = silent ? (flags | 8192) : (flags &~ 8192); + flags = post ? (flags | 16384) : (flags &~ 16384); + stream.writeInt32(flags); + stream.writeInt32(id); + if ((flags & 256) != 0) { + stream.writeInt32((int) from_id.user_id); + } + peer_id.serializeToStream(stream); + stream.writeInt32(date); + action.serializeToStream(stream); + } + } + + public static class TL_message_old4 extends TL_message { + public static final int constructor = 0xc3060325; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -74251,21 +74974,6 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_updateGroupInvitePrivacyForbidden extends Update { - public static final int constructor = 0xccf08ad6; - - public long user_id; - - public void readParams(AbstractSerializedData stream, boolean exception) { - user_id = stream.readInt64(exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - stream.writeInt64(user_id); - } - } - public static class TL_updateChannelViewForumAsMessages extends Update { public static final int constructor = 0x7b68920; @@ -77195,10 +77903,12 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_messages_sendQuickReplyMessages extends TLObject { - public static final int constructor = 0x33153ad4; + public static final int constructor = 0x6c750de1; public InputPeer peer; public int shortcut_id; + public ArrayList id = new ArrayList<>(); + public ArrayList random_id = new ArrayList<>(); @Override public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { @@ -77210,6 +77920,18 @@ public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(shortcut_id); + stream.writeInt32(0x1cb5c415); + int count = id.size(); + stream.writeInt32(count); + for (int i = 0; i < count; ++i) { + stream.writeInt32(id.get(i)); + } + stream.writeInt32(0x1cb5c415); + count = random_id.size(); + stream.writeInt32(count); + for (int i = 0; i < count; ++i) { + stream.writeInt64(random_id.get(i)); + } } } @@ -77487,6 +78209,182 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_inputBusinessBotRecipients extends TLObject { + public static final int constructor = 0xc4e5921e; + + public int flags; + public boolean existing_chats; + public boolean new_chats; + public boolean contacts; + public boolean non_contacts; + public boolean exclude_selected; + public ArrayList users = new ArrayList<>(); + public ArrayList exclude_users = new ArrayList<>(); + + public static TL_inputBusinessRecipients TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (constructor != TL_inputBusinessRecipients.constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_inputBusinessRecipients", constructor)); + } + return null; + } + TL_inputBusinessRecipients result = new TL_inputBusinessRecipients(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + existing_chats = (flags & 1) != 0; + new_chats = (flags & 2) != 0; + contacts = (flags & 4) != 0; + non_contacts = (flags & 8) != 0; + exclude_selected = (flags & 32) != 0; + if ((flags & 16) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int i = 0; i < count; ++i) { + users.add(InputUser.TLdeserialize(stream, stream.readInt32(exception), exception)); + } + } + if ((flags & 64) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int i = 0; i < count; ++i) { + exclude_users.add(InputUser.TLdeserialize(stream, stream.readInt32(exception), exception)); + } + } + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = existing_chats ? (flags | 1) : (flags &~ 1); + flags = new_chats ? (flags | 2) : (flags &~ 2); + flags = contacts ? (flags | 4) : (flags &~ 4); + flags = non_contacts ? (flags | 8) : (flags &~ 8); + flags = exclude_selected ? (flags | 32) : (flags &~ 32); + stream.writeInt32(flags); + if ((flags & 16) != 0) { + stream.writeInt32(0x1cb5c415); + final int count = users.size(); + stream.writeInt32(count); + for (int i = 0; i < count; ++i) { + users.get(i).serializeToStream(stream); + } + } + if ((flags & 64) != 0) { + stream.writeInt32(0x1cb5c415); + final int count = exclude_users.size(); + stream.writeInt32(count); + for (int i = 0; i < count; ++i) { + exclude_users.get(i).serializeToStream(stream); + } + } + } + } + + public static class TL_businessBotRecipients extends TLObject { + public static final int constructor = 0xb88cf373; + + public int flags; + public boolean existing_chats; + public boolean new_chats; + public boolean contacts; + public boolean non_contacts; + public boolean exclude_selected; + public ArrayList users = new ArrayList<>(); + public ArrayList exclude_users = new ArrayList<>(); + + public static TL_businessBotRecipients TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (constructor != TL_businessBotRecipients.constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_businessBotRecipients", constructor)); + } + return null; + } + TL_businessBotRecipients result = new TL_businessBotRecipients(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + existing_chats = (flags & 1) != 0; + new_chats = (flags & 2) != 0; + contacts = (flags & 4) != 0; + non_contacts = (flags & 8) != 0; + exclude_selected = (flags & 32) != 0; + if ((flags & 16) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int i = 0; i < count; ++i) { + users.add(stream.readInt64(exception)); + } + } + if ((flags & 64) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int i = 0; i < count; ++i) { + exclude_users.add(stream.readInt64(exception)); + } + } + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = existing_chats ? (flags | 1) : (flags &~ 1); + flags = new_chats ? (flags | 2) : (flags &~ 2); + flags = contacts ? (flags | 4) : (flags &~ 4); + flags = non_contacts ? (flags | 8) : (flags &~ 8); + flags = exclude_selected ? (flags | 32) : (flags &~ 32); + stream.writeInt32(flags); + if ((flags & 16) != 0) { + stream.writeInt32(0x1cb5c415); + final int count = users.size(); + stream.writeInt32(count); + for (int i = 0; i < count; ++i) { + stream.writeInt64(users.get(i)); + } + } + if ((flags & 64) != 0) { + stream.writeInt32(0x1cb5c415); + final int count = exclude_users.size(); + stream.writeInt32(count); + for (int i = 0; i < count; ++i) { + stream.writeInt64(exclude_users.get(i)); + } + } + } + } + public static class TL_inputBusinessRecipients extends TLObject { public static final int constructor = 0x6f8b32aa; @@ -77620,12 +78518,12 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_connectedBot extends TLObject { - public static int constructor = 0xe7e999e7; + public static int constructor = 0xbd068601; public int flags; public boolean can_reply; public long bot_id; - public TL_businessRecipients recipients; + public TL_businessBotRecipients recipients; public static TL_connectedBot TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (constructor != TL_connectedBot.constructor) { @@ -77644,7 +78542,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_reply = (flags & 1) != 0; bot_id = stream.readInt64(exception); - recipients = TL_businessRecipients.TLdeserialize(stream, stream.readInt32(exception), exception); + recipients = TL_businessBotRecipients.TLdeserialize(stream, stream.readInt32(exception), exception); } @Override @@ -77720,13 +78618,13 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_account_updateConnectedBot extends TLObject { - public static int constructor = 0x9c2d527d; + public static int constructor = 0x43d8521d; public int flags; public boolean can_reply; public boolean deleted; public InputUser bot; - public TL_inputBusinessRecipients recipients; + public TL_inputBusinessBotRecipients recipients; @Override public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { @@ -77780,6 +78678,875 @@ public static class Vector extends TLObject { public ArrayList objects = new ArrayList<>(); } + public static class TL_account_toggleConnectedBotPaused extends TLObject { + public static final int constructor = 0x646E1097; + + public InputPeer peer; + public boolean paused; + + @Override + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return Bool.TLdeserialize(stream, constructor, exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + peer.serializeToStream(stream); + stream.writeBool(paused); + } + } + + public static class TL_account_disablePeerConnectedBot extends TLObject { + public static final int constructor = 0x5e437ed9; + + public InputPeer peer; + + @Override + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return Bool.TLdeserialize(stream, constructor, exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + peer.serializeToStream(stream); + } + } + + public static class TL_businessIntro extends TLObject { + public static int constructor = 0x5a0a066d; + + public int flags; + public String title; + public String description; + public Document sticker; + + public static TL_businessIntro TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (constructor != TL_businessIntro.constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_businessIntro", constructor)); + } + return null; + } + TL_businessIntro result = new TL_businessIntro(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + title = stream.readString(exception); + description = stream.readString(exception); + if ((flags & 1) != 0) { + sticker = Document.TLdeserialize(stream, stream.readInt32(exception), exception); + } + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + stream.writeString(title); + stream.writeString(description); + if ((flags & 1) != 0) { + sticker.serializeToStream(stream); + } + } + } + + public static class TL_inputBusinessIntro extends TLObject { + public static int constructor = 0x9c469cd; + + public int flags; + public String title; + public String description; + public InputDocument sticker; + + public static TL_inputBusinessIntro TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (constructor != TL_inputBusinessIntro.constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_inputBusinessIntro", constructor)); + } + return null; + } + TL_inputBusinessIntro result = new TL_inputBusinessIntro(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + title = stream.readString(exception); + description = stream.readString(exception); + if ((flags & 1) != 0) { + sticker = InputDocument.TLdeserialize(stream, stream.readInt32(exception), exception); + } + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + stream.writeString(title); + stream.writeString(description); + if ((flags & 1) != 0) { + sticker.serializeToStream(stream); + } + } + } + + public static class TL_account_updateBusinessIntro extends TLObject { + public static final int constructor = 0xa614d034; + + public int flags; + public TL_inputBusinessIntro intro; + + @Override + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return Bool.TLdeserialize(stream, constructor, exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + if ((flags & 1) != 0) { + intro.serializeToStream(stream); + } + } + } + + public static class TL_birthday extends TLObject { + public static final int constructor = 0x6c8e1e06; + + public int flags; + public int day; + public int month; + public int year; + + public static TL_birthday TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (constructor != TL_birthday.constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_birthday", constructor)); + } + return null; + } + TL_birthday result = new TL_birthday(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + day = stream.readInt32(exception); + month = stream.readInt32(exception); + if ((flags & 1) != 0) { + year = stream.readInt32(exception); + } + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + stream.writeInt32(day); + stream.writeInt32(month); + if ((flags & 1) != 0) { + stream.writeInt32(year); + } + } + } + + public static class TL_contactBirthday extends TLObject { + public static final int constructor = 0x1d998733; + + public long contact_id; + public TL_birthday birthday; + + public static TL_contactBirthday TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (constructor != TL_contactBirthday.constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_contactBirthday", constructor)); + } + return null; + } + TL_contactBirthday result = new TL_contactBirthday(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + contact_id = stream.readInt64(exception); + birthday = TL_birthday.TLdeserialize(stream, stream.readInt32(exception), exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt64(contact_id); + birthday.serializeToStream(stream); + } + } + + public static class TL_contacts_contactBirthdays extends TLObject { + public static final int constructor = 0x114ff30d; + + public ArrayList contacts = new ArrayList<>(); + public ArrayList users = new ArrayList<>(); + + public static TL_contacts_contactBirthdays TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (constructor != TL_contacts_contactBirthdays.constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_contacts_contactBirthdays", constructor)); + } + return null; + } + TL_contacts_contactBirthdays result = new TL_contacts_contactBirthdays(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int i = 0; i < count; ++i) { + contacts.add(TL_contactBirthday.TLdeserialize(stream, stream.readInt32(exception), exception)); + } + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int i = 0; i < count; ++i) { + users.add(User.TLdeserialize(stream, stream.readInt32(exception), exception)); + } + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(0x1cb5c415); + int count = contacts.size(); + stream.writeInt32(count); + for (int i = 0; i < count; ++i) { + contacts.get(i).serializeToStream(stream); + } + stream.writeInt32(0x1cb5c415); + count = users.size(); + stream.writeInt32(count); + for (int i = 0; i < count; ++i) { + users.get(i).serializeToStream(stream); + } + } + } + + public static class TL_account_updateBirthday extends TLObject { + public static final int constructor = 0xcc6e0c11; + + public int flags; + public TL_birthday birthday; + + @Override + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return Bool.TLdeserialize(stream, constructor, exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + if ((flags & 1) != 0) { + birthday.serializeToStream(stream); + } + } + } + + public static class TL_account_getBirthdays extends TLObject { + public static final int constructor = 0xdaeda864; + + public int flags; + public TL_birthday birthday; + + @Override + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_contacts_contactBirthdays.TLdeserialize(stream, constructor, exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + } + } + + public static class TL_missingInvitee extends TLObject { + public static final int constructor = 0x628c9224; + + public int flags; + public boolean premium_would_allow_invite; + public boolean premium_required_for_pm; + public long user_id; + + public static TL_missingInvitee TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (constructor != TL_missingInvitee.constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_missingInvitee", constructor)); + } + return null; + } + TL_missingInvitee result = new TL_missingInvitee(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + premium_would_allow_invite = (flags & 1) != 0; + premium_required_for_pm = (flags & 2) != 0; + user_id = stream.readInt64(exception); + } + + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = premium_would_allow_invite ? (flags | 1) : (flags &~ 1); + flags = premium_required_for_pm ? (flags | 2) : (flags &~ 2); + stream.writeInt32(flags); + stream.writeInt64(user_id); + } + } + + public static class TL_messages_invitedUsers extends TLObject { + public static final int constructor = 0x7f5defa6; + + public Updates updates; + public ArrayList missing_invitees = new ArrayList<>(); + + public static TL_messages_invitedUsers TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (constructor != TL_messages_invitedUsers.constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_messages_invitedUsers", constructor)); + } + return null; + } + TL_messages_invitedUsers result = new TL_messages_invitedUsers(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + updates = Updates.TLdeserialize(stream, stream.readInt32(exception), exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_missingInvitee object = TL_missingInvitee.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + missing_invitees.add(object); + } + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + updates.serializeToStream(stream); + stream.writeInt32(0x1cb5c415); + int count = missing_invitees.size(); + stream.writeInt32(count); + } + } + + public static class TL_account_updatePersonalChannel extends TLObject { + public static final int constructor = 0xd94305e0; + + public InputChannel channel; + + @Override + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return Bool.TLdeserialize(stream, constructor, exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + channel.serializeToStream(stream); + } + } + + public static class TL_channels_restrictSponsoredMessages extends TLObject { + public static final int constructor = 0x9ae91519; + + public InputChannel channel; + public boolean restricted; + + @Override + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return Updates.TLdeserialize(stream, constructor, exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + channel.serializeToStream(stream); + stream.writeBool(restricted); + } + } + + public static class TL_dataJSON extends TLObject { + public static final int constructor = 0x7d748d04; + + public String data; + + public static TL_dataJSON TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_dataJSON.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_dataJSON", constructor)); + } else { + return null; + } + } + TL_dataJSON result = new TL_dataJSON(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + data = stream.readString(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(data); + } + } + + public static class TL_inputBusinessChatLink extends TLObject { + public static final int constructor = 0x11679fa7; + + public int flags; + public String message; + public ArrayList entities = new ArrayList<>(); + public String title; + + public static TL_inputBusinessChatLink TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_inputBusinessChatLink.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_inputBusinessChatLink", constructor)); + } else { + return null; + } + } + TL_inputBusinessChatLink result = new TL_inputBusinessChatLink(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + message = stream.readString(exception); + if ((flags & 1) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + entities.add(object); + } + } + if ((flags & 2) != 0) { + title = stream.readString(exception); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + stream.writeString(message); + if ((flags & 1) != 0) { + stream.writeInt32(0x1cb5c415); + int count = entities.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + entities.get(a).serializeToStream(stream); + } + } + if ((flags & 2) != 0) { + stream.writeString(title); + } + } + } + + public static class TL_businessChatLink extends TLObject { + public static final int constructor = 0xb4ae666f; + + public int flags; + public String link; + public String message; + public ArrayList entities = new ArrayList<>(); + public String title; + public int views; + + public static TL_businessChatLink TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_businessChatLink.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_businessChatLink", constructor)); + } else { + return null; + } + } + TL_businessChatLink result = new TL_businessChatLink(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + link = stream.readString(exception); + message = stream.readString(exception); + if ((flags & 1) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + entities.add(object); + } + } + if ((flags & 2) != 0) { + title = stream.readString(exception); + } + views = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + stream.writeString(link); + stream.writeString(message); + if ((flags & 1) != 0) { + stream.writeInt32(0x1cb5c415); + int count = entities.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + entities.get(a).serializeToStream(stream); + } + } + if ((flags & 2) != 0) { + stream.writeString(title); + } + stream.writeInt32(views); + } + } + + public static class TL_account_businessChatLinks extends TLObject { + public static final int constructor = 0xec43a2d1; + + public ArrayList links = new ArrayList<>(); + public ArrayList chats = new ArrayList<>(); + public ArrayList users = new ArrayList<>(); + + public static TL_account_businessChatLinks TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_account_businessChatLinks.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_account_businessChatLinks", constructor)); + } else { + return null; + } + } + TL_account_businessChatLinks result = new TL_account_businessChatLinks(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_businessChatLink object = TL_businessChatLink.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + links.add(object); + } + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + chats.add(object); + } + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + users.add(object); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(0x1cb5c415); + int count = links.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + links.get(a).serializeToStream(stream); + } + stream.writeInt32(0x1cb5c415); + count = chats.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + chats.get(a).serializeToStream(stream); + } + stream.writeInt32(0x1cb5c415); + count = users.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + users.get(a).serializeToStream(stream); + } + } + } + + public static class TL_account_resolvedBusinessChatLinks extends TLObject { + public static final int constructor = 0x9a23af21; + + public int flags; + public Peer peer; + public String message; + public ArrayList entities = new ArrayList<>(); + public ArrayList chats = new ArrayList<>(); + public ArrayList users = new ArrayList<>(); + + public static TL_account_resolvedBusinessChatLinks TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_account_resolvedBusinessChatLinks.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_account_businessChatLinks", constructor)); + } else { + return null; + } + } + TL_account_resolvedBusinessChatLinks result = new TL_account_resolvedBusinessChatLinks(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); + message = stream.readString(exception); + if ((flags & 1) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + entities.add(object); + } + } + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + chats.add(object); + } + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + users.add(object); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + peer.serializeToStream(stream); + stream.writeString(message); + if ((flags & 1) != 0) { + stream.writeInt32(0x1cb5c415); + int count = entities.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + entities.get(a).serializeToStream(stream); + } + } + stream.writeInt32(0x1cb5c415); + int count = chats.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + chats.get(a).serializeToStream(stream); + } + stream.writeInt32(0x1cb5c415); + count = users.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + users.get(a).serializeToStream(stream); + } + } + } + + public static class TL_account_createBusinessChatLink extends TLObject { + public static final int constructor = 0x8851e68e; + + public TL_inputBusinessChatLink link; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_businessChatLink.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + link.serializeToStream(stream); + } + } + + public static class TL_account_editBusinessChatLink extends TLObject { + public static final int constructor = 0x8c3410af; + + public String slug; + public TL_inputBusinessChatLink link; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_businessChatLink.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(slug); + link.serializeToStream(stream); + } + } + + public static class TL_account_deleteBusinessChatLink extends TLObject { + public static final int constructor = 0x60073674; + + public String slug; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return Bool.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(slug); + } + } + + public static class TL_account_getBusinessChatLinks extends TLObject { + public static final int constructor = 0x6f70dde1; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_account_businessChatLinks.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + } + } + + public static class TL_account_resolveBusinessChatLink extends TLObject { + public static final int constructor = 0x5492e5ee; + + public String slug; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_account_resolvedBusinessChatLinks.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(slug); + } + } + // NekoX public static class TL_account_setContentSettings extends TLObject { public static int constructor = 0xb574b16b; @@ -77837,5 +79604,4 @@ public void readParams(AbstractSerializedData stream, boolean exception) { } } - } diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_fragment.java b/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_fragment.java new file mode 100644 index 0000000000..8bbc3b9cf1 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_fragment.java @@ -0,0 +1,126 @@ +package org.telegram.tgnet.tl; + +import org.telegram.tgnet.AbstractSerializedData; +import org.telegram.tgnet.TLObject; +import org.telegram.tgnet.TLRPC; + +public class TL_fragment { + + public static class InputCollectible extends TLObject { + public static InputCollectible TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + InputCollectible result = null; + switch (constructor) { + case TL_inputCollectibleUsername.constructor: + result = new TL_inputCollectibleUsername(); + break; + case TL_inputCollectiblePhone.constructor: + result = new TL_inputCollectiblePhone(); + break; + } + if (result == null && exception) { + throw new RuntimeException(String.format("can't parse magic %x in InputCollectible", constructor)); + } + if (result != null) { + result.readParams(stream, exception); + } + return result; + } + } + + public static class TL_inputCollectibleUsername extends InputCollectible { + public static final int constructor = 0xe39460a9; + + public String username; + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(username); + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + username = stream.readString(exception); + } + } + + public static class TL_inputCollectiblePhone extends InputCollectible { + public static final int constructor = 0xa2e214a4; + + public String phone; + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(phone); + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + phone = stream.readString(exception); + } + } + + public static class TL_collectibleInfo extends TLObject { + public static final int constructor = 0x6ebdff91; + + public int purchase_date; + public String currency; + public long amount; + public String crypto_currency; + public long crypto_amount; + public String url; + + public static TL_collectibleInfo TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_collectibleInfo.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_collectibleInfo", constructor)); + } else { + return null; + } + } + TL_collectibleInfo result = new TL_collectibleInfo(); + result.readParams(stream, exception); + return result; + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(purchase_date); + stream.writeString(currency); + stream.writeInt64(amount); + stream.writeString(crypto_currency); + stream.writeInt64(crypto_amount); + stream.writeString(url); + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + purchase_date = stream.readInt32(exception); + currency = stream.readString(exception); + amount = stream.readInt64(exception); + crypto_currency = stream.readString(exception); + crypto_amount = stream.readInt64(exception); + url = stream.readString(exception); + } + } + + public static class TL_getCollectibleInfo extends TLObject { + public static final int constructor = 0xbe1e85ba; + + public InputCollectible collectible; + + @Override + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_collectibleInfo.TLdeserialize(stream, constructor, exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + collectible.serializeToStream(stream); + } + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stats.java b/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stats.java new file mode 100644 index 0000000000..2b34ec8fa2 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stats.java @@ -0,0 +1,1207 @@ +package org.telegram.tgnet.tl; + +import org.telegram.tgnet.AbstractSerializedData; +import org.telegram.tgnet.TLObject; +import org.telegram.tgnet.TLRPC; + +import java.util.ArrayList; + +public class TL_stats { + public static class TL_megagroupStats extends TLObject { + public static final int constructor = 0xef7ff916; + public TL_statsDateRangeDays period; + public TL_statsAbsValueAndPrev members; + public TL_statsAbsValueAndPrev messages; + public TL_statsAbsValueAndPrev viewers; + public TL_statsAbsValueAndPrev posters; + public StatsGraph growth_graph; + public StatsGraph members_graph; + public StatsGraph new_members_by_source_graph; + public StatsGraph languages_graph; + public StatsGraph messages_graph; + public StatsGraph actions_graph; + public StatsGraph top_hours_graph; + public StatsGraph weekdays_graph; + public ArrayList top_posters = new ArrayList<>(); + public ArrayList top_admins = new ArrayList<>(); + public ArrayList top_inviters = new ArrayList<>(); + public ArrayList users = new ArrayList<>(); + + public static TL_megagroupStats TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_megagroupStats.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_stats_megagroupStats", constructor)); + } else { + return null; + } + } + TL_megagroupStats result = new TL_megagroupStats(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + period = TL_statsDateRangeDays.TLdeserialize(stream, stream.readInt32(exception), exception); + members = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); + messages = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); + viewers = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); + posters = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); + growth_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + members_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + new_members_by_source_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + languages_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + messages_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + actions_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + top_hours_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + weekdays_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_statsGroupTopPoster object = TL_statsGroupTopPoster.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + top_posters.add(object); + } + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_statsGroupTopAdmin object = TL_statsGroupTopAdmin.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + top_admins.add(object); + } + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_statsGroupTopInviter object = TL_statsGroupTopInviter.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + top_inviters.add(object); + } + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TLRPC.User object = TLRPC.User.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + users.add(object); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + period.serializeToStream(stream); + members.serializeToStream(stream); + messages.serializeToStream(stream); + viewers.serializeToStream(stream); + posters.serializeToStream(stream); + growth_graph.serializeToStream(stream); + members_graph.serializeToStream(stream); + new_members_by_source_graph.serializeToStream(stream); + languages_graph.serializeToStream(stream); + messages_graph.serializeToStream(stream); + actions_graph.serializeToStream(stream); + top_hours_graph.serializeToStream(stream); + weekdays_graph.serializeToStream(stream); + stream.writeInt32(0x1cb5c415); + int count = top_posters.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + top_posters.get(a).serializeToStream(stream); + } + stream.writeInt32(0x1cb5c415); + count = top_admins.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + top_admins.get(a).serializeToStream(stream); + } + stream.writeInt32(0x1cb5c415); + count = top_inviters.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + top_inviters.get(a).serializeToStream(stream); + } + stream.writeInt32(0x1cb5c415); + count = users.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + users.get(a).serializeToStream(stream); + } + } + } + + public static abstract class StatsGraph extends TLObject { + + public float rate; // custom + + public static StatsGraph TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + StatsGraph result = null; + switch (constructor) { + case TL_statsGraph.constructor: + result = new TL_statsGraph(); + break; + case TL_statsGraphAsync.constructor: + result = new TL_statsGraphAsync(); + break; + case TL_statsGraphError.constructor: + result = new TL_statsGraphError(); + break; + } + if (result == null && exception) { + throw new RuntimeException(String.format("can't parse magic %x in StatsGraph", constructor)); + } + if (result != null) { + result.readParams(stream, exception); + } + return result; + } + } + + public static class TL_statsGraph extends StatsGraph { + public static final int constructor = 0x8ea464b6; + + public int flags; + public TLRPC.TL_dataJSON json; + public String zoom_token; + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + json = TLRPC.TL_dataJSON.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 1) != 0) { + zoom_token = stream.readString(exception); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + json.serializeToStream(stream); + if ((flags & 1) != 0) { + stream.writeString(zoom_token); + } + } + } + + public static class TL_statsGraphAsync extends StatsGraph { + public static final int constructor = 0x4a27eb2d; + + public String token; + + public void readParams(AbstractSerializedData stream, boolean exception) { + token = stream.readString(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(token); + } + } + + public static class TL_statsGraphError extends StatsGraph { + public static final int constructor = 0xbedc9822; + + public String error; + + public void readParams(AbstractSerializedData stream, boolean exception) { + error = stream.readString(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(error); + } + } + + public static abstract class PostInteractionCounters extends TLObject { + + public static PostInteractionCounters TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + PostInteractionCounters result = null; + switch (constructor) { + case TL_postInteractionCountersStory.constructor: + result = new TL_postInteractionCountersStory(); + break; + case TL_postInteractionCountersMessage.constructor: + result = new TL_postInteractionCountersMessage(); + break; + } + if (result == null && exception) { + throw new RuntimeException(String.format("can't parse magic %x in PostInteractionCounters", constructor)); + } + if (result != null) { + result.readParams(stream, exception); + } + return result; + } + } + + public static class TL_postInteractionCountersStory extends PostInteractionCounters { + public final static int constructor = 0x8a480e27; + + public int story_id; + public int views; + public int forwards; + public int reactions; + + public void readParams(AbstractSerializedData stream, boolean exception) { + story_id = stream.readInt32(exception); + views = stream.readInt32(exception); + forwards = stream.readInt32(exception); + reactions = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(story_id); + stream.writeInt32(views); + stream.writeInt32(forwards); + stream.writeInt32(reactions); + } + } + + public static class TL_postInteractionCountersMessage extends PostInteractionCounters { + public static final int constructor = 0xe7058e7f; + + public int msg_id; + public int views; + public int forwards; + public int reactions; + + public void readParams(AbstractSerializedData stream, boolean exception) { + msg_id = stream.readInt32(exception); + views = stream.readInt32(exception); + forwards = stream.readInt32(exception); + reactions = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(msg_id); + stream.writeInt32(views); + stream.writeInt32(forwards); + stream.writeInt32(reactions); + } + } + + public static class TL_messageStats extends TLObject { + public final static int constructor = 0x7fe91c14; + + public StatsGraph views_graph; + public StatsGraph reactions_by_emotion_graph; + + public static TL_messageStats TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_messageStats.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_stats_messageStats", constructor)); + } else { + return null; + } + } + TL_messageStats result = new TL_messageStats(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + views_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + reactions_by_emotion_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + views_graph.serializeToStream(stream); + reactions_by_emotion_graph.serializeToStream(stream); + } + } + + public static class TL_statsGroupTopPoster extends TLObject { + public static final int constructor = 0x9d04af9b; + + public long user_id; + public int messages; + public int avg_chars; + + public static TL_statsGroupTopPoster TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_statsGroupTopPoster.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_statsGroupTopPoster", constructor)); + } else { + return null; + } + } + TL_statsGroupTopPoster result = new TL_statsGroupTopPoster(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + user_id = stream.readInt64(exception); + messages = stream.readInt32(exception); + avg_chars = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt64(user_id); + stream.writeInt32(messages); + stream.writeInt32(avg_chars); + } + } + + public static class TL_statsDateRangeDays extends TLObject { + public static final int constructor = 0xb637edaf; + + public int min_date; + public int max_date; + + public static TL_statsDateRangeDays TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_statsDateRangeDays.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_statsDateRangeDays", constructor)); + } else { + return null; + } + } + TL_statsDateRangeDays result = new TL_statsDateRangeDays(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + min_date = stream.readInt32(exception); + max_date = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(min_date); + stream.writeInt32(max_date); + } + } + + public static class TL_broadcastStats extends TLObject { + public static int constructor = 0x396ca5fc; + + public TL_statsDateRangeDays period; + public TL_statsAbsValueAndPrev followers; + public TL_statsAbsValueAndPrev views_per_post; + public TL_statsAbsValueAndPrev shares_per_post; + public TL_statsAbsValueAndPrev reactions_per_post; + public TL_statsAbsValueAndPrev views_per_story; + public TL_statsAbsValueAndPrev shares_per_story; + public TL_statsAbsValueAndPrev reactions_per_story; + public TL_statsPercentValue enabled_notifications; + public StatsGraph growth_graph; + public StatsGraph followers_graph; + public StatsGraph mute_graph; + public StatsGraph top_hours_graph; + public StatsGraph interactions_graph; + public StatsGraph iv_interactions_graph; + public StatsGraph views_by_source_graph; + public StatsGraph new_followers_by_source_graph; + public StatsGraph languages_graph; + public StatsGraph reactions_by_emotion_graph; + public StatsGraph story_interactions_graph; + public StatsGraph story_reactions_by_emotion_graph; + public ArrayList recent_posts_interactions = new ArrayList<>(); + + public static TL_broadcastStats TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_broadcastStats.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_stats_broadcastStats", constructor)); + } else { + return null; + } + } + TL_broadcastStats result = new TL_broadcastStats(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + period = TL_statsDateRangeDays.TLdeserialize(stream, stream.readInt32(exception), exception); + followers = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); + views_per_post = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); + shares_per_post = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); + reactions_per_post = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); + views_per_story = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); + shares_per_story = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); + reactions_per_story = TL_statsAbsValueAndPrev.TLdeserialize(stream, stream.readInt32(exception), exception); + enabled_notifications = TL_statsPercentValue.TLdeserialize(stream, stream.readInt32(exception), exception); + growth_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + followers_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + mute_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + top_hours_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + interactions_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + iv_interactions_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + views_by_source_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + new_followers_by_source_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + languages_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + reactions_by_emotion_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + story_interactions_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + story_reactions_by_emotion_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + PostInteractionCounters object = PostInteractionCounters.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + recent_posts_interactions.add(object); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + period.serializeToStream(stream); + followers.serializeToStream(stream); + views_per_post.serializeToStream(stream); + shares_per_post.serializeToStream(stream); + reactions_per_post.serializeToStream(stream); + views_per_story.serializeToStream(stream); + shares_per_story.serializeToStream(stream); + reactions_per_story.serializeToStream(stream); + enabled_notifications.serializeToStream(stream); + growth_graph.serializeToStream(stream); + followers_graph.serializeToStream(stream); + mute_graph.serializeToStream(stream); + top_hours_graph.serializeToStream(stream); + interactions_graph.serializeToStream(stream); + iv_interactions_graph.serializeToStream(stream); + views_by_source_graph.serializeToStream(stream); + new_followers_by_source_graph.serializeToStream(stream); + languages_graph.serializeToStream(stream); + reactions_by_emotion_graph.serializeToStream(stream); + story_interactions_graph.serializeToStream(stream); + story_reactions_by_emotion_graph.serializeToStream(stream); + stream.writeInt32(0x1cb5c415); + int count = recent_posts_interactions.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + recent_posts_interactions.get(a).serializeToStream(stream); + } + } + } + + public static class TL_getBroadcastStats extends TLObject { + public static final int constructor = 0xab42441a; + + public int flags; + public boolean dark; + public TLRPC.InputChannel channel; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_broadcastStats.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = dark ? (flags | 1) : (flags & ~1); + stream.writeInt32(flags); + channel.serializeToStream(stream); + } + } + + public static class TL_loadAsyncGraph extends TLObject { + public static final int constructor = 0x621d5fa0; + + public int flags; + public String token; + public long x; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return StatsGraph.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + stream.writeString(token); + if ((flags & 1) != 0) { + stream.writeInt64(x); + } + } + } + + public static class TL_getMegagroupStats extends TLObject { + public static final int constructor = 0xdcdf8607; + + public int flags; + public boolean dark; + public TLRPC.InputChannel channel; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_megagroupStats.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = dark ? (flags | 1) : (flags & ~1); + stream.writeInt32(flags); + channel.serializeToStream(stream); + } + } + + public static class TL_getMessagePublicForwards extends TLObject { + public static final int constructor = 0x5f150144; + + public TLRPC.InputChannel channel; + public int msg_id; + public String offset; + public int limit; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_publicForwards.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + channel.serializeToStream(stream); + stream.writeInt32(msg_id); + stream.writeString(offset); + stream.writeInt32(limit); + } + } + + public static class TL_getMessageStats extends TLObject { + public static final int constructor = 0xb6e0a3f5; + + public int flags; + public boolean dark; + public TLRPC.InputChannel channel; + public int msg_id; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_messageStats.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = dark ? (flags | 1) : (flags & ~1); + stream.writeInt32(flags); + channel.serializeToStream(stream); + stream.writeInt32(msg_id); + } + } + + public static class TL_getStoryPublicForwards extends TLObject { + public static final int constructor = 0xa6437ef6; + + public TLRPC.InputPeer peer; + public int id; + public String offset; + public int limit; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_publicForwards.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + peer.serializeToStream(stream); + stream.writeInt32(id); + stream.writeString(offset); + stream.writeInt32(limit); + } + } + + public static class TL_publicForwards extends TLObject { + public static final int constructor = 0x93037e20; + + public int flags; + public int count; + public ArrayList forwards = new ArrayList<>(); + public String next_offset; + public ArrayList chats = new ArrayList<>(); + public ArrayList users = new ArrayList<>(); + + public static TL_publicForwards TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_publicForwards.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_stats_publicForwards", constructor)); + } else { + return null; + } + } + TL_publicForwards result = new TL_publicForwards(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + count = stream.readInt32(exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + PublicForward object = PublicForward.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + forwards.add(object); + } + if ((flags & 1) != 0) { + next_offset = stream.readString(exception); + } + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TLRPC.Chat object = TLRPC.Chat.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + chats.add(object); + } + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TLRPC.User object = TLRPC.User.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + users.add(object); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + stream.writeInt32(count); + stream.writeInt32(0x1cb5c415); + int count = forwards.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + forwards.get(a).serializeToStream(stream); + } + if ((flags & 1) != 0) { + stream.writeString(next_offset); + } + stream.writeInt32(0x1cb5c415); + count = chats.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + chats.get(a).serializeToStream(stream); + } + stream.writeInt32(0x1cb5c415); + count = users.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + users.get(a).serializeToStream(stream); + } + } + } + + public static abstract class PublicForward extends TLObject { + + public static PublicForward TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + PublicForward result = null; + switch (constructor) { + case TL_stats.TL_publicForwardMessage.constructor: + result = new TL_stats.TL_publicForwardMessage(); + break; + case TL_stories.TL_publicForwardStory.constructor: + result = new TL_stories.TL_publicForwardStory(); + break; + } + if (result == null && exception) { + throw new RuntimeException(String.format("can't parse magic %x in PublicForward", constructor)); + } + if (result != null) { + result.readParams(stream, exception); + } + return result; + } + } + + public static class TL_publicForwardMessage extends PublicForward { + public static final int constructor = 0x1f2bf4a; + + public TLRPC.Message message; + + public void readParams(AbstractSerializedData stream, boolean exception) { + message = TLRPC.Message.TLdeserialize(stream, stream.readInt32(exception), exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + message.serializeToStream(stream); + } + } + + public static class TL_broadcastRevenueStats extends TLObject { + public static final int constructor = 0xd07b4bad; + + public StatsGraph top_hours_graph; + public StatsGraph revenue_graph; + public long current_balance; + public long available_balance; + public long overall_revenue; + public double usd_rate; + + public static TL_broadcastRevenueStats TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_broadcastRevenueStats.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_stats_broadcastRevenueStats", constructor)); + } else { + return null; + } + } + TL_broadcastRevenueStats result = new TL_broadcastRevenueStats(); + result.readParams(stream, exception); + return result; + } + + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + top_hours_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + revenue_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + current_balance = stream.readInt64(exception); + available_balance = stream.readInt64(exception); + overall_revenue = stream.readInt64(exception); + usd_rate = stream.readDouble(exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + top_hours_graph.serializeToStream(stream); + revenue_graph.serializeToStream(stream); + stream.writeInt64(current_balance); + stream.writeInt64(available_balance); + stream.writeInt64(overall_revenue); + stream.writeDouble(usd_rate); + } + } + + public static class TL_broadcastRevenueWithdrawalUrl extends TLObject { + public static final int constructor = 0xec659737; + + public String url; + + public static TL_broadcastRevenueWithdrawalUrl TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_broadcastRevenueWithdrawalUrl.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_stats_broadcastRevenueWithdrawalUrl", constructor)); + } else { + return null; + } + } + TL_broadcastRevenueWithdrawalUrl result = new TL_broadcastRevenueWithdrawalUrl(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + url = stream.readString(exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeString(url); + } + } + + public static class BroadcastRevenueTransaction extends TLObject { + public static BroadcastRevenueTransaction TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + BroadcastRevenueTransaction result = null; + switch (constructor) { + case TL_broadcastRevenueTransactionProceeds.constructor: + result = new TL_broadcastRevenueTransactionProceeds(); + break; + case TL_broadcastRevenueTransactionWithdrawal.constructor: + result = new TL_broadcastRevenueTransactionWithdrawal(); + break; + case TL_broadcastRevenueTransactionRefund.constructor: + result = new TL_broadcastRevenueTransactionRefund(); + break; + } + if (result == null && exception) { + throw new RuntimeException(String.format("can't parse magic %x in BroadcastRevenueTransaction", constructor)); + } + if (result != null) { + result.readParams(stream, exception); + } + return result; + } + } + + public static class TL_broadcastRevenueTransactionProceeds extends BroadcastRevenueTransaction { + public static final int constructor = 0x557e2cc4; + + public long amount; + public int from_date; + public int to_date; + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + amount = stream.readInt64(exception); + from_date = stream.readInt32(exception); + to_date = stream.readInt32(exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt64(amount); + stream.writeInt32(from_date); + stream.writeInt32(to_date); + } + } + + public static class TL_broadcastRevenueTransactionWithdrawal extends BroadcastRevenueTransaction { + public static final int constructor = 0x5a590978; + + public int flags; + public boolean pending; + public boolean failed; + public long amount; + public int date; + public String provider; + public int transaction_date; + public String transaction_url; + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + pending = (flags & 1) != 0; + failed = (flags & 4) != 0; + amount = stream.readInt64(exception); + date = stream.readInt32(exception); + provider = stream.readString(exception); + if ((flags & 2) != 0) { + transaction_date = stream.readInt32(exception); + transaction_url = stream.readString(exception); + } + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = pending ? (flags | 1) : (flags & ~1); + flags = failed ? (flags | 1) : (flags & ~1); + stream.writeInt64(amount); + stream.writeInt32(date); + stream.writeString(provider); + if ((flags & 2) != 0) { + stream.writeInt32(transaction_date); + stream.writeString(transaction_url); + } + } + } + + public static class TL_broadcastRevenueTransactionRefund extends BroadcastRevenueTransaction { + public static final int constructor = 0x42d30d2e; + + public long amount; + public int from_date; + public String provider; + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + amount = stream.readInt64(exception); + from_date = stream.readInt32(exception); + provider = stream.readString(exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt64(amount); + stream.writeInt32(from_date); + stream.writeString(provider); + } + } + + public static class TL_broadcastRevenueTransactions extends TLObject { + public static final int constructor = 0x87158466; + + public int count; + public ArrayList transactions = new ArrayList<>(); + + public static TL_broadcastRevenueTransactions TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_broadcastRevenueTransactions.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_stats_broadcastRevenueTransactions", constructor)); + } else { + return null; + } + } + TL_broadcastRevenueTransactions result = new TL_broadcastRevenueTransactions(); + result.readParams(stream, exception); + return result; + } + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + this.count = stream.readInt32(exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int i = 0; i < count; ++i) { + transactions.add(BroadcastRevenueTransaction.TLdeserialize(stream, stream.readInt32(exception), exception)); + } + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(this.count); + stream.writeInt32(0x1cb5c415); + int count = transactions.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + transactions.get(a).serializeToStream(stream); + } + } + } + + public static class TL_getBroadcastRevenueStats extends TLObject { + public static final int constructor = 0x75dfb671; + + public int flags; + public boolean dark; + public TLRPC.InputChannel channel; + + @Override + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_broadcastRevenueStats.TLdeserialize(stream, constructor, exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = dark ? (flags | 1) : (flags & ~1); + stream.writeInt32(flags); + channel.serializeToStream(stream); + } + } + + public static class TL_getBroadcastRevenueWithdrawalUrl extends TLObject { + public static final int constructor = 0x2a65ef73; + + public TLRPC.InputChannel channel; + public TLRPC.InputCheckPasswordSRP password; + + @Override + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_broadcastRevenueWithdrawalUrl.TLdeserialize(stream, constructor, exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + channel.serializeToStream(stream); + password.serializeToStream(stream); + } + } + + public static class TL_getBroadcastRevenueTransactions extends TLObject { + public static final int constructor = 0x69280f; + + public TLRPC.InputChannel channel; + public int offset; + public int limit; + + @Override + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TL_broadcastRevenueTransactions.TLdeserialize(stream, constructor, exception); + } + + @Override + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + channel.serializeToStream(stream); + stream.writeInt32(offset); + stream.writeInt32(limit); + } + } + + public static class TL_statsAbsValueAndPrev extends TLObject { + public static final int constructor = 0xcb43acde; + + public double current; + public double previous; + + public static TL_statsAbsValueAndPrev TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_statsAbsValueAndPrev.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_statsAbsValueAndPrev", constructor)); + } else { + return null; + } + } + TL_statsAbsValueAndPrev result = new TL_statsAbsValueAndPrev(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + current = stream.readDouble(exception); + previous = stream.readDouble(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeDouble(current); + stream.writeDouble(previous); + } + } + + public static class TL_statsGroupTopAdmin extends TLObject { + public static final int constructor = 0xd7584c87; + + public long user_id; + public int deleted; + public int kicked; + public int banned; + + public static TL_statsGroupTopAdmin TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_statsGroupTopAdmin.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_statsGroupTopAdmin", constructor)); + } else { + return null; + } + } + TL_statsGroupTopAdmin result = new TL_statsGroupTopAdmin(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + user_id = stream.readInt64(exception); + deleted = stream.readInt32(exception); + kicked = stream.readInt32(exception); + banned = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt64(user_id); + stream.writeInt32(deleted); + stream.writeInt32(kicked); + stream.writeInt32(banned); + } + } + + public static class TL_statsGroupTopInviter extends TLObject { + public static final int constructor = 0x535f779d; + + public long user_id; + public int invitations; + + public static TL_statsGroupTopInviter TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_statsGroupTopInviter.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_statsGroupTopInviter", constructor)); + } else { + return null; + } + } + TL_statsGroupTopInviter result = new TL_statsGroupTopInviter(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + user_id = stream.readInt64(exception); + invitations = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt64(user_id); + stream.writeInt32(invitations); + } + } + + public static class TL_statsPercentValue extends TLObject { + public static final int constructor = 0xcbce2fe0; + + public double part; + public double total; + + public static TL_statsPercentValue TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_statsPercentValue.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_statsPercentValue", constructor)); + } else { + return null; + } + } + TL_statsPercentValue result = new TL_statsPercentValue(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + part = stream.readDouble(exception); + total = stream.readDouble(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeDouble(part); + stream.writeDouble(total); + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stories.java b/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stories.java index cb0a885660..3fce977ca8 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stories.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stories.java @@ -4,7 +4,7 @@ import org.telegram.tgnet.AbstractSerializedData; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; -import org.telegram.tgnet.TLRPC.TL_statsPercentValue; +import org.telegram.tgnet.tl.TL_stats.TL_statsPercentValue; import org.telegram.ui.Stories.recorder.StoryPrivacyBottomSheet; import java.util.ArrayList; @@ -1128,6 +1128,28 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_stories_incrementStoryViews extends TLObject { + public static final int constructor = 0xb2028afb; + + public TLRPC.InputPeer peer; + public ArrayList id = new ArrayList<>(); + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return TLRPC.Bool.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + peer.serializeToStream(stream); + stream.writeInt32(0x1cb5c415); + int count = id.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + stream.writeInt32(id.get(a)); + } + } + } + public static class TL_stories_getStoryViewsList extends TLObject { public static final int constructor = 0x7ed23c57; @@ -1621,7 +1643,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { next_level_boosts = stream.readInt32(exception); } if ((flags & 2) != 0) { - premium_audience = TL_statsPercentValue.TLdeserialize(stream, stream.readInt32(exception), exception); + premium_audience = TL_stats.TL_statsPercentValue.TLdeserialize(stream, stream.readInt32(exception), exception); } boost_url = stream.readString(exception); if ((flags & 8) != 0) { @@ -2166,7 +2188,7 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_publicForwardStory extends TLRPC.PublicForward { + public static class TL_publicForwardStory extends TL_stats.PublicForward { public static final int constructor = 0xedf3add0; public TLRPC.Peer peer; @@ -3050,8 +3072,8 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_stats_storyStats extends TLObject { public final static int constructor = 0x50cd067c; - public TLRPC.StatsGraph views_graph; - public TLRPC.StatsGraph reactions_by_emotion_graph; + public TL_stats.StatsGraph views_graph; + public TL_stats.StatsGraph reactions_by_emotion_graph; public static TL_stats_storyStats TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_stats_storyStats.constructor != constructor) { @@ -3067,8 +3089,8 @@ public static TL_stats_storyStats TLdeserialize(AbstractSerializedData stream, i } public void readParams(AbstractSerializedData stream, boolean exception) { - views_graph = TLRPC.StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - reactions_by_emotion_graph = TLRPC.StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + views_graph = TL_stats.StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); + reactions_by_emotion_graph = TL_stats.StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBar.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBar.java index afbf3d6c10..4fd7f5c19b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBar.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBar.java @@ -20,6 +20,7 @@ import android.content.res.Configuration; import android.graphics.Canvas; import android.graphics.Color; +import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; @@ -83,7 +84,7 @@ public boolean canOpenMenu() { } private INavigationLayout.BackButtonState backButtonState = INavigationLayout.BackButtonState.BACK; - private UnreadImageView backButtonImageView; + public UnreadImageView backButtonImageView; private BackupImageView avatarSearchImageView; private Drawable backButtonDrawable; private SimpleTextView[] titleTextView = new SimpleTextView[2]; @@ -745,6 +746,9 @@ public void showActionMode(boolean animated, View extraView, View showingView, V if (occupyStatusBar && actionModeTop != null && !SharedConfig.noStatusBar) { animators.add(ObjectAnimator.ofFloat(actionModeTop, View.ALPHA, 0.0f, 1.0f)); } + if (actionModeExtraView != null) { + animators.add(ObjectAnimator.ofFloat(actionModeExtraView, View.TRANSLATION_Y, 0)); + } if (SharedConfig.noStatusBar) { if (ColorUtils.calculateLuminance(actionModeColor) < 0.7f) { AndroidUtilities.setLightStatusBar(((Activity) getContext()).getWindow(), false); @@ -833,6 +837,9 @@ public void onAnimationCancel(Animator animation) { actionModeTranslationView = translationView; } actionModeExtraView = extraView; + if (actionModeExtraView != null) { + actionModeExtraView.setTranslationY(0); + } actionModeShowingView = showingView; actionModeHidingViews = hidingViews; if (occupyStatusBar && actionModeTop != null && !SharedConfig.noStatusBar) { @@ -903,6 +910,9 @@ public void hideActionMode() { if (occupyStatusBar && actionModeTop != null && !SharedConfig.noStatusBar) { animators.add(ObjectAnimator.ofFloat(actionModeTop, View.ALPHA, 0.0f)); } + if (actionModeExtraView != null) { + animators.add(ObjectAnimator.ofFloat(actionModeExtraView, View.TRANSLATION_Y, actionModeExtraView.getMeasuredHeight())); + } if (SharedConfig.noStatusBar) { if (actionBarColor == 0) { NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.needCheckSystemBarColors); @@ -1916,7 +1926,7 @@ public void setDrawBackButton(boolean b) { private StaticLayout countLayout; - private class UnreadImageView extends AppCompatImageView { + public class UnreadImageView extends AppCompatImageView { public UnreadImageView(Context context) { super(context); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java index a2a6a442ba..b0271a69c9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java @@ -56,7 +56,7 @@ import org.telegram.messenger.R; import org.telegram.messenger.SharedConfig; import org.telegram.ui.Components.BackButtonMenu; -import org.telegram.ui.Components.BotWebViewSheet; +import org.telegram.ui.bots.BotWebViewSheet; import org.telegram.ui.Components.Bulletin; import org.telegram.ui.Components.ChatAttachAlert; import org.telegram.ui.Components.CubicBezierInterpolator; @@ -65,7 +65,6 @@ import org.telegram.ui.Components.GroupCallPip; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.LaunchActivity; -import org.telegram.ui.LogoutActivity; import org.telegram.ui.Stories.StoryViewer; import java.util.ArrayList; @@ -93,7 +92,7 @@ public boolean storyViewerAttached() { if (!fragmentsStack.isEmpty()) { lastFragment = fragmentsStack.get(fragmentsStack.size() - 1); } - return lastFragment != null && lastFragment.storyViewer != null && lastFragment.storyViewer.attachedToParent(); + return lastFragment != null && lastFragment.getLastStoryViewer() != null && lastFragment.getLastStoryViewer().attachedToParent(); } public class LayoutContainer extends FrameLayout { @@ -118,7 +117,7 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { if (!fragmentsStack.isEmpty()) { lastFragment = fragmentsStack.get(fragmentsStack.size() - 1); } - if (storyViewerAttached() && lastFragment.storyViewer.isFullyVisible() && !lastFragment.isStoryViewer(child)) { + if (storyViewerAttached() && lastFragment != null && lastFragment.getLastStoryViewer() != null && lastFragment.getLastStoryViewer().isFullyVisible() && lastFragment.getLastStoryViewer().windowView != child) { return true; } if (child instanceof ActionBar) { @@ -300,10 +299,7 @@ public void processMenuButtonsTouch(MotionEvent event) { if (shouldBeEnabled != enabled) { ripple.setState(shouldBeEnabled ? new int[]{android.R.attr.state_pressed, android.R.attr.state_enabled} : new int[]{}); if (shouldBeEnabled) { - try { - if (!NekoConfig.disableVibration.Bool()) - button.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + AndroidUtilities.vibrateCursor(button); } } } else if (event.getAction() == MotionEvent.ACTION_UP) { @@ -2626,11 +2622,8 @@ public int measureKeyboardHeight() { @Override public boolean dispatchTouchEvent(MotionEvent ev) { - if (getLastFragment() != null && getLastFragment().overlayStoryViewer != null && getLastFragment().overlayStoryViewer.attachedToParent()) { - return getLastFragment().overlayStoryViewer.windowView.dispatchTouchEvent(ev); - } - if (getLastFragment() != null && getLastFragment().storyViewer != null && getLastFragment().storyViewer.attachedToParent()) { - return getLastFragment().storyViewer.windowView.dispatchTouchEvent(ev); + if (getLastFragment() != null && getLastFragment().getLastStoryViewer() != null && getLastFragment().getLastStoryViewer().attachedToParent()) { + return getLastFragment().getLastStoryViewer().windowView.dispatchTouchEvent(ev); } return super.dispatchTouchEvent(ev); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java index 6684a261dc..0095795f43 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java @@ -1975,6 +1975,13 @@ public void showSubItem(int id, boolean animated) { } } + public void setSubItemShown(int id, boolean show) { + if (show) + showSubItem(id); + else + hideSubItem(id); + } + public int getVisibleSubItemsCount() { int count = 0; for (int i = 0; i < popupLayout.getItemsCount(); ++i) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java index 64d5b77093..0c75c2d05c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java @@ -22,7 +22,6 @@ import android.os.Build; import android.os.Bundle; import android.text.TextUtils; -import android.util.Log; import android.view.Menu; import android.view.MotionEvent; import android.view.View; @@ -54,7 +53,6 @@ import org.telegram.messenger.UserConfig; import org.telegram.tgnet.ConnectionsManager; import org.telegram.ui.Components.LayoutHelper; -import org.telegram.ui.Components.SizeNotifierFrameLayout; import org.telegram.ui.LaunchActivity; import org.telegram.ui.Stories.StoryViewer; @@ -70,7 +68,7 @@ public abstract class BaseFragment { protected boolean isFinished; protected boolean finishing; - protected Dialog visibleDialog; + public Dialog visibleDialog; protected int currentAccount = UserConfig.selectedAccount; public View fragmentView; @@ -89,8 +87,31 @@ public abstract class BaseFragment { private boolean removingFromStack; private PreviewDelegate previewDelegate; protected Theme.ResourcesProvider resourceProvider; - public StoryViewer storyViewer; - public StoryViewer overlayStoryViewer; + public ArrayList storyViewerStack; + + public StoryViewer getLastStoryViewer() { + if (storyViewerStack == null || storyViewerStack.isEmpty()) + return null; + for (int i = storyViewerStack.size() - 1; i >= 0; --i) { + if (storyViewerStack.get(i).isShown()) { + return storyViewerStack.get(i); + } + } + return null; + } + + public boolean hasStoryViewer() { + return storyViewerStack != null && !storyViewerStack.isEmpty(); + } + + public void clearStoryViewers() { + if (storyViewerStack == null || storyViewerStack.isEmpty()) + return; + for (int i = storyViewerStack.size() - 1; i >= 0; --i) { + storyViewerStack.get(i).release(); + } + storyViewerStack.clear(); + } public BaseFragment() { classGuid = ConnectionsManager.generateClassGuid(); @@ -222,14 +243,7 @@ public void clearViews() { } actionBar = null; } - if (storyViewer != null) { - storyViewer.release(); - storyViewer = null; - } - if (overlayStoryViewer != null) { - overlayStoryViewer.release(); - overlayStoryViewer = null; - } + clearStoryViewers(); parentLayout = null; } @@ -261,14 +275,7 @@ public void setParentLayout(INavigationLayout layout) { } if (parentLayout != null && parentLayout.getView().getContext() != fragmentView.getContext()) { fragmentView = null; - if (storyViewer != null) { - storyViewer.release(); - storyViewer = null; - } - if (overlayStoryViewer != null) { - overlayStoryViewer.release(); - overlayStoryViewer = null; - } + clearStoryViewers(); } } if (actionBar != null) { @@ -403,12 +410,9 @@ public void onResume() { if (actionBar != null) { actionBar.onResume(); } - if (storyViewer != null) { - storyViewer.onResume(); - storyViewer.updatePlayingMode(); - } - if (overlayStoryViewer != null) { - overlayStoryViewer.updatePlayingMode(); + if (getLastStoryViewer() != null) { + getLastStoryViewer().onResume(); + getLastStoryViewer().updatePlayingMode(); } } @@ -426,12 +430,9 @@ public void onPause() { } catch (Exception e) { FileLog.e(e); } - if (storyViewer != null) { - storyViewer.onPause(); - storyViewer.updatePlayingMode(); - } - if (overlayStoryViewer != null) { - overlayStoryViewer.updatePlayingMode(); + if (getLastStoryViewer() != null) { + getLastStoryViewer().onPause(); + getLastStoryViewer().updatePlayingMode(); } } @@ -470,11 +471,12 @@ public boolean onBackPressed() { } public boolean closeStoryViewer() { - if (overlayStoryViewer != null && overlayStoryViewer.isShown()) { - return overlayStoryViewer.onBackPressed(); - } - if (storyViewer != null && storyViewer.isShown()) { - return storyViewer.onBackPressed(); + if (storyViewerStack != null) { + for (int i = storyViewerStack.size() - 1; i >= 0; --i) { + if (storyViewerStack.get(i).isShown()) { + return storyViewerStack.get(i).onBackPressed(); + } + } } return false; } @@ -659,13 +661,13 @@ public Dialog showDialog(Dialog dialog, boolean allowInTransition, final Dialog. if (dialog == null || parentLayout == null || parentLayout.isTransitionAnimationInProgress() || parentLayout.isSwipeInProgress() || !allowInTransition && parentLayout.checkTransitionAnimation()) { return null; } - if (overlayStoryViewer != null && overlayStoryViewer.isShown()) { - overlayStoryViewer.showDialog(dialog); - return dialog; - } - if (storyViewer != null && storyViewer.isShown()) { - storyViewer.showDialog(dialog); - return dialog; + if (storyViewerStack != null) { + for (int i = storyViewerStack.size() - 1; i >= 0; --i) { + if (storyViewerStack.get(i).isShown()) { + storyViewerStack.get(i).showDialog(dialog); + return dialog; + } + } } try { if (visibleDialog != null) { @@ -967,8 +969,13 @@ public boolean hasForceLightStatusBar() { public int getNavigationBarColor() { int color = Theme.getColor(Theme.key_windowBackgroundGray, getResourceProvider()); - if (storyViewer != null && storyViewer.attachedToParent()) { - return storyViewer.getNavigationBarColor(color); + if (storyViewerStack != null) { + for (int i = storyViewerStack.size() - 1; i >= 0; --i) { + StoryViewer storyViewer = storyViewerStack.get(i); + if (storyViewer.attachedToParent()) { + color = storyViewer.getNavigationBarColor(color); + } + } } return color; } @@ -1015,7 +1022,7 @@ public void setRemovingFromStack(boolean b) { } public boolean isLightStatusBar() { - if (storyViewer != null && storyViewer.isShown()) { + if (getLastStoryViewer() != null && getLastStoryViewer().isShown()) { return false; } if (hasForceLightStatusBar() && !Theme.getCurrentTheme().isDark()) { @@ -1072,41 +1079,48 @@ public void onFragmentClosed() { } public void attachStoryViewer(ActionBarLayout.LayoutContainer parentLayout) { - if (storyViewer != null && storyViewer.attachedToParent()) { - AndroidUtilities.removeFromParent(storyViewer.windowView); - parentLayout.addView(storyViewer.windowView); - } - if (overlayStoryViewer != null && overlayStoryViewer.attachedToParent()) { - AndroidUtilities.removeFromParent(overlayStoryViewer.windowView); - parentLayout.addView(overlayStoryViewer.windowView); + if (storyViewerStack != null) { + for (int i = 0; i < storyViewerStack.size(); ++i) { + StoryViewer storyViewer = storyViewerStack.get(i); + if (storyViewer != null && storyViewer.attachedToParent()) { + AndroidUtilities.removeFromParent(storyViewer.windowView); + parentLayout.addView(storyViewer.windowView); + } + } } } public void detachStoryViewer() { - if (storyViewer != null && storyViewer.attachedToParent()) { - AndroidUtilities.removeFromParent(storyViewer.windowView); - } - if (overlayStoryViewer != null && overlayStoryViewer.attachedToParent()) { - AndroidUtilities.removeFromParent(overlayStoryViewer.windowView); + if (storyViewerStack != null) { + for (int i = 0; i < storyViewerStack.size(); ++i) { + StoryViewer storyViewer = storyViewerStack.get(i); + if (storyViewer != null && storyViewer.attachedToParent()) { + AndroidUtilities.removeFromParent(storyViewer.windowView); + } + } } } public boolean isStoryViewer(View child) { - if (storyViewer != null && child == storyViewer.windowView) { - return true; - } - if (overlayStoryViewer != null && child == overlayStoryViewer.windowView) { - return true; + if (storyViewerStack != null) { + for (int i = 0; i < storyViewerStack.size(); ++i) { + StoryViewer storyViewer = storyViewerStack.get(i); + if (storyViewer != null && child == storyViewer.windowView) { + return true; + } + } } return false; } public void setKeyboardHeightFromParent(int keyboardHeight) { - if (storyViewer != null) { - storyViewer.setKeyboardHeightFromParent(keyboardHeight); - } - if (overlayStoryViewer != null) { - overlayStoryViewer.setKeyboardHeightFromParent(keyboardHeight); + if (storyViewerStack != null) { + for (int i = 0; i < storyViewerStack.size(); ++i) { + StoryViewer storyViewer = storyViewerStack.get(i); + if (storyViewer != null) { + storyViewer.setKeyboardHeightFromParent(keyboardHeight); + } + } } } @@ -1115,20 +1129,29 @@ public interface PreviewDelegate { } public StoryViewer getOrCreateStoryViewer() { - if (storyViewer == null) { - storyViewer = new StoryViewer(this); + if (storyViewerStack == null) { + storyViewerStack = new ArrayList<>(); + } + if (storyViewerStack.isEmpty()) { + StoryViewer storyViewer = new StoryViewer(this); if (parentLayout != null && parentLayout.isSheet()) { storyViewer.fromBottomSheet = true; } + storyViewerStack.add(storyViewer); } - return storyViewer; + return storyViewerStack.get(0); } - public StoryViewer getOrCreateOverlayStoryViewer() { - if (overlayStoryViewer == null) { - overlayStoryViewer = new StoryViewer(this); + public StoryViewer createOverlayStoryViewer() { + if (storyViewerStack == null) { + storyViewerStack = new ArrayList<>(); } - return overlayStoryViewer; + StoryViewer storyViewer = new StoryViewer(this); + if (parentLayout != null && parentLayout.isSheet()) { + storyViewer.fromBottomSheet = true; + } + storyViewerStack.add(storyViewer); + return storyViewer; } public void onBottomSheetCreated() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheet.java index 137e210463..4f2d456723 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheet.java @@ -88,6 +88,7 @@ public class BottomSheet extends Dialog { public boolean scrollNavBar; public boolean occupyNavigationBar; protected boolean waitingKeyboard; + public FrameLayout topBulletinContainer; protected boolean useSmoothKeyboard; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/DrawerLayoutContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/DrawerLayoutContainer.java index ac16717631..d42327a6bb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/DrawerLayoutContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/DrawerLayoutContainer.java @@ -448,7 +448,7 @@ public boolean onTouchEvent(MotionEvent ev) { return true; } - if ((allowOpenDrawerBySwipe || drawerOpened) && allowOpenDrawer && parentActionBarLayout.getFragmentStack().size() == 1 && (parentActionBarLayout.getLastFragment().storyViewer == null || !parentActionBarLayout.getLastFragment().storyViewer.attachedToParent())) { + if ((allowOpenDrawerBySwipe || drawerOpened) && allowOpenDrawer && parentActionBarLayout.getFragmentStack().size() == 1 && (parentActionBarLayout.getLastFragment().getLastStoryViewer() == null || !parentActionBarLayout.getLastFragment().getLastStoryViewer().attachedToParent())) { if (ev != null && (ev.getAction() == MotionEvent.ACTION_DOWN || ev.getAction() == MotionEvent.ACTION_MOVE) && !startedTracking && !maybeStartTracking) { View scrollingChild = findScrollingChild(this, ev.getX(),ev.getY()); if (scrollingChild != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/OKLCH.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/OKLCH.java index 4766642bc1..a265496904 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/OKLCH.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/OKLCH.java @@ -130,8 +130,11 @@ public static int adapt(int baseColor, int hueColor) { double[] hueoklch = rgb2oklch(rgb(hueColor)); double[] oklch = rgb2oklch(rgb(baseColor)); oklch[2] = hueoklch[2]; - if (Double.isNaN(hueoklch[2])) { + if (Double.isNaN(hueoklch[2]) || hueoklch[1] < .08f) { oklch[1] = hueoklch[1]; + if (!Theme.isCurrentThemeDark() && oklch[0] < .8f) { + oklch[0] = Utilities.clamp(oklch[0] - .1, 1, 0); + } } return ColorUtils.setAlphaComponent(rgb(oklch2rgb(oklch)), Color.alpha(baseColor)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java index 1d3426d522..b810169ff0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java @@ -3250,6 +3250,7 @@ public void run() { public static TextPaint chat_replyNamePaint; public static TextPaint chat_replyTextPaint; public static TextPaint chat_quoteTextPaint; + public static TextPaint chat_titleLabelTextPaint; public static TextPaint chat_topicTextPaint; public static TextPaint chat_commentTextPaint; public static TextPaint chat_contextResult_titleTextPaint; @@ -3321,6 +3322,7 @@ public void run() { public static Drawable chat_shareIconDrawable; public static Drawable chat_replyIconDrawable; public static Drawable chat_closeIconDrawable; + public static Drawable chat_moreIconDrawable; public static Drawable chat_goIconDrawable; public static Drawable chat_botLinkDrawable; public static Drawable chat_botCardDrawable; @@ -4211,6 +4213,7 @@ public void run() { public static final String key_drawable_replyIcon = "drawableReplyIcon"; public static final String key_drawable_shareIcon = "drawableShareIcon"; public static final String key_drawable_closeIcon = "drawableCloseIcon"; + public static final String key_drawable_moreIcon = "drawableMoreIcon"; public static final String key_drawable_muteIconDrawable = "drawableMuteIcon"; public static final String key_drawable_lockIconDrawable = "drawableLockIcon"; public static final String key_drawable_chat_pollHintDrawableOut = "drawable_chat_pollHintDrawableOut"; @@ -6135,6 +6138,27 @@ public static Drawable createRadSelectorDrawable(int color, int topRad, int bott return stateListDrawable; } } + + public static Drawable createRadSelectorDrawable(int color, int rippleColor, int topRad, int bottomRad) { + if (Build.VERSION.SDK_INT >= 21) { + maskPaint.setColor(0xffffffff); + Drawable maskDrawable = new RippleRadMaskDrawable(topRad, bottomRad); + ColorStateList colorStateList = new ColorStateList( + new int[][]{StateSet.WILD_CARD}, + new int[]{rippleColor} + ); + return new RippleDrawable(colorStateList, createRoundRectDrawable(dp(topRad), dp(bottomRad), color), maskDrawable); + } else { + Drawable backgroundDrawable = createRoundRectDrawable(dp(topRad), dp(bottomRad), color); + Drawable pressedDrawable = new LayerDrawable(new Drawable[]{backgroundDrawable, createRoundRectDrawable(dp(topRad), dp(bottomRad), rippleColor)}); + StateListDrawable stateListDrawable = new StateListDrawable(); + stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, pressedDrawable); + stateListDrawable.addState(new int[]{android.R.attr.state_selected}, pressedDrawable); + stateListDrawable.addState(StateSet.WILD_CARD, backgroundDrawable); + return stateListDrawable; + } + } + public static Drawable createRadSelectorDrawable(int color, int topLeftRad, int topRightRad, int bottomRightRad, int bottomLeftRad) { if (Build.VERSION.SDK_INT >= 21) { maskPaint.setColor(0xffffffff); @@ -8578,6 +8602,7 @@ public static void createCommonMessageResources() { chat_replyNamePaint.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); chat_replyTextPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); chat_quoteTextPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); + chat_titleLabelTextPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); chat_topicTextPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); chat_topicTextPaint.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); chat_forwardNamePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); @@ -8609,6 +8634,7 @@ public static void createCommonMessageResources() { chat_replyTextPaint.setTextSize(dp(smallerDp)); chat_quoteTextPaint.setTextSize(dp(smallerDp - 1)); chat_topicTextPaint.setTextSize(dp(smallerDp - 1)); + chat_titleLabelTextPaint.setTextSize(dp(smallerDp - 2)); chat_forwardNamePaint.setTextSize(dp(smallerDp)); chat_adminPaint.setTextSize(dp(smallerDp - 1)); chat_msgTextCodePaint.setTextSize(dp(Math.max(Math.min(10, SharedConfig.fontSize - 1), SharedConfig.fontSize - 2))); @@ -8673,6 +8699,7 @@ public static void createCommonChatResources() { chat_replyTextPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); chat_topicTextPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); chat_topicTextPaint.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + chat_titleLabelTextPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); chat_commentTextPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); chat_instantViewPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); chat_instantViewPaint.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); @@ -8839,6 +8866,7 @@ public static void createChatResources(Context context, boolean fontsOnly) { chat_shareIconDrawable = resources.getDrawable(R.drawable.filled_button_share).mutate(); chat_replyIconDrawable = resources.getDrawable(R.drawable.filled_button_reply); chat_closeIconDrawable = resources.getDrawable(R.drawable.msg_voiceclose).mutate(); + chat_moreIconDrawable = resources.getDrawable(R.drawable.media_more).mutate(); chat_goIconDrawable = resources.getDrawable(R.drawable.filled_open_message); int rad = dp(2); @@ -8934,6 +8962,7 @@ public static void createChatResources(Context context, boolean fontsOnly) { addChatDrawable(key_drawable_msgStickerViews, chat_msgStickerViewsDrawable, key_chat_serviceText); addChatDrawable(key_drawable_replyIcon, chat_replyIconDrawable, key_chat_serviceIcon); addChatDrawable(key_drawable_closeIcon, chat_closeIconDrawable, key_chat_serviceIcon); + addChatDrawable(key_drawable_moreIcon, chat_moreIconDrawable, key_chat_serviceIcon); addChatDrawable(key_drawable_shareIcon, chat_shareIconDrawable, key_chat_serviceIcon); addChatDrawable(key_drawable_muteIconDrawable, chat_muteIconDrawable, key_chat_muteIcon); addChatDrawable(key_drawable_lockIconDrawable, chat_lockIconDrawable, key_chat_lockIcon); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java index 6cf74bf2ac..fa4d5fde7c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java @@ -73,7 +73,7 @@ public class ActionIntroActivity extends BaseFragment implements LocationControl private TextView titleTextView; private TextView descriptionText; private LinearLayout descriptionLayout; - private TextView[] desctiptionLines = new TextView[6]; + private TextView[] descriptionLines = new TextView[6]; private TextView descriptionText2; private Drawable drawable1; private Drawable drawable2; @@ -524,43 +524,43 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { linearLayout.setOrientation(LinearLayout.HORIZONTAL); descriptionLayout.addView(linearLayout, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 0, 0, 0, a != 2 ? 7 : 0)); - desctiptionLines[a * 2] = new TextView(context); - desctiptionLines[a * 2].setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); - desctiptionLines[a * 2].setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); - desctiptionLines[a * 2].setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); - desctiptionLines[a * 2].setText(String.format(LocaleController.isRTL ? ".%d" : "%d.", a + 1)); - desctiptionLines[a * 2].setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - - desctiptionLines[a * 2 + 1] = new TextView(context); - desctiptionLines[a * 2 + 1].setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); - desctiptionLines[a * 2 + 1].setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); - desctiptionLines[a * 2 + 1].setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); + descriptionLines[a * 2] = new TextView(context); + descriptionLines[a * 2].setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); + descriptionLines[a * 2].setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); + descriptionLines[a * 2].setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); + descriptionLines[a * 2].setText(String.format(LocaleController.isRTL ? ".%d" : "%d.", a + 1)); + descriptionLines[a * 2].setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + + descriptionLines[a * 2 + 1] = new TextView(context); + descriptionLines[a * 2 + 1].setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); + descriptionLines[a * 2 + 1].setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); + descriptionLines[a * 2 + 1].setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); if (a == 0) { - desctiptionLines[a * 2 + 1].setLinkTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteLinkText)); - desctiptionLines[a * 2 + 1].setHighlightColor(Theme.getColor(Theme.key_windowBackgroundWhiteLinkSelection)); + descriptionLines[a * 2 + 1].setLinkTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteLinkText)); + descriptionLines[a * 2 + 1].setHighlightColor(Theme.getColor(Theme.key_windowBackgroundWhiteLinkSelection)); String text = LocaleController.getString("AuthAnotherClientInfo1", R.string.AuthAnotherClientInfo1); SpannableStringBuilder spanned = new SpannableStringBuilder(text); int index1 = text.indexOf('*'); int index2 = text.lastIndexOf('*'); if (index1 != -1 && index2 != -1 && index1 != index2) { - desctiptionLines[a * 2 + 1].setMovementMethod(new AndroidUtilities.LinkMovementMethodMy()); + descriptionLines[a * 2 + 1].setMovementMethod(new AndroidUtilities.LinkMovementMethodMy()); spanned.replace(index2, index2 + 1, ""); spanned.replace(index1, index1 + 1, ""); spanned.setSpan(new URLSpanNoUnderline(LocaleController.getString("AuthAnotherClientDownloadClientUrl", R.string.AuthAnotherClientDownloadClientUrl)), index1, index2 - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } - desctiptionLines[a * 2 + 1].setText(spanned); + descriptionLines[a * 2 + 1].setText(spanned); } else if (a == 1) { - desctiptionLines[a * 2 + 1].setText(LocaleController.getString("AuthAnotherClientInfo2", R.string.AuthAnotherClientInfo2)); + descriptionLines[a * 2 + 1].setText(LocaleController.getString("AuthAnotherClientInfo2", R.string.AuthAnotherClientInfo2)); } else { - desctiptionLines[a * 2 + 1].setText(LocaleController.getString("AuthAnotherClientInfo3", R.string.AuthAnotherClientInfo3)); + descriptionLines[a * 2 + 1].setText(LocaleController.getString("AuthAnotherClientInfo3", R.string.AuthAnotherClientInfo3)); } if (LocaleController.isRTL) { linearLayout.setGravity(Gravity.RIGHT); - linearLayout.addView(desctiptionLines[a * 2 + 1], LayoutHelper.createLinear(0, LayoutHelper.WRAP_CONTENT, 1.0f)); - linearLayout.addView(desctiptionLines[a * 2], LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 4, 0, 0, 0)); + linearLayout.addView(descriptionLines[a * 2 + 1], LayoutHelper.createLinear(0, LayoutHelper.WRAP_CONTENT, 1.0f)); + linearLayout.addView(descriptionLines[a * 2], LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 4, 0, 0, 0)); } else { - linearLayout.addView(desctiptionLines[a * 2], LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 0, 0, 4, 0)); - linearLayout.addView(desctiptionLines[a * 2 + 1], LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); + linearLayout.addView(descriptionLines[a * 2], LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 0, 0, 4, 0)); + linearLayout.addView(descriptionLines[a * 2 + 1], LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); } } @@ -918,13 +918,13 @@ public ArrayList getThemeDescriptions() { themeDescriptions.add(new ThemeDescription(buttonTextView, ThemeDescription.FLAG_USEBACKGROUNDDRAWABLE, null, null, null, delegate, Theme.key_featuredStickers_addButton)); themeDescriptions.add(new ThemeDescription(buttonTextView, ThemeDescription.FLAG_USEBACKGROUNDDRAWABLE | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_featuredStickers_addButtonPressed)); - themeDescriptions.add(new ThemeDescription(desctiptionLines[0], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); - themeDescriptions.add(new ThemeDescription(desctiptionLines[1], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); - themeDescriptions.add(new ThemeDescription(desctiptionLines[1], ThemeDescription.FLAG_LINKCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteLinkText)); - themeDescriptions.add(new ThemeDescription(desctiptionLines[2], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); - themeDescriptions.add(new ThemeDescription(desctiptionLines[3], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); - themeDescriptions.add(new ThemeDescription(desctiptionLines[4], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); - themeDescriptions.add(new ThemeDescription(desctiptionLines[5], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); + themeDescriptions.add(new ThemeDescription(descriptionLines[0], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); + themeDescriptions.add(new ThemeDescription(descriptionLines[1], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); + themeDescriptions.add(new ThemeDescription(descriptionLines[1], ThemeDescription.FLAG_LINKCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteLinkText)); + themeDescriptions.add(new ThemeDescription(descriptionLines[2], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); + themeDescriptions.add(new ThemeDescription(descriptionLines[3], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); + themeDescriptions.add(new ThemeDescription(descriptionLines[4], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); + themeDescriptions.add(new ThemeDescription(descriptionLines[5], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); themeDescriptions.add(new ThemeDescription(null, ThemeDescription.FLAG_TEXTCOLOR, null, null, new Drawable[]{drawable2}, null, Theme.key_changephoneinfo_image2)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/AvatarSpan.java b/TMessagesProj/src/main/java/org/telegram/ui/AvatarSpan.java index ef6c0614fb..b2aa61e9e9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/AvatarSpan.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/AvatarSpan.java @@ -5,6 +5,7 @@ import android.graphics.Canvas; import android.graphics.Paint; +import android.text.Spannable; import android.text.style.ReplacementSpan; import android.view.View; @@ -23,6 +24,8 @@ public class AvatarSpan extends ReplacementSpan { private final int sz; private final int currentAccount; + private View parent; + public AvatarSpan(View parent, int currentAccount, int sz) { this.currentAccount = currentAccount; this.imageReceiver = new ImageReceiver(parent); @@ -33,24 +36,48 @@ public AvatarSpan(View parent, int currentAccount, int sz) { this.shadowPaint = new Paint(Paint.ANTI_ALIAS_FLAG); shadowPaint.setShadowLayer(dp(1), 0, dp(.66f), 0x33000000); - if (parent != null && parent.isAttachedToWindow()) { + setParent(parent); + } + + public void setParent(View parent) { + if (this.parent == parent) return; + if (this.parent != null) { + this.parent.removeOnAttachStateChangeListener(parentAttachListener); + if (this.parent.isAttachedToWindow() && !parent.isAttachedToWindow()) { + imageReceiver.onDetachedFromWindow(); + } + } + if ((this.parent == null || !this.parent.isAttachedToWindow()) && parent != null && parent.isAttachedToWindow()) { imageReceiver.onAttachedToWindow(); } + this.parent = parent; + imageReceiver.setParentView(parent); if (parent != null) { - parent.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { - @Override - public void onViewAttachedToWindow(@NonNull View v) { - imageReceiver.onAttachedToWindow(); - } - - @Override - public void onViewDetachedFromWindow(@NonNull View v) { - imageReceiver.onDetachedFromWindow(); - } - }); + parent.addOnAttachStateChangeListener(parentAttachListener); } } + public static void checkSpansParent(CharSequence cs, View parent) { + if (cs == null) return; + if (!(cs instanceof Spannable)) return; + Spannable spannable = (Spannable) cs; + AvatarSpan[] spans = spannable.getSpans(0, spannable.length(), AvatarSpan.class); + for (AvatarSpan span : spans) { + span.setParent(parent); + } + } + + private final View.OnAttachStateChangeListener parentAttachListener = new View.OnAttachStateChangeListener() { + @Override + public void onViewAttachedToWindow(@NonNull View v) { + imageReceiver.onAttachedToWindow(); + } + @Override + public void onViewDetachedFromWindow(@NonNull View v) { + imageReceiver.onDetachedFromWindow(); + } + }; + public void setChat(TLRPC.Chat chat) { avatarDrawable.setInfo(currentAccount, chat); imageReceiver.setForUserOrChat(chat, avatarDrawable); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/BasePermissionsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/BasePermissionsActivity.java index c9183971b0..eac438a92b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/BasePermissionsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/BasePermissionsActivity.java @@ -7,6 +7,7 @@ import android.net.Uri; import androidx.annotation.RawRes; +import androidx.fragment.app.FragmentActivity; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.ApplicationLoader; @@ -22,7 +23,7 @@ import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Components.AlertsCreator; -public class BasePermissionsActivity extends Activity { +public class BasePermissionsActivity extends FragmentActivity { public final static int REQUEST_CODE_GEOLOCATION = 2, REQUEST_CODE_EXTERNAL_STORAGE = 4, REQUEST_CODE_ATTACH_CONTACT = 5, diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/AwayMessagesActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/AwayMessagesActivity.java index bab0d43875..8f9aa2f7bc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/AwayMessagesActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/AwayMessagesActivity.java @@ -81,7 +81,7 @@ public void onItemClick(int id) { recipientsHelper.setValue(currentValue == null ? null : currentValue.recipients); } - listView = new UniversalRecyclerView(context, currentAccount, this::fillItems, this::onClick, null, getResourceProvider()); + listView = new UniversalRecyclerView(this, this::fillItems, this::onClick, null); contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); setValue(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessBotButton.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessBotButton.java new file mode 100644 index 0000000000..42649b94bb --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessBotButton.java @@ -0,0 +1,181 @@ +package org.telegram.ui.Business; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.content.Context; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.view.Gravity; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.messenger.UserConfig; +import org.telegram.messenger.UserObject; +import org.telegram.messenger.browser.Browser; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ChatActivity; +import org.telegram.ui.Components.AnimatedTextView; +import org.telegram.ui.Components.AvatarDrawable; +import org.telegram.ui.Components.BackupImageView; +import org.telegram.ui.Components.ClickableAnimatedTextView; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.ItemOptions; +import org.telegram.ui.Components.LayoutHelper; + +public class BusinessBotButton extends FrameLayout { + + private final int currentAccount; + + private final AvatarDrawable avatarDrawable; + private final BackupImageView avatarView; + private final AnimatedTextView titleView; + private final AnimatedTextView subtitleView; + private final ClickableAnimatedTextView pauseButton; + private final ImageView menuView; + private boolean paused; + + private long dialogId; + private long botId; + private int flags; + private String manageUrl; + + public BusinessBotButton(Context context, ChatActivity chatActivity, Theme.ResourcesProvider resourcesProvider) { + super(context); + + this.currentAccount = chatActivity.getCurrentAccount(); + paused = false; + + avatarView = new BackupImageView(context); + TLRPC.User user = chatActivity.getMessagesController().getUser(botId); + avatarDrawable = new AvatarDrawable(); + avatarDrawable.setInfo(user); + avatarView.setRoundRadius(dp(16)); + avatarView.setForUserOrChat(user, avatarDrawable); + addView(avatarView, LayoutHelper.createFrame(32, 32, Gravity.CENTER_VERTICAL | Gravity.LEFT, 10, 0, 10, 0)); + + LinearLayout textLayout = new LinearLayout(context); + textLayout.setOrientation(LinearLayout.VERTICAL); + + titleView = new AnimatedTextView(context); + titleView.adaptWidth = false; + titleView.getDrawable().setHacks(true, true, false); + titleView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + titleView.setTextSize(dp(14)); + titleView.setText(UserObject.getUserName(user)); + titleView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + titleView.setEllipsizeByGradient(true); + textLayout.addView(titleView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 17, 0, 0, 0, 1)); + + subtitleView = new AnimatedTextView(context); + subtitleView.adaptWidth = false; + subtitleView.getDrawable().setHacks(true, true, false); + subtitleView.setTextSize(dp(13)); + subtitleView.setText(LocaleController.getString(R.string.BizBotStatusManages)); + subtitleView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2, resourcesProvider)); + subtitleView.setEllipsizeByGradient(true); + textLayout.addView(subtitleView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 17)); + + addView(textLayout, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL, 52, 0, 49, 0)); + + pauseButton = new ClickableAnimatedTextView(context); + pauseButton.getDrawable().setHacks(true, true, true); + pauseButton.setAnimationProperties(.75f, 0, 350, CubicBezierInterpolator.EASE_OUT_QUINT); + pauseButton.setScaleProperty(.6f); + pauseButton.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + pauseButton.setBackgroundDrawable(Theme.createSimpleSelectorRoundRectDrawable(dp(14), Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider), Theme.blendOver(Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider), Theme.multAlpha(Color.WHITE, .12f)))); + pauseButton.setTextSize(dp(14)); + pauseButton.setGravity(Gravity.RIGHT); + pauseButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText, resourcesProvider)); + pauseButton.setPadding(dp(13), 0, dp(13), 0); + pauseButton.setOnClickListener(v -> { + paused = !paused; + pauseButton.setText(LocaleController.getString(paused ? R.string.BizBotStart : R.string.BizBotStop), true); + subtitleView.cancelAnimation(); + subtitleView.setText(LocaleController.getString(paused ? R.string.BizBotStatusStopped : R.string.BizBotStatusManages), true); + + if (paused) { + flags |= 1; + } else { + flags &=~ 1; + } + MessagesController.getNotificationsSettings(currentAccount).edit() + .putInt("dialog_botflags" + dialogId, flags) + .apply(); + + TLRPC.TL_account_toggleConnectedBotPaused req = new TLRPC.TL_account_toggleConnectedBotPaused(); + req.peer = MessagesController.getInstance(currentAccount).getInputPeer(dialogId); + req.paused = paused; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, null); + + + }); + pauseButton.setOnWidthUpdatedListener(() -> { + float padding = pauseButton.getPaddingLeft() + pauseButton.getDrawable().getCurrentWidth() + pauseButton.getPaddingRight() + dp(12); + titleView.setRightPadding(padding); + subtitleView.setRightPadding(padding); + }); + pauseButton.setText(LocaleController.getString(paused ? R.string.BizBotStart : R.string.BizBotStop)); + addView(pauseButton, LayoutHelper.createFrame(64, 28, Gravity.CENTER_VERTICAL | Gravity.RIGHT, 0, 0, 49, 0)); + + menuView = new ImageView(context); + menuView.setScaleType(ImageView.ScaleType.CENTER); + menuView.setImageResource(R.drawable.msg_mini_customize); + menuView.setBackground(Theme.createSelectorDrawable(Theme.getColor(Theme.key_listSelector, resourcesProvider), Theme.RIPPLE_MASK_ROUNDRECT_6DP)); + menuView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText3, resourcesProvider), PorterDuff.Mode.MULTIPLY)); + menuView.setOnClickListener(e -> { + ItemOptions itemOptions = ItemOptions.makeOptions(chatActivity.getLayoutContainer(), resourcesProvider, menuView); + itemOptions.add(R.drawable.msg_cancel, LocaleController.getString(R.string.BizBotRemove), true, () -> { + TLRPC.TL_account_disablePeerConnectedBot req = new TLRPC.TL_account_disablePeerConnectedBot(); + req.peer = MessagesController.getInstance(currentAccount).getInputPeer(dialogId); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, null); + + MessagesController.getNotificationsSettings(currentAccount).edit() + .remove("dialog_botid" + dialogId).remove("dialog_boturl" + dialogId).remove("dialog_botflags" + dialogId) + .apply(); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.peerSettingsDidLoad, dialogId); + + BusinessChatbotController.getInstance(currentAccount).invalidate(false); + + }).makeMultiline(false); + if (manageUrl != null) { + itemOptions.add(R.drawable.msg_settings, LocaleController.getString(R.string.BizBotManage), () -> { + Browser.openUrl(getContext(), manageUrl); + }); + } + itemOptions.translate(dp(10), dp(7)); + itemOptions.setDimAlpha(0); + itemOptions.show(); + }); + addView(menuView, LayoutHelper.createFrame(32, 32, Gravity.RIGHT | Gravity.CENTER_VERTICAL, 8, 0, 9, 0)); + } + + public void set( + long dialogId, + long botId, + String url, + int flags + ) { + this.dialogId = dialogId; + this.botId = botId; + this.manageUrl = url; + this.flags = flags; + this.paused = (flags & 1) != 0; + + TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(botId); + avatarDrawable.setInfo(user); + avatarView.setForUserOrChat(user, avatarDrawable); + titleView.setText(UserObject.getUserName(user)); + subtitleView.setText(LocaleController.getString(paused ? R.string.BizBotStatusStopped : R.string.BizBotStatusManages)); + pauseButton.setText(LocaleController.getString(paused ? R.string.BizBotStart : R.string.BizBotStop)); + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessChatEmptyView.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessChatEmptyView.java deleted file mode 100644 index 516453192d..0000000000 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessChatEmptyView.java +++ /dev/null @@ -1,158 +0,0 @@ -package org.telegram.ui.Business; - -import static org.telegram.messenger.AndroidUtilities.dp; - -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.Path; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffColorFilter; -import android.text.Layout; -import android.util.TypedValue; -import android.view.Gravity; -import android.view.MotionEvent; -import android.view.View; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; - -import org.telegram.messenger.AndroidUtilities; -import org.telegram.messenger.ContactsController; -import org.telegram.messenger.DocumentObject; -import org.telegram.messenger.FileLoader; -import org.telegram.messenger.ImageLocation; -import org.telegram.messenger.LocaleController; -import org.telegram.messenger.MediaDataController; -import org.telegram.messenger.MessageObject; -import org.telegram.messenger.MessagesController; -import org.telegram.messenger.R; -import org.telegram.messenger.SvgHelper; -import org.telegram.messenger.UserConfig; -import org.telegram.messenger.UserObject; -import org.telegram.tgnet.ConnectionsManager; -import org.telegram.tgnet.TLRPC; -import org.telegram.ui.ActionBar.BaseFragment; -import org.telegram.ui.ActionBar.BottomSheet; -import org.telegram.ui.ActionBar.SimpleTextView; -import org.telegram.ui.ActionBar.Theme; -import org.telegram.ui.ChatActivity; -import org.telegram.ui.Components.LayoutHelper; -import org.telegram.ui.Components.Premium.PremiumButtonView; -import org.telegram.ui.Components.Premium.StarParticlesView; -import org.telegram.ui.Components.RLottieImageView; -import org.telegram.ui.LaunchActivity; -import org.telegram.ui.PremiumPreviewFragment; -import org.telegram.ui.Stories.recorder.ButtonWithCounterView; -import org.telegram.ui.Stories.recorder.HintView2; - -import java.util.Locale; - -public class BusinessChatEmptyView extends LinearLayout { - - private TextView titleView; - private TextView descriptionView, descriptionView2; - - public RLottieImageView imageView; - private final Theme.ResourcesProvider resourcesProvider; - - private class DotTextView extends TextView { - public DotTextView(Context context) { - super(context); - } - - @Override - protected void dispatchDraw(Canvas canvas) { - if (getPaddingLeft() > 0) { - canvas.drawCircle((getPaddingLeft() - dp(2.5f)) / 2f, dp(10), dp(2.5f), getPaint()); - } - super.dispatchDraw(canvas); - } - } - - public BusinessChatEmptyView(Context context, int chatMode, long type, long topic_id, String quickReplyName, Theme.ResourcesProvider resourcesProvider) { - super(context); - setOrientation(VERTICAL); - this.resourcesProvider = resourcesProvider; - - titleView = new TextView(context); - titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - titleView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); - titleView.setTextAlignment(TEXT_ALIGNMENT_CENTER); - titleView.setGravity(Gravity.CENTER); - - descriptionView = new DotTextView(context); - descriptionView.setTextAlignment(TEXT_ALIGNMENT_CENTER); - descriptionView.setGravity(Gravity.CENTER); - descriptionView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); - descriptionView.setGravity(Gravity.CENTER_HORIZONTAL); - - imageView = new RLottieImageView(context); - imageView.setScaleType(ImageView.ScaleType.CENTER); - imageView.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)); -// imageView.setAnimation(R.raw.large_message_lock, 80, 80); -// imageView.setOnClickListener(v -> { -// imageView.setProgress(0); -// imageView.playAnimation(); -// }); -// imageView.playAnimation(); - - int descriptionViewMargin = 12; - descriptionView.setMaxWidth(dp(160)); - if (QuickRepliesController.GREETING.equalsIgnoreCase(quickReplyName)) { - imageView.setImageResource(R.drawable.large_greeting); - titleView.setText(LocaleController.getString(R.string.BusinessGreetingIntroTitle)); - descriptionViewMargin = 22; - descriptionView.setText(LocaleController.getString(R.string.BusinessGreetingIntro)); - descriptionView.setMaxWidth(Math.min(dp(160), HintView2.cutInFancyHalf(descriptionView.getText(), descriptionView.getPaint()))); - } else if (QuickRepliesController.AWAY.equalsIgnoreCase(quickReplyName)) { - imageView.setImageResource(R.drawable.large_away); - titleView.setText(LocaleController.getString(R.string.BusinessAwayIntroTitle)); - descriptionViewMargin = 22; - descriptionView.setText(LocaleController.getString(R.string.BusinessAwayIntro)); - descriptionView.setMaxWidth(Math.min(dp(160), HintView2.cutInFancyHalf(descriptionView.getText(), descriptionView.getPaint()))); - } else if (chatMode == ChatActivity.MODE_QUICK_REPLIES) { - imageView.setImageResource(R.drawable.large_quickreplies); - - QuickRepliesController.QuickReply reply = QuickRepliesController.getInstance(UserConfig.selectedAccount).findReply(topic_id); - String replyName = reply == null ? quickReplyName : reply.name; - - titleView.setText(LocaleController.getString(R.string.BusinessRepliesIntroTitle)); - descriptionView.setMaxWidth(dp(208)); - descriptionView.setTextAlignment(TEXT_ALIGNMENT_TEXT_START); - descriptionView.setGravity(Gravity.LEFT); - descriptionView.setText(AndroidUtilities.replaceTags(LocaleController.formatString(R.string.BusinessRepliesIntro1, replyName))); - descriptionView.setPadding(dp(28), 0, 0, 0); - - descriptionView2 = new DotTextView(context); - descriptionView2.setMaxWidth(dp(208)); - descriptionView2.setTextAlignment(TEXT_ALIGNMENT_TEXT_START); - descriptionView2.setGravity(Gravity.LEFT); - descriptionView2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); - descriptionView2.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.BusinessRepliesIntro2))); - descriptionView2.setPadding(dp(28), 0, 0, 0); - } - - addView(imageView, LayoutHelper.createLinear(78, 78, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 20, 17, 20, 9)); - addView(titleView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 20, 0, 20, 9)); - addView(descriptionView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, descriptionViewMargin, 0, descriptionViewMargin, descriptionView2 != null ? 9 : 19)); - if (descriptionView2 != null) { - addView(descriptionView2, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 12, 0, 12, 19)); - } - - updateColors(); - } - - private void updateColors() { - titleView.setTextColor(getThemedColor(Theme.key_chat_serviceText)); - descriptionView.setTextColor(getThemedColor(Theme.key_chat_serviceText)); - if (descriptionView2 != null) { - descriptionView2.setTextColor(getThemedColor(Theme.key_chat_serviceText)); - } - } - - private int getThemedColor(int key) { - return Theme.getColor(key, resourcesProvider); - } -} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessChatbotController.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessChatbotController.java index 275f0e9f3a..874d85f9b5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessChatbotController.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessChatbotController.java @@ -70,8 +70,10 @@ public void load(Utilities.Callback callback) { } } - public void invalidate() { + public void invalidate(boolean reload) { loaded = false; - load(null); + if (reload) { + load(null); + } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessIntroActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessIntroActivity.java new file mode 100644 index 0000000000..cc6366e02d --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessIntroActivity.java @@ -0,0 +1,506 @@ +package org.telegram.ui.Business; + +import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.getString; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Matrix; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.Rect; +import android.graphics.RectF; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.text.Editable; +import android.text.InputFilter; +import android.text.InputType; +import android.text.Spanned; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.ImageView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BotWebViewVibrationEffect; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MediaDataController; +import org.telegram.messenger.MessageObject; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.messenger.Utilities; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.ActionBar; +import org.telegram.ui.ActionBar.ActionBarMenuItem; +import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Cells.EditTextCell; +import org.telegram.ui.Cells.TextCell; +import org.telegram.ui.Components.AnimatedColor; +import org.telegram.ui.Components.AnimatedFloat; +import org.telegram.ui.Components.AnimatedTextView; +import org.telegram.ui.Components.BulletinFactory; +import org.telegram.ui.Components.ChatGreetingsView; +import org.telegram.ui.Components.CircularProgressDrawable; +import org.telegram.ui.Components.CrossfadeDrawable; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.EditTextBoldCursor; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.SizeNotifierFrameLayout; +import org.telegram.ui.Components.Text; +import org.telegram.ui.Components.UItem; +import org.telegram.ui.Components.UniversalAdapter; +import org.telegram.ui.Components.UniversalFragment; +import org.telegram.ui.Stories.StoryViewer; +import org.telegram.ui.Stories.recorder.EmojiBottomSheet; +import org.telegram.ui.Stories.recorder.KeyboardNotifier; +import org.telegram.ui.Stories.recorder.PreviewView; + +import java.util.ArrayList; + +public class BusinessIntroActivity extends UniversalFragment implements NotificationCenter.NotificationCenterDelegate { + + @Override + public boolean onFragmentCreate() { + getNotificationCenter().addObserver(this, NotificationCenter.userInfoDidLoad); + MediaDataController.getInstance(currentAccount).checkStickers(MediaDataController.TYPE_IMAGE); + MediaDataController.getInstance(currentAccount).loadRecents(MediaDataController.TYPE_IMAGE, false, true, false); + MediaDataController.getInstance(currentAccount).loadRecents(MediaDataController.TYPE_FAVE, false, true, false); + return super.onFragmentCreate(); + } + + @Override + public void onFragmentDestroy() { + getNotificationCenter().removeObserver(this, NotificationCenter.userInfoDidLoad); + super.onFragmentDestroy(); + } + + private final static long updateRandomStickerTimeout = 1000 * 5; + private final Runnable updateRandomStickerRunnable = this::updateRandomSticker; + private void updateRandomSticker() { + if (greetingsView == null || !greetingsView.isAttachedToWindow() || !stickerRandom) { + return; + } + greetingsView.setNextSticker(MediaDataController.getInstance(currentAccount).getGreetingsSticker(), () -> { + AndroidUtilities.cancelRunOnUIThread(updateRandomStickerRunnable); + AndroidUtilities.runOnUIThread(updateRandomStickerRunnable, updateRandomStickerTimeout); + }); + } + + private static final int done_button = 1; + private CrossfadeDrawable doneButtonDrawable; + private ActionBarMenuItem doneButton; + + @Override + protected CharSequence getTitle() { + return getString(R.string.BusinessIntro); + } + + private FrameLayout previewContainer; + private ChatGreetingsView greetingsView; + private Drawable greetingsViewBackground; + private EditTextCell titleEdit; + private EditTextCell messageEdit; + + private boolean stickerRandom = true; + private TLRPC.Document sticker = getMediaDataController().getGreetingsSticker(); + + private boolean keyboardVisible; + + @Override + public View createView(Context context) { + AndroidUtilities.requestAdjustResize(getParentActivity(), classGuid); + + greetingsView = new ChatGreetingsView(context, getUserConfig().getCurrentUser(), 1, currentAccount, sticker, getResourceProvider()) { + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + setPivotX(getMeasuredWidth() / 2f); + setPivotY(getMeasuredHeight()); + } + }; + previewContainer = new FrameLayout(context) { + int minHeight = -1; + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + greetingsView.measure(widthMeasureSpec, heightMeasureSpec); + invalidate(); + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(Math.max(minHeight, greetingsView.getMeasuredHeight() + dp(18 * 2)), MeasureSpec.EXACTLY)); + if (minHeight < 0) { + minHeight = getMeasuredHeight(); + } + } + + private final Rect bg = new Rect(); + private final AnimatedFloat width = new AnimatedFloat(this, 220, CubicBezierInterpolator.EASE_OUT_QUINT); + + @Override + protected boolean drawChild(Canvas canvas, View child, long drawingTime) { + final float cx = getWidth() / 2f; + final float width = this.width.set(greetingsView.getWidth()); + bg.set( + (int) (cx - width / 2f * greetingsView.getScaleX()), + (int) (greetingsView.getY() + greetingsView.getHeight() * (1f - greetingsView.getScaleY())), + (int) (cx + width / 2f * greetingsView.getScaleX()), + (int) (greetingsView.getY() + greetingsView.getHeight()) + ); + greetingsViewBackground.setBounds(bg); + greetingsViewBackground.draw(canvas); + return super.drawChild(canvas, child, drawingTime); + } + }; + previewContainer.setWillNotDraw(false); + greetingsViewBackground = Theme.createServiceDrawable(AndroidUtilities.dp(16), greetingsView, previewContainer, getThemedPaint(Theme.key_paint_chatActionBackground)); + greetingsView.setBackground(new ColorDrawable(0)); + ImageView previewBackground = new ImageView(context) { + // lack of ImageView.ScaleType.CROP_START + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + final Matrix matrix = getImageMatrix(); + float scale; + final int viewWidth = getMeasuredWidth() - getPaddingLeft() - getPaddingRight(); + final int viewHeight = getMeasuredHeight() - getPaddingTop() - getPaddingBottom(); + final int drawableWidth = getDrawable().getIntrinsicWidth(); + final int drawableHeight = getDrawable().getIntrinsicHeight(); + if (drawableWidth * viewHeight > drawableHeight * viewWidth) { + scale = (float) viewHeight / (float) drawableHeight; + } else { + scale = (float) viewWidth / (float) drawableWidth; + } + matrix.setScale(scale, scale); + setImageMatrix(matrix); + } + }; + previewBackground.setScaleType(ImageView.ScaleType.MATRIX); + previewBackground.setImageDrawable(PreviewView.getBackgroundDrawable(null, currentAccount, getUserConfig().getClientUserId(), Theme.isCurrentThemeDark())); + previewContainer.addView(previewBackground, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.FILL)); + previewContainer.addView(greetingsView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 42, 18, 42, 18)); + + titleEdit = new EditTextCell(context, getString(R.string.BusinessIntroTitleHint), false, getMessagesController().introTitleLengthLimit) { + @Override + protected void onTextChanged(CharSequence newText) { + greetingsView.setPreview(titleEdit.getText().toString(), messageEdit.getText().toString()); + checkDone(true, true); + } + + @Override + protected void onFocusChanged(boolean focused) { + if (focused && listView != null) { + listView.smoothScrollToPosition(2); + } + } + }; + titleEdit.autofocused = true; + titleEdit.setShowLimitOnFocus(true); + titleEdit.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + titleEdit.setDivider(true); + titleEdit.hideKeyboardOnEnter(); + messageEdit = new EditTextCell(context, getString(R.string.BusinessIntroMessageHint), true, getMessagesController().introDescriptionLengthLimit) { + @Override + protected void onTextChanged(CharSequence newText) { + greetingsView.setPreview(titleEdit.getText().toString(), messageEdit.getText().toString()); + checkDone(true, true); + } + + @Override + protected void onFocusChanged(boolean focused) { + if (focused && listView != null) { + listView.smoothScrollToPosition(3); + } + } + }; + messageEdit.setShowLimitOnFocus(true); + messageEdit.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + messageEdit.setDivider(true); + messageEdit.hideKeyboardOnEnter(); + + greetingsView.setPreview("", ""); + + super.createView(context); + + actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { + @Override + public void onItemClick(int id) { + if (id == -1) { + if (onBackPressed()) { + finishFragment(); + } + } else if (id == done_button) { + processDone(); + } + } + }); + Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); + checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); + doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); + doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + checkDone(false, true); + + listView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { + @Override + public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { + updateGreetingScale(); + } + }); + listView.addOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { + updateGreetingScale(); + } + }); + listView.doNotDetachViews(); + listView.setClipChildren(false); + if (fragmentView instanceof ViewGroup) { + ((ViewGroup) fragmentView).setClipChildren(false); + } + + setValue(); + + new KeyboardNotifier(fragmentView, keyboardHeight -> { + final boolean keyboardVisible = keyboardHeight > dp(20); + if (this.keyboardVisible == keyboardVisible) { + return; + } + this.keyboardVisible = keyboardVisible; + if (!keyboardVisible) { + listView.smoothScrollToPosition(0); + } + }); + + return fragmentView; + } + + private void updateGreetingScale() { + if (!(previewContainer.getParent() instanceof View)) return; + View cell = (View) previewContainer.getParent(); + int top = cell.getTop(); + int fullHeight = previewContainer.getMeasuredHeight() - dp(18 * 2); + int visibleHeight = fullHeight + top; + float scale = Utilities.clamp(visibleHeight / (float) fullHeight, 1, 0.65f); + greetingsView.setScaleX(scale); + greetingsView.setScaleY(scale); + greetingsView.setAlpha(Utilities.clamp(2 * scale, 1, 0)); + previewContainer.invalidate(); + } + + private static final int BUTTON_STICKER = 1; + private static final int BUTTON_REMOVE = 2; + + @Override + protected void fillItems(ArrayList items, UniversalAdapter adapter) { + items.add(UItem.asCustom(previewContainer)); + items.add(UItem.asHeader(getString(R.string.BusinessIntroHeader))); + items.add(UItem.asCustom(titleEdit)); + items.add(UItem.asCustom(messageEdit)); + if (stickerRandom) { + items.add(UItem.asButton(BUTTON_STICKER, getString(R.string.BusinessIntroSticker), getString(R.string.BusinessIntroStickerRandom))); + } else { + items.add(UItem.asButton(BUTTON_STICKER, getString(R.string.BusinessIntroSticker), sticker)); + } + items.add(UItem.asShadow(getString(R.string.BusinessIntroInfo))); + if (clearVisible = !isEmpty()) { + items.add(UItem.asShadow(null)); + items.add(UItem.asButton(BUTTON_REMOVE, LocaleController.getString(R.string.BusinessIntroReset)).red()); + } + items.add(UItem.asLargeShadow(null)); + } + + public boolean isEmpty() { + if (titleEdit == null || messageEdit == null) return true; + return TextUtils.isEmpty(titleEdit.getText()) && TextUtils.isEmpty(messageEdit.getText()) && stickerRandom; + } + + @Override + public void didReceivedNotification(int id, int account, Object... args) { + if (id == NotificationCenter.userInfoDidLoad) { + setValue(); + } + } + + private String currentTitle, currentMessage; + private long currentSticker; + + private boolean valueSet; + private void setValue() { + if (valueSet) return; + + final long selfId = getUserConfig().getClientUserId(); + TLRPC.UserFull userFull = getMessagesController().getUserFull(selfId); + if (userFull == null) { + getMessagesController().loadUserInfo(getUserConfig().getCurrentUser(), true, getClassGuid()); + return; + } + + if (userFull.business_intro != null) { + titleEdit.setText(currentTitle = userFull.business_intro.title); + messageEdit.setText(currentMessage = userFull.business_intro.description); + sticker = userFull.business_intro.sticker; + } else { + titleEdit.setText(currentTitle = ""); + messageEdit.setText(currentMessage = ""); + sticker = null; + } + currentSticker = sticker == null ? 0 : sticker.id; + stickerRandom = sticker == null; + + if (greetingsView != null) { + greetingsView.setPreview(titleEdit.getText().toString(), messageEdit.getText().toString()); + greetingsView.setSticker(sticker == null || stickerRandom ? MediaDataController.getInstance(currentAccount).getGreetingsSticker() : sticker); + } + + if (stickerRandom) { + AndroidUtilities.cancelRunOnUIThread(updateRandomStickerRunnable); + AndroidUtilities.runOnUIThread(updateRandomStickerRunnable, updateRandomStickerTimeout); + } + + if (listView != null && listView.adapter != null) { + listView.adapter.update(true); + } + valueSet = true; + } + + @Override + protected void onClick(UItem item, View view, int position, float x, float y) { + if (item.id == BUTTON_STICKER) { + EmojiBottomSheet sheet = new EmojiBottomSheet(getContext(), true, getResourceProvider()); + sheet.whenDocumentSelected((parentObject, document, a) -> { + stickerRandom = false; + AndroidUtilities.cancelRunOnUIThread(updateRandomStickerRunnable); + greetingsView.setSticker(sticker = document); + ((TextCell) view).setValueSticker(document); + checkDone(true, false); + }); + showDialog(sheet); + } else if (item.id == BUTTON_REMOVE) { + titleEdit.setText(""); + messageEdit.setText(""); + AndroidUtilities.hideKeyboard(titleEdit.editText); + AndroidUtilities.hideKeyboard(messageEdit.editText); + stickerRandom = true; + greetingsView.setPreview("", ""); + greetingsView.setSticker(sticker = MediaDataController.getInstance(currentAccount).getGreetingsSticker()); + AndroidUtilities.cancelRunOnUIThread(updateRandomStickerRunnable); + AndroidUtilities.runOnUIThread(updateRandomStickerRunnable, updateRandomStickerTimeout); + checkDone(true, false); + } + } + + @Override + protected boolean onLongClick(UItem item, View view, int position, float x, float y) { + return false; + } + + private boolean clearVisible = isEmpty(); + + public boolean hasChanges() { + return ( + !TextUtils.equals(titleEdit.getText().toString(), currentTitle == null ? "" : currentTitle) || + !TextUtils.equals(messageEdit.getText().toString(), currentMessage == null ? "" : currentMessage) || + (stickerRandom || sticker == null ? 0 : sticker.id) != currentSticker + ); + } + + private void checkDone(boolean animated, boolean ignoreClear) { + if (doneButton == null) return; + final boolean hasChanges = hasChanges(); + doneButton.setEnabled(hasChanges); + if (animated) { + doneButton.animate().alpha(hasChanges ? 1.0f : 0.0f).scaleX(hasChanges ? 1.0f : 0.0f).scaleY(hasChanges ? 1.0f : 0.0f).setDuration(180).start(); + } else { + doneButton.setAlpha(hasChanges ? 1.0f : 0.0f); + doneButton.setScaleX(hasChanges ? 1.0f : 0.0f); + doneButton.setScaleY(hasChanges ? 1.0f : 0.0f); + } + if (listView != null && listView.adapter != null && clearVisible != !isEmpty()) { + saveScrollPosition(); + listView.adapter.update(true); + applyScrolledPosition(); + } + } + + private int shiftDp = -4; + private void processDone() { + if (doneButtonDrawable.getProgress() > 0f) return; + +// if (!isEmpty()) { +// if (TextUtils.isEmpty(titleEdit.getText())) { +// BotWebViewVibrationEffect.APP_ERROR.vibrate(); +// AndroidUtilities.shakeViewSpring(titleEdit, shiftDp = -shiftDp); +// return; +// } +// if (TextUtils.isEmpty(messageEdit.getText())) { +// BotWebViewVibrationEffect.APP_ERROR.vibrate(); +// AndroidUtilities.shakeViewSpring(messageEdit, shiftDp = -shiftDp); +// return; +// } +// } + + doneButtonDrawable.animateToProgress(1f); + TLRPC.UserFull userFull = getMessagesController().getUserFull(getUserConfig().getClientUserId()); + TLRPC.TL_account_updateBusinessIntro req = new TLRPC.TL_account_updateBusinessIntro(); + if (!isEmpty()) { + req.flags |= 1; + req.intro = new TLRPC.TL_inputBusinessIntro(); + req.intro.title = titleEdit.getText().toString(); + req.intro.description = messageEdit.getText().toString(); + if (!stickerRandom && sticker != null) { + req.intro.flags |= 1; + req.intro.sticker = getMessagesController().getInputDocument(sticker); + } + + if (userFull != null) { + userFull.flags2 |= 16; + userFull.business_intro = new TLRPC.TL_businessIntro(); + userFull.business_intro.title = req.intro.title; + userFull.business_intro.description = req.intro.description; + if (!stickerRandom && sticker != null) { + userFull.business_intro.flags |= 1; + userFull.business_intro.sticker = sticker; + } + } + } else { + if (userFull != null) { + userFull.flags2 &=~ 16; + userFull.business_intro = null; + } + } + + getConnectionsManager().sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (err != null) { + doneButtonDrawable.animateToProgress(0f); + BulletinFactory.showError(err); + } else if (res instanceof TLRPC.TL_boolFalse) { + doneButtonDrawable.animateToProgress(0f); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.UnknownError)).show(); + } else { + finishFragment(); + } + })); + getMessagesStorage().updateUserInfo(userFull, false); + } + + @Override + public boolean onBackPressed() { + if (hasChanges()) { + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + builder.setTitle(LocaleController.getString(R.string.UnsavedChanges)); + builder.setMessage(LocaleController.getString(R.string.BusinessIntroUnsavedChanges)); + builder.setPositiveButton(LocaleController.getString("ApplyTheme", R.string.ApplyTheme), (dialogInterface, i) -> processDone()); + builder.setNegativeButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> finishFragment()); + showDialog(builder.create()); + return false; + } + return super.onBackPressed(); + } + + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksActivity.java new file mode 100644 index 0000000000..11626edf13 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksActivity.java @@ -0,0 +1,571 @@ +package org.telegram.ui.Business; + +import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.formatPluralString; +import static org.telegram.messenger.LocaleController.formatString; +import static org.telegram.messenger.LocaleController.getString; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.text.InputType; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.SpannableStringBuilder; +import android.text.Spanned; +import android.text.TextUtils; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.ContactsController; +import org.telegram.messenger.Emoji; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MediaDataController; +import org.telegram.messenger.MessageObject; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.messenger.UserConfig; +import org.telegram.messenger.UserObject; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.ActionBar.AlertDialogDecor; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.SimpleTextView; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ChatActivity; +import org.telegram.ui.Components.AnimatedColor; +import org.telegram.ui.Components.AnimatedTextView; +import org.telegram.ui.Components.Bulletin; +import org.telegram.ui.Components.BulletinFactory; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.EditTextBoldCursor; +import org.telegram.ui.Components.ItemOptions; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.SizeNotifierFrameLayout; +import org.telegram.ui.Components.UItem; +import org.telegram.ui.Components.URLSpanCopyToClipboard; +import org.telegram.ui.Components.UniversalAdapter; +import org.telegram.ui.Components.UniversalFragment; +import org.telegram.ui.Components.spoilers.SpoilersTextView; +import org.telegram.ui.LaunchActivity; +import org.telegram.ui.PrivacyControlActivity; + +import java.util.ArrayList; +import java.util.Objects; + +public class BusinessLinksActivity extends UniversalFragment implements NotificationCenter.NotificationCenterDelegate { + + private final static int BUTTON_ADD = 1; + + private static AlertDialog currentDialog; + + public static void openRenameAlert(Context context, int currentAccount, TLRPC.TL_businessChatLink link, Theme.ResourcesProvider resourcesProvider, boolean forceNotAdaptive) { + BaseFragment fragment = LaunchActivity.getLastFragment(); + Activity activity = AndroidUtilities.findActivity(context); + View currentFocus = activity != null ? activity.getCurrentFocus() : null; + final boolean isKeyboardVisible = fragment != null && fragment.getFragmentView() instanceof SizeNotifierFrameLayout && ((SizeNotifierFrameLayout) fragment.getFragmentView()).measureKeyboardHeight() > dp(20); + final boolean adaptive = isKeyboardVisible && !forceNotAdaptive; + AlertDialog[] dialog = new AlertDialog[1]; + AlertDialog.Builder builder; + if (adaptive) { + builder = new AlertDialogDecor.Builder(context, resourcesProvider); + } else { + builder = new AlertDialog.Builder(context, resourcesProvider); + } + builder.setTitle(getString(R.string.BusinessLinksRenameTitle)); + + final int MAX_NAME_LENGTH = 32; + EditTextBoldCursor editText = new EditTextBoldCursor(context) { + AnimatedColor limitColor = new AnimatedColor(this); + private int limitCount; + AnimatedTextView.AnimatedTextDrawable limit = new AnimatedTextView.AnimatedTextDrawable(false, true, true); + + { + limit.setAnimationProperties(.2f, 0, 160, CubicBezierInterpolator.EASE_OUT_QUINT); + limit.setTextSize(dp(15.33f)); + limit.setCallback(this); + limit.setGravity(Gravity.RIGHT); + } + + @Override + protected boolean verifyDrawable(@NonNull Drawable who) { + return who == limit || super.verifyDrawable(who); + } + + @Override + protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) { + super.onTextChanged(text, start, lengthBefore, lengthAfter); + + if (limit != null) { + limitCount = MAX_NAME_LENGTH - text.length(); + limit.cancelAnimation(); + limit.setText(limitCount > 4 ? "" : "" + limitCount); + } + } + + @Override + protected void dispatchDraw(Canvas canvas) { + super.dispatchDraw(canvas); + + limit.setTextColor(limitColor.set(Theme.getColor(limitCount < 0 ? Theme.key_text_RedRegular : Theme.key_dialogSearchHint, resourcesProvider))); + limit.setBounds(getScrollX(), 0, getScrollX() + getWidth(), getHeight()); + limit.draw(canvas); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(36), MeasureSpec.EXACTLY)); + } + }; + MediaDataController.getInstance(currentAccount).fetchNewEmojiKeywords(AndroidUtilities.getCurrentKeyboardLanguage(), true); + editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); + editText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); + editText.setText(link.title); + editText.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); + editText.setHintColor(Theme.getColor(Theme.key_groupcreate_hintText, resourcesProvider)); + editText.setCursorColor(Theme.getColor(Theme.key_chat_messagePanelCursor)); + editText.setHintText(LocaleController.getString(R.string.BusinessLinksNamePlaceholder)); + editText.setSingleLine(true); + editText.setFocusable(true); + editText.setLineColors(Theme.getColor(Theme.key_windowBackgroundWhiteInputField, resourcesProvider), Theme.getColor(Theme.key_windowBackgroundWhiteInputFieldActivated, resourcesProvider), Theme.getColor(Theme.key_text_RedRegular, resourcesProvider)); + editText.setImeOptions(EditorInfo.IME_ACTION_DONE); + editText.setBackgroundDrawable(null); + editText.setPadding(0, 0, dp(42), 0); + + LinearLayout container = new LinearLayout(context); + container.setOrientation(LinearLayout.VERTICAL); + + final TextView textView = new TextView(context); + textView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + textView.setText(LocaleController.getString(R.string.BusinessLinksRenameMessage)); + + container.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 24, 5, 24, 12)); + + container.addView(editText, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 24, 0, 24, 10)); + builder.setView(container); + builder.setWidth(dp(292)); + + editText.setOnEditorActionListener((v, actionId, event) -> { + if (actionId == EditorInfo.IME_ACTION_DONE) { + String text = editText.getText().toString(); + if (text.length() > MAX_NAME_LENGTH) { + AndroidUtilities.shakeView(editText); + return true; + } + BusinessLinksController.getInstance(currentAccount).editLinkTitle(link.link, text); + if (dialog[0] != null) { + dialog[0].dismiss(); + } + if (dialog[0] == currentDialog) { + currentDialog = null; + } + if (currentFocus != null) { + currentFocus.requestFocus(); + } + return true; + } + return false; + }); + builder.setPositiveButton(LocaleController.getString(R.string.Done), (dialogInterface, i) -> { + String text = editText.getText().toString(); + if (text.length() > MAX_NAME_LENGTH) { + AndroidUtilities.shakeView(editText); + return; + } + BusinessLinksController.getInstance(currentAccount).editLinkTitle(link.link, text); + dialogInterface.dismiss(); + }); + builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialogInterface, i) -> { + dialogInterface.dismiss(); + }); + if (adaptive) { + dialog[0] = currentDialog = builder.create(); + currentDialog.setOnDismissListener(d -> { + currentDialog = null; + if (currentFocus != null) { + currentFocus.requestFocus(); + } + }); + currentDialog.setOnShowListener(d -> { + editText.requestFocus(); + AndroidUtilities.showKeyboard(editText); + }); + currentDialog.showDelayed(250); + } else { + builder.overrideDismissListener(dismiss -> { + if (currentFocus != null) { + currentFocus.requestFocus(); + } + AndroidUtilities.hideKeyboard(editText); + AndroidUtilities.runOnUIThread(dismiss, 80); + }); + dialog[0] = builder.create(); + dialog[0].setOnDismissListener(d -> { + AndroidUtilities.hideKeyboard(editText); + }); + dialog[0].setOnShowListener(d -> { + if (currentFocus != null) { + currentFocus.clearFocus(); + } + editText.requestFocus(); + AndroidUtilities.showKeyboard(editText); + }); + dialog[0].show(); + } + dialog[0].setDismissDialogByButtons(false); + editText.setSelection(editText.getText().length()); + } + + public static boolean closeRenameAlert() { + if (currentDialog != null && currentDialog.isShowing()) { + currentDialog.dismiss(); + return true; + } + return false; + } + + @Override + public boolean onFragmentCreate() { + getNotificationCenter().addObserver(this, NotificationCenter.businessLinksUpdated); + getNotificationCenter().addObserver(this, NotificationCenter.businessLinkCreated); + getNotificationCenter().addObserver(this, NotificationCenter.needDeleteBusinessLink); + getNotificationCenter().addObserver(this, NotificationCenter.privacyRulesUpdated); + BusinessLinksController.getInstance(currentAccount).load(true); + ContactsController.getInstance(currentAccount).loadPrivacySettings(); + return super.onFragmentCreate(); + } + + @Override + public void onFragmentDestroy() { + getNotificationCenter().removeObserver(this, NotificationCenter.businessLinksUpdated); + getNotificationCenter().removeObserver(this, NotificationCenter.businessLinkCreated); + getNotificationCenter().removeObserver(this, NotificationCenter.needDeleteBusinessLink); + getNotificationCenter().removeObserver(this, NotificationCenter.privacyRulesUpdated); + Bulletin.hideVisible(); + super.onFragmentDestroy(); + } + + @Override + public boolean onBackPressed() { + if (closeRenameAlert()) { + return false; + } + return super.onBackPressed(); + } + + @Override + protected CharSequence getTitle() { + return LocaleController.getString(R.string.BusinessLinks); + } + + private static int getPrivacyType(ArrayList privacyRules) { + int type = -1; + boolean currentPlus = false; + boolean currentMinus = false; + boolean premium; + for (int a = 0; a < privacyRules.size(); a++) { + TLRPC.PrivacyRule rule = privacyRules.get(a); + if (rule instanceof TLRPC.TL_privacyValueAllowChatParticipants) { + currentPlus = true; + } else if (rule instanceof TLRPC.TL_privacyValueDisallowChatParticipants) { + currentMinus = true; + } else if (rule instanceof TLRPC.TL_privacyValueAllowUsers) { + currentPlus = true; + } else if (rule instanceof TLRPC.TL_privacyValueDisallowUsers) { + currentMinus = true; + } else if (rule instanceof TLRPC.TL_privacyValueAllowPremium) { + premium = true; + } else if (type == -1) { + if (rule instanceof TLRPC.TL_privacyValueAllowAll) { + type = 0; + } else if (rule instanceof TLRPC.TL_privacyValueDisallowAll) { + type = 1; + } else { + type = 2; + } + } + } + if (type == PrivacyControlActivity.TYPE_EVERYBODY || type == -1 && currentMinus) { + return PrivacyControlActivity.TYPE_EVERYBODY; + } else if (type == PrivacyControlActivity.TYPE_CONTACTS) { + return PrivacyControlActivity.TYPE_CONTACTS; + } else if (type == PrivacyControlActivity.TYPE_NOBODY || currentPlus) { + return PrivacyControlActivity.TYPE_NOBODY; + } + return PrivacyControlActivity.TYPE_NOBODY; + } + + @Override + protected void fillItems(ArrayList items, UniversalAdapter adapter) { + items.add(UItem.asTopView(getString(R.string.BusinessLinksInfo), R.raw.biz_links)); + adapter.whiteSectionStart(); + if (BusinessLinksController.getInstance(currentAccount).canAddNew()) { + items.add(UItem.asButton(BUTTON_ADD, R.drawable.menu_link_create, getString(R.string.BusinessLinksAdd)).accent()); + } + for (TLRPC.TL_businessChatLink businessLink : BusinessLinksController.getInstance(currentAccount).links) { + UItem item = UItem.asBusinessChatLink(new BusinessLinkWrapper(businessLink)); + items.add(item); + } + adapter.whiteSectionEnd(); + + TLRPC.User user = UserConfig.getInstance(currentAccount).getCurrentUser(); + String linkPrefix = MessagesController.getInstance(currentAccount).linkPrefix + "/"; + ArrayList links = new ArrayList<>(2); + String publicUsername = UserObject.getPublicUsername(user); + if (publicUsername != null) { + links.add(linkPrefix + publicUsername); + } + ArrayList phoneRules = ContactsController.getInstance(currentAccount).getPrivacyRules(ContactsController.PRIVACY_RULES_TYPE_PHONE); + ArrayList addedByPhoneRules = ContactsController.getInstance(currentAccount).getPrivacyRules(ContactsController.PRIVACY_RULES_TYPE_ADDED_BY_PHONE); + if (!TextUtils.isEmpty(user.phone) && phoneRules != null && addedByPhoneRules != null) { + if (getPrivacyType(phoneRules) != PrivacyControlActivity.TYPE_NOBODY || getPrivacyType(addedByPhoneRules) != PrivacyControlActivity.TYPE_CONTACTS) { + links.add(linkPrefix + "+" + user.phone); + } + } + if (!links.isEmpty()) { + String text; + if (links.size() == 2) { + text = formatString(R.string.BusinessLinksFooterTwoLinks, links.get(0), links.get(1)); + } else { + text = formatString(R.string.BusinessLinksFooterOneLink, links.get(0)); + } + SpannableString spanned = new SpannableString(text); + for (String link : links) { + int index = text.indexOf(link); + if (index > -1) { + spanned.setSpan(new URLSpanCopyToClipboard("https://" + link, this), index, index + link.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + } + items.add(UItem.asShadow(spanned)); + } + } + + @Override + protected void onClick(UItem item, View view, int position, float x, float y) { + if (item.id == BUTTON_ADD) { + BusinessLinksController.getInstance(currentAccount).createEmptyLink(); + } else if (item.viewType == UniversalAdapter.VIEW_TYPE_BUSINESS_LINK && item.object instanceof BusinessLinkWrapper) { + BusinessLinkWrapper wrapper = (BusinessLinkWrapper) item.object; + Bundle args = new Bundle(); + args.putInt("chatMode", ChatActivity.MODE_EDIT_BUSINESS_LINK); + args.putString("business_link", wrapper.link.link); + ChatActivity chatActivity = new ChatActivity(args); + presentFragment(chatActivity); + } + } + + @Override + protected boolean onLongClick(UItem item, View view, int position, float x, float y) { + if (item.viewType == UniversalAdapter.VIEW_TYPE_BUSINESS_LINK && item.object instanceof BusinessLinkWrapper) { + TLRPC.TL_businessChatLink link = ((BusinessLinkWrapper) item.object).link; + + ItemOptions options = ItemOptions.makeOptions(this, view); + options.add(R.drawable.msg_copy, getString(R.string.Copy), () -> { + AndroidUtilities.addToClipboard(link.link); + BulletinFactory.of(LaunchActivity.getLastFragment()).createCopyLinkBulletin().show(); + }); + options.add(R.drawable.msg_share, getString(R.string.LinkActionShare), () -> { + Intent intent = new Intent(getContext(), LaunchActivity.class); + intent.setAction(Intent.ACTION_SEND); + intent.setType("text/plain"); + intent.putExtra(Intent.EXTRA_TEXT, link.link); + startActivityForResult(intent, 500); + }); + options.add(R.drawable.msg_edit, getString(R.string.Rename), () -> { + openRenameAlert(getContext(), currentAccount, link, resourceProvider, false); + }); + options.add(R.drawable.msg_delete, getString(R.string.Delete), true, () -> { + AlertDialog dialog = new AlertDialog.Builder(getContext(), getResourceProvider()) + .setTitle(getString(R.string.BusinessLinksDeleteTitle)) + .setMessage(getString(R.string.BusinessLinksDeleteMessage)) + .setPositiveButton(getString(R.string.Remove), (di, w) -> { + BusinessLinksController.getInstance(currentAccount).deleteLinkUndoable(this, link.link); + }) + .setNegativeButton(getString(R.string.Cancel), null) + .create(); + showDialog(dialog); + TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); + if (button != null) { + button.setTextColor(getThemedColor(Theme.key_text_RedBold)); + } + }); + options.show(); + return true; + } + return false; + } + + @Override + public void didReceivedNotification(int id, int account, Object... args) { + if (id == NotificationCenter.businessLinksUpdated || id == NotificationCenter.privacyRulesUpdated) { + if (listView != null && listView.adapter != null) { + listView.adapter.update(true); + } + } else if (id == NotificationCenter.businessLinkCreated) { + TLRPC.TL_businessChatLink link = (TLRPC.TL_businessChatLink) args[0]; + Bundle activityArgs = new Bundle(); + activityArgs.putInt("chatMode", ChatActivity.MODE_EDIT_BUSINESS_LINK); + activityArgs.putString("business_link", link.link); + ChatActivity chatActivity = new ChatActivity(activityArgs); + presentFragment(chatActivity); + } else if (id == NotificationCenter.needDeleteBusinessLink) { + TLRPC.TL_businessChatLink link = (TLRPC.TL_businessChatLink) args[0]; + BusinessLinksController.getInstance(currentAccount).deleteLinkUndoable(this, link.link); + } + } + + public static class BusinessLinkWrapper { + TLRPC.TL_businessChatLink link; + + public BusinessLinkWrapper(TLRPC.TL_businessChatLink link) { + this.link = link; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BusinessLinkWrapper that = (BusinessLinkWrapper) o; + return link.views == that.link.views && + TextUtils.equals(link.link, that.link.link) && + TextUtils.equals(link.title, that.link.title) && + TextUtils.equals(link.message, that.link.message) && + MediaDataController.entitiesEqual(link.entities, that.link.entities); + } + } + + @SuppressLint("ViewConstructor") + public static class BusinessLinkView extends FrameLayout { + + private final ImageView imageView; + private final SimpleTextView titleTextView; + private final SpoilersTextView messagePreviewTextView; + private final SimpleTextView clicksCountTextView; + + private final Theme.ResourcesProvider resourcesProvider; + + private boolean needDivider; + + private TLRPC.TL_businessChatLink businessLink; + + public BusinessLinkView(Context context, Theme.ResourcesProvider resourcesProvider) { + super(context); + + this.resourcesProvider = resourcesProvider; + + setWillNotDraw(false); + + imageView = new ImageView(context); + imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); + imageView.setImageResource(R.drawable.msg_limit_links); + imageView.setPadding(dp(9), dp(9), dp(9), dp(9)); + imageView.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)); + imageView.setBackground(Theme.createCircleDrawable(dp(36), Theme.getColor(Theme.key_featuredStickers_addButton))); + imageView.setOnClickListener(view -> { + if (businessLink != null) { + AndroidUtilities.addToClipboard(businessLink.link); + BulletinFactory.of(LaunchActivity.getLastFragment()).createCopyLinkBulletin().show(); + } + }); + addView(imageView, LayoutHelper.createFrameRelatively(36, 36, Gravity.START | Gravity.CENTER_VERTICAL, 14, 0, 14, 0)); + + titleTextView = new SimpleTextView(context); + titleTextView.setTextSize(15); + titleTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); + titleTextView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); + addView(titleTextView, LayoutHelper.createFrameRelatively(LayoutHelper.MATCH_PARENT, 20, Gravity.TOP | Gravity.FILL_HORIZONTAL, 64, 10, 14, 0)); + + clicksCountTextView = new SimpleTextView(context); + clicksCountTextView.setTextSize(14); + clicksCountTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2)); + clicksCountTextView.setGravity(LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT); + addView(clicksCountTextView, LayoutHelper.createFrameRelatively(LayoutHelper.MATCH_PARENT, 18, Gravity.TOP | Gravity.FILL_HORIZONTAL, 64, 10.66f, 14, 0)); + + messagePreviewTextView = new SpoilersTextView(context); + messagePreviewTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + messagePreviewTextView.setMaxLines(1); + messagePreviewTextView.setEllipsize(TextUtils.TruncateAt.END); + messagePreviewTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2, resourcesProvider)); + messagePreviewTextView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); + messagePreviewTextView.allowClickSpoilers = false; + messagePreviewTextView.setUseAlphaForEmoji(false); + NotificationCenter.listenEmojiLoading(messagePreviewTextView); + addView(messagePreviewTextView, LayoutHelper.createFrameRelatively(LayoutHelper.MATCH_PARENT, 20, Gravity.BOTTOM | Gravity.FILL_HORIZONTAL, 64, 0, 14, 6)); + } + + public void set(BusinessLinkWrapper linkWrapper, boolean needDivider) { + this.needDivider = needDivider; + this.businessLink = linkWrapper.link; + + if (!TextUtils.isEmpty(businessLink.title)) { + titleTextView.setText(businessLink.title); + } else { + titleTextView.setText(BusinessLinksController.stripHttps(businessLink.link)); + } + + CharSequence text = new SpannableStringBuilder(businessLink.message); + MediaDataController.addTextStyleRuns(businessLink.entities, businessLink.message, (Spannable) text); + text = Emoji.replaceEmoji(text, messagePreviewTextView.getPaint().getFontMetricsInt(), false); + MessageObject.replaceAnimatedEmoji(text, businessLink.entities, messagePreviewTextView.getPaint().getFontMetricsInt()); + messagePreviewTextView.setText(text); + + if (businessLink.views == 0) { + clicksCountTextView.setText(formatString(R.string.NoClicks)); + } else { + clicksCountTextView.setText(formatPluralString("Clicks", businessLink.views)); + } + clicksCountTextView.requestLayout(); + + invalidate(); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + if (needDivider) { + Paint dividerPaint = Theme.getThemePaint(Theme.key_paint_divider, resourcesProvider); + if (dividerPaint == null) + dividerPaint = Theme.dividerPaint; + canvas.drawRect(dp(LocaleController.isRTL ? 0 : 64), getMeasuredHeight() - 1, getWidth() - dp(LocaleController.isRTL ? 64 : 0), getMeasuredHeight(), dividerPaint); + } + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure( + MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(dp(56) + (needDivider ? 1 : 0), MeasureSpec.EXACTLY) + ); + } + + @Override + protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + super.onLayout(changed, left, top, right, bottom); + if (LocaleController.isRTL) { + titleTextView.setPadding(clicksCountTextView.getTextWidth(), 0, 0, 0); + } else { + titleTextView.setPadding(0, 0, clicksCountTextView.getTextWidth(), 0); + } + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksController.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksController.java new file mode 100644 index 0000000000..32bb58a6a3 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksController.java @@ -0,0 +1,313 @@ +package org.telegram.ui.Business; + +import android.text.TextUtils; +import android.util.SparseArray; + +import org.telegram.SQLite.SQLiteCursor; +import org.telegram.SQLite.SQLiteDatabase; +import org.telegram.SQLite.SQLitePreparedStatement; +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.MessagesStorage; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.messenger.UserConfig; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.NativeByteBuffer; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.Components.BulletinFactory; + +import java.util.ArrayList; + +public class BusinessLinksController { + + private static volatile SparseArray Instance = new SparseArray<>(); + private static final Object lockObject = new Object(); + + public static BusinessLinksController getInstance(int num) { + BusinessLinksController localInstance = Instance.get(num); + if (localInstance == null) { + synchronized (lockObject) { + localInstance = Instance.get(num); + if (localInstance == null) { + Instance.put(num, localInstance = new BusinessLinksController(num)); + } + } + } + return localInstance; + } + + public final int currentAccount; + + public final ArrayList links = new ArrayList<>(); + + private boolean loading = false; + private boolean loaded = false; + + private BusinessLinksController(int currentAccount) { + this.currentAccount = currentAccount; + } + + public static String stripHttps(String link) { + if (link.startsWith("https://")) { + return link.substring(8); + } + return link; + } + + public boolean canAddNew() { + return links.size() < MessagesController.getInstance(currentAccount).businessChatLinksLimit; + } + + public void load(boolean forceReload) { + if (!loaded) { + load(true, forceReload); + } else if (forceReload) { + load(false, true); + } + } + + private void load(boolean fromCache, boolean forceReload) { + if (loading || loaded && (!forceReload || fromCache)) { + return; + } + + loading = true; + + if (fromCache) { + MessagesStorage storage = MessagesStorage.getInstance(currentAccount); + storage.getStorageQueue().postRunnable(() -> { + final ArrayList result = new ArrayList<>(); + final ArrayList users = new ArrayList<>(); + final ArrayList chats = new ArrayList<>(); + + SQLiteCursor cursor = null; + try { + SQLiteDatabase db = storage.getDatabase(); + cursor = db.queryFinalized("SELECT data FROM business_links ORDER BY order_value ASC"); + while (cursor.next()) { + NativeByteBuffer data = cursor.byteBufferValue(0); + TLRPC.TL_businessChatLink link = TLRPC.TL_businessChatLink.TLdeserialize(data, data.readInt32(false), false); + result.add(link); + } + cursor.dispose(); + + final ArrayList usersToLoad = new ArrayList<>(); + final ArrayList chatsToLoad = new ArrayList<>(); + for (int i = 0; i < result.size(); ++i) { + TLRPC.TL_businessChatLink link = result.get(i); + if (!link.entities.isEmpty()) { + for (int a = 0; a < link.entities.size(); a++) { + TLRPC.MessageEntity entity = link.entities.get(a); + if (entity instanceof TLRPC.TL_messageEntityMentionName) { + usersToLoad.add(((TLRPC.TL_messageEntityMentionName) entity).user_id); + } else if (entity instanceof TLRPC.TL_inputMessageEntityMentionName) { + usersToLoad.add(((TLRPC.TL_inputMessageEntityMentionName) entity).user_id.user_id); + } + } + } + } + if (!usersToLoad.isEmpty()) { + storage.getUsersInternal(TextUtils.join(",", usersToLoad), users); + } + if (!chatsToLoad.isEmpty()) { + storage.getChatsInternal(TextUtils.join(",", chatsToLoad), chats); + } + } catch (Exception e) { + FileLog.e(e); + } finally { + if (cursor != null) { + cursor.dispose(); + } + } + + AndroidUtilities.runOnUIThread(() -> { + links.clear(); + links.addAll(result); + MessagesController.getInstance(currentAccount).putUsers(users, true); + MessagesController.getInstance(currentAccount).putChats(chats, true); + + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.quickRepliesUpdated); + loading = false; + load(false, forceReload); + }); + }); + } else { + TLRPC.TL_account_getBusinessChatLinks req = new TLRPC.TL_account_getBusinessChatLinks(); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TLRPC.TL_account_businessChatLinks) { + TLRPC.TL_account_businessChatLinks businessChatLinks = (TLRPC.TL_account_businessChatLinks) res; + + links.clear(); + links.addAll(businessChatLinks.links); + + MessagesController.getInstance(currentAccount).putUsers(businessChatLinks.users, false); + MessagesController.getInstance(currentAccount).putChats(businessChatLinks.chats, false); + MessagesStorage.getInstance(currentAccount).putUsersAndChats(businessChatLinks.users, businessChatLinks.chats, true, true); + + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.businessLinksUpdated); + + saveToCache(); + } else { + FileLog.e(new RuntimeException("Unexpected response from server!")); + } + + loading = false; + loaded = true; + })); + } + } + + public void createEmptyLink() { + TLRPC.TL_account_createBusinessChatLink req = new TLRPC.TL_account_createBusinessChatLink(); + req.link = new TLRPC.TL_inputBusinessChatLink(); + req.link.message = ""; + + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TLRPC.TL_businessChatLink) { + TLRPC.TL_businessChatLink businessChatLink = (TLRPC.TL_businessChatLink) res; + links.add(businessChatLink); + + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.businessLinksUpdated); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.businessLinkCreated, businessChatLink); + + saveToCache(); + } + })); + } + + public void deleteLinkUndoable(BaseFragment fragment, String slug) { + TLRPC.TL_businessChatLink link = findLink(slug); + if (link != null) { + int index = links.indexOf(link); + links.remove(link); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.businessLinksUpdated); + + BulletinFactory.of(fragment).createUndoBulletin(LocaleController.getString(R.string.BusinessLinkDeleted), true, + () -> { + links.add(index, link); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.businessLinksUpdated); + }, + () -> { + TLRPC.TL_account_deleteBusinessChatLink req = new TLRPC.TL_account_deleteBusinessChatLink(); + req.slug = slug; + + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TLRPC.TL_boolTrue) { + if (links.contains(link)) { + links.remove(link); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.businessLinksUpdated); + } + saveToCache(); + } else { + FileLog.e(new RuntimeException("Unexpected response from server!")); + } + })); + }).show(); + } + } + + public void editLinkMessage(String slug, String message, ArrayList entities, Runnable onDone) { + TLRPC.TL_businessChatLink link = findLink(slug); + if (link == null) { + return; + } + + TLRPC.TL_inputBusinessChatLink inputLink = new TLRPC.TL_inputBusinessChatLink(); + inputLink.message = message; + inputLink.entities = entities; + inputLink.title = link.title; + + editLink(link, inputLink, onDone); + } + + public void editLinkTitle(String slug, String title) { + TLRPC.TL_businessChatLink link = findLink(slug); + if (link == null) { + return; + } + + TLRPC.TL_inputBusinessChatLink inputLink = new TLRPC.TL_inputBusinessChatLink(); + inputLink.message = link.message; + inputLink.entities = link.entities; + inputLink.title = title; + + editLink(link, inputLink, null); + } + + private void saveToCache() { + ArrayList linksCopy = new ArrayList<>(links); + + MessagesStorage storage = MessagesStorage.getInstance(currentAccount); + storage.getStorageQueue().postRunnable(() -> { + SQLitePreparedStatement state = null; + try { + SQLiteDatabase db = storage.getDatabase(); + db.executeFast("DELETE FROM business_links").stepThis().dispose(); + state = db.executeFast("REPLACE INTO business_links VALUES(?, ?)"); + for (int i = 0; i < linksCopy.size(); i++) { + TLRPC.TL_businessChatLink link = linksCopy.get(i); + NativeByteBuffer data = new NativeByteBuffer(link.getObjectSize()); + link.serializeToStream(data); + state.requery(); + state.bindByteBuffer(1, data); + state.bindInteger(2, i); + state.step(); + } + } catch (Exception e) { + FileLog.e(e); + } finally { + if (state != null) { + state.dispose(); + } + } + }); + } + + private void editLink(TLRPC.TL_businessChatLink link, TLRPC.TL_inputBusinessChatLink inputLink, Runnable onDone) { + TLRPC.TL_account_editBusinessChatLink req = new TLRPC.TL_account_editBusinessChatLink(); + req.slug = link.link; + + if (!inputLink.entities.isEmpty()) { + inputLink.flags |= 1; + } + if (!TextUtils.isEmpty(inputLink.title)) { + inputLink.flags |= 2; + } + req.link = inputLink; + + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TLRPC.TL_businessChatLink) { + TLRPC.TL_businessChatLink updatedLink = (TLRPC.TL_businessChatLink) res; + int index = links.indexOf(link); + if (index != -1) { + links.set(index, updatedLink); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.businessLinksUpdated); + + if (onDone != null) { + onDone.run(); + } + + saveToCache(); + } + } + })); + } + + public TLRPC.TL_businessChatLink findLink(String slug) { + for (int i = 0; i < links.size(); i++) { + TLRPC.TL_businessChatLink chatLink = links.get(i); + if (TextUtils.equals(chatLink.link, slug) || + TextUtils.equals(chatLink.link, "https://" + slug) || + TextUtils.equals(chatLink.link, "https://t.me/m/" + slug) || + TextUtils.equals(chatLink.link, "tg://message?slug=" + slug)) { + return chatLink; + } + } + + return null; + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksEmptyView.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksEmptyView.java new file mode 100644 index 0000000000..5315bd1694 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksEmptyView.java @@ -0,0 +1,71 @@ +package org.telegram.ui.Business; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.Typeface; +import android.util.TypedValue; +import android.view.Gravity; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.R; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.BulletinFactory; +import org.telegram.ui.Components.LayoutHelper; + +@SuppressLint("ViewConstructor") +public class BusinessLinksEmptyView extends LinearLayout { + + private ImageView imageView; + private TextView descriptionView; + private TextView linkView; + + public BusinessLinksEmptyView(Context context, BaseFragment fragment, TLRPC.TL_businessChatLink businessLink, Theme.ResourcesProvider resourcesProvider) { + super(context); + setOrientation(VERTICAL); + + Theme.getColor(Theme.key_chat_serviceText, resourcesProvider); + Theme.getColor(Theme.key_chat_serviceText); + + imageView = new ImageView(context); + imageView.setScaleType(ImageView.ScaleType.CENTER); + imageView.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)); + imageView.setImageResource(R.drawable.filled_chatlink_large); + addView(imageView, LayoutHelper.createLinear(78, 78, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 17, 17, 17, 9)); + + descriptionView = new TextView(context); + descriptionView.setTextAlignment(TEXT_ALIGNMENT_CENTER); + descriptionView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + descriptionView.setTextColor(Theme.getColor(Theme.key_chat_serviceText, resourcesProvider)); + descriptionView.setGravity(Gravity.CENTER_HORIZONTAL); + descriptionView.setMaxWidth(dp(208)); + descriptionView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.BusinessLinksIntro))); + addView(descriptionView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 17, 0, 17, 9)); + + linkView = new TextView(context); + linkView.setTextAlignment(TEXT_ALIGNMENT_CENTER); + linkView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + linkView.setTextColor(Theme.getColor(Theme.key_chat_serviceText, resourcesProvider)); + linkView.setTypeface(linkView.getTypeface(), Typeface.BOLD); + linkView.setGravity(Gravity.CENTER_HORIZONTAL); + linkView.setMaxWidth(dp(208)); + linkView.setText(BusinessLinksController.stripHttps(businessLink.link)); + linkView.setBackground(Theme.createRadSelectorDrawable(0x1e000000, 0x1e000000, 5, 5)); + linkView.setPadding(AndroidUtilities.dp(7), 0, AndroidUtilities.dp(7), 0); + linkView.setOnClickListener(v -> { + AndroidUtilities.addToClipboard(businessLink.link); + BulletinFactory.of(fragment).createCopyLinkBulletin().show(); + }); + addView(linkView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 17, 0, 17, 17)); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessRecipientsHelper.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessRecipientsHelper.java index 13534bd1eb..b41fbf755f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessRecipientsHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessRecipientsHelper.java @@ -33,6 +33,7 @@ public BusinessRecipientsHelper(BaseFragment fragment, Runnable update) { public int includeFlags, excludeFlags; public boolean exclude; + public boolean bot; public final ArrayList alwaysShow = new ArrayList<>(); public final ArrayList neverShow = new ArrayList<>(); @@ -48,7 +49,7 @@ public int getFlags() { } - private TLRPC.TL_businessRecipients currentValue; + private TLRPC.TL_businessBotRecipients currentValue; public boolean hasChanges() { if (currentValue == null) return true; if (currentValue.exclude_selected != exclude) return true; @@ -60,11 +61,31 @@ public boolean hasChanges() { return true; } } + if (bot && !exclude) { + if (neverShow.size() != currentValue.users.size()) return true; + for (int i = 0; i < neverShow.size(); ++i) { + if (!currentValue.users.contains(neverShow.get(i))) { + return true; + } + } + } return false; } public void setValue(TLRPC.TL_businessRecipients recipients) { - currentValue = recipients; + this.bot = false; + if (recipients != null) { + currentValue = new TLRPC.TL_businessBotRecipients(); + currentValue.flags = recipients.flags; + currentValue.existing_chats = recipients.existing_chats; + currentValue.new_chats = recipients.new_chats; + currentValue.contacts = recipients.contacts; + currentValue.non_contacts = recipients.non_contacts; + currentValue.exclude_selected = recipients.exclude_selected; + currentValue.users = recipients.users; + } else { + currentValue = null; + } if (currentValue == null) { exclude = true; excludeFlags = 0; @@ -77,12 +98,43 @@ public void setValue(TLRPC.TL_businessRecipients recipients) { includeFlags = 0; excludeFlags = currentValue.flags &~ (32 | 16); alwaysShow.clear(); + neverShow.clear(); neverShow.addAll(currentValue.users); } else { includeFlags = currentValue.flags &~ (32 | 16); excludeFlags = 0; + alwaysShow.clear(); + neverShow.clear(); alwaysShow.addAll(currentValue.users); + neverShow.addAll(currentValue.exclude_users); + } + } + } + + public void setValue(TLRPC.TL_businessBotRecipients recipients) { + this.bot = true; + currentValue = recipients; + if (currentValue == null) { + exclude = true; + excludeFlags = 0; + includeFlags = 0; + alwaysShow.clear(); + neverShow.clear(); + } else { + exclude = currentValue.exclude_selected; + if (exclude) { + includeFlags = 0; + excludeFlags = currentValue.flags &~ (32 | 16); + alwaysShow.clear(); + neverShow.clear(); + neverShow.addAll(currentValue.users); + } else { + includeFlags = currentValue.flags &~ (32 | 16); + excludeFlags = 0; + alwaysShow.clear(); neverShow.clear(); + alwaysShow.addAll(currentValue.users); + neverShow.addAll(currentValue.exclude_users); } } } @@ -114,6 +166,47 @@ public TLRPC.TL_businessRecipients getValue() { return value; } + public TLRPC.TL_businessBotRecipients getBotValue() { + TLRPC.TL_businessBotRecipients value = new TLRPC.TL_businessBotRecipients(); + final int flags = getFlags(); + value.flags = flags &~ (32 | 16); + value.existing_chats = (flags & PRIVATE_FLAG_EXISTING_CHATS) != 0; + value.new_chats = (flags & PRIVATE_FLAG_NEW_CHATS) != 0; + value.contacts = (flags & PRIVATE_FLAG_CONTACTS) != 0; + value.non_contacts = (flags & PRIVATE_FLAG_NON_CONTACTS) != 0; + value.exclude_selected = exclude; + ArrayList array = exclude ? neverShow : alwaysShow; + if (!array.isEmpty()) { + final int currentAccount = UserConfig.selectedAccount; + MessagesController controller = MessagesController.getInstance(currentAccount); + + value.flags |= 16; + for (int i = 0; i < array.size(); ++i) { + TLRPC.InputUser inputUser = controller.getInputUser(array.get(i)); + if (inputUser == null) { + FileLog.e("businessRecipientsHelper: user not found " + array.get(i)); + } else { + value.users.add(array.get(i)); + } + } + } + if (!exclude) { + final int currentAccount = UserConfig.selectedAccount; + MessagesController controller = MessagesController.getInstance(currentAccount); + + value.flags |= 64; + for (int i = 0; i < neverShow.size(); ++i) { + TLRPC.InputUser inputUser = controller.getInputUser(neverShow.get(i)); + if (inputUser == null) { + FileLog.e("businessRecipientsHelper: user not found " + neverShow.get(i)); + } else { + value.users.add(neverShow.get(i)); + } + } + } + return value; + } + public TLRPC.TL_inputBusinessRecipients getInputValue() { TLRPC.TL_inputBusinessRecipients value = new TLRPC.TL_inputBusinessRecipients(); final int flags = getFlags(); @@ -141,6 +234,47 @@ public TLRPC.TL_inputBusinessRecipients getInputValue() { return value; } + public TLRPC.TL_inputBusinessBotRecipients getBotInputValue() { + TLRPC.TL_inputBusinessBotRecipients value = new TLRPC.TL_inputBusinessBotRecipients(); + final int flags = getFlags(); + value.flags = flags &~ (32 | 16); + value.existing_chats = (flags & PRIVATE_FLAG_EXISTING_CHATS) != 0; + value.new_chats = (flags & PRIVATE_FLAG_NEW_CHATS) != 0; + value.contacts = (flags & PRIVATE_FLAG_CONTACTS) != 0; + value.non_contacts = (flags & PRIVATE_FLAG_NON_CONTACTS) != 0; + value.exclude_selected = exclude; + ArrayList array = exclude ? neverShow : alwaysShow; + if (!array.isEmpty()) { + final int currentAccount = UserConfig.selectedAccount; + MessagesController controller = MessagesController.getInstance(currentAccount); + + value.flags |= 16; + for (int i = 0; i < array.size(); ++i) { + TLRPC.InputUser inputUser = controller.getInputUser(array.get(i)); + if (inputUser == null) { + FileLog.e("businessRecipientsHelper: user not found " + array.get(i)); + } else { + value.users.add(inputUser); + } + } + } + if (!exclude) { + final int currentAccount = UserConfig.selectedAccount; + MessagesController controller = MessagesController.getInstance(currentAccount); + + value.flags |= 64; + for (int i = 0; i < neverShow.size(); ++i) { + TLRPC.InputUser inputUser = controller.getInputUser(neverShow.get(i)); + if (inputUser == null) { + FileLog.e("businessRecipientsHelper: user not found " + neverShow.get(i)); + } else { + value.exclude_users.add(inputUser); + } + } + } + return value; + } + private int shiftDp = -4; public boolean validate(UniversalRecyclerView listView) { if (!exclude && alwaysShow.isEmpty() && includeFlags == 0) { @@ -182,20 +316,26 @@ public void fillItems(ArrayList items) { items.add(UItem.asButton(BUTTON_EXPAND_INCLUDED, R.drawable.arrow_more, LocaleController.formatPluralString("FilterShowMoreChats", alwaysShow.size() - 5)).accent()); } } - } else { + } + if (bot || exclude) { + if (bot) { + items.add(UItem.asShadow(null)); + } items.add(UItem.asHeader(getString(R.string.BusinessChatsExcluded))); items.add(UItem.asButton(BUTTON_ADD_EXCLUDED, R.drawable.msg2_chats_add, getString(R.string.BusinessChatsExcludedAdd)).accent()); - if ((flags & PRIVATE_FLAG_EXISTING_CHATS) != 0) { - items.add(UItem.asFilterChat(false, getString(R.string.FilterExistingChats), "existing_chats", PRIVATE_FLAG_EXISTING_CHATS)); - } - if ((flags & PRIVATE_FLAG_NEW_CHATS) != 0) { - items.add(UItem.asFilterChat(false, getString(R.string.FilterNewChats), "new_chats", PRIVATE_FLAG_NEW_CHATS)); - } - if ((flags & PRIVATE_FLAG_CONTACTS) != 0) { - items.add(UItem.asFilterChat(false, getString(R.string.FilterContacts), "contacts", PRIVATE_FLAG_CONTACTS)); - } - if ((flags & PRIVATE_FLAG_NON_CONTACTS) != 0) { - items.add(UItem.asFilterChat(false, getString(R.string.FilterNonContacts), "non_contacts", PRIVATE_FLAG_NON_CONTACTS)); + if (!bot || exclude) { + if ((flags & PRIVATE_FLAG_EXISTING_CHATS) != 0) { + items.add(UItem.asFilterChat(false, getString(R.string.FilterExistingChats), "existing_chats", PRIVATE_FLAG_EXISTING_CHATS)); + } + if ((flags & PRIVATE_FLAG_NEW_CHATS) != 0) { + items.add(UItem.asFilterChat(false, getString(R.string.FilterNewChats), "new_chats", PRIVATE_FLAG_NEW_CHATS)); + } + if ((flags & PRIVATE_FLAG_CONTACTS) != 0) { + items.add(UItem.asFilterChat(false, getString(R.string.FilterContacts), "contacts", PRIVATE_FLAG_CONTACTS)); + } + if ((flags & PRIVATE_FLAG_NON_CONTACTS) != 0) { + items.add(UItem.asFilterChat(false, getString(R.string.FilterNonContacts), "non_contacts", PRIVATE_FLAG_NON_CONTACTS)); + } } if (!neverShow.isEmpty()) { int count = excludeExpanded || neverShow.size() < 8 ? neverShow.size() : Math.min(5, neverShow.size()); @@ -223,21 +363,22 @@ public boolean onClick(UItem item) { return true; } else if (item.viewType == UniversalAdapter.VIEW_TYPE_FILTER_CHAT) { if (fragment == null) return false; + final boolean include = item.include; final int flag = item.chatType == null ? 0 : getFlag(item.chatType); final String name = flag == 0 ? fragment.getMessagesController().getPeerName(item.dialogId) : getFlagName(flag); fragment.showDialog( new AlertDialog.Builder(fragment.getContext(), fragment.getResourceProvider()) - .setTitle(getString(exclude ? R.string.BusinessRecipientsRemoveExcludeTitle : R.string.BusinessRecipientsRemoveIncludeTitle)) - .setMessage(formatString(exclude ? R.string.BusinessRecipientsRemoveExcludeMessage : R.string.BusinessRecipientsRemoveIncludeMessage, name)) + .setTitle(getString(!include ? R.string.BusinessRecipientsRemoveExcludeTitle : R.string.BusinessRecipientsRemoveIncludeTitle)) + .setMessage(formatString(!include ? R.string.BusinessRecipientsRemoveExcludeMessage : R.string.BusinessRecipientsRemoveIncludeMessage, name)) .setPositiveButton(getString(R.string.Remove), (di, w) -> { if (flag != 0) { - if (exclude) { + if (!include) { excludeFlags &=~ flag; } else { includeFlags &=~ flag; } } else { - (exclude ? neverShow : alwaysShow).remove(item.dialogId); + (!include ? neverShow : alwaysShow).remove(item.dialogId); } update.run(); }) @@ -282,7 +423,7 @@ public void doNotExcludeNewChats() { private void selectChatsFor(boolean include) { ArrayList arrayList = include ? alwaysShow : neverShow; UsersSelectActivity fragment = new UsersSelectActivity(include, arrayList, getFlags()).asPrivateChats(); - fragment.noChatTypes = false; + fragment.noChatTypes = bot && !exclude && !include; fragment.allowSelf = false; fragment.doNotNewChats = !include && doNotExcludeNewChats; fragment.setDelegate((ids, flags) -> { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatAttachAlertQuickRepliesLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatAttachAlertQuickRepliesLayout.java index 0bbf27258b..86223beb08 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatAttachAlertQuickRepliesLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatAttachAlertQuickRepliesLayout.java @@ -6,7 +6,6 @@ import android.animation.ObjectAnimator; import android.content.Context; import android.graphics.Canvas; -import android.net.Uri; import android.os.Build; import android.text.TextUtils; import android.view.Gravity; @@ -29,8 +28,6 @@ import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserObject; import org.telegram.messenger.Utilities; -import org.telegram.messenger.support.LongSparseIntArray; -import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.SimpleTextView; @@ -47,13 +44,9 @@ import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.CheckBox2; import org.telegram.ui.Components.AvatarDrawable; -import org.telegram.ui.Components.PhonebookShareAlert; import java.util.ArrayList; -import java.util.HashMap; import java.util.HashSet; -import java.util.Locale; -import java.util.Objects; public class ChatAttachAlertQuickRepliesLayout extends ChatAttachAlert.AttachAlertLayout implements NotificationCenter.NotificationCenterDelegate { @@ -365,7 +358,7 @@ public void onScrolled(int dx, int dy) { // } } }; - NotificationCenter.getInstance(UserConfig.selectedAccount).listen(listView, NotificationCenter.emojiLoaded, args -> { + NotificationCenter.getInstance(UserConfig.selectedAccount).listenGlobal(listView, NotificationCenter.emojiLoaded, args -> { AndroidUtilities.forEachViews(listView, view -> { if (view instanceof QuickRepliesActivity.QuickReplyView) { ((QuickRepliesActivity.QuickReplyView) view).invalidateEmojis(); @@ -414,16 +407,11 @@ protected int calculateTimeForDeceleration(int dx) { object = listAdapter.getItem(section, row); } if (object instanceof QuickRepliesController.QuickReply) { - final int currentAccount = UserConfig.selectedAccount; - TLRPC.TL_messages_sendQuickReplyMessages req = new TLRPC.TL_messages_sendQuickReplyMessages(); long dialogId; if (parentAlert.baseFragment instanceof ChatActivityInterface) { dialogId = ((ChatActivityInterface) parentAlert.baseFragment).getDialogId(); } else return; - req.peer = MessagesController.getInstance(currentAccount).getInputPeer(dialogId); - if (req.peer == null) return; - req.shortcut_id = ((QuickRepliesController.QuickReply) object).id; - ConnectionsManager.getInstance(currentAccount).sendRequest(req, null); + QuickRepliesController.getInstance(UserConfig.selectedAccount).sendQuickReplyTo(dialogId, (QuickRepliesController.QuickReply) object); parentAlert.dismiss(); } }); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatbotsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatbotsActivity.java index db2409d881..c7a0792a0d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatbotsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatbotsActivity.java @@ -224,7 +224,7 @@ public void onDataSetChanged(int searchId) { }); recipientsHelper.setValue(currentBot == null ? null : currentBot.recipients); - listView = new UniversalRecyclerView(context, currentAccount, this::fillItems, this::onClick, null, getResourceProvider()); + listView = new UniversalRecyclerView(this, this::fillItems, this::onClick, null); contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); return fragmentView = contentView; @@ -351,7 +351,19 @@ private void onClick(UItem item, View view, int position, float x, float y) { listView.adapter.update(true); checkDone(true); } else if (item.viewType == UniversalAdapter.VIEW_TYPE_USER_ADD) { - selectedBot = foundBots.get(item.dialogId); + TLRPC.User bot = foundBots.get(item.dialogId); + if (bot == null) return; + if (!bot.bot_business) { + showDialog( + new AlertDialog.Builder(getContext(), resourceProvider) + .setTitle(getString(R.string.BusinessBotNotSupportedTitle)) + .setMessage(AndroidUtilities.replaceTags(getString(R.string.BusinessBotNotSupportedMessage))) + .setPositiveButton(getString(R.string.OK), null) + .create() + ); + return; + } + selectedBot = bot; AndroidUtilities.hideKeyboard(editText); listView.adapter.update(true); checkDone(true); @@ -376,35 +388,55 @@ private void processDone() { return; } - TLRPC.TL_account_updateConnectedBot req = new TLRPC.TL_account_updateConnectedBot(); - if (selectedBot == null) { + ArrayList requests = new ArrayList<>(); + + if (currentBot != null && (selectedBot == null || currentBot.bot_id != selectedBot.id)) { + TLRPC.TL_account_updateConnectedBot req = new TLRPC.TL_account_updateConnectedBot(); req.deleted = true; - req.bot = new TLRPC.TL_inputUserEmpty(); - req.recipients = new TLRPC.TL_inputBusinessRecipients(); - } else { + req.bot = getMessagesController().getInputUser(currentBot.bot_id); + req.recipients = new TLRPC.TL_inputBusinessBotRecipients(); + requests.add(req); + } + + if (selectedBot != null) { + TLRPC.TL_account_updateConnectedBot req = new TLRPC.TL_account_updateConnectedBot(); + req.deleted = false; req.can_reply = allowReply; req.bot = getMessagesController().getInputUser(selectedBot); - req.recipients = recipientsHelper.getInputValue(); + req.recipients = recipientsHelper.getBotInputValue(); + requests.add(req); if (currentBot != null) { - currentBot.can_reply = allowReply; currentBot.bot_id = selectedBot.id; - currentBot.recipients = recipientsHelper.getValue(); + currentBot.recipients = recipientsHelper.getBotValue(); + currentBot.can_reply = allowReply; } } - getConnectionsManager().sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { - if (res instanceof TLRPC.Updates) { - getMessagesController().processUpdates((TLRPC.Updates) res, false); - } - if (err != null) { - doneButtonDrawable.animateToProgress(0f); - BulletinFactory.showError(err); - } else { - BusinessChatbotController.getInstance(currentAccount).invalidate(); - finishFragment(); - } - })); + if (requests.isEmpty()) { + finishFragment(); + return; + } + + final int[] requestsReceived = new int[] { 0 }; + for (int i = 0; i < requests.size(); ++i) { + getConnectionsManager().sendRequest(requests.get(i), (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (err != null) { + doneButtonDrawable.animateToProgress(0f); + BulletinFactory.showError(err); + } else if (res instanceof TLRPC.TL_boolFalse) { + doneButtonDrawable.animateToProgress(0f); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.UnknownError)).show(); + } else { + requestsReceived[0]++; + if (requestsReceived[0] == requests.size()) { + BusinessChatbotController.getInstance(currentAccount).invalidate(true); + getMessagesController().clearFullUsers(); + finishFragment(); + } + } + })); + } } private boolean loading; @@ -432,6 +464,7 @@ private void setValue() { public boolean hasChanges() { if (!valueSet) return false; if ((selectedBot != null) != (currentBot != null)) return true; + if ((selectedBot == null ? 0 : selectedBot.id) != (currentBot == null ? 0 : currentBot.bot_id)) return true; if (selectedBot != null) { if (allowReply != currentBot.can_reply) { return true; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/GreetMessagesActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/GreetMessagesActivity.java index db5e2c845c..2002463aa2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/GreetMessagesActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/GreetMessagesActivity.java @@ -90,7 +90,7 @@ public void onItemClick(int id) { recipientsHelper.doNotExcludeNewChats(); recipientsHelper.setValue(currentValue == null ? null : currentValue.recipients); - listView = new UniversalRecyclerView(context, currentAccount, this::fillItems, this::onClick, null, getResourceProvider()); + listView = new UniversalRecyclerView(this, this::fillItems, this::onClick, null); contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); setValue(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/LocationActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/LocationActivity.java index 77d4f7d6c6..f4781a2aa8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/LocationActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/LocationActivity.java @@ -33,6 +33,7 @@ import org.telegram.messenger.BotWebViewVibrationEffect; import org.telegram.messenger.DocumentObject; import org.telegram.messenger.FileLog; +import org.telegram.messenger.ImageLocation; import org.telegram.messenger.ImageReceiver; import org.telegram.messenger.LocaleController; import org.telegram.messenger.NotificationCenter; @@ -40,6 +41,7 @@ import org.telegram.messenger.SvgHelper; import org.telegram.messenger.UserConfig; import org.telegram.messenger.Utilities; +import org.telegram.messenger.WebFile; import org.telegram.tgnet.TLRPC; import org.telegram.tgnet.tl.TL_stories; import org.telegram.ui.ActionBar.ActionBar; @@ -116,8 +118,6 @@ public void onItemClick(int id) { FrameLayout contentView = new FrameLayout(context); contentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); - LinearLayout content = new LinearLayout(getContext()); - content.setOrientation(LinearLayout.HORIZONTAL); editText = new EditTextBoldCursor(getContext()) { AnimatedColor limitColor = new AnimatedColor(this); private int limitCount; @@ -194,8 +194,10 @@ public CharSequence filter(CharSequence source, int start, int end, Spanned dest editTextContainer.addView(editText, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP, 21, 15, 21, 15)); editTextContainer.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); if (editText != null) { + ignoreEditText = true; editText.setText(address); editText.setSelection(editText.getText().length()); + ignoreEditText = false; } // mapLoadingDrawable = new LoadingDrawable(resourceProvider); @@ -261,7 +263,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { mapPreviewContainer.addView(mapMarker, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, -31, 0, 0)); updateMapPreview(); - listView = new UniversalRecyclerView(context, currentAccount, this::fillItems, this::onClick, null, getResourceProvider()); + listView = new UniversalRecyclerView(this, this::fillItems, this::onClick, null); contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); setValue(); @@ -309,8 +311,10 @@ private void setValue() { } if (editText != null) { + ignoreEditText = true; editText.setText(address); editText.setSelection(editText.getText().length()); + ignoreEditText = false; } updateMapPreview(); if (listView != null && listView.adapter != null) { @@ -326,8 +330,8 @@ private void updateMapPreview() { mapMarker.setTranslationY(-dp(12)); final int w = (int) ((mapPreview.getMeasuredWidth() <= 0 ? AndroidUtilities.displaySize.x : mapPreview.getMeasuredWidth()) / AndroidUtilities.density); final int h = 240; - String url = AndroidUtilities.formapMapUrl(false, geo.lat, geo._long, w, h, false, 15); - mapPreview.setImage(url, w + "_" + h, mapLoadingDrawable); + final int scale = Math.min(2, (int) Math.ceil(AndroidUtilities.density)); + mapPreview.setImage(ImageLocation.getForWebFile(WebFile.createWithGeoPoint(geo.lat, geo._long, 0, scale * w, scale * h, 15, scale)), w + "_" + h, mapLoadingDrawable, 0, null); } else { mapPreview.setImageBitmap(null); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursActivity.java index 2234e20f8e..cb5bb00af4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursActivity.java @@ -89,7 +89,7 @@ public void onItemClick(int id) { FrameLayout contentView = new FrameLayout(context); contentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); - listView = new UniversalRecyclerView(context, currentAccount, this::fillItems, this::onClick, null, getResourceProvider()); + listView = new UniversalRecyclerView(this, this::fillItems, this::onClick, null); contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); setValue(); @@ -184,6 +184,9 @@ private void setValue() { value = new ArrayList[7]; for (int i = 0; i < value.length; ++i) { value[i] = new ArrayList<>(); + if (i >= 0 && i < 5) { + value[i].add(new Period(0, 24 * 60 - 1)); + } } } @@ -426,6 +429,17 @@ public static String timeToString(int time, boolean includeNextDay) { } } + public static boolean is24x7(TLRPC.TL_businessWorkHours hours) { + if (hours == null || hours.weekly_open.isEmpty()) return false; + int last = 0; + for (int i = 0; i < hours.weekly_open.size(); ++i) { + TLRPC.TL_businessWeeklyOpen period = hours.weekly_open.get(i); + if (period.start_minute > last + 1) return false; + last = period.end_minute; + } + return last >= 24 * 60 * 7 - 1; + } + public static boolean isFull(ArrayList periods) { if (periods == null || periods.isEmpty()) return false; int lastTime = 0; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursDayActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursDayActivity.java index cd93154032..dfe41aafed 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursDayActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursDayActivity.java @@ -89,7 +89,7 @@ public void onItemClick(int id) { FrameLayout contentView = new FrameLayout(context); contentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); - listView = new UniversalRecyclerView(context, currentAccount, this::fillItems, this::onClick, null, getResourceProvider()); + listView = new UniversalRecyclerView(this, this::fillItems, this::onClick, null); contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); return fragmentView = contentView; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/ProfileHoursCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/ProfileHoursCell.java index 6355aeed23..04038a42a4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/ProfileHoursCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/ProfileHoursCell.java @@ -122,10 +122,10 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { switchText = new ClickableAnimatedTextView(context); switchText.getDrawable().updateAll = true; switchText.setTextSize(dp(13)); - switchText.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2, resourcesProvider)); switchText.setPadding(dp(6), 0, dp(6), 0); switchText.setGravity(LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT); - switchText.setBackground(Theme.createSimpleSelectorRoundRectDrawable(dp(8), Theme.multAlpha(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2, resourcesProvider), .10f), Theme.multAlpha(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2, resourcesProvider), .22f))); + switchText.setBackground(Theme.createSimpleSelectorRoundRectDrawable(dp(8), Theme.multAlpha(processColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2, resourcesProvider)), .10f), Theme.multAlpha(processColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2, resourcesProvider)), .22f))); + switchText.setTextColor(processColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2, resourcesProvider))); switchText.getDrawable().setScaleProperty(.6f); switchText.setVisibility(View.GONE); todayTimeTextContainer2.addView(switchText, LayoutHelper.createLinearRelatively(LayoutHelper.MATCH_PARENT, 17, Gravity.END, 0, 4, 20 - 2, 0)); @@ -169,6 +169,15 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setWillNotDraw(false); } + protected int processColor(int color) { + return color; + } + + public void updateColors() { + switchText.setBackground(Theme.createSimpleSelectorRoundRectDrawable(dp(8), Theme.multAlpha(processColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2, resourcesProvider)), .10f), Theme.multAlpha(processColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2, resourcesProvider)), .22f))); + switchText.setTextColor(processColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2, resourcesProvider))); + } + public void setOnTimezoneSwitchClick(View.OnClickListener onClickListener) { if (switchText != null) { switchText.setOnClickListener(onClickListener); @@ -184,6 +193,13 @@ public void set(TLRPC.TL_businessWorkHours value, boolean expanded, boolean show if (value == null) return; + final boolean is24x7 = OpeningHoursActivity.is24x7(value); + if (is24x7) { + this.expanded = expanded = false; + } + arrowView.setVisibility(is24x7 ? View.GONE : View.VISIBLE); + todayTimeTextContainer2.setTranslationX(is24x7 ? dp(11) : 0); + TimezonesController timezonesController = TimezonesController.getInstance(UserConfig.selectedAccount); TLRPC.TL_timezone timezone = timezonesController.findTimezone(value.timezone_id); @@ -191,7 +207,7 @@ public void set(TLRPC.TL_businessWorkHours value, boolean expanded, boolean show int currentUtcOffset = calendar.getTimeZone().getRawOffset() / 1000; int valueUtcOffset = timezone == null ? 0 : timezone.utc_offset; int utcOffset = (currentUtcOffset - valueUtcOffset) / 60; - switchText.setVisibility(utcOffset != 0 ? View.VISIBLE : View.GONE); + switchText.setVisibility(utcOffset != 0 && !is24x7 ? View.VISIBLE : View.GONE); if (utcOffset == 0) showInMyTimezone = false; invalidate(); @@ -294,7 +310,9 @@ public void set(TLRPC.TL_businessWorkHours value, boolean expanded, boolean show } } } else { - if (days[weekday].isEmpty()) { + if (is24x7) { + textView.setText(getString(R.string.BusinessHoursProfileFullOpen)); + } else if (days[weekday].isEmpty()) { textView.setText(getString(R.string.BusinessHoursProfileClose)); } else if (OpeningHoursActivity.isFull(days[weekday])) { textView.setText(getString(R.string.BusinessHoursProfileOpen)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/ProfileLocationCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/ProfileLocationCell.java index a31b56b2c1..b2997ec47c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/ProfileLocationCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/ProfileLocationCell.java @@ -21,10 +21,12 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.BuildVars; import org.telegram.messenger.FileLog; +import org.telegram.messenger.ImageLocation; import org.telegram.messenger.ImageReceiver; import org.telegram.messenger.LocaleController; import org.telegram.messenger.R; import org.telegram.messenger.UserConfig; +import org.telegram.messenger.WebFile; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Components.AvatarDrawable; @@ -55,6 +57,7 @@ public ProfileLocationCell(Context context, Theme.ResourcesProvider resourcesPro Theme.multAlpha(color, .1f), Theme.multAlpha(color, .3f) ); + thumbDrawable.setRadiiDp(4); thumbDrawable.strokePaint.setStrokeWidth(dp(1)); imageReceiver.setRoundRadius(dp(4)); @@ -85,7 +88,8 @@ public void set(TLRPC.TL_businessLocation value, boolean divider) { if (value != null) { textView1.setText(value.address); if (value.geo_point != null) { - imageReceiver.setImage(AndroidUtilities.formapMapUrl(false, value.geo_point.lat, value.geo_point._long, dp(44), dp(44), false, 15), "44_44", thumbDrawable, null, 0); + final int scale = Math.min(2, (int) Math.ceil(AndroidUtilities.density)); + imageReceiver.setImage(ImageLocation.getForWebFile(WebFile.createWithGeoPoint(value.geo_point, dp(44), dp(44), 15, scale)), "44_44", thumbDrawable, 0, null, null, 0); } else { imageReceiver.setImageBitmap((Drawable) null); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesActivity.java index d23a23d54a..8ded369601 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesActivity.java @@ -156,7 +156,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { }; contentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); - listView = new UniversalRecyclerView(context, currentAccount, this::fillItems, this::onClick, this::onLongClick, getResourceProvider()); + listView = new UniversalRecyclerView(this, this::fillItems, this::onClick, this::onLongClick); listView.listenReorder(this::whenReordered); contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesController.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesController.java index 38507f7959..0c9bd414bd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesController.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesController.java @@ -20,6 +20,7 @@ import org.telegram.tgnet.NativeByteBuffer; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ChatActivity; +import org.telegram.ui.Components.ChatActivityInterface; import java.util.ArrayList; import java.util.Collections; @@ -182,8 +183,8 @@ private void load(boolean cache, Runnable whenLoaded) { AndroidUtilities.runOnUIThread(() -> { loading = false; - MessagesController.getInstance(currentAccount).putUsers(users, false); - MessagesController.getInstance(currentAccount).putChats(chats, false); + MessagesController.getInstance(currentAccount).putUsers(users, true); + MessagesController.getInstance(currentAccount).putChats(chats, true); replies.clear(); replies.addAll(result); if (whenLoaded != null) { @@ -531,8 +532,8 @@ private void updateTopMessage(QuickReply reply) { } final MessageObject finalMessageObject = messageObject; AndroidUtilities.runOnUIThread(() -> { - MessagesController.getInstance(currentAccount).putUsers(users, false); - MessagesController.getInstance(currentAccount).putChats(chats, false); + MessagesController.getInstance(currentAccount).putUsers(users, true); + MessagesController.getInstance(currentAccount).putChats(chats, true); reply.topMessage = finalMessageObject; if (reply.topMessage != null) { reply.topMessage.applyQuickReply(reply.name, reply.id); @@ -569,7 +570,7 @@ public boolean processUpdate(TLRPC.Update update, String quick_reply_shortcut, i } newReply.topMessage.applyQuickReply(quick_reply_shortcut, quick_reply_shortcut_id); newReply.messagesCount = 1; - replies.add(0, newReply); + replies.add(newReply); updateOrder(); addReply(newReply); } else if (reply.topMessageId == message.id) { @@ -649,7 +650,7 @@ public boolean processUpdate(TLRPC.Update update, String quick_reply_shortcut, i quickReply.messagesCount = tlreply.count; quickReply.topMessageId = tlreply.top_message; updateOrder(); - replies.add(0, quickReply); + replies.add(quickReply); deleteLocalReply(quickReply.name); } saveToCache(); @@ -762,4 +763,60 @@ public boolean hasReplies() { return !replies.isEmpty(); } + public void sendQuickReplyTo(long dialogId, QuickRepliesController.QuickReply reply) { + if (reply == null) return; + + TLRPC.TL_messages_sendQuickReplyMessages req = new TLRPC.TL_messages_sendQuickReplyMessages(); + req.peer = MessagesController.getInstance(currentAccount).getInputPeer(dialogId); + if (req.peer == null) return; + req.shortcut_id = reply.id; + + MessagesStorage storage = MessagesStorage.getInstance(currentAccount); + storage.getStorageQueue().postRunnable(() -> { + ArrayList ids = new ArrayList<>(); + SQLiteCursor cursor = null; + try { + cursor = storage.getDatabase().queryFinalized("SELECT id FROM quick_replies_messages WHERE topic_id = ?", reply.id); + while (cursor.next()) { + ids.add(cursor.intValue(0)); + } + } catch (Exception e) { + FileLog.e(e); + } finally { + if (cursor != null) { + cursor.dispose(); + } + } + AndroidUtilities.runOnUIThread(() -> { + if (ids.isEmpty() || ids.size() < reply.getMessagesCount()) { + TLRPC.TL_messages_getQuickReplyMessages req2 = new TLRPC.TL_messages_getQuickReplyMessages(); + req2.shortcut_id = reply.id; + ConnectionsManager.getInstance(currentAccount).sendRequest(req2, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TLRPC.TL_messages_messages) { + ArrayList messages = ((TLRPC.TL_messages_messages) res).messages; + ids.clear(); + for (TLRPC.Message m : messages) { + ids.add(m.id); + } + + req.id = ids; + for (int i = 0; i < ids.size(); ++i) { + req.random_id.add(Utilities.random.nextLong()); + } + ConnectionsManager.getInstance(currentAccount).sendRequest(req2, null); + } else { + FileLog.e("received " + res + " " + err + " on getQuickReplyMessages when trying to send quick reply"); + } + })); + } else { + req.id = ids; + for (int i = 0; i < ids.size(); ++i) { + req.random_id.add(Utilities.random.nextLong()); + } + ConnectionsManager.getInstance(currentAccount).sendRequest(req, null); + } + }); + }); + } + } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesEmptyView.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesEmptyView.java new file mode 100644 index 0000000000..92f9fbdcf4 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesEmptyView.java @@ -0,0 +1,132 @@ +package org.telegram.ui.Business; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.util.TypedValue; +import android.view.Gravity; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.R; +import org.telegram.messenger.UserConfig; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ChatActivity; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.RLottieImageView; +import org.telegram.ui.Stories.recorder.HintView2; + +public class QuickRepliesEmptyView extends LinearLayout { + + private TextView titleView; + private TextView descriptionView, descriptionView2; + + public RLottieImageView imageView; + private final Theme.ResourcesProvider resourcesProvider; + + private class DotTextView extends TextView { + public DotTextView(Context context) { + super(context); + } + + @Override + protected void dispatchDraw(Canvas canvas) { + if (getPaddingLeft() > 0) { + canvas.drawCircle((getPaddingLeft() - dp(2.5f)) / 2f, dp(10), dp(2.5f), getPaint()); + } + super.dispatchDraw(canvas); + } + } + + public QuickRepliesEmptyView(Context context, int chatMode, long type, long topic_id, String quickReplyName, Theme.ResourcesProvider resourcesProvider) { + super(context); + setOrientation(VERTICAL); + this.resourcesProvider = resourcesProvider; + + titleView = new TextView(context); + titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + titleView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + titleView.setTextAlignment(TEXT_ALIGNMENT_CENTER); + titleView.setGravity(Gravity.CENTER); + + descriptionView = new DotTextView(context); + descriptionView.setTextAlignment(TEXT_ALIGNMENT_CENTER); + descriptionView.setGravity(Gravity.CENTER); + descriptionView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + descriptionView.setGravity(Gravity.CENTER_HORIZONTAL); + + imageView = new RLottieImageView(context); + imageView.setScaleType(ImageView.ScaleType.CENTER); + imageView.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)); +// imageView.setAnimation(R.raw.large_message_lock, 80, 80); +// imageView.setOnClickListener(v -> { +// imageView.setProgress(0); +// imageView.playAnimation(); +// }); +// imageView.playAnimation(); + + int descriptionViewMargin = 12; + descriptionView.setMaxWidth(dp(160)); + if (QuickRepliesController.GREETING.equalsIgnoreCase(quickReplyName)) { + imageView.setImageResource(R.drawable.large_greeting); + titleView.setText(LocaleController.getString(R.string.BusinessGreetingIntroTitle)); + descriptionViewMargin = 22; + descriptionView.setText(LocaleController.getString(R.string.BusinessGreetingIntro)); + descriptionView.setMaxWidth(Math.min(dp(160), HintView2.cutInFancyHalf(descriptionView.getText(), descriptionView.getPaint()))); + } else if (QuickRepliesController.AWAY.equalsIgnoreCase(quickReplyName)) { + imageView.setImageResource(R.drawable.large_away); + titleView.setText(LocaleController.getString(R.string.BusinessAwayIntroTitle)); + descriptionViewMargin = 22; + descriptionView.setText(LocaleController.getString(R.string.BusinessAwayIntro)); + descriptionView.setMaxWidth(Math.min(dp(160), HintView2.cutInFancyHalf(descriptionView.getText(), descriptionView.getPaint()))); + } else if (chatMode == ChatActivity.MODE_QUICK_REPLIES) { + imageView.setImageResource(R.drawable.large_quickreplies); + + QuickRepliesController.QuickReply reply = QuickRepliesController.getInstance(UserConfig.selectedAccount).findReply(topic_id); + String replyName = reply == null ? quickReplyName : reply.name; + + titleView.setText(LocaleController.getString(R.string.BusinessRepliesIntroTitle)); + descriptionView.setMaxWidth(dp(208)); + descriptionView.setTextAlignment(TEXT_ALIGNMENT_TEXT_START); + descriptionView.setGravity(Gravity.LEFT); + descriptionView.setText(AndroidUtilities.replaceTags(LocaleController.formatString(R.string.BusinessRepliesIntro1, replyName))); + descriptionView.setPadding(dp(28), 0, 0, 0); + + descriptionView2 = new DotTextView(context); + descriptionView2.setMaxWidth(dp(208)); + descriptionView2.setTextAlignment(TEXT_ALIGNMENT_TEXT_START); + descriptionView2.setGravity(Gravity.LEFT); + descriptionView2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + descriptionView2.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.BusinessRepliesIntro2))); + descriptionView2.setPadding(dp(28), 0, 0, 0); + } + + addView(imageView, LayoutHelper.createLinear(78, 78, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 20, 17, 20, 9)); + addView(titleView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 20, 0, 20, 9)); + addView(descriptionView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, descriptionViewMargin, 0, descriptionViewMargin, descriptionView2 != null ? 9 : 19)); + if (descriptionView2 != null) { + addView(descriptionView2, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 12, 0, 12, 19)); + } + + updateColors(); + } + + private void updateColors() { + titleView.setTextColor(getThemedColor(Theme.key_chat_serviceText)); + descriptionView.setTextColor(getThemedColor(Theme.key_chat_serviceText)); + if (descriptionView2 != null) { + descriptionView2.setTextColor(getThemedColor(Theme.key_chat_serviceText)); + } + } + + private int getThemedColor(int key) { + return Theme.getColor(key, resourcesProvider); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/TimezoneSelector.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/TimezoneSelector.java index 99858a1609..beab8c1831 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/TimezoneSelector.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/TimezoneSelector.java @@ -89,7 +89,7 @@ public void onTextChanged(EditText editText) { FrameLayout contentView = new FrameLayout(context); contentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); - listView = new UniversalRecyclerView(context, currentAccount, this::fillItems, this::onClick, null, getResourceProvider()); + listView = new UniversalRecyclerView(this, this::fillItems, this::onClick, null); contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); listView.setOnScrollListener(new RecyclerView.OnScrollListener() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java index 8dc653ca54..033b5791a2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java @@ -1,5 +1,7 @@ package org.telegram.ui; +import static org.telegram.messenger.AndroidUtilities.dp; + import android.Manifest; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -21,6 +23,7 @@ import android.graphics.Paint; import android.graphics.Path; import android.graphics.Point; +import android.graphics.PointF; import android.graphics.RectF; import android.graphics.Typeface; import android.graphics.drawable.ShapeDrawable; @@ -114,8 +117,21 @@ public class CameraScanActivity extends BaseFragment { private SpringAnimation qrAppearing = null; private float qrAppearingValue = 0; - private RectF fromBounds = new RectF(); - private RectF bounds = new RectF(); + private final PointF[] fromPoints = new PointF[4]; + private final PointF[] points = new PointF[4]; + private final PointF[] tmpPoints = new PointF[4]; + private final PointF[] tmp2Points = new PointF[4]; + { + for (int i = 0; i < 4; ++i) { + fromPoints[i] = new PointF(-1, -1); + points[i] = new PointF(-1, -1); + tmpPoints[i] = new PointF(-1, -1); + tmp2Points[i] = new PointF(-1, -1); + } + } + + private final RectF fromBounds = new RectF(); + private final RectF bounds = new RectF(); private long lastBoundsUpdate = 0; private final long boundsUpdateDuration = 75; @@ -383,13 +399,13 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } recognizedMrzView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); if (galleryButton != null) { - galleryButton.measure(MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(60), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(60), MeasureSpec.EXACTLY)); + galleryButton.measure(MeasureSpec.makeMeasureSpec(dp(60), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(dp(60), MeasureSpec.EXACTLY)); } - flashButton.measure(MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(60), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(60), MeasureSpec.EXACTLY)); + flashButton.measure(MeasureSpec.makeMeasureSpec(dp(60), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(dp(60), MeasureSpec.EXACTLY)); } - titleTextView.measure(MeasureSpec.makeMeasureSpec(width - AndroidUtilities.dp(72), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); + titleTextView.measure(MeasureSpec.makeMeasureSpec(width - dp(72), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); if (currentType == TYPE_QR_WEB_BOT) { - descriptionText.measure(MeasureSpec.makeMeasureSpec(width - AndroidUtilities.dp(72), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); + descriptionText.measure(MeasureSpec.makeMeasureSpec(width - dp(72), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); } else { descriptionText.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.9f), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); } @@ -410,7 +426,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { recognizedMrzView.setTextSize(TypedValue.COMPLEX_UNIT_PX, height / 22); recognizedMrzView.setPadding(0, 0, 0, height / 15); y = (int) (height * 0.65f); - titleTextView.layout(AndroidUtilities.dp(36), y, AndroidUtilities.dp(36) + titleTextView.getMeasuredWidth(), y + titleTextView.getMeasuredHeight()); + titleTextView.layout(dp(36), y, dp(36) + titleTextView.getMeasuredWidth(), y + titleTextView.getMeasuredHeight()); } else { actionBar.layout(0, 0, actionBar.getMeasuredWidth(), actionBar.getMeasuredHeight()); if (cameraView != null) { @@ -418,28 +434,28 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { } int size = (int) (Math.min(width, height) / 1.5f); if (currentType == TYPE_QR) { - y = (height - size) / 2 - titleTextView.getMeasuredHeight() - AndroidUtilities.dp(30); + y = (height - size) / 2 - titleTextView.getMeasuredHeight() - dp(30); } else { - y = (height - size) / 2 - titleTextView.getMeasuredHeight() - AndroidUtilities.dp(64); + y = (height - size) / 2 - titleTextView.getMeasuredHeight() - dp(64); } - titleTextView.layout(AndroidUtilities.dp(36), y, AndroidUtilities.dp(36) + titleTextView.getMeasuredWidth(), y + titleTextView.getMeasuredHeight()); + titleTextView.layout(dp(36), y, dp(36) + titleTextView.getMeasuredWidth(), y + titleTextView.getMeasuredHeight()); if (currentType == TYPE_QR_WEB_BOT) { - y += titleTextView.getMeasuredHeight() + AndroidUtilities.dp(8); - descriptionText.layout(AndroidUtilities.dp(36), y, AndroidUtilities.dp(36) + descriptionText.getMeasuredWidth(), y + descriptionText.getMeasuredHeight()); + y += titleTextView.getMeasuredHeight() + dp(8); + descriptionText.layout(dp(36), y, dp(36) + descriptionText.getMeasuredWidth(), y + descriptionText.getMeasuredHeight()); } recognizedMrzView.layout(0, getMeasuredHeight() - recognizedMrzView.getMeasuredHeight(), getMeasuredWidth(), getMeasuredHeight()); int x; if (needGalleryButton) { - x = width / 2 + AndroidUtilities.dp(35); + x = width / 2 + dp(35); } else { x = width / 2 - flashButton.getMeasuredWidth() / 2; } - y = (height - size) / 2 + size + AndroidUtilities.dp(80); + y = (height - size) / 2 + size + dp(80); flashButton.layout(x, y, x + flashButton.getMeasuredWidth(), y + flashButton.getMeasuredHeight()); if (galleryButton != null) { - x = width / 2 - AndroidUtilities.dp(35) - galleryButton.getMeasuredWidth(); + x = width / 2 - dp(35) - galleryButton.getMeasuredWidth(); galleryButton.layout(x, y, x + galleryButton.getMeasuredWidth(), y + galleryButton.getMeasuredHeight()); } } @@ -453,6 +469,8 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { updateNormalBounds(); } + Path path = new Path(); + @Override protected boolean drawChild(Canvas canvas, View child, long drawingTime) { boolean result = super.drawChild(canvas, child, drawingTime); @@ -463,6 +481,17 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { cx = (int) (child.getWidth() * bounds.centerX()), cy = (int) (child.getHeight() * bounds.centerY()); +// PointF[] points = getPoints(); +// path.rewind(); +// for (int i = 0; i < points.length; ++i) { +// float x = child.getWidth() * points[i].x; +// float y = child.getHeight() * points[i].y; +// if (i == 0) path.moveTo(x, y); +// else path.lineTo(x, y); +// } +// Theme.DEBUG_RED.setAlpha(40); +// canvas.drawPath(path, Theme.DEBUG_RED); + sizex *= (.5f + qrAppearingValue * .5f); sizey *= (.5f + qrAppearingValue * .5f); int x = cx - sizex / 2, @@ -476,9 +505,9 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { paint.setAlpha((int) (255 * Math.max(0, 1f - qrAppearingValue))); canvas.drawRect(x, y, x + sizex, y + sizey, paint); - final int lineWidth = AndroidUtilities.lerp(0, AndroidUtilities.dp(4), Math.min(1, qrAppearingValue * 20f)), - halfLineWidth = lineWidth / 2; - final int lineLength = AndroidUtilities.lerp(Math.min(sizex, sizey), AndroidUtilities.dp(20), Math.min(1.2f, (float) Math.pow(qrAppearingValue, 1.8f))); + final int lineWidth = AndroidUtilities.lerp(0, dp(4), Math.min(1, qrAppearingValue * 20f)), + halfLineWidth = lineWidth / 2; + final int lineLength = AndroidUtilities.lerp(Math.min(sizex, sizey), dp(20), Math.min(1.2f, (float) Math.pow(qrAppearingValue, 1.8f))); cornerPaint.setAlpha((int) (255 * Math.min(1, qrAppearingValue))); @@ -572,7 +601,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int end = spanned.getSpanEnd(innerSpans[a]); textPath.setCurrentLayout(getLayout(), start, 0); int shift = getText() != null ? getPaint().baselineShift : 0; - textPath.setBaselineShift(shift != 0 ? shift + AndroidUtilities.dp(shift > 0 ? 5 : -2) : 0); + textPath.setBaselineShift(shift != 0 ? shift + dp(shift > 0 ? 5 : -2) : 0); getLayout().getSelectionPath(start, end, textPath); } textPath.setAllowReset(true); @@ -689,7 +718,7 @@ protected void onDraw(Canvas canvas) { titleTextView.setLinkTextColor(0xffffffff); titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - titleTextView.setLineSpacing(AndroidUtilities.dp(2), 1.0f); + titleTextView.setLineSpacing(dp(2), 1.0f); titleTextView.setPadding(0, 0, 0, 0); titleTextView.setText(spanned); } @@ -699,7 +728,7 @@ protected void onDraw(Canvas canvas) { descriptionText.setTextColor(0x99ffffff); } recognizedMrzView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - recognizedMrzView.setPadding(AndroidUtilities.dp(10), 0, AndroidUtilities.dp(10), AndroidUtilities.dp(10)); + recognizedMrzView.setPadding(dp(10), 0, dp(10), dp(10)); if (needGalleryButton) { //recognizedMrzView.setText(LocaleController.getString("WalletScanCodeNotFound", R.string.WalletScanCodeNotFound)); } else { @@ -711,7 +740,7 @@ protected void onDraw(Canvas canvas) { galleryButton = new ImageView(context); galleryButton.setScaleType(ImageView.ScaleType.CENTER); galleryButton.setImageResource(R.drawable.qr_gallery); - galleryButton.setBackgroundDrawable(Theme.createSelectorDrawableFromDrawables(Theme.createCircleDrawable(AndroidUtilities.dp(60), 0x22ffffff), Theme.createCircleDrawable(AndroidUtilities.dp(60), 0x44ffffff))); + galleryButton.setBackgroundDrawable(Theme.createSelectorDrawableFromDrawables(Theme.createCircleDrawable(dp(60), 0x22ffffff), Theme.createCircleDrawable(dp(60), 0x44ffffff))); viewGroup.addView(galleryButton); galleryButton.setOnClickListener(currentImage -> { if (getParentActivity() == null) { @@ -773,7 +802,7 @@ public void startPhotoSelectActivity() { flashButton = new ImageView(context); flashButton.setScaleType(ImageView.ScaleType.CENTER); flashButton.setImageResource(R.drawable.qr_flashlight); - flashButton.setBackgroundDrawable(Theme.createCircleDrawable(AndroidUtilities.dp(60), 0x22ffffff)); + flashButton.setBackgroundDrawable(Theme.createCircleDrawable(dp(60), 0x22ffffff)); viewGroup.addView(flashButton); flashButton.setOnClickListener(currentImage -> { if (cameraView == null) { @@ -897,43 +926,84 @@ private void initCameraView() { } } - private void updateRecognizedBounds(RectF newBounds) { + private void setPointsFromBounds(RectF bounds, PointF[] points) { + points[0].set(bounds.left, bounds.top); + points[1].set(bounds.right, bounds.top); + points[2].set(bounds.right, bounds.bottom); + points[3].set(bounds.left, bounds.bottom); + } + + private void updateRecognizedBounds(RectF newBounds, PointF[] newPoints) { final long now = SystemClock.elapsedRealtime(); if (lastBoundsUpdate == 0) { // first update = set lastBoundsUpdate = now - boundsUpdateDuration; bounds.set(newBounds); fromBounds.set(newBounds); + if (newPoints == null) { + setPointsFromBounds(newBounds, fromPoints); + setPointsFromBounds(newBounds, points); + } else { + for (int i = 0; i < 4; i++) { + fromPoints[i].set(newPoints[i].x, newPoints[i].y); + points[i].set(newPoints[i].x, newPoints[i].y); + } + } } else { // next updates = interpolate if (fromBounds != null && now - lastBoundsUpdate < boundsUpdateDuration) { float t = (now - lastBoundsUpdate) / (float) boundsUpdateDuration; t = Math.min(1, Math.max(0, t)); AndroidUtilities.lerp(fromBounds, bounds, t, fromBounds); - } else { - if (fromBounds == null) { - fromBounds = new RectF(); + + for (int i = 0; i < 4; ++i) { + fromPoints[i].set( + AndroidUtilities.lerp(fromPoints[i].x, points[i].x, t), + AndroidUtilities.lerp(fromPoints[i].y, points[i].y, t) + ); } + } else { fromBounds.set(bounds); + for (int i = 0; i < 4; ++i) { + fromPoints[i].set(points[i].x, points[i].y); + } } bounds.set(newBounds); + if (newPoints == null) { + setPointsFromBounds(bounds, points); + } else { + for (int i = 0; i < 4; ++i) { + points[i].set(newPoints[i].x, newPoints[i].y); + } + } lastBoundsUpdate = now; } fragmentView.invalidate(); } private RectF getRecognizedBounds() { - if (fromBounds == null) { - return bounds; - } else { - float t = (SystemClock.elapsedRealtime() - lastBoundsUpdate) / (float) boundsUpdateDuration; - t = Math.min(1, Math.max(0, t)); - if (t < 1f) { - fragmentView.invalidate(); - } - AndroidUtilities.lerp(fromBounds, bounds, t, AndroidUtilities.rectTmp); - return AndroidUtilities.rectTmp; + float t = (SystemClock.elapsedRealtime() - lastBoundsUpdate) / (float) boundsUpdateDuration; + t = Math.min(1, Math.max(0, t)); + if (t < 1f) { + fragmentView.invalidate(); } + AndroidUtilities.lerp(fromBounds, bounds, t, AndroidUtilities.rectTmp); + return AndroidUtilities.rectTmp; + } + + private PointF[] getRecognizedPoints() { + float t = (SystemClock.elapsedRealtime() - lastBoundsUpdate) / (float) boundsUpdateDuration; + t = Math.min(1, Math.max(0, t)); + if (t < 1f) { + fragmentView.invalidate(); + } + for (int i = 0; i < 4; ++i) { + tmpPoints[i].set( + AndroidUtilities.lerp(fromPoints[i].x, points[i].x, t), + AndroidUtilities.lerp(fromPoints[i].y, points[i].y, t) + ); + } + return tmpPoints; } private RectF normalBounds; @@ -951,6 +1021,7 @@ private void updateNormalBounds() { (height + side) / 2f / (float) height ); } + private RectF getBounds() { RectF recognizedBounds = getRecognizedBounds(); if (useRecognizedBounds < 1f) { @@ -962,6 +1033,23 @@ private RectF getBounds() { return recognizedBounds; } + private PointF[] getPoints() { + PointF[] recognizedPoints = getRecognizedPoints(); + if (useRecognizedBounds < 1f) { + if (normalBounds == null) { + updateNormalBounds(); + } + setPointsFromBounds(normalBounds, tmp2Points); + for (int i = 0; i < recognizedPoints.length; ++i) { + recognizedPoints[i].set( + AndroidUtilities.lerp(tmp2Points[i].x, recognizedPoints[i].x, useRecognizedBounds), + AndroidUtilities.lerp(tmp2Points[i].y, recognizedPoints[i].y, useRecognizedBounds) + ); + } + } + return recognizedPoints; + } + @Override public void onActivityResultFragment(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK && requestCode == 11 && data != null && data.getData() != null) { @@ -1078,7 +1166,7 @@ public void processShot(Bitmap bitmap) { recognizedStart = SystemClock.elapsedRealtime(); AndroidUtilities.runOnUIThread(this::updateRecognized); } - AndroidUtilities.runOnUIThread(() -> updateRecognizedBounds(res.bounds)); + AndroidUtilities.runOnUIThread(() -> updateRecognizedBounds(res.bounds, res.cornerPoints)); } else if (recognized) { recognizeFailed++; if (recognizeFailed > 4 && !qrLoading) { @@ -1199,12 +1287,26 @@ public QrResult(String text, RectF bounds) { } public QrResult() {} + + PointF[] cornerPoints; + } + + private static PointF[] toPointF(Point[] points, int w, int h) { + PointF[] out = new PointF[points.length]; + for (int i = 0; i < points.length; ++i) { + out[i] = new PointF( + points[i].x / (float) w, + points[i].y / (float) h + ); + } + return out; } private QrResult tryReadQr(byte[] data, Size size, int x, int y, int side, Bitmap bitmap) { try { String text; RectF bounds = new RectF(); + PointF[] cornerPoints = null; int width = 1, height = 1; /*if (visionQrReader != null && visionQrReader.isOperational()) { Frame frame; @@ -1221,10 +1323,10 @@ private QrResult tryReadQr(byte[] data, Size size, int x, int y, int side, Bitma if (codes != null && codes.size() > 0) { Barcode code = codes.valueAt(0); text = code.rawValue; + cornerPoints = toPointF(code.cornerPoints, width, height); if (code.cornerPoints == null || code.cornerPoints.length == 0) { bounds = null; } else { -// bounds.set(code.getBoundingBox()); float minX = Float.MAX_VALUE, maxX = Float.MIN_VALUE, minY = Float.MAX_VALUE, @@ -1247,6 +1349,7 @@ private QrResult tryReadQr(byte[] data, Size size, int x, int y, int side, Bitma if (codes != null && codes.size() > 0) { Barcode code = codes.valueAt(0); text = code.rawValue; + cornerPoints = toPointF(code.cornerPoints, width, height); if (code.cornerPoints == null || code.cornerPoints.length == 0) { bounds = null; } else { @@ -1272,6 +1375,7 @@ private QrResult tryReadQr(byte[] data, Size size, int x, int y, int side, Bitma if (codes != null && codes.size() > 0) { Barcode code = codes.valueAt(0); text = code.rawValue; + cornerPoints = toPointF(code.cornerPoints, width, height); if (code.cornerPoints == null || code.cornerPoints.length == 0) { bounds = null; } else { @@ -1304,7 +1408,7 @@ private QrResult tryReadQr(byte[] data, Size size, int x, int y, int side, Bitma bitmap.getPixels(intArray, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight()); source = new RGBLuminanceSource(bitmap.getWidth(), bitmap.getHeight(), intArray); width = bitmap.getWidth(); - height = bitmap.getWidth(); + height = bitmap.getHeight(); } else { source = new PlanarYUVLuminanceSource(data, size.getWidth(), size.getHeight(), x, y, side, side, false); width = size.getWidth(); @@ -1331,6 +1435,15 @@ private QrResult tryReadQr(byte[] data, Size size, int x, int y, int side, Bitma maxY = Math.max(maxY, point.getY()); } bounds.set(minX, minY, maxX, maxY); + if (result.getResultPoints().length == 4) { + cornerPoints = new PointF[4]; + for (int i = 0; i < 4; ++i) { + cornerPoints[i] = new PointF( + result.getResultPoints()[i].getX() / width, + result.getResultPoints()[i].getY() / height + ); + } + } } } else { text = null; @@ -1344,21 +1457,22 @@ private QrResult tryReadQr(byte[] data, Size size, int x, int y, int side, Bitma Uri uri = Uri.parse(text); String path = uri.getPath().replace("/", ""); } else { - if (!text.startsWith("tg://login?token=") && currentType != TYPE_QR_WEB_BOT) { + if (currentType == TYPE_QR_LOGIN && !text.startsWith("tg://login?token=")) { onNoQrFound(); return null; } } QrResult qrResult = new QrResult(); if (bounds != null) { - int paddingx = AndroidUtilities.dp(25), - paddingy = AndroidUtilities.dp(15); + int paddingx = dp(25), + paddingy = dp(15); bounds.set(bounds.left - paddingx, bounds.top - paddingy, bounds.right + paddingx, bounds.bottom + paddingy); bounds.set( bounds.left / (float) width, bounds.top / (float) height, bounds.right / (float) width, bounds.bottom / (float) height ); } + qrResult.cornerPoints = cornerPoints; qrResult.bounds = bounds; qrResult.text = text; return qrResult; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchivedStickerSetCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchivedStickerSetCell.java index cba1a3a477..dc8a86b2dd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchivedStickerSetCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchivedStickerSetCell.java @@ -200,7 +200,7 @@ public void setStickersSet(TLRPC.StickerSetCovered set, boolean divider) { imageLocation = ImageLocation.getForSticker(thumb, sticker, set.set.thumb_version); } - if (object instanceof TLRPC.Document && MessageObject.isAnimatedStickerDocument(sticker, true)) { + if (object instanceof TLRPC.Document && (MessageObject.isAnimatedStickerDocument(sticker, true) || MessageObject.isVideoSticker(sticker))) { if (svgThumb != null) { imageView.setImage(ImageLocation.getForDocument(sticker), "50_50", svgThumb, 0, set); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java index 931a78dccd..d55b75dcbc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java @@ -1027,11 +1027,19 @@ private void openLink(CharacterStyle link) { } } + private int overriddenMaxWidth; + public void setOverrideTextMaxWidth(int width) { + overriddenMaxWidth = width; + } + private void createLayout(CharSequence text, int width) { int maxWidth = width - dp(30); if (maxWidth < 0) { return; } + if (overriddenMaxWidth > 0) { + maxWidth = Math.min(overriddenMaxWidth, maxWidth); + } invalidatePath = true; TextPaint paint; if (currentMessageObject != null && currentMessageObject.drawServiceWithDefaultTypeface) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java index 89f3d3870a..71ff1dbdbc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java @@ -209,6 +209,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate, ImageReceiver.ImageReceiverDelegate, DownloadController.FileDownloadProgressListener, TextSelectionHelper.SelectableView, NotificationCenter.NotificationCenterDelegate { private final static int TIME_APPEAR_MS = 200; private final static int UPLOADING_ALLOWABLE_ERROR = 1024 * 1024; + private final static int STICKER_STATUS_OFFSET = 6; public boolean clipToGroupBounds; public boolean drawForBlur; @@ -552,6 +553,9 @@ default void didPressOther(ChatMessageCell cell, float otherX, float otherY) { default void didPressSponsoredClose() { } + default void didPressSponsoredInfo(ChatMessageCell cell, float x, float y) { + } + default void didPressTime(ChatMessageCell cell) { } @@ -675,6 +679,10 @@ default void didPressEmojiStatus() { default boolean doNotShowLoadingReply(MessageObject msg) { return msg != null && msg.getDialogId() == UserObject.REPLY_BOT; } + + default void didPressAboutRevenueSharingAds() { + + } } private final static int DOCUMENT_ATTACH_TYPE_NONE = 0; @@ -899,6 +907,10 @@ public boolean isCellAttachedToWindow() { private float siteNameLeft, siteNameLayoutWidth; private int siteNameWidth; private StaticLayout siteNameLayout; + private StaticLayout titleLabelLayout; + private float titleLabelLayoutWidth, titleLabelLayoutHeight, titleLabelX, titleLabelY; + private boolean isTitleLabelPressed; + private ButtonBounce titleLabelBounce; private StaticLayout titleLayout; private StaticLayout descriptionLayout; private StaticLayout videoInfoLayout; @@ -935,6 +947,7 @@ public boolean isCellAttachedToWindow() { private boolean instantPressed; private boolean instantButtonPressed; private ButtonBounce instantButtonBounce; + private int selectorDrawableColor; private final Drawable[] selectorDrawable = new Drawable[2]; private int[] selectorDrawableMaskType = new int[2]; private RectF instantButtonRect = new RectF(); @@ -1272,7 +1285,13 @@ class LoadingDrawableLocation { private MessageTopicButton topicButton; private int drawSideButton; + private int drawSideButton2; private boolean sideButtonPressed; + private int pressedSideButton; + private Path sideButtonPath1, sideButtonPath2; + private float[] sideButtonPathCorners1, sideButtonPathCorners2; + private static final int SIDE_BUTTON_SPONSORED_CLOSE = 4; + private static final int SIDE_BUTTON_SPONSORED_MORE = 5; private float sideStartX; private float sideStartY; @@ -1301,10 +1320,11 @@ class LoadingDrawableLocation { private float drawTimeX; private float drawTimeY; - private StaticLayout timeLayout; + public StaticLayout timeLayout; public int timeWidth; private int timeTextWidth; - protected int timeX; + public int timeX; + public int signWidth; private CharSequence currentTimeString; private boolean drawTime = true; private boolean forceNotDrawTime; @@ -2771,6 +2791,38 @@ private boolean checkContactMotionEvent(MotionEvent event) { return false; } + private boolean checkTitleLabelMotion(MotionEvent event) { + if (!currentMessageObject.isSponsored() || !currentMessageObject.sponsoredCanReport) { + return false; + } + + int x = (int) event.getX(); + int y = (int) event.getY(); + + if (event.getAction() == MotionEvent.ACTION_DOWN) { + if (x >= titleLabelX - AndroidUtilities.dp(6) && x <= titleLabelX + titleLabelLayoutWidth + AndroidUtilities.dp(6) + && y >= titleLabelY - AndroidUtilities.dp(2) && y <= titleLabelY + titleLabelLayoutHeight + AndroidUtilities.dp(2)) { + if (titleLabelBounce != null) { + titleLabelBounce.setPressed(true); + } + isTitleLabelPressed = true; + return true; + } + } else if (event.getAction() == MotionEvent.ACTION_UP) { + if (isTitleLabelPressed) { + if (delegate != null) { + delegate.didPressAboutRevenueSharingAds(); + } + if (titleLabelBounce != null) { + titleLabelBounce.setPressed(false); + } + playSoundEffect(SoundEffectConstants.CLICK); + isTitleLabelPressed = false; + } + } + return false; + } + private void invalidateWithParent() { if (currentMessagesGroup != null && getParent() != null) { ((ViewGroup) getParent()).invalidate(); @@ -3565,6 +3617,9 @@ public boolean onTouchEvent(MotionEvent event) { if (!result) { result = checkAudioMotionEvent(event); } + if (!result) { + result = checkTitleLabelMotion(event); + } if (!result) { result = checkContactMotionEvent(event); } @@ -3607,12 +3662,16 @@ public boolean onTouchEvent(MotionEvent event) { linkPreviewPressed = false; otherPressed = false; sideButtonPressed = false; + pressedSideButton = 0; imagePressed = false; timePressed = false; gamePreviewPressed = false; instantPressed = commentButtonPressed = false; setInstantButtonPressed(false); resetContactButtonsPressedState(); + if (titleLabelBounce != null) { + titleLabelBounce.setPressed(false); + } if (Build.VERSION.SDK_INT >= 21) { for (int a = 0; a < selectorDrawable.length; a++) { if (selectorDrawable[a] != null) { @@ -3686,9 +3745,18 @@ public boolean onTouchEvent(MotionEvent event) { } else if ( drawSideButton != 0 && x >= sideStartX - dp(24) && x <= sideStartX + dp(40) && - y >= sideStartY - dp(24) && y <= sideStartY + dp(38 + (drawSideButton == 3 && commentLayout != null ? 18 : 0)) + y >= sideStartY - dp(24) && y <= sideStartY + dp(38 + (drawSideButton == 3 && commentLayout != null ? 18 : 0) + (drawSideButton2 == SIDE_BUTTON_SPONSORED_MORE ? 38 : 0)) ) { if (currentMessageObject.isSent()) { + if (currentMessageObject.isSponsored()) { + if (y > sideStartY + dp(32) && drawSideButton2 == SIDE_BUTTON_SPONSORED_MORE) { + pressedSideButton = SIDE_BUTTON_SPONSORED_MORE; + } else { + pressedSideButton = SIDE_BUTTON_SPONSORED_CLOSE; + } + } else { + pressedSideButton = drawSideButton; + } sideButtonPressed = true; } result = true; @@ -3898,25 +3966,30 @@ public boolean onTouchEvent(MotionEvent event) { } } else if (sideButtonPressed) { if (event.getAction() == MotionEvent.ACTION_UP) { - sideButtonPressed = false; playSoundEffect(SoundEffectConstants.CLICK); if (delegate != null) { - if (drawSideButton == 4) { + if (pressedSideButton == SIDE_BUTTON_SPONSORED_CLOSE) { delegate.didPressSponsoredClose(); - } else if (drawSideButton == 3) { + } else if (pressedSideButton == SIDE_BUTTON_SPONSORED_MORE) { + delegate.didPressSponsoredInfo(this, x, y); + } else if (pressedSideButton == 3) { delegate.didPressCommentButton(this); } else { delegate.didPressSideButton(this); } } + sideButtonPressed = false; + pressedSideButton = 0; } else if (event.getAction() == MotionEvent.ACTION_CANCEL) { sideButtonPressed = false; + pressedSideButton = 0; } else if (event.getAction() == MotionEvent.ACTION_MOVE) { if (!( x >= sideStartX - dp(24) && x <= sideStartX + dp(40) && - y >= sideStartY - dp(24) && y <= sideStartY + dp(38 + (drawSideButton == 3 && commentLayout != null ? 18 : 0)) + y >= sideStartY - dp(24) && y <= sideStartY + dp(38 + (drawSideButton == 3 && commentLayout != null ? 18 : 0) + (drawSideButton2 == SIDE_BUTTON_SPONSORED_MORE ? 38 : 0)) )) { sideButtonPressed = false; + pressedSideButton = 0; } } invalidate(); @@ -5096,6 +5169,7 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe } gamePreviewPressed = false; sideButtonPressed = false; + pressedSideButton = 0; hasNewLineForTime = false; flipImage = false; isThreadPost = isThreadChat && messageObject.messageOwner.fwd_from != null && messageObject.messageOwner.fwd_from.channel_post != 0 && messageObject.messageOwner.reply_to == null; @@ -5113,6 +5187,9 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe animatingNoSound = 0; if (messageObject.isSponsored()) { drawSideButton = 4; + if (messageObject.sponsoredCanReport) { + drawSideButton2 = 5; + } } else if (MessagesController.getInstance(currentAccount).isChatNoForwardsWithOverride(messageObject.getChatId()) || (messageObject.messageOwner != null && messageObject.messageOwner.noforwards && !NekoXConfig.disableFlagSecure)) { drawSideButton = 0; } else { @@ -5176,6 +5253,9 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe } } resetContactButtonsPressedState(); + if (titleLabelBounce != null) { + titleLabelBounce.setPressed(false); + } drawnContactButtonsFlag = 0; drawContact = false; drawContactView = false; @@ -5200,6 +5280,7 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe videoInfoLayout = null; photosCountLayout = null; siteNameLayout = null; + titleLabelLayout = null; authorLayout = null; captionFullWidth = 0; captionLayout = null; @@ -5731,7 +5812,7 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe backgroundWidth = Math.min(getParentWidth() - AndroidUtilities.dp(50), AndroidUtilities.dp(270)); } } else { - backgroundWidth = messageObject.textWidth + getExtraTextX() * 2 + (hasGamePreview || hasInvoicePreview ? AndroidUtilities.dp(10) : 0); // todo! here we set + backgroundWidth = messageObject.textWidth + getExtraTextX() * 2 + (hasGamePreview || hasInvoicePreview ? AndroidUtilities.dp(10) : 0); } if (messageObject.isSponsored()) { totalHeight = AndroidUtilities.dp(22.5f); @@ -5789,6 +5870,7 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe } int site_name_additionalWidth = 0; CharSequence site_name; + CharSequence titleLabel = null; String title; CharSequence author; String description; @@ -5802,7 +5884,14 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe final int smallImageSide = AndroidUtilities.dp(48), smallSideMargin = AndroidUtilities.dp(10); CharSequence overrideDescrption = null; if (messageObject.isSponsored()) { - site_name = LocaleController.getString(messageObject.sponsoredRecommended ? R.string.SponsoredMessage2Recommended : R.string.SponsoredMessage2); + if (messageObject.sponsoredCanReport) { + site_name = LocaleController.getString(R.string.SponsoredMessageAd); + titleLabel = LocaleController.getString(R.string.SponsoredMessageAdWhatIsThis); + } else if (messageObject.sponsoredRecommended) { + site_name = LocaleController.getString(R.string.SponsoredMessage2Recommended); + } else { + site_name = LocaleController.getString(R.string.SponsoredMessage2); + } title = messageObject.customName != null ? messageObject.customName : getAuthorName(); webDocument = null; overrideDescrption = messageObject.messageText; @@ -6028,6 +6117,19 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe } } + if (titleLabel != null) { + try { + int width = (int) Math.ceil(Theme.chat_titleLabelTextPaint.measureText(titleLabel.toString())); + titleLabelLayout = new StaticLayout(titleLabel, Theme.chat_titleLabelTextPaint, Math.min(width, linkPreviewMaxWidth), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + titleLabelLayoutWidth = titleLabelLayout.getLineWidth(0); + titleLabelLayoutHeight = titleLabelLayout.getLineBottom(0); + maxChildWidth = Math.max(maxChildWidth, siteNameWidth + width + additinalWidth); + maxWebWidth = Math.max(maxWebWidth, siteNameWidth + width + additinalWidth); + } catch (Exception e) { + FileLog.e(e); + } + } + boolean titleIsRTL = false; if (title != null) { try { @@ -7785,7 +7887,7 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe photoImage.animatedFileDrawableRepeatMaxCount = 1; } photoImage.setImage(ImageLocation.getForDocument(messageObject.getDocument()), ImageLoader.AUTOPLAY_FILTER, - null, null, + ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), "b1", messageObject.pathThumb, messageObject.getDocument().size, isWebpSticker ? "webp" : null, parentObject, 1); } else if (messageObject.pathThumb != null) { @@ -7801,7 +7903,7 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), "b1", thumb != null ? thumb : currentPhotoObjectThumbStripped, messageObject.getDocument().size, isWebpSticker ? "webp" : null, parentObject, 1); } else { - photoImage.setImage(null, null, thumb, null, messageObject, 0); + photoImage.setImage(null, null, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), "b1", thumb, 0, null, messageObject, 0); } } else { photoImage.setImage(null, null, thumb, null, messageObject, 0); @@ -9167,6 +9269,9 @@ public void invalidate() { if (replyBounce != null) { replyBounce.setPressed(false); } + if (titleLabelBounce != null) { + titleLabelBounce.setPressed(false); + } if (topicButton != null) { topicButton.resetClick(); } @@ -9220,6 +9325,7 @@ public void invalidate() { linkPreviewPressed = false; sideButtonPressed = false; + pressedSideButton = 0; imagePressed = false; timePressed = false; gamePreviewPressed = false; @@ -12058,6 +12164,9 @@ public void drawLinkPreview(Canvas canvas, float alpha) { } if (siteNameLayout != null) { + if (titleLabelLayout != null) { + linkPreviewY += AndroidUtilities.dp(1); + } smallImageStartY = linkPreviewY - AndroidUtilities.dp(1); int wasAlpha = Theme.chat_replyNamePaint.getAlpha(); if (alpha != 1f) { @@ -12068,6 +12177,37 @@ public void drawLinkPreview(Canvas canvas, float alpha) { canvas.translate(linkX + x, linkPreviewY - AndroidUtilities.dp(1)); siteNameLayout.draw(canvas); canvas.restore(); + + if (titleLabelLayout != null) { + titleLabelX = linkX + x + siteNameLayoutWidth + AndroidUtilities.dp(12); + titleLabelY = linkPreviewY; + rect.set(titleLabelX - AndroidUtilities.dp(6), titleLabelY - AndroidUtilities.dp(2), titleLabelX + titleLabelLayoutWidth + AndroidUtilities.dp(6), titleLabelY + titleLabelLayoutHeight + AndroidUtilities.dp(2)); + + if (titleLabelBounce == null) { + titleLabelBounce = new ButtonBounce(this); + } + float scale = titleLabelBounce.getScale(0.1f); + boolean scaleRestore = scale != 1; + if (scaleRestore) { + canvas.save(); + canvas.scale(scale, scale, rect.centerX(), rect.centerY()); + } + Theme.chat_instantViewPaint.setColor(Theme.chat_replyNamePaint.getColor()); + int wasInstantViewAlpha = Theme.chat_instantViewPaint.getAlpha(); + Theme.chat_instantViewPaint.setAlpha((int) (wasAlpha * .11f)); + canvas.drawRoundRect(rect, rect.height(), rect.height(), Theme.chat_instantViewPaint); + Theme.chat_instantViewPaint.setAlpha(wasInstantViewAlpha); + + Theme.chat_titleLabelTextPaint.setColor(Theme.chat_replyNamePaint.getColor()); + Theme.chat_titleLabelTextPaint.setAlpha(Theme.chat_replyNamePaint.getAlpha()); + canvas.save(); + canvas.translate(titleLabelX, titleLabelY); + titleLabelLayout.draw(canvas); + canvas.restore(); + if (scaleRestore) { + canvas.restore(); + } + } linkPreviewY += siteNameLayout.getLineBottom(siteNameLayout.getLineCount() - 1); Theme.chat_replyNamePaint.setAlpha(wasAlpha); } @@ -12604,6 +12744,9 @@ private void drawContact(Canvas canvas) { if (Build.VERSION.SDK_INT >= 21 && selectorDrawable[0] != null) { selectorDrawableMaskType[0] = 0; selectorDrawable[0].setBounds(textX, (int) (photoImage.getImageY() - dp(9)), width, instantY + AndroidUtilities.dp(38f)); + if (selectorDrawableColor != Theme.multAlpha(contactLine.getColor(), .1f)) { + Theme.setSelectorDrawableColor(selectorDrawable[0], selectorDrawableColor = Theme.multAlpha(contactLine.getColor(), .1f), true); + } selectorDrawable[0].draw(canvas); } float radF = (float) Math.floor(SharedConfig.bubbleRadius / 3f); @@ -14416,9 +14559,17 @@ public void setAllowAssistant(boolean value) { private void measureTime(MessageObject messageObject) { CharSequence signString; + MessageObject primaryMessageObject = getPrimaryMessageObject(); long fromId = messageObject.getFromChatId(); if (messageObject.scheduled) { signString = null; + } else if (primaryMessageObject.messageOwner.via_business_bot_id != 0) { + TLRPC.User botUser = MessagesController.getInstance(messageObject.currentAccount).getUser(primaryMessageObject.messageOwner.via_business_bot_id); + if (botUser == null) { + signString = null; + } else { + signString = UserObject.getUserName(botUser); + } } else if (messageObject.messageOwner.post_author != null) { if (isMegagroup && messageObject.getFromChatId() == messageObject.getDialogId()) { signString = null; @@ -14494,7 +14645,9 @@ private void measureTime(MessageObject messageObject) { timeString = ""; } if (signString != null) { - if (messageObject.messageOwner.fwd_from != null && messageObject.messageOwner.fwd_from.imported) { + if (messageObject.messageOwner.via_business_bot_id != 0) { + currentTimeString = timeString + ", "; + } else if (messageObject.messageOwner.fwd_from != null && messageObject.messageOwner.fwd_from.imported) { currentTimeString = " " + timeString; } else { currentTimeString = ", " + timeString; @@ -14553,6 +14706,7 @@ private void measureTime(MessageObject messageObject) { } signString = Emoji.replaceEmoji(signString, Theme.chat_timePaint.getFontMetricsInt(), AndroidUtilities.dp(10), false); int width = (int) Math.ceil(Theme.chat_timePaint.measureText(signString, 0, signString.length())); + signWidth = Math.min(width, widthForSign); if (width > widthForSign) { if (widthForSign <= 0) { signString = ""; @@ -14562,11 +14716,19 @@ private void measureTime(MessageObject messageObject) { width = widthForSign; } } - SpannableStringBuilder currentTimeStringBuilder = new SpannableStringBuilder(signString); - currentTimeStringBuilder.append(currentTimeString); + SpannableStringBuilder currentTimeStringBuilder = new SpannableStringBuilder(); + if (messageObject.messageOwner.via_business_bot_id != 0) { + currentTimeStringBuilder.append(currentTimeString); + currentTimeStringBuilder.append(signString); + } else { + currentTimeStringBuilder.append(signString); + currentTimeStringBuilder.append(currentTimeString); + } currentTimeString = currentTimeStringBuilder; timeTextWidth += width; timeWidth += width; + } else { + signWidth = 0; } } @@ -16702,7 +16864,7 @@ private void drawSideButton(Canvas canvas) { sideStartX += currentMessagesGroup.transitionParams.offsetRight - animationOffsetX; } } - if (drawSideButton == 4) { + if (drawSideButton == SIDE_BUTTON_SPONSORED_CLOSE) { sideStartY = AndroidUtilities.dp(6); } else { sideStartY = layoutHeight + transitionParams.deltaBottom - AndroidUtilities.dp(41); @@ -16723,7 +16885,7 @@ private void drawSideButton(Canvas canvas) { } } } - if (drawSideButton != 4) { + if (drawSideButton != SIDE_BUTTON_SPONSORED_CLOSE) { float sideMin = (layoutHeight + transitionParams.deltaBottom - AndroidUtilities.dp(32)) / 2f; if (sideStartY < sideMin) { sideStartY = sideMin; @@ -16745,9 +16907,42 @@ private void drawSideButton(Canvas canvas) { drawCommentButton(canvas, 1f); } } else { - rect.set(sideStartX, sideStartY, sideStartX + AndroidUtilities.dp(32), sideStartY + AndroidUtilities.dp(32)); + rect.set(sideStartX, sideStartY, sideStartX + AndroidUtilities.dp(32), sideStartY + AndroidUtilities.dp(drawSideButton2 == SIDE_BUTTON_SPONSORED_MORE ? 64 : 32)); applyServiceShaderMatrix(); - canvas.drawRoundRect(rect, AndroidUtilities.dp(16), AndroidUtilities.dp(16), getThemedPaint(sideButtonPressed ? Theme.key_paint_chatActionBackgroundSelected : Theme.key_paint_chatActionBackground)); + if (drawSideButton == SIDE_BUTTON_SPONSORED_CLOSE && drawSideButton2 == SIDE_BUTTON_SPONSORED_MORE && sideButtonPressed) { + if (sideButtonPath1 == null) { + sideButtonPath1 = new Path(); + } else { + sideButtonPath1.rewind(); + } + if (sideButtonPath2 == null) { + sideButtonPath2 = new Path(); + } else { + sideButtonPath2.rewind(); + } + if (sideButtonPathCorners1 == null) { + sideButtonPathCorners1 = new float[8]; + sideButtonPathCorners1[0] = sideButtonPathCorners1[1] = sideButtonPathCorners1[2] = sideButtonPathCorners1[3] = dp(16); + } + if (sideButtonPathCorners2 == null) { + sideButtonPathCorners2 = new float[8]; + sideButtonPathCorners2[4] = sideButtonPathCorners2[5] = sideButtonPathCorners2[6] = sideButtonPathCorners2[7] = dp(16); + } + AndroidUtilities.rectTmp.set(sideStartX, sideStartY, sideStartX + AndroidUtilities.dp(32), sideStartY + AndroidUtilities.dp(32)); + sideButtonPath1.addRoundRect(AndroidUtilities.rectTmp, sideButtonPathCorners1, Path.Direction.CW); + + AndroidUtilities.rectTmp.set(sideStartX, sideStartY + AndroidUtilities.dp(32), sideStartX + AndroidUtilities.dp(32), sideStartY + AndroidUtilities.dp(64)); + sideButtonPath2.addRoundRect(AndroidUtilities.rectTmp, sideButtonPathCorners2, Path.Direction.CW); + if (pressedSideButton == SIDE_BUTTON_SPONSORED_CLOSE) { + canvas.drawPath(sideButtonPath1, getThemedPaint(Theme.key_paint_chatActionBackgroundSelected)); + canvas.drawPath(sideButtonPath2, getThemedPaint(Theme.key_paint_chatActionBackground)); + } else { + canvas.drawPath(sideButtonPath1, getThemedPaint(Theme.key_paint_chatActionBackground)); + canvas.drawPath(sideButtonPath2, getThemedPaint(Theme.key_paint_chatActionBackgroundSelected)); + } + } else { + canvas.drawRoundRect(rect, AndroidUtilities.dp(16), AndroidUtilities.dp(16), getThemedPaint(sideButtonPressed ? Theme.key_paint_chatActionBackgroundSelected : Theme.key_paint_chatActionBackground)); + } if (hasGradientService()) { canvas.drawRoundRect(rect, AndroidUtilities.dp(16), AndroidUtilities.dp(16), Theme.chat_actionBackgroundGradientDarkenPaint); } @@ -16756,16 +16951,25 @@ private void drawSideButton(Canvas canvas) { Drawable goIconDrawable = getThemedDrawable(Theme.key_drawable_goIcon); setDrawableBounds(goIconDrawable, sideStartX + AndroidUtilities.dp(16) - goIconDrawable.getIntrinsicWidth() / 2f, sideStartY + AndroidUtilities.dp(16) - goIconDrawable.getIntrinsicHeight() / 2f); goIconDrawable.draw(canvas); - } else if (drawSideButton == 4) { + } else if (drawSideButton == SIDE_BUTTON_SPONSORED_CLOSE) { final int scx = (int) (sideStartX + AndroidUtilities.dp(16)), scy = (int) (sideStartY + AndroidUtilities.dp(16)); Drawable drawable = getThemedDrawable(Theme.key_drawable_closeIcon); - final int shw = drawable.getIntrinsicWidth() / 2, shh = drawable.getIntrinsicHeight() / 2; + int shw = drawable.getIntrinsicWidth() / 2, shh = drawable.getIntrinsicHeight() / 2; drawable.setBounds(scx - shw, scy - shh, scx + shw, scy + shh); setDrawableBounds(drawable, sideStartX + AndroidUtilities.dp(4), sideStartY + AndroidUtilities.dp(4)); canvas.save(); canvas.scale(.65f, .65f, drawable.getBounds().centerX(), drawable.getBounds().centerY()); drawable.draw(canvas); canvas.restore(); + + if (drawSideButton2 == SIDE_BUTTON_SPONSORED_MORE) { + drawable = getThemedDrawable(Theme.key_drawable_moreIcon); + shw = drawable.getIntrinsicWidth() / 2; + shh = drawable.getIntrinsicHeight() / 2; + drawable.setBounds(scx - shw, scy - shh, scx + shw, scy + shh); + setDrawableBounds(drawable, sideStartX + AndroidUtilities.dp(4), sideStartY + AndroidUtilities.dp(34)); + drawable.draw(canvas); + } } else { final int scx = (int) (sideStartX + AndroidUtilities.dp(16)), scy = (int) (sideStartY + AndroidUtilities.dp(16)); Drawable drawable = getThemedDrawable(Theme.key_drawable_shareIcon); @@ -18576,9 +18780,11 @@ private void drawTimeInternal(Canvas canvas, float alpha, boolean fromParent, fl r = Math.min(AndroidUtilities.dp(8), Math.max(rad[2], rad[3])); bigRadius = SharedConfig.bubbleRadius >= 10; } else { - r = AndroidUtilities.dp(4); + r = AndroidUtilities.dp(4) + (currentMessageObject != null && currentMessageObject.isAnyKindOfSticker() ? dp(8) : 0); } + timeX += (currentMessageObject != null && currentMessageObject.isAnyKindOfSticker() ? dp(-STICKER_STATUS_OFFSET) : 0); float x1 = timeX - AndroidUtilities.dp(bigRadius ? 6 : 4); + float offsetX = (currentMessageObject != null && currentMessageObject.isAnyKindOfSticker()) ? dp(2) : 0; float timeY; if (documentAttachType == DOCUMENT_ATTACH_TYPE_ROUND && (currentMessageObject == null || !currentMessageObject.isRoundOnce())) { timeY = layoutHeight - (AndroidUtilities.dp(drawPinnedBottom ? 4 : 5) + reactionsLayoutInBubble.getCurrentTotalHeight(transitionParams.animateChangeProgress)) * (1f - getVideoTranscriptionProgress()); @@ -18587,7 +18793,7 @@ private void drawTimeInternal(Canvas canvas, float alpha, boolean fromParent, fl } float y1 = timeY - AndroidUtilities.dp(23); float timeHeight = Math.max(AndroidUtilities.dp(17), Theme.chat_timePaint.getTextSize() + AndroidUtilities.dp(5)); - rect.set(x1, y1, x1 + timeWidth + AndroidUtilities.dp((bigRadius ? 12 : 8) + (currentMessageObject.isOutOwner() ? 20 + (currentMessageObject.type == MessageObject.TYPE_EMOJIS ? 4 : 0) : 0)), y1 + timeHeight); + rect.set(x1 - offsetX, y1, offsetX + x1 + timeWidth + AndroidUtilities.dp((bigRadius ? 12 : 8) + (currentMessageObject.isOutOwner() ? 20 + (currentMessageObject.type == MessageObject.TYPE_EMOJIS ? 4 : 0) : 0)), y1 + timeHeight); if (!currentMessageObject.isQuickReply()) { if (currentMessageObject.hasMediaSpoilers() && currentMessageObject.type != MessageObject.TYPE_ROUND_VIDEO) { @@ -18621,7 +18827,7 @@ private void drawTimeInternal(Canvas canvas, float alpha, boolean fromParent, fl alpha = oldAlpha3; - float additionalX = -timeLayout.getLineLeft(0); + float additionalX = -timeLayout.getLineLeft(0) + (currentMessageObject != null && currentMessageObject.isAnyKindOfSticker() ? dp(-STICKER_STATUS_OFFSET) : 0); if (currentMessageObject.shouldDrawReactions() && reactionsLayoutInBubble.isSmall) { updateReactionLayoutPosition(); reactionsLayoutInBubble.draw(canvas, transitionParams.animateChangeProgress, null); @@ -18997,6 +19203,34 @@ private void drawClockOrErrorLayout(Canvas canvas, boolean drawTime, boolean dra } } + public float getTimeY() { + int timeYOffset; + if (shouldDrawTimeOnMedia()) { + timeYOffset = -(drawCommentButton ? AndroidUtilities.dp(41.3f) : 0); + } else { + if (currentMessageObject.isSponsored()) { + timeYOffset = -AndroidUtilities.dp(48); + if (hasNewLineForTime) { + timeYOffset -= AndroidUtilities.dp(4); + } + } else { + timeYOffset = -(drawCommentButton ? AndroidUtilities.dp(43) : 0); + } + } + return getTimeY(timeYOffset); + } + + public float getTimeY(float timeYOffset) { + if (shouldDrawTimeOnMedia() && documentAttachType != DOCUMENT_ATTACH_TYPE_ROUND) { + return photoImage.getImageY2() + additionalTimeOffsetY - AndroidUtilities.dp(7.3f) - timeLayout.getHeight(); + } + float timeY = layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 7.5f : 6.5f) - timeLayout.getHeight() + timeYOffset; + if (isRoundVideo) { + timeY -= (AndroidUtilities.dp(drawPinnedBottom ? 4 : 5) + reactionsLayoutInBubble.getCurrentTotalHeight(transitionParams.animateChangeProgress)) * (1f - getVideoTranscriptionProgress()); + } + return timeY; + } + private void drawViewsAndRepliesLayout(Canvas canvas, float layoutHeight, float alpha, float timeYOffset, float timeX, float progress, boolean drawSelectionBackground) { boolean useScale = progress != 1f; float scale = 0.5f + 0.5f * progress; @@ -19004,15 +19238,7 @@ private void drawViewsAndRepliesLayout(Canvas canvas, float layoutHeight, float float offsetX = reactionsLayoutInBubble.isSmall ? reactionsLayoutInBubble.getCurrentWidth(1f) : 0; int timeAlpha = Theme.chat_timePaint.getAlpha(); - float timeY; - if (shouldDrawTimeOnMedia() && documentAttachType != DOCUMENT_ATTACH_TYPE_ROUND) { - timeY = photoImage.getImageY2() + additionalTimeOffsetY - AndroidUtilities.dp(7.3f) - timeLayout.getHeight(); - } else { - timeY = layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 7.5f : 6.5f) - timeLayout.getHeight() + timeYOffset; - if (isRoundVideo) { - timeY -= (AndroidUtilities.dp(drawPinnedBottom ? 4 : 5) + reactionsLayoutInBubble.getCurrentTotalHeight(transitionParams.animateChangeProgress)) * (1f - getVideoTranscriptionProgress()); - } - } + float timeY = getTimeY(timeYOffset); if (repliesLayout != null || transitionParams.animateReplies) { float repliesX = (transitionParams.shouldAnimateTimeX ? this.timeX : timeX) + offsetX; boolean inAnimation = transitionParams.animateReplies && transitionParams.animateRepliesLayout == null && repliesLayout != null; @@ -19238,17 +19464,19 @@ private void drawStatusDrawable(Canvas canvas, boolean drawCheck1, boolean drawC timeY = photoImage.getImageY2() + additionalTimeOffsetY; } timeY -= AndroidUtilities.dp(8.5f); + + float offsetX = currentMessageObject != null && currentMessageObject.isAnyKindOfSticker() ? dp(-STICKER_STATUS_OFFSET) : 0; if (drawClock) { MsgClockDrawable drawable = Theme.chat_msgClockDrawable; int color; if (shouldDrawTimeOnMedia()) { if (currentMessageObject.shouldDrawWithoutBackground()) { color = getThemedColor(Theme.key_chat_serviceText); - setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 24 : 22) - drawable.getIntrinsicWidth(), timeY - drawable.getIntrinsicHeight() + timeYOffset); + setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 24 : 22) - drawable.getIntrinsicWidth() + offsetX, timeY - drawable.getIntrinsicHeight() + timeYOffset); drawable.setAlpha((int) (255 * timeAlpha * alpha)); } else { color = getThemedColor(Theme.key_chat_mediaSentClock); - setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 24 : 22) - drawable.getIntrinsicWidth(), timeY - drawable.getIntrinsicHeight() + timeYOffset); + setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 24 : 22) - drawable.getIntrinsicWidth() + offsetX, timeY - drawable.getIntrinsicHeight() + timeYOffset); drawable.setAlpha((int) (255 * alpha)); } } else { @@ -19281,9 +19509,9 @@ private void drawStatusDrawable(Canvas canvas, boolean drawCheck1, boolean drawC if (moveCheck) { canvas.translate(AndroidUtilities.dp(4.8f) * (1f - progress), 0); } - setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 28.3f : 26.3f) - drawable.getIntrinsicWidth(), timeY - drawable.getIntrinsicHeight() + timeYOffset); + setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 28.3f : 26.3f) - drawable.getIntrinsicWidth() + offsetX, timeY - drawable.getIntrinsicHeight() + timeYOffset); } else { - setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 23.5f : 21.5f) - drawable.getIntrinsicWidth(), timeY - drawable.getIntrinsicHeight() + timeYOffset); + setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 23.5f : 21.5f) - drawable.getIntrinsicWidth() + offsetX, timeY - drawable.getIntrinsicHeight() + timeYOffset); } drawable.setAlpha((int) (255 * timeAlpha * alpha)); } else { @@ -19320,10 +19548,10 @@ private void drawStatusDrawable(Canvas canvas, boolean drawCheck1, boolean drawC canvas.translate(AndroidUtilities.dp(4) * (1f - progress), 0); } drawable = getThemedDrawable(drawSelectionBackground ? Theme.key_drawable_msgOutCheckReadSelected : Theme.key_drawable_msgOutCheckRead); - setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(22.5f) - drawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9 : 8) - drawable.getIntrinsicHeight() + timeYOffset); + setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(22.5f) - drawable.getIntrinsicWidth() + offsetX, layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9 : 8) - drawable.getIntrinsicHeight() + timeYOffset); } else { drawable = getThemedDrawable(drawSelectionBackground ? Theme.key_drawable_msgOutCheckSelected : Theme.key_drawable_msgOutCheck); - setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(18.5f) - drawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9 : 8) - drawable.getIntrinsicHeight() + timeYOffset); + setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(18.5f) - drawable.getIntrinsicWidth() + offsetX, layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9 : 8) - drawable.getIntrinsicHeight() + timeYOffset); } drawable.setAlpha((int) (255 * alpha)); if (useScale) { @@ -19343,7 +19571,7 @@ private void drawStatusDrawable(Canvas canvas, boolean drawCheck1, boolean drawC if (drawCheck1) { if (shouldDrawTimeOnMedia()) { Drawable drawable = currentMessageObject.shouldDrawWithoutBackground() ? getThemedDrawable(Theme.key_drawable_msgStickerHalfCheck) : Theme.chat_msgMediaHalfCheckDrawable; - setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 23.5f : 21.5f) - drawable.getIntrinsicWidth(), timeY - drawable.getIntrinsicHeight() + timeYOffset); + setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(bigRadius ? 23.5f : 21.5f) - drawable.getIntrinsicWidth() + offsetX, timeY - drawable.getIntrinsicHeight() + timeYOffset); drawable.setAlpha((int) (255 * timeAlpha * alpha)); if (useScale || moveCheck) { canvas.save(); @@ -19379,6 +19607,7 @@ private void drawStatusDrawable(Canvas canvas, boolean drawCheck1, boolean drawC x = layoutWidth - AndroidUtilities.dp(32); y = layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 22 : 21) + timeYOffset; } + x += offsetX; rect.set(x, y, x + AndroidUtilities.dp(14), y + AndroidUtilities.dp(14)); int oldAlpha = Theme.chat_msgErrorPaint.getAlpha(); Theme.chat_msgErrorPaint.setAlpha((int) (oldAlpha * alpha)); @@ -22568,4 +22797,43 @@ public boolean areTags() { if (msg.messageOwner.reactions == null) return false; return msg.messageOwner.reactions.reactions_as_tags; } + + public String getFilename() { + if (currentMessageObject.type == MessageObject.TYPE_PHOTO) { + if (currentPhotoObject == null) { + return null; + } + return FileLoader.getAttachFileName(currentPhotoObject); + } else if ( + currentMessageObject.type == MessageObject.TYPE_GIF || + documentAttachType == DOCUMENT_ATTACH_TYPE_ROUND || + documentAttachType == DOCUMENT_ATTACH_TYPE_VIDEO || + documentAttachType == DOCUMENT_ATTACH_TYPE_WALLPAPER || + currentMessageObject.type == MessageObject.TYPE_FILE || + documentAttachType == DOCUMENT_ATTACH_TYPE_AUDIO || + documentAttachType == DOCUMENT_ATTACH_TYPE_MUSIC + ) { + if (currentMessageObject.useCustomPhoto) { + return null; + } + if (currentMessageObject.attachPathExists && !TextUtils.isEmpty(currentMessageObject.messageOwner.attachPath)) { + return currentMessageObject.messageOwner.attachPath; + } else if (!currentMessageObject.isSendError() || documentAttachType == DOCUMENT_ATTACH_TYPE_AUDIO || documentAttachType == DOCUMENT_ATTACH_TYPE_MUSIC) { + return currentMessageObject.getFileName(); + } + } else if (documentAttachType != DOCUMENT_ATTACH_TYPE_NONE) { + return FileLoader.getAttachFileName(documentAttach); + } else if (currentPhotoObject != null) { + return FileLoader.getAttachFileName(currentPhotoObject); + } + return null; + } + + public boolean checkLoadCaughtPremiumFloodWait() { + return FileLoader.getInstance(currentAccount).checkLoadCaughtPremiumFloodWait(getFilename()); + } + + public boolean checkUploadCaughtPremiumFloodWait() { + return FileLoader.getInstance(currentAccount).checkUploadCaughtPremiumFloodWait(getFilename()); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/CheckBoxCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/CheckBoxCell.java index 666ac3bc19..f9525da009 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/CheckBoxCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/CheckBoxCell.java @@ -308,10 +308,10 @@ public void setMultiline(boolean value) { textView.setSingleLine(false); textView.setEllipsize(null); if (currentType != TYPE_CHECK_BOX_URL) { - textView.setPadding(0, 0, 0, AndroidUtilities.dp(5)); layoutParams.height = LayoutParams.WRAP_CONTENT; - layoutParams.topMargin = AndroidUtilities.dp(10); - layoutParams1.topMargin = AndroidUtilities.dp(12); + layoutParams.gravity = (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP; + layoutParams.topMargin = AndroidUtilities.dp(14); + layoutParams.bottomMargin = AndroidUtilities.dp(10); } } else { textView.setLines(1); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java index bb855a62d1..725dbd15cd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java @@ -144,6 +144,7 @@ public class DialogCell extends BaseCell implements StoriesListPlaceProvider.Ava public static final int SENT_STATE_SENT = 1; public static final int SENT_STATE_READ = 2; public boolean drawAvatar = true; + public int avatarStart = 10; public int messagePaddingStart = 72; public int heightDefault = 72; public int heightThreeLines = 78; @@ -2045,11 +2046,11 @@ public void buildLayout() { if (LocaleController.isRTL) { buttonLeft = typingLeft = messageLeft = messageNameLeft = dp(16); - avatarLeft = getMeasuredWidth() - dp(66); + avatarLeft = getMeasuredWidth() - dp(56 + avatarStart); thumbLeft = avatarLeft - dp(13 + 18); } else { buttonLeft = typingLeft = messageLeft = messageNameLeft = dp(messagePaddingStart + 6); - avatarLeft = dp(10); + avatarLeft = dp(avatarStart); thumbLeft = avatarLeft + dp(56 + 13); } storyParams.originalAvatarRect.set(avatarLeft, avatarTop, avatarLeft + dp(56), avatarTop + dp(56)); @@ -2068,11 +2069,11 @@ public void buildLayout() { if (LocaleController.isRTL) { buttonLeft = typingLeft = messageLeft = messageNameLeft = dp(22); - avatarLeft = getMeasuredWidth() - dp(64); + avatarLeft = getMeasuredWidth() - dp(54 + avatarStart); thumbLeft = avatarLeft - dp(11 + (thumbsCount * (thumbSize + 2) - 2)); } else { buttonLeft = typingLeft = messageLeft = messageNameLeft = dp(messagePaddingStart + 4); - avatarLeft = dp(10); + avatarLeft = dp(avatarStart); thumbLeft = avatarLeft + dp(56 + 11); } storyParams.originalAvatarRect.set(avatarLeft, avatarTop, avatarLeft + dp(54), avatarTop + dp(54)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsHintCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsHintCell.java index 820b376f0f..9bb13fc530 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsHintCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsHintCell.java @@ -8,6 +8,7 @@ import android.text.TextUtils; import android.util.TypedValue; import android.view.Gravity; +import android.view.MotionEvent; import android.view.View; import android.widget.FrameLayout; import android.widget.ImageView; @@ -15,34 +16,46 @@ import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import org.telegram.messenger.AndroidUtilities; -import org.telegram.messenger.Emoji; import org.telegram.messenger.LocaleController; import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; +import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.AnimatedEmojiSpan; +import org.telegram.ui.Components.AvatarsImageView; import org.telegram.ui.Components.LayoutHelper; +import java.util.ArrayList; + public class DialogsHintCell extends FrameLayout { + private final LinearLayout parentView; private final LinearLayout contentView; - private final TextView titleView; + public final AnimatedEmojiSpan.TextViewEmojis titleView; private final TextView messageView; private final ImageView chevronView; private final ImageView closeView; + private final AvatarsImageView avatarsImageView; public DialogsHintCell(@NonNull Context context) { super(context); setWillNotDraw(false); - setPadding(dp(16), dp(8), dp(16), dp(8)); + setPadding(dp(9), dp(8), dp(9), dp(8)); + + avatarsImageView = new AvatarsImageView(context, false); + avatarsImageView.setStepFactor(46f / 81f); + avatarsImageView.setVisibility(View.GONE); + avatarsImageView.setCount(0); contentView = new LinearLayout(context); contentView.setOrientation(LinearLayout.VERTICAL); contentView.setPadding(LocaleController.isRTL ? dp(24) : 0, 0, LocaleController.isRTL ? 0 : dp(24), 0); - addView(contentView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); - titleView = new TextView(context); + titleView = new AnimatedEmojiSpan.TextViewEmojis(context); + titleView.setEllipsize(TextUtils.TruncateAt.END); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); titleView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); titleView.setSingleLine(); @@ -54,7 +67,7 @@ public DialogsHintCell(@NonNull Context context) { messageView.setEllipsize(TextUtils.TruncateAt.END); contentView.addView(messageView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, Gravity.TOP)); - NotificationCenter.getGlobalInstance().listen(this, NotificationCenter.emojiLoaded, args -> { + NotificationCenter.getGlobalInstance().listenGlobal(this, NotificationCenter.emojiLoaded, args -> { if (titleView != null) { titleView.invalidate(); } @@ -63,6 +76,17 @@ public DialogsHintCell(@NonNull Context context) { } }); + parentView = new LinearLayout(context); + parentView.setOrientation(LinearLayout.HORIZONTAL); + if (LocaleController.isRTL) { + parentView.addView(contentView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.CENTER_VERTICAL, 7, 0, 7, 0)); + parentView.addView(avatarsImageView, LayoutHelper.createFrame(0, LayoutHelper.MATCH_PARENT, Gravity.CENTER_VERTICAL, 2, 0, 0, 0)); + } else { + parentView.addView(avatarsImageView, LayoutHelper.createFrame(0, LayoutHelper.MATCH_PARENT, Gravity.CENTER_VERTICAL, 0, 0, 2, 0)); + parentView.addView(contentView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.CENTER_VERTICAL, 7, 0, 7, 0)); + } + addView(parentView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + chevronView = new ImageView(context); chevronView.setImageResource(R.drawable.arrow_newchat); addView(chevronView, LayoutHelper.createFrame(16, 16, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL)); @@ -70,12 +94,16 @@ public DialogsHintCell(@NonNull Context context) { closeView = new ImageView(context); closeView.setImageResource(R.drawable.msg_close); closeView.setPadding(dp(6), dp(6), dp(6), dp(6)); - addView(closeView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL, LocaleController.isRTL ? -15 : 0, 0, LocaleController.isRTL ? 0 : -15, 0)); + addView(closeView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL, LocaleController.isRTL ? -15 + 7 : 0, 0, LocaleController.isRTL ? 0 : -15 + 7, 0)); closeView.setVisibility(GONE); setClipToPadding(false); updateColors(); } + public void setCompact(boolean compact) { + setPadding(dp(9), dp(compact ? 4 : 8), dp(9), dp(8)); + } + public void updateColors() { titleView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); messageView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText)); @@ -85,6 +113,28 @@ public void updateColors() { setBackground(Theme.AdaptiveRipple.filledRect()); } + public void setAvatars(int currentAccount, ArrayList users) { + final int count = Math.min(3, users == null ? 0 : users.size()); + final boolean updated = count != avatarsImageView.avatarsDrawable.count; + if (count <= 1) { + avatarsImageView.setAvatarsTextSize(dp(20)); + avatarsImageView.setSize(dp(32)); + } else { + avatarsImageView.setAvatarsTextSize(dp(18)); + avatarsImageView.setSize(dp(27)); + } + avatarsImageView.setCount(count); + avatarsImageView.setVisibility(count <= 0 ? View.GONE : View.VISIBLE); + avatarsImageView.getLayoutParams().width = count <= 1 ? dp(32) : dp(27 + 16 * (count - 1)); + if (updated) parentView.requestLayout(); + if (users != null) { + for (int i = 0; i < 3; ++i) { + avatarsImageView.setObject(i, currentAccount, i >= users.size() ? null : users.get(i)); + } + } + avatarsImageView.commitTransition(false); + } + public void setText(CharSequence title, CharSequence subtitle) { titleView.setText(title); titleView.setCompoundDrawables(null, null, null, null); @@ -99,6 +149,22 @@ public void setOnCloseListener(OnClickListener closeListener) { closeView.setOnClickListener(closeListener); } + @Override + public void setOnClickListener(@Nullable OnClickListener l) { + super.setOnClickListener(v -> { + if (getAlpha() > .5f && l != null) + l.onClick(v); + }); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + if (getAlpha() < .5f) { + return false; + } + return super.onTouchEvent(event); + } + @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerProfileCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerProfileCell.java index caa6486702..aa56715316 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerProfileCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerProfileCell.java @@ -915,4 +915,17 @@ public AnimatedEmojiDrawable.SwapAnimatedEmojiDrawable getEmojiStatusDrawable() public View getEmojiStatusDrawableParent() { return nameTextView; } + + public void updateSunDrawable(boolean toDark) { + if (sunDrawable != null) { + if (toDark) { + sunDrawable.setCustomEndFrame(36); + } else { + sunDrawable.setCustomEndFrame(0); + } + } + if (darkThemeView != null) { + darkThemeView.playAnimation(); + } + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/EditTextCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/EditTextCell.java new file mode 100644 index 0000000000..f30960e3e5 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/EditTextCell.java @@ -0,0 +1,249 @@ +package org.telegram.ui.Cells; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.drawable.Drawable; +import android.text.Editable; +import android.text.InputFilter; +import android.text.InputType; +import android.text.Spanned; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.KeyEvent; +import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.widget.FrameLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.R; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Business.QuickRepliesController; +import org.telegram.ui.Components.AnimatedColor; +import org.telegram.ui.Components.AnimatedTextView; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.EditTextBoldCursor; +import org.telegram.ui.Components.LayoutHelper; + +import java.util.ArrayList; + +public class EditTextCell extends FrameLayout { + + private boolean ignoreEditText; + public final EditTextBoldCursor editText; + private int maxLength; + + private boolean showLimitWhenEmpty; + private boolean showLimitWhenFocused; + + public boolean autofocused; + private boolean focused; + + AnimatedColor limitColor = new AnimatedColor(this); + private int limitCount; + AnimatedTextView.AnimatedTextDrawable limit = new AnimatedTextView.AnimatedTextDrawable(false, true, true); { + limit.setAnimationProperties(.2f, 0, 160, CubicBezierInterpolator.EASE_OUT_QUINT); + limit.setTextSize(dp(15.33f)); + limit.setGravity(Gravity.RIGHT); + } + + public void setShowLimitWhenEmpty(boolean show) { + showLimitWhenEmpty = show; + if (showLimitWhenEmpty) { + updateLimitText(); + } + } + + private void updateLimitText() { + if (editText == null) return; + limitCount = maxLength - getText().length(); + limit.setText(TextUtils.isEmpty(getText()) && !showLimitWhenEmpty || showLimitWhenFocused && (!focused || autofocused) ? "" : "" + limitCount); + } + + public void whenHitEnter(Runnable whenEnter) { + editText.setImeOptions(EditorInfo.IME_ACTION_DONE); + editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { + @Override + public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { + if (actionId == EditorInfo.IME_ACTION_DONE) { + whenEnter.run(); + return true; + } + return false; + } + }); + } + + public void hideKeyboardOnEnter() { + whenHitEnter(() -> AndroidUtilities.hideKeyboard(editText)); + } + + + public void setShowLimitOnFocus(boolean show) { + showLimitWhenFocused = show; + } + + public EditTextCell(Context context, String hint, boolean multiline) { + this(context, hint, multiline, -1); + } + + public EditTextCell( + Context context, + String hint, + boolean multiline, + int maxLength + ) { + super(context); + this.maxLength = maxLength; + + editText = new EditTextBoldCursor(context) { + @Override + protected boolean verifyDrawable(@NonNull Drawable who) { + return who == limit || super.verifyDrawable(who); + } + @Override + protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) { + super.onTextChanged(text, start, lengthBefore, lengthAfter); + + if (limit != null && maxLength > 0) { + limit.cancelAnimation(); + updateLimitText(); + } + } + + @Override + protected void dispatchDraw(Canvas canvas) { + super.dispatchDraw(canvas); + limit.setTextColor(limitColor.set(Theme.getColor(limitCount <= 0 ? Theme.key_text_RedRegular : Theme.key_dialogSearchHint, getResourcesProvider()))); + limit.setBounds(getScrollX(), 0, getScrollX() + getWidth() - getPaddingRight() + dp(42), getHeight()); + limit.draw(canvas); + } + + @Override + protected void onDraw(Canvas canvas) { + canvas.save(); + canvas.clipRect(getScrollX() + getPaddingLeft(), 0, getScrollX() + getWidth() - getPaddingRight(), getHeight()); + super.onDraw(canvas); + canvas.restore(); + } + }; + limit.setCallback(editText); + editText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 17); + editText.setHintTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteHintText)); + editText.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); + editText.setBackground(null); + if (multiline) { + editText.setMaxLines(5); + editText.setSingleLine(false); + } else { + editText.setMaxLines(1); + editText.setSingleLine(true); + } + editText.setPadding(dp(21), dp(15), dp((maxLength > 0 ? 42 : 0) + 21), dp(15)); + editText.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); + editText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_CLASS_TEXT | (multiline ? InputType.TYPE_TEXT_FLAG_MULTI_LINE : 0) | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); + editText.setRawInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); + editText.setHint(hint); + editText.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); + editText.setCursorSize(dp(19)); + editText.setCursorWidth(1.5f); + editText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { + if (!ignoreEditText) { + autofocused = false; + } + } + @Override + public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {} + @Override + public void afterTextChanged(Editable editable) { + if (!ignoreEditText) { + EditTextCell.this.onTextChanged(editable); + } + } + }); + editText.setOnFocusChangeListener(new OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + focused = hasFocus; + if (showLimitWhenFocused) { + updateLimitText(); + } + onFocusChanged(hasFocus); + } + }); + ArrayList filters = new ArrayList<>(); + if (multiline) { + filters.add(new InputFilter() { + @Override + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { + if (source != null) { + String s = source.toString(); + if (s.contains("\n")) { + s = s.replaceAll("\n", ""); + } + return s; + } + return null; + } + }); + } + if (maxLength > 0) { + filters.add(new InputFilter.LengthFilter(maxLength)); + } + editText.setFilters(filters.toArray(new InputFilter[0])); + addView(editText, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP)); + + updateLimitText(); + } + + public void setText(CharSequence text) { + ignoreEditText = true; + editText.setText(text); + editText.setSelection(editText.getText().length()); + ignoreEditText = false; + } + + public CharSequence getText() { + return editText.getText(); + } + + public boolean validate() { + return maxLength < 0 || editText.getText().length() <= maxLength; + } + + protected void onTextChanged(CharSequence newText) { + + } + + protected void onFocusChanged(boolean focused) { + + } + + private boolean needDivider; + public void setDivider(boolean divider) { + setWillNotDraw(!(needDivider = divider)); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + if (needDivider) { + canvas.drawLine( + LocaleController.isRTL ? 0 : dp(22), + getMeasuredHeight() - 1, + getMeasuredWidth() - (LocaleController.isRTL ? dp(22) : 0), + getMeasuredHeight() - 1, + Theme.dividerPaint + ); + } + } +} \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell.java index 4cd5a84995..ea33ac1dd2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell.java @@ -197,7 +197,7 @@ public int getIntrinsicHeight() { imageLocation = ImageLocation.getForSticker(thumb, sticker, set.set.thumb_version); } - if (object instanceof TLRPC.Document && MessageObject.isAnimatedStickerDocument(sticker, true)) { + if (object instanceof TLRPC.Document && (MessageObject.isAnimatedStickerDocument(sticker, true) || MessageObject.isVideoSticker(sticker))) { if (svgThumb != null) { imageView.setImage(ImageLocation.getForDocument(sticker), "50_50", svgThumb, 0, set); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java index d2cdd10b5e..4ca108c9e1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java @@ -270,7 +270,7 @@ public int getIntrinsicHeight() { imageLocation = ImageLocation.getForSticker(thumb, sticker, set.set.thumb_version); } - if (object instanceof TLRPC.Document && MessageObject.isAnimatedStickerDocument(sticker, true)) { + if (object instanceof TLRPC.Document && (MessageObject.isAnimatedStickerDocument(sticker, true) || MessageObject.isVideoSticker(sticker))) { if (svgThumb != null) { imageView.setImage(ImageLocation.getForDocument(sticker), "50_50", svgThumb, 0, set); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GraySectionCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GraySectionCell.java index e0f749ef78..7544e76c70 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GraySectionCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GraySectionCell.java @@ -21,6 +21,7 @@ import org.telegram.messenger.LocaleController; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ActionBar.ThemeDescription; +import org.telegram.ui.Components.AnimatedEmojiSpan; import org.telegram.ui.Components.AnimatedTextView; import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.LayoutHelper; @@ -31,7 +32,7 @@ public class GraySectionCell extends FrameLayout { - private TextView textView; + private AnimatedEmojiSpan.TextViewEmojis textView; private AnimatedTextView rightTextView; private final Theme.ResourcesProvider resourcesProvider; private int layerHeight = 32; @@ -46,9 +47,9 @@ public GraySectionCell(Context context, Theme.ResourcesProvider resourcesProvide setBackgroundColor(getThemedColor(Theme.key_graySection)); - textView = new TextView(getContext()); + textView = new AnimatedEmojiSpan.TextViewEmojis(getContext()); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + textView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); textView.setTextColor(getThemedColor(Theme.key_graySectionText)); textView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 16, 0, 16, 0)); @@ -60,7 +61,7 @@ public CharSequence getAccessibilityClassName() { } }; rightTextView.setPadding(AndroidUtilities.dp(2), 0, AndroidUtilities.dp(2), 0); - rightTextView.setAnimationProperties(1f, 0, 400, CubicBezierInterpolator.EASE_OUT_QUINT); + rightTextView.setAnimationProperties(.9f, 0, 420, CubicBezierInterpolator.EASE_OUT_QUINT); rightTextView.setTextSize(AndroidUtilities.dp(14)); rightTextView.setTextColor(getThemedColor(Theme.key_graySectionText)); rightTextView.setGravity(LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT); @@ -108,18 +109,18 @@ public void setRightText(String right) { setRightText(right, true); } - public void setRightText(String right, boolean moveDown) { + public void setRightText(CharSequence right, boolean moveDown) { rightTextView.setText(right, true, moveDown); rightTextView.setVisibility(VISIBLE); } - public void setRightText(String right, OnClickListener onClickListener) { + public void setRightText(CharSequence right, OnClickListener onClickListener) { rightTextView.setText(right, false); rightTextView.setOnClickListener(onClickListener); rightTextView.setVisibility(VISIBLE); } - public void setRightText(String right, boolean moveDown, OnClickListener onClickListener) { + public void setRightText(CharSequence right, boolean moveDown, OnClickListener onClickListener) { rightTextView.setText(right, true, moveDown); rightTextView.setOnClickListener(onClickListener); rightTextView.setVisibility(VISIBLE); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java index 5b2dd91a24..0ad47116b7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java @@ -16,7 +16,9 @@ import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; +import android.graphics.ColorFilter; import android.graphics.Paint; +import android.graphics.PixelFormat; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.drawable.Drawable; @@ -25,6 +27,9 @@ import android.view.accessibility.AccessibilityNodeInfo; import android.widget.FrameLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.ChatObject; import org.telegram.messenger.Emoji; @@ -43,6 +48,7 @@ import org.telegram.ui.Components.AvatarDrawable; import org.telegram.ui.Components.BackupImageView; import org.telegram.ui.Components.CheckBox2; +import org.telegram.ui.Components.CombinedDrawable; import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.Premium.PremiumGradient; @@ -59,6 +65,7 @@ public class GroupCreateUserCell extends FrameLayout { private Object currentObject; private CharSequence currentName; private CharSequence currentStatus; + public boolean currentPremium; private int checkBoxType; @@ -83,6 +90,7 @@ public class GroupCreateUserCell extends FrameLayout { private final AnimatedFloat premiumBlockedT = new AnimatedFloat(this, 0, 350, CubicBezierInterpolator.EASE_OUT_QUINT); private boolean premiumBlocked; + private Boolean premiumBlockedOverriden; private boolean showPremiumBlocked; public boolean isBlocked() { @@ -100,7 +108,7 @@ public GroupCreateUserCell showPremiumBlocked() { private void updatePremiumBlocked(boolean animated) { final boolean wasPremiumBlocked = premiumBlocked; - premiumBlocked = showPremiumBlocked && currentObject instanceof TLRPC.User && MessagesController.getInstance(currentAccount).isUserPremiumBlocked(((TLRPC.User) currentObject).id); + premiumBlocked = showPremiumBlocked && (premiumBlockedOverriden != null ? premiumBlockedOverriden : currentObject instanceof TLRPC.User && MessagesController.getInstance(currentAccount).isUserPremiumBlocked(((TLRPC.User) currentObject).id)); if (wasPremiumBlocked != premiumBlocked) { if (!animated) { premiumBlockedT.set(premiumBlocked, true); @@ -109,6 +117,12 @@ private void updatePremiumBlocked(boolean animated) { } } + public void overridePremiumBlocked(boolean premiumBlocked, boolean animated) { + showPremiumBlocked = true; + premiumBlockedOverriden = premiumBlocked; + updatePremiumBlocked(animated); + } + public GroupCreateUserCell(Context context, int checkBoxType, int pad, boolean selfAsSaved) { this(context, checkBoxType, pad, selfAsSaved, false, null); } @@ -172,9 +186,50 @@ public void setObject(Object object, CharSequence name, CharSequence status) { currentStatus = status; currentName = name; drawDivider = false; + currentPremium = false; update(0); } + public void setPremium() { + currentPremium = true; + currentObject = "premium"; + avatarImageView.setImageDrawable(makePremiumUsersDrawable(getContext(), false)); + nameTextView.setText(LocaleController.getString(R.string.PrivacyPremium)); + statusTextView.setTag(Theme.key_windowBackgroundWhiteGrayText); + statusTextView.setTextColor(Theme.getColor(forceDarkTheme ? Theme.key_voipgroup_lastSeenText : Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); + statusTextView.setText(LocaleController.getString(R.string.PrivacyPremiumText)); + } + + public static Drawable makePremiumUsersDrawable(Context context, boolean small) { + PremiumGradient.PremiumGradientTools gradientTools = new PremiumGradient.PremiumGradientTools(Theme.key_premiumGradient2, Theme.key_premiumGradient1, -1, -1, -1, null); + Drawable backgroundDrawable = new Drawable() { + @Override + public void draw(@NonNull Canvas canvas) { + gradientTools.gradientMatrix(getBounds()); + canvas.drawCircle( + getBounds().centerX(), + getBounds().centerY(), + Math.min(getBounds().width(), getBounds().height()) / 2f, + gradientTools.paint + ); + } + @Override + public void setAlpha(int alpha) {} + @Override + public void setColorFilter(@Nullable ColorFilter colorFilter) {} + @Override + public int getOpacity() { + return PixelFormat.TRANSPARENT; + } + }; + Drawable starDrawable = context.getResources().getDrawable(R.drawable.msg_settings_premium); + CombinedDrawable drawable = new CombinedDrawable(backgroundDrawable, starDrawable, 0, 0); + if (small) { + drawable.setIconSize(dp(18), dp(18)); + } + return drawable; + } + public void setForbiddenCheck(boolean forbidden) { checkBox.setForbidden(forbidden); } @@ -246,7 +301,7 @@ public void setDrawDivider(boolean value) { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(currentObject instanceof String ? 50 : 58), MeasureSpec.EXACTLY)); + super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(currentObject instanceof String && !"premium".equalsIgnoreCase((String) currentObject) ? 50 : 58), MeasureSpec.EXACTLY)); } public void recycle() { @@ -254,7 +309,7 @@ public void recycle() { } public void update(int mask) { - if (currentObject == null) { + if (currentObject == null || currentPremium) { return; } TLRPC.FileLocation photo = null; @@ -470,6 +525,7 @@ public void update(int mask) { private PremiumGradient.PremiumGradientTools premiumGradient; private Drawable lockDrawable; + private Paint lockBackgroundPaint; @Override protected void onDraw(Canvas canvas) { @@ -512,11 +568,21 @@ protected void dispatchDraw(Canvas canvas) { canvas.save(); Theme.dialogs_onlineCirclePaint.setColor(Theme.getColor(Theme.key_windowBackgroundWhite, resourcesProvider)); canvas.drawCircle(left, top, dp(10 + 1.33f) * lockT, Theme.dialogs_onlineCirclePaint); - if (premiumGradient == null) { - premiumGradient = new PremiumGradient.PremiumGradientTools(Theme.key_premiumGradient1, Theme.key_premiumGradient2, -1, -1, -1, resourcesProvider); + Paint paint; + if (premiumBlockedOverriden == null) { + if (premiumGradient == null) { + premiumGradient = new PremiumGradient.PremiumGradientTools(Theme.key_premiumGradient1, Theme.key_premiumGradient2, -1, -1, -1, resourcesProvider); + } + premiumGradient.gradientMatrix((int) (left - dp(10)), (int) (top - dp(10)), (int) (left + dp(10)), (int) (top + dp(10)), 0, 0); + paint = premiumGradient.paint; + } else { + if (lockBackgroundPaint == null) { + lockBackgroundPaint = new Paint(); + } + lockBackgroundPaint.setColor(Theme.getColor(Theme.key_avatar_backgroundGray, resourcesProvider)); + paint = lockBackgroundPaint; } - premiumGradient.gradientMatrix((int) (left - dp(10)), (int) (top - dp(10)), (int) (left + dp(10)), (int) (top + dp(10)), 0, 0); - canvas.drawCircle(left, top, dp(10) * lockT, premiumGradient.paint); + canvas.drawCircle(left, top, dp(10) * lockT, paint); if (lockDrawable == null) { lockDrawable = getContext().getResources().getDrawable(R.drawable.msg_mini_lock2).mutate(); lockDrawable.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationDirectionCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationDirectionCell.java index 8ecf142348..5fd0d2abab 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationDirectionCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationDirectionCell.java @@ -33,7 +33,7 @@ public LocationDirectionCell(Context context, Theme.ResourcesProvider resourcesP buttonTextView.setTextColor(getThemedColor(Theme.key_featuredStickers_buttonText)); buttonTextView.setTextSize(14); buttonTextView.setText(LocaleController.getString("Directions", R.string.Directions)); - buttonTextView.setLeftDrawable(R.drawable.navigate); + buttonTextView.setLeftDrawable(R.drawable.filled_directions); buttonTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); frameLayout.addView(buttonTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ProfileChannelCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ProfileChannelCell.java new file mode 100644 index 0000000000..6ebf57b6c1 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ProfileChannelCell.java @@ -0,0 +1,403 @@ +package org.telegram.ui.Cells; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.app.ApplicationErrorReport; +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.drawable.Drawable; +import android.text.TextUtils; +import android.util.TypedValue; +import android.view.Gravity; +import android.widget.FrameLayout; +import android.widget.LinearLayout; +import android.widget.Space; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.collection.LongSparseArray; + +import org.telegram.SQLite.SQLiteCursor; +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.DialogObject; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessageObject; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.MessagesStorage; +import org.telegram.messenger.UserConfig; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.NativeByteBuffer; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.AnimatedFloat; +import org.telegram.ui.Components.AnimatedTextView; +import org.telegram.ui.Components.AvatarDrawable; +import org.telegram.ui.Components.AvatarsDrawable; +import org.telegram.ui.Components.BackupImageView; +import org.telegram.ui.Components.ClickableAnimatedTextView; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.LoadingDrawable; +import org.telegram.ui.Components.RecyclerListView; +import org.telegram.ui.Stories.StoriesController; +import org.telegram.ui.Stories.StoriesListPlaceProvider; + +import java.util.ArrayList; + +public class ProfileChannelCell extends FrameLayout { + + private final Theme.ResourcesProvider resourcesProvider; + + private final TextView headerView; + private final AnimatedTextView subscribersView; + + private final DialogCell dialogCell; + + public ProfileChannelCell(BaseFragment fragment) { + super(fragment.getContext()); + final Context context = fragment.getContext(); + this.resourcesProvider = fragment.getResourceProvider(); + + LinearLayout headerLayout = new LinearLayout(context); + headerLayout.setOrientation(LinearLayout.HORIZONTAL); + addView(headerLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.FILL_HORIZONTAL | Gravity.TOP, 22, 16.6f, 22, 0)); + + headerView = new TextView(context); + headerView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + headerView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); + headerView.setText("Channel"); + headerLayout.addView(headerView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP)); + + subscribersView = new ClickableAnimatedTextView(context); + subscribersView.getDrawable().setHacks(true, true, true); + subscribersView.setAnimationProperties(.3f, 0, 165, CubicBezierInterpolator.EASE_OUT_QUINT); + subscribersView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + subscribersView.setTextSize(dp(11)); + subscribersView.setPadding(dp(4.33f), 0, dp(4.33f), 0); + subscribersView.setGravity(Gravity.LEFT); + headerLayout.addView(subscribersView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 17, Gravity.LEFT | Gravity.TOP, 4, 2, 4, 0)); + + dialogCell = new DialogCell(null, context, false, true, UserConfig.selectedAccount, resourcesProvider); + dialogCell.setDialogCellDelegate(new DialogCell.DialogCellDelegate() { + @Override + public void onButtonClicked(DialogCell dialogCell) { + + } + + @Override + public void onButtonLongPress(DialogCell dialogCell) { + + } + + @Override + public boolean canClickButtonInside() { + return true; + } + + @Override + public void openStory(DialogCell dialogCell, Runnable onDone) { + if (fragment.getMessagesController().getStoriesController().hasStories(dialogCell.getDialogId())) { + fragment.getOrCreateStoryViewer().doOnAnimationReady(onDone); + fragment.getOrCreateStoryViewer().open(fragment.getContext(), dialogCell.getDialogId(), StoriesListPlaceProvider.of(ProfileChannelCell.this)); + return; + } + } + + @Override + public void showChatPreview(DialogCell dialogCell) { + + } + + @Override + public void openHiddenStories() { + StoriesController storiesController = fragment.getMessagesController().getStoriesController(); + if (storiesController.getHiddenList().isEmpty()) { + return; + } + boolean unreadOnly = storiesController.getUnreadState(DialogObject.getPeerDialogId(storiesController.getHiddenList().get(0).peer)) != StoriesController.STATE_READ; + ArrayList peerIds = new ArrayList<>(); + for (int i = 0; i < storiesController.getHiddenList().size(); i++) { + long dialogId = DialogObject.getPeerDialogId(storiesController.getHiddenList().get(i).peer); + if (!unreadOnly || storiesController.getUnreadState(dialogId) != StoriesController.STATE_READ) { + peerIds.add(dialogId); + } + } + + fragment.getOrCreateStoryViewer().open(context, null, peerIds, 0, null, null, StoriesListPlaceProvider.of(ProfileChannelCell.this), false); + } + }); + dialogCell.avatarStart = 15; + dialogCell.messagePaddingStart = 83; + addView(dialogCell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.FILL_HORIZONTAL | Gravity.BOTTOM)); + + updateColors(); + + setWillNotDraw(false); + + loadingDrawable = new LoadingDrawable(); + loadingDrawable.setColors( + Theme.multAlpha(Theme.getColor(Theme.key_listSelector, resourcesProvider), 1.25f), + Theme.multAlpha(Theme.getColor(Theme.key_listSelector, resourcesProvider), .8f) + ); + loadingDrawable.setRadiiDp(8); + } + + private boolean loading; + private AnimatedFloat loadingAlpha = new AnimatedFloat(320, CubicBezierInterpolator.EASE_OUT_QUINT); + private final LoadingDrawable loadingDrawable; + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + + float loading = loadingAlpha.set(this.loading); + if (loading > 0) { + loadingDrawable.setAlpha((int) (0xFF * loading)); + + AndroidUtilities.rectTmp.set( + dialogCell.getX() + dp(dialogCell.messagePaddingStart + 6), + dialogCell.getY() + dp(38), + dialogCell.getX() + dp(dialogCell.messagePaddingStart + 6) + getWidth() * .5f, + dialogCell.getY() + dp(38 + 8.33f) + ); + loadingDrawable.setBounds(AndroidUtilities.rectTmp); + loadingDrawable.draw(canvas); + + AndroidUtilities.rectTmp.set( + dialogCell.getX() + dp(dialogCell.messagePaddingStart + 6), + dialogCell.getY() + dp(38 + 18), + dialogCell.getX() + dp(dialogCell.messagePaddingStart + 6) + getWidth() * .36f, + dialogCell.getY() + dp(38 + 18 + 8.33f) + ); + loadingDrawable.setBounds(AndroidUtilities.rectTmp); + loadingDrawable.draw(canvas); + + AndroidUtilities.rectTmp.set( + dialogCell.getX() + dialogCell.getWidth() - dp(16) - dp(43), + dialogCell.getY() + dp(12), + dialogCell.getX() + dialogCell.getWidth() - dp(16), + dialogCell.getY() + dp(12 + 8.33f) + ); + loadingDrawable.setBounds(AndroidUtilities.rectTmp); + loadingDrawable.draw(canvas); + + invalidate(); + } + } + + @Override + protected boolean verifyDrawable(@NonNull Drawable who) { + return loadingDrawable == who || super.verifyDrawable(who); + } + + private boolean set = false; + + public void set(TLRPC.Chat channel, MessageObject messageObject) { + final boolean animated = set; + final boolean subscribersShown = channel == null || channel.participants_count > 0; + subscribersView.cancelAnimation(); + subscribersView.setPivotX(0); + if (animated) { + subscribersView.animate().alpha(subscribersShown ? 1f : 0f).scaleX(subscribersShown ? 1f : .8f).scaleY(subscribersShown ? 1f : .8f).setDuration(420).setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT).start(); + } else { + subscribersView.setAlpha(subscribersShown ? 1f : 0f); + subscribersView.setScaleX(subscribersShown ? 1f : 0f); + subscribersView.setScaleY(subscribersShown ? 1f : 0f); + } + + if (channel != null) { + int[] result = new int[1]; + boolean ignoreShort = AndroidUtilities.isAccessibilityScreenReaderEnabled(); + String shortNumber = ignoreShort ? String.valueOf(result[0] = channel.participants_count) : LocaleController.formatShortNumber(channel.participants_count, result); + subscribersView.setText(LocaleController.formatPluralString("Subscribers", result[0]).replace(String.format("%d", result[0]), shortNumber), true); + + if (loading = (messageObject == null)) { + dialogCell.setDialog(-channel.id, null, 0, false, animated); + } else { + dialogCell.setDialog(-channel.id, messageObject, messageObject.messageOwner.date, false, animated); + } + } + + if (!animated) { + loadingAlpha.set(loading, true); + } + invalidate(); + + set = true; + } + + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(dp(115.66f), MeasureSpec.EXACTLY)); + } + + + public static class ChannelMessageFetcher { + + public final int currentAccount; + public boolean loading, loaded, error; + public MessageObject messageObject; + + public ChannelMessageFetcher(int currentAccount) { + this.currentAccount = currentAccount; + } + + private int searchId; + public long channel_id; + public int message_id; + + public void fetch(TLRPC.UserFull userInfo) { + if (userInfo == null || (userInfo.flags2 & 64) == 0) { + searchId++; + loaded = true; + messageObject = null; + done(false); + return; + } + fetch(userInfo.personal_channel_id, userInfo.personal_channel_message); + } + + public void fetch(long channel_id, int message_id) { + if (loaded || loading) { + if (this.channel_id != channel_id || this.message_id != message_id) { + loaded = false; + messageObject = null; + } else { + return; + } + } + final int thisSearchId = ++this.searchId; + loading = true; + + this.channel_id = channel_id; + this.message_id = message_id; + + final long selfId = UserConfig.getInstance(currentAccount).getClientUserId(); + MessagesStorage storage = MessagesStorage.getInstance(currentAccount); + storage.getStorageQueue().postRunnable(() -> { + TLRPC.Message message = null; + ArrayList users = new ArrayList<>(); + ArrayList chats = new ArrayList<>(); + SQLiteCursor cursor = null; + try { + if (message_id <= 0) { + cursor = storage.getDatabase().queryFinalized("SELECT data, mid FROM messages_v2 WHERE uid = ? ORDER BY mid DESC LIMTI 1", -channel_id); + } else { + cursor = storage.getDatabase().queryFinalized("SELECT data, mid FROM messages_v2 WHERE uid = ? AND mid = ? LIMIT 1", -channel_id, message_id); + } + ArrayList usersToLoad = new ArrayList<>(); + ArrayList chatsToLoad = new ArrayList<>(); + if (cursor.next()) { + NativeByteBuffer data = cursor.byteBufferValue(0); + if (data != null) { + message = TLRPC.Message.TLdeserialize(data, data.readInt32(false), false); + message.readAttachPath(data, selfId); + data.reuse(); + message.id = cursor.intValue(1); + message.dialog_id = -channel_id; + MessagesStorage.addUsersAndChatsFromMessage(message, usersToLoad, chatsToLoad, null); + } + } + cursor.dispose(); + + if (message != null) { + + if (!usersToLoad.isEmpty()) { + storage.getUsersInternal(TextUtils.join(",", usersToLoad), users); + } + if (!chatsToLoad.isEmpty()) { + storage.getChatsInternal(TextUtils.join(",", chatsToLoad), chats); + } + } + } catch (Exception e) { + FileLog.e(e); + } finally { + if (cursor != null) { + cursor.dispose(); + } + } + final TLRPC.Message finalMessage = message; + AndroidUtilities.runOnUIThread(() -> { + if (thisSearchId != searchId) return; + MessageObject messageObject1 = null; + if (finalMessage != null) { + messageObject1 = new MessageObject(currentAccount, finalMessage, true, true); + } + + if (messageObject1 != null) { + this.messageObject = messageObject1; + done(false); + return; + } + + TLRPC.TL_channels_getMessages req = new TLRPC.TL_channels_getMessages(); + req.channel = MessagesController.getInstance(currentAccount).getInputChannel(channel_id); + req.id.add(message_id); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, err) -> AndroidUtilities.runOnUIThread(() -> { + if (response instanceof TLRPC.messages_Messages) { + TLRPC.messages_Messages res = (TLRPC.messages_Messages) response; + MessagesController.getInstance(currentAccount).putUsers(res.users, false); + MessagesController.getInstance(currentAccount).putChats(res.chats, false); + storage.putUsersAndChats(res.users, res.chats, true, true); + storage.putMessages(res, -channel_id, -1, 0, false, 0, 0); + + if (thisSearchId != searchId) return; + + TLRPC.Message message1 = null; + for (TLRPC.Message m : res.messages) { + if (m.id == message_id) { + message1 = m; + break; + } + } + if (message1 != null) { + if (message1 instanceof TLRPC.TL_messageEmpty) { + this.messageObject = null; + } else { + this.messageObject = new MessageObject(currentAccount, message1, true, true); + } + done(false); + } + } else { + if (thisSearchId != searchId) return; + done(true); + } + })); + }); + }); + } + + private ArrayList callbacks = new ArrayList<>(); + public void subscribe(Runnable callback) { + if (loaded) { + callback.run(); + } else { + callbacks.add(callback); + } + } + private void done(boolean error) { + loading = false; + loaded = true; + this.error = error; + for (Runnable callback : callbacks) callback.run(); + callbacks.clear(); + } + } + + public int processColor(int color) { + return color; + } + + public void updateColors() { + final int headerColor = processColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueHeader, resourcesProvider)); + subscribersView.setTextColor(headerColor); + subscribersView.setBackground(Theme.createRoundRectDrawable(dp(4.5f), dp(4.5f), Theme.multAlpha(headerColor, .1f))); + headerView.setTextColor(headerColor); +// titleView.setTextColor(Theme.getColor(Theme.key_chats_name, resourcesProvider)); +// dateView.setTextColor(Theme.getColor(Theme.key_chats_date, resourcesProvider)); + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SlideIntChooseView.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SlideIntChooseView.java new file mode 100644 index 0000000000..ad81f6bf5f --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SlideIntChooseView.java @@ -0,0 +1,248 @@ +package org.telegram.ui.Cells; + +import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.formatString; +import static org.telegram.messenger.LocaleController.getString; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ValueAnimator; +import android.content.Context; +import android.graphics.Color; +import android.graphics.ColorMatrix; +import android.graphics.ColorMatrixColorFilter; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.Rect; +import android.os.Build; +import android.view.Gravity; +import android.view.HapticFeedbackConstants; +import android.view.MotionEvent; +import android.widget.FrameLayout; + +import org.checkerframework.checker.units.qual.A; +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.Utilities; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ChannelMonetizationLayout; +import org.telegram.ui.Components.AnimatedEmojiDrawable; +import org.telegram.ui.Components.AnimatedTextView; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.SeekBarView; + +import java.util.Arrays; + +public class SlideIntChooseView extends FrameLayout { + + private final Theme.ResourcesProvider resourcesProvider; + + private final AnimatedTextView minText; + private final AnimatedTextView valueText; + private final AnimatedTextView maxText; + private final SeekBarView seekBarView; + + private int stepsCount; + + public SlideIntChooseView(Context context, Theme.ResourcesProvider resourcesProvider) { + super(context); + + this.resourcesProvider = resourcesProvider; + + minText = new AnimatedTextView(context, true, true, true); + minText.setAnimationProperties(.3f, 0, 220, CubicBezierInterpolator.EASE_OUT_QUINT); + minText.setTextSize(dp(13)); + minText.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); + minText.setGravity(Gravity.LEFT); + minText.setEmojiCacheType(AnimatedEmojiDrawable.CACHE_TYPE_COLORABLE); + minText.setEmojiColor(Color.WHITE); + addView(minText, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 25, Gravity.TOP, 22, 13, 22, 0)); + + valueText = new AnimatedTextView(context, false, true, true); + valueText.setAnimationProperties(.3f, 0, 220, CubicBezierInterpolator.EASE_OUT_QUINT); + valueText.setTextSize(dp(13)); + valueText.setGravity(Gravity.CENTER); + valueText.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteValueText, resourcesProvider)); + valueText.setEmojiColor(Color.WHITE); + valueText.setEmojiCacheType(AnimatedEmojiDrawable.CACHE_TYPE_COLORABLE); + addView(valueText, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 25, Gravity.TOP, 22, 13, 22, 0)); + + maxText = new AnimatedTextView(context, true, true, true); + maxText.setAnimationProperties(.3f, 0, 220, CubicBezierInterpolator.EASE_OUT_QUINT); + maxText.setTextSize(dp(13)); + maxText.setGravity(Gravity.RIGHT); + maxText.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); + maxText.setEmojiColor(Color.WHITE); + maxText.setEmojiCacheType(AnimatedEmojiDrawable.CACHE_TYPE_COLORABLE); + addView(maxText, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 25, Gravity.TOP, 22, 13, 22, 0)); + + seekBarView = new SeekBarView(context) { + @Override + public boolean onTouchEvent(MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + getParent().requestDisallowInterceptTouchEvent(true); + } + return super.onTouchEvent(event); + } + }; + seekBarView.setReportChanges(true); + seekBarView.setDelegate(new SeekBarView.SeekBarViewDelegate() { + @Override + public void onSeekBarDrag(boolean stop, float progress) { + if (options == null || whenChanged == null) { + return; + } + final int newValue = (int) (options.min + stepsCount * progress); + if (value != newValue) { + value = newValue; + AndroidUtilities.vibrateCursor(seekBarView); + updateTexts(value, true); + if (whenChanged != null) { + whenChanged.run(value); + } + } + } + + @Override + public int getStepsCount() { + return stepsCount; + } + }); + addView(seekBarView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 38, Gravity.TOP | Gravity.FILL_HORIZONTAL, 6, 30, 6, 0)); + } + + private int value; + private Utilities.Callback whenChanged; + private Options options; + + public void set( + int value, + Options options, + Utilities.Callback whenChanged + ) { + this.value = value; + this.options = options; + this.whenChanged = whenChanged; + + stepsCount = options.max - options.min; + seekBarView.setProgress((value - options.min) / (float) stepsCount, false); + + updateTexts(value, false); + } + + public void updateTexts(int value, boolean animated) { + minText.cancelAnimation(); + minText.setText(processText(options.minStringResId, options.min), animated); + int valueResId; + if (value <= options.min) { + valueResId = options.valueMinStringResId; + } else if (value < options.max) { + valueResId = options.valueStringResId; + } else { + valueResId = options.valueMaxStringResId; + } + valueText.cancelAnimation(); + valueText.setText(processText(valueResId, value), animated); + maxText.cancelAnimation(); + maxText.setText(processText(options.maxStringResId, options.max), animated); + maxText.setTextColor(Theme.getColor(value >= options.max ? Theme.key_windowBackgroundWhiteValueText : Theme.key_windowBackgroundWhiteGrayText, resourcesProvider), animated); + setMaxTextEmojiSaturation(value >= options.max ? 1f : 0f, animated); + } + + private float maxTextEmojiSaturation; + private float toMaxTextEmojiSaturation = -1f; + private ValueAnimator maxTextEmojiSaturationAnimator; + private void setMaxTextEmojiSaturation(float value, boolean animated) { + if (Math.abs(toMaxTextEmojiSaturation - value) < 0.01f) { + return; + } + if (maxTextEmojiSaturationAnimator != null) { + maxTextEmojiSaturationAnimator.cancel(); + maxTextEmojiSaturationAnimator = null; + } + toMaxTextEmojiSaturation = value; + if (animated) { + maxTextEmojiSaturationAnimator = ValueAnimator.ofFloat(maxTextEmojiSaturation, value); + maxTextEmojiSaturationAnimator.addUpdateListener(anm -> { + ColorMatrix colorMatrix = new ColorMatrix(); + colorMatrix.setSaturation(maxTextEmojiSaturation = (float) anm.getAnimatedValue()); + if (Theme.isCurrentThemeDark()) { + AndroidUtilities.adjustBrightnessColorMatrix(colorMatrix, -.3f * (1f - maxTextEmojiSaturation)); + } + maxText.setEmojiColorFilter(new ColorMatrixColorFilter(colorMatrix)); + }); + maxTextEmojiSaturationAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + ColorMatrix colorMatrix = new ColorMatrix(); + colorMatrix.setSaturation(maxTextEmojiSaturation = value); + if (Theme.isCurrentThemeDark()) { + AndroidUtilities.adjustBrightnessColorMatrix(colorMatrix, -.3f * (1f - maxTextEmojiSaturation)); + } + maxText.setEmojiColorFilter(new ColorMatrixColorFilter(colorMatrix)); + } + }); + maxTextEmojiSaturationAnimator.setDuration(240); + maxTextEmojiSaturationAnimator.start(); + } else { + ColorMatrix colorMatrix = new ColorMatrix(); + colorMatrix.setSaturation(maxTextEmojiSaturation = value); + if (Theme.isCurrentThemeDark()) { + AndroidUtilities.adjustBrightnessColorMatrix(colorMatrix, -.3f * (1f - maxTextEmojiSaturation)); + } + maxText.setEmojiColorFilter(new ColorMatrixColorFilter(colorMatrix)); + } + } + + private CharSequence processText(int resId, int value) { + String string = getString(resId); + string = string.replace("%d", "" + value); + CharSequence cs = AndroidUtilities.replaceTags(string); + cs = ChannelMonetizationLayout.replaceTON(cs, valueText.getPaint()); + return cs; + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure( + MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(dp(75), MeasureSpec.EXACTLY) + ); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + setSystemGestureExclusionRects(Arrays.asList( + new Rect(0, 0, dp(80), getMeasuredHeight()), + new Rect(getMeasuredWidth() - dp(80), 0, getMeasuredWidth(), getMeasuredHeight()) + )); + } + } + + public static class Options { + public int style; + + public int min; + public int max; + + public int minStringResId; + public int valueMinStringResId, valueStringResId, valueMaxStringResId; + public int maxStringResId; + + public static Options make( + int style, + int min, int minStringResId, + int valueMinStringResId, int valueStringResId, int valueMaxStringResId, + int max, int maxStringResId + ) { + Options o = new Options(); + o.style = style; + o.min = min; + o.minStringResId = minStringResId; + o.valueMinStringResId = valueMinStringResId; + o.valueStringResId = valueStringResId; + o.valueMaxStringResId = valueMaxStringResId; + o.max = max; + o.maxStringResId = maxStringResId; + return o; + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerEmojiCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerEmojiCell.java index 600c5f4d7d..bbde0142bb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerEmojiCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerEmojiCell.java @@ -8,9 +8,15 @@ package org.telegram.ui.Cells; +import static org.telegram.messenger.AndroidUtilities.dp; + import android.content.Context; +import android.graphics.Bitmap; import android.graphics.Canvas; +import android.graphics.Color; import android.graphics.Paint; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; import android.os.Vibrator; import android.util.TypedValue; import android.view.Gravity; @@ -18,6 +24,7 @@ import android.view.accessibility.AccessibilityNodeInfo; import android.view.animation.AccelerateInterpolator; import android.widget.FrameLayout; +import android.widget.ImageView; import android.widget.TextView; import org.telegram.messenger.AndroidUtilities; @@ -26,7 +33,6 @@ import org.telegram.messenger.FileLoader; import org.telegram.messenger.ImageLocation; import org.telegram.messenger.ImageReceiver; -import org.telegram.messenger.LiteMode; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaDataController; import org.telegram.messenger.MessageObject; @@ -39,6 +45,7 @@ import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Components.BackupImageView; import org.telegram.ui.Components.EmojiTextView; +import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.ListView.RecyclerListViewWithOverlayDraw; import org.telegram.ui.Components.Premium.PremiumLockIconView; @@ -67,12 +74,12 @@ public class StickerEmojiCell extends FrameLayout implements NotificationCenter. private boolean isPremiumSticker; private float premiumAlpha = 1f; private boolean showPremiumLock; - - int stickerColor; + public ImageView editModeIcon; + private int editModeIconColor; private final static int STICKER_SIZE = 66; private boolean drawInParentView; - private Theme.ResourcesProvider resourceProvider; + private final Theme.ResourcesProvider resourceProvider; public StickerEmojiCell(Context context, boolean isEmojiPanel, Theme.ResourcesProvider resourcesProvider) { super(context); @@ -80,7 +87,21 @@ public StickerEmojiCell(Context context, boolean isEmojiPanel, Theme.ResourcesPr fromEmojiPanel = isEmojiPanel; - imageView = new ImageReceiver(); + imageView = new ImageReceiver() { + @Override + protected boolean setImageBitmapByKey(Drawable drawable, String key, int type, boolean memCache, int guid) { + if (drawable instanceof BitmapDrawable && editModeIconColor == 0) { + Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); + editModeIconColor = AndroidUtilities.getDominantColor(bitmap); + if (editModeIconColor == Color.WHITE || editModeIconColor == 0) { + editModeIconColor = Theme.getColor(Theme.key_dialogTextGray2, resourcesProvider); + } + editModeIcon.setBackground(Theme.createRoundRectDrawable(dp(12), editModeIconColor)); + invalidate(); + } + return super.setImageBitmapByKey(drawable, key, type, memCache, guid); + } + }; imageView.setAspectFit(true); imageView.setAllowLoadingOnAttachedOnly(true); imageView.setLayerNum(1); @@ -96,7 +117,14 @@ public StickerEmojiCell(Context context, boolean isEmojiPanel, Theme.ResourcesPr premiumIconView.setImageReceiver(imageView); premiumIconView.setPadding(AndroidUtilities.dp(4), AndroidUtilities.dp(4), AndroidUtilities.dp(4), AndroidUtilities.dp(4)); premiumIconView.setImageReceiver(imageView); - addView(premiumIconView, LayoutHelper.createFrame(24, 24, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0 ,0, 0, 0)); + addView(premiumIconView, LayoutHelper.createFrame(24, 24, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0, 0, 0)); + + editModeIcon = new ImageView(context); + editModeIcon.setImageResource(R.drawable.mini_more_dots); + editModeIcon.setPadding(dp(2), dp(2), dp(2), dp(2)); + editModeIcon.setBackground(Theme.createRoundRectDrawable(dp(12), Theme.getColor(Theme.key_dialogTextGray2, resourcesProvider))); + editModeIcon.setAlpha(0f); + addView(editModeIcon, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT)); setFocusable(true); } @@ -125,11 +153,11 @@ public void setRecent(boolean value) { } public void setSticker(TLRPC.Document document, Object parent, boolean showEmoji) { - setSticker(document, null, parent, null, showEmoji); + setSticker(document, null, parent, null, showEmoji, false); } public void setSticker(SendMessagesHelper.ImportingSticker path) { - setSticker(null, path, null, path.emoji, path.emoji != null); + setSticker(null, path, null, path.emoji, path.emoji != null, false); } public MessageObject.SendAnimationData getSendAnimationData() { @@ -148,10 +176,42 @@ public MessageObject.SendAnimationData getSendAnimationData() { } public void setSticker(TLRPC.Document document, SendMessagesHelper.ImportingSticker path, Object parent, String emoji, boolean showEmoji) { + setSticker(document, path, parent, emoji, showEmoji, false); + } + + public void disableEditMode(boolean animate) { + if (animate) { + editModeIcon.animate().alpha(0f).scaleX(0.4f).scaleY(0.4f).setDuration(200).setInterpolator(CubicBezierInterpolator.DEFAULT).start(); + } else { + editModeIcon.setAlpha(0f); + } + } + + public void enableEditMode(boolean animate) { + if (animate) { + editModeIcon.setAlpha(0f); + editModeIcon.setScaleX(0.4f); + editModeIcon.setScaleY(0.4f); + editModeIcon.animate().alpha(1f).scaleX(1f).scaleY(1f).setDuration(200).setInterpolator(CubicBezierInterpolator.DEFAULT).start(); + } else { + editModeIcon.setAlpha(1f); + editModeIcon.setScaleX(1f); + editModeIcon.setScaleY(1f); + } + } + + public void setSticker(TLRPC.Document document, SendMessagesHelper.ImportingSticker path, Object parent, String emoji, boolean showEmoji, boolean editModeEnabled) { currentEmoji = emoji; isPremiumSticker = MessageObject.isPremiumSticker(document); drawInParentView = false; imageView.setColorFilter(null); + editModeIconColor = 0; + editModeIcon.setBackground(Theme.createRoundRectDrawable(dp(12), Theme.getColor(Theme.key_dialogTextGray2))); + if (editModeEnabled) { + enableEditMode(false); + } else { + disableEditMode(false); + } if (isPremiumSticker) { premiumIconView.setColor(Theme.getColor(Theme.key_windowBackgroundWhite)); premiumIconView.setWaitingImage(); @@ -194,7 +254,7 @@ public void setSticker(TLRPC.Document document, SendMessagesHelper.ImportingStic } else { if (svgThumb != null) { if (thumb != null) { - imageView.setImage(ImageLocation.getForDocument(thumb, document), imageFilter, svgThumb, "webp", parentObject, 1); + imageView.setImage(ImageLocation.getForDocument(thumb, document), imageFilter, svgThumb, "webp", parentObject, 1); } else { imageView.setImage(ImageLocation.getForDocument(document), imageFilter, svgThumb, "webp", parentObject, 1); } @@ -405,8 +465,9 @@ private void drawInternal(View view, Canvas canvas) { int size = Math.min(AndroidUtilities.dp(STICKER_SIZE), Math.min(getMeasuredHeight(), getMeasuredWidth())); int cX = getMeasuredWidth() >> 1; int cY = getMeasuredHeight() >> 1; - imageView.setImageCoords(cX - size / 2f, cY - size / 2f , size, size); + imageView.setImageCoords(cX - size / 2f, cY - size / 2f, size, size); imageView.setAlpha(alpha * premiumAlpha); + if (scale != 1f) { canvas.save(); canvas.scale(scale, scale, cX, cY); @@ -416,5 +477,4 @@ private void drawInternal(View view, Canvas canvas) { imageView.draw(canvas); } } - } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetCell.java index 3e0d2f93a4..f4da3cfce1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetCell.java @@ -369,7 +369,7 @@ public void setStickersSet(TLRPC.TL_messages_stickerSet set, boolean divider, bo boolean allowPlay = LiteMode.isEnabled(emojis ? LiteMode.FLAG_ANIMATED_EMOJI_KEYBOARD : LiteMode.FLAG_ANIMATED_STICKERS_KEYBOARD); String filter = "50_50" + (!allowPlay ? "_firstframe" : ""); - if (object instanceof TLRPC.Document && MessageObject.isAnimatedStickerDocument(sticker, true) || MessageObject.isVideoSticker(sticker)) { + if (object instanceof TLRPC.Document && (MessageObject.isAnimatedStickerDocument(sticker, true) || MessageObject.isVideoSticker(sticker))) { if (svgThumb != null) { imageView.setImage(ImageLocation.getForDocument(sticker), filter, svgThumb, 0, set); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetNameCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetNameCell.java index 0a1ede267f..1a8ff3f10d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetNameCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetNameCell.java @@ -8,6 +8,8 @@ package org.telegram.ui.Cells; +import static org.telegram.messenger.AndroidUtilities.dp; + import android.content.Context; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; @@ -21,10 +23,13 @@ import android.view.View; import android.widget.FrameLayout; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.Emoji; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.R; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ActionBar.ThemeDescription; import org.telegram.ui.Components.ColorSpanUnderline; @@ -39,6 +44,7 @@ public class StickerSetNameCell extends FrameLayout { private TextView textView; private TextView urlTextView; + private TextView editView; private ImageView buttonView; private boolean empty; private boolean isEmoji; @@ -63,10 +69,14 @@ public StickerSetNameCell(Context context, boolean emoji, boolean supportRtl, Th LayoutParams lp; + LinearLayout layout = new LinearLayout(context); + layout.setOrientation(LinearLayout.HORIZONTAL); + layout.setGravity(Gravity.CENTER); + textView = new EmojiTextView(context); textView.setTextColor(getThemedColor(Theme.key_chat_emojiPanelStickerSetName)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); - textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + textView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); textView.setEllipsize(TextUtils.TruncateAt.END); textView.setSingleLine(true); if (emoji) { @@ -80,7 +90,23 @@ public StickerSetNameCell(Context context, boolean emoji, boolean supportRtl, Th } else { lp = LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, emoji ? 5 : 15, 5, emoji ? 15 : 25, 0); } - addView(textView, lp); + addView(layout, lp); + layout.addView(textView); + + editView = new TextView(context); + editView.setTextColor(getThemedColor(Theme.key_chat_emojiPanelStickerSetName)); + editView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11); + editView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + editView.setEllipsize(TextUtils.TruncateAt.END); + editView.setPadding(dp(6.33f), 0, dp(6.33f), 0); + editView.setBackground(Theme.createSimpleSelectorRoundRectDrawable(dp(9), + Theme.multAlpha(getThemedColor(Theme.key_chat_emojiPanelStickerSetName), .10f), + Theme.multAlpha(getThemedColor(Theme.key_chat_emojiPanelStickerSetName), .24f) + )); + editView.setGravity(Gravity.CENTER); + editView.setSingleLine(true); + layout.addView(editView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 5.33f, .66f, 0, 0)); + editView.setVisibility(View.GONE); urlTextView = new TextView(context); urlTextView.setTextColor(getThemedColor(Theme.key_chat_emojiPanelStickerSetName)); @@ -104,7 +130,7 @@ public StickerSetNameCell(Context context, boolean emoji, boolean supportRtl, Th } else { lp = LayoutHelper.createFrame(24, 24, Gravity.TOP | Gravity.RIGHT, 0, 0, isEmoji ? 0 : 10, 0); } - buttonView.setTranslationY(AndroidUtilities.dp(4)); + buttonView.setTranslationY(dp(4)); addView(buttonView, lp); } @@ -156,7 +182,7 @@ public void setText(CharSequence text, int resId, CharSequence iconAccDescr, int if (searchLength != 0) { updateTextSearchSpan(); } else { - textView.setText(text); + textView.setText(Emoji.replaceEmoji(text, textView.getPaint().getFontMetricsInt(), dp(14), false)); } if (resId != 0) { buttonView.setImageResource(resId); @@ -166,6 +192,13 @@ public void setText(CharSequence text, int resId, CharSequence iconAccDescr, int buttonView.setVisibility(INVISIBLE); } } + editView.setVisibility(View.GONE); + } + + public void setEdit(View.OnClickListener whenClickedEdit) { + editView.setVisibility(View.VISIBLE); + editView.setText(LocaleController.getString(R.string.EditPack)); + editView.setOnClickListener(whenClickedEdit); } private void updateTextSearchSpan() { @@ -175,7 +208,7 @@ private void updateTextSearchSpan() { builder.setSpan(new ForegroundColorSpan(getThemedColor(Theme.key_chat_emojiPanelStickerSetNameHighlight)), stickerSetNameSearchIndex, stickerSetNameSearchIndex + stickerSetNameSearchLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } catch (Exception ignore) { } - textView.setText(builder); + textView.setText(Emoji.replaceEmoji(builder, textView.getPaint().getFontMetricsInt(), dp(14), false)); } } @@ -194,14 +227,14 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (empty) { super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(1, MeasureSpec.EXACTLY)); } else { - super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(27), MeasureSpec.EXACTLY)); + super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(dp(27), MeasureSpec.EXACTLY)); } } @Override protected void measureChildWithMargins(View child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed) { if (child == urlTextView) { - widthUsed += textView.getMeasuredWidth() + AndroidUtilities.dp(16); + widthUsed += textView.getMeasuredWidth() + dp(16); } super.measureChildWithMargins(child, parentWidthMeasureSpec, widthUsed, parentHeightMeasureSpec, heightUsed); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCell.java index 4f434d6676..1afbbb8b86 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCell.java @@ -27,9 +27,12 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.LocaleController; +import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.SimpleTextView; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.AnimatedEmojiDrawable; import org.telegram.ui.Components.AnimatedTextView; +import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.RLottieDrawable; import org.telegram.ui.Components.RLottieImageView; @@ -61,6 +64,8 @@ public class TextCell extends FrameLayout { private float loadingProgress; private float drawLoadingProgress; + private AnimatedEmojiDrawable.SwapAnimatedEmojiDrawable emojiDrawable; + private int lastWidth; public TextCell(Context context) { @@ -209,6 +214,16 @@ public void setEnabled(boolean enabled) { } } + public void updateEmojiBounds() { + if (emojiDrawable == null) return; + emojiDrawable.setBounds( + getWidth() - emojiDrawable.getIntrinsicWidth() - AndroidUtilities.dp(18), + (getHeight() - emojiDrawable.getIntrinsicHeight()) / 2, + getWidth() - AndroidUtilities.dp(18), + (getHeight() + emojiDrawable.getIntrinsicHeight()) / 2 + ); + } + @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { int height = bottom - top; @@ -266,9 +281,18 @@ protected int processColor(int color) { public void updateColors() { int textKey = textView.getTag() instanceof Integer ? (int) textView.getTag() : Theme.key_windowBackgroundWhiteBlackText; - textView.setTextColor(processColor(Theme.getColor(textKey, resourcesProvider))); + int textColor = Theme.getColor(textKey, resourcesProvider); + if (textKey != Theme.key_dialogTextBlack && textKey != Theme.key_windowBackgroundWhiteBlackText) { + textColor = processColor(textColor); + } + textView.setTextColor(textColor); if (imageView.getTag() instanceof Integer) { - imageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor((int) imageView.getTag(), resourcesProvider), PorterDuff.Mode.MULTIPLY)); + int colorKey = (int) imageView.getTag(); + int color = Theme.getColor(colorKey, resourcesProvider); + if (colorKey != Theme.key_dialogIcon && colorKey != Theme.key_windowBackgroundWhiteGrayIcon) { + color = processColor(color); + } + imageView.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.MULTIPLY)); } subtitleView.setTextColor(processColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText, resourcesProvider))); valueTextView.setTextColor(processColor(Theme.getColor(Theme.key_windowBackgroundWhiteValueText, resourcesProvider))); @@ -276,12 +300,13 @@ public void updateColors() { } public void setColors(int icon, int text) { - textView.setTextColor(processColor(Theme.getColor(text, resourcesProvider))); + textView.setTextColor(Theme.getColor(text, resourcesProvider)); textView.setTag(text); if (icon >= 0) { imageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(icon, resourcesProvider), PorterDuff.Mode.MULTIPLY)); imageView.setTag(icon); } + updateColors(); } private CharSequence valueText; @@ -297,6 +322,9 @@ public void setText(CharSequence text, boolean divider) { valueImageView.setVisibility(GONE); needDivider = divider; setWillNotDraw(!needDivider); + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public void setLockLevel(boolean plus, int level) { @@ -327,6 +355,9 @@ public void setTextAndIcon(CharSequence text, int resId, boolean divider) { imageView.setPadding(0, dp(7), 0, 0); needDivider = divider; setWillNotDraw(!needDivider); + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public void setTextAndColorfulIcon(CharSequence text, int resId, int color, boolean divider) { @@ -340,6 +371,9 @@ public void setTextAndColorfulIcon(CharSequence text, int resId, int color, bool valueImageView.setVisibility(GONE); needDivider = divider; setWillNotDraw(!needDivider); + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public void setTextAndIcon(CharSequence text, Drawable drawable, boolean divider) { @@ -360,6 +394,9 @@ public void setTextAndIcon(CharSequence text, Drawable drawable, boolean divider imageView.setPadding(0, dp(6), 0, 0); needDivider = divider; setWillNotDraw(!needDivider); + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public void setOffsetFromImage(int value) { @@ -389,6 +426,9 @@ public void setTextAndValue(CharSequence text, CharSequence value, boolean anima if (checkBox != null) { checkBox.setVisibility(GONE); } + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public void setValue(String value, boolean animated) { @@ -410,6 +450,9 @@ public void setTextAndValueAndColorfulIcon(String text, CharSequence value, bool if (checkBox != null) { checkBox.setVisibility(GONE); } + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public void setTextAndSpoilersValueAndIcon(String text, CharSequence value, int resId, boolean divider) { @@ -431,6 +474,9 @@ public void setTextAndSpoilersValueAndIcon(String text, CharSequence value, int if (checkBox != null) { checkBox.setVisibility(GONE); } + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public void setTextAndSpoilersValueAndColorfulIcon(String text, CharSequence value, int resId, int color, boolean divider) { @@ -448,6 +494,9 @@ public void setTextAndSpoilersValueAndColorfulIcon(String text, CharSequence val if (checkBox != null) { checkBox.setVisibility(GONE); } + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public void setTextAndValueAndIcon(CharSequence text, CharSequence value, int resId, boolean divider) { @@ -473,6 +522,9 @@ public void setTextAndValueAndIcon(CharSequence text, CharSequence value, boolea if (checkBox != null) { checkBox.setVisibility(GONE); } + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public static CharSequence applyNewSpan(CharSequence str) { @@ -507,6 +559,9 @@ public void setTextAndCheck(CharSequence text, boolean checked, boolean divider) checkBox.setChecked(checked, false); } setWillNotDraw(!needDivider); + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public void setTextAndCheckAndIcon(CharSequence text, boolean checked, int resId, boolean divider) { @@ -526,6 +581,9 @@ public void setTextAndCheckAndIcon(CharSequence text, boolean checked, int resId imageView.setImageResource(resId); needDivider = divider; setWillNotDraw(!needDivider); + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public void setTextAndCheckAndIcon(CharSequence text, boolean checked, Drawable resDrawable, boolean divider) { @@ -545,6 +603,9 @@ public void setTextAndCheckAndIcon(CharSequence text, boolean checked, Drawable imageView.setImageDrawable(resDrawable); needDivider = divider; setWillNotDraw(!needDivider); + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } } public void setTextAndValueDrawable(CharSequence text, Drawable drawable, boolean divider) { @@ -564,6 +625,39 @@ public void setTextAndValueDrawable(CharSequence text, Drawable drawable, boolea if (checkBox != null) { checkBox.setVisibility(GONE); } + if (emojiDrawable != null) { + emojiDrawable.set((Drawable) null, false); + } + } + + public void setTextAndSticker(CharSequence text, TLRPC.Document document, boolean divider) { + imageLeft = 21; + offsetFromImage = getOffsetFromImage(false); + textView.setText(text); + textView.setRightDrawable(null); + valueTextView.setText(valueText = null, false); + valueImageView.setVisibility(GONE); + valueTextView.setVisibility(GONE); + valueSpoilersTextView.setVisibility(GONE); + imageView.setVisibility(GONE); + imageView.setPadding(0, dp(7), 0, 0); + needDivider = divider; + setWillNotDraw(!needDivider); + if (checkBox != null) { + checkBox.setVisibility(GONE); + } + setValueSticker(document); + } + + public void setValueSticker(TLRPC.Document document) { + if (emojiDrawable == null) { + emojiDrawable = new AnimatedEmojiDrawable.SwapAnimatedEmojiDrawable(this, dp(30)); + if (attached) { + emojiDrawable.attach(); + } + } + emojiDrawable.set(document, AnimatedEmojiDrawable.CACHE_TYPE_MESSAGES_LARGE, true); + invalidate(); } protected int getOffsetFromImage(boolean colourful) { @@ -663,12 +757,18 @@ public void showEnabledAlpha(boolean show) { protected void onAttachedToWindow() { super.onAttachedToWindow(); attached = true; + if (emojiDrawable != null) { + emojiDrawable.attach(); + } } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); attached = false; + if (emojiDrawable != null) { + emojiDrawable.detach(); + } } public void setDrawLoading(boolean drawLoading, int size, boolean animated) { @@ -739,9 +839,13 @@ protected void dispatchDraw(Canvas canvas) { canvas.drawRoundRect(AndroidUtilities.rectTmp, dp(3), dp(3), paint); invalidate(); } - valueTextView.setAlpha(1f - drawLoadingProgress); - valueSpoilersTextView.setAlpha(1f - drawLoadingProgress); + valueTextView.setAlpha((1f - drawLoadingProgress) * (emojiDrawable == null ? 1f : 1f - emojiDrawable.isNotEmpty())); + valueSpoilersTextView.setAlpha((1f - drawLoadingProgress) * (emojiDrawable == null ? 1f : 1f - emojiDrawable.isNotEmpty())); super.dispatchDraw(canvas); + if (emojiDrawable != null) { + updateEmojiBounds(); + emojiDrawable.draw(canvas); + } } public void setSubtitle(CharSequence charSequence) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCheckCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCheckCell.java index d309d1cba1..9ab3317964 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCheckCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCheckCell.java @@ -35,6 +35,7 @@ import org.telegram.messenger.FileLog; import org.telegram.messenger.LocaleController; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.AvatarSpan; import org.telegram.ui.Components.AnimationProperties; import org.telegram.ui.Components.CheckBoxSquare; import org.telegram.ui.Components.CubicBezierInterpolator; @@ -164,6 +165,7 @@ public void setDivider(boolean divider) { } public void setTextAndCheck(CharSequence text, boolean checked, boolean divider) { + AvatarSpan.checkSpansParent(text, this); textView.setText(text); isMultiline = false; if (checkBox != null) { @@ -227,6 +229,7 @@ public void setPressed(boolean pressed) { } public void setTextAndValueAndCheck(String text, String value, boolean checked, boolean multiline, boolean divider) { + AvatarSpan.checkSpansParent(text, this); textView.setText(text); valueTextView.setText(value); if (checkBox != null) { @@ -260,6 +263,7 @@ public void setTextAndValueAndCheck(String text, String value, boolean checked, } public void setTextAndValue(String text, String value, boolean multiline, boolean divider) { + AvatarSpan.checkSpansParent(text, this); textView.setText(text); valueTextView.setText(value); checkBox.setVisibility(View.GONE); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextDetailCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextDetailCell.java index 1162db5136..1df5443184 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextDetailCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextDetailCell.java @@ -8,11 +8,15 @@ package org.telegram.ui.Cells; +import static org.telegram.messenger.AndroidUtilities.dp; + import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.drawable.Drawable; +import android.text.Spannable; import android.text.TextUtils; +import android.text.style.ClickableSpan; import android.util.TypedValue; import android.view.Gravity; import android.view.HapticFeedbackConstants; @@ -28,6 +32,7 @@ import org.telegram.messenger.LocaleController; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Components.EmojiTextView; +import org.telegram.ui.Components.AnimatedEmojiSpan; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.LinkSpanDrawable; @@ -35,7 +40,7 @@ public class TextDetailCell extends FrameLayout { - private final TextView textView; + public final LinkSpanDrawable.LinksTextView textView; public final LinkSpanDrawable.LinksTextView valueTextView; private final TextView showMoreTextView = null; private final ImageView imageView; @@ -57,8 +62,25 @@ public TextDetailCell(Context context, Theme.ResourcesProvider resourcesProvider super(context); this.resourcesProvider = resourcesProvider; - textView = new EmojiTextView(context); - textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + textView = new LinkSpanDrawable.LinksTextView(context, resourcesProvider) { + @Override + protected int processColor(int color) { + return TextDetailCell.this.processColor(color); + } + + @Override + public int overrideColor() { + return processColor(super.overrideColor()); + } + }; + textView.setOnLinkLongPressListener(span -> { + if (span != null) { + try { + performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); + } catch (Exception ignore) {}; + span.onClick(textView); + } + }); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); textView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); textView.setLines(1); @@ -66,9 +88,19 @@ public TextDetailCell(Context context, Theme.ResourcesProvider resourcesProvider textView.setSingleLine(true); textView.setEllipsize(TextUtils.TruncateAt.END); textView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO); - addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, 23, 8, 23, 0)); + textView.setPadding(dp(6), dp(2), dp(6), dp(5)); + addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, 23 - 6, 8 - 2, 23 - 6, 0)); - valueTextView = new LinkSpanDrawable.LinksTextView(context); + valueTextView = new LinkSpanDrawable.LinksTextView(context, resourcesProvider) { + @Override + protected int processColor(int color) { + return TextDetailCell.this.processColor(color); + } + @Override + public int overrideColor() { + return processColor(super.overrideColor()); + } + }; valueTextView.setOnLinkLongPressListener(span -> { if (span != null) { try { @@ -79,17 +111,19 @@ public TextDetailCell(Context context, Theme.ResourcesProvider resourcesProvider } }); if (this.multiline = multiline) { - setMinimumHeight(AndroidUtilities.dp(60)); + setMinimumHeight(dp(60)); } else { valueTextView.setLines(1); valueTextView.setSingleLine(true); } - valueTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2, resourcesProvider)); valueTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); valueTextView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); valueTextView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO); valueTextView.setEllipsize(TextUtils.TruncateAt.END); - addView(valueTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, 23, 33, 23, 10)); + valueTextView.setPadding(0, dp(1), 0, dp(6)); + addView(valueTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, 23, 33 - 1, 23, 10 - 6)); + + updateColors(); imageView = new ImageView(context); imageView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO); @@ -97,9 +131,16 @@ public TextDetailCell(Context context, Theme.ResourcesProvider resourcesProvider addView(imageView, LayoutHelper.createFrameRelatively(48, 48, Gravity.END | Gravity.CENTER_VERTICAL, 0, 0, 12, 0)); } + protected int processColor(int color) { + return color; + } + @Override public boolean onTouchEvent(MotionEvent ev) { boolean hit = valueTextView.hit((int) ev.getX() - valueTextView.getLeft(), (int) ev.getY() - valueTextView.getTop()) != null; + if (!hit) { + hit = textView.hit((int) ev.getX() - textView.getLeft(), (int) ev.getY() - textView.getTop()) != null; + } if (hit) { return true; } @@ -110,7 +151,7 @@ public boolean onTouchEvent(MotionEvent ev) { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure( MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), - multiline ? heightMeasureSpec : MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(60) + (needDivider ? 1 : 0), MeasureSpec.EXACTLY) + multiline ? heightMeasureSpec : MeasureSpec.makeMeasureSpec(dp(60) + (needDivider ? 1 : 0), MeasureSpec.EXACTLY) ); } @@ -126,7 +167,7 @@ public void setImage(Drawable drawable) { } public void setImage(Drawable drawable, CharSequence imageContentDescription) { - ((MarginLayoutParams) valueTextView.getLayoutParams()).rightMargin = !LocaleController.isRTL && drawable != null ? AndroidUtilities.dp(28 + 12 + 12 + 6) : AndroidUtilities.dp(23); + ((MarginLayoutParams) valueTextView.getLayoutParams()).rightMargin = !LocaleController.isRTL && drawable != null ? dp(28 + 12 + 12 + 6) : dp(23); imageView.setImageDrawable(drawable); imageView.setFocusable(drawable != null); imageView.setContentDescription(imageContentDescription); @@ -134,10 +175,10 @@ public void setImage(Drawable drawable, CharSequence imageContentDescription) { imageView.setBackground(null); imageView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO); } else { - imageView.setBackground(Theme.createSimpleSelectorCircleDrawable(AndroidUtilities.dp(48), Color.TRANSPARENT, Theme.getColor(Theme.key_listSelector, resourcesProvider))); + imageView.setBackground(Theme.createSimpleSelectorCircleDrawable(dp(48), Color.TRANSPARENT, Theme.getColor(Theme.key_listSelector, resourcesProvider))); imageView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES); } - int margin = AndroidUtilities.dp(23) + (drawable == null ? 0 : AndroidUtilities.dp(48)); + int margin = dp(23) + (drawable == null ? 0 : dp(48)); if (LocaleController.isRTL) { ((MarginLayoutParams) textView.getLayoutParams()).leftMargin = margin; } else { @@ -146,6 +187,14 @@ public void setImage(Drawable drawable, CharSequence imageContentDescription) { textView.requestLayout(); } + public boolean hasImage() { + return imageView.getDrawable() != null; + } + + public ImageView getImageView() { + return imageView; + } + public void setImageClickListener(View.OnClickListener clickListener) { imageView.setOnClickListener(clickListener); if (clickListener == null) { @@ -154,7 +203,7 @@ public void setImageClickListener(View.OnClickListener clickListener) { } public void setTextWithEmojiAndValue(CharSequence text, CharSequence value, boolean divider) { - textView.setText(Emoji.replaceEmoji(text, textView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(14), false)); + textView.setText(Emoji.replaceEmoji(text, textView.getPaint().getFontMetricsInt(), dp(14), false)); valueTextView.setText(value); needDivider = divider; setWillNotDraw(!divider); @@ -174,7 +223,9 @@ public void invalidate() { protected void onDraw(Canvas canvas) { if (needDivider) { canvas.drawLine( - 0, getMeasuredHeight() - 1, getMeasuredWidth(), + LocaleController.isRTL ? 0 : dp(20), + getMeasuredHeight() - 1, + getMeasuredWidth() - (LocaleController.isRTL ? dp(20) : 0), getMeasuredHeight() - 1, Theme.dividerPaint ); @@ -190,4 +241,13 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setText((contentDescriptionValueFirst ? valueText : text) + ": " + (contentDescriptionValueFirst ? text : valueText)); } } + + public void updateColors() { + textView.setLinkTextColor(processColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider))); + textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + textView.invalidate(); + valueTextView.setLinkTextColor(processColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider))); + valueTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2, resourcesProvider)); + valueTextView.invalidate(); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextInfoPrivacyCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextInfoPrivacyCell.java index b11c1f6ebf..f45fbd1749 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextInfoPrivacyCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextInfoPrivacyCell.java @@ -140,6 +140,10 @@ public void setFixedSize(int size) { fixedSize = size; } + public CharSequence getText() { + return textView.getText(); + } + public void setText(CharSequence text) { if (!TextUtils.equals(text, this.text)) { this.text = text; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextRightIconCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextRightIconCell.java new file mode 100644 index 0000000000..c0a3b7a70b --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextRightIconCell.java @@ -0,0 +1,60 @@ +package org.telegram.ui.Cells; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.view.Gravity; +import android.widget.FrameLayout; +import android.widget.ImageView; + +import org.telegram.ui.ActionBar.SimpleTextView; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.LayoutHelper; + +public class TextRightIconCell extends FrameLayout { + private final ImageView ivIcon; + private final SimpleTextView textView; + private final Theme.ResourcesProvider resourcesProvider; + private boolean needDivider; + + public TextRightIconCell(Context context, Theme.ResourcesProvider resourcesProvider) { + super(context); + this.resourcesProvider = resourcesProvider; + + textView = new SimpleTextView(context); + textView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); + textView.setTextSize(16); + textView.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); + addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.CENTER_VERTICAL, 22, 0, 56, 0)); + + ivIcon = new ImageView(context); + ivIcon.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText5, resourcesProvider), PorterDuff.Mode.SRC_IN)); + addView(ivIcon, LayoutHelper.createFrame(24, 24, Gravity.CENTER_VERTICAL | Gravity.END, 0, 0, 16, 0)); + setBackground(Theme.AdaptiveRipple.filledRectByKey(Theme.key_dialogBackground)); + } + + public void setTextAndIcon(CharSequence text, int iconRes) { + textView.setText(text); + ivIcon.setImageResource(iconRes); + } + + public void setDivider(boolean needDivider) { + this.needDivider = needDivider; + } + + @Override + protected void dispatchDraw(Canvas canvas) { + super.dispatchDraw(canvas); + if (needDivider) { + Paint paint = resourcesProvider != null ? resourcesProvider.getPaint(Theme.key_paint_divider) : null; + if (paint == null) { + paint = Theme.dividerPaint; + } + canvas.drawLine(dp(22), getMeasuredHeight() - 1, getMeasuredWidth(), getMeasuredHeight() - 1, paint); + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java index 1ba6eeaa43..e5b43a9d46 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java @@ -948,9 +948,7 @@ public boolean onTouchEvent(MotionEvent event) { if (viewChanged || layoutOld != layoutNew || newSelectionLine != layoutNew.getLineForOffset(selectionStart) && newSelectionLine == nextWhitespaceLine) { jumpToLine(newSelection, nextWhitespace, viewChanged, layoutBlock.yOffset, oldYoffset, oldSelectedView); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 && !NekoConfig.disableVibration.Bool()) { - textSelectionOverlay.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } + AndroidUtilities.vibrateCursor(textSelectionOverlay); TextSelectionHelper.this.invalidate(); } else if (Layout.DIR_RIGHT_TO_LEFT == layoutNew.getParagraphDirection(layoutNew.getLineForOffset(newSelection)) || layoutNew.isRtlCharAt(newSelection) || nextWhitespaceLine != currentLine || newSelectionLine != nextWhitespaceLine) { selectionStart = newSelection; @@ -960,9 +958,7 @@ public boolean onTouchEvent(MotionEvent event) { selectionStart = k; movingHandleStart = false; } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 && !NekoConfig.disableVibration.Bool()) { - textSelectionOverlay.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } + AndroidUtilities.vibrateCursor(textSelectionOverlay); TextSelectionHelper.this.invalidate(); } else { int previousWhitespace = newSelection; @@ -1011,9 +1007,7 @@ public boolean onTouchEvent(MotionEvent event) { selectionStart = k; movingHandleStart = false; } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 && !NekoConfig.disableVibration.Bool()) { - textSelectionOverlay.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } + AndroidUtilities.vibrateCursor(textSelectionOverlay); TextSelectionHelper.this.invalidate(); } } @@ -1049,9 +1043,7 @@ public boolean onTouchEvent(MotionEvent event) { if (viewChanged || layoutOld != layoutNew || newSelectionLine != layoutNew.getLineForOffset(selectionEnd) && newSelectionLine == nextWhitespaceLine) { jumpToLine(newSelection, nextWhitespace, viewChanged, layoutBlock.yOffset, oldYoffset, oldSelectedView); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 && !NekoConfig.disableVibration.Bool()) { - textSelectionOverlay.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } + AndroidUtilities.vibrateCursor(textSelectionOverlay); TextSelectionHelper.this.invalidate(); } else if (Layout.DIR_RIGHT_TO_LEFT == layoutNew.getParagraphDirection(layoutNew.getLineForOffset(newSelection)) || layoutNew.isRtlCharAt(newSelection) || currentLine != nextWhitespaceLine || newSelectionLine != nextWhitespaceLine) { selectionEnd = newSelection; @@ -1061,9 +1053,7 @@ public boolean onTouchEvent(MotionEvent event) { selectionStart = k; movingHandleStart = true; } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 && !NekoConfig.disableVibration.Bool()) { - textSelectionOverlay.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } + AndroidUtilities.vibrateCursor(textSelectionOverlay); TextSelectionHelper.this.invalidate(); } else { int previousWhitespace = newSelection; @@ -1093,9 +1083,7 @@ public boolean onTouchEvent(MotionEvent event) { selectionStart = k; movingHandleStart = true; } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 && !NekoConfig.disableVibration.Bool()) { - textSelectionOverlay.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } + AndroidUtilities.vibrateCursor(textSelectionOverlay); TextSelectionHelper.this.invalidate(); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/UnconfirmedAuthHintCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/UnconfirmedAuthHintCell.java index 26e3da62e8..48a3b8928d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/UnconfirmedAuthHintCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/UnconfirmedAuthHintCell.java @@ -167,7 +167,8 @@ public void set(final BaseFragment fragment, int currentAccount) { noButton.setOnClickListener(v -> { noButton.setLoading(true); MessagesController.getInstance(currentAccount).getUnconfirmedAuthController().deny(auths, success -> { - showLoginPreventedSheet(success); + if (LaunchActivity.isActive) + showLoginPreventedSheet(success); noButton.setLoading(false); MessagesController.getInstance(currentAccount).getUnconfirmedAuthController().cleanup(); }); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell.java index 615e38d6e6..0a93dc2101 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell.java @@ -17,6 +17,7 @@ import android.util.TypedValue; import android.view.Gravity; import android.view.MotionEvent; +import android.view.View; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.FrameLayout; import android.widget.ImageView; @@ -64,6 +65,7 @@ public class UserCell extends FrameLayout implements NotificationCenter.Notifica private ImageView imageView; private CheckBox2 checkBox; private CheckBoxSquare checkBoxBig; + private ImageView checkBox3; private TextView adminTextView; private TextView addButton; private Drawable premiumDrawable; @@ -203,6 +205,13 @@ public boolean onTouchEvent(MotionEvent event) { checkBox.setDrawBackgroundAsArc(3); checkBox.setColor(-1, Theme.key_windowBackgroundWhite, Theme.key_checkboxCheck); addView(checkBox, LayoutHelper.createFrame(24, 24, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, LocaleController.isRTL ? 0 : 37 + padding, 36, LocaleController.isRTL ? 37 + padding : 0, 0)); + } else if (checkbox == 3) { + checkBox3 = new ImageView(context); + checkBox3.setScaleType(ImageView.ScaleType.CENTER); + checkBox3.setImageResource(R.drawable.account_check); + checkBox3.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider), PorterDuff.Mode.MULTIPLY)); + checkBox3.setVisibility(View.GONE); + addView(checkBox3, LayoutHelper.createFrame(24, 24, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL, LocaleController.isRTL ? 10 + padding : 0, 0, LocaleController.isRTL ? 0 : 10 + padding, 0)); } if (admin) { @@ -411,6 +420,8 @@ public void setChecked(boolean checked, boolean animated) { checkBoxBig.setVisibility(VISIBLE); } checkBoxBig.setChecked(checked, animated); + } else if (checkBox3 != null) { + checkBox3.setVisibility(checked ? View.VISIBLE : View.GONE); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChannelMonetizationLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/ChannelMonetizationLayout.java new file mode 100644 index 0000000000..50ae26a72f --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChannelMonetizationLayout.java @@ -0,0 +1,1161 @@ +package org.telegram.ui; + +import static org.telegram.messenger.AndroidUtilities.REPLACING_TAG_TYPE_LINK_NBSP; +import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.AndroidUtilities.dpf2; +import static org.telegram.messenger.AndroidUtilities.makeBlurBitmap; +import static org.telegram.messenger.LocaleController.formatPluralString; +import static org.telegram.messenger.LocaleController.formatString; +import static org.telegram.messenger.LocaleController.getString; + +import android.app.Activity; +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.drawable.Drawable; +import android.text.Editable; +import android.text.InputType; +import android.text.SpannableString; +import android.text.SpannableStringBuilder; +import android.text.Spanned; +import android.text.TextPaint; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.text.style.DynamicDrawableSpan; +import android.text.style.RelativeSizeSpan; +import android.util.Base64; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import org.telegram.messenger.AccountInstance; +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BillingController; +import org.telegram.messenger.BuildVars; +import org.telegram.messenger.ChatObject; +import org.telegram.messenger.Emoji; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.messenger.UserConfig; +import org.telegram.messenger.UserObject; +import org.telegram.messenger.browser.Browser; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.TLObject; +import org.telegram.tgnet.TLRPC; +import org.telegram.tgnet.tl.TL_stats; +import org.telegram.tgnet.tl.TL_stories; +import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.BottomSheet; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.AlertsCreator; +import org.telegram.ui.Components.AnimatedEmojiDrawable; +import org.telegram.ui.Components.AnimatedEmojiSpan; +import org.telegram.ui.Components.AnimatedTextView; +import org.telegram.ui.Components.AvatarDrawable; +import org.telegram.ui.Components.BackupImageView; +import org.telegram.ui.Components.BulletinFactory; +import org.telegram.ui.Components.CircularProgressDrawable; +import org.telegram.ui.Components.ColoredImageSpan; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.EditTextBoldCursor; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.LinkSpanDrawable; +import org.telegram.ui.Components.OutlineTextContainerView; +import org.telegram.ui.Components.Premium.LimitReachedBottomSheet; +import org.telegram.ui.Components.RLottieImageView; +import org.telegram.ui.Components.UItem; +import org.telegram.ui.Components.UniversalAdapter; +import org.telegram.ui.Components.UniversalRecyclerView; +import org.telegram.ui.Stories.recorder.ButtonWithCounterView; +import org.telegram.ui.Stories.recorder.HintView2; + +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Locale; + +public class ChannelMonetizationLayout extends FrameLayout { + + private final BaseFragment fragment; + private final Theme.ResourcesProvider resourcesProvider; + private final int currentAccount; + private final long dialogId; + private TL_stories.TL_premium_boostsStatus boostsStatus; + private int currentBoostLevel; + + private final CharSequence titleInfo; + private final CharSequence balanceInfo; + + private final LinearLayout balanceLayout; + private final RelativeSizeSpan balanceTitleSizeSpan; + private final AnimatedTextView balanceTitle; + private final AnimatedTextView balanceSubtitle; + private final ButtonWithCounterView balanceButton; + private int shakeDp = 4; + + private boolean transfering; + + private final UniversalRecyclerView listView; + private final FrameLayout progress; + + private DecimalFormat formatter; + + public ChannelMonetizationLayout( + Context context, + BaseFragment fragment, + int currentAccount, + long dialogId, + Theme.ResourcesProvider resourcesProvider + ) { + super(context); + + DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US); + symbols.setDecimalSeparator('.'); + formatter = new DecimalFormat("#.##", symbols); + formatter.setMinimumFractionDigits(2); + formatter.setMaximumFractionDigits(12); + formatter.setGroupingUsed(false); + + this.fragment = fragment; + this.resourcesProvider = resourcesProvider; + + this.currentAccount = currentAccount; + this.dialogId = dialogId; + initLevel(); + loadTransactions(); + + titleInfo = AndroidUtilities.replaceArrows(AndroidUtilities.replaceSingleTag(formatString(R.string.MonetizationInfo, 50), -1, REPLACING_TAG_TYPE_LINK_NBSP, () -> { + showLearnSheet(); + }, resourcesProvider), true); + balanceInfo = AndroidUtilities.replaceArrows(AndroidUtilities.replaceSingleTag(getString(MessagesController.getInstance(currentAccount).channelRevenueWithdrawalEnabled ? R.string.MonetizationBalanceInfo : R.string.MonetizationBalanceInfoNotAvailable), -1, REPLACING_TAG_TYPE_LINK_NBSP, () -> { + showLearnSheet(); + }), true); + + setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray, resourcesProvider)); + + balanceLayout = new LinearLayout(context) { + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure( + MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), + heightMeasureSpec + ); + } + }; + balanceLayout.setOrientation(LinearLayout.VERTICAL); + balanceLayout.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite, resourcesProvider)); + balanceLayout.setPadding(0, 0, 0, dp(17)); + + balanceTitle = new AnimatedTextView(context, false, true, true); + balanceTitle.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + balanceTitle.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + balanceTitle.setTextSize(dp(32)); + balanceTitle.setGravity(Gravity.CENTER); + balanceTitleSizeSpan = new RelativeSizeSpan(65f / 96f); + balanceLayout.addView(balanceTitle, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 38, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 22, 15, 22, 0)); + + balanceSubtitle = new AnimatedTextView(context, true, true, true); + balanceSubtitle.setGravity(Gravity.CENTER); + balanceSubtitle.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); + balanceSubtitle.setTextSize(dp(14)); + balanceLayout.addView(balanceSubtitle, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 17, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 22, 4, 22, 0)); + + final CircularProgressDrawable circularProgressDrawable = new CircularProgressDrawable(dp(15), dpf2(2), Theme.getColor(Theme.key_featuredStickers_buttonText, resourcesProvider)) { + @Override + public int getIntrinsicWidth() { + return dp(24); + } + @Override + public int getIntrinsicHeight() { + return dp(24); + } + }; + circularProgressDrawable.setBounds(0, 0, dp(24), dp(24)); + + balanceButton = new ButtonWithCounterView(context, resourcesProvider) { + @Override + protected boolean verifyDrawable(@NonNull Drawable who) { + return who == circularProgressDrawable || super.verifyDrawable(who); + } + }; + balanceButton.setEnabled(MessagesController.getInstance(currentAccount).channelRevenueWithdrawalEnabled); + circularProgressDrawable.setCallback(balanceButton); + balanceButton.setText(getString(R.string.MonetizationWithdraw), false); + balanceButton.setVisibility(View.GONE); + balanceButton.setOnClickListener(v -> { + if (!v.isEnabled()) { + return; + } + TwoStepVerificationActivity passwordFragment = new TwoStepVerificationActivity(); + passwordFragment.setDelegate(1, password -> initWithdraw(password, passwordFragment)); + fragment.presentFragment(passwordFragment); + }); + balanceLayout.addView(balanceButton, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.TOP | Gravity.FILL_HORIZONTAL, 18, 13, 18, 0)); + + listView = new UniversalRecyclerView(fragment, this::fillItems, this::onClick, this::onLongClick); + addView(listView); + + LinearLayout progressLayout = new LinearLayout(context); + progressLayout.setOrientation(LinearLayout.VERTICAL); + + progress = new FrameLayout(context); + progress.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite, resourcesProvider)); + progress.addView(progressLayout, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); + + RLottieImageView imageView = new RLottieImageView(context); + imageView.setAutoRepeat(true); + imageView.setAnimation(R.raw.statistic_preload, 120, 120); + imageView.playAnimation(); + + TextView loadingTitle = new TextView(context); + loadingTitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); + loadingTitle.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + loadingTitle.setTextColor(Theme.getColor(Theme.key_player_actionBarTitle)); + loadingTitle.setTag(Theme.key_player_actionBarTitle); + loadingTitle.setText(getString("LoadingStats", R.string.LoadingStats)); + loadingTitle.setGravity(Gravity.CENTER_HORIZONTAL); + + TextView loadingSubtitle = new TextView(context); + loadingSubtitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); + loadingSubtitle.setTextColor(Theme.getColor(Theme.key_player_actionBarSubtitle)); + loadingSubtitle.setTag(Theme.key_player_actionBarSubtitle); + loadingSubtitle.setText(getString("LoadingStatsDescription", R.string.LoadingStatsDescription)); + loadingSubtitle.setGravity(Gravity.CENTER_HORIZONTAL); + + progressLayout.addView(imageView, LayoutHelper.createLinear(120, 120, Gravity.CENTER_HORIZONTAL, 0, 0, 0, 20)); + progressLayout.addView(loadingTitle, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, 0, 0, 10)); + progressLayout.addView(loadingSubtitle, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL)); + + addView(progress, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.FILL)); + } + + private void initWithdraw(TLRPC.InputCheckPasswordSRP password, TwoStepVerificationActivity passwordFragment) { + if (fragment == null) return; + Activity parentActivity = fragment.getParentActivity(); + TLRPC.User currentUser = UserConfig.getInstance(currentAccount).getCurrentUser(); + if (parentActivity == null || currentUser == null) return; + + TL_stats.TL_getBroadcastRevenueWithdrawalUrl req = new TL_stats.TL_getBroadcastRevenueWithdrawalUrl(); + req.channel = MessagesController.getInstance(currentAccount).getInputChannel(-dialogId); + req.password = password != null ? password : new TLRPC.TL_inputCheckPasswordEmpty(); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (error != null) { + if ("PASSWORD_MISSING".equals(error.text) || error.text.startsWith("PASSWORD_TOO_FRESH_") || error.text.startsWith("SESSION_TOO_FRESH_")) { + if (passwordFragment != null) { + passwordFragment.needHideProgress(); + } + AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity); + builder.setTitle(LocaleController.getString("EditAdminTransferAlertTitle", R.string.EditAdminTransferAlertTitle)); + + LinearLayout linearLayout = new LinearLayout(parentActivity); + linearLayout.setPadding(AndroidUtilities.dp(24), AndroidUtilities.dp(2), AndroidUtilities.dp(24), 0); + linearLayout.setOrientation(LinearLayout.VERTICAL); + builder.setView(linearLayout); + + TextView messageTextView = new TextView(parentActivity); + messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); + messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.WithdrawChannelAlertText))); + linearLayout.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + + LinearLayout linearLayout2 = new LinearLayout(parentActivity); + linearLayout2.setOrientation(LinearLayout.HORIZONTAL); + linearLayout.addView(linearLayout2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 11, 0, 0)); + + ImageView dotImageView = new ImageView(parentActivity); + dotImageView.setImageResource(R.drawable.list_circle); + dotImageView.setPadding(LocaleController.isRTL ? AndroidUtilities.dp(11) : 0, AndroidUtilities.dp(9), LocaleController.isRTL ? 0 : AndroidUtilities.dp(11), 0); + dotImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogTextBlack), PorterDuff.Mode.MULTIPLY)); + + messageTextView = new TextView(parentActivity); + messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); + messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText1", R.string.EditAdminTransferAlertText1))); + if (LocaleController.isRTL) { + linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT)); + } else { + linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); + linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + } + + linearLayout2 = new LinearLayout(parentActivity); + linearLayout2.setOrientation(LinearLayout.HORIZONTAL); + linearLayout.addView(linearLayout2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 11, 0, 0)); + + dotImageView = new ImageView(parentActivity); + dotImageView.setImageResource(R.drawable.list_circle); + dotImageView.setPadding(LocaleController.isRTL ? AndroidUtilities.dp(11) : 0, AndroidUtilities.dp(9), LocaleController.isRTL ? 0 : AndroidUtilities.dp(11), 0); + dotImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogTextBlack), PorterDuff.Mode.MULTIPLY)); + + messageTextView = new TextView(parentActivity); + messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); + messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText2", R.string.EditAdminTransferAlertText2))); + if (LocaleController.isRTL) { + linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT)); + } else { + linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); + linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + } + + if ("PASSWORD_MISSING".equals(error.text)) { + builder.setPositiveButton(LocaleController.getString("EditAdminTransferSetPassword", R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> fragment.presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, null))); + builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + } else { + messageTextView = new TextView(parentActivity); + messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); + messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); + messageTextView.setText(LocaleController.getString("EditAdminTransferAlertText3", R.string.EditAdminTransferAlertText3)); + linearLayout.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 11, 0, 0)); + + builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + } + if (passwordFragment != null) { + passwordFragment.showDialog(builder.create()); + } else { + fragment.showDialog(builder.create()); + } + } else if ("SRP_ID_INVALID".equals(error.text)) { + TLRPC.TL_account_getPassword getPasswordReq = new TLRPC.TL_account_getPassword(); + ConnectionsManager.getInstance(currentAccount).sendRequest(getPasswordReq, (response2, error2) -> AndroidUtilities.runOnUIThread(() -> { + if (error2 == null) { + TLRPC.account_Password currentPassword = (TLRPC.account_Password) response2; + passwordFragment.setCurrentPasswordInfo(null, currentPassword); + TwoStepVerificationActivity.initPasswordNewAlgo(currentPassword); + initWithdraw(passwordFragment.getNewSrpPassword(), passwordFragment); + } + }), ConnectionsManager.RequestFlagWithoutLogin); + } else { + if (passwordFragment != null) { + passwordFragment.needHideProgress(); + passwordFragment.finishFragment(); + } + BulletinFactory.showError(error); + } + } else { + passwordFragment.needHideProgress(); + passwordFragment.finishFragment(); + if (response instanceof TL_stats.TL_broadcastRevenueWithdrawalUrl) { + Browser.openUrl(getContext(), ((TL_stats.TL_broadcastRevenueWithdrawalUrl) response).url); + } + } + })); + } + + private void setBalance(long crypto_amount, long amount) { + if (formatter == null) { + DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US); + symbols.setDecimalSeparator('.'); + formatter = new DecimalFormat("#.##", symbols); + formatter.setMinimumFractionDigits(2); + formatter.setMaximumFractionDigits(6); + formatter.setGroupingUsed(false); + } + formatter.setMaximumFractionDigits(crypto_amount / 1_000_000_000.0 > 1.5 ? 2 : 6); + SpannableStringBuilder ssb = new SpannableStringBuilder(replaceTON("TON " + formatter.format(crypto_amount / 1_000_000_000.0), balanceTitle.getPaint(), .9f, true)); + int index = TextUtils.indexOf(ssb, "."); + if (index >= 0) { + ssb.setSpan(balanceTitleSizeSpan, index, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + balanceTitle.setText(ssb); + balanceSubtitle.setText("~" + BillingController.getInstance().formatCurrency(amount, "USD")); + } + + private void initLevel() { + TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-dialogId); + if (chat != null) { + currentBoostLevel = chat.level; + } + MessagesController.getInstance(currentAccount).getBoostsController().getBoostsStats(dialogId, boostsStatus -> AndroidUtilities.runOnUIThread(() -> { + this.boostsStatus = boostsStatus; + if (boostsStatus != null) { + currentBoostLevel = boostsStatus.level; + } + if (listView != null && listView.adapter != null) { + listView.adapter.update(true); + } + })); + + TLObject req; + if (ChatObject.isMegagroup(chat)) { + return; + } else { + TL_stats.TL_getBroadcastRevenueStats getBroadcastStats = new TL_stats.TL_getBroadcastRevenueStats(); + getBroadcastStats.dark = Theme.isCurrentThemeDark(); + getBroadcastStats.channel = MessagesController.getInstance(currentAccount).getInputChannel(-dialogId); + req = getBroadcastStats; + } + int stats_dc = -1; + TLRPC.ChatFull chatFull = MessagesController.getInstance(currentAccount).getChatFull(-dialogId); + if (chatFull != null) { + stats_dc = chatFull.stats_dc; + switchOffValue = chatFull.restricted_sponsored; + } + if (stats_dc == -1) return; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TL_stats.TL_broadcastRevenueStats) { + TL_stats.TL_broadcastRevenueStats stats = (TL_stats.TL_broadcastRevenueStats) res; + + impressionsChart = StatisticActivity.createViewData(stats.top_hours_graph, getString(R.string.MonetizationGraphImpressions), 0); + if (stats.revenue_graph != null) { + stats.revenue_graph.rate = (float) (1_000_000_000.0 / 100.0 / stats.usd_rate); + } + revenueChart = StatisticActivity.createViewData(stats.revenue_graph, getString(R.string.MonetizationGraphRevenue), 2); + if (impressionsChart != null) { + impressionsChart.useHourFormat = true; + } + + availableValue.crypto_amount = stats.available_balance; + availableValue.amount = (long) (availableValue.crypto_amount / 1_000_000_000.0 * stats.usd_rate * 100.0); + setBalance(availableValue.crypto_amount, availableValue.amount); + availableValue.currency = "USD"; + lastWithdrawalValue.crypto_amount = stats.current_balance; + lastWithdrawalValue.amount = (long) (lastWithdrawalValue.crypto_amount / 1_000_000_000.0 * stats.usd_rate * 100.0); + lastWithdrawalValue.currency = "USD"; + lifetimeValue.crypto_amount = stats.overall_revenue; + lifetimeValue.amount = (long) (lifetimeValue.crypto_amount / 1_000_000_000.0 * stats.usd_rate * 100.0); + lifetimeValue.currency = "USD"; + proceedsAvailable = true; + + balanceButton.setVisibility(stats.available_balance > 0 || BuildVars.DEBUG_PRIVATE_VERSION ? View.VISIBLE : View.GONE); + + if (listView != null && listView.adapter != null) { + listView.adapter.update(true); + } + + progress.animate().alpha(0).setDuration(380).setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT).withEndAction(() -> { + progress.setVisibility(View.GONE); + }).start(); + + checkLearnSheet(); + } + }), null, null, 0, stats_dc, ConnectionsManager.ConnectionTypeGeneric, true); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + checkLearnSheet(); + } + + private void checkLearnSheet() { + if (isAttachedToWindow() && proceedsAvailable && MessagesController.getGlobalMainSettings().getBoolean("monetizationadshint", true)) { + showLearnSheet(); + MessagesController.getGlobalMainSettings().edit().putBoolean("monetizationadshint", false).apply(); + } + } + + private boolean switchOffValue = false; + + private StatisticActivity.ChartViewData impressionsChart; + private StatisticActivity.ChartViewData revenueChart; + private boolean proceedsAvailable = false; + private final ProceedOverview availableValue = ProceedOverview.as(getString(R.string.MonetizationOverviewAvailable)); + private final ProceedOverview lastWithdrawalValue = ProceedOverview.as(getString(R.string.MonetizationOverviewLastWithdrawal)); + private final ProceedOverview lifetimeValue = ProceedOverview.as(getString(R.string.MonetizationOverviewTotal)); + + private final ArrayList transactions = new ArrayList<>(); + private int transactionsTotalCount; + + private final static int CHECK_SWITCHOFF = 1; + private final static int BUTTON_LOAD_MORE_TRANSACTIONS = 2; + + private void fillItems(ArrayList items, UniversalAdapter adapter) { + int stats_dc = -1; + TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-dialogId); + TLRPC.ChatFull chatFull = MessagesController.getInstance(currentAccount).getChatFull(-dialogId); + if (chatFull != null) { + stats_dc = chatFull.stats_dc; + } + items.add(UItem.asCenterShadow(titleInfo)); + if (impressionsChart != null && !impressionsChart.isEmpty) { + items.add(UItem.asChart(StatisticActivity.VIEW_TYPE_BAR_LINEAR, stats_dc, impressionsChart)); + items.add(UItem.asShadow(-1, null)); + } + if (revenueChart != null && !revenueChart.isEmpty) { + items.add(UItem.asChart(StatisticActivity.VIEW_TYPE_STACKBAR, stats_dc, revenueChart)); + items.add(UItem.asShadow(-2, null)); + } + if (proceedsAvailable) { + items.add(UItem.asBlackHeader(getString(R.string.MonetizationOverview))); + items.add(UItem.asProceedOverview(availableValue)); + items.add(UItem.asProceedOverview(lastWithdrawalValue)); + items.add(UItem.asProceedOverview(lifetimeValue)); + items.add(UItem.asShadow(-3, null)); + } + if (chat != null && chat.creator) { + items.add(UItem.asBlackHeader(getString(R.string.MonetizationBalance))); + items.add(UItem.asCustom(balanceLayout)); + items.add(UItem.asShadow(-4, balanceInfo)); + } + if (!transactions.isEmpty() || transactionsTotalCount > 0) { + items.add(UItem.asBlackHeader(getString(R.string.MonetizationTransactions))); + for (TL_stats.BroadcastRevenueTransaction t : transactions) { + items.add(UItem.asTransaction(t)); + } + if (transactionsTotalCount - transactions.size() > 0) { + items.add(UItem.asButton(BUTTON_LOAD_MORE_TRANSACTIONS, R.drawable.arrow_more, formatPluralString("MonetizationMoreTransactions", transactionsTotalCount - transactions.size())).accent()); + } + items.add(UItem.asShadow(-5, null)); + } + if (chat != null && chat.creator) { + final int switchOffLevel = MessagesController.getInstance(currentAccount).channelRestrictSponsoredLevelMin; + items.add(UItem.asCheck(CHECK_SWITCHOFF, PeerColorActivity.withLevelLock(getString(R.string.MonetizationSwitchOff), currentBoostLevel < switchOffLevel ? switchOffLevel : 0)).setChecked(currentBoostLevel >= switchOffLevel && switchOffValue)); + items.add(UItem.asShadow(-6, getString(R.string.MonetizationSwitchOffInfo))); + } + items.add(UItem.asShadow(-7, null)); + items.add(UItem.asShadow(-8, null)); + } + + private void onClick(UItem item, View view, int position, float x, float y) { + if (item.id == CHECK_SWITCHOFF) { + if (currentBoostLevel < MessagesController.getInstance(currentAccount).channelRestrictSponsoredLevelMin) { + if (boostsStatus == null) return; + LimitReachedBottomSheet sheet = new LimitReachedBottomSheet(fragment, getContext(), LimitReachedBottomSheet.TYPE_BOOSTS_FOR_ADS, currentAccount, resourcesProvider); + sheet.setDialogId(dialogId); + sheet.setBoostsStats(boostsStatus, true); + MessagesController.getInstance(currentAccount).getBoostsController().userCanBoostChannel(dialogId, boostsStatus, canApplyBoost -> { + sheet.setCanApplyBoost(canApplyBoost); + fragment.showDialog(sheet); + }); + return; + } + switchOffValue = !switchOffValue; + AndroidUtilities.cancelRunOnUIThread(sendCpmUpdateRunnable); + AndroidUtilities.runOnUIThread(sendCpmUpdateRunnable, 1000); + listView.adapter.update(true); + } else if (item.object instanceof TL_stats.BroadcastRevenueTransaction) { + showTransactionSheet((TL_stats.BroadcastRevenueTransaction) item.object, dialogId); + } else if (item.id == BUTTON_LOAD_MORE_TRANSACTIONS) { + loadTransactions(); + } + } + + private boolean loadingTransactions = false; + private void loadTransactions() { + if (loadingTransactions) return; + if (transactions.size() >= transactionsTotalCount && transactionsTotalCount != 0) return; +// TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-dialogId); +// if (chat == null || !chat.creator) { +// return; +// } + + loadingTransactions = true; + TL_stats.TL_getBroadcastRevenueTransactions req = new TL_stats.TL_getBroadcastRevenueTransactions(); + req.channel = MessagesController.getInstance(currentAccount).getInputChannel(-dialogId); + req.offset = transactions.size(); + req.limit = transactions.isEmpty() ? 5 : 20; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TL_stats.TL_broadcastRevenueTransactions) { + TL_stats.TL_broadcastRevenueTransactions r = (TL_stats.TL_broadcastRevenueTransactions) res; + transactionsTotalCount = r.count; + transactions.addAll(r.transactions); + + if (listView != null) { + listView.adapter.update(true); + } + loadingTransactions = false; + } else if (err != null) { + BulletinFactory.showError(err); + } + })); + } + + private final Runnable sendCpmUpdateRunnable = this::sendCpmUpdate; + private void sendCpmUpdate() { + AndroidUtilities.cancelRunOnUIThread(sendCpmUpdateRunnable); + + TLRPC.TL_channels_restrictSponsoredMessages req = new TLRPC.TL_channels_restrictSponsoredMessages(); + req.channel = MessagesController.getInstance(currentAccount).getInputChannel(-dialogId); + req.restricted = switchOffValue; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (err != null) { + BulletinFactory.showError(err); + } else if (res instanceof TLRPC.Updates) { + MessagesController.getInstance(currentAccount).processUpdates((TLRPC.Updates) res, false); + } + })); + } + + private boolean onLongClick(UItem item, View view, int position, float x, float y) { + return false; + } + + private static final long DIAMOND_EMOJI = 5471952986970267163L; + private static HashMap tonString; + public static CharSequence replaceTON(CharSequence text, TextPaint textPaint) { + return replaceTON(text, textPaint, 1f, true); + } + public static CharSequence replaceTON(CharSequence text, TextPaint textPaint, boolean large) { + return replaceTON(text, textPaint, 1f, large); + } + + public static CharSequence replaceTON(CharSequence text, TextPaint textPaint, float scale, boolean large) { + return replaceTON(text, textPaint, scale, 0, large); + } + + public static CharSequence replaceTON(CharSequence text, TextPaint textPaint, float scale, float translateY, boolean large) { + if (ChannelMonetizationLayout.tonString == null) { + ChannelMonetizationLayout.tonString = new HashMap<>(); + } + final int key = textPaint.getFontMetricsInt().bottom * (large ? 1 : -1) * (int) (100 * scale); + SpannableString tonString = ChannelMonetizationLayout.tonString.get(key); + if (tonString == null) { + tonString = new SpannableString("T"); + if (large) { + ColoredImageSpan span = new ColoredImageSpan(R.drawable.ton); + span.setScale(scale, scale); + span.setColorKey(Theme.key_windowBackgroundWhiteBlueText2); + span.setRelativeSize(textPaint.getFontMetricsInt()); + span.spaceScaleX = .9f; + tonString.setSpan(span, 0, tonString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } else { + ColoredImageSpan span = new ColoredImageSpan(R.drawable.mini_ton); + span.setScale(scale, scale); + span.setTranslateY(translateY); + span.spaceScaleX = .95f; + tonString.setSpan(span, 0, tonString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + ChannelMonetizationLayout.tonString.put(key, tonString); + } + text = AndroidUtilities.replaceMultipleCharSequence("TON", text, tonString); + return text; + } + + public static class ProceedOverviewCell extends LinearLayout { + + private final Theme.ResourcesProvider resourcesProvider; + + private final LinearLayout layout; + private final AnimatedEmojiSpan.TextViewEmojis cryptoAmountView; + private final TextView amountView; + private final TextView titleView; + + private final DecimalFormat formatter; + + public ProceedOverviewCell(Context context, Theme.ResourcesProvider resourcesProvider) { + super(context); + this.resourcesProvider = resourcesProvider; + + setOrientation(VERTICAL); + + layout = new LinearLayout(context); + layout.setOrientation(HORIZONTAL); + addView(layout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, 22, 9, 22, 0)); + + cryptoAmountView = new AnimatedEmojiSpan.TextViewEmojis(context); + cryptoAmountView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + cryptoAmountView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + cryptoAmountView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + layout.addView(cryptoAmountView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM, 0, 0, 5, 0)); + + amountView = new AnimatedEmojiSpan.TextViewEmojis(context); + amountView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + amountView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); + layout.addView(amountView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM)); + + titleView = new TextView(context); + titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + titleView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); + addView(titleView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, 22, 5, 22, 9)); + + DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US); + symbols.setDecimalSeparator('.'); + formatter = new DecimalFormat("#.##", symbols); + formatter.setMinimumFractionDigits(2); + formatter.setMaximumFractionDigits(12); + formatter.setGroupingUsed(false); + } + + public void set(ProceedOverview value) { + titleView.setText(value.text); + SpannableStringBuilder cryptoAmount = new SpannableStringBuilder(replaceTON("TON " + formatter.format(value.crypto_amount / 1_000_000_000.0), cryptoAmountView.getPaint(), .87f, true)); + int index = TextUtils.indexOf(cryptoAmount, "."); + if (index >= 0) { + cryptoAmount.setSpan(new RelativeSizeSpan(13f / 16f), index, cryptoAmount.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + cryptoAmountView.setText(cryptoAmount); + amountView.setText("~" + BillingController.getInstance().formatCurrency(value.amount, value.currency)); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), heightMeasureSpec); + } + } + + public static class ProceedOverview { + public CharSequence text; + public long crypto_amount; + public long amount; + public String currency; + + public static ProceedOverview as(CharSequence text) { + ProceedOverview o = new ProceedOverview(); + o.text = text; + return o; + } + } + + public static class TransactionCell extends FrameLayout { + + private final Theme.ResourcesProvider resourcesProvider; + + private final AnimatedEmojiSpan.TextViewEmojis valueText; + private final LinearLayout layout; + private final TextView titleView; +// private final TextView addressView; + private final TextView dateView; + + private final DecimalFormat formatter; + + public TransactionCell(Context context, Theme.ResourcesProvider resourcesProvider) { + super(context); + this.resourcesProvider = resourcesProvider; + + layout = new LinearLayout(context); + layout.setOrientation(LinearLayout.VERTICAL); + addView(layout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.FILL, 17, 9, 130, 9)); + + titleView = new TextView(context); + titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + titleView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + layout.addView(titleView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + +// addressView = new TextView(context); +// addressView.setSingleLine(false); +// addressView.setLines(2); +// addressView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MONO)); +// addressView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); +// addressView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); +// layout.addView(addressView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 4, 0, 0)); + + dateView = new TextView(context); + dateView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + dateView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); + layout.addView(dateView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 4, 0, 0)); + + valueText = new AnimatedEmojiSpan.TextViewEmojis(context); + valueText.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + valueText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + addView(valueText, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL | Gravity.RIGHT, 0, 0, 18, 0)); + + DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US); + symbols.setDecimalSeparator('.'); + formatter = new DecimalFormat("#.##", symbols); + formatter.setMinimumFractionDigits(2); + formatter.setMaximumFractionDigits(12); + formatter.setGroupingUsed(false); + } + + private boolean needDivider; + + public void set(TL_stats.BroadcastRevenueTransaction transaction, boolean divider) { + int type; + long amount; + boolean failed = false; + if (transaction instanceof TL_stats.TL_broadcastRevenueTransactionWithdrawal) { + TL_stats.TL_broadcastRevenueTransactionWithdrawal t = (TL_stats.TL_broadcastRevenueTransactionWithdrawal) transaction; + titleView.setText(getString(R.string.MonetizationTransactionWithdraw)); + if (t.pending) { + dateView.setText(getString(R.string.MonetizationTransactionPending)); + } else { + failed = t.failed; + dateView.setText(LocaleController.formatShortDateTime(t.date) + (failed ? " โ€” " + getString(R.string.MonetizationTransactionNotCompleted) : "")); + } + amount = t.amount; + type = -1; + } else if (transaction instanceof TL_stats.TL_broadcastRevenueTransactionProceeds) { + TL_stats.TL_broadcastRevenueTransactionProceeds t = (TL_stats.TL_broadcastRevenueTransactionProceeds) transaction; + titleView.setText(getString(R.string.MonetizationTransactionProceed)); + dateView.setText(LocaleController.formatShortDateTime(t.from_date) + " - " + LocaleController.formatShortDateTime(t.to_date)); + amount = t.amount; + type = +1; + } else if (transaction instanceof TL_stats.TL_broadcastRevenueTransactionRefund) { + TL_stats.TL_broadcastRevenueTransactionRefund t = (TL_stats.TL_broadcastRevenueTransactionRefund) transaction; + titleView.setText(getString(R.string.MonetizationTransactionRefund)); + dateView.setText(LocaleController.formatShortDateTime(t.from_date)); + amount = t.amount; + type = +1; + } else { + return; + } + + dateView.setTextColor(Theme.getColor(failed ? Theme.key_text_RedRegular : Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); + + SpannableStringBuilder value = new SpannableStringBuilder(); + value.append(type < 0 ? "-" : "+"); + value.append(formatter.format((Math.abs(amount) / 1_000_000_000.0))); + value.append(" TON"); + int index = TextUtils.indexOf(value, "."); + if (index >= 0) { + value.setSpan(new RelativeSizeSpan(1.15f), 0, index + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + valueText.setText(value); + valueText.setTextColor(Theme.getColor(type < 0 ? Theme.key_text_RedBold : Theme.key_avatar_nameInMessageGreen, resourcesProvider)); + + setWillNotDraw(!(needDivider = divider)); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + if (needDivider) { + Paint dividerPaint = resourcesProvider != null ? resourcesProvider.getPaint(Theme.key_paint_divider) : Theme.dividerPaint; + if (dividerPaint != null) { + canvas.drawLine(LocaleController.isRTL ? 0 : dp(17), getMeasuredHeight() - 1, getMeasuredWidth() - (LocaleController.isRTL ? dp(17) : 0), getMeasuredHeight() - 1, dividerPaint); + } + } + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), heightMeasureSpec); + } + } + + public static boolean validateTONAddress(String address) { + try { + byte[] bytes = Base64.decode(address, Base64.URL_SAFE); + if (bytes.length != 36) return false; + byte[] addr = Arrays.copyOfRange(bytes, 0, 34); + byte[] crc = Arrays.copyOfRange(bytes, 34, 36); + byte[] calculatedCrc = crc16(addr); + if ( + crc[0] != calculatedCrc[0] || + crc[1] != calculatedCrc[1] + ) { + return false; + } + boolean isTestOnly = true; + int tag = addr[0]; + if ((tag & 0x80) != 0) { + isTestOnly = false; + tag = tag ^ 0x80; + } + if (!BuildVars.DEBUG_VERSION && isTestOnly) { + return false; + } + if (tag != 0x11 && tag != 0x51) { + return false; + } + return true; + } catch (Exception e) { + FileLog.e(e); + } + return false; + } + + private static byte[] crc16(byte[] data) { + final int poly = 0x1021; + int reg = 0; + byte[] message = new byte[data.length + 2]; + System.arraycopy(data, 0, message, 0, data.length); + + for (byte b : message) { + int mask = 0x80; + while (mask > 0) { + reg <<= 1; + if ((b & mask) != 0) { + reg += 1; + } + mask >>= 1; + if (reg > 0xffff) { + reg &= 0xffff; + reg ^= poly; + } + } + } + + byte[] result = new byte[2]; + result[0] = (byte) ((reg >> 8) & 0xff); + result[1] = (byte) (reg & 0xff); + + return result; + } + + private void showTransactionSheet(TL_stats.BroadcastRevenueTransaction transaction, long dialogId) { + BottomSheet sheet = new BottomSheet(getContext(), false, resourcesProvider); + sheet.fixNavigationBar(); + + LinearLayout layout = new LinearLayout(getContext()); + layout.setOrientation(LinearLayout.VERTICAL); + + long dateFrom, dateTo; + CharSequence title; + int type; + long amount; + boolean pending = false; + boolean failed = false; + if (transaction instanceof TL_stats.TL_broadcastRevenueTransactionWithdrawal) { + TL_stats.TL_broadcastRevenueTransactionWithdrawal t = (TL_stats.TL_broadcastRevenueTransactionWithdrawal) transaction; + title = getString(R.string.MonetizationTransactionDetailWithdraw); + dateFrom = t.date; + dateTo = 0; + type = -1; + amount = t.amount; + pending = t.pending; + failed = t.failed; + } else if (transaction instanceof TL_stats.TL_broadcastRevenueTransactionProceeds) { + TL_stats.TL_broadcastRevenueTransactionProceeds t = (TL_stats.TL_broadcastRevenueTransactionProceeds) transaction; + title = getString(R.string.MonetizationTransactionDetailProceed); + dateFrom = t.from_date; + dateTo = t.to_date; + type = +1; + amount = t.amount; + } else if (transaction instanceof TL_stats.TL_broadcastRevenueTransactionRefund) { + TL_stats.TL_broadcastRevenueTransactionRefund t = (TL_stats.TL_broadcastRevenueTransactionRefund) transaction; + title = getString(R.string.MonetizationTransactionDetailRefund); + dateFrom = t.from_date; + dateTo = 0; + type = +1; + amount = t.amount; + } else { + return; + } + + TextView textView = new TextView(getContext()); + textView.setGravity(Gravity.CENTER); + textView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); + textView.setTextColor(Theme.getColor(type < 0 ? Theme.key_text_RedBold : Theme.key_avatar_nameInMessageGreen)); + SpannableStringBuilder amountText = new SpannableStringBuilder(); + amountText.append(type < 0 ? "-" : "+"); + amountText.append(formatter.format(Math.round(Math.abs(amount) / 1_000_000_000.0 * 100000.0) / 100000.0)); + amountText.append(" TON"); + int index = TextUtils.indexOf(amountText, "."); + if (index >= 0) { + amountText.setSpan(new RelativeSizeSpan(24f / 18f), 0, index, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + textView.setText(amountText); + layout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 24, 0, 6)); + + textView = new TextView(getContext()); + textView.setGravity(Gravity.CENTER); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); + if (pending) { + textView.setText(getString(R.string.MonetizationTransactionPending)); + } else if (dateFrom == 0) { + textView.setText(LocaleController.formatShortDateTime(dateTo)); + } else if (dateTo == 0) { + textView.setText(LocaleController.formatShortDateTime(dateFrom)); + } else { + textView.setText(LocaleController.formatShortDateTime(dateFrom) + " - " + LocaleController.formatShortDateTime(dateTo)); + } + if (failed) { + textView.setTextColor(Theme.getColor(Theme.key_text_RedBold, resourcesProvider)); + textView.setText(TextUtils.concat(textView.getText(), " โ€” ", getString(R.string.MonetizationTransactionNotCompleted))); + } + layout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0, 0, 0)); + + textView = new TextView(getContext()); + textView.setGravity(Gravity.CENTER); + textView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + textView.setText(title); + layout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 27, 0, 0)); + +// if (transaction.type == Transaction.TYPE_WITHDRAW) { +// textView = new TextView(getContext()); +// textView.setPadding(dp(14), dp(8), dp(14), dp(8)); +// textView.setBackground(Theme.createSimpleSelectorRoundRectDrawable(dp(8), Theme.getColor(Theme.key_windowBackgroundGray, resourcesProvider), Theme.blendOver(Theme.getColor(Theme.key_windowBackgroundGray, resourcesProvider), Theme.getColor(Theme.key_listSelector, resourcesProvider)))); +// textView.setOnClickListener(v -> { +// AndroidUtilities.addToClipboard(transaction.address); +// BulletinFactory.of(sheet.getContainer(), resourcesProvider).createCopyBulletin(getString(R.string.TextCopied)).show(true); +// }); +// textView.setGravity(Gravity.CENTER); +// textView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MONO)); +// textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); +// textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); +// int center = transaction.address.length() / 2; +// textView.setText(transaction.address.substring(0, center) + "\n" + transaction.address.substring(center)); +// layout.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 8, 0, 0)); +// } else { + if (transaction instanceof TL_stats.TL_broadcastRevenueTransactionProceeds) { + FrameLayout chipLayout = new FrameLayout(getContext()); + chipLayout.setBackground(Theme.createRoundRectDrawable(dp(28), dp(28), Theme.getColor(Theme.key_groupcreate_spanBackground, resourcesProvider))); + + String ownerName; + TLObject owner; + if (dialogId < 0) { + TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-dialogId); + ownerName = chat == null ? "" : chat.title; + owner = chat; + } else { + TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(dialogId); + ownerName = UserObject.getUserName(user); + owner = user; + } + + BackupImageView chipAvatar = new BackupImageView(getContext()); + chipAvatar.setRoundRadius(dp(28)); + AvatarDrawable avatarDrawable = new AvatarDrawable(); + avatarDrawable.setInfo(owner); + chipAvatar.setForUserOrChat(owner, avatarDrawable); + chipLayout.addView(chipAvatar, LayoutHelper.createFrame(28, 28, Gravity.LEFT | Gravity.TOP)); + + TextView chipText = new TextView(getContext()); + chipText.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); + chipText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + chipText.setSingleLine(); + chipText.setText(ownerName); + chipLayout.addView(chipText, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL | Gravity.LEFT, 37, 0, 10, 0)); + + layout.addView(chipLayout, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 28, Gravity.CENTER_HORIZONTAL, 42, 10, 42, 0)); + } + + ButtonWithCounterView button = new ButtonWithCounterView(getContext(), resourcesProvider); + if (transaction instanceof TL_stats.TL_broadcastRevenueTransactionWithdrawal && (((TL_stats.TL_broadcastRevenueTransactionWithdrawal) transaction).flags & 2) != 0) { + TL_stats.TL_broadcastRevenueTransactionWithdrawal t = (TL_stats.TL_broadcastRevenueTransactionWithdrawal) transaction; + button.setText(getString(R.string.MonetizationTransactionDetailWithdrawButton), false); + button.setOnClickListener(v -> { + Browser.openUrl(getContext(), t.transaction_url); + }); + } else { + button.setText(getString(R.string.OK), false); + button.setOnClickListener(v -> { + sheet.dismiss(); + }); + } + layout.addView(button, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, Gravity.FILL_HORIZONTAL | Gravity.TOP, 18, 30, 18, 14)); + + sheet.setCustomView(layout); + + fragment.showDialog(sheet); + } + + private void showLearnSheet() { + BottomSheet sheet = new BottomSheet(getContext(), false, resourcesProvider); + sheet.fixNavigationBar(); + + LinearLayout layout = new LinearLayout(getContext()); + layout.setOrientation(LinearLayout.VERTICAL); + layout.setPadding(dp(8), 0, dp(8), 0); + + RLottieImageView imageView = new RLottieImageView(getContext()); + imageView.setScaleType(ImageView.ScaleType.CENTER); + imageView.setImageResource(R.drawable.large_monetize); + imageView.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)); + imageView.setBackground(Theme.createCircleDrawable(dp(80), Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider))); + layout.addView(imageView, LayoutHelper.createLinear(80, 80, Gravity.CENTER_HORIZONTAL, 0, 16, 0, 16)); + + TextView textView = new TextView(getContext()); + textView.setGravity(Gravity.CENTER); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); + textView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + textView.setText(getString(R.string.MonetizationInfoTitle)); + layout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 8, 0, 8, 25)); + + layout.addView( + new FeatureCell(getContext(), R.drawable.msg_channel, getString(R.string.MonetizationInfoFeature1Name), getString(R.string.MonetizationInfoFeature1Text)), + LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0, 0, 16) + ); + + layout.addView( + new FeatureCell(getContext(), R.drawable.menu_feature_split, getString(R.string.MonetizationInfoFeature2Name), getString(R.string.MonetizationInfoFeature2Text)), + LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0, 0, 16) + ); + + layout.addView( + new FeatureCell(getContext(), R.drawable.menu_feature_withdrawals, getString(R.string.MonetizationInfoFeature3Name), getString(R.string.MonetizationInfoFeature3Text)), + LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0, 0, 16) + ); + + View separator = new View(getContext()); + separator.setBackgroundColor(Theme.getColor(Theme.key_divider, resourcesProvider)); + layout.addView(separator, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 1f / AndroidUtilities.density, Gravity.TOP | Gravity.FILL_HORIZONTAL, 12, 0, 12, 0)); + + textView = new AnimatedEmojiSpan.TextViewEmojis(getContext()); + textView.setGravity(Gravity.CENTER); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); + textView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + SpannableString animatedDiamond = new SpannableString("๐Ÿ’Ž"); + ColoredImageSpan span = new ColoredImageSpan(R.drawable.ton); + span.setScale(.9f, .9f); + span.setColorKey(Theme.key_windowBackgroundWhiteBlueText2); + span.setRelativeSize(textView.getPaint().getFontMetricsInt()); + span.spaceScaleX = .9f; + animatedDiamond.setSpan(span, 0, animatedDiamond.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + textView.setText(AndroidUtilities.replaceCharSequence("๐Ÿ’Ž", getString(R.string.MonetizationInfoTONTitle), animatedDiamond)); + layout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 8, 20, 8, 0)); + + textView = new LinkSpanDrawable.LinksTextView(getContext(), resourcesProvider); + textView.setGravity(Gravity.CENTER); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + textView.setLinkTextColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider)); + textView.setText(AndroidUtilities.withLearnMore(AndroidUtilities.replaceTags(getString(R.string.MonetizationInfoTONText)), () -> Browser.openUrl(getContext(), getString(R.string.MonetizationInfoTONLink)))); + layout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 28, 9, 28, 0)); + + ButtonWithCounterView button = new ButtonWithCounterView(getContext(), resourcesProvider); + button.setText(getString(R.string.GotIt), false); + button.setOnClickListener(v -> { + sheet.dismiss(); + }); + layout.addView(button, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, Gravity.FILL_HORIZONTAL | Gravity.TOP, 10, 25, 10, 14)); + + sheet.setCustomView(layout); + + fragment.showDialog(sheet); + } + + private class FeatureCell extends FrameLayout { + public FeatureCell(Context context, int icon, CharSequence header, CharSequence text) { + super(context); + + ImageView imageView = new ImageView(context); + imageView.setScaleType(ImageView.ScaleType.CENTER); + imageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider), PorterDuff.Mode.SRC_IN)); + imageView.setImageResource(icon); + addView(imageView, LayoutHelper.createFrame(24, 24, Gravity.TOP | Gravity.LEFT, 0, 5, 18, 0)); + + LinearLayout layout = new LinearLayout(context); + layout.setOrientation(LinearLayout.VERTICAL); + addView(layout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, 42, 0, 0, 0)); + + TextView textView = new TextView(context); + textView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + textView.setText(header); + layout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 0, 0, 2)); + + textView = new TextView(context); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); + textView.setText(text); + layout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 0, 0, 0)); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(MeasureSpec.makeMeasureSpec(Math.min(MeasureSpec.getSize(widthMeasureSpec), dp(325)), MeasureSpec.getMode(widthMeasureSpec)), heightMeasureSpec); + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/BarChartView.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/BarChartView.java index b7559d272b..4109cb1463 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/BarChartView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/BarChartView.java @@ -66,7 +66,7 @@ protected void drawChart(Canvas canvas) { } else { p = chartData.xPercentage[1] * fullWidth; } - int[] y = line.line.y; + final long[] y = line.line.y; int j = 0; float selectedX = 0f; @@ -148,7 +148,7 @@ protected void drawPickerChart(Canvas canvas) { } else { p = chartData.xPercentage[1] * pickerWidth; } - int[] y = line.line.y; + final long[] y = line.line.y; float a = line.alpha; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/BaseChartView.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/BaseChartView.java index cc0da46303..5e7f3ec61a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/BaseChartView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/BaseChartView.java @@ -39,6 +39,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import tw.nekomimi.nekogram.NekoConfig; import tw.nekomimi.nekogram.utils.VibrateUtil; @@ -55,7 +56,7 @@ public abstract class BaseChartView public final static float HORIZONTAL_PADDING = AndroidUtilities.dpf2(16f); private final static float LINE_WIDTH = 1; private final static float SELECTED_LINE_WIDTH = AndroidUtilities.dpf2(1.5f); - private final static float SIGNATURE_TEXT_SIZE = AndroidUtilities.dpf2(12f); + public final static float SIGNATURE_TEXT_SIZE = AndroidUtilities.dpf2(12f); public final static int SIGNATURE_TEXT_HEIGHT = AndroidUtilities.dp(18f); private final static int BOTTOM_SIGNATURE_TEXT_HEIGHT = AndroidUtilities.dp(14f); public final static int BOTTOM_SIGNATURE_START_ALPHA = AndroidUtilities.dp(10f); @@ -104,8 +105,8 @@ public abstract class BaseChartView Paint linePaint = new Paint(); Paint selectedLinePaint = new Paint(); - Paint signaturePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); - Paint signaturePaint2 = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); + TextPaint signaturePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); + TextPaint signaturePaint2 = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); Paint bottomSignaturePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); Paint pickerSelectorPaint = new Paint(Paint.ANTI_ALIAS_FLAG); Paint unactiveBottomChartPaint = new Paint(); @@ -273,11 +274,8 @@ protected LegendSignatureView createLegendView() { } public void updateColors() { - if (useAlphaSignature) { - signaturePaint.setColor(Theme.getColor(Theme.key_statisticChartSignatureAlpha, resourcesProvider)); - } else { - signaturePaint.setColor(Theme.getColor(Theme.key_statisticChartSignature, resourcesProvider)); - } + signaturePaint.setColor(Theme.getColor(useAlphaSignature ? Theme.key_statisticChartSignatureAlpha : Theme.key_statisticChartSignature, resourcesProvider)); + signaturePaint2.setColor(Theme.getColor(useAlphaSignature ? Theme.key_statisticChartSignatureAlpha : Theme.key_statisticChartSignature, resourcesProvider)); bottomSignaturePaint.setColor(Theme.getColor(Theme.key_statisticChartSignature, resourcesProvider)); linePaint.setColor(Theme.getColor(Theme.key_statisticChartHintLine, resourcesProvider)); @@ -299,7 +297,7 @@ public void updateColors() { } if (legendShowing && selectedIndex < chartData.x.length) { - legendSignatureView.setData(selectedIndex, chartData.x[selectedIndex], (ArrayList) lines, false); + legendSignatureView.setData(selectedIndex, chartData.x[selectedIndex], (ArrayList) lines, false, chartData.yTooltipFormatter, chartData.yRate); } invalidatePickerChart = true; @@ -308,6 +306,10 @@ public void updateColors() { int lastW = 0; int lastH = 0; + private Rect exclusionRect = new Rect(); + private List exclusionRects = new ArrayList(); + { exclusionRects.add(exclusionRect); } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); @@ -338,6 +340,11 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { onPickerDataChanged(false, true, false); } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + exclusionRect.set(0, getMeasuredHeight() - (PICKER_PADDING + pikerHeight + PICKER_PADDING), getMeasuredWidth(), getMeasuredHeight()); + setSystemGestureExclusionRects(exclusionRects); + } } @@ -506,6 +513,7 @@ protected void drawBottomLine(Canvas canvas) { linePaint.setAlpha((int) (hintLinePaintAlpha * transitionAlpha)); signaturePaint.setAlpha((int) (255 * signaturePaintAlpha * transitionAlpha)); + signaturePaint2.setAlpha((int) (255 * signaturePaintAlpha * transitionAlpha)); int textOffset = (int) (SIGNATURE_TEXT_HEIGHT - signaturePaint.getTextSize()); int y = (getMeasuredHeight() - chartBottom - 1); canvas.drawLine( @@ -579,6 +587,7 @@ protected void drawHorizontalLines(Canvas canvas, ChartHorizontalLinesData a) { } linePaint.setAlpha((int) (a.alpha * (hintLinePaintAlpha / 255f) * transitionAlpha * additionalOutAlpha)); signaturePaint.setAlpha((int) (a.alpha * signaturePaintAlpha * transitionAlpha * additionalOutAlpha)); + signaturePaint2.setAlpha((int) (a.alpha * signaturePaintAlpha * transitionAlpha * additionalOutAlpha)); int chartHeight = getMeasuredHeight() - chartBottom - SIGNATURE_TEXT_HEIGHT; for (int i = useMinHeight ? 0 : 1; i < n; i++) { int y = (int) ((getMeasuredHeight() - chartBottom) - chartHeight * ((a.values[i] - currentMinHeight) / (currentMaxHeight - currentMinHeight))); @@ -607,12 +616,16 @@ protected void drawSignaturesToHorizontalLines(Canvas canvas, ChartHorizontalLin } linePaint.setAlpha((int) (a.alpha * (hintLinePaintAlpha / 255f) * transitionAlpha * additionalOutAlpha)); signaturePaint.setAlpha((int) (a.alpha * signaturePaintAlpha * transitionAlpha * additionalOutAlpha)); + signaturePaint2.setAlpha((int) (a.alpha * signaturePaintAlpha * transitionAlpha * additionalOutAlpha)); int chartHeight = getMeasuredHeight() - chartBottom - SIGNATURE_TEXT_HEIGHT; int textOffset = (int) (SIGNATURE_TEXT_HEIGHT - signaturePaint.getTextSize()); for (int i = useMinHeight ? 0 : 1; i < n; i++) { int y = (int) ((getMeasuredHeight() - chartBottom) - chartHeight * ((a.values[i] - currentMinHeight) / (currentMaxHeight - currentMinHeight))); - canvas.drawText(a.valuesStr[i], HORIZONTAL_PADDING, y - textOffset, signaturePaint); + a.drawText(canvas, 0, i, HORIZONTAL_PADDING, y - textOffset, signaturePaint); + if (a.valuesStr2 != null) { + a.drawText(canvas, 1, i, getMeasuredWidth() - HORIZONTAL_PADDING, y - textOffset, signaturePaint2); + } } } @@ -799,18 +812,18 @@ HORIZONTAL_PADDING, getMeasuredHeight() - PICKER_PADDING - pikerHeight, long lastTime = 0; - private void setMaxMinValue(int newMaxHeight, int newMinHeight, boolean animated) { + private void setMaxMinValue(long newMaxHeight, long newMinHeight, boolean animated) { setMaxMinValue(newMaxHeight, newMinHeight, animated, false, false); } - protected void setMaxMinValue(int newMaxHeight, int newMinHeight, boolean animated, boolean force, boolean useAnimator) { + protected void setMaxMinValue(long newMaxHeight, long newMinHeight, boolean animated, boolean force, boolean useAnimator) { boolean heightChanged = true; if ((Math.abs(ChartHorizontalLinesData.lookupHeight(newMaxHeight) - animateToMaxHeight) < thresholdMaxHeight) || newMaxHeight == 0) { heightChanged = false; } if (!heightChanged && newMaxHeight == animateToMinHeight) return; - final ChartHorizontalLinesData newData = createHorizontalLinesData(newMaxHeight, newMinHeight); + final ChartHorizontalLinesData newData = createHorizontalLinesData(newMaxHeight, newMinHeight, chartData.yTickFormatter); newMaxHeight = newData.values[newData.values.length - 1]; newMinHeight = newData.values[0]; @@ -918,8 +931,8 @@ public void onAnimationEnd(Animator animation) { alphaAnimator.start(); } - protected ChartHorizontalLinesData createHorizontalLinesData(int newMaxHeight, int newMinHeight) { - return new ChartHorizontalLinesData(newMaxHeight, newMinHeight, useMinHeight); + protected ChartHorizontalLinesData createHorizontalLinesData(long newMaxHeight, long newMinHeight, int formatter) { + return new ChartHorizontalLinesData(newMaxHeight, newMinHeight, useMinHeight, chartData.yRate, formatter, signaturePaint, signaturePaint2); } ValueAnimator createAnimator(float f1, float f2, ValueAnimator.AnimatorUpdateListener l) { @@ -1030,7 +1043,7 @@ public boolean onTouchEvent(MotionEvent event) { chartCaptured = false; onActionUp(); invalidate(); - int min = 0; + long min = 0; if (useMinHeight) min = findMinValue(startXIndex, endXIndex); setMaxMinValue(findMaxValue(startXIndex, endXIndex), min, true, true, false); return true; @@ -1115,7 +1128,7 @@ public void animateLegend(boolean show) { public void moveLegend(float offset) { if (chartData == null || selectedIndex == -1 || !legendShowing) return; - legendSignatureView.setData(selectedIndex, chartData.x[selectedIndex], (ArrayList) lines, false); + legendSignatureView.setData(selectedIndex, chartData.x[selectedIndex], (ArrayList) lines, false, chartData.yTooltipFormatter, chartData.yRate); legendSignatureView.setVisibility(VISIBLE); legendSignatureView.measure( MeasureSpec.makeMeasureSpec(getMeasuredWidth(), MeasureSpec.AT_MOST), @@ -1137,12 +1150,12 @@ public void moveLegend(float offset) { ); } - public int findMaxValue(int startXIndex, int endXIndex) { + public long findMaxValue(int startXIndex, int endXIndex) { int linesSize = lines.size(); - int maxValue = 0; + long maxValue = 0; for (int j = 0; j < linesSize; j++) { if (!lines.get(j).enabled) continue; - int lineMax = lines.get(j).line.segmentTree.rMaxQ(startXIndex, endXIndex); + long lineMax = lines.get(j).line.segmentTree.rMaxQ(startXIndex, endXIndex); if (lineMax > maxValue) maxValue = lineMax; } @@ -1150,12 +1163,12 @@ public int findMaxValue(int startXIndex, int endXIndex) { } - public int findMinValue(int startXIndex, int endXIndex) { + public long findMinValue(int startXIndex, int endXIndex) { int linesSize = lines.size(); - int minValue = Integer.MAX_VALUE; + long minValue = Long.MAX_VALUE; for (int j = 0; j < linesSize; j++) { if (!lines.get(j).enabled) continue; - int lineMin = lines.get(j).line.segmentTree.rMinQ(startXIndex, endXIndex); + long lineMin = lines.get(j).line.segmentTree.rMinQ(startXIndex, endXIndex); if (lineMin < minValue) minValue = lineMin; } @@ -1193,12 +1206,16 @@ public void setData(T chartData) { if (chartData != null) { updateIndexes(); - int min = useMinHeight ? findMinValue(startXIndex, endXIndex) : 0; + final long min = useMinHeight ? findMinValue(startXIndex, endXIndex) : 0; setMaxMinValue(findMaxValue(startXIndex, endXIndex), min, false); pickerMaxHeight = 0; pickerMinHeight = Integer.MAX_VALUE; initPickerMaxHeight(); - legendSignatureView.setSize(lines.size()); + if (chartData.yTooltipFormatter == ChartData.FORMATTER_TON) { + legendSignatureView.setSize(2 * lines.size()); + } else { + legendSignatureView.setSize(lines.size()); + } invalidatePickerChart = true; updateLineSignature(); @@ -1259,7 +1276,7 @@ public void onPickerDataChanged(boolean animated, boolean force, boolean useAnia chartFullWidth = (chartWidth / (pickerDelegate.pickerEnd - pickerDelegate.pickerStart)); updateIndexes(); - int min = useMinHeight ? findMinValue(startXIndex, endXIndex) : 0; + final long min = useMinHeight ? findMinValue(startXIndex, endXIndex) : 0; setMaxMinValue(findMaxValue(startXIndex, endXIndex), min, animated, force, useAniamtor); if (legendShowing && !force) { @@ -1420,13 +1437,13 @@ public void onCheckChanged() { updatePickerMinMaxHeight(); if (legendShowing) - legendSignatureView.setData(selectedIndex, chartData.x[selectedIndex], (ArrayList) lines, true); + legendSignatureView.setData(selectedIndex, chartData.x[selectedIndex], (ArrayList) lines, true, chartData.yTooltipFormatter, chartData.yRate); } protected void updatePickerMinMaxHeight() { if (!ANIMATE_PICKER_SIZES) return; - int max = 0; - int min = Integer.MAX_VALUE; + long max = 0; + long min = Long.MAX_VALUE; for (LineViewData l : lines) { if (l.enabled && l.line.maxValue > max) max = l.line.maxValue; if (l.enabled && l.line.minValue < min) min = l.line.minValue; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/DoubleLinearChartView.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/DoubleLinearChartView.java index a604d66c0f..d72be8fee7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/DoubleLinearChartView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/DoubleLinearChartView.java @@ -63,7 +63,7 @@ protected void drawChart(Canvas canvas) { int j = 0; - int[] y = line.line.y; + final long[] y = line.line.y; line.chartPath.reset(); boolean first = true; @@ -137,7 +137,7 @@ protected void drawPickerChart(Canvas canvas) { int n = chartData.xPercentage.length; int j = 0; - int[] y = line.line.y; + final long[] y = line.line.y; line.chartPath.reset(); for (int i = 0; i < n; i++) { @@ -251,42 +251,42 @@ protected void drawSignaturesToHorizontalLines(Canvas canvas, ChartHorizontalLin signaturePaint.setAlpha((int) (a.alpha * lines.get(leftIndex).alpha * transitionAlpha * additionalOutAlpha)); } - canvas.drawText(a.valuesStr[i], HORIZONTAL_PADDING, y - textOffset, signaturePaint); + a.drawText(canvas, 0, i, HORIZONTAL_PADDING, y - textOffset, signaturePaint); } if (a.valuesStr2 != null && lines.size() > 1) { signaturePaint2.setColor(lines.get(rightIndex).lineColor); signaturePaint2.setAlpha((int) (a.alpha * lines.get(rightIndex).alpha * transitionAlpha * additionalOutAlpha)); - canvas.drawText(a.valuesStr2[i], getMeasuredWidth() - HORIZONTAL_PADDING, y - textOffset, signaturePaint2); + a.drawText(canvas, 1, i, getMeasuredWidth() - HORIZONTAL_PADDING, y - textOffset, signaturePaint2); } } } @Override public LineViewData createLineViewData(ChartData.Line line) { - return new LineViewData(line, resourcesProvider); + return new LineViewData(line, false, resourcesProvider); } - public int findMaxValue(int startXIndex, int endXIndex) { + public long findMaxValue(int startXIndex, int endXIndex) { if (lines.isEmpty()) { return 0; } - int n = lines.size(); - int max = 0; + final int n = lines.size(); + long max = 0; for (int i = 0; i < n; i++) { - int localMax = lines.get(i).enabled ? (int) (chartData.lines.get(i).segmentTree.rMaxQ(startXIndex, endXIndex) * chartData.linesK[i]) : 0; + long localMax = lines.get(i).enabled ? (long) (chartData.lines.get(i).segmentTree.rMaxQ(startXIndex, endXIndex) * chartData.linesK[i]) : 0; if (localMax > max) max = localMax; } return max; } - public int findMinValue(int startXIndex, int endXIndex) { + public long findMinValue(int startXIndex, int endXIndex) { if (lines.isEmpty()) { return 0; } - int n = lines.size(); - int min = Integer.MAX_VALUE; + final int n = lines.size(); + long min = Long.MAX_VALUE; for (int i = 0; i < n; i++) { - int localMin = lines.get(i).enabled ? (int) (chartData.lines.get(i).segmentTree.rMinQ(startXIndex, endXIndex) * chartData.linesK[i]) : Integer.MAX_VALUE; + long localMin = lines.get(i).enabled ? (int) (chartData.lines.get(i).segmentTree.rMinQ(startXIndex, endXIndex) * chartData.linesK[i]) : Integer.MAX_VALUE; if (localMin < min) min = localMin; } return min; @@ -299,12 +299,12 @@ protected void updatePickerMinMaxHeight() { return; } - int max = 0; + long max = 0; for (LineViewData l : lines) { if (l.enabled && l.line.maxValue > max) max = l.line.maxValue; } if (lines.size() > 1) { - max = (int) (max * chartData.linesK[1]); + max = (long) (max * chartData.linesK[1]); } if (max > 0 && max != animatedToPickerMaxHeight) { @@ -323,7 +323,8 @@ public void onAnimationUpdate(ValueAnimator animation) { } } - protected ChartHorizontalLinesData createHorizontalLinesData(int newMaxHeight, int newMinHeight) { + @Override + protected ChartHorizontalLinesData createHorizontalLinesData(long newMaxHeight, long newMinHeight, int formatter) { float k; if (chartData.linesK.length < 2) { k = 1; @@ -331,6 +332,6 @@ protected ChartHorizontalLinesData createHorizontalLinesData(int newMaxHeight, i int rightIndex = chartData.linesK[0] == 1 ? 1 : 0; k = chartData.linesK[rightIndex]; } - return new ChartHorizontalLinesData(newMaxHeight, newMinHeight, useMinHeight, k); + return new ChartHorizontalLinesData(newMaxHeight, newMinHeight, useMinHeight, k, formatter, signaturePaint, signaturePaint2); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/LinearBarChartView.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/LinearBarChartView.java new file mode 100644 index 0000000000..b4b92a5268 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/LinearBarChartView.java @@ -0,0 +1,216 @@ +package org.telegram.ui.Charts; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; + +import org.telegram.ui.Charts.data.ChartData; +import org.telegram.ui.Charts.view_data.LineViewData; + +public class LinearBarChartView extends BaseChartView { + public LinearBarChartView(Context context) { + super(context); + } + + @Override + protected void init() { + useMinHeight = true; + super.init(); + + } + + @Override + protected void drawChart(Canvas canvas) { + if (chartData != null) { + float fullWidth = (chartWidth / (pickerDelegate.pickerEnd - pickerDelegate.pickerStart)); + float offset = fullWidth * (pickerDelegate.pickerStart) - HORIZONTAL_PADDING; + + for (int k = 0; k < lines.size(); k++) { + LineViewData line = lines.get(k); + if (!line.enabled && line.alpha == 0) continue; + + int j = 0; + + float p; + if (chartData.xPercentage.length < 2) { + p = 0f; + } else { + p = chartData.xPercentage[1] * fullWidth; + } + final long[] y = line.line.y; + int additionalPoints = (int) (HORIZONTAL_PADDING / p) + 1; + + line.chartPath.reset(); + boolean first = true; + + int localStart = Math.max(0, startXIndex - additionalPoints); + int localEnd = Math.min(chartData.xPercentage.length - 1, endXIndex + additionalPoints); + for (int i = localStart; i <= localEnd; i++) { + if (y[i] < 0) continue; + float xPoint = chartData.xPercentage[i] * fullWidth - offset; + float yPercentage = ((float) y[i] - currentMinHeight) / (currentMaxHeight - currentMinHeight); + float padding = line.paint.getStrokeWidth() / 2f; + float yPoint = getMeasuredHeight() - chartBottom - padding - (yPercentage) * (getMeasuredHeight() - chartBottom - SIGNATURE_TEXT_HEIGHT - padding); + + if (USE_LINES) { + if (j == 0) { + line.linesPath[j++] = xPoint - p / 2f; + line.linesPath[j++] = yPoint; + line.linesPath[j++] = xPoint + p / 2f; + line.linesPath[j++] = yPoint; + line.linesPath[j++] = xPoint + p / 2f; + line.linesPath[j++] = yPoint; + } else if (i == localEnd) { + line.linesPath[j++] = xPoint - p / 2f; + line.linesPath[j++] = yPoint; + line.linesPath[j++] = xPoint - p / 2f; + line.linesPath[j++] = yPoint; + line.linesPath[j++] = xPoint + p / 2f; + line.linesPath[j++] = yPoint; + line.linesPath[j++] = xPoint + p / 2f; + line.linesPath[j++] = yPoint; + line.linesPath[j++] = xPoint + p / 2f; + line.linesPath[j++] = getMeasuredHeight() - chartBottom - padding; + } else { + line.linesPath[j++] = xPoint - p / 2f; + line.linesPath[j++] = yPoint; + line.linesPath[j++] = xPoint - p / 2f; + line.linesPath[j++] = yPoint; + line.linesPath[j++] = xPoint + p / 2f; + line.linesPath[j++] = yPoint; + line.linesPath[j++] = xPoint + p / 2f; + line.linesPath[j++] = yPoint; + } + } else { + if (first) { + first = false; + line.chartPath.moveTo(xPoint - p / 2f, yPoint); + } else { + line.chartPath.lineTo(xPoint - p / 2f, yPoint); + } + line.chartPath.lineTo(xPoint + p / 2f, yPoint); + } + } + + canvas.save(); + float transitionAlpha = 1f; + if (transitionMode == TRANSITION_MODE_PARENT) { + transitionAlpha = transitionParams.progress > 0.5f ? 0 : 1f - transitionParams.progress * 2f; + canvas.scale( + 1 + 2 * transitionParams.progress, 1f, + transitionParams.pX, transitionParams.pY + ); + } else if (transitionMode == TRANSITION_MODE_CHILD) { + transitionAlpha = transitionParams.progress < 0.3f ? 0 : transitionParams.progress; + canvas.save(); + canvas.scale( + transitionParams.progress, transitionParams.needScaleY ? transitionParams.progress : 1f, + transitionParams.pX, transitionParams.pY + ); + } else if (transitionMode == TRANSITION_MODE_ALPHA_ENTER) { + transitionAlpha = transitionParams.progress; + } + line.paint.setAlpha((int) (255 * line.alpha * transitionAlpha)); + if(endXIndex - startXIndex > 100){ + line.paint.setStrokeCap(Paint.Cap.SQUARE); + } else { + line.paint.setStrokeCap(Paint.Cap.ROUND); + } + if (!USE_LINES) canvas.drawPath(line.chartPath, line.paint); + else canvas.drawLines(line.linesPath, 0, j, line.paint); + + canvas.restore(); + } + } + } + + @Override + protected void drawPickerChart(Canvas canvas) { + int bottom = getMeasuredHeight() - PICKER_PADDING; + int top = getMeasuredHeight() - pikerHeight - PICKER_PADDING; + + int nl = lines.size(); + + if (chartData != null) { + float p; + if (chartData.xPercentage.length < 2) { + p = 1f; + } else { + p = chartData.xPercentage[1] * pickerWidth; + } + for (int k = 0; k < nl; k++) { + LineViewData line = lines.get(k); + if (!line.enabled && line.alpha == 0) continue; + + line.bottomLinePath.reset(); + + int n = chartData.xPercentage.length; + int j = 0; + + final long[] y = line.line.y; + + line.chartPath.reset(); + for (int i = 0; i < n; i++) { + if (y[i] < 0) continue; + float xPoint = chartData.xPercentage[i] * pickerWidth; + float h = ANIMATE_PICKER_SIZES ? pickerMaxHeight : chartData.maxValue; + float hMin = ANIMATE_PICKER_SIZES ? pickerMinHeight : chartData.minValue; + float yPercentage = (y[i] - hMin) / (h - hMin); + float yPoint = (1f - yPercentage) * pikerHeight; + + if (USE_LINES) { + if (j == 0) { + line.linesPathBottom[j++] = xPoint - p / 2f; + line.linesPathBottom[j++] = yPoint; + line.linesPathBottom[j++] = xPoint + p / 2f; + line.linesPathBottom[j++] = yPoint; + line.linesPathBottom[j++] = xPoint + p / 2f; + line.linesPathBottom[j++] = yPoint; + } else if (i == n - 1) { + line.linesPathBottom[j++] = xPoint - p / 2f; + line.linesPathBottom[j++] = yPoint; + line.linesPathBottom[j++] = xPoint - p / 2f; + line.linesPathBottom[j++] = yPoint; + line.linesPathBottom[j++] = xPoint + p / 2f; + line.linesPathBottom[j++] = yPoint; + line.linesPathBottom[j++] = xPoint + p / 2f; + line.linesPathBottom[j++] = yPoint; + line.linesPathBottom[j++] = xPoint + p / 2f; + line.linesPathBottom[j++] = 0; + } else { + line.linesPathBottom[j++] = xPoint - p / 2f; + line.linesPathBottom[j++] = yPoint; + line.linesPathBottom[j++] = xPoint - p / 2f; + line.linesPathBottom[j++] = yPoint; + line.linesPathBottom[j++] = xPoint + p / 2f; + line.linesPathBottom[j++] = yPoint; + line.linesPathBottom[j++] = xPoint + p / 2f; + line.linesPathBottom[j++] = yPoint; + } + } else { + if (i == 0) { + line.bottomLinePath.moveTo(xPoint - p / 2f, yPoint); + } else { + line.bottomLinePath.lineTo(xPoint - p / 2f, yPoint); + } + line.bottomLinePath.lineTo(xPoint + p / 2f, yPoint); + } + } + + line.linesPathBottomSize = j; + + if (!line.enabled && line.alpha == 0) continue; + line.bottomLinePaint.setAlpha((int) (255 * line.alpha)); + if (USE_LINES) + canvas.drawLines(line.linesPathBottom, 0, line.linesPathBottomSize, line.bottomLinePaint); + else + canvas.drawPath(line.bottomLinePath, line.bottomLinePaint); + } + } + } + + @Override + public LineViewData createLineViewData(ChartData.Line line) { + return new LineViewData(line, true); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/LinearChartView.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/LinearChartView.java index 3f3a315a54..a001fc2c5c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/LinearChartView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/LinearChartView.java @@ -38,7 +38,7 @@ protected void drawChart(Canvas canvas) { } else { p = chartData.xPercentage[1] * fullWidth; } - int[] y = line.line.y; + final long[] y = line.line.y; int additionalPoints = (int) (HORIZONTAL_PADDING / p) + 1; line.chartPath.reset(); @@ -122,7 +122,7 @@ protected void drawPickerChart(Canvas canvas) { int n = chartData.xPercentage.length; int j = 0; - int[] y = line.line.y; + final long[] y = line.line.y; line.chartPath.reset(); for (int i = 0; i < n; i++) { @@ -166,6 +166,6 @@ protected void drawPickerChart(Canvas canvas) { @Override public LineViewData createLineViewData(ChartData.Line line) { - return new LineViewData(line); + return new LineViewData(line, false); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/PieChartView.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/PieChartView.java index 600f4a6c6b..e4c50d2c4a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/PieChartView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/PieChartView.java @@ -245,7 +245,7 @@ protected void drawPickerChart(Canvas canvas) { LineViewData line = lines.get(k); if (!line.enabled && line.alpha == 0) continue; - int[] y = line.line.y; + final long[] y = line.line.y; float yPercentage; if (drawingLinesCount == 1) { @@ -386,17 +386,7 @@ protected void selectXOnChart(int x, int y) { pieLegendView.setTranslationX(xl); pieLegendView.setTranslationY(yl); - - if (!NekoConfig.disableVibration.Bool()) { - boolean v = false; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { - v = performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); - } - if (!v) { - performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); - } - } - + AndroidUtilities.vibrateCursor(this); } moveLegend(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/StackBarChartView.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/StackBarChartView.java index a131107e60..7800c240af 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/StackBarChartView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/StackBarChartView.java @@ -16,7 +16,7 @@ public class StackBarChartView extends BaseChartView { - private int[] yMaxPoints; + private long[] yMaxPoints; public StackBarChartView(Context context) { this(context, null); @@ -91,7 +91,7 @@ protected void drawChart(Canvas canvas) { if (!line.enabled && line.alpha == 0) continue; - int[] y = line.line.y; + final long[] y = line.line.y; float xPoint = p / 2 + chartData.xPercentage[i] * (fullWidth - p) - offset; @@ -134,7 +134,7 @@ protected void drawChart(Canvas canvas) { if (!line.enabled && line.alpha == 0) continue; - int[] y = line.line.y; + final long[] y = line.line.y; float xPoint = p / 2 + chartData.xPercentage[selectedIndex] * (fullWidth - p) - offset; @@ -206,7 +206,7 @@ protected void drawPickerChart(Canvas canvas) { int step = Math.max(1, Math.round(n / 200f)); if (yMaxPoints == null || yMaxPoints.length < nl) { - yMaxPoints = new int[nl]; + yMaxPoints = new long[nl]; } for (int i = 0; i < n; i++) { @@ -216,7 +216,7 @@ protected void drawPickerChart(Canvas canvas) { for (int k = 0; k < nl; k++) { LineViewData line = lines.get(k); if (!line.enabled && line.alpha == 0) continue; - int y = line.line.y[i]; + final long y = line.line.y[i]; if (y > yMaxPoints[k]) yMaxPoints[k] = y; } @@ -263,7 +263,7 @@ public void onCheckChanged() { int n = chartData.lines.get(0).y.length; int k = chartData.lines.size(); - chartData.ySum = new int[n]; + chartData.ySum = new long[n]; for (int i = 0; i < n; i++) { chartData.ySum[i] = 0; for (int j = 0; j < k; j++) { @@ -280,19 +280,19 @@ protected void drawSelection(Canvas canvas) { } - public int findMaxValue(int startXIndex, int endXIndex) { + public long findMaxValue(int startXIndex, int endXIndex) { return chartData.findMax(startXIndex, endXIndex); } protected void updatePickerMinMaxHeight() { if (!ANIMATE_PICKER_SIZES) return; - int max = 0; + long max = 0; int n = chartData.x.length; int nl = lines.size(); for (int i = 0; i < n; i++) { - int h = 0; + long h = 0; for (int k = 0; k < nl; k++) { StackBarViewData l = lines.get(k); if (l.enabled) h += l.line.y[i]; @@ -326,7 +326,7 @@ protected void initPickerMaxHeight() { int n = chartData.x.length; int nl = lines.size(); for (int i = 0; i < n; i++) { - int h = 0; + long h = 0; for (int k = 0; k < nl; k++) { StackBarViewData l = lines.get(k); if (l.enabled) h += l.line.y[i]; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/StackLinearChartView.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/StackLinearChartView.java index e3e90bd45b..f696442f5a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/StackLinearChartView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/StackLinearChartView.java @@ -124,7 +124,7 @@ protected void drawChart(Canvas canvas) { for (int k = 0; k < lines.size(); k++) { LineViewData line = lines.get(k); if (!line.enabled && line.alpha == 0) continue; - int[] y = line.line.y; + final long[] y = line.line.y; float yPercentage; @@ -507,7 +507,7 @@ protected void onDraw(Canvas canvas) { } @Override - public int findMaxValue(int startXIndex, int endXIndex) { + public long findMaxValue(int startXIndex, int endXIndex) { return 100; } @@ -562,7 +562,7 @@ public void fillTransitionParams(TransitionParams params) { for (int k = 0; k < lines.size(); k++) { LineViewData line = lines.get(k); if (!line.enabled && line.alpha == 0) continue; - int[] y = line.line.y; + final long[] y = line.line.y; float yPercentage; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/ChartData.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/ChartData.java index c660dbb822..eded41e50a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/ChartData.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/ChartData.java @@ -24,11 +24,19 @@ public class ChartData { public float[] xPercentage; public String[] daysLookup; public ArrayList lines = new ArrayList<>(); - public int maxValue = 0; - public int minValue = Integer.MAX_VALUE; + public long maxValue = 0; + public long minValue = Long.MAX_VALUE; public float oneDayPercentage = 0f; + public static final int FORMATTER_TON = 1; + + public int xTickFormatter = 0; + public int xTooltipFormatter = 0; + public float yRate = 0; + public int yTickFormatter = 0; + public int yTooltipFormatter = 0; + protected ChartData() { } @@ -51,9 +59,9 @@ public ChartData(JSONObject jsonObject) throws JSONException { lines.add(l); int len = a.length() - 1; l.id = a.getString(0); - l.y = new int[len]; + l.y = new long[len]; for (int j = 0; j < len; j++) { - l.y[j] = a.getInt(j + 1); + l.y[j] = a.getLong(j + 1); if (l.y[j] > l.maxValue) l.maxValue = l.y[j]; if (l.y[j] < l.minValue) l.minValue = l.y[j]; } @@ -70,6 +78,13 @@ public ChartData(JSONObject jsonObject) throws JSONException { JSONObject colors = jsonObject.optJSONObject("colors"); JSONObject names = jsonObject.optJSONObject("names"); + try { + xTickFormatter = getFormatter(jsonObject.getString("xTickFormatter")); + yTickFormatter = getFormatter(jsonObject.getString("yTickFormatter")); + xTooltipFormatter = getFormatter(jsonObject.getString("xTooltipFormatter")); + yTooltipFormatter = getFormatter(jsonObject.getString("yTooltipFormatter")); + } catch (Exception ignore) {} + Pattern colorPattern = Pattern.compile("(.*)(#.*)"); for (int i = 0; i < lines.size(); i++) { ChartData.Line line = lines.get(i); @@ -94,6 +109,12 @@ public ChartData(JSONObject jsonObject) throws JSONException { } } + public int getFormatter(String value) { + if (TextUtils.isEmpty(value)) return 0; + if (value.contains("TON")) return FORMATTER_TON; + return 0; + } + protected void measure() { int n = x.length; @@ -226,13 +247,13 @@ public int findIndex(int left, int right, float v) { } public class Line { - public int[] y; + public long[] y; public SegmentTree segmentTree; public String id; public String name; - public int maxValue = 0; - public int minValue = Integer.MAX_VALUE; + public long maxValue = 0; + public long minValue = Long.MAX_VALUE; public int colorKey; public int color = Color.BLACK; public int colorDark = Color.WHITE; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/DoubleLinearChartData.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/DoubleLinearChartData.java index b6646ecc4e..4d3dbcfc30 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/DoubleLinearChartData.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/DoubleLinearChartData.java @@ -16,16 +16,16 @@ public DoubleLinearChartData(JSONObject jsonObject) throws JSONException { protected void measure() { super.measure(); int n = lines.size(); - int max = 0; + long max = 0; for (int i = 0; i < n; i++) { - int m = lines.get(i).maxValue; + final long m = lines.get(i).maxValue; if (m > max) max = m; } linesK = new float[n]; for (int i = 0; i < n; i++) { - int m = lines.get(i).maxValue; + final long m = lines.get(i).maxValue; if (max == m) { linesK[i] = 1; continue; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/StackBarChartData.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/StackBarChartData.java index 9522e50677..7cfd7c45f4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/StackBarChartData.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/StackBarChartData.java @@ -7,7 +7,7 @@ public class StackBarChartData extends ChartData { - public int[] ySum; + public long[] ySum; public SegmentTree ySumSegmentTree; public StackBarChartData(JSONObject jsonObject) throws JSONException { @@ -19,7 +19,7 @@ public void init() { int n = lines.get(0).y.length; int k = lines.size(); - ySum = new int[n]; + ySum = new long[n]; for (int i = 0; i < n; i++) { ySum[i] = 0; for (int j = 0; j < k; j++) { @@ -30,7 +30,7 @@ public void init() { ySumSegmentTree = new SegmentTree(ySum); } - public int findMax(int start, int end) { + public long findMax(int start, int end) { return ySumSegmentTree.rMaxQ(start, end); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/StackLinearChartData.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/StackLinearChartData.java index dd62886d39..c8bbba800f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/StackLinearChartData.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/StackLinearChartData.java @@ -9,10 +9,10 @@ public class StackLinearChartData extends ChartData { - int[] ySum; + long[] ySum; SegmentTree ySumSegmentTree; - public int[][] simplifiedY; + public long[][] simplifiedY; public int simplifiedSize; @@ -26,7 +26,7 @@ public StackLinearChartData(JSONObject jsonObject,boolean isLanguages) throws JS for (int k = 0; k < lines.size(); k++) { int n = x.length; for (int i = 0; i < n; i++) { - int v = lines.get(k).y[i]; + long v = lines.get(k).y[i]; totalCount[k] += v; if (v == 0) { emptyCount[k]++; @@ -49,7 +49,7 @@ public StackLinearChartData(JSONObject jsonObject,boolean isLanguages) throws JS int n = lines.get(0).y.length; int k = lines.size(); - ySum = new int[n]; + ySum = new long[n]; for (int i = 0; i < n; i++) { ySum[i] = 0; for (int j = 0; j < k; j++) { @@ -85,7 +85,7 @@ public StackLinearChartData(ChartData data, long d) { for (int i = 0; i < data.lines.size(); i++) { Line line = new Line(); - line.y = new int[n]; + line.y = new long[n]; line.id = data.lines.get(i).id; line.name = data.lines.get(i).name; line.colorKey = data.lines.get(i).colorKey; @@ -116,9 +116,9 @@ protected void measure() { int nl = lines.size(); int step = Math.max(1, Math.round(n / 140f)); int maxSize = n / step; - simplifiedY = new int[nl][maxSize]; + simplifiedY = new long[nl][maxSize]; - int[] max = new int[nl]; + long[] max = new long[nl]; for (int i = 0; i < n; i++) { for(int k = 0; k < nl; k++) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/BarViewData.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/BarViewData.java index 972496b44f..f678131b19 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/BarViewData.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/BarViewData.java @@ -12,7 +12,7 @@ public class BarViewData extends LineViewData { public int blendColor = 0; public BarViewData(ChartData.Line line) { - super(line); + super(line, false); paint.setStyle(Paint.Style.STROKE); unselectedPaint.setStyle(Paint.Style.STROKE); paint.setAntiAlias(false); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHeaderView.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHeaderView.java index e982ca9010..02bdf8bef3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHeaderView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHeaderView.java @@ -53,7 +53,7 @@ public ChartHeaderView(Context context, Theme.ResourcesProvider resourcesProvide title = new TextView(context); title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); - title.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + title.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); addView(title, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.START | Gravity.CENTER_VERTICAL, 16, 0, textMargin, 0)); back = new TextView(context); @@ -64,13 +64,13 @@ public ChartHeaderView(Context context, Theme.ResourcesProvider resourcesProvide dates = new TextView(context); dates.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); - dates.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + dates.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); dates.setGravity(Gravity.END | Gravity.CENTER_VERTICAL); addView(dates, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.END | Gravity.CENTER_VERTICAL, 16, 0, 16, 0)); datesTmp = new TextView(context); datesTmp.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); - datesTmp.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + datesTmp.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); datesTmp.setGravity(Gravity.END | Gravity.CENTER_VERTICAL); addView(datesTmp, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.END | Gravity.CENTER_VERTICAL, 16, 0, 16, 0)); datesTmp.setVisibility(View.GONE); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHorizontalLinesData.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHorizontalLinesData.java index 5213589210..d150d18200 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHorizontalLinesData.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHorizontalLinesData.java @@ -1,34 +1,55 @@ package org.telegram.ui.Charts.view_data; +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.graphics.Canvas; +import android.text.Layout; +import android.text.StaticLayout; +import android.text.TextPaint; + import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BillingController; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ChannelMonetizationLayout; +import org.telegram.ui.Charts.data.ChartData; +import org.telegram.ui.Components.AnimatedEmojiSpan; + +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.util.Locale; public class ChartHorizontalLinesData { - public int[] values; - public String[] valuesStr; - public String[] valuesStr2; + public long[] values; + public CharSequence[] valuesStr; + public CharSequence[] valuesStr2; + private StaticLayout[] layouts; + private StaticLayout[] layouts2; public int alpha; public int fixedAlpha = 255; - public ChartHorizontalLinesData(int newMaxHeight, int newMinHeight, boolean useMinHeight) { - this(newMaxHeight, newMinHeight, useMinHeight, 0); - } - - public ChartHorizontalLinesData(int newMaxHeight, int newMinHeight, boolean useMinHeight, float k) { + public ChartHorizontalLinesData( + long newMaxHeight, + long newMinHeight, + boolean useMinHeight, + float k, + int formatter, + TextPaint firstTextPaint, TextPaint secondTextPaint + ) { if (!useMinHeight) { - int v = newMaxHeight; + long v = newMaxHeight; if (newMaxHeight > 100) { v = round(newMaxHeight); } - int step = Math.max(1, (int) Math.ceil(v / 5f)); + int step = Math.max(1, (int) Math.ceil(v / 5.0)); int n; if (v < 6) { - n = Math.max(2, v + 1); + n = (int) Math.max(2, v + 1); } else if (v / 2 < 6) { - n = v / 2 + 1; + n = (int) (v / 2 + 1); if (v % 2 != 0) { n++; } @@ -36,62 +57,103 @@ public ChartHorizontalLinesData(int newMaxHeight, int newMinHeight, boolean useM n = 6; } - values = new int[n]; - valuesStr = new String[n]; - + values = new long[n]; + valuesStr = new CharSequence[n]; + layouts = new StaticLayout[n]; + if (k > 0) { + valuesStr2 = new CharSequence[n]; + layouts2 = new StaticLayout[n]; + } + boolean skipFloatValues = step / k < 1; for (int i = 1; i < n; i++) { values[i] = i * step; - valuesStr[i] = AndroidUtilities.formatWholeNumber(values[i], 0); + valuesStr[i] = format(0, firstTextPaint, values[i], formatter); + if (k > 0) { + float v2 = (values[i] / k); + if (skipFloatValues) { + if (v2 - ((int) v2) < 0.01f || formatter == ChartData.FORMATTER_TON) { + valuesStr2[i] = format(1, secondTextPaint, (long) v2, formatter); + } else { + valuesStr2[i] = ""; + } + } else { + valuesStr2[i] = format(1, secondTextPaint, (long) v2, formatter); + } + } } } else { int n; - int dif = newMaxHeight - newMinHeight; + long dif = newMaxHeight - newMinHeight; float step; if (dif == 0) { newMinHeight--; n = 3; step = 1f; } else if (dif < 6) { - n = Math.max(2, dif + 1); + n = (int) Math.max(2, dif + 1); step = 1f; } else if (dif / 2 < 6) { - n = dif / 2 + dif % 2 + 1; + n = (int) (dif / 2 + dif % 2 + 1); step = 2f; } else { step = (newMaxHeight - newMinHeight) / 5f; if (step <= 0) { step = 1; - n = Math.max(2, newMaxHeight - newMinHeight + 1); + n = (int) (Math.max(2, newMaxHeight - newMinHeight + 1)); } else { n = 6; } } - values = new int[n]; - valuesStr = new String[n]; - if (k > 0) valuesStr2 = new String[n]; + values = new long[n]; + valuesStr = new CharSequence[n]; + layouts = new StaticLayout[n]; + if (k > 0) { + valuesStr2 = new CharSequence[n]; + layouts2 = new StaticLayout[n]; + } boolean skipFloatValues = step / k < 1; for (int i = 0; i < n; i++) { values[i] = newMinHeight + (int) (i * step); - valuesStr[i] = AndroidUtilities.formatWholeNumber(values[i], 0); + valuesStr[i] = format(0, firstTextPaint, newMinHeight + (long) (i * step), formatter); if (k > 0) { float v = (values[i] / k); if (skipFloatValues) { - if (v - ((int) v) < 0.01f) { - valuesStr2[i] = AndroidUtilities.formatWholeNumber((int) v, 0); + if (v - ((int) v) < 0.01f || formatter == ChartData.FORMATTER_TON) { + valuesStr2[i] = format(1, secondTextPaint, (long) v, formatter); } else { valuesStr2[i] = ""; } } else { - valuesStr2[i] = AndroidUtilities.formatWholeNumber((int) v, 0); + valuesStr2[i] = format(1, secondTextPaint, (long) v, formatter); } } } } } - public static int lookupHeight(int maxValue) { - int v = maxValue; + private DecimalFormat formatterTON; + public CharSequence format(int a, TextPaint paint, long v, int formatter) { + if (formatter == ChartData.FORMATTER_TON) { + if (a == 1) { + return "~" + BillingController.getInstance().formatCurrency(v, "USD"); + } + if (formatterTON == null) { + DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US); + symbols.setDecimalSeparator('.'); + formatterTON = new DecimalFormat("#.##", symbols); + formatterTON.setMinimumFractionDigits(2); + formatterTON.setMaximumFractionDigits(6); + formatterTON.setGroupingUsed(false); + } + formatterTON.setMaximumFractionDigits(v > 1_000_000_000 ? 2 : 6); + return ChannelMonetizationLayout.replaceTON("TON " + formatterTON.format(v / 1_000_000_000.0), paint, .8f, -dp(.66f), false); + } + return AndroidUtilities.formatWholeNumber((int) v, 0); + } + + public static int lookupHeight(long maxValue) { + long v = maxValue; if (maxValue > 100) { v = round(maxValue); } @@ -100,9 +162,28 @@ public static int lookupHeight(int maxValue) { return step * 5; } - private static int round(int maxValue) { + private static long round(long maxValue) { float k = maxValue / 5; if (k % 10 == 0) return maxValue; else return ((maxValue / 10 + 1) * 10); } + + public void drawText(Canvas canvas, int a, int i, float x, float y, TextPaint paint) { + StaticLayout layout = (a == 0 ? layouts : layouts2)[i]; + if (layout == null) { + CharSequence string = (a == 0 ? valuesStr : valuesStr2)[i]; + (a == 0 ? layouts : layouts2)[i] = layout = new StaticLayout( + string, + paint, + AndroidUtilities.displaySize.x, + Layout.Alignment.ALIGN_NORMAL, + 1f, 0f, false + ); + } + canvas.save(); + canvas.translate(x, y + paint.ascent()); + layout.draw(canvas); + canvas.restore(); + } + } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/LegendSignatureView.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/LegendSignatureView.java index 056965b8cc..287d4cca67 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/LegendSignatureView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/LegendSignatureView.java @@ -5,6 +5,11 @@ import android.content.Context; import android.graphics.drawable.Drawable; import android.os.Build; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.TextPaint; +import android.text.TextUtils; +import android.text.style.CharacterStyle; import android.transition.ChangeBounds; import android.transition.Fade; import android.transition.TransitionManager; @@ -18,13 +23,19 @@ import android.widget.TextView; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BillingController; +import org.telegram.messenger.LocaleController; import org.telegram.messenger.R; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ChannelMonetizationLayout; import org.telegram.ui.Charts.data.ChartData; +import org.telegram.ui.Components.AnimatedEmojiSpan; import org.telegram.ui.Components.CombinedDrawable; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.RadialProgressView; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; @@ -34,7 +45,7 @@ public class LegendSignatureView extends FrameLayout { public boolean isTopHourChart; LinearLayout content; - Holder[] holdes; + Holder[] holders; TextView time; TextView hourTime; Drawable background; @@ -122,16 +133,23 @@ public void recolor() { public void setSize(int n) { content.removeAllViews(); - holdes = new Holder[n]; + holders = new Holder[n]; for (int i = 0; i < n; i++) { - holdes[i] = new Holder(); - content.addView(holdes[i].root); + holders[i] = new Holder(); + content.addView(holders[i].root); } } - public void setData(int index, long date, ArrayList lines, boolean animateChanges) { - int n = holdes.length; + public void setData( + int index, + long date, + ArrayList lines, + boolean animateChanges, + int formatter, + float k + ) { + int n = holders.length; if (animateChanges) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { TransitionSet transition = new TransitionSet(); @@ -155,29 +173,34 @@ public void setData(int index, long date, ArrayList lines, boolean if (useHour) hourTime.setText(hourFormat.format(date)); } - int sum = 0; + long sum = 0; - for (int i = 0; i < n; i++) { + for (int i = 0; i < lines.size(); i++) { if (lines.get(i).enabled) sum += lines.get(i).line.y[index]; } for (int i = 0; i < n; i++) { - Holder h = holdes[i]; + Holder h = holders[i]; + int formatterIndex = i % 2; + LineViewData l = lines.get(formatter == ChartData.FORMATTER_TON ? i / 2 : i); - if (!lines.get(i).enabled) { + if (!l.enabled) { h.root.setVisibility(View.GONE); } else { - ChartData.Line l = lines.get(i).line; if (h.root.getMeasuredHeight() == 0) { h.root.requestLayout(); } h.root.setVisibility(View.VISIBLE); - h.value.setText(formatWholeNumber(l.y[index])); - h.signature.setText(l.name); - if (l.colorKey >= 0 && Theme.hasThemeKey(l.colorKey)) { - h.value.setTextColor(Theme.getColor(l.colorKey, resourcesProvider)); + h.value.setText(formatWholeNumber(l.line.y[index], formatter, formatterIndex, h.value, k)); + if (formatter == ChartData.FORMATTER_TON) { + h.signature.setText(LocaleController.formatString(formatterIndex == 0 ? R.string.MonetizationChartInTON : R.string.MonetizationChartInUSD, l.line.name)); + } else { + h.signature.setText(l.line.name); + } + if (l.line.colorKey >= 0 && Theme.hasThemeKey(l.line.colorKey)) { + h.value.setTextColor(Theme.getColor(l.line.colorKey, resourcesProvider)); } else { - h.value.setTextColor(Theme.getCurrentTheme().isDark() ? l.colorDark : l.color); + h.value.setTextColor(Theme.getCurrentTheme().isDark() ? l.line.colorDark : l.line.color); } h.signature.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); @@ -214,14 +237,30 @@ private String capitalize(String s) { return s; } - - public String formatWholeNumber(int v) { + private DecimalFormat formatterTON; + public CharSequence formatWholeNumber(long v, int formatter, int formatterIndex, TextView textView, float k) { + if (formatter == ChartData.FORMATTER_TON) { + if (formatterIndex == 0) { + if (formatterTON == null) { + DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US); + symbols.setDecimalSeparator('.'); + formatterTON = new DecimalFormat("#.##", symbols); + formatterTON.setMinimumFractionDigits(2); + formatterTON.setMaximumFractionDigits(6); + formatterTON.setGroupingUsed(false); + } + formatterTON.setMaximumFractionDigits(v > 1_000_000_000 ? 2 : 6); + return ChannelMonetizationLayout.replaceTON("TON " + formatterTON.format(v / 1_000_000_000.), textView.getPaint(), .82f, false); + } else { + return "~" + BillingController.getInstance().formatCurrency((long) (v / k), "USD"); + } + } float num_ = v; int count = 0; if (v < 10_000) { return String.format("%d", v); } - while (num_ >= 10_000 && count < AndroidUtilities.numbersSignatureArray.length - 1) { + while (num_ >= 1_000 && count < AndroidUtilities.numbersSignatureArray.length - 1) { num_ /= 1000; count++; } @@ -255,7 +294,7 @@ public void setUseWeek(boolean useWeek) { } class Holder { - final TextView value; + final AnimatedEmojiSpan.TextViewEmojis value; final TextView signature; TextView percentage; final LinearLayout root; @@ -268,21 +307,21 @@ class Holder { root.addView(percentage = new TextView(getContext())); percentage.getLayoutParams().width = AndroidUtilities.dp(36); percentage.setVisibility(GONE); - percentage.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + percentage.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); percentage.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); } - root.addView(signature = new TextView(getContext())); - signature.getLayoutParams().width = showPercentage ? AndroidUtilities.dp(80) : AndroidUtilities.dp(96); - root.addView(value = new TextView(getContext()), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + root.addView(signature = new TextView(getContext()), LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 0, 0, 20, 0)); +// signature.getLayoutParams().width = showPercentage ? AndroidUtilities.dp(80) : AndroidUtilities.dp(96); + root.addView(value = new AnimatedEmojiSpan.TextViewEmojis(getContext()), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); signature.setGravity(Gravity.START); value.setGravity(Gravity.END); - value.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + value.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); value.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); - value.setMinEms(4); - value.setMaxEms(4); +// value.setMinEms(4); +// value.setMaxEms(4); signature.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/LineViewData.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/LineViewData.java index 0d1f7256a7..19ad59401e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/LineViewData.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/LineViewData.java @@ -37,11 +37,11 @@ public class LineViewData { private Theme.ResourcesProvider resourcesProvider; - public LineViewData(ChartData.Line line) { - this(line, null); + public LineViewData(ChartData.Line line, boolean bar) { + this(line, bar, null); } - public LineViewData(ChartData.Line line, Theme.ResourcesProvider resourcesProvider) { + public LineViewData(ChartData.Line line, boolean bar, Theme.ResourcesProvider resourcesProvider) { this.resourcesProvider = resourcesProvider; this.line = line; @@ -62,8 +62,8 @@ public LineViewData(ChartData.Line line, Theme.ResourcesProvider resourcesProvid selectionPaint.setColor(line.color); - linesPath = new float[line.y.length << 2]; - linesPathBottom = new float[line.y.length << 2]; + linesPath = new float[bar ? (8 * line.y.length) : line.y.length << 2]; + linesPathBottom = new float[bar ? (8 * line.y.length) : line.y.length << 2]; } public void updateColors() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/StackBarViewData.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/StackBarViewData.java index 9ca28a2c4c..2f8a70c3aa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/StackBarViewData.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/StackBarViewData.java @@ -25,7 +25,7 @@ public StackBarViewData(ChartData.Line line) { } public StackBarViewData(ChartData.Line line, Theme.ResourcesProvider resourcesProvider) { - super(line); + super(line, false); this.resourcesProvider = resourcesProvider; paint.setStrokeWidth(AndroidUtilities.dpf2(1)); paint.setStyle(Paint.Style.STROKE); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/StackLinearViewData.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/StackLinearViewData.java index e291921847..bb56bb5388 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/StackLinearViewData.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/StackLinearViewData.java @@ -8,7 +8,7 @@ public class StackLinearViewData extends LineViewData { public StackLinearViewData(ChartData.Line line) { - super(line); + super(line, false); paint.setStyle(Paint.Style.FILL); if (BaseChartView.USE_LINES) { paint.setAntiAlias(false); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java index 8de1203c36..591419edab 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -9,6 +9,7 @@ package org.telegram.ui; import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.getString; import android.Manifest; import android.animation.Animator; @@ -204,9 +205,13 @@ import org.telegram.ui.ActionBar.ThemeDescription; import org.telegram.ui.Adapters.FiltersView; import org.telegram.ui.Adapters.MessagesSearchAdapter; -import org.telegram.ui.Business.BusinessChatEmptyView; +import org.telegram.ui.Business.BusinessBotButton; +import org.telegram.ui.Business.BusinessLinksActivity; +import org.telegram.ui.Business.BusinessLinksController; +import org.telegram.ui.Business.BusinessLinksEmptyView; import org.telegram.ui.Business.QuickRepliesActivity; import org.telegram.ui.Business.QuickRepliesController; +import org.telegram.ui.Business.QuickRepliesEmptyView; import org.telegram.ui.Cells.BotHelpCell; import org.telegram.ui.Cells.BotSwitchCell; import org.telegram.ui.Cells.ChatActionCell; @@ -217,6 +222,7 @@ import org.telegram.ui.Cells.ContextLinkCell; import org.telegram.ui.Cells.DialogCell; import org.telegram.ui.Cells.MentionCell; +import org.telegram.ui.Cells.ProfileChannelCell; import org.telegram.ui.Cells.ShareDialogCell; import org.telegram.ui.Cells.StickerCell; import org.telegram.ui.Cells.TextCell; @@ -245,6 +251,8 @@ import org.telegram.ui.Stories.recorder.PreviewView; import org.telegram.ui.Stories.recorder.StoryEntry; import org.telegram.ui.Stories.recorder.StoryRecorder; +import org.telegram.ui.bots.BotCommandsMenuView; +import org.telegram.ui.bots.BotWebViewSheet; import java.io.BufferedWriter; import java.io.ByteArrayOutputStream; @@ -271,6 +279,7 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; import cn.hutool.core.util.StrUtil; import kotlin.Unit; @@ -349,6 +358,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private final static int nkbtn_greatOrPoor = 2027; private final static int nkbtn_repeatascopy = 2028; private final static int nkbtn_setReminder = 2029; + private final static int nkbtn_sticker_copy = 2031; + private final static int nkbtn_sticker_copy_png = 2032; public int shareAlertDebugMode = DEBUG_SHARE_ALERT_MODE_NORMAL; @@ -422,8 +433,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private TextView replyButton; @Nullable private FrameLayout emptyViewContainer; + private LinearLayout emptyViewContent; private ChatGreetingsView greetingsViewContainer; - private BusinessChatEmptyView businessEmptyView; + private ChatActionCell greetingsInfo; + private QuickRepliesEmptyView quickRepliesEmptyView; + private BusinessLinksEmptyView businessLinksEmptyView; public ChatActivityFragmentView contentView; private ChatBigEmptyView bigEmptyView; private ArrayList actionModeViews = new ArrayList<>(); @@ -462,6 +476,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private HintView2 savedMessagesSearchHint; private HintView2 savedMessagesTagHint; private HintView2 groupEmojiPackHint; + private HintView2 botMessageHint; private int reactionsMentionCount; private FrameLayout reactionsMentiondownButton; @@ -495,6 +510,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Nullable private TranslateButton translateButton; @Nullable + private BusinessBotButton bizBotButton; + @Nullable private View topViewSeparator1, topViewSeparator2, topViewSeparator3; @Nullable private LinkSpanDrawable.LinksTextView emojiStatusSpamHint; @@ -553,6 +570,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private BlurredFrameLayout searchContainer; private ImageView searchCalendarButton; private ImageView searchUserButton; + private ImageView searchFilterButton; private AnimatedTextView searchCountText; private AnimatedTextView searchExpandList; private AnimatedTextView searchOtherButton; @@ -586,6 +604,7 @@ public ArrayList getFilteredMessages() { private boolean searchingFiltered; private boolean searching; private String searchingQuery; + private TLRPC.MessagesFilter searchingType; private UndoView undoView; private UndoView topUndoView; private Bulletin pinBulletin; @@ -608,6 +627,9 @@ public ArrayList getFilteredMessages() { public static final int MODE_PINNED = 2; public static final int MODE_SAVED = 3; public static final int MODE_QUICK_REPLIES = 5; + public static final int MODE_EDIT_BUSINESS_LINK = 6; + + public TLRPC.TL_businessChatLink businessLink = null; public String quickReplyShortcut; private int chatMode; @@ -835,7 +857,7 @@ public int getColor(int key) { skeletonOutlinePaint.setStrokeWidth(AndroidUtilities.dp(1)); } - private String inlineQueryForInput; + private String textToSet; private boolean premiumInvoiceBot; private boolean showScrollToMessageError; private int startLoadFromMessageId; @@ -873,6 +895,9 @@ public int getColor(int key) { protected TLRPC.ChatFull chatInfo; protected TLRPC.UserFull userInfo; + public ProfileChannelCell.ChannelMessageFetcher profileChannelMessageFetcher; + public ProfileBirthdayEffect.BirthdayEffectFetcher birthdayAssetsFetcher; + private LongSparseArray botInfo = new LongSparseArray<>(); private String botUser; private long inlineReturn; @@ -1029,6 +1054,8 @@ public void run() { private final ChatMessagesMetadataController chatMessagesMetadataController = new ChatMessagesMetadataController(this); private TLRPC.TL_channels_sendAsPeers sendAsPeersObj; + private TLRPC.TL_account_resolvedBusinessChatLinks resolvedChatLink; + private boolean switchFromTopics; private boolean switchingFromTopics; private float switchingFromTopicsProgress; @@ -1066,6 +1093,9 @@ public void run() { private final static int OPTION_TRANSCRIBE = 30; private final static int OPTION_HIDE_SPONSORED_MESSAGE = 31; private final static int OPTION_VIEW_IN_TOPIC = 32; + private final static int OPTION_ABOUT_REVENUE_SHARING_ADS = 33; + private final static int OPTION_REPORT_AD = 34; + private final static int OPTION_REMOVE_ADS = 35; private final static int OPTION_SEND_NOW = 100; private final static int OPTION_EDIT_SCHEDULE_TIME = 102; private final static int OPTION_SPEED_PROMO = 103; @@ -1451,6 +1481,11 @@ public void sendButtonPressed(int index, VideoEditedInfo videoEditedInfo, boolea private ActionBarMenuItem actionModeOtherItem; // NekoX + private final static int copy_business_link = 65; + private final static int share_business_link = 66; + private final static int rename_business_link = 67; + private final static int delete_business_link = 68; + private final static int id_chat_compose_panel = 1000; private final static int to_the_beginning = 200; private final static int to_the_message = 201; @@ -2095,7 +2130,7 @@ public void onTextSpansChanged(CharSequence text) { @Override public void needSendTyping() { - if (chatMode == MODE_QUICK_REPLIES) return; + if (chatMode == MODE_QUICK_REPLIES || chatMode == MODE_EDIT_BUSINESS_LINK) return; getMessagesController().sendTyping(dialog_id, threadMessageId, 0, classGuid); } @@ -2433,7 +2468,7 @@ public boolean onFragmentCreate() { attachMenuBotStartCommand = arguments.getString("attach_bot_start_command", null); inlineReturn = arguments.getLong("inline_return", 0); String inlineQuery = arguments.getString("inline_query"); - inlineQueryForInput = arguments.getString("inline_query_input"); + textToSet = arguments.getString("start_text"); premiumInvoiceBot = arguments.getBoolean("premium_bot", false); startLoadFromMessageId = arguments.getInt("message_id", 0); startLoadFromDate = arguments.getInt("start_from_date", 0); @@ -2572,6 +2607,16 @@ public boolean onFragmentCreate() { dialog_id = DialogObject.makeEncryptedDialogId(encId); maxMessageId[0] = maxMessageId[1] = Integer.MIN_VALUE; minMessageId[0] = minMessageId[1] = Integer.MAX_VALUE; + } else if (chatMode == MODE_EDIT_BUSINESS_LINK) { + String businessLinkArgument = arguments.getString("business_link"); + if (businessLinkArgument == null) { + return false; + } + businessLink = BusinessLinksController.getInstance(currentAccount).findLink(businessLinkArgument); + if (businessLink == null) { + return false; + } + forceEmptyHistory(); } else { return false; } @@ -2622,6 +2667,7 @@ public boolean onFragmentCreate() { getNotificationCenter().addObserver(this, NotificationCenter.didVerifyMessagesStickers); } } + getNotificationCenter().addObserver(this, NotificationCenter.premiumFloodWaitReceived); getNotificationCenter().addObserver(this, NotificationCenter.messagesDidLoad); NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.emojiLoaded); NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.invalidateMotionBackground); @@ -2643,6 +2689,7 @@ public boolean onFragmentCreate() { getNotificationCenter().addObserver(this, NotificationCenter.messageSendError); getNotificationCenter().addObserver(this, NotificationCenter.chatInfoDidLoad); getNotificationCenter().addObserver(this, NotificationCenter.groupRestrictionsUnlockedByBoosts); + getNotificationCenter().addObserver(this, NotificationCenter.customStickerCreated); getNotificationCenter().addObserver(this, NotificationCenter.contactsDidLoad); getNotificationCenter().addObserver(this, NotificationCenter.messagePlayingProgressDidChanged); getNotificationCenter().addObserver(this, NotificationCenter.messagePlayingDidReset); @@ -2692,6 +2739,10 @@ public boolean onFragmentCreate() { getNotificationCenter().addObserver(this, NotificationCenter.savedMessagesDialogsUpdate); getNotificationCenter().addObserver(this, NotificationCenter.quickRepliesDeleted); getNotificationCenter().addObserver(this, NotificationCenter.quickRepliesUpdated); + if (chatMode == MODE_EDIT_BUSINESS_LINK) { + getNotificationCenter().addObserver(this, NotificationCenter.businessLinksUpdated); + } + if (actionBarSearchTags != null) { actionBarSearchTags.attach(); } @@ -2854,7 +2905,9 @@ public boolean onFragmentCreate() { if (isTopic) { getMessagesController().getTopicsController().getTopicRepliesCount(dialog_id, getTopicId()); } - getMessagesController().getSavedMessagesController().preloadDialogs(false); + if (chatMode != MODE_EDIT_BUSINESS_LINK) { + getMessagesController().getSavedMessagesController().preloadDialogs(false); + } if (chatMode == MODE_SAVED) { getMessagesController().getSavedMessagesController().checkSavedDialogCount(getTopicId()); } @@ -2993,6 +3046,7 @@ public void onFragmentDestroy() { getNotificationCenter().removePostponeNotificationsCallback(postponeNotificationsWhileLoadingCallback); getMessagesController().setLastCreatedDialogId(dialog_id, chatMode == MODE_SCHEDULED, false); getNotificationCenter().removeObserver(this, NotificationCenter.messagesDidLoad); + getNotificationCenter().removeObserver(this, NotificationCenter.premiumFloodWaitReceived); NotificationCenter.getGlobalInstance().removeObserver(this, NotificationCenter.emojiLoaded); NotificationCenter.getGlobalInstance().removeObserver(this, NotificationCenter.invalidateMotionBackground); getNotificationCenter().removeObserver(this, NotificationCenter.didUpdateConnectionState); @@ -3011,6 +3065,7 @@ public void onFragmentDestroy() { getNotificationCenter().removeObserver(this, NotificationCenter.messageSendError); getNotificationCenter().removeObserver(this, NotificationCenter.chatInfoDidLoad); getNotificationCenter().removeObserver(this, NotificationCenter.groupRestrictionsUnlockedByBoosts); + getNotificationCenter().removeObserver(this, NotificationCenter.customStickerCreated); getNotificationCenter().removeObserver(this, NotificationCenter.didLoadChatInviter); getNotificationCenter().removeObserver(this, NotificationCenter.groupCallUpdated); getNotificationCenter().removeObserver(this, NotificationCenter.encryptedChatUpdated); @@ -3079,6 +3134,10 @@ public void onFragmentDestroy() { getNotificationCenter().removeObserver(this, NotificationCenter.savedMessagesDialogsUpdate); getNotificationCenter().removeObserver(this, NotificationCenter.quickRepliesDeleted); getNotificationCenter().removeObserver(this, NotificationCenter.quickRepliesUpdated); + if (chatMode == MODE_EDIT_BUSINESS_LINK) { + getNotificationCenter().removeObserver(this, NotificationCenter.businessLinksUpdated); + } + if (actionBarSearchTags != null) { actionBarSearchTags.detach(); } @@ -3134,6 +3193,10 @@ public void onFragmentDestroy() { progressDialogCurrent = null; } chatMessagesMetadataController.onFragmentDestroy(); + if (birthdayAssetsFetcher != null) { + birthdayAssetsFetcher.detach(true); + birthdayAssetsFetcher = null; + } } private ArrayList getSelectedMessages() { @@ -3358,6 +3421,12 @@ public void onItemClick(final int id) { showQuickRepliesRemoveAlert(); return; } + if (chatMode == MODE_EDIT_BUSINESS_LINK && chatActivityEnterView.businessLinkHasChanges()) { + showBusinessLinksDiscardAlert(() -> { + finishFragment(); + }); + return; + } if (!checkRecordLocked(true)) { finishFragment(); } @@ -3683,6 +3752,39 @@ public void run(boolean revoke) { // Bundle bundle = new Bundle(); // bundle.putLong("chat_id", -dialog_id); // presentFragment(new TopicsFragment(bundle)); + } else if (id == copy_business_link) { + AndroidUtilities.addToClipboard(businessLink.link); + BulletinFactory.of(LaunchActivity.getLastFragment()).createCopyLinkBulletin().show(); + } else if (id == share_business_link) { + Runnable shareTask = () -> { + Intent intent = new Intent(getContext(), LaunchActivity.class); + intent.setAction(Intent.ACTION_SEND); + intent.setType("text/plain"); + intent.putExtra(Intent.EXTRA_TEXT, businessLink.link); + startActivityForResult(intent, 500); + }; + if (chatActivityEnterView.businessLinkHasChanges()) { + showBusinessLinksDiscardAlert(shareTask); + } else { + shareTask.run(); + } + } else if (id == rename_business_link) { + BusinessLinksActivity.openRenameAlert(getContext(), currentAccount, businessLink, resourceProvider, false); + } else if (id == delete_business_link) { + AlertDialog dialog = new AlertDialog.Builder(getContext(), getResourceProvider()) + .setTitle(getString(R.string.BusinessLinksDeleteTitle)) + .setMessage(getString(R.string.BusinessLinksDeleteMessage)) + .setPositiveButton(getString(R.string.Remove), (di, w) -> { + finishFragment(); + getNotificationCenter().postNotificationName(NotificationCenter.needDeleteBusinessLink, businessLink); + }) + .setNegativeButton(getString(R.string.Cancel), null) + .create(); + showDialog(dialog); + TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); + if (button != null) { + button.setTextColor(getThemedColor(Theme.key_text_RedBold)); + } } else { nkbtn_onclick_actionbar(id); } @@ -4024,7 +4126,7 @@ public void toggleMute() { } if (currentUser != null) { - addContactItem = headerItem.lazilyAddSubItem(share_contact, R.drawable.msg_addcontact, ""); + addContactItem = headerItem.lazilyAddSubItem(share_contact, R.drawable.msg_addcontact, LocaleController.getString("AddToContacts", R.string.AddToContacts)); } shareKeyItem = headerItem.lazilyAddSubItem(nkheaderbtn_share_key, R.drawable.baseline_vpn_key_24, LocaleController.getString("ShareMyKey", R.string.ShareMyKey)); @@ -4080,6 +4182,14 @@ public void toggleMute() { headerItem.lazilyAddSubItem(bot_help, R.drawable.msg_help, LocaleController.getString("BotHelp", R.string.BotHelp)); updateBotButtons(); } + } else if (chatMode == MODE_EDIT_BUSINESS_LINK) { + headerItem = menu.addItem(chat_menu_options, R.drawable.ic_ab_other, themeDelegate); + headerItem.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + + headerItem.lazilyAddSubItem(copy_business_link, R.drawable.msg_copy, getString(R.string.Copy)); + headerItem.lazilyAddSubItem(share_business_link, R.drawable.msg_share, getString(R.string.LinkActionShare)); + headerItem.lazilyAddSubItem(rename_business_link, R.drawable.msg_edit, getString(R.string.Rename)); + headerItem.lazilyAddSubItem(delete_business_link, R.drawable.msg_delete, getString(R.string.Delete)).setColors(Theme.getColor(Theme.key_text_RedRegular), Theme.getColor(Theme.key_text_RedRegular)); } if (ChatObject.isForum(currentChat) && isTopic && getParentLayout() != null && getParentLayout().getFragmentStack() != null && chatMode == MODE_DEFAULT) { boolean hasMyForum = false; @@ -6260,6 +6370,15 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { AndroidUtilities.runOnUIThread(ChatActivity.this::checkSavedMessagesTagHint, 2000); } } + if (botMessageHint != null && botMessageHint.shown()) { + botMessageHint.hide(); + } else { + AndroidUtilities.cancelRunOnUIThread(ChatActivity.this::checkBotMessageHint); + AndroidUtilities.runOnUIThread(ChatActivity.this::checkBotMessageHint, 2000); + } + if (chatActivityEnterView != null) { + chatActivityEnterView.hideHints(); + } } }); @@ -6414,6 +6533,7 @@ protected void onDraw(Canvas canvas) { restartTopicButton = null; closeReportSpam = null; translateButton = null; + bizBotButton = null; pagedownButton = new FrameLayout(context); pagedownButton.setVisibility(View.INVISIBLE); @@ -6496,11 +6616,11 @@ public void getOutline(View view, Outline outline) { ScaleStateListAnimator.apply(searchDownButton, .12f, 2f); searchUpButton.setOnClickListener(view -> { - getMediaDataController().searchMessagesInChat(null, dialog_id, mergeDialogId, classGuid, reversed ? 2 : 1, threadMessageId, searchingUserMessages, searchingChatMessages, searchingReaction); + getMediaDataController().searchMessagesInChat(null, dialog_id, mergeDialogId, classGuid, reversed ? 2 : 1, threadMessageId, searchingUserMessages, searchingChatMessages, searchingReaction, searchingType); showMessagesSearchListView(false); }); searchDownButton.setOnClickListener(view -> { - getMediaDataController().searchMessagesInChat(null, dialog_id, mergeDialogId, classGuid, reversed ? 1 : 2, threadMessageId, searchingUserMessages, searchingChatMessages, searchingReaction); + getMediaDataController().searchMessagesInChat(null, dialog_id, mergeDialogId, classGuid, reversed ? 1 : 2, threadMessageId, searchingUserMessages, searchingChatMessages, searchingReaction, searchingType); showMessagesSearchListView(false); }); @@ -7204,7 +7324,7 @@ public void onDraw(Canvas canvas) { replyButton = null; forwardButton = null; - chatActivityEnterView = new ChatActivityEnterView(getParentActivity(), contentView, this, true, themeDelegate) { + chatActivityEnterView = new ChatActivityEnterView(getParentActivity(), contentView, this, chatMode != MODE_EDIT_BUSINESS_LINK, themeDelegate) { int lastContentViewHeight; int messageEditTextPredrawHeigth; @@ -7366,7 +7486,77 @@ protected void onLineCountChanged(int oldLineCount, int newLineCount) { } }; chatActivityEnterView.getEditField().adaptiveCreateLinkDialog = true; - chatActivityEnterView.setDelegate(new ChatActivityEnterViewDelegate()); + if (chatMode == MODE_EDIT_BUSINESS_LINK) { + chatActivityEnterView.setDelegate(new ChatActivityEnterView.ChatActivityEnterViewDelegate() { + @Override + public void onMessageSend(CharSequence message, boolean notify, int scheduleDate) {} + + @Override + public void needSendTyping() {} + + @Override + public void onTextChanged(CharSequence text, boolean bigChange, boolean fromDraft) {} + + @Override + public void onTextSelectionChanged(int start, int end) {} + + @Override + public void onTextSpansChanged(CharSequence text) {} + + @Override + public void onAttachButtonHidden() {} + + @Override + public void onAttachButtonShow() {} + + @Override + public void onWindowSizeChanged(int size) {} + + @Override + public void onStickersTab(boolean opened) {} + + @Override + public void onMessageEditEnd(boolean loading) {} + + @Override + public void didPressAttachButton() {} + + @Override + public void needStartRecordVideo(int state, boolean notify, int scheduleDate, int ttl) {} + + @Override + public void toggleVideoRecordingPause() {} + + @Override + public void needChangeVideoPreviewState(int state, float seekProgress) {} + + @Override + public void onSwitchRecordMode(boolean video) {} + + @Override + public void onPreAudioVideoRecord() {} + + @Override + public void needStartRecordAudio(int state) {} + + @Override + public void needShowMediaBanHint() {} + + @Override + public void onStickersExpandedChange() {} + + @Override + public void onUpdateSlowModeButton(View button, boolean show, CharSequence time) {} + + @Override + public void onSendLongClick() {} + + @Override + public void onAudioVideoInterfaceUpdated() {} + }); + } else { + chatActivityEnterView.setDelegate(new ChatActivityEnterViewDelegate()); + } chatActivityEnterView.setDialogId(dialog_id, currentAccount); if (chatInfo != null) { chatActivityEnterView.setChatInfo(chatInfo); @@ -7376,9 +7566,9 @@ protected void onLineCountChanged(int oldLineCount, int newLineCount) { chatActivityEnterView.updateBotWebView(false); chatActivityEnterView.setMinimumHeight(AndroidUtilities.dp(51)); chatActivityEnterView.setAllowStickersAndGifs(true, true, currentEncryptedChat == null || AndroidUtilities.getPeerLayerVersion(currentEncryptedChat.layer) >= 46); - if (inlineQueryForInput != null) { - chatActivityEnterView.setFieldText(inlineQueryForInput); - inlineQueryForInput = null; + if (textToSet != null) { + chatActivityEnterView.setFieldText(textToSet); + textToSet = null; } if (inPreviewMode || isInsideContainer) { chatActivityEnterView.setVisibility(View.INVISIBLE); @@ -7387,7 +7577,9 @@ protected void onLineCountChanged(int oldLineCount, int newLineCount) { chatActivityEnterView.setBotInfo(botInfo, false); } contentView.addView(chatActivityEnterView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.BOTTOM)); - chatActivityEnterView.checkChannelRights(); + if (chatMode != MODE_EDIT_BUSINESS_LINK) { + chatActivityEnterView.checkChannelRights(); + } chatActivityEnterTopView = new ChatActivityEnterTopView(context) { @Override @@ -7434,6 +7626,10 @@ public void setVisibility(int visibility) { replyLineView.setBackgroundColor(getThemedColor(Theme.key_chat_replyPanelLine)); chatActivityEnterView.addTopView(chatActivityEnterTopView, replyLineView, 48); + if (chatMode == MODE_EDIT_BUSINESS_LINK) { + chatActivityEnterView.setEditingBusinessLink(businessLink); + } + final FrameLayout replyLayout = new FrameLayout(context); chatActivityEnterTopView.addReplyView(replyLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.NO_GRAVITY, 0, 0, 52, 0)); @@ -8119,7 +8315,9 @@ public void onAllEffectsEnd() { } // BackButtonMenu.addToAccessedDialogs(currentAccount, currentChat, currentUser, dialog_id, dialogFolderId, dialogFilterId); - BackButtonMenuRecent.addToRecentDialogs(currentAccount, currentUser != null ? currentUser.id : -currentChat.id); + if (currentUser != null || currentChat != null) { + BackButtonMenuRecent.addToRecentDialogs(currentAccount, currentUser != null ? currentUser.id : -currentChat.id); + } if (getDialogId() == getUserConfig().getClientUserId() && chatMode != MODE_SAVED) { savedMessagesHint = new HintView2(context, HintView2.DIRECTION_TOP); @@ -8187,7 +8385,7 @@ protected boolean setFilter(ReactionsLayoutInBubble.VisibleReaction reaction) { updateSearchUpDownButtonVisibility(true); updatePagedownButtonVisibility(true); searchingQuery = searchItem.getSearchField().getText().toString(); - getMediaDataController().searchMessagesInChat(searchingQuery, dialog_id, mergeDialogId, classGuid, 0, threadMessageId, false, searchingUserMessages, searchingChatMessages, !TextUtils.isEmpty(searchingQuery) || searchingReaction != null, searchingReaction); + getMediaDataController().searchMessagesInChat(searchingQuery, dialog_id, mergeDialogId, classGuid, 0, threadMessageId, false, searchingUserMessages, searchingChatMessages, !TextUtils.isEmpty(searchingQuery) || searchingReaction != null, searchingReaction, searchingType); AndroidUtilities.hideKeyboard(searchItem.getSearchField()); return true; } @@ -8218,6 +8416,79 @@ protected void onShownUpdate(boolean finish) { return fragmentView; } + private void checkBotMessageHint() { + if (botMessageHint != null) { + return; + } + ChatMessageCell cell = null; + for (int i = chatListView.getChildCount() - 1; i >= 0; --i) { + View child = chatListView.getChildAt(i); + if (child instanceof ChatMessageCell) { + ChatMessageCell messageCell = ((ChatMessageCell) child); + MessageObject msg = messageCell.getPrimaryMessageObject(); + if (msg != null && msg.messageOwner != null && msg.messageOwner.via_business_bot_id != 0) { + cell = messageCell; + } + } + } + showBotMessageHint(cell, false); + } + + private boolean bizbothint; + private void showBotMessageHint(ChatMessageCell cell, boolean byClick) { + if ( + getContext() == null || cell == null || cell.timeLayout == null || + cell.getPrimaryMessageObject() == null || cell.getPrimaryMessageObject().messageOwner == null || + cell.getPrimaryMessageObject().messageOwner.via_business_bot_id == 0) { + return; + } + if (!byClick) { + if (getMessagesController().getMainSettings().getBoolean("bizbothint", false)) { + return; + } + getMessagesController().getMainSettings().edit().putBoolean("bizbothint", true).apply(); + if (bizbothint) return; + bizbothint = true; + } + if (botMessageHint != null) { + if (byClick) { + HintView2 hint = botMessageHint; + hint.setOnHiddenListener(() -> contentView.removeView(hint)); + hint.hide(); + botMessageHint = null; + } else { + return; + } + } + botMessageHint = new HintView2(getContext(), HintView2.DIRECTION_BOTTOM) + .setMultilineText(true) + .setTextAlign(Layout.Alignment.ALIGN_NORMAL) + .setDuration(-1) + .setHideByTouch(true) + .useScale(true) + .setCloseButton(true) + .setRounding(8); + botMessageHint.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.MessageBizBot))); + botMessageHint.setMaxWidthPx(HintView2.cutInFancyHalf(botMessageHint.getText(), botMessageHint.getTextPaint())); + contentView.addView(botMessageHint, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 120, Gravity.TOP | Gravity.FILL_HORIZONTAL, 16, 0, 16, 0)); + contentView.post(() -> { + int[] loc = new int[2]; + cell.getLocationInWindow(loc); + botMessageHint.setTranslationY(loc[1] - botMessageHint.getTop() - dp(120) + cell.getTimeY()); + botMessageHint.setJointPx(0, -dp(16) + loc[0] + cell.timeX + cell.timeWidth - cell.signWidth / 2f); + botMessageHint.show(); + }); + } + + private void hideHints() { + if (savedMessagesTagHint != null && savedMessagesTagHint.shown()) { + savedMessagesTagHint.hide(); + } + if (chatActivityEnterView != null) { + chatActivityEnterView.hideHints(); + } + } + public void setTagFilter(ReactionsLayoutInBubble.VisibleReaction reaction) { if (actionBarSearchTags != null) { actionBarSearchTags.setChosen(reaction, true); @@ -8236,7 +8507,7 @@ public void setSearchQuery(String text) { public void hitSearch() { searchWas = true; updateSearchButtons(0, 0, -1); - getMediaDataController().searchMessagesInChat(searchingQuery, dialog_id, mergeDialogId, classGuid, 0, threadMessageId, searchingUserMessages, searchingChatMessages, searchingReaction); + getMediaDataController().searchMessagesInChat(searchingQuery, dialog_id, mergeDialogId, classGuid, 0, threadMessageId, searchingUserMessages, searchingChatMessages, searchingReaction, searchingType); searchItemVisible = searching = !TextUtils.isEmpty(searchingQuery) || searchingReaction != null; updateBottomOverlay(); updateSearchUpDownButtonVisibility(true); @@ -8862,7 +9133,7 @@ protected void dispatchDraw(Canvas canvas) { addToContactsButton.setTextColor(getThemedColor(Theme.key_chat_addContact)); addToContactsButton.setVisibility(View.GONE); addToContactsButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - addToContactsButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + addToContactsButton.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); addToContactsButton.setSingleLine(true); addToContactsButton.setMaxLines(1); addToContactsButton.setPadding(AndroidUtilities.dp(4), 0, AndroidUtilities.dp(4), 0); @@ -8989,6 +9260,36 @@ protected void onCloseClick() { topChatPanelView.addView(translateButton, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 36, Gravity.LEFT | Gravity.BOTTOM, 0, 0, 0, 2)); } + private void createBizBotButton() { + if (bizBotButton != null || getContext() == null) { + return; + } + + createTopPanel(); + if (topChatPanelView == null) { + return; + } + bizBotButton = new BusinessBotButton(getContext(), this, themeDelegate) { +// @Override +// protected void onButtonClick() { +// if (getUserConfig().isPremium()) { +// getMessagesController().getTranslateController().toggleTranslatingDialog(getDialogId()); +// } else { +// MessagesController.getNotificationsSettings(currentAccount).edit().putInt("dialog_show_translate_count" + getDialogId(), 14).commit(); +// showDialog(new PremiumFeatureBottomSheet(ChatActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_TRANSLATIONS, false)); +// } +// updateTopPanel(true); +// } +// +// @Override +// protected void onCloseClick() { +// MessagesController.getNotificationsSettings(currentAccount).edit().putInt("dialog_show_translate_count" + getDialogId(), 140).commit(); +// updateTopPanel(true); +// } + }; + topChatPanelView.addView(bizBotButton, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.BOTTOM, 0, 0, 0, 2)); + } + private void createUndoView() { if (undoView != null || getContext() == null) { return; @@ -9244,6 +9545,17 @@ public void onReactionClicked(View view, ReactionsLayoutInBubble.VisibleReaction tagSelector.setTranslationY(contentPanTranslation + (actionBarSearchTags != null ? actionBarSearchTags.getCurrentHeight() : 0)); } + private ArrayList> searchFilters = new ArrayList<>() {{ + add(Pair.create(LocaleController.getString(R.string.FilterAllChatsShort), null)); + add(Pair.create(LocaleController.getString(R.string.SharedMediaTab2), new TLRPC.TL_inputMessagesFilterPhotoVideo())); + add(Pair.create(LocaleController.getString(R.string.SharedVoiceTab2), new TLRPC.TL_inputMessagesFilterVoice())); + add(Pair.create(LocaleController.getString(R.string.SharedFilesTab2), new TLRPC.TL_inputMessagesFilterDocument())); + add(Pair.create(LocaleController.getString(R.string.SharedMusicTab2), new TLRPC.TL_inputMessagesFilterMusic())); + add(Pair.create(LocaleController.getString(R.string.SharedGIFsTab2), new TLRPC.TL_inputMessagesFilterGif())); + add(Pair.create(LocaleController.getString(R.string.ChatLocation), new TLRPC.TL_inputMessagesFilterGeo())); + add(Pair.create(LocaleController.getString(R.string.Mention), new TLRPC.TL_inputMessagesFilterMyMentions())); + }}; + private void createSearchContainer() { if (searchContainer != null || getContext() == null) { return; @@ -9271,6 +9583,9 @@ protected void measureChildWithMargins(View child, int parentWidthMeasureSpec, i if (searchUserButton != null && searchUserButton.getVisibility() != GONE) { leftMargin += 48; } + if (searchFilterButton != null && searchFilterButton.getVisibility() != GONE) { + leftMargin += 48; + } ((MarginLayoutParams) child.getLayoutParams()).leftMargin = AndroidUtilities.dp(leftMargin); } super.measureChildWithMargins(child, parentWidthMeasureSpec, widthUsed, parentHeightMeasureSpec, heightUsed); @@ -9347,6 +9662,7 @@ public void setVisibility(int visibility) { } searchCalendarButton.setVisibility(View.GONE); searchUserButton.setVisibility(View.GONE); + searchFilterButton.setVisibility(View.GONE); searchingForUser = true; searchingUserMessages = null; searchingChatMessages = null; @@ -9378,6 +9694,39 @@ public void run(int param) { }); searchCalendarButton.setContentDescription(LocaleController.getString("JumpToDate", R.string.JumpToDate)); + searchFilterButton = new ImageView(getContext()); + searchFilterButton.setScaleType(ImageView.ScaleType.CENTER); + searchFilterButton.setImageResource(R.drawable.ic_filter_list); + searchFilterButton.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_chat_searchPanelIcons), PorterDuff.Mode.MULTIPLY)); + searchFilterButton.setBackground(Theme.createSelectorDrawable(getThemedColor(Theme.key_actionBarActionModeDefaultSelector), 1)); + searchContainer.addView(searchFilterButton, LayoutHelper.createFrame(48, 48, Gravity.LEFT | Gravity.TOP, searchUserButton != null ? (96 - 2.66f) : 48, 0, 0, 0)); + searchFilterButton.setOnClickListener(view -> { + if (getParentActivity() == null) { + return; + } + + var filterPopup = ItemOptions.makeOptions(contentView, themeDelegate, searchFilterButton); + filterPopup.setDimAlpha(0); + for (var filter : searchFilters) { + filterPopup.add(0, filter.first, () -> { + if (searchingType == filter.second) { + return; + } + searchingType = filter.second; + getMediaDataController().clearFoundMessageObjects(); + updateSearchButtons(0, 0, -1); + updateSearchUpDownButtonVisibility(true); + updatePagedownButtonVisibility(true); + searchingQuery = searchItem.getSearchField().getText().toString(); + getMediaDataController().searchMessagesInChat(searchingQuery, dialog_id, mergeDialogId, classGuid, 0, threadMessageId, searchingUserMessages, searchingChatMessages, searchingReaction, searchingType); + }); + if (searchingType == filter.second) { + filterPopup.putCheck(); + } + } + filterPopup.show(); + }); + searchFilterButton.setContentDescription(LocaleController.getString("JumpToDate", R.string.JumpToDate)); } private void showSearchShowOther(boolean show) { @@ -9966,7 +10315,7 @@ private void searchUserMessages(TLRPC.User user, TLRPC.Chat chat) { mentionContainer.getAdapter().searchUsernameOrHashtag(null, 0, null, false, true); searchItem.setSearchFieldHint(null); searchItem.clearSearchText(); - getMediaDataController().searchMessagesInChat(searchingQuery = "", dialog_id, mergeDialogId, classGuid, 0, threadMessageId, searchingUserMessages, searchingChatMessages, searchingReaction); + getMediaDataController().searchMessagesInChat(searchingQuery = "", dialog_id, mergeDialogId, classGuid, 0, threadMessageId, searchingUserMessages, searchingChatMessages, searchingReaction, searchingType = null); } private void updateTranslateItemVisibility() { @@ -10578,6 +10927,9 @@ public void setVisibility(int visibility) { blurredView.setVisibility(View.VISIBLE); } + blurredView.setOnClickListener(e -> { + finishPreviewFragment(); + }); blurredView.setAlpha(0.0f); blurredView.animate().setListener(null).cancel(); blurredView.animate().alpha(1f).setListener(new AnimatorListenerAdapter() { @@ -11637,9 +11989,7 @@ public void onAnimationCancel(Animator animation) { if (searchExpandList != null) { searchExpandList.setText(LocaleController.getString(messagesSearchListView != null && messagesSearchListView.getTag() != null ? R.string.SearchAsChat : R.string.SearchAsList), !LocaleController.isRTL); } - if (savedMessagesTagHint != null && savedMessagesTagHint.shown()) { - savedMessagesTagHint.hide(); - } + hideHints(); } public boolean playFirstUnreadVoiceMessage() { @@ -11954,7 +12304,7 @@ private void showScheduledHint() { } private void showScheduledOrNoSoundHint() { - boolean disableNoSound = (UserObject.isUserSelf(currentUser) || (chatInfo != null && chatInfo.slowmode_next_send_date > 0) && chatMode == 0); + boolean disableNoSound = UserObject.isUserSelf(currentUser) || (chatInfo != null && chatInfo.slowmode_next_send_date > 0) && chatMode == 0 || chatMode == MODE_EDIT_BUSINESS_LINK; long scheduledOrNoSoundHintTimeFromLastSeen = System.currentTimeMillis() - SharedConfig.scheduledOrNoSoundHintSeenAt; long scheduledHintTimeFromLastSeen = System.currentTimeMillis() - SharedConfig.scheduledHintSeenAt; if (disableNoSound || SharedConfig.scheduledOrNoSoundHintShows >= 3 || scheduledOrNoSoundHintTimeFromLastSeen < 86400000L || scheduledHintTimeFromLastSeen < 86400000L || chatActivityEnterView.isEditingMessage()) { @@ -12350,12 +12700,35 @@ private void openAttachMenu() { } else { chatAttachAlert.setMaxSelectedPhotos(-1, true); } + chatAttachAlert.enableDefaultMode(); chatAttachAlert.init(); chatAttachAlert.getCommentTextView().setText(chatActivityEnterView.getFieldText()); chatAttachAlert.parentThemeDelegate = themeDelegate; showDialog(chatAttachAlert); } + public void openAttachMenuForCreatingSticker() { + ContentPreviewViewer.getInstance().setStickerSetForCustomSticker(null); + if (getParentActivity() == null) { + return; + } + createChatAttachView(); + chatAttachAlert.getPhotoLayout().loadGalleryPhotos(); + if (Build.VERSION.SDK_INT == 21 || Build.VERSION.SDK_INT == 22) { + chatActivityEnterView.closeKeyboard(); + } + chatAttachAlert.setMaxSelectedPhotos(1, false); + chatAttachAlert.setOpenWithFrontFaceCamera(true); + chatAttachAlert.enableStickerMode(); + chatAttachAlert.init(); + chatAttachAlert.parentThemeDelegate = themeDelegate; + if (visibleDialog != null) { + chatAttachAlert.show(); + } else { + showDialog(chatAttachAlert); + } + } + private void showFloatingDateView(boolean scroll) { if (floatingDateView == null || chatMode == MODE_QUICK_REPLIES) { return; @@ -14280,6 +14653,8 @@ public void updateMessagesVisiblePart(boolean inLayout) { float clipTopFinal = clipTop - chatListViewPaddingVisibleOffset; float clipBottomFinal = chatListView.getMeasuredHeight() - blurredViewBottomOffset; + boolean checkPremiumFloodWait = !UserConfig.getInstance(currentAccount).isPremium(); + for (int a = 0; a < count; a++) { View view = chatListView.getChildAt(a); MessageObject messageObject = null; @@ -14314,6 +14689,15 @@ public void updateMessagesVisiblePart(boolean inLayout) { } if (messageCell != null) { messageCell.setVisibleOnScreen(true, clipTopFinal - top, bottom - clipBottomFinal); + if (checkPremiumFloodWait) { + if (messageCell.checkLoadCaughtPremiumFloodWait()) { + showPremiumFloodWaitBulletin(false); + checkPremiumFloodWait = false; + } else if (messageCell.checkUploadCaughtPremiumFloodWait()) { + showPremiumFloodWaitBulletin(true); + checkPremiumFloodWait = false; + } + } } int viewTop = top >= 0 ? 0 : -top; @@ -14625,6 +15009,10 @@ public void updateMessagesVisiblePart(boolean inLayout) { AndroidUtilities.runOnUIThread(() -> { updatePinnedMessageView(animated, animateToNext); }); + } else if (isTopic && currentPinnedMessageId != 0 && (pinnedMessageView == null || pinnedMessageView.getTag() != null)) { + AndroidUtilities.runOnUIThread(() -> { + updatePinnedMessageView(animated, 0); + }); } else { updatePinnedListButton(animated); } @@ -15677,7 +16065,7 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { if (((int) getTag(BlurBehindDrawable.TAG_DRAWING_AS_BACKGROUND)) == BlurBehindDrawable.STATIC_CONTENT) { needBlur = child == actionBar || child == fragmentContextView || child == pinnedMessageView; } else { - needBlur = child == chatListView || child == chatActivityEnterView || chatActivityEnterView.isPopupView(child); + needBlur = child == chatListView || child == chatActivityEnterView || chatActivityEnterView.isPopupView(child) || child == bottomOverlayChat; } if (!needBlur) { return false; @@ -16102,6 +16490,15 @@ protected void dispatchDraw(Canvas canvas) { if (savedMessagesTagHint != null && savedMessagesTagHint.getVisibility() == View.VISIBLE) { super.drawChild(canvas, savedMessagesTagHint, SystemClock.uptimeMillis()); } + if (botMessageHint != null && botMessageHint.getVisibility() == View.VISIBLE) { + super.drawChild(canvas, botMessageHint, SystemClock.uptimeMillis()); + } + if (chatActivityEnterView != null && chatActivityEnterView.birthdayHint != null) { + canvas.save(); + canvas.translate(chatActivityEnterView.getX() + chatActivityEnterView.birthdayHint.getX(), chatActivityEnterView.getY() + chatActivityEnterView.birthdayHint.getY()); + chatActivityEnterView.birthdayHint.draw(canvas); + canvas.restore(); + } } if (fixedKeyboardHeight > 0 && keyboardHeight < AndroidUtilities.dp(20)) { @@ -17550,6 +17947,12 @@ public void updateTitle(boolean animated) { } else { avatarContainer.setTitle(quickReplyShortcut); } + } else if (chatMode == MODE_EDIT_BUSINESS_LINK) { + if (!TextUtils.isEmpty(businessLink.title)) { + avatarContainer.setTitle(businessLink.title); + } else { + avatarContainer.setTitle(LocaleController.getString(R.string.BusinessLink)); + } } else if (chatMode == MODE_SAVED) { long dialogId = threadMessageId; TLRPC.User user = null; @@ -18746,7 +19149,7 @@ public void didReceivedNotification(int id, int account, final Object... args) { if (messagesDict[loadIndex].indexOfKey(messageId) >= 0) { continue; } - if (threadMessageId != 0 && obj.messageOwner instanceof TLRPC.TL_messageEmpty) { + if (obj.messageOwner instanceof TLRPC.TL_messageEmpty) { continue; } if (getTopicId() != 0 && obj.messageOwner.action instanceof TLRPC.TL_messageActionTopicCreate) { @@ -19436,6 +19839,28 @@ public void didReceivedNotification(int id, int account, final Object... args) { if (messageEnterTransitionContainer != null) { messageEnterTransitionContainer.invalidate(); } + } else if (id == NotificationCenter.customStickerCreated) { + boolean isSending = args.length > 0 ? (Boolean) args[0] : false; + if (chatAttachAlert != null && chatAttachAlert.isShowing()) { + chatAttachAlert.dismiss(true); + } + if (isSending && chatActivityEnterView != null && chatActivityEnterView.isPopupShowing()) { + chatActivityEnterView.hidePopup(true); + } + if (args.length > 1 && args[1] instanceof TLRPC.TL_messages_stickerSet) { + TLRPC.StickerSet set = ((TLRPC.TL_messages_stickerSet) args[1]).set; + TLRPC.TL_inputStickerSetID inputStickerSet = new TLRPC.TL_inputStickerSetID(); + inputStickerSet.access_hash = set.access_hash; + inputStickerSet.id = set.id; + StickersAlert alert = new StickersAlert(getParentActivity(), ChatActivity.this, inputStickerSet, null, chatActivityEnterView, themeDelegate); + alert.setOnShowListener(dialog -> { + if (args.length > 2 && args[2] instanceof TLRPC.Document) { + TLRPC.Document stickerDocument = (TLRPC.Document) args[2]; + BulletinFactory.of((FrameLayout) alert.getContainerView(), resourceProvider).createEmojiBulletin(stickerDocument, LocaleController.formatString(R.string.StickersStickerAddedToSetToast, set.title)).setDuration(Bulletin.DURATION_LONG).show(); + } + }); + showDialog(alert); + } } else if (id == NotificationCenter.emojiLoaded) { if (chatListView != null) { chatListView.invalidateViews(); @@ -19567,7 +19992,7 @@ public void didReceivedNotification(int id, int account, final Object... args) { if (did == dialog_id) { boolean scheduled = (Boolean) args[2]; int mode = (Integer) args[3]; - if (mode != chatMode) { + if (mode != chatMode && chatMode != MODE_SAVED) { if (chatMode != MODE_SCHEDULED && mode == MODE_SCHEDULED && !isPaused && messagePreviewParams == null) { if (!arr.isEmpty() && arr.get(0).getId() < 0) { openScheduledMessages(); @@ -20715,7 +21140,7 @@ public void didReceivedNotification(int id, int account, final Object... args) { if (index >= 0 && index < messages.size()) { int position = index + chatAdapter.messagesStartRow; chatAdapter.updateRowAtPosition(position); - if (args.length > 3 && args[3] != null) { + if (args.length > 3 && args[3] != null || messageObject.messageOwner.voiceTranscriptionOpen) { for (int i = 0; i < chatListView.getChildCount(); ++i) { View child = chatListView.getChildAt(i); if (child instanceof ChatMessageCell && ((ChatMessageCell) child).getMessageObject() == messageObject) { @@ -21340,7 +21765,7 @@ public void didReceivedNotification(int id, int account, final Object... args) { if (currentUser != null && currentUser.id == uid) { userInfo = (TLRPC.UserFull) args[1]; if (greetingsViewContainer != null) { - greetingsViewContainer.setPremiumLock(userInfo != null && userInfo.contact_require_premium && !getUserConfig().isPremium(), dialog_id); + greetingsViewContainer.setPremiumLock(userInfo != null && getDialogId() != getUserConfig().getClientUserId() && userInfo.contact_require_premium && !getUserConfig().isPremium(), dialog_id); } updateBottomOverlay(); checkThemeEmoticonOrWallpaper(); @@ -21386,6 +21811,16 @@ public void didReceivedNotification(int id, int account, final Object... args) { loadingPinnedMessagesList = true; } updateVisibleWallpaperActions(); + if (greetingsViewContainer != null && userInfo != null && userInfo.business_intro != null) { + greetingsViewContainer.setPreview(userInfo.business_intro.title, userInfo.business_intro.description); + greetingsViewContainer.setSticker(userInfo.business_intro.sticker); + } + updateGreetInfo(); + if (profileChannelMessageFetcher == null) { + profileChannelMessageFetcher = new ProfileChannelCell.ChannelMessageFetcher(currentAccount); + profileChannelMessageFetcher.fetch(userInfo); + } + birthdayAssetsFetcher = ProfileBirthdayEffect.BirthdayEffectFetcher.of(currentAccount, userInfo, birthdayAssetsFetcher); } } else if (id == NotificationCenter.didSetNewWallpapper) { if (fragmentView != null) { @@ -21773,6 +22208,17 @@ public void didReceivedNotification(int id, int account, final Object... args) { // if (chatActivityEnterView != null) { // chatActivityEnterView.setBotsCount(botsCount, hasBotsCommands, hasQuickReplies, true); // } + } else if (id == NotificationCenter.businessLinksUpdated) { + String businessLinkArgument = arguments.getString("business_link"); + if (businessLinkArgument != null) { + TLRPC.TL_businessChatLink link = BusinessLinksController.getInstance(currentAccount).findLink(businessLinkArgument); + if (link != null) { + businessLink = link; + updateTitle(true); + } + } + } else if (id == NotificationCenter.premiumFloodWaitReceived) { + invalidateMessagesVisiblePart(); } } @@ -22036,6 +22482,13 @@ private void addSponsoredMessages(boolean animated) { processNewMessages(res.messages); } + private void removeFromSponsored(MessageObject message) { + MessagesController.SponsoredMessagesInfo sponsoredMessagesInfo = getMessagesController().getSponsoredMessages(dialog_id); + if (sponsoredMessagesInfo != null) { + sponsoredMessagesInfo.messages.remove(message); + } + } + private void checkGroupCallJoin(boolean fromServer) { if (groupCall == null || voiceChatHash == null || !openAnimationEnded) { if (voiceChatHash != null && fromServer && chatInfo != null && chatInfo.call == null && fragmentView != null && getParentActivity() != null) { @@ -22577,7 +23030,7 @@ private void processNewMessages(ArrayList arr) { if (action instanceof TLRPC.TL_messageActionChannelMigrateFrom) { continue; } - if (threadMessageId != 0 && obj.messageOwner instanceof TLRPC.TL_messageEmpty) { + if (obj.messageOwner instanceof TLRPC.TL_messageEmpty) { continue; } if (!isTopic && threadMessageObject != null && obj.isReply() && !(obj.messageOwner.action instanceof TLRPC.TL_messageActionPinMessage)) { @@ -22700,7 +23153,7 @@ private void processNewMessages(ArrayList arr) { if (action instanceof TLRPC.TL_messageActionChannelMigrateFrom) { continue; } - if (threadMessageId != 0 && obj.messageOwner instanceof TLRPC.TL_messageEmpty) { + if (obj.messageOwner instanceof TLRPC.TL_messageEmpty) { continue; } if (threadMessageObject != null && threadMessageObject.messageOwner.replies != null && obj.isReply() && !(obj.messageOwner.action instanceof TLRPC.TL_messageActionPinMessage)) { @@ -23087,6 +23540,9 @@ private void processNewMessages(ArrayList arr) { if (savedMessagesTagHint != null && savedMessagesTagHint.shown()) { savedMessagesTagHint.hide(); } + if (botMessageHint != null && botMessageHint.shown()) { + botMessageHint.hide(); + } } private int getStableIdForDateObject(int date) { @@ -23182,7 +23638,7 @@ private void processDeletedMessages(ArrayList markAsDeletedMessages, lo int commentsDeleted = 0; for (int a = 0; a < size; a++) { Integer mid = markAsDeletedMessages.get(a); - MessageObject obj = chatAdapter.isFiltered ? filteredMessagesDict.get(mid) : messagesDict[loadIndex].get(mid); + MessageObject obj = chatAdapter != null && chatAdapter.isFiltered ? filteredMessagesDict.get(mid) : messagesDict[loadIndex].get(mid); if (selectedObject != null && obj == selectedObject || obj != null && selectedObjectGroup != null && selectedObjectGroup == groupedMessagesMap.get(obj.getGroupId())) { closeMenu(); } @@ -23323,7 +23779,7 @@ private void processDeletedMessages(ArrayList markAsDeletedMessages, lo if (updatedReplies) { updateReplyMessageHeader(true); } - if (commentsDeleted != 0) { + if (commentsDeleted != 0 && replyOriginalChat != null) { getNotificationCenter().postNotificationName(NotificationCenter.changeRepliesCounter, replyOriginalChat.id, replyOriginalMessageId, -commentsDeleted); getMessagesStorage().updateRepliesCount(replyOriginalChat.id, replyOriginalMessageId, null, 0, -commentsDeleted); } @@ -24019,7 +24475,7 @@ public void onTransitionAnimationEnd(boolean isOpen, boolean backward) { showScheduledOrNoSoundHint(); if (!backward && firstOpen) { - if (chatActivityEnterView != null && threadMessageObject != null && threadMessageObject.getRepliesCount() == 0 && ChatObject.canSendMessages(currentChat) && !isTopic) { + if (chatActivityEnterView != null && (threadMessageObject != null && threadMessageObject.getRepliesCount() == 0 && ChatObject.canSendMessages(currentChat) && !isTopic || chatMode == MODE_EDIT_BUSINESS_LINK)) { chatActivityEnterView.setFieldFocused(); chatActivityEnterView.openKeyboard(); } @@ -24366,7 +24822,7 @@ private void updateBottomOverlay() { bottomOverlayChatWaitsReply = false; bottomOverlayLinks = false; boolean forceNoBottom = false; - if (chatMode == MODE_DEFAULT && userInfo != null && userInfo.contact_require_premium && !getUserConfig().isPremium()) { + if (chatMode == MODE_DEFAULT && getDialogId() != getUserConfig().getClientUserId() && userInfo != null && userInfo.contact_require_premium && !getUserConfig().isPremium()) { bottomOverlayLinks = true; bottomOverlayChatText.setVisibility(View.GONE); bottomOverlayLinksText.setVisibility(View.VISIBLE); @@ -25087,7 +25543,7 @@ private void updatePinnedMessageView(boolean animated, int animateToNext) { TLRPC.KeyboardButton botButton = pinnedButton(pinnedMessageObject); pinnedMessageButtonShown = botButton != null; SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); - if (threadMessageObject == null && (chatInfo == null && userInfo == null || pinned_msg_id == 0 || actionBar != null && (actionBar.isActionModeShowed() || actionBar.isSearchFieldVisible() || reportType >= 0))) { + if ((threadMessageObject == null || isTopic) && (chatInfo == null && userInfo == null || pinned_msg_id == 0 || !pinnedMessageIds.isEmpty() && pinnedMessageIds.get(0) == preferences.getInt("pin_" + dialog_id, 0)) || reportType >= 0 || actionBar != null && (actionBar.isActionModeShowed() || actionBar.isSearchFieldVisible())) { changed = hidePinnedMessageView(animated); if (headerItem != null) headerItem.hideSubItem(nkheaderbtn_show_pinned); } else if (pinned_msg_id == preferences.getInt("pin_" + dialog_id, 0)) { @@ -25804,20 +26260,32 @@ private void updateTopPanel(boolean animated) { getMessagesController().getTranslateController().isDialogTranslatable(getDialogId()) && !getMessagesController().getTranslateController().isTranslateDialogHidden(getDialogId()) : !getMessagesController().premiumFeaturesBlocked() && preferences.getInt("dialog_show_translate_count" + did, 5) <= 0 ); + boolean showBizBot = getUserConfig().isPremium() && preferences.getLong("dialog_botid" + did, 0) != 0; if (showRestartTopic) { shownRestartTopic = true; } - if (showTranslate) { + if (showTranslate || showBizBot) { shownTranslateTopic = true; } boolean showRestartTopic1 = (showRestartTopic || shownRestartTopic) && !(showReport || showBlock || showGeo); - if (show || showReport || showBlock || showGeo || showTranslate || showRestartTopic1) { + if (show || showReport || showBlock || showGeo || showTranslate || showBizBot || showRestartTopic1) { createTopPanel(); if (topChatPanelView == null) { return; } } + if (showBizBot) { + createBizBotButton(); + if (bizBotButton != null) { + bizBotButton.set( + did, + preferences.getLong("dialog_botid" + did, 0), + preferences.getString("dialog_boturl" + did, null), + preferences.getInt("dialog_botflags" + did, 0) + ); + } + } if (showTranslate) { createTranslateButton(); if (translateButton != null) { @@ -25838,14 +26306,17 @@ private void updateTopPanel(boolean animated) { if (translateButton != null) { translateButton.setVisibility(showTranslate ? View.VISIBLE : View.GONE); } + if (bizBotButton != null) { + bizBotButton.setVisibility(showBizBot ? View.VISIBLE : View.GONE); + } if (closeReportSpam != null) { - closeReportSpam.setVisibility(showRestartTopic1 || showTranslate && !(showReport || showBlock || showGeo) ? View.GONE : View.VISIBLE); + closeReportSpam.setVisibility(showRestartTopic1 || (showTranslate || showBizBot) && !(showReport || showBlock || showGeo) ? View.GONE : View.VISIBLE); } if (!showRestartTopic) { shownRestartTopic = false; } - if (!showTranslate) { + if (!showTranslate && !showBizBot) { shownTranslateTopic = false; } @@ -26010,7 +26481,7 @@ public void onClick(View view) { if (chatWithAdminTextView != null) { chatWithAdminTextView.setVisibility(isChatWithAdmin ? View.VISIBLE : View.GONE); } - if (userBlocked || ((addToContactsButton == null || addToContactsButton.getVisibility() == View.GONE) && (reportSpamButton == null || reportSpamButton.getVisibility() == View.GONE) && (chatWithAdminTextView == null || chatWithAdminTextView.getVisibility() == View.GONE) && (restartTopicButton == null || restartTopicButton.getVisibility() == View.GONE) && (translateButton == null || translateButton.getVisibility() == View.GONE))) { + if (userBlocked || ((addToContactsButton == null || addToContactsButton.getVisibility() == View.GONE) && (reportSpamButton == null || reportSpamButton.getVisibility() == View.GONE) && (chatWithAdminTextView == null || chatWithAdminTextView.getVisibility() == View.GONE) && (restartTopicButton == null || restartTopicButton.getVisibility() == View.GONE) && (translateButton == null || translateButton.getVisibility() == View.GONE) && (bizBotButton == null || bizBotButton.getVisibility() == View.GONE))) { show = false; } @@ -26073,7 +26544,7 @@ public void updateDrawState(@NonNull TextPaint ds) { topViewSeparator2.setVisibility(View.GONE); } } - if (showTranslate) { + if (showTranslate || showBizBot) { createTopPanel(); if (topChatPanelView == null) { return; @@ -26088,7 +26559,15 @@ public void updateDrawState(@NonNull TextPaint ds) { topChatPanelHeight -= AndroidUtilities.dp(48); topViewSeparator3.setVisibility(View.GONE); } - topChatPanelHeight += AndroidUtilities.dp(36); + if (showTranslate) { + topChatPanelHeight += AndroidUtilities.dp(36); + } + if (showBizBot) { + topChatPanelHeight += AndroidUtilities.dp(48); + } + if (bizBotButton != null) { + bizBotButton.setTranslationY(AndroidUtilities.dp(showBizBot && showTranslate ? -36 : 0)); + } } else if (topViewSeparator3 != null) { topViewSeparator3.setVisibility(View.GONE); } @@ -26432,6 +26911,7 @@ public boolean allowLayoutChanges() { fixLayout(); applyDraftMaybe(false); + applyChatLinkMessageMaybe(); if (bottomOverlayChat != null && bottomOverlayChat.getVisibility() != View.VISIBLE && !actionBar.isSearchFieldVisible()) { chatActivityEnterView.setFieldFocused(true); } @@ -26639,6 +27119,110 @@ public void onPause() { } } + public void setResolvedChatLink(TLRPC.TL_account_resolvedBusinessChatLinks resolvedChatLink) { + this.resolvedChatLink = resolvedChatLink; + } + + public void applyChatLinkMessageMaybe() { + if (chatActivityEnterView == null || chatMode != 0 || resolvedChatLink == null) { + return; + } + + ArrayList entities; + final boolean isPremium = UserConfig.getInstance(currentAccount).isPremium(); + if (!isPremium && UserConfig.getInstance(currentAccount).getClientUserId() != dialog_id && resolvedChatLink.entities != null) { + entities = resolvedChatLink.entities.stream().filter(entity -> { + if (entity instanceof TLRPC.TL_messageEntityCustomEmoji) { + TLRPC.TL_messageEntityCustomEmoji emojiEntity = (TLRPC.TL_messageEntityCustomEmoji) entity; + long documentId = emojiEntity.document_id; + + TLRPC.Document emoji = emojiEntity.document; + if (emoji == null) { + emoji = AnimatedEmojiDrawable.findDocument(currentAccount, documentId); + } + if (emoji == null) { + ArrayList sets1 = MediaDataController.getInstance(currentAccount).getStickerSets(MediaDataController.TYPE_EMOJIPACKS); + for (TLRPC.TL_messages_stickerSet set : sets1) { + if (set != null && set.documents != null && !set.documents.isEmpty()) { + for (TLRPC.Document document : set.documents) { + if (document.id == documentId) { + emoji = document; + break; + } + } + } + if (emoji != null) { + break; + } + } + } + if (emoji == null) { + ArrayList sets2 = MediaDataController.getInstance(currentAccount).getFeaturedEmojiSets(); + for (TLRPC.StickerSetCovered set : sets2) { + if (set != null && set.covers != null && !set.covers.isEmpty()) { + for (TLRPC.Document document : set.covers) { + if (document.id == documentId) { + emoji = document; + break; + } + } + } + if (emoji != null) { + break; + } + ArrayList documents = null; + if (set instanceof TLRPC.TL_stickerSetFullCovered) { + documents = ((TLRPC.TL_stickerSetFullCovered) set).documents; + } else if (set instanceof TLRPC.TL_stickerSetNoCovered && set.set != null) { + TLRPC.TL_inputStickerSetID inputStickerSetID = new TLRPC.TL_inputStickerSetID(); + inputStickerSetID.id = set.set.id; + TLRPC.TL_messages_stickerSet fullSet = MediaDataController.getInstance(currentAccount).getStickerSet(inputStickerSetID, true); + if (fullSet != null && fullSet.documents != null) { + documents = fullSet.documents; + } + } + if (documents != null && !documents.isEmpty()) { + for (TLRPC.Document document : documents) { + if (document.id == documentId) { + emoji = document; + break; + } + } + } + if (emoji != null) { + break; + } + } + } + if (emoji != null) { + TLRPC.ChatFull chatFull = MessagesController.getInstance(currentAccount).getChatFull(-dialog_id); + if (chatFull != null && chatFull.emojiset != null) { + TLRPC.TL_messages_stickerSet stickerSet = MediaDataController.getInstance(currentAccount).getGroupStickerSetById(chatFull.emojiset); + if (stickerSet != null) { + for (TLRPC.Document document : stickerSet.documents) { + if (document.id == documentId) { + return true; + } + } + } + } + } + return !(emoji == null || !MessageObject.isFreeEmoji(emoji)); + } else { + return true; + } + }).collect(Collectors.toCollection(ArrayList::new)); + } else { + entities = resolvedChatLink.entities; + } + + CharSequence message = ChatActivityEnterView.applyMessageEntities(entities, resolvedChatLink.message, chatActivityEnterView.getEditField().getPaint().getFontMetricsInt()); + + chatActivityEnterView.setFieldText(message, true, true); + + resolvedChatLink = null; + } + private int appliedDraftDate; public void applyDraftMaybe(boolean canClear) { if (chatActivityEnterView == null || chatMode != 0 && (chatMode != MODE_SAVED || getUserConfig().getClientUserId() != getSavedDialogId())) { @@ -27118,6 +27702,9 @@ private boolean createMenu(View v, boolean single, boolean listView, float x, fl if (actionBar.isActionModeShowed() || reportType >= 0) { return false; } + if (chatActivityEnterView != null) { + chatActivityEnterView.hideHints(); + } MessageObject message; MessageObject primaryMessage; @@ -27353,11 +27940,27 @@ public void setAutoDeleteHistory(int time, int action) { messageTextToTranslate = null; } - if (message.isSponsored() && !getUserConfig().isPremium() && !getMessagesController().premiumFeaturesBlocked()) { + if (message.isSponsored() && !getUserConfig().isPremium() && !getMessagesController().premiumFeaturesBlocked() && !message.sponsoredCanReport) { items.add(LocaleController.getString("HideAd", R.string.HideAd)); options.add(OPTION_HIDE_SPONSORED_MESSAGE); icons.add(R.drawable.msg_block2); } + + if (message.isSponsored() && message.sponsoredCanReport) { + items.add(LocaleController.getString("AboutRevenueSharingAds", R.string.AboutRevenueSharingAds)); + options.add(OPTION_ABOUT_REVENUE_SHARING_ADS); + icons.add(R.drawable.msg_report); + + items.add(LocaleController.getString("ReportAd", R.string.ReportAd)); + options.add(OPTION_REPORT_AD); + icons.add(R.drawable.msg_block2); + + if (!getMessagesController().premiumFeaturesBlocked()) { + items.add(LocaleController.getString("RemoveAds", R.string.RemoveAds)); + options.add(OPTION_REMOVE_ADS); + icons.add(R.drawable.msg_cancel); + } + } if (type == -1) { if ((selectedObject.type == MessageObject.TYPE_TEXT || selectedObject.isAnimatedEmoji() || selectedObject.isAnimatedEmojiStickers() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwardsOverride && !message.isExpiredStory()) { items.add(LocaleController.getString("Copy", R.string.Copy)); @@ -27469,7 +28072,7 @@ public void setAutoDeleteHistory(int time, int action) { options.add(OPTION_REPLY); icons.add(R.drawable.msg_reply); } - if ((selectedObject.type == MessageObject.TYPE_TEXT || selectedObject.isDice() || selectedObject.isAnimatedEmoji() || selectedObject.isAnimatedEmojiStickers() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwardsOverride) { + if ((selectedObject.type == MessageObject.TYPE_TEXT || selectedObject.isDice() || selectedObject.isAnimatedEmoji() || selectedObject.isAnimatedEmojiStickers() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwardsOverride && !selectedObject.sponsoredCanReport) { items.add(LocaleController.getString("Copy", R.string.Copy)); options.add(OPTION_COPY); icons.add(R.drawable.msg_copy); @@ -27650,6 +28253,14 @@ public void setAutoDeleteHistory(int time, int action) { items.add(LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); options.add(nkbtn_stickerdl); icons.add(R.drawable.msg_gallery); + if (NaConfig.INSTANCE.getShowCopyPhoto().Bool()) { + items.add(LocaleController.getString("CopyPhotoAsSticker", R.string.CopyPhotoAsSticker)); + icons.add(R.drawable.msg_copy); + options.add(nkbtn_sticker_copy); + items.add(LocaleController.getString("CopyPhoto", R.string.CopyPhoto)); + icons.add(R.drawable.msg_copy); + options.add(nkbtn_sticker_copy_png); + } } items.add(LocaleController.getString("AddToStickers", R.string.AddToStickers)); options.add(OPTION_ADD_TO_STICKERS_OR_MASKS); @@ -28693,7 +29304,7 @@ public void run() { final int foregroundIndex = popupLayout.addViewToSwipeBack(linearLayout); ActionBarMenuSubItem cell = new ActionBarMenuSubItem(getParentActivity(), true, true, themeDelegate); - cell.setTextAndIcon(LocaleController.getString("SponsoredMessageSponsor", R.string.SponsoredMessageSponsor), R.drawable.msg_channel); + cell.setTextAndIcon(LocaleController.getString(selectedObject.sponsoredCanReport ? R.string.SponsoredMessageSponsorReportable : R.string.SponsoredMessageSponsor), R.drawable.msg_channel); popupLayout.addView(cell); cell.setOnClickListener(v1 -> { if (contentView == null || getParentActivity() == null) { @@ -28704,57 +29315,58 @@ public void run() { popupLayout.addView(new ActionBarPopupWindow.GapView(contentView.getContext(), themeDelegate), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 8)); } - FrameLayout sponsoredAbout = new FrameLayout(getParentActivity()) { - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - } - }; - + if (!selectedObject.sponsoredCanReport) { + FrameLayout sponsoredAbout = new FrameLayout(getParentActivity()) { + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + }; sponsoredAbout.setMinimumHeight(AndroidUtilities.dp(56)); - sponsoredAbout.setBackground(Theme.createRadSelectorDrawable(getThemedColor(Theme.key_dialogButtonSelector), popupLayout.getItemsCount() <= 0 ? 6 : 0, 0)); - sponsoredAbout.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); + sponsoredAbout.setBackground(Theme.createRadSelectorDrawable(getThemedColor(Theme.key_dialogButtonSelector), popupLayout.getItemsCount() <= 0 ? 6 : 0, 0)); + sponsoredAbout.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); - ImageView infoImage = new ImageView(getParentActivity()); - infoImage.setScaleType(ImageView.ScaleType.CENTER); - infoImage.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_actionBarDefaultSubmenuItemIcon), PorterDuff.Mode.MULTIPLY)); - infoImage.setImageResource(R.drawable.msg_info); - sponsoredAbout.addView(infoImage, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 40, Gravity.CENTER_VERTICAL | (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT))); + ImageView infoImage = new ImageView(getParentActivity()); + infoImage.setScaleType(ImageView.ScaleType.CENTER); + infoImage.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_actionBarDefaultSubmenuItemIcon), PorterDuff.Mode.MULTIPLY)); + infoImage.setImageResource(R.drawable.msg_info); + sponsoredAbout.addView(infoImage, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 40, Gravity.CENTER_VERTICAL | (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT))); - TextView infoText = new TextView(getParentActivity()) { - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - if (MeasureSpec.getMode(widthMeasureSpec) == MeasureSpec.AT_MOST && getLayout() != null) { - Layout layout = getLayout(); - int width = 0; - for (int i = 0; i < layout.getLineCount(); ++i) { - width = Math.max(width, (int) Math.ceil(layout.getLineWidth(i))); + TextView infoText = new TextView(getParentActivity()) { + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + if (MeasureSpec.getMode(widthMeasureSpec) == MeasureSpec.AT_MOST && getLayout() != null) { + Layout layout = getLayout(); + int width = 0; + for (int i = 0; i < layout.getLineCount(); ++i) { + width = Math.max(width, (int) Math.ceil(layout.getLineWidth(i))); + } + widthMeasureSpec = MeasureSpec.makeMeasureSpec(getPaddingLeft() + width + getPaddingRight(), MeasureSpec.EXACTLY); } - widthMeasureSpec = MeasureSpec.makeMeasureSpec(getPaddingLeft() + width + getPaddingRight(), MeasureSpec.EXACTLY); + super.onMeasure(widthMeasureSpec, heightMeasureSpec); } - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - } - }; - infoText.setMaxLines(3); - infoText.setGravity(Gravity.LEFT); - infoText.setEllipsize(TextUtils.TruncateAt.END); - infoText.setTextColor(getThemedColor(Theme.key_actionBarDefaultSubmenuItem)); - infoText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - infoText.setMaxWidth(AndroidUtilities.dp(240)); - infoText.setText(LocaleController.getString("SponsoredMessageInfo", R.string.SponsoredMessageInfo)); - infoText.setPadding(LocaleController.isRTL ? 0 : AndroidUtilities.dp(43), 0, LocaleController.isRTL ? AndroidUtilities.dp(43) : 0, 0); - sponsoredAbout.addView(infoText, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL)); - - popupLayout.addView(sponsoredAbout); - sponsoredAbout.setOnClickListener(v1 -> { - if (contentView == null || getParentActivity() == null) { - return; - } - BottomSheet.Builder builder = new BottomSheet.Builder(contentView.getContext()); - builder.setCustomView(new SponsoredMessageInfoView(getParentActivity(), themeDelegate)); - builder.show(); - }); - popupLayout.addView(new ActionBarPopupWindow.GapView(contentView.getContext(), themeDelegate), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 8)); + }; + infoText.setMaxLines(3); + infoText.setGravity(Gravity.LEFT); + infoText.setEllipsize(TextUtils.TruncateAt.END); + infoText.setTextColor(getThemedColor(Theme.key_actionBarDefaultSubmenuItem)); + infoText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + infoText.setMaxWidth(AndroidUtilities.dp(240)); + infoText.setText(LocaleController.getString("SponsoredMessageInfo", R.string.SponsoredMessageInfo)); + infoText.setPadding(LocaleController.isRTL ? 0 : AndroidUtilities.dp(43), 0, LocaleController.isRTL ? AndroidUtilities.dp(43) : 0, 0); + sponsoredAbout.addView(infoText, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL)); + + popupLayout.addView(sponsoredAbout); + sponsoredAbout.setOnClickListener(v1 -> { + if (contentView == null || getParentActivity() == null) { + return; + } + BottomSheet.Builder builder = new BottomSheet.Builder(contentView.getContext()); + builder.setCustomView(new SponsoredMessageInfoView(getParentActivity(), themeDelegate)); + builder.show(); + }); + popupLayout.addView(new ActionBarPopupWindow.GapView(contentView.getContext(), themeDelegate), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 8)); + } } scrimPopupWindowItems = new ActionBarMenuSubItem[items.size()]; for (int a = 0, N = items.size(); a < N; a++) { @@ -28768,6 +29380,9 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { cell.setSubtextColor(getThemedColor(Theme.key_windowBackgroundWhiteGrayText6)); } scrimPopupWindowItems[a] = cell; + if (option == OPTION_REMOVE_ADS) { + popupLayout.addView(new ActionBarPopupWindow.GapView(contentView.getContext(), themeDelegate), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 8)); + } popupLayout.addView(cell); final int i = a; cell.setOnClickListener(v1 -> { @@ -29228,18 +29843,37 @@ private void createEmptyView(boolean recreate) { emptyView.setPadding(AndroidUtilities.dp(10), AndroidUtilities.dp(2), AndroidUtilities.dp(10), AndroidUtilities.dp(3)); emptyViewContainer.addView(emptyView, new FrameLayout.LayoutParams(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); } else if (chatMode == MODE_QUICK_REPLIES) { - businessEmptyView = new BusinessChatEmptyView(getContext(), chatMode, dialog_id, threadMessageId, quickReplyShortcut, getResourceProvider()); - businessEmptyView.setBackground(Theme.createServiceDrawable(AndroidUtilities.dp(16), businessEmptyView, contentView, getThemedPaint(Theme.key_paint_chatActionBackground))); - emptyViewContainer.addView(businessEmptyView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); - } else if ((distance >= 0 || preloadedGreetingsSticker != null) && currentUser != null && !userBlocked || userInfo != null && userInfo.contact_require_premium && !getUserConfig().isPremium()) { - greetingsViewContainer = new ChatGreetingsView(getContext(), currentUser, distance, currentAccount, preloadedGreetingsSticker, themeDelegate); - greetingsViewContainer.setPremiumLock(userInfo != null && userInfo.contact_require_premium && !getUserConfig().isPremium(), dialog_id); + quickRepliesEmptyView = new QuickRepliesEmptyView(getContext(), chatMode, dialog_id, threadMessageId, quickReplyShortcut, getResourceProvider()); + quickRepliesEmptyView.setBackground(Theme.createServiceDrawable(AndroidUtilities.dp(16), quickRepliesEmptyView, contentView, getThemedPaint(Theme.key_paint_chatActionBackground))); + emptyViewContainer.addView(quickRepliesEmptyView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); + } else if (chatMode == MODE_EDIT_BUSINESS_LINK) { + businessLinksEmptyView = new BusinessLinksEmptyView(getContext(), this, businessLink, getResourceProvider()); + businessLinksEmptyView.setBackground(Theme.createServiceDrawable(AndroidUtilities.dp(16), businessLinksEmptyView, contentView, getThemedPaint(Theme.key_paint_chatActionBackground))); + emptyViewContainer.addView(businessLinksEmptyView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); + } else if ((distance >= 0 || preloadedGreetingsSticker != null) && currentUser != null && !userBlocked || userInfo != null && getDialogId() != getUserConfig().getClientUserId() && userInfo.contact_require_premium && !getUserConfig().isPremium()) { + greetingsViewContainer = new ChatGreetingsView(getContext(), currentUser, distance, currentAccount, preloadedGreetingsSticker, themeDelegate) { + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + super.onLayout(changed, l, t, r, b); + setVisiblePart(getY() + emptyViewContent.getY(), getServiceHeight(this)); + } + }; + greetingsViewContainer.setPremiumLock(userInfo != null && getDialogId() != getUserConfig().getClientUserId() && userInfo.contact_require_premium && !getUserConfig().isPremium(), dialog_id); greetingsViewContainer.setListener((sticker) -> { animatingDocuments.put(sticker, 0); SendMessagesHelper.getInstance(currentAccount).sendSticker(sticker, null, dialog_id, null, null, null, replyingQuote, null, true, 0, false, null, quickReplyShortcut, getQuickReplyId()); }); - greetingsViewContainer.setBackground(Theme.createServiceDrawable(AndroidUtilities.dp(16), greetingsViewContainer, contentView, getThemedPaint(Theme.key_paint_chatActionBackground))); - emptyViewContainer.addView(greetingsViewContainer, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); +// greetingsViewContainer.setBackground(Theme.createServiceDrawable(AndroidUtilities.dp(16), greetingsViewContainer, contentView, getThemedPaint(Theme.key_paint_chatActionBackground))); + emptyViewContent = new LinearLayout(getContext()); + emptyViewContent.setOrientation(LinearLayout.VERTICAL); + emptyViewContent.setGravity(Gravity.CENTER); + emptyViewContent.addView(greetingsViewContainer, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); + emptyViewContainer.addView(emptyViewContent, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); + if (userInfo != null && userInfo.business_intro != null) { + greetingsViewContainer.setPreview(userInfo.business_intro.title, userInfo.business_intro.description); + greetingsViewContainer.setSticker(userInfo.business_intro.sticker); + } + updateGreetInfo(); } else if (currentEncryptedChat == null) { if (isTopic && chatMode == 0) { CreateTopicEmptyView createTopicEmptyView = new CreateTopicEmptyView(getContext(), contentView, themeDelegate); @@ -29266,14 +29900,29 @@ private void createEmptyView(boolean recreate) { emptyMessage = LocaleController.getString(R.string.NoMessages); } if (emptyMessage == null) { - greetingsViewContainer = new ChatGreetingsView(getContext(), currentUser, distance, currentAccount, preloadedGreetingsSticker, themeDelegate); - greetingsViewContainer.setPremiumLock(userInfo != null && userInfo.contact_require_premium && !getUserConfig().isPremium(), dialog_id); + greetingsViewContainer = new ChatGreetingsView(getContext(), currentUser, distance, currentAccount, preloadedGreetingsSticker, themeDelegate) { + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + super.onLayout(changed, l, t, r, b); + setVisiblePart(getY() + emptyViewContent.getY(), getServiceHeight(this)); + } + }; + greetingsViewContainer.setPremiumLock(userInfo != null && getDialogId() != getUserConfig().getClientUserId() && userInfo.contact_require_premium && !getUserConfig().isPremium(), dialog_id); greetingsViewContainer.setListener((sticker) -> { animatingDocuments.put(sticker, 0); SendMessagesHelper.getInstance(currentAccount).sendSticker(sticker, null, dialog_id, null, null, null, replyingQuote, null, true, 0, false, null, quickReplyShortcut, getQuickReplyId()); }); - greetingsViewContainer.setBackground(Theme.createServiceDrawable(AndroidUtilities.dp(16), greetingsViewContainer, contentView, getThemedPaint(Theme.key_paint_chatActionBackground))); - emptyViewContainer.addView(greetingsViewContainer, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); +// greetingsViewContainer.setBackground(Theme.createServiceDrawable(AndroidUtilities.dp(16), greetingsViewContainer, contentView, getThemedPaint(Theme.key_paint_chatActionBackground))); + if (userInfo != null && userInfo.business_intro != null) { + greetingsViewContainer.setPreview(userInfo.business_intro.title, userInfo.business_intro.description); + greetingsViewContainer.setSticker(userInfo.business_intro.sticker); + } + emptyViewContent = new LinearLayout(getContext()); + emptyViewContent.setOrientation(LinearLayout.VERTICAL); + emptyViewContent.setGravity(Gravity.CENTER); + emptyViewContent.addView(greetingsViewContainer, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); + emptyViewContainer.addView(emptyViewContent, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); + updateGreetInfo(); } else { emptyView = new TextView(getContext()); emptyView.setText(emptyMessage); @@ -29327,6 +29976,62 @@ private void closeMenu(boolean hideDim) { } } + private void updateGreetInfo() { + showGreetInfo( + getDialogId() != getUserConfig().getClientUserId() && + userInfo != null && userInfo.business_intro != null && + !(userInfo != null && userInfo.contact_require_premium && !getUserConfig().isPremium()) + ); + } + + private void showGreetInfo(boolean show) { + if (emptyViewContent == null) return; + if (show && greetingsInfo == null) { + greetingsInfo = new ChatActionCell(getContext(), false, getResourceProvider()) { + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + super.onLayout(changed, l, t, r, b); + setVisiblePart(getY() + emptyViewContent.getY(), getServiceHeight(this)); + } + }; + ScaleStateListAnimator.apply(greetingsInfo, .02f, 1.2f); + greetingsInfo.setOnClickListener(v -> { + showDialog(new PremiumFeatureBottomSheet(this, PremiumPreviewFragment.PREMIUM_FEATURE_BUSINESS, true)); + }); + } + if (greetingsInfo == null) return; + if (!show) { + greetingsInfo.setVisibility(View.GONE); + return; + } else { + greetingsInfo.setVisibility(View.VISIBLE); + } + String string = LocaleController.formatString(userInfo != null && userInfo.business_intro != null && TextUtils.isEmpty(userInfo.business_intro.title) && TextUtils.isEmpty(userInfo.business_intro.title) ? R.string.GreetingHowSticker : R.string.GreetingHow, UserObject.getFirstName(currentUser)); + int fromIndex = string.indexOf("**"), toIndex; + SpannableStringBuilder ssb = new SpannableStringBuilder(string); + if (fromIndex > 0) { + string = string.substring(0, fromIndex) + string.substring(fromIndex + 2); + toIndex = string.indexOf("**"); + if (toIndex > 0) { + string = string.substring(0, toIndex) + string.substring(toIndex + 2); + ssb = new SpannableStringBuilder(string); + ProfileActivity.ShowDrawable drawable = new ProfileActivity.ShowDrawable(string.substring(fromIndex, toIndex)); + drawable.setTextColor(Color.WHITE); + drawable.setBackgroundColor(0x1e000000); + drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); + ssb.setSpan(new ImageSpan(drawable), fromIndex, toIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + } + greetingsInfo.setCustomText(ssb); + greetingsInfo.setOverrideTextMaxWidth(HintView2.cutInFancyHalf(string, (TextPaint) getThemedPaint(Theme.key_paint_chatActionText))); + if (greetingsInfo.getParent() != null && (!show || greetingsInfo.getParent() != emptyViewContent)) { + ((ViewGroup) greetingsInfo.getParent()).removeView(greetingsInfo); + } + if (show && greetingsInfo.getParent() != emptyViewContent) { + emptyViewContent.addView(greetingsInfo, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM, 0, 10, 0, 0)); + } + } + Runnable updateReactionRunnable; private void showMultipleReactionsPromo(ChatMessageCell cell, ReactionsLayoutInBubble.VisibleReaction visibleReaction, int currentChosenReactions) { @@ -29359,7 +30064,7 @@ public void selectReaction(MessageObject primaryMessage, ReactionsContainerLayou if (isInScheduleMode() || primaryMessage == null) { return; } - + if (getDialogId() == getUserConfig().getClientUserId() && !getUserConfig().isPremium() && primaryMessage.messageOwner != null && (primaryMessage.messageOwner.reactions == null || (primaryMessage.messageOwner.reactions.reactions_as_tags || primaryMessage.messageOwner.reactions.results.isEmpty()))) { new PremiumFeatureBottomSheet(ChatActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_SAVED_TAGS, true).show(); return; @@ -30478,6 +31183,110 @@ private void processSelectedOption(int option) { showDialog(new PremiumFeatureBottomSheet(ChatActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_ADS, true)); break; } + case OPTION_ABOUT_REVENUE_SHARING_ADS: { + RevenueSharingAdsInfoBottomSheet.showAlert(contentView.getContext(), ChatActivity.this, resourceProvider); + break; + } + case OPTION_REPORT_AD: { + MessageObject message = selectedObject; + TLRPC.TL_channels_reportSponsoredMessage req = new TLRPC.TL_channels_reportSponsoredMessage(); + req.channel = MessagesController.getInputChannel(currentChat); + req.random_id = selectedObject.sponsoredId; + req.option = new byte[]{}; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> { + if (response != null) { + if (response instanceof TLRPC.TL_channels_sponsoredMessageReportResultChooseOption) { + AndroidUtilities.runOnUIThread(() -> { + TLRPC.TL_channels_sponsoredMessageReportResultChooseOption result = (TLRPC.TL_channels_sponsoredMessageReportResultChooseOption) response; + new ReportAdBottomSheet(contentView.getContext(), resourceProvider, message, currentChat) + .setReportChooseOption(result) + .setListener(new ReportAdBottomSheet.Listener() { + @Override + public void onReported() { + AndroidUtilities.runOnUIThread(() -> { + BulletinFactory.of(ChatActivity.this) + .createAdReportedBulletin( + AndroidUtilities.replaceSingleTag( + LocaleController.getString("AdReported", R.string.AdReported), + -1, + AndroidUtilities.REPLACING_TAG_TYPE_LINKBOLD, + () -> Browser.openUrl(getContext(), "https://promote.telegram.org/guidelines"), + resourceProvider + ) + ) + .show(); + removeFromSponsored(message); + removeMessageWithThanos(message); + }, 200); + } + + @Override + public void onHidden() { + AndroidUtilities.runOnUIThread(() -> { + BulletinFactory.of(ChatActivity.this) + .createAdReportedBulletin(LocaleController.getString("AdHidden", R.string.AdHidden)) + .show(); + removeFromSponsored(message); + removeMessageWithThanos(message); + }, 200); + } + + @Override + public void onPremiumRequired() { + showDialog(new PremiumFeatureBottomSheet(ChatActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_ADS, true)); + } + }) + .show(); + }); + } else if (response instanceof TLRPC.TL_channels_sponsoredMessageReportResultReported) { + AndroidUtilities.runOnUIThread(() -> { + BulletinFactory.of(ChatActivity.this) + .createAdReportedBulletin( + AndroidUtilities.replaceSingleTag( + LocaleController.getString("AdReported", R.string.AdReported), + -1, + AndroidUtilities.REPLACING_TAG_TYPE_LINKBOLD, + () -> Browser.openUrl(getContext(), "https://promote.telegram.org/guidelines"), + resourceProvider + ) + ) + .show(); + removeFromSponsored(message); + removeMessageWithThanos(message); + }, 200); + } else if (response instanceof TLRPC.TL_channels_sponsoredMessageReportResultAdsHidden) { + AndroidUtilities.runOnUIThread(() -> { + BulletinFactory.of(ChatActivity.this) + .createAdReportedBulletin(LocaleController.getString(R.string.AdHidden)) + .show(); + removeFromSponsored(message); + removeMessageWithThanos(message); + }, 200); + } + } else if (error != null && "AD_EXPIRED".equalsIgnoreCase(error.text)) { + AndroidUtilities.runOnUIThread(() -> { + BulletinFactory.of(ChatActivity.this) + .createAdReportedBulletin( + AndroidUtilities.replaceSingleTag( + LocaleController.getString("AdReported", R.string.AdReported), + -1, + AndroidUtilities.REPLACING_TAG_TYPE_LINKBOLD, + () -> Browser.openUrl(getContext(), "https://promote.telegram.org/guidelines"), + resourceProvider + ) + ) + .show(); + removeFromSponsored(message); + removeMessageWithThanos(message); + }, 200); + } + }); + break; + } + case OPTION_REMOVE_ADS: { + showDialog(new PremiumFeatureBottomSheet(ChatActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_ADS, true)); + break; + } case OPTION_SPEED_PROMO: { showDialog(new PremiumFeatureBottomSheet(ChatActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_DOWNLOAD_SPEED, true)); break; @@ -30797,6 +31606,8 @@ public boolean onBackPressed() { return false; } else if (chatActivityEnterView != null && chatActivityEnterView.closeCreationLinkDialog()) { return false; + } else if (chatMode == MODE_EDIT_BUSINESS_LINK && BusinessLinksActivity.closeRenameAlert()) { + return false; } if (backToPreviousFragment != null) { parentLayout.addFragmentToStack(backToPreviousFragment, parentLayout.getFragmentStack().size() - 1); @@ -30805,13 +31616,19 @@ public boolean onBackPressed() { if (instantCameraView != null) { instantCameraView.cancel(false); } - if (chatMode == MODE_QUICK_REPLIES && (messages.isEmpty() || threadMessageId == 0)) { + if (chatMode == MODE_QUICK_REPLIES && !(QuickRepliesController.GREETING.equalsIgnoreCase(quickReplyShortcut) || QuickRepliesController.AWAY.equalsIgnoreCase(quickReplyShortcut)) && (messages.isEmpty() || threadMessageId == 0)) { showQuickRepliesRemoveAlert(); return false; } + if (chatMode == MODE_EDIT_BUSINESS_LINK && chatActivityEnterView.businessLinkHasChanges()) { + showBusinessLinksDiscardAlert(() -> { + finishFragment(); + }); + return false; + } return true; } - + private void showQuickRepliesRemoveAlert() { showDialog( new AlertDialog.Builder(getContext(), getResourceProvider()) @@ -30825,6 +31642,22 @@ private void showQuickRepliesRemoveAlert() { ); } + private void showBusinessLinksDiscardAlert(Runnable onDiscard) { + AlertDialog dialog = new AlertDialog.Builder(getContext(), getResourceProvider()) + .setTitle(LocaleController.getString(R.string.BusinessLinkDiscardChangesTitle)) + .setMessage(LocaleController.getString(R.string.BusinessLinkDiscardChangesMessage)) + .setPositiveButton(LocaleController.getString(R.string.Discard), (di, w) -> { + onDiscard.run(); + }) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) + .create(); + showDialog(dialog); + TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); + if (button != null) { + button.setTextColor(getThemedColor(Theme.key_text_RedBold)); + } + } + public void clearSelectionMode() { clearSelectionMode(false); } @@ -30847,7 +31680,7 @@ public void onListItemAnimatorTick() { fragmentView.invalidate(); } } - + public void setSavedDialog(long savedDialogId) { threadMessageId = savedDialogId; } @@ -31107,7 +31940,7 @@ public void openSearchWithText(String text) { if (searchItem != null) { searchItem.setSearchFieldText(text, false); } - getMediaDataController().searchMessagesInChat(searchingQuery = (text == null ? "" : text), dialog_id, mergeDialogId, classGuid, 0, threadMessageId, false, searchingUserMessages, searchingChatMessages, !TextUtils.isEmpty(text), searchingReaction); + getMediaDataController().searchMessagesInChat(searchingQuery = (text == null ? "" : text), dialog_id, mergeDialogId, classGuid, 0, threadMessageId, false, searchingUserMessages, searchingChatMessages, !TextUtils.isEmpty(text), searchingReaction, searchingType = null); updatePinnedMessageView(true); } @@ -31399,86 +32232,88 @@ private void processLoadedDiscussionMessage(boolean noDiscussion, TLRPC.TL_messa arrayList.add(new MessageObject(UserConfig.selectedAccount, message, true, true)); } } - if (!arrayList.isEmpty() && discussionMessage != null) { - Bundle args = new Bundle(); - long dialogId = arrayList.get(0).getDialogId(); - args.putLong("chat_id", -dialogId); - args.putInt("message_id", Math.max(1, discussionMessage.read_inbox_max_id)); - args.putInt("unread_count", discussionMessage.unread_count); - args.putBoolean("historyPreloaded", history != null); - ChatActivity chatActivity = new ChatActivity(args); - chatActivity.setThreadMessages(arrayList, originalChat, req.msg_id, discussionMessage.read_inbox_max_id, discussionMessage.read_outbox_max_id, null); - if (highlightMsgId != 0) { - chatActivity.highlightMessageId = highlightMsgId; - } - if (originalMessage != null && originalMessage.messageOwner.replies != null && chatActivity.threadMessageObject.messageOwner.replies != null) { - originalMessage.messageOwner.replies.replies = chatActivity.threadMessageObject.messageOwner.replies.replies; - } - if (originalMessage != null && originalMessage.messageOwner.reactions != null) { - chatActivity.threadMessageObject.messageOwner.reactions = originalMessage.messageOwner.reactions; - } - final boolean[] chatOpened = new boolean[] { false }; - Runnable openCommentsChat = () -> { - if (chatOpened[0] || thisCommentLoadingMessageId != commentLoadingMessageId || !isFullyVisible || isFinishing()) { - return; + TLRPC.messages_Messages historyFinal = history; + getMessagesStorage().loadMessageAttachPaths(arrayList, () -> { + if (!arrayList.isEmpty() && discussionMessage != null) { + Bundle args = new Bundle(); + long dialogId = arrayList.get(0).getDialogId(); + args.putLong("chat_id", -dialogId); + args.putInt("message_id", Math.max(1, discussionMessage.read_inbox_max_id)); + args.putInt("unread_count", discussionMessage.unread_count); + args.putBoolean("historyPreloaded", historyFinal != null); + ChatActivity chatActivity = new ChatActivity(args); + chatActivity.setThreadMessages(arrayList, originalChat, req.msg_id, discussionMessage.read_inbox_max_id, discussionMessage.read_outbox_max_id, null); + if (highlightMsgId != 0) { + chatActivity.highlightMessageId = highlightMsgId; } - chatOpened[0] = true; - AndroidUtilities.runOnUIThread(() -> { - commentLoadingMessageId = 0; - chatListView.invalidateViews(); - }, 200); - presentFragment(chatActivity); - if (isKeyboardVisible() && !chatActivity.hideKeyboardOnShow()) { - if (chatActivity.chatActivityEnterView != null && chatActivity.chatActivityEnterView.getEditField() != null) { - chatActivity.chatActivityEnterView.getEditField().requestFocus(); - } + if (originalMessage != null && originalMessage.messageOwner.replies != null && chatActivity.threadMessageObject.messageOwner.replies != null) { + originalMessage.messageOwner.replies.replies = chatActivity.threadMessageObject.messageOwner.replies.replies; } - }; - if (history != null) { - int fnid = 0; - if (!history.messages.isEmpty()) { - for (int a = history.messages.size() - 1; a >= 0; a--) { - TLRPC.Message message = history.messages.get(a); - if (message.id > maxReadId && !message.out) { - fnid = message.id; - break; - } - } + if (originalMessage != null && originalMessage.messageOwner.reactions != null) { + chatActivity.threadMessageObject.messageOwner.reactions = originalMessage.messageOwner.reactions; } - - TLRPC.messages_Messages historyFinal = history; - int fnidFinal = fnid; - final int commentsClassGuid = chatActivity.getClassGuid(); - final NotificationCenter.NotificationCenterDelegate observer = new NotificationCenter.NotificationCenterDelegate() { - @Override - public void didReceivedNotification(int id, int account, Object... args) { - if (id == NotificationCenter.messagesDidLoad && (Integer) args[10] == commentsClassGuid) { - openCommentsChat.run(); - AndroidUtilities.runOnUIThread(() -> { - chatActivity.didReceivedNotification(id, account, args); - }, 50); - NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.messagesDidLoad); + final boolean[] chatOpened = new boolean[] { false }; + Runnable openCommentsChat = () -> { + if (chatOpened[0] || thisCommentLoadingMessageId != commentLoadingMessageId || !isFullyVisible || isFinishing()) { + return; + } + chatOpened[0] = true; + AndroidUtilities.runOnUIThread(() -> { + commentLoadingMessageId = 0; + chatListView.invalidateViews(); + }, 200); + presentFragment(chatActivity); + if (isKeyboardVisible() && !chatActivity.hideKeyboardOnShow()) { + if (chatActivity.chatActivityEnterView != null && chatActivity.chatActivityEnterView.getEditField() != null) { + chatActivity.chatActivityEnterView.getEditField().requestFocus(); } } }; - NotificationCenter.getInstance(currentAccount).addObserver(observer, NotificationCenter.messagesDidLoad); - Utilities.stageQueue.postRunnable(() -> { - getMessagesController().processLoadedMessages(historyFinal, historyFinal.messages.size(), dialogId, 0, 30, (highlightMsgId > 0 ? highlightMsgId : maxReadId), 0, false, commentsClassGuid, fnidFinal, 0, 0, 0, (highlightMsgId > 0 ? 3 : 2), true, 0, arrayList.get(arrayList.size() - 1).getId(), 1, false, 0, true, isTopic, null); - }); - } else { - openCommentsChat.run(); - } - } else { - commentLoadingMessageId = 0; - chatListView.invalidateViews(); - if (fallbackMessage != null) { - openOriginalReplyChat(fallbackMessage); + if (historyFinal != null) { + int fnid = 0; + if (!historyFinal.messages.isEmpty()) { + for (int a = historyFinal.messages.size() - 1; a >= 0; a--) { + TLRPC.Message message = historyFinal.messages.get(a); + if (message.id > maxReadId && !message.out) { + fnid = message.id; + break; + } + } + } + + int fnidFinal = fnid; + final int commentsClassGuid = chatActivity.getClassGuid(); + final NotificationCenter.NotificationCenterDelegate observer = new NotificationCenter.NotificationCenterDelegate() { + @Override + public void didReceivedNotification(int id, int account, Object... args) { + if (id == NotificationCenter.messagesDidLoad && (Integer) args[10] == commentsClassGuid) { + openCommentsChat.run(); + AndroidUtilities.runOnUIThread(() -> { + chatActivity.didReceivedNotification(id, account, args); + }, 50); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.messagesDidLoad); + } + } + }; + NotificationCenter.getInstance(currentAccount).addObserver(observer, NotificationCenter.messagesDidLoad); + Utilities.stageQueue.postRunnable(() -> { + getMessagesController().processLoadedMessages(historyFinal, historyFinal.messages.size(), dialogId, 0, 30, (highlightMsgId > 0 ? highlightMsgId : maxReadId), 0, false, commentsClassGuid, fnidFinal, 0, 0, 0, (highlightMsgId > 0 ? 3 : 2), true, 0, arrayList.get(arrayList.size() - 1).getId(), 1, false, 0, true, isTopic, null); + }); + } else { + openCommentsChat.run(); + } } else { - if (getParentActivity() != null) { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("ChannelPostDeleted", R.string.ChannelPostDeleted), themeDelegate).show(); + commentLoadingMessageId = 0; + chatListView.invalidateViews(); + if (fallbackMessage != null) { + openOriginalReplyChat(fallbackMessage); + } else { + if (getParentActivity() != null) { + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("ChannelPostDeleted", R.string.ChannelPostDeleted), themeDelegate).show(); + } } } - } + }); } private void openDiscussionMessageChat(long chatId, MessageObject originalMessage, int messageId, long linkedChatId, int maxReadId, int highlightMsgId, MessageObject fallbackMessage) { @@ -31716,6 +32551,17 @@ private void removeMessageObject(MessageObject messageObject) { } } + private void removeMessageWithThanos(MessageObject messageObject) { + int index = messages.indexOf(messageObject); + if (index == -1) { + return; + } + messages.remove(index); + if (chatAdapter != null && !chatAdapter.isFiltered) { + chatAdapter.notifyItemRemoved(chatAdapter.messagesStartRow + index, true); + } + } + public void openVCard(TLRPC.User user, String phone, String vcard, String first_name, String last_name) { if (user != null) { Bundle args = new Bundle(); @@ -32444,8 +33290,6 @@ private void updateRowsInternal() { if (chatMode == MODE_QUICK_REPLIES && !QuickRepliesController.isSpecial(quickReplyShortcut)) { hintRow = rowCount++; - } else { - hintRow = -5; } if (isFiltered ? !filteredEndReached : (!endReached[0] || mergeDialogId != 0 && !endReached[1]) && !(DISABLE_PROGRESS_VIEW && !AndroidUtilities.isTablet() && !isComments && currentUser == null)) { @@ -33263,6 +34107,7 @@ public Float get(MessageObject.SendAnimationData object) { messageCell.makeVisibleAfterChange = false; messageCell.setVisibility(View.VISIBLE); } + showBotMessageHint(messageCell, false); } else if (view instanceof ChatActionCell) { ChatActionCell actionCell = (ChatActionCell) view; actionCell.setMessageObject(message); @@ -33749,6 +34594,9 @@ public void onSearchCollapse() { if (searchUserButton != null) { searchUserButton.setVisibility(View.VISIBLE); } + if (searchFilterButton != null) { + searchFilterButton.setVisibility(View.VISIBLE); + } if (searchingForUser) { mentionContainer.getAdapter().searchUsernameOrHashtag(null, 0, null, false, true); searchingForUser = false; @@ -33908,7 +34756,7 @@ public void setSearchAnimationProgress(float progress) { public void onSearchPressed(EditText editText) { searchWas = true; updateSearchButtons(0, 0, -1); - getMediaDataController().searchMessagesInChat(searchingQuery = editText.getText().toString(), dialog_id, mergeDialogId, classGuid, 0, threadMessageId, searchingUserMessages, searchingChatMessages, searchingReaction); + getMediaDataController().searchMessagesInChat(searchingQuery = editText.getText().toString(), dialog_id, mergeDialogId, classGuid, 0, threadMessageId, searchingUserMessages, searchingChatMessages, searchingReaction, searchingType); } @Override @@ -33938,6 +34786,7 @@ public void onCaptionCleared() { searchItem.setSearchFieldHint(isSupportedTags() ? LocaleController.getString("SavedTagSearchHint", R.string.SavedTagSearchHint) : LocaleController.getString("Search", R.string.Search)); searchCalendarButton.setVisibility(View.VISIBLE); searchUserButton.setVisibility(View.VISIBLE); + searchFilterButton.setVisibility(View.VISIBLE); searchingUserMessages = null; searchingChatMessages = null; } @@ -34225,6 +35074,11 @@ public void didPressSponsoredClose() { showDialog(new PremiumFeatureBottomSheet(ChatActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_ADS, true)); } + @Override + public void didPressSponsoredInfo(ChatMessageCell cell, float x, float y) { + createMenu(cell, true, false, x, y, false); + } + @Override public void didPressUserStatus(ChatMessageCell cell, TLRPC.User user, TLRPC.Document document) { if (cell == null) { @@ -35851,6 +36705,14 @@ public boolean onAccessibilityAction(int action, Bundle arguments) { public boolean doNotShowLoadingReply(MessageObject msg) { return msg != null && msg.getDialogId() == UserObject.REPLY_BOT || (chatAdapter != null && chatAdapter.isFiltered); } + + @Override + public void didPressAboutRevenueSharingAds() { + if (contentView == null || getParentActivity() == null) { + return; + } + RevenueSharingAdsInfoBottomSheet.showAlert(contentView.getContext(), ChatActivity.this, resourceProvider); + } }; private void openUserProfile(long uid) { @@ -36599,6 +37461,8 @@ public ArrayList getThemeDescriptions() { themeDescriptions.add(new ThemeDescription(replyCloseImageView, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_replyPanelClose)); themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_replyPanelName)); + themeDescriptions.add(new ThemeDescription(searchFilterButton, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_searchPanelIcons)); + themeDescriptions.add(new ThemeDescription(searchFilterButton, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector)); themeDescriptions.add(new ThemeDescription(searchCalendarButton, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_searchPanelIcons)); themeDescriptions.add(new ThemeDescription(searchCalendarButton, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector)); themeDescriptions.add(new ThemeDescription(searchUserButton, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_searchPanelIcons)); @@ -38357,6 +39221,22 @@ private void nkbtn_onclick(int id) { getMessageHelper().saveStickerToGallery(getParentActivity(), selectedObject); break; } + case nkbtn_sticker_copy: { + getMessageHelper().addStickerToClipboard(selectedObject.getDocument(), () -> { + if (BulletinFactory.canShowBulletin(ChatActivity.this)) { + BulletinFactory.of(this).createCopyBulletin(LocaleController.getString("PhotoCopied", R.string.PhotoCopied)).show(); + } + }); + break; + } + case nkbtn_sticker_copy_png: { + getMessageHelper().addStickerToClipboardAsPNG(selectedObject.getDocument(), () -> { + if (BulletinFactory.canShowBulletin(ChatActivity.this)) { + BulletinFactory.of(this).createCopyBulletin(LocaleController.getString("PhotoCopied", R.string.PhotoCopied)).show(); + } + }); + break; + } case nkbtn_translate: { if (NekoConfig.useTelegramTranslateInChat.Bool() && !selectedObject.isPoll()) { String toLang = LocaleController.getInstance().getCurrentLocale().getLanguage(); @@ -38848,6 +39728,8 @@ private void checkGroupMessagesOrder() { } private void invalidatePremiumBlocked() { + if (getDialogId() == getUserConfig().getClientUserId()) + return; if (getUserConfig().isPremium()) return; if (currentUser == null || !currentUser.contact_require_premium) @@ -38865,4 +39747,33 @@ public boolean checkCanRemoveRestrictionsByBoosts() { } return result; } + + public void showPremiumFloodWaitBulletin(final boolean isUpload) { + final long now = System.currentTimeMillis(); + if (now - ConnectionsManager.lastPremiumFloodWaitShown < 1000L * MessagesController.getInstance(currentAccount).uploadPremiumSpeedupNotifyPeriod) { + return; + } + ConnectionsManager.lastPremiumFloodWaitShown = now; + if (UserConfig.getInstance(currentAccount).isPremium() || MessagesController.getInstance(currentAccount).premiumFeaturesBlocked()) { + return; + } + + final float n; + if (isUpload) { + n = MessagesController.getInstance(currentAccount).uploadPremiumSpeedupUpload; + } else { + n = MessagesController.getInstance(currentAccount).uploadPremiumSpeedupDownload; + } + SpannableString boldN = new SpannableString(Double.toString(Math.round(n * 10) / 10.0).replaceAll("\\.0$", "")); + boldN.setSpan(new TypefaceSpan(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)), 0, boldN.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + + if (hasStoryViewer()) return; + BulletinFactory.of(this).createSimpleBulletin( + R.raw.speed_limit, + LocaleController.getString(isUpload ? R.string.UploadSpeedLimited : R.string.DownloadSpeedLimited), + AndroidUtilities.replaceCharSequence("%d", AndroidUtilities.premiumText(LocaleController.getString(isUpload ? R.string.UploadSpeedLimitedMessage : R.string.DownloadSpeedLimitedMessage), () -> { + presentFragment(new PremiumPreviewFragment(isUpload ? "upload_speed" : "download_speed")); + }), boldN) + ).setDuration(8000).show(true); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java index 57e7fe6c42..b35e297aee 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java @@ -1008,7 +1008,7 @@ private void initTransfer(TLRPC.InputCheckPasswordSRP srp, TwoStepVerificationAc builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("EditAdminTransferReadyAlertText", R.string.EditAdminTransferReadyAlertText, currentChat.title, UserObject.getFirstName(currentUser)))); builder.setPositiveButton(LocaleController.getString("EditAdminTransferChangeOwner", R.string.EditAdminTransferChangeOwner), (dialogInterface, i) -> { TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); - fragment.setDelegate(password -> initTransfer(password, fragment)); + fragment.setDelegate(0, password -> initTransfer(password, fragment)); presentFragment(fragment); }); builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); @@ -1211,11 +1211,13 @@ private void updateRows(boolean update) { banUsersRow = rowCount++; addUsersRow = rowCount++; pinMessagesRow = rowCount++; - channelStoriesRow = rowCount++; - if (channelStoriesExpanded) { - channelPostStoriesRow = rowCount++; - channelEditStoriesRow = rowCount++; - channelDeleteStoriesRow = rowCount++; + if (ChatObject.isChannel(currentChat)) { + channelStoriesRow = rowCount++; + if (channelStoriesExpanded) { + channelPostStoriesRow = rowCount++; + channelEditStoriesRow = rowCount++; + channelDeleteStoriesRow = rowCount++; + } } startVoiceChatRow = rowCount++; addAdminsRow = rowCount++; @@ -1364,7 +1366,7 @@ private void onDonePressed() { LimitReachedBottomSheet restrictedUsersBottomSheet = new LimitReachedBottomSheet(ChatRightsEditActivity.this, getParentActivity(), LimitReachedBottomSheet.TYPE_ADD_MEMBERS_RESTRICTED, currentAccount, getResourceProvider()); ArrayList arrayList = new ArrayList<>(); arrayList.add(currentUser); - restrictedUsersBottomSheet.setRestrictedUsers(currentChat, arrayList); + restrictedUsersBottomSheet.setRestrictedUsers(currentChat, arrayList, null, null); restrictedUsersBottomSheet.show(); return false; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java index 56c34fac07..92c53d6c53 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java @@ -910,7 +910,7 @@ public void didSelectUser(long uid) { GroupCreateActivity fragment = new GroupCreateActivity(args); fragment.setInfo(info); fragment.setIgnoreUsers(contactsMap != null && contactsMap.size() != 0 ? contactsMap : participantsMap); - fragment.setDelegate(new GroupCreateActivity.ContactsAddActivityDelegate() { + fragment.setDelegate2(new GroupCreateActivity.ContactsAddActivityDelegate() { @Override public void didSelectUsers(ArrayList users, int fwdCount) { if (fragment.getParentActivity() == null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java index f92c47e649..9754c61c1f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java @@ -9,6 +9,8 @@ package org.telegram.ui.Components; import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.formatDateOnline; +import static org.telegram.messenger.LocaleController.getString; import android.Manifest; import android.annotation.SuppressLint; @@ -45,7 +47,7 @@ import android.text.TextWatcher; import android.text.style.URLSpan; import android.util.Base64; -import android.util.Pair; +import android.util.Log; import android.util.SparseArray; import android.util.TypedValue; import android.view.Gravity; @@ -116,30 +118,23 @@ import org.telegram.ui.LoginActivity; import org.telegram.ui.NotificationsCustomSettingsActivity; import org.telegram.ui.NotificationsSettingsActivity; +import org.telegram.ui.PrivacyControlActivity; import org.telegram.ui.ProfileNotificationsActivity; import org.telegram.ui.Stories.recorder.ButtonWithCounterView; import org.telegram.ui.ThemePreviewActivity; import org.telegram.ui.TooManyCommunitiesActivity; import java.net.IDN; -import java.time.Instant; -import java.time.ZoneId; -import java.time.ZoneOffset; -import java.time.temporal.ChronoField; -import java.time.temporal.TemporalField; +import java.time.YearMonth; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; -import java.util.Collection; import java.util.Collections; -import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.Set; -import java.util.TimeZone; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; @@ -2556,39 +2551,54 @@ public static ActionBarPopupWindow createSimplePopup(BaseFragment fragment, View return popupWindow; } - public static void checkRestrictedInviteUsers(int currentAccount, TLRPC.Chat currentChat, TLRPC.Updates updates) { - if (updates == null || updates.updates == null || currentChat == null) { + public static void checkRestrictedInviteUsers(int currentAccount, TLRPC.Chat currentChat, TLRPC.TL_messages_invitedUsers invitedUsers) { + if (invitedUsers == null || invitedUsers.missing_invitees.isEmpty() || currentChat == null) { return; } - ArrayList arrayList = null; - for (int i = 0; i < updates.updates.size(); i++) { - if (updates.updates.get(i) instanceof TLRPC.TL_updateGroupInvitePrivacyForbidden) { - TLRPC.TL_updateGroupInvitePrivacyForbidden restrictedUpdate = (TLRPC.TL_updateGroupInvitePrivacyForbidden) updates.updates.get(i); - TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(restrictedUpdate.user_id); - if (user != null) { - if (arrayList == null) { - arrayList = new ArrayList<>(); + ArrayList users = new ArrayList<>(); + ArrayList pmLockedUsers = new ArrayList<>(); + ArrayList inviteLockedUsers = new ArrayList<>(); + for (TLRPC.TL_missingInvitee missing_invitee : invitedUsers.missing_invitees) { + TLRPC.User user = null; + if (invitedUsers.updates != null) { + for (int i = 0; i < invitedUsers.updates.users.size(); ++i) { + TLRPC.User u = invitedUsers.updates.users.get(i); + if (u.id == missing_invitee.user_id) { + user = u; + break; } - arrayList.add(user); } } + if (user == null) { + user = MessagesController.getInstance(currentAccount).getUser(missing_invitee.user_id); + } + if (user == null) { + continue; + } + users.add(user); + if (missing_invitee.premium_required_for_pm) { + pmLockedUsers.add(user.id); + } + if (missing_invitee.premium_would_allow_invite) { + inviteLockedUsers.add(user.id); + } } - if (arrayList != null) { - ArrayList finalArrayList = arrayList; - AndroidUtilities.runOnUIThread(() -> { - BaseFragment lastFragment = LaunchActivity.getLastFragment(); - if (lastFragment != null && lastFragment.getParentActivity() != null) { - LimitReachedBottomSheet restrictedUsersBottomSheet = new LimitReachedBottomSheet(lastFragment, lastFragment.getParentActivity(), LimitReachedBottomSheet.TYPE_ADD_MEMBERS_RESTRICTED, currentAccount, null); - restrictedUsersBottomSheet.setRestrictedUsers(currentChat, finalArrayList); - restrictedUsersBottomSheet.show(); - } - }, 200); - } + if (users.isEmpty()) + return; + AndroidUtilities.runOnUIThread(() -> { + if (!LaunchActivity.isActive) return; + BaseFragment lastFragment = LaunchActivity.getLastFragment(); + if (lastFragment != null && lastFragment.getParentActivity() != null) { + LimitReachedBottomSheet restrictedUsersBottomSheet = new LimitReachedBottomSheet(lastFragment, lastFragment.getParentActivity(), LimitReachedBottomSheet.TYPE_ADD_MEMBERS_RESTRICTED, currentAccount, null); + restrictedUsersBottomSheet.setRestrictedUsers(currentChat, users, pmLockedUsers, inviteLockedUsers); + restrictedUsersBottomSheet.show(); + } + }, 200); } public interface BlockDialogCallback { void run(boolean report, boolean delete); - } + }; public static void createBlockDialogAlert(BaseFragment fragment, int count, boolean reportSpam, TLRPC.User user, BlockDialogCallback onProcessRunnable) { if (fragment == null || fragment.getParentActivity() == null || count == 1 && user == null) { @@ -2802,13 +2812,6 @@ protected CharSequence getContentDescription(int value) { minutePicker.setGravity(Gravity.LEFT); minutePicker.setTextOffset(dp(12)); final Utilities.Callback checkValue = (byChange) -> { - if (byChange) { - try { - linearLayout.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); - } catch (Exception ignore) { - } - } - int minTimeMinutes = minTime % 60; int minTimeHours = (minTime - minTimeMinutes) / 60; int maxTimeMinutes = maxTime % 60; @@ -3361,13 +3364,6 @@ public CharSequence getAccessibilityClassName() { } }); final NumberPicker.OnValueChangeListener onValueChangeListener = (picker, oldVal, newVal) -> { - try { - if (!NekoConfig.disableVibration.Bool()) { - container.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); - } - } catch (Exception ignore) { - - } checkScheduleDate(buttonTextView, null, selfUserId == dialogId ? 1 : 0, dayPicker, hourPicker, minutePicker); }; dayPicker.setOnValueChangedListener(onValueChangeListener); @@ -3549,13 +3545,6 @@ public CharSequence getAccessibilityClassName() { } }); final NumberPicker.OnValueChangeListener onValueChangeListener = (picker, oldVal, newVal) -> { - try { - if (!NekoConfig.disableVibration.Bool()) { - container.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); - } - } catch (Exception ignore) { - - } checkScheduleDate(null, null, 0, dayPicker, hourPicker, minutePicker); }; dayPicker.setOnValueChangedListener(onValueChangeListener); @@ -3618,6 +3607,254 @@ public CharSequence getAccessibilityClassName() { return builder; } + public static BottomSheet.Builder createBirthdayPickerDialog(Context context, String title, String button, TLRPC.TL_birthday currentBirthday, final Utilities.Callback whenSelectedBirthday, Runnable addPrivacyText, Theme.ResourcesProvider resourcesProvider) { + if (context == null) { + return null; + } + + BottomSheet.Builder builder = new BottomSheet.Builder(context, false, resourcesProvider); + builder.setApplyBottomPadding(false); + + final NumberPicker dayPicker = new NumberPicker(context, resourcesProvider); + dayPicker.setTextOffset(dp(10)); + dayPicker.setItemCount(5); + final NumberPicker monthPicker = new NumberPicker(context, resourcesProvider); + monthPicker.setItemCount(5); + monthPicker.setTextOffset(-dp(10)); + final NumberPicker yearPicker = new NumberPicker(context, resourcesProvider); + yearPicker.setItemCount(5); + yearPicker.setTextOffset(-dp(24)); + + LinearLayout container = new LinearLayout(context) { + + boolean ignoreLayout = false; + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + ignoreLayout = true; + int count; + if (AndroidUtilities.displaySize.x > AndroidUtilities.displaySize.y) { + count = 3; + } else { + count = 5; + } + dayPicker.setItemCount(count); + monthPicker.setItemCount(count); + yearPicker.setItemCount(count); + dayPicker.getLayoutParams().height = dp(NumberPicker.DEFAULT_SIZE_PER_COUNT) * count; + monthPicker.getLayoutParams().height = dp(NumberPicker.DEFAULT_SIZE_PER_COUNT) * count; + yearPicker.getLayoutParams().height = dp(NumberPicker.DEFAULT_SIZE_PER_COUNT) * count; + ignoreLayout = false; + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + + @Override + public void requestLayout() { + if (ignoreLayout) { + return; + } + super.requestLayout(); + } + }; + container.setOrientation(LinearLayout.VERTICAL); + + FrameLayout titleLayout = new FrameLayout(context); + container.addView(titleLayout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 22, 0, 0, 4)); + + TextView titleView = new TextView(context); + titleView.setText(title); + titleView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); + titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); + titleView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + titleLayout.addView(titleView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 0, 12, 0, 0)); + titleView.setOnTouchListener((v, event) -> true); + + LinearLayout linearLayout = new LinearLayout(context); + linearLayout.setGravity(Gravity.CENTER); + linearLayout.setOrientation(LinearLayout.HORIZONTAL); + linearLayout.setWeightSum(1.0f); + container.addView(linearLayout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 1f, 0, 0, 12, 0, 12)); + + Calendar calendar = Calendar.getInstance(); + int minYear = calendar.get(Calendar.YEAR) - 149; + calendar.setTimeInMillis(System.currentTimeMillis()); + int thisDay = calendar.get(Calendar.DAY_OF_MONTH); + int thisMonth = calendar.get(Calendar.MONTH); + int thisYear = calendar.get(Calendar.YEAR); + final int undefinedYear = thisYear + 1; + + Runnable check = () -> { + if (yearPicker.getValue() == undefinedYear) { + dayPicker.setMinValue(1); + try { + dayPicker.setMaxValue(YearMonth.of(2024, 1 + monthPicker.getValue()).lengthOfMonth()); + } catch (Exception e) { + FileLog.e(e); + dayPicker.setMaxValue(31); + } + monthPicker.setMinValue(0); + monthPicker.setMaxValue(11); + } else if (yearPicker.getValue() == thisYear) { + monthPicker.setMinValue(0); + monthPicker.setMaxValue(thisMonth); + if (monthPicker.getValue() == thisMonth) { + dayPicker.setMinValue(1); + dayPicker.setMaxValue(1 + thisDay - 1); + } else { + dayPicker.setMinValue(1); + try { + dayPicker.setMaxValue(YearMonth.of(yearPicker.getValue(), 1 + monthPicker.getValue()).lengthOfMonth()); + } catch (Exception e) { + FileLog.e(e); + dayPicker.setMaxValue(31); + } + } + } else { + dayPicker.setMinValue(1); + try { + dayPicker.setMaxValue(YearMonth.of(yearPicker.getValue(), 1 + monthPicker.getValue()).lengthOfMonth()); + } catch (Exception e) { + FileLog.e(e); + dayPicker.setMaxValue(31); + } + monthPicker.setMinValue(0); + monthPicker.setMaxValue(11); + } + }; + + long currentTime = System.currentTimeMillis(); + + TextView buttonTextView = new TextView(context) { + @Override + public CharSequence getAccessibilityClassName() { + return Button.class.getName(); + } + }; + + linearLayout.addView(dayPicker, LayoutHelper.createLinear(0, 54 * 5, 0.25f)); + dayPicker.setMinValue(1); + dayPicker.setMaxValue(31); + dayPicker.setWrapSelectorWheel(false); + dayPicker.setFormatter(value -> "" + value); + final NumberPicker.OnScrollListener onScrollListener = (view, state) -> { + if (state == NumberPicker.OnScrollListener.SCROLL_STATE_IDLE) check.run(); + }; + dayPicker.setOnScrollListener(onScrollListener); + + monthPicker.setMinValue(0); + monthPicker.setMaxValue(11); + monthPicker.setWrapSelectorWheel(false); + linearLayout.addView(monthPicker, LayoutHelper.createLinear(0, 54 * 5, 0.5f)); + monthPicker.setFormatter(value -> { + switch (value) { + case 0: return LocaleController.getString(R.string.January); + case 1: return LocaleController.getString(R.string.February); + case 2: return LocaleController.getString(R.string.March); + case 3: return LocaleController.getString(R.string.April); + case 4: return LocaleController.getString(R.string.May); + case 5: return LocaleController.getString(R.string.June); + case 6: return LocaleController.getString(R.string.July); + case 7: return LocaleController.getString(R.string.August); + case 8: return LocaleController.getString(R.string.September); + case 9: return LocaleController.getString(R.string.October); + case 10: return LocaleController.getString(R.string.November); + case 11: + default: { + return LocaleController.getString(R.string.December); + } + } + }); + monthPicker.setOnScrollListener(onScrollListener); + + yearPicker.setMinValue(minYear); + yearPicker.setMaxValue(undefinedYear); + yearPicker.setWrapSelectorWheel(false); + yearPicker.setFormatter(value -> value == undefinedYear ? "โ€”" : String.format("%02d", value)); + linearLayout.addView(yearPicker, LayoutHelper.createLinear(0, 54 * 5, 0.25f)); + yearPicker.setOnScrollListener(onScrollListener); + + if (currentBirthday != null) { + dayPicker.setValue(currentBirthday.day); + monthPicker.setValue(currentBirthday.month - 1); + if ((currentBirthday.flags & 1) != 0) { + yearPicker.setValue(currentBirthday.year); + } else { + yearPicker.setValue(undefinedYear); + } + } else { + dayPicker.setValue(calendar.get(Calendar.DAY_OF_MONTH)); + monthPicker.setValue(calendar.get(Calendar.MONTH)); + yearPicker.setValue(undefinedYear); + } + + check.run(); + + if (addPrivacyText != null) { + FrameLayout frameLayout = new FrameLayout(context); + LinkSpanDrawable.LinksTextView textView = new LinkSpanDrawable.LinksTextView(context); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + textView.setTextColor(Theme.getColor(Theme.key_dialogTextGray2, resourcesProvider)); + textView.setLinkTextColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider)); + textView.setGravity(Gravity.CENTER); + frameLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER));; + container.addView(frameLayout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + + final int currentAccount = UserConfig.selectedAccount; + Runnable setText = () -> { + ArrayList rules = ContactsController.getInstance(currentAccount).getPrivacyRules(ContactsController.PRIVACY_RULES_TYPE_BIRTHDAY); + String string = getString(R.string.EditProfileBirthdayInfoContacts); + if (rules != null && !rules.isEmpty()) { + for (int i = 0; i < rules.size(); ++i) { + if (rules.get(i) instanceof TLRPC.TL_privacyValueAllowContacts) { + string = getString(R.string.EditProfileBirthdayInfoContacts); + break; + } + if (rules.get(i) instanceof TLRPC.TL_privacyValueAllowAll || rules.get(i) instanceof TLRPC.TL_privacyValueDisallowAll) { + string = getString(R.string.EditProfileBirthdayInfo); + } + } + } + textView.setText(AndroidUtilities.replaceArrows(AndroidUtilities.replaceSingleTag(string, () -> { + if (rules == null) return; + BaseFragment fragment = LaunchActivity.getLastFragment(); + if (fragment == null) return; + BaseFragment.BottomSheetParams bottomSheetParams = new BaseFragment.BottomSheetParams(); + bottomSheetParams.transitionFromLeft = true; + bottomSheetParams.allowNestedScroll = false; + fragment.showAsSheet(new PrivacyControlActivity(PrivacyControlActivity.PRIVACY_RULES_TYPE_BIRTHDAY), bottomSheetParams); + }), true)); + }; + setText.run(); + + NotificationCenter.getInstance(currentAccount).listen(frameLayout, NotificationCenter.privacyRulesUpdated, args -> setText.run()); + ContactsController.getInstance(currentAccount).loadPrivacySettings(); + } + + buttonTextView.setPadding(dp(34), 0, dp(34), 0); + buttonTextView.setGravity(Gravity.CENTER); + buttonTextView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText, resourcesProvider)); + buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + buttonTextView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + buttonTextView.setText(button); + buttonTextView.setBackground(Theme.createSimpleSelectorRoundRectDrawable(dp(8), Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider), Theme.getColor(Theme.key_featuredStickers_addButtonPressed, resourcesProvider))); + container.addView(buttonTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.BOTTOM, 16, 15, 16, 16)); + buttonTextView.setOnClickListener(v -> { + TLRPC.TL_birthday b = new TLRPC.TL_birthday(); + b.day = dayPicker.getValue(); + b.month = 1 + monthPicker.getValue(); + if (yearPicker.getValue() != undefinedYear) { + b.flags |= 1; + b.year = yearPicker.getValue(); + } + builder.getDismissRunnable().run(); + whenSelectedBirthday.run(b); + }); + + builder.setCustomView(container); + return builder; + } + + public interface StatusUntilDatePickerDelegate { void didSelectDate(int date); } @@ -3695,7 +3932,7 @@ public void requestLayout() { titleView.setTextColor(datePickerColors.textColor); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); - titleView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + titleView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); titleLayout.addView(titleView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 0, 12, 0, 0)); titleView.setOnTouchListener((v, event) -> true); @@ -3739,12 +3976,6 @@ public CharSequence getAccessibilityClassName() { } }); final NumberPicker.OnValueChangeListener onValueChangeListener = (picker, oldVal, newVal) -> { - try { - if (!NekoConfig.disableVibration.Bool()) - container.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); - } catch (Exception ignore) { - - } checkScheduleDate(null, null, 0, dayPicker, hourPicker, minutePicker); }; dayPicker.setOnValueChangedListener(onValueChangeListener); @@ -3941,8 +4172,6 @@ public CharSequence getAccessibilityClassName() { } else { buttonTextView.setText(LocaleController.getString("SetAutoDeleteTimer", R.string.SetAutoDeleteTimer)); } - if (!NekoConfig.disableVibration.Bool()) - container.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); } catch (Exception ignore) { } @@ -4080,12 +4309,7 @@ public CharSequence getAccessibilityClassName() { container.addView(buttonTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.BOTTOM, 16, 15, 16, 16)); final NumberPicker.OnValueChangeListener onValueChangeListener = (picker, oldVal, newVal) -> { - try { - if (!NekoConfig.disableVibration.Bool()) - container.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); - } catch (Exception ignore) { - } }; times.setOnValueChangedListener(onValueChangeListener); minutes.setOnValueChangedListener(onValueChangeListener); @@ -4233,12 +4457,7 @@ public CharSequence getAccessibilityClassName() { linearLayout.addView(numberPicker, LayoutHelper.createLinear(0, 54 * 5, 1f)); final NumberPicker.OnValueChangeListener onValueChangeListener = (picker, oldVal, newVal) -> { - try { - if (!NekoConfig.disableVibration.Bool()) - container.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); - } catch (Exception ignore) { - } }; numberPicker.setOnValueChangedListener(onValueChangeListener); @@ -4409,13 +4628,6 @@ public CharSequence getAccessibilityClassName() { dayPicker.setWrapSelectorWheel(false); dayPicker.setFormatter(value -> "" + value); final NumberPicker.OnValueChangeListener onValueChangeListener = (picker, oldVal, newVal) -> { - try { - if (!NekoConfig.disableVibration.Bool()) { - container.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); - } - } catch (Exception ignore) { - - } checkCalendarDate(minDate, dayPicker, monthPicker, yearPicker); }; dayPicker.setOnValueChangedListener(onValueChangeListener); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedEmojiDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedEmojiDrawable.java index 25845ccaa3..8aff260ada 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedEmojiDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedEmojiDrawable.java @@ -26,6 +26,7 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.BuildVars; import org.telegram.messenger.DocumentObject; +import org.telegram.messenger.Emoji; import org.telegram.messenger.FileLoader; import org.telegram.messenger.FileLog; import org.telegram.messenger.ImageLoader; @@ -42,7 +43,6 @@ import org.telegram.tgnet.NativeByteBuffer; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; -import org.telegram.ui.Components.Reactions.HwEmojis; import org.telegram.ui.SelectAnimatedEmojiDialog; import java.io.File; @@ -73,6 +73,10 @@ public class AnimatedEmojiDrawable extends Drawable { public static final int CACHE_TYPE_ALERT_PREVIEW_STATIC_WITH_THUMB = 16; public static final int CACHE_TYPE_EMOJI_CALL = 17; public static final int CACHE_TYPE_SAVED_REACTION = 18; + public static final int CACHE_TYPE_COLORABLE = 19; + // taken from RestrictedEmoji, using thumb as regular emojis + public static final int CACHE_TYPE_STANDARD_EMOJI = 20; + public static final int CACHE_TYPE_ALERT_STANDARD_EMOJI = 21; public int rawDrawIndex; @@ -179,6 +183,7 @@ public void setUiDbCallback(Runnable uiDbCallback) { } public void fetchDocument(long id, ReceivedDocument onDone) { + if (id == 0) return; synchronized (this) { if (emojiDocumentsCache != null) { TLRPC.Document cacheDocument = emojiDocumentsCache.get(id); @@ -423,6 +428,7 @@ public static TLRPC.InputStickerSet findStickerSet(int account, long documentId) private int currentAccount; private String absolutePath; + private boolean imageReceiverEmojiThumb; private ImageReceiver imageReceiver; private float alpha = 1f; @@ -458,10 +464,26 @@ public AnimatedEmojiDrawable(int cacheType, int currentAccount, @NonNull TLRPC.D this.initDocument(false); } + public void setupEmojiThumb(String emoji) { + if (cacheType != CACHE_TYPE_STANDARD_EMOJI && cacheType != CACHE_TYPE_ALERT_STANDARD_EMOJI) { + return; + } + if (TextUtils.isEmpty(emoji)) { + return; + } + if (imageReceiver != null) { + return; + } + createImageReceiver(); + imageReceiverEmojiThumb = true; + imageReceiver.setImageBitmap(Emoji.getEmojiDrawable(emoji)); + imageReceiver.setCrossfadeWithOldImage(true); + } + private void updateSize() { if (this.cacheType == CACHE_TYPE_MESSAGES) { sizedp = (int) ((Math.abs(Theme.chat_msgTextPaint.ascent()) + Math.abs(Theme.chat_msgTextPaint.descent())) * 1.15f / AndroidUtilities.density); - } else if (this.cacheType == CACHE_TYPE_MESSAGES_LARGE || this.cacheType == CACHE_TYPE_ALERT_PREVIEW_LARGE) { + } else if (this.cacheType == CACHE_TYPE_MESSAGES_LARGE || this.cacheType == CACHE_TYPE_ALERT_PREVIEW_LARGE || this.cacheType == CACHE_TYPE_COLORABLE || this.cacheType == CACHE_TYPE_STANDARD_EMOJI || this.cacheType == CACHE_TYPE_ALERT_STANDARD_EMOJI) { sizedp = (int) ((Math.abs(Theme.chat_msgTextPaintEmoji[2].ascent()) + Math.abs(Theme.chat_msgTextPaintEmoji[2].descent())) * 1.15f / AndroidUtilities.density); } else if (this.cacheType == STANDARD_LOTTIE_FRAME) { sizedp = (int) ((Math.abs(Theme.chat_msgTextPaintEmoji[0].ascent()) + Math.abs(Theme.chat_msgTextPaintEmoji[0].descent())) * 1.15f / AndroidUtilities.density); @@ -487,10 +509,7 @@ public TLRPC.Document getDocument() { return this.document; } - private void initDocument(boolean force) { - if (document == null || (imageReceiver != null && !force)) { - return; - } + private void createImageReceiver() { if (imageReceiver == null) { imageReceiver = new ImageReceiver() { @Override @@ -510,7 +529,14 @@ protected boolean setImageBitmapByKey(Drawable drawable, String key, int type, b imageReceiver.ignoreNotifications = true; } }; + } + private void initDocument(boolean force) { + if (document == null || (imageReceiver != null && !imageReceiverEmojiThumb && !force) || (cacheType == CACHE_TYPE_STANDARD_EMOJI || cacheType == CACHE_TYPE_ALERT_STANDARD_EMOJI) && document instanceof TLRPC.TL_documentEmpty) { + return; + } + imageReceiverEmojiThumb = false; + createImageReceiver(); if (colorFilterToSet != null && canOverrideColor()) { imageReceiver.setColorFilter(colorFilterToSet); } @@ -533,7 +559,7 @@ protected boolean setImageBitmapByKey(Drawable drawable, String key, int type, b if (cacheType != CACHE_TYPE_EMOJI_CALL && cacheType != CACHE_TYPE_AVATAR_CONSTRUCTOR_PREVIEW2 && cacheType != CACHE_TYPE_AVATAR_CONSTRUCTOR_PREVIEW && cacheType != STANDARD_LOTTIE_FRAME && (cacheType != CACHE_TYPE_MESSAGES_LARGE || SharedConfig.getDevicePerformanceClass() < SharedConfig.PERFORMANCE_CLASS_HIGH) && cacheType != CACHE_TYPE_RENDERING_VIDEO) { filter += "_pcache"; } - if (cacheType != CACHE_TYPE_EMOJI_CALL && cacheType != CACHE_TYPE_MESSAGES && cacheType != CACHE_TYPE_MESSAGES_LARGE && cacheType != CACHE_TYPE_AVATAR_CONSTRUCTOR_PREVIEW && cacheType != CACHE_TYPE_AVATAR_CONSTRUCTOR_PREVIEW2) { + if (cacheType != CACHE_TYPE_EMOJI_CALL && cacheType != CACHE_TYPE_MESSAGES && cacheType != CACHE_TYPE_MESSAGES_LARGE && cacheType != CACHE_TYPE_AVATAR_CONSTRUCTOR_PREVIEW && cacheType != CACHE_TYPE_AVATAR_CONSTRUCTOR_PREVIEW2 && cacheType != CACHE_TYPE_COLORABLE && cacheType != CACHE_TYPE_STANDARD_EMOJI && cacheType != CACHE_TYPE_ALERT_STANDARD_EMOJI) { filter += "_compress"; } if (cacheType == STANDARD_LOTTIE_FRAME) { @@ -568,6 +594,12 @@ protected boolean setImageBitmapByKey(Drawable drawable, String key, int type, b mediaLocation = null; mediaFilter = filter; } + if (cacheType == CACHE_TYPE_STANDARD_EMOJI || cacheType == CACHE_TYPE_ALERT_STANDARD_EMOJI) { + Drawable emojiDrawable = Emoji.getEmojiDrawable(MessageObject.findAnimatedEmojiEmoticon(document, null)); + if (emojiDrawable != null) { + thumbDrawable = emojiDrawable; + } + } if (absolutePath != null) { imageReceiver.setImageBitmap(new AnimatedFileDrawable(new File(absolutePath), true, 0, 0, null, null, null, 0, currentAccount, true, 512, 512, null)); @@ -600,7 +632,7 @@ protected boolean setImageBitmapByKey(Drawable drawable, String key, int type, b if (cacheType == CACHE_TYPE_ALERT_PREVIEW_STATIC || cacheType == CACHE_TYPE_ALERT_PREVIEW_STATIC_WITH_THUMB || cacheType == CACHE_TYPE_ALERT_PREVIEW || cacheType == CACHE_TYPE_ALERT_PREVIEW_TAB_STRIP || cacheType == CACHE_TYPE_ALERT_PREVIEW_LARGE) { imageReceiver.setLayerNum(7); } - if (cacheType == CACHE_TYPE_ALERT_EMOJI_STATUS) { + if (cacheType == CACHE_TYPE_ALERT_EMOJI_STATUS || cacheType == CACHE_TYPE_ALERT_STANDARD_EMOJI) { imageReceiver.setLayerNum(6656); } imageReceiver.setAspectFit(true); @@ -770,6 +802,9 @@ private void updateAttachState() { private Boolean canOverrideColorCached = null; public boolean canOverrideColor() { + if (cacheType == CACHE_TYPE_COLORABLE) { + return true; + } if (canOverrideColorCached != null) { return canOverrideColorCached; } @@ -1072,6 +1107,13 @@ public void resetAnimation() { changeProgress.set(1, true); } + public float isNotEmpty() { + return ( + (drawables[1] != null ? 1f - changeProgress.get() : 0) + + (drawables[0] != null ? changeProgress.get() : 0) + ); + } + public boolean set(long documentId, int cacheType, boolean animated) { if (drawables[0] instanceof AnimatedEmojiDrawable && ((AnimatedEmojiDrawable) drawables[0]).getDocumentId() == documentId) { return false; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedEmojiSpan.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedEmojiSpan.java index af509b0f27..b8f95cc97e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedEmojiSpan.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedEmojiSpan.java @@ -8,17 +8,21 @@ import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.Rect; +import android.graphics.drawable.Drawable; import android.text.Layout; import android.text.Spannable; import android.text.SpannableString; import android.text.Spanned; +import android.text.TextUtils; import android.text.style.CharacterStyle; import android.text.style.ReplacementSpan; import android.util.LongSparseArray; +import android.view.Gravity; import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.Emoji; @@ -39,14 +43,16 @@ public class AnimatedEmojiSpan extends ReplacementSpan { public long documentId; public TLRPC.Document document; + public String emoji; private float scale; private float extraScale = 1f; public boolean standard; public boolean full = false; public boolean top = false; + public boolean invert = false; private Paint.FontMetricsInt fontMetrics; - private float size = AndroidUtilities.dp(20); + public float size = AndroidUtilities.dp(20); public int cacheType = -1; public String documentAbsolutePath; protected int measuredSize; @@ -358,7 +364,9 @@ public static class AnimatedEmojiHolder implements InvalidateHolder { public Layout layout; public AnimatedEmojiSpan span; public Rect drawableBounds; + @Nullable public AnimatedEmojiDrawable drawable; + public Drawable thumbDrawable; public boolean skipDraw; public float drawingYOffset; public float alpha; @@ -411,13 +419,29 @@ public void draw(Canvas canvas, long time, float boundTop, float boundBottom, fl skipDraw = false; } + if (drawable == null) { + if (thumbDrawable != null) { + float scale = span.getExtraScale(); + thumbDrawable.setAlpha((int) (0xFF * alpha * this.alpha)); + thumbDrawable.setBounds(drawableBounds); + if (scale != 1f || span.invert) { + canvas.save(); + canvas.scale(scale * (span.invert ? -1 : 1), scale, drawableBounds.centerX(), drawableBounds.centerY()); + thumbDrawable.draw(canvas); + canvas.restore(); + } else { + thumbDrawable.draw(canvas); + } + } + return; + } if (drawable.getImageReceiver() != null) { drawable.setColorFilter(colorFilter == null ? Theme.chat_animatedEmojiTextColorFilter : colorFilter); drawable.setTime(time); float scale = span.getExtraScale(); - if (scale != 1f) { + if (scale != 1f || span.invert) { canvas.save(); - canvas.scale(scale, scale, drawableBounds.centerX(), drawableBounds.centerY()); + canvas.scale(scale * (span.invert ? -1 : 1), scale, drawableBounds.centerX(), drawableBounds.centerY()); drawable.draw(canvas, drawableBounds, alpha * this.alpha); canvas.restore(); } else { @@ -516,8 +540,15 @@ public static EmojiGroupedSpans update(int cacheType, View view, boolean invalid holder.drawable = AnimatedEmojiDrawable.make(UserConfig.selectedAccount, localCacheType, span.getDocumentId(), span.documentAbsolutePath); } else if (span.document != null) { holder.drawable = AnimatedEmojiDrawable.make(UserConfig.selectedAccount, localCacheType, span.document); - } else { - holder.drawable = AnimatedEmojiDrawable.make(UserConfig.selectedAccount, localCacheType, span.documentId); + } else if (span.documentId != 0) { + holder.drawable = AnimatedEmojiDrawable.make(UserConfig.selectedAccount, localCacheType, span.documentId, null); + } + if ((span.cacheType == AnimatedEmojiDrawable.CACHE_TYPE_STANDARD_EMOJI || span.cacheType == AnimatedEmojiDrawable.CACHE_TYPE_ALERT_STANDARD_EMOJI) && !TextUtils.isEmpty(span.emoji)) { + if (holder.drawable != null) { + holder.drawable.setupEmojiThumb(span.emoji); + } else { + holder.thumbDrawable = Emoji.getEmojiDrawable(span.emoji); + } } holder.insideSpoiler = isInsideSpoiler(textLayout, spanned.getSpanStart(span), spanned.getSpanEnd(span)); holder.drawableBounds = new Rect(); @@ -720,7 +751,9 @@ public void add(Layout layout, AnimatedEmojiHolder holder) { backgroundDrawingArray.add(chunkByLayout); } chunkByLayout.add(holder); - holder.drawable.addView(holder); + if (holder.drawable != null) { + holder.drawable.addView(holder); + } } public boolean hasLayout(Layout layout) { @@ -754,7 +787,9 @@ public void remove(int i) { } else { throw new RuntimeException("!!!"); } - holder.drawable.removeView(holder); + if (holder.drawable != null) { + holder.drawable.removeView(holder); + } } public void release() { @@ -826,7 +861,7 @@ private void checkBackgroundRendering() { public void drawInBackground(Canvas canvas) { for (int i = 0; i < backgroundHolders.size(); i++) { AnimatedEmojiHolder holder = backgroundHolders.get(i); - if (holder != null && holder.backgroundDrawHolder[threadIndex] != null) { + if (holder != null && holder.drawable != null && holder.backgroundDrawHolder[threadIndex] != null) { holder.drawable.draw(canvas, holder.backgroundDrawHolder[threadIndex], true); } } @@ -904,10 +939,9 @@ public void draw(Canvas canvas, List spoilers, long time, float b continue; } AnimatedEmojiDrawable drawable = holder.drawable; - if (drawable == null) { - continue; + if (drawable != null) { + drawable.setColorFilter(colorFilter); } - drawable.setColorFilter(colorFilter); if (!holder.span.spanDrawn) { continue; } @@ -925,6 +959,7 @@ public void draw(Canvas canvas, List spoilers, long time, float b holder.drawingYOffset = drawingYOffset; holder.alpha = spoilerAlpha; + if (backgroundThreadDrawable == null) { holder.draw(canvas, time, boundTop, boundBottom, alpha, colorFilter); } @@ -1023,7 +1058,15 @@ protected void onDetachedFromWindow() { @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); + float offset = (getGravity() & Gravity.CENTER_VERTICAL) != 0 && getLayout() != null ? getPaddingTop() + (getHeight() - getPaddingTop() - getPaddingBottom() - getLayout().getHeight()) / 2f : 0; + if (offset != 0) { + canvas.save(); + canvas.translate(0, offset); + } AnimatedEmojiSpan.drawAnimatedEmojis(canvas, getLayout(), stack, 0, null, 0, 0, 0, 1f); + if (offset != 0) { + canvas.restore(); + } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedTextView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedTextView.java index 35776a217c..fd05568263 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedTextView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AnimatedTextView.java @@ -15,6 +15,7 @@ import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.Shader; @@ -33,8 +34,10 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.graphics.ColorUtils; import org.checkerframework.checker.units.qual.A; +import org.checkerframework.checker.units.qual.C; import org.telegram.messenger.AndroidUtilities; import org.telegram.ui.ActionBar.Theme; @@ -65,7 +68,9 @@ public void setSplitByWords(boolean b) { splitByWords = b; } - private static class Part { + private class Part { + + AnimatedEmojiSpan.EmojiGroupedSpans emoji; StaticLayout layout; float offset; int toOppositeIndex; @@ -75,6 +80,18 @@ public Part(StaticLayout layout, float offset, int toOppositeIndex) { this.layout = layout; this.toOppositeIndex = toOppositeIndex; layout(offset); + + if (getCallback() instanceof View) { + View view = (View) getCallback(); + emoji = AnimatedEmojiSpan.update(emojiCacheType, view, emoji, layout); + } + } + + public void detach() { + if (getCallback() instanceof View) { + View view = (View) getCallback(); + AnimatedEmojiSpan.release(view, emoji); + } } public void layout(float offset) { @@ -82,6 +99,16 @@ public void layout(float offset) { this.left = layout == null || layout.getLineCount() <= 0 ? 0 : layout.getLineLeft(0); this.width = layout == null || layout.getLineCount() <= 0 ? 0 : layout.getLineWidth(0); } + + public void draw(Canvas canvas, float alpha) { + layout.draw(canvas); + AnimatedEmojiSpan.drawAnimatedEmojis(canvas, layout, emoji, 0, null, 0, 0, 0, alpha, emojiColorFilter); + } + } + + private int emojiCacheType = AnimatedEmojiDrawable.CACHE_TYPE_MESSAGES; + public void setEmojiCacheType(int cacheType) { + this.emojiCacheType = cacheType; } private float t = 0; @@ -206,7 +233,7 @@ public void draw(@NonNull Canvas canvas) { final float s = lerp(1f - scaleAmplitude, 1f, t); canvas.scale(s, s, current.width / 2f, current.layout.getHeight() / 2f); } - current.layout.draw(canvas); + current.draw(canvas, j >= 0 ? 1f : t); canvas.restore(); } for (int i = 0; i < oldParts.length; ++i) { @@ -237,7 +264,7 @@ public void draw(@NonNull Canvas canvas) { final float s = lerp(1f, 1f - scaleAmplitude, t); canvas.scale(s, s, old.width / 2f, old.layout.getHeight() / 2f); } - old.layout.draw(canvas); + old.draw(canvas, 1f - t); canvas.restore(); } } else { @@ -262,7 +289,7 @@ public void draw(@NonNull Canvas canvas) { } } canvas.translate(x, 0); - current.layout.draw(canvas); + current.draw(canvas, 1f); canvas.restore(); } } @@ -378,10 +405,12 @@ public void setText(CharSequence text, boolean animated, boolean moveDown) { diff(from, to, onEqualRegion, onNewPart, onOldPart); // betterDiff(from, to, onEqualRegion, onNewPart, onOldPart); + clearCurrentParts(); if (this.currentParts == null || this.currentParts.length != currentParts.size()) { this.currentParts = new Part[currentParts.size()]; } currentParts.toArray(this.currentParts); + clearOldParts(); if (this.oldParts == null || this.oldParts.length != oldParts.size()) { this.oldParts = new Part[oldParts.size()]; } @@ -392,19 +421,28 @@ public void setText(CharSequence text, boolean animated, boolean moveDown) { this.moveDown = moveDown; animator = ValueAnimator.ofFloat(t = 0f, 1f); + if (widthUpdatedListener != null) { + widthUpdatedListener.run(); + } animator.addUpdateListener(anm -> { t = (float) anm.getAnimatedValue(); invalidateSelf(); + if (widthUpdatedListener != null) { + widthUpdatedListener.run(); + } }); animator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); - AnimatedTextDrawable.this.oldParts = null; + clearOldParts(); oldText = null; oldWidth = 0; t = 0; invalidateSelf(); + if (widthUpdatedListener != null) { + widthUpdatedListener.run(); + } animator = null; if (toSetText != null) { @@ -430,6 +468,7 @@ public void onAnimationEnd(Animator animation) { t = 0; if (!text.equals(currentText)) { + clearCurrentParts(); currentParts = new Part[1]; currentParts[0] = new Part(makeLayout(currentText = text, width), 0, -1); currentWidth = currentParts[0].width; @@ -437,13 +476,34 @@ public void onAnimationEnd(Animator animation) { isRTL = AndroidUtilities.isRTL(currentText); } - oldParts = null; + clearOldParts(); oldText = null; oldWidth = 0; oldHeight = 0; invalidateSelf(); + if (widthUpdatedListener != null) { + widthUpdatedListener.run(); + } + } + } + + private void clearOldParts() { + if (oldParts != null) { + for (int i = 0; i < oldParts.length; ++i) { + oldParts[i].detach(); + } } + oldParts = null; + } + + private void clearCurrentParts() { + if (oldParts != null) { + for (int i = 0; i < oldParts.length; ++i) { + oldParts[i].detach(); + } + } + oldParts = null; } public CharSequence getText() { @@ -861,6 +921,75 @@ public int getTextColor() { return textPaint.getColor(); } + private ValueAnimator colorAnimator; + public void setTextColor(int color, boolean animated) { + if (colorAnimator != null) { + colorAnimator.cancel(); + colorAnimator = null; + } + if (!animated) { + setTextColor(color); + } else { + final int from = getTextColor(); + final int to = color; + colorAnimator = ValueAnimator.ofFloat(0, 1); + colorAnimator.addUpdateListener(anm -> { + setTextColor(ColorUtils.blendARGB(from, to, (float) anm.getAnimatedValue())); + invalidateSelf(); + }); + colorAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + setTextColor(to); + } + }); + colorAnimator.setDuration(240); + colorAnimator.setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT); + colorAnimator.start(); + } + } + + private int emojiColor; + private ColorFilter emojiColorFilter; + + public void setEmojiColorFilter(ColorFilter colorFilter) { + emojiColorFilter = colorFilter; + } + + public void setEmojiColor(int emojiColor) { + if (this.emojiColor != emojiColor) { + emojiColorFilter = new PorterDuffColorFilter(this.emojiColor = emojiColor, PorterDuff.Mode.MULTIPLY); + } + } + + private ValueAnimator emojiColorAnimator; + public void setEmojiColor(int color, boolean animated) { + if (emojiColorAnimator != null) { + emojiColorAnimator.cancel(); + emojiColorAnimator = null; + } + if (!animated) { + setEmojiColor(color); + } else if (emojiColor != color) { + final int from = getTextColor(); + final int to = color; + emojiColorAnimator = ValueAnimator.ofFloat(0, 1); + emojiColorAnimator.addUpdateListener(anm -> { + setEmojiColor(ColorUtils.blendARGB(from, to, (float) anm.getAnimatedValue())); + invalidateSelf(); + }); + emojiColorAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + setTextColor(to); + } + }); + emojiColorAnimator.setDuration(240); + emojiColorAnimator.setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT); + emojiColorAnimator.start(); + } + } + public void setTypeface(Typeface typeface) { textPaint.setTypeface(typeface); } @@ -938,6 +1067,11 @@ public float isNotEmpty() { oldText == null ? 1f : t ); } + + private Runnable widthUpdatedListener; + public void setOnWidthUpdatedListener(Runnable listener) { + widthUpdatedListener = listener; + } } private final AnimatedTextDrawable drawable; @@ -1059,6 +1193,28 @@ public void setTextColor(int color) { invalidate(); } + public void setTextColor(int color, boolean animated) { + drawable.setTextColor(color, animated); + invalidate(); + } + + public void setEmojiCacheType(int cacheType) { + drawable.setEmojiCacheType(cacheType); + } + + public void setEmojiColor(int color) { + drawable.setEmojiColor(color); + invalidate(); + } + + public void setEmojiColor(int color, boolean animated) { + drawable.setEmojiColor(color, animated); + invalidate(); + } + public void setEmojiColorFilter(ColorFilter emojiColorFilter) { + drawable.setEmojiColorFilter(emojiColorFilter); + invalidate(); + } public int getTextColor() { return drawable.getTextColor(); } @@ -1107,4 +1263,9 @@ public void setEllipsizeByGradient(boolean enabled) { public void setRightPadding(float rightPadding) { drawable.setRightPadding(rightPadding); } + + private Runnable widthUpdatedListener; + public void setOnWidthUpdatedListener(Runnable listener) { + drawable.setOnWidthUpdatedListener(listener); + } } \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarDrawable.java index b8ddc239ac..e0be6bb6cb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarDrawable.java @@ -177,9 +177,6 @@ public static int getPeerColorIndex(int color) { } public static int getColorIndex(long id) { - if (id >= 0 && id < Theme.keys_avatar_background.length) { - return (int) id; - } return (int) Math.abs(id % Theme.keys_avatar_background.length); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarsDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarsDrawable.java index 378a8d1105..05d09a5991 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarsDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarsDrawable.java @@ -56,6 +56,7 @@ public class AvatarsDrawable { public int count; public int height; public int width; + public int strokeWidth = AndroidUtilities.dp(1.67f); View parent; private int overrideSize; @@ -264,12 +265,14 @@ public AvatarsDrawable(View parent, boolean inCall) { for (int a = 0; a < 3; a++) { currentStates[a] = new DrawingState(); currentStates[a].imageReceiver = new ImageReceiver(parent); + currentStates[a].imageReceiver.setInvalidateAll(true); currentStates[a].imageReceiver.setRoundRadius(AndroidUtilities.dp(12)); currentStates[a].avatarDrawable = new AvatarDrawable(); currentStates[a].avatarDrawable.setTextSize(AndroidUtilities.dp(12)); animatingStates[a] = new DrawingState(); animatingStates[a].imageReceiver = new ImageReceiver(parent); + animatingStates[a].imageReceiver.setInvalidateAll(true); animatingStates[a].imageReceiver.setRoundRadius(AndroidUtilities.dp(12)); animatingStates[a].avatarDrawable = new AvatarDrawable(); animatingStates[a].avatarDrawable.setTextSize(AndroidUtilities.dp(12)); @@ -588,7 +591,7 @@ public void onDraw(Canvas canvas) { states[a].wavesDrawable.draw(canvas, imageReceiver.getCenterX(), imageReceiver.getCenterY(), parent); avatarScale = states[a].wavesDrawable.getAvatarScale(); } else { - float rad = getSize() / 2f + AndroidUtilities.dp(2); + float rad = getSize() / 2f + strokeWidth; if (useAlphaLayer) { canvas.drawCircle(imageReceiver.getCenterX(), imageReceiver.getCenterY(), rad, xRefP); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarsImageView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarsImageView.java index 443b276b15..72973d7d8d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarsImageView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarsImageView.java @@ -1,12 +1,19 @@ package org.telegram.ui.Components; +import static org.telegram.messenger.AndroidUtilities.dp; + import android.content.Context; import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; import android.view.View; import androidx.annotation.NonNull; +import org.telegram.messenger.AndroidUtilities; import org.telegram.tgnet.TLObject; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.Premium.PremiumGradient; public class AvatarsImageView extends View { @@ -30,10 +37,28 @@ protected void onAttachedToWindow() { avatarsDrawable.onAttachedToWindow(); } + private PremiumGradient.PremiumGradientTools premiumGradient; + private Text plusText; + private Paint plusBgPaint; + + public void setPlus(int n, int bgColor) { + premiumGradient = new PremiumGradient.PremiumGradientTools(Theme.key_premiumGradient1, Theme.key_premiumGradient2, -1, -1, -1, null); + plusText = new Text("+" + n, 12, AndroidUtilities.getTypeface("fonts/num.otf")); + plusBgPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + plusBgPaint.setColor(bgColor); + } + @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); avatarsDrawable.onDraw(canvas); + if (plusText != null) { + AndroidUtilities.rectTmp.set(getWidth() - dp(22), getHeight() - dp(22), getWidth() - dp(0), getHeight() - dp(0)); + premiumGradient.gradientMatrix(AndroidUtilities.rectTmp); + canvas.drawCircle(AndroidUtilities.rectTmp.centerX(), AndroidUtilities.rectTmp.centerY(), AndroidUtilities.rectTmp.width() / 2f + dp(1.33f), plusBgPaint); + canvas.drawCircle(AndroidUtilities.rectTmp.centerX(), AndroidUtilities.rectTmp.centerY(), AndroidUtilities.rectTmp.width() / 2f, premiumGradient.paint); + plusText.draw(canvas, AndroidUtilities.rectTmp.centerX() - plusText.getCurrentWidth() / 2f, AndroidUtilities.rectTmp.centerY(), Color.WHITE, 1f); + } } @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurringShader.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurringShader.java index a086e0d95d..dc0a6a17b8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurringShader.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurringShader.java @@ -607,7 +607,7 @@ public void destroy() { } public Bitmap getBitmap(Bitmap bitmap, String key, int orientation, int invert, boolean recycleAfter) { - if (bitmap == null) { + if (bitmap == null || bitmap.isRecycled()) { return null; } if (TextUtils.equals(thumbKey, key)) { @@ -622,6 +622,9 @@ public Bitmap getBitmap(Bitmap bitmap, String key, int orientation, int invert, } thumbKey = key; Utilities.globalQueue.postRunnable(generate = () -> { + if (bitmap == null || bitmap.isRecycled()) { + return; + } final float aspectRatio = bitmap.getWidth() / (float) bitmap.getHeight(); final float scale = 1.5f; final float density = 9 * scale * 16 * scale; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BottomPagerTabs.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/BottomPagerTabs.java index bc8b718e03..eed4e2af56 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BottomPagerTabs.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/BottomPagerTabs.java @@ -48,9 +48,17 @@ protected class Tab { public int customEndFrameEnd; public boolean customFrameInvert; - public Tab(int i, int resId, CharSequence text) { + public Tab customFrameInvert() { + this.customFrameInvert = true; + return this; + } + + public Tab(int i, int resId, int endFrameMid, int endFrameEnd, CharSequence text) { this.i = i; + customEndFrameMid = endFrameMid; + customEndFrameEnd = endFrameEnd; + drawable = new RLottieDrawable(resId, "" + resId, dp(29), dp(29)); drawable.setMasterParent(BottomPagerTabs.this); drawable.setAllowDecodeSingleFrame(true); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BottomSheetWithRecyclerListView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/BottomSheetWithRecyclerListView.java index 1084597105..67efd2813b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BottomSheetWithRecyclerListView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/BottomSheetWithRecyclerListView.java @@ -136,7 +136,7 @@ public boolean dispatchTouchEvent(MotionEvent event) { if (hasFixedSize) { recyclerListView.setHasFixedSize(true); - recyclerListView.setAdapter(createAdapter()); + recyclerListView.setAdapter(createAdapter(recyclerListView)); setCustomView(containerView); containerView.addView(recyclerListView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } else { @@ -190,7 +190,7 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { } protected void resetAdapter(Context context) { - RecyclerListView.SelectionAdapter adapter = createAdapter(); + RecyclerListView.SelectionAdapter adapter = createAdapter(recyclerListView); recyclerListView.setAdapter(new RecyclerListView.SelectionAdapter() { @Override @@ -308,7 +308,7 @@ public void onViewCreated(FrameLayout containerView) { protected abstract CharSequence getTitle(); - protected abstract RecyclerListView.SelectionAdapter createAdapter(); + protected abstract RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView); public void notifyDataSetChanged() { recyclerListView.getAdapter().notifyDataSetChanged(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Bulletin.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Bulletin.java index 0c82dabf46..02385ca778 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Bulletin.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Bulletin.java @@ -105,6 +105,13 @@ public static Bulletin make(@NonNull FrameLayout containerLayout, @NonNull Layou return new Bulletin(null, containerLayout, contentLayout, duration); } + public Bulletin setOnClickListener(View.OnClickListener onClickListener) { + if (layout != null) { + layout.setOnClickListener(onClickListener); + } + return this; + } + @SuppressLint("RtlHardcoded") public static Bulletin make(@NonNull BaseFragment fragment, @NonNull Layout contentLayout, int duration) { if (fragment instanceof ChatActivity) { @@ -662,7 +669,7 @@ public abstract static class Layout extends FrameLayout { protected Bulletin bulletin; Drawable background; - private boolean top; + public boolean top; public boolean isTransitionRunning() { return transitionRunningEnter || transitionRunningExit; @@ -682,6 +689,12 @@ public Layout(@NonNull Context context, Theme.ResourcesProvider resourcesProvide updateSize(); setPadding(AndroidUtilities.dp(8), AndroidUtilities.dp(8), AndroidUtilities.dp(8), AndroidUtilities.dp(8)); setWillNotDraw(false); + ScaleStateListAnimator.apply(this, .02f, 1.5f); + } + + @Override + protected boolean verifyDrawable(@NonNull Drawable who) { + return background == who || super.verifyDrawable(who); } protected void setBackground(int color) { @@ -723,7 +736,7 @@ protected void onConfigurationChanged(Configuration newConfig) { updateSize(); } - private void setTop(boolean top) { + public void setTop(boolean top) { this.top = top; updateSize(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BulletinFactory.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/BulletinFactory.java index 69082c5cdd..597a5de315 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BulletinFactory.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/BulletinFactory.java @@ -169,10 +169,10 @@ private enum Icon { private final Theme.ResourcesProvider resourcesProvider; private BulletinFactory(BaseFragment fragment) { - if (fragment != null && fragment.storyViewer != null && fragment.storyViewer.attachedToParent()) { + if (fragment != null && fragment.getLastStoryViewer() != null && fragment.getLastStoryViewer().attachedToParent()) { this.fragment = null; - this.containerLayout = fragment.storyViewer.getContainerForBulletin(); - this.resourcesProvider = fragment.storyViewer.getResourceProvider(); + this.containerLayout = fragment.getLastStoryViewer().getContainerForBulletin(); + this.resourcesProvider = fragment.getLastStoryViewer().getResourceProvider(); } else { this.fragment = fragment; this.containerLayout = null; @@ -208,6 +208,7 @@ public Bulletin createImageBulletin(int iconRawId, CharSequence title) { layout.textView.setLines(2); layout.textView.setMaxLines(4); layout.textView.setMaxWidth(HintView2.cutInFancyHalf(layout.textView.getText(), layout.textView.getPaint())); + layout.textView.setLineSpacing(AndroidUtilities.dp(1.33f), 1f); ((ViewGroup.MarginLayoutParams) layout.textView.getLayoutParams()).rightMargin = AndroidUtilities.dp(12); layout.setWrapWidth(); return create(layout, Bulletin.DURATION_PROLONG); @@ -355,12 +356,16 @@ public Bulletin createSimpleBulletin(CharSequence text, CharSequence subtitle, S } public Bulletin createUndoBulletin(CharSequence text, Runnable onUndo, Runnable onAction) { + return this.createUndoBulletin(text, false, onUndo, onAction); + } + + public Bulletin createUndoBulletin(CharSequence text, boolean textAndIcon, Runnable onUndo, Runnable onAction) { final Bulletin.LottieLayout layout = new Bulletin.LottieLayout(getContext(), resourcesProvider); layout.textView.setText(text); layout.textView.setSingleLine(false); layout.textView.setMaxLines(2); layout.setTimer(); - layout.setButton(new Bulletin.UndoButton(getContext(), true, resourcesProvider).setText(LocaleController.getString("Undo", R.string.Undo)).setUndoAction(onUndo).setDelayedAction(onAction)); + layout.setButton(new Bulletin.UndoButton(getContext(), true, textAndIcon, resourcesProvider).setText(LocaleController.getString("Undo", R.string.Undo)).setUndoAction(onUndo).setDelayedAction(onAction)); return create(layout, Bulletin.DURATION_PROLONG); } @@ -1042,6 +1047,15 @@ public static Bulletin createInviteSentBulletin(Context context, FrameLayout con return Bulletin.make(containerLayout, layout, Bulletin.DURATION_SHORT); } + public Bulletin createAdReportedBulletin(CharSequence text) { + final Bulletin.LottieLayout layout = new Bulletin.LottieLayout(fragment.getParentActivity(), fragment.getResourceProvider()); + layout.setAnimation(R.raw.ic_admin, "Shield"); + layout.textView.setSingleLine(false); + layout.textView.setMaxLines(3); + layout.textView.setText(text); + return Bulletin.make(fragment, layout, Bulletin.DURATION_LONG); + } + public boolean showForwardedBulletinWithTag(long did, int messagesCount) { if (!UserConfig.getInstance(UserConfig.selectedAccount).isPremium()) { return false; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java index 8f432f1889..b5411c125d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java @@ -123,6 +123,7 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.AnimationNotificationsLocker; import org.telegram.messenger.ApplicationLoader; +import org.telegram.messenger.BirthdayController; import org.telegram.messenger.BotWebViewVibrationEffect; import org.telegram.messenger.BuildVars; import org.telegram.messenger.ChatObject; @@ -162,11 +163,14 @@ import org.telegram.ui.ActionBar.SimpleTextView; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.BasePermissionsActivity; +import org.telegram.ui.Business.BusinessLinksController; import org.telegram.ui.Business.QuickRepliesController; import org.telegram.ui.Cells.TextCheckCell; import org.telegram.ui.ChatActivity; import org.telegram.ui.Components.Premium.GiftPremiumBottomSheet; import org.telegram.ui.Components.Premium.PremiumFeatureBottomSheet; +import org.telegram.ui.Components.Premium.boosts.BoostRepository; +import org.telegram.ui.Components.Premium.boosts.PremiumPreviewGiftToUsersBottomSheet; import org.telegram.ui.ContentPreviewViewer; import org.telegram.ui.DialogsActivity; import org.telegram.ui.GroupStickersActivity; @@ -178,6 +182,12 @@ import org.telegram.ui.StickersActivity; import org.telegram.ui.Stories.recorder.CaptionContainerView; import org.telegram.ui.Stories.recorder.HintView2; +import org.telegram.ui.bots.BotCommandsMenuContainer; +import org.telegram.ui.bots.BotCommandsMenuView; +import org.telegram.ui.bots.BotKeyboardView; +import org.telegram.ui.bots.BotWebViewMenuContainer; +import org.telegram.ui.bots.BotWebViewSheet; +import org.telegram.ui.bots.ChatActivityBotWebViewButton; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -185,6 +195,7 @@ import java.io.FileOutputStream; import java.io.InputStream; import java.util.ArrayList; +import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -232,6 +243,7 @@ public class ChatActivityEnterView extends BlurredFrameLayout implements Notific private float horizontalPadding = 0; private boolean sendButtonEnabled = true; private TLRPC.UserFull userInfo; + public HintView2 birthdayHint; public boolean voiceOnce; public boolean onceVisible; @@ -701,6 +713,10 @@ public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo i private MessageObject editingMessageObject; private boolean editingCaption; + private TLRPC.TL_businessChatLink editingBusinessLink; + + private BusinessLinkPresetMessage lastSavedBusinessLinkMessage; + private TLRPC.ChatFull info; private boolean hasRecordVideo; @@ -1704,6 +1720,9 @@ public boolean onTouchEvent(MotionEvent event) { } delegate.toggleVideoRecordingPause(); } else { + if (sendButtonVisible) { + calledRecordRunnable = true; + } MediaController.getInstance().toggleRecordingPause(voiceOnce); delegate.needStartRecordAudio(0); if (slideText != null) { @@ -3447,7 +3466,13 @@ private void createGiftButton() { return; } - giftButton = new ImageView(getContext()); + giftButton = new ImageView(getContext()) { + @Override + protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + super.onLayout(changed, left, top, right, bottom); + post(ChatActivityEnterView.this::checkBirthdayHint); + } + }; giftButton.setImageResource(R.drawable.msg_input_gift); giftButton.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_chat_messagePanelIcons), PorterDuff.Mode.MULTIPLY)); giftButton.setVisibility(GONE); @@ -3458,9 +3483,41 @@ private void createGiftButton() { } attachLayout.addView(giftButton, 0, LayoutHelper.createFrame(48, 48, Gravity.CENTER_VERTICAL | Gravity.RIGHT)); giftButton.setOnClickListener(v -> { - MessagesController.getInstance(currentAccount).getMainSettings().edit().putBoolean("show_gift_for_" + parentFragment.getDialogId(), false).apply(); + SharedPreferences.Editor edit = MessagesController.getInstance(currentAccount).getMainSettings().edit(); + if (BirthdayController.isToday(parentFragment.getCurrentUserInfo())) { + edit.putBoolean(Calendar.getInstance().get(Calendar.YEAR) + "show_gift_for_" + parentFragment.getDialogId(), false); + } else { + edit.putBoolean("show_gift_for_" + parentFragment.getDialogId(), false); + } + if (MessagesController.getInstance(currentAccount).giftAttachMenuIcon && + MessagesController.getInstance(currentAccount).giftTextFieldIcon && + !getParentFragment().getCurrentUserInfo().premium_gifts.isEmpty()) { + edit.putBoolean("show_gift_for_" + parentFragment.getDialogId(), false); + } + edit.apply(); + AndroidUtilities.updateViewVisibilityAnimated(giftButton, false); - new GiftPremiumBottomSheet(getParentFragment(), getParentFragment().getCurrentUser()).show(); + + TLRPC.User user = getParentFragment().getCurrentUser(); + if (user == null) return; + ArrayList options = new ArrayList<>(getParentFragment().getCurrentUserInfo().premium_gifts); + if (options.isEmpty()) { + final AlertDialog progressDialog = new AlertDialog(getContext(), AlertDialog.ALERT_TYPE_SPINNER); + final int reqId = BoostRepository.loadGiftOptions(null, loadedOptions -> { + progressDialog.dismiss(); + loadedOptions = BoostRepository.filterGiftOptions(loadedOptions, 1); + loadedOptions = BoostRepository.filterGiftOptionsByBilling(loadedOptions); + ArrayList users = new ArrayList<>(); + users.add(user); + PremiumPreviewGiftToUsersBottomSheet.show(users, loadedOptions); + }); + progressDialog.setOnCancelListener(di -> { + parentFragment.getConnectionsManager().cancelRequest(reqId, true); + }); + progressDialog.showDelayed(200); + } else { + new GiftPremiumBottomSheet(getParentFragment(), getParentFragment().getCurrentUser()).show(); + } }); } @@ -3510,7 +3567,7 @@ private void createBotButton() { }); } - private void createDoneButton() { + private void createDoneButton(boolean bounceable) { if (doneButtonContainer != null) { return; } @@ -3518,7 +3575,6 @@ private void createDoneButton() { doneButtonContainer = new FrameLayout(getContext()); doneButtonContainer.setVisibility(GONE); textFieldContainer.addView(doneButtonContainer, LayoutHelper.createFrame(48, 48, Gravity.BOTTOM | Gravity.RIGHT)); - doneButtonContainer.setOnClickListener(view -> doneEditingMessage()); Drawable doneCircleDrawable = Theme.createCircleDrawable(dp(16), getThemedColor(Theme.key_chat_messagePanelSend)); doneCheckDrawable = getContext().getResources().getDrawable(R.drawable.input_done).mutate(); @@ -3526,7 +3582,11 @@ private void createDoneButton() { CombinedDrawable combinedDrawable = new CombinedDrawable(doneCircleDrawable, doneCheckDrawable, 0, dp(1)); combinedDrawable.setCustomSize(dp(32), dp(32)); - doneButtonImage = new ImageView(getContext()); + if (bounceable) { + doneButtonImage = new CaptionContainerView.BounceableImageView(getContext()); + } else { + doneButtonImage = new ImageView(getContext()); + } doneButtonImage.setScaleType(ImageView.ScaleType.CENTER); doneButtonImage.setImageDrawable(combinedDrawable); doneButtonImage.setContentDescription(LocaleController.getString("Done", R.string.Done)); @@ -3745,6 +3805,7 @@ private void resetRecordedState() { } new File(audioToSendPath).delete(); } + MediaController.getInstance().cleanRecording(true); MediaDataController.getInstance(currentAccount).pushDraftVoiceMessage(dialog_id, parentFragment != null && parentFragment.isTopic ? parentFragment.getTopicId() : 0, null); MediaController.getInstance().stopRecording(0, false, 0, false); millisecondsRecorded = 0; @@ -5007,7 +5068,11 @@ public InputConnection onCreateInputConnection(EditorInfo editorInfo) { return null; } try { - EditorInfoCompat.setContentMimeTypes(editorInfo, new String[]{"image/gif", "image/*", "image/jpg", "image/png", "image/webp"}); + if (isEditingBusinessLink()) { + EditorInfoCompat.setContentMimeTypes(editorInfo, null); + } else { + EditorInfoCompat.setContentMimeTypes(editorInfo, new String[]{"image/gif", "image/*", "image/jpg", "image/png", "image/webp"}); + } final InputConnectionCompat.OnCommitContentListener callback = (inputContentInfo, flags, opts) -> { if (BuildCompat.isAtLeastNMR1() && (flags & InputConnectionCompat.INPUT_CONTENT_GRANT_READ_URI_PERMISSION) != 0) { try { @@ -5125,7 +5190,7 @@ public boolean onTextContextMenuItem(int id) { ClipboardManager clipboard = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); ClipData clipData = clipboard.getPrimaryClip(); if (clipData != null) { - if (clipData.getItemCount() == 1 && clipData.getDescription().hasMimeType("image/*")) { + if (clipData.getItemCount() == 1 && clipData.getDescription().hasMimeType("image/*") && !isEditingBusinessLink()) { editPhoto(clipData.getItemAt(0).getUri(), clipData.getDescription().getMimeType(0)); } } @@ -5507,7 +5572,7 @@ public void onTextChanged(CharSequence charSequence, int start, int before, int if (innerTextChange == 1) { return; } - if (sendByEnter && !isPaste && editingMessageObject == null && count > before && charSequence.length() > 0 && charSequence.length() == start + count && charSequence.charAt(charSequence.length() - 1) == '\n') { + if (sendByEnter && !ignoreTextChange && !isPaste && editingMessageObject == null && count > before && charSequence.length() > 0 && charSequence.length() == start + count && charSequence.charAt(charSequence.length() - 1) == '\n') { nextChangeIsSend = true; } isPaste = false; @@ -6667,6 +6732,8 @@ public void updateFieldHint(boolean animated) { } else { messageEditText.setHintText(LocaleController.getString(R.string.BusinessRepliesEnter)); } + } else if (isEditingBusinessLink()) { + messageEditText.setHintText(LocaleController.getString(R.string.BusinessLinksEnter)); } else if (replyingMessageObject != null && replyingMessageObject.messageOwner.reply_markup != null && !TextUtils.isEmpty(replyingMessageObject.messageOwner.reply_markup.placeholder)) { messageEditText.setHintText(replyingMessageObject.messageOwner.reply_markup.placeholder, animated); } else if (editingMessageObject != null) { @@ -7215,6 +7282,7 @@ private void sendMessageInternal(boolean notify, int scheduleDate, boolean allow if (playing != null && playing == audioToSendMessageObject) { MediaController.getInstance().cleanupPlayer(true, true); } + MediaController.getInstance().cleanRecording(false); MediaDataController.getInstance(currentAccount).pushDraftVoiceMessage(dialog_id, parentFragment != null && parentFragment.isTopic ? parentFragment.getTopicId() : 0, null); SendMessagesHelper.SendMessageParams params = SendMessagesHelper.SendMessageParams.of(audioToSend, null, audioToSendPath, dialog_id, replyingMessageObject, getThreadMessage(), null, null, null, null, notify, scheduleDate, voiceOnce ? 0x7FFFFFFF : 0, null, null, false); params.caption = voiceCaption; @@ -7409,6 +7477,67 @@ private void showCaptionLimitBulletin() { }).show(); } + private static class BusinessLinkPresetMessage { + public String text; + public ArrayList entities; + } + + private BusinessLinkPresetMessage calculateBusinessLinkPresetMessage() { + CharSequence text = messageEditText == null ? "" : messageEditText.getText(); + text = AndroidUtilities.getTrimmedString(text); + + CharSequence[] message = new CharSequence[]{text}; + ArrayList entities = MediaDataController.getInstance(currentAccount).getEntities(message, true); + text = message[0]; + for (int a = 0, N = entities.size(); a < N; a++) { + TLRPC.MessageEntity entity = entities.get(a); + if (entity.offset + entity.length > text.length()) { + entity.length = text.length() - entity.offset; + } + } + + BusinessLinkPresetMessage presetMessage = new BusinessLinkPresetMessage(); + presetMessage.text = text.toString(); + presetMessage.entities = entities; + return presetMessage; + } + + public boolean businessLinkHasChanges() { + BusinessLinkPresetMessage currentMessage = calculateBusinessLinkPresetMessage(); + if (!TextUtils.equals(currentMessage.text, lastSavedBusinessLinkMessage.text)) { + return true; + } + + if (!MediaDataController.entitiesEqual(lastSavedBusinessLinkMessage.entities, currentMessage.entities)) { + return true; + } + + return false; + } + + private void saveBusinessLink() { + if (!isEditingBusinessLink()) { + return; + } + + if (currentLimit - codePointCount < 0) { + if (captionLimitView != null) { + AndroidUtilities.shakeViewSpring(captionLimitView, 3.5f); + try { + captionLimitView.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); + } catch (Exception ignored) { + } + } + return; + } + + BusinessLinkPresetMessage message = calculateBusinessLinkPresetMessage(); + lastSavedBusinessLinkMessage = message; + BusinessLinksController.getInstance(currentAccount).editLinkMessage(editingBusinessLink.link, message.text, message.entities, () -> { + BulletinFactory.of(parentFragment).createSuccessBulletin(LocaleController.getString(R.string.BusinessLinkSaved)).show(); + }); + } + public void doneEditingMessage() { doneEditingMessage(true); } @@ -9358,6 +9487,9 @@ public boolean onInterceptTouchEvent(MotionEvent ev) { if (recordingAudioVideo) { getParent().requestDisallowInterceptTouchEvent(true); } + if (ev.getAction() == MotionEvent.ACTION_DOWN && AndroidUtilities.findChildViewUnder(this, ev.getX(), ev.getY()) != birthdayHint) { + hideHints(); + } return super.onInterceptTouchEvent(ev); } @@ -9413,6 +9545,59 @@ public void setCommand(MessageObject messageObject, String command, boolean long } } + public void setEditingBusinessLink(TLRPC.TL_businessChatLink businessLink) { + editingBusinessLink = businessLink; + updateFieldHint(false); + if (editingBusinessLink != null) { + if (doneButtonAnimation != null) { + doneButtonAnimation.cancel(); + doneButtonAnimation = null; + } + createDoneButton(true); + doneButtonContainer.setOnClickListener(view -> saveBusinessLink()); + + doneButtonContainer.setVisibility(View.VISIBLE); + doneButtonImage.setScaleX(0.1f); + doneButtonImage.setScaleY(0.1f); + doneButtonImage.setAlpha(0.0f); + doneButtonImage.animate().alpha(1f).scaleX(1).scaleY(1).setDuration(150).setInterpolator(CubicBezierInterpolator.DEFAULT).start(); + + currentLimit = accountInstance.getMessagesController().maxMessageLength; + final Paint.FontMetricsInt fontMetricsInt; + Paint paint = null; + if (messageEditText != null) { + paint = messageEditText.getPaint(); + } + if (paint == null) { + paint = new TextPaint(); + paint.setTextSize(dp(18)); + } + fontMetricsInt = paint.getFontMetricsInt(); + + ArrayList entities = editingBusinessLink.entities; + if (entities != null && businessLink.message != null) { + CharSequence spannableText = applyMessageEntities(entities, businessLink.message, fontMetricsInt); + setFieldText(spannableText); + } else if (businessLink.message != null) { + setFieldText(businessLink.message); + } + lastSavedBusinessLinkMessage = calculateBusinessLinkPresetMessage(); + + setAllowStickersAndGifs(true, false, false); + sendButton.setVisibility(GONE); + setSlowModeButtonVisible(false); + cancelBotButton.setVisibility(GONE); + audioVideoButtonContainer.setVisibility(GONE); + if (attachLayout != null) { + attachLayout.setVisibility(GONE); + } + sendButtonContainer.setVisibility(GONE); + if (scheduledButton != null) { + scheduledButton.setVisibility(GONE); + } + } + } + public void setEditingMessageObject(MessageObject messageObject, boolean caption) { if (audioToSend != null || videoToSendMessageObject != null || editingMessageObject == messageObject) { return; @@ -9427,7 +9612,9 @@ public void setEditingMessageObject(MessageObject messageObject, boolean caption doneButtonAnimation.cancel(); doneButtonAnimation = null; } - createDoneButton(); + createDoneButton(false); + doneButtonContainer.setOnClickListener(view -> doneEditingMessage()); + doneButtonContainer.setVisibility(View.VISIBLE); doneButtonImage.setScaleX(0.1f); doneButtonImage.setScaleY(0.1f); @@ -9455,96 +9642,7 @@ public void setEditingMessageObject(MessageObject messageObject, boolean caption fontMetricsInt = paint.getFontMetricsInt(); ArrayList entities = editingMessageObject.messageOwner.entities; - MediaDataController.sortEntities(entities); - SpannableStringBuilder stringBuilder = new SpannableStringBuilder(editingText); - Object[] spansToRemove = stringBuilder.getSpans(0, stringBuilder.length(), Object.class); - if (spansToRemove != null && spansToRemove.length > 0) { - for (int a = 0; a < spansToRemove.length; a++) { - stringBuilder.removeSpan(spansToRemove[a]); - } - } - if (entities != null) { - try { - for (int a = 0; a < entities.size(); a++) { - TLRPC.MessageEntity entity = entities.get(a); - if (entity.offset + entity.length > stringBuilder.length()) { - continue; - } - if (entity instanceof TLRPC.TL_inputMessageEntityMentionName) { - if (entity.offset + entity.length < stringBuilder.length() && stringBuilder.charAt(entity.offset + entity.length) == ' ') { - entity.length++; - } - stringBuilder.setSpan(new URLSpanUserMention("" + ((TLRPC.TL_inputMessageEntityMentionName) entity).user_id.user_id, 3), entity.offset, entity.offset + entity.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else if (entity instanceof TLRPC.TL_messageEntityMentionName) { - if (entity.offset + entity.length < stringBuilder.length() && stringBuilder.charAt(entity.offset + entity.length) == ' ') { - entity.length++; - } - stringBuilder.setSpan(new URLSpanUserMention("" + ((TLRPC.TL_messageEntityMentionName) entity).user_id, 3), entity.offset, entity.offset + entity.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else if (entity instanceof TLRPC.TL_messageEntityCode) { - TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); - run.start = entity.offset; - run.end = entity.offset + entity.length; - run.flags |= TextStyleSpan.FLAG_STYLE_MONO; - run.urlEntity = entity; - MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); - SyntaxHighlight.highlight(run, stringBuilder); - } else if (entity instanceof TLRPC.TL_messageEntityPre) { - continue; - } else if (entity instanceof TLRPC.TL_messageEntityBold) { - TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); - run.flags |= TextStyleSpan.FLAG_STYLE_BOLD; - MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); - } else if (entity instanceof TLRPC.TL_messageEntityItalic) { - TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); - run.flags |= TextStyleSpan.FLAG_STYLE_ITALIC; - MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); - } else if (entity instanceof TLRPC.TL_messageEntityStrike) { - TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); - run.flags |= TextStyleSpan.FLAG_STYLE_STRIKE; - MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); - } else if (entity instanceof TLRPC.TL_messageEntityUnderline) { - TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); - run.flags |= TextStyleSpan.FLAG_STYLE_UNDERLINE; - MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); - } else if (entity instanceof TLRPC.TL_messageEntityTextUrl) { - stringBuilder.setSpan(new URLSpanReplacement(entity.url), entity.offset, entity.offset + entity.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else if (entity instanceof TLRPC.TL_messageEntitySpoiler) { - TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); - run.flags |= TextStyleSpan.FLAG_STYLE_SPOILER; - MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); - } else if (entity instanceof TLRPC.TL_messageEntityCustomEmoji) { - TLRPC.TL_messageEntityCustomEmoji emojiEntity = (TLRPC.TL_messageEntityCustomEmoji) entity; - AnimatedEmojiSpan span; - if (emojiEntity.document != null) { - span = new AnimatedEmojiSpan(emojiEntity.document, fontMetricsInt); - } else { - span = new AnimatedEmojiSpan(emojiEntity.document_id, fontMetricsInt); - } - stringBuilder.setSpan(span, entity.offset, entity.offset + entity.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } - } - } catch (Exception e) { - FileLog.e(e); - } - } - QuoteSpan.mergeQuotes(stringBuilder, entities); - textToSetWithKeyboard = Emoji.replaceEmoji(new SpannableStringBuilder(stringBuilder), fontMetricsInt, false, null); - if (entities != null) { - try { - for (int a = entities.size() - 1; a >= 0; --a) { - TLRPC.MessageEntity entity = entities.get(a); - if (entity instanceof TLRPC.TL_messageEntityPre && entity.offset + entity.length <= textToSetWithKeyboard.length()) { - if (!(textToSetWithKeyboard instanceof Spannable)) { - textToSetWithKeyboard = new SpannableStringBuilder(textToSetWithKeyboard); - } - ((SpannableStringBuilder) textToSetWithKeyboard).insert(entity.offset + entity.length, "```\n"); - ((SpannableStringBuilder) textToSetWithKeyboard).insert(entity.offset, "```"+(entity.language == null ? "" : entity.language)+"\n"); - } - } - } catch (Exception e) { - FileLog.e(e); - } - } + textToSetWithKeyboard = applyMessageEntities(entities, editingText, fontMetricsInt); } else { textToSetWithKeyboard = ""; } @@ -9678,6 +9776,102 @@ public void setEditingMessageObject(MessageObject messageObject, boolean caption updateSendAsButton(true); } + @Nullable + public static CharSequence applyMessageEntities(ArrayList entities, CharSequence text, Paint.FontMetricsInt fontMetricsInt) { + CharSequence result; + MediaDataController.sortEntities(entities); + SpannableStringBuilder stringBuilder = new SpannableStringBuilder(text); + Object[] spansToRemove = stringBuilder.getSpans(0, stringBuilder.length(), Object.class); + if (spansToRemove != null && spansToRemove.length > 0) { + for (int a = 0; a < spansToRemove.length; a++) { + stringBuilder.removeSpan(spansToRemove[a]); + } + } + if (entities != null) { + try { + for (int a = 0; a < entities.size(); a++) { + TLRPC.MessageEntity entity = entities.get(a); + if (entity.offset + entity.length > stringBuilder.length()) { + continue; + } + if (entity instanceof TLRPC.TL_inputMessageEntityMentionName) { + if (entity.offset + entity.length < stringBuilder.length() && stringBuilder.charAt(entity.offset + entity.length) == ' ') { + entity.length++; + } + stringBuilder.setSpan(new URLSpanUserMention("" + ((TLRPC.TL_inputMessageEntityMentionName) entity).user_id.user_id, 3), entity.offset, entity.offset + entity.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } else if (entity instanceof TLRPC.TL_messageEntityMentionName) { + if (entity.offset + entity.length < stringBuilder.length() && stringBuilder.charAt(entity.offset + entity.length) == ' ') { + entity.length++; + } + stringBuilder.setSpan(new URLSpanUserMention("" + ((TLRPC.TL_messageEntityMentionName) entity).user_id, 3), entity.offset, entity.offset + entity.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } else if (entity instanceof TLRPC.TL_messageEntityCode) { + TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); + run.start = entity.offset; + run.end = entity.offset + entity.length; + run.flags |= TextStyleSpan.FLAG_STYLE_MONO; + run.urlEntity = entity; + MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); + SyntaxHighlight.highlight(run, stringBuilder); + } else if (entity instanceof TLRPC.TL_messageEntityPre) { + continue; + } else if (entity instanceof TLRPC.TL_messageEntityBold) { + TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); + run.flags |= TextStyleSpan.FLAG_STYLE_BOLD; + MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); + } else if (entity instanceof TLRPC.TL_messageEntityItalic) { + TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); + run.flags |= TextStyleSpan.FLAG_STYLE_ITALIC; + MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); + } else if (entity instanceof TLRPC.TL_messageEntityStrike) { + TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); + run.flags |= TextStyleSpan.FLAG_STYLE_STRIKE; + MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); + } else if (entity instanceof TLRPC.TL_messageEntityUnderline) { + TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); + run.flags |= TextStyleSpan.FLAG_STYLE_UNDERLINE; + MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); + } else if (entity instanceof TLRPC.TL_messageEntityTextUrl) { + stringBuilder.setSpan(new URLSpanReplacement(entity.url), entity.offset, entity.offset + entity.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } else if (entity instanceof TLRPC.TL_messageEntitySpoiler) { + TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); + run.flags |= TextStyleSpan.FLAG_STYLE_SPOILER; + MediaDataController.addStyleToText(new TextStyleSpan(run), entity.offset, entity.offset + entity.length, stringBuilder, true); + } else if (entity instanceof TLRPC.TL_messageEntityCustomEmoji) { + TLRPC.TL_messageEntityCustomEmoji emojiEntity = (TLRPC.TL_messageEntityCustomEmoji) entity; + AnimatedEmojiSpan span; + if (emojiEntity.document != null) { + span = new AnimatedEmojiSpan(emojiEntity.document, fontMetricsInt); + } else { + span = new AnimatedEmojiSpan(emojiEntity.document_id, fontMetricsInt); + } + stringBuilder.setSpan(span, entity.offset, entity.offset + entity.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + } + } catch (Exception e) { + FileLog.e(e); + } + } + QuoteSpan.mergeQuotes(stringBuilder, entities); + result = Emoji.replaceEmoji(new SpannableStringBuilder(stringBuilder), fontMetricsInt, false, null); + if (entities != null) { + try { + for (int a = entities.size() - 1; a >= 0; --a) { + TLRPC.MessageEntity entity = entities.get(a); + if (entity instanceof TLRPC.TL_messageEntityPre && entity.offset + entity.length <= result.length()) { + if (!(result instanceof Spannable)) { + result = new SpannableStringBuilder(result); + } + ((SpannableStringBuilder) result).insert(entity.offset + entity.length, "```\n"); + ((SpannableStringBuilder) result).insert(entity.offset, "```" + (entity.language == null ? "" : entity.language) + "\n"); + } + } + } catch (Exception e) { + FileLog.e(e); + } + } + return result; + } + public ImageView getAttachButton() { return attachButton; } @@ -9806,7 +10000,7 @@ public void setVoiceDraft(MediaDataController.DraftVoice draft) { controlsView.periodDrawable.setValue(1, voiceOnce, true); } TL_stories.StoryItem storyItem = delegate != null ? delegate.getReplyToStory() : null; - MediaController.getInstance().prepareResumedRecording(currentAccount, draft, dialog_id, replyingMessageObject, getThreadMessage(), storyItem, recordingGuid, true, parentFragment != null ? parentFragment.quickReplyShortcut : null, parentFragment != null ? parentFragment.getQuickReplyId() : 0); + MediaController.getInstance().prepareResumedRecording(currentAccount, draft, dialog_id, replyingMessageObject, getThreadMessage(), storyItem, recordingGuid, parentFragment != null ? parentFragment.quickReplyShortcut : null, parentFragment != null ? parentFragment.getQuickReplyId() : 0); } public void setSelection(int start) { @@ -9934,12 +10128,29 @@ public CharSequence getFieldText() { } public void updateGiftButton(boolean animated) { - boolean visible = !MessagesController.getInstance(currentAccount).premiumFeaturesBlocked() && MessagesController.getInstance(currentAccount).giftAttachMenuIcon && - MessagesController.getInstance(currentAccount).giftTextFieldIcon && getParentFragment() != null && getParentFragment().getCurrentUser() != null && - !BuildVars.IS_BILLING_UNAVAILABLE && !getParentFragment().getCurrentUser().self && !getParentFragment().getCurrentUser().premium && - getParentFragment().getCurrentUserInfo() != null && !getParentFragment().getCurrentUserInfo().premium_gifts.isEmpty() && !isInScheduleMode() && - MessagesController.getInstance(currentAccount).getMainSettings().getBoolean("show_gift_for_" + parentFragment.getDialogId(), true); + boolean visible = + !MessagesController.getInstance(currentAccount).premiumPurchaseBlocked() && + getParentFragment() != null && getParentFragment().getCurrentUser() != null && + !BuildVars.IS_BILLING_UNAVAILABLE && !getParentFragment().getCurrentUser().self && + getParentFragment().getCurrentUserInfo() != null && + ( + ( + !getParentFragment().getCurrentUserInfo().premium_gifts.isEmpty() && + !getParentFragment().getCurrentUser().premium && + MessagesController.getInstance(currentAccount).giftAttachMenuIcon && + MessagesController.getInstance(currentAccount).giftTextFieldIcon && + MessagesController.getInstance(currentAccount).getMainSettings().getBoolean("show_gift_for_" + parentFragment.getDialogId(), true) + ) || ( + BirthdayController.isToday(getParentFragment().getCurrentUserInfo().birthday) && + MessagesController.getInstance(currentAccount).getMainSettings().getBoolean(Calendar.getInstance().get(Calendar.YEAR) + "show_gift_for_" + parentFragment.getDialogId(), true) + ) + ) && + parentFragment != null && parentFragment.getChatMode() == 0; + + if (!visible && birthdayHint != null) { + birthdayHint.hide(); + } if (!visible && giftButton == null) { return; } @@ -9954,6 +10165,42 @@ public void updateGiftButton(boolean animated) { scheduledButton.setTranslationX(tX); } } + if (visible) { + checkBirthdayHint(); + } + } + + private void checkBirthdayHint() { + if ( + birthdayHint == null && giftButton != null && giftButton.getRight() != 0 && + parentFragment != null && BirthdayController.isToday(parentFragment.getCurrentUserInfo()) && + MessagesController.getInstance(currentAccount).getMainSettings().getBoolean(Calendar.getInstance().get(Calendar.YEAR) + "bdayhint_" + parentFragment.getDialogId(), true) + ) { + MessagesController.getInstance(currentAccount).getMainSettings().edit().putBoolean(Calendar.getInstance().get(Calendar.YEAR) + "bdayhint_" + parentFragment.getDialogId(), false).apply(); + + birthdayHint = new HintView2(getContext(), HintView2.DIRECTION_BOTTOM); + birthdayHint.setRounding(13); + birthdayHint.setMultilineText(true); + setBirthdayHintText(); + birthdayHint.setPadding(dp(12), 0, dp(12), 0); + birthdayHint.setJointPx(1f, -(getWidth() - dp(12) - (messageEditTextContainer.getX() + attachLayout.getX() + giftButton.getX() + giftButton.getMeasuredWidth() / 2f))); + addView(birthdayHint, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 200, Gravity.TOP, 0, -200 + 8, 0, 0)); + birthdayHint.setOnHiddenListener(() -> removeView(birthdayHint)); + birthdayHint.setDuration(8000); + birthdayHint.show(); + } + } + + private void setBirthdayHintText() { + if (birthdayHint == null) return; + birthdayHint.setText(Emoji.replaceWithRestrictedEmoji(AndroidUtilities.replaceTags(LocaleController.formatString(R.string.UserBirthdayHint, UserObject.getFirstName(parentFragment.getCurrentUser()))), birthdayHint.getTextPaint().getFontMetricsInt(), this::setBirthdayHintText)); + birthdayHint.setMaxWidthPx(HintView2.cutInFancyHalf(birthdayHint.getText(), birthdayHint.getTextPaint())); + } + + public void hideHints() { + if (birthdayHint != null) { + birthdayHint.hide(); + } } public void updateScheduleButton(boolean animated) { @@ -11139,6 +11386,10 @@ public boolean isInScheduleMode() { return parentFragment != null && parentFragment.isInScheduleMode(); } + private boolean isEditingBusinessLink() { + return editingBusinessLink != null; + } + public void addStickerToRecent(TLRPC.Document sticker) { createEmojiView(); emojiView.addRecentSticker(sticker); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java index 4078ad67e4..3f2634c2c8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java @@ -74,13 +74,14 @@ import org.jetbrains.annotations.NotNull; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.AnimationNotificationsLocker; -import org.telegram.messenger.BuildVars; import org.telegram.messenger.ChatObject; import org.telegram.messenger.ContactsController; import org.telegram.messenger.DialogObject; import org.telegram.messenger.DocumentObject; import org.telegram.messenger.Emoji; +import org.telegram.messenger.FileLoader; import org.telegram.messenger.FileLog; +import org.telegram.messenger.ImageLoader; import org.telegram.messenger.ImageLocation; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaController; @@ -117,6 +118,9 @@ import org.telegram.ui.PhotoPickerSearchActivity; import org.telegram.ui.PremiumPreviewFragment; import org.telegram.ui.WebAppDisclaimerAlert; +import org.telegram.ui.bots.BotWebViewContainer; +import org.telegram.ui.bots.BotWebViewMenuContainer; +import org.telegram.ui.bots.ChatAttachAlertBotWebViewLayout; import java.io.File; import java.util.ArrayList; @@ -143,6 +147,7 @@ public class ChatAttachAlert extends BottomSheet implements NotificationCenter.N private final NumberTextView captionLimitView; public boolean forUser; public boolean isPhotoPicker; + public boolean isStickerMode; private int currentLimit; private int codepointCount; @@ -292,7 +297,7 @@ public void onWebAppSwitchInlineQuery(TLRPC.User botUser, String query, List { int avatarType = type; - if (parentAlert.isPhotoPicker) { + if (parentAlert.isPhotoPicker && !parentAlert.isStickerMode) { PhotoViewer.getInstance().setParentActivity(finalFragment); PhotoViewer.getInstance().setMaxSelectedPhotos(0, false); - avatarType = PhotoViewer.SELECT_TYPE_WALLPAPER;; + avatarType = PhotoViewer.SELECT_TYPE_WALLPAPER; } PhotoViewer.getInstance().openPhotoForSelect(arrayList, finalPosition, avatarType, false, photoViewerProvider, chatActivity); PhotoViewer.getInstance().setAvatarFor(parentAlert.getAvatarFor()); - if (parentAlert.isPhotoPicker) { + if (parentAlert.isPhotoPicker && !parentAlert.isStickerMode) { PhotoViewer.getInstance().closePhotoAfterSelect = false; } + if (parentAlert.isStickerMode) { + PhotoViewer.getInstance().enableStickerMode(null); + } if (captionForAllMedia()) { PhotoViewer.getInstance().setCaption(parentAlert.getCommentTextView().getText()); } @@ -1809,7 +1816,10 @@ protected void openPhotoViewer(MediaController.PhotoEntry entry, final boolean s ChatActivity chatActivity; int type; - if (parentAlert.avatarPicker != 0) { + if (parentAlert.isPhotoPicker && parentAlert.isStickerMode) { + type = PhotoViewer.SELECT_TYPE_STICKER; + chatActivity = (ChatActivity) parentAlert.baseFragment; + } else if (parentAlert.avatarPicker != 0) { type = PhotoViewer.SELECT_TYPE_AVATAR; chatActivity = null; } else if (parentAlert.baseFragment instanceof ChatActivity) { @@ -1972,6 +1982,10 @@ public boolean allowCaption() { } }, chatActivity); PhotoViewer.getInstance().setAvatarFor(parentAlert.getAvatarFor()); + if (parentAlert.isStickerMode) { + PhotoViewer.getInstance().enableStickerMode(null); + PhotoViewer.getInstance().prepareSegmentImage(); + } } private void showZoomControls(boolean show, boolean animated) { @@ -4060,6 +4074,8 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } if (parentAlert.avatarPicker != 0) { cell.getCheckBox().setVisibility(GONE); + } else { + cell.getCheckBox().setVisibility(VISIBLE); } MediaController.PhotoEntry photoEntry = getPhotoEntryAtPosition(position); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAvatarContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAvatarContainer.java index 34ac648d57..287a541c93 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAvatarContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAvatarContainer.java @@ -41,7 +41,6 @@ import org.telegram.messenger.ImageLoader; import org.telegram.messenger.ImageReceiver; import org.telegram.messenger.LocaleController; -import org.telegram.messenger.MediaDataController; import org.telegram.messenger.MessagesController; import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; @@ -54,6 +53,7 @@ import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.SimpleTextView; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Business.BusinessLinksController; import org.telegram.ui.ChatActivity; import org.telegram.ui.ProfileActivity; import org.telegram.ui.Stories.StoriesUtilities; @@ -232,10 +232,10 @@ public boolean onTouchEvent(MotionEvent event) { } }; if (baseFragment instanceof ChatActivity || baseFragment instanceof TopicsFragment) { - if (parentFragment == null || parentFragment.getChatMode() != ChatActivity.MODE_QUICK_REPLIES) { + if (parentFragment == null || (parentFragment.getChatMode() != ChatActivity.MODE_QUICK_REPLIES && parentFragment.getChatMode() != ChatActivity.MODE_EDIT_BUSINESS_LINK)) { sharedMediaPreloader = new SharedMediaLayout.SharedMediaPreloader(baseFragment); } - if (parentFragment != null && (parentFragment.isThreadChat() || parentFragment.getChatMode() == ChatActivity.MODE_PINNED || parentFragment.getChatMode() == ChatActivity.MODE_QUICK_REPLIES)) { + if (parentFragment != null && (parentFragment.isThreadChat() || parentFragment.getChatMode() == ChatActivity.MODE_PINNED || parentFragment.getChatMode() == ChatActivity.MODE_QUICK_REPLIES || parentFragment.getChatMode() == ChatActivity.MODE_EDIT_BUSINESS_LINK)) { avatarImageView.setVisibility(GONE); } } @@ -517,7 +517,7 @@ public void openProfile(boolean byAvatar, boolean fromChatAnimation, boolean rem args.putBoolean("reportSpam", parentFragment.hasReportSpam()); args.putInt("actionBarColor", getThemedColor(Theme.key_actionBarDefault)); ProfileActivity fragment = new ProfileActivity(args, sharedMediaPreloader); - fragment.setUserInfo(parentFragment.getCurrentUserInfo()); + fragment.setUserInfo(parentFragment.getCurrentUserInfo(), parentFragment.profileChannelMessageFetcher, parentFragment.birthdayAssetsFetcher); if (fromChatAnimation) { fragment.setPlayProfileAnimation(byAvatar ? 2 : 1); } @@ -888,6 +888,10 @@ public void updateSubtitle(boolean animated) { if (parentFragment == null) { return; } + if (parentFragment.getChatMode() == ChatActivity.MODE_EDIT_BUSINESS_LINK) { + setSubtitle(BusinessLinksController.stripHttps(parentFragment.businessLink.link)); + return; + } TLRPC.User user = parentFragment.getCurrentUser(); if ((UserObject.isUserSelf(user) || UserObject.isReplyUser(user) || parentFragment.getChatMode() != 0) && parentFragment.getChatMode() != ChatActivity.MODE_SAVED) { if (getSubtitleTextView().getVisibility() != GONE) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatGreetingsView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatGreetingsView.java index a8612009b3..ca8a6bd213 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatGreetingsView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatGreetingsView.java @@ -1,7 +1,13 @@ package org.telegram.ui.Components; import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.formatString; +import static org.telegram.messenger.LocaleController.getString; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; @@ -9,11 +15,18 @@ import android.graphics.Path; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; +import android.graphics.drawable.Drawable; +import android.os.Build; import android.text.Layout; +import android.text.StaticLayout; +import android.text.TextPaint; +import android.text.TextUtils; +import android.util.Log; import android.util.TypedValue; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; +import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -23,6 +36,7 @@ import org.telegram.messenger.DocumentObject; import org.telegram.messenger.FileLoader; import org.telegram.messenger.ImageLocation; +import org.telegram.messenger.ImageReceiver; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaDataController; import org.telegram.messenger.MessageObject; @@ -56,7 +70,9 @@ public class ChatGreetingsView extends LinearLayout { private final int currentAccount; + public FrameLayout stickerContainer; public BackupImageView stickerToSendView; + public BackupImageView nextStickerToSendView; private final Theme.ResourcesProvider resourcesProvider; boolean wasDraw; @@ -66,9 +82,11 @@ public ChatGreetingsView(Context context, TLRPC.User user, int distance, int cur this.currentAccount = currentAccount; this.resourcesProvider = resourcesProvider; + setPadding(0, dp(8), 0, 0); + titleView = new TextView(context); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - titleView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + titleView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); titleView.setTextAlignment(TEXT_ALIGNMENT_CENTER); titleView.setGravity(Gravity.CENTER); @@ -77,18 +95,29 @@ public ChatGreetingsView(Context context, TLRPC.User user, int distance, int cur descriptionView.setGravity(Gravity.CENTER); descriptionView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); descriptionView.setGravity(Gravity.CENTER_HORIZONTAL); + + stickerContainer = new FrameLayout(context); stickerToSendView = new BackupImageView(context); + stickerToSendView.getImageReceiver().setAspectFit(true); + stickerContainer.addView(stickerToSendView, LayoutHelper.createFrame(112, 112)); ScaleStateListAnimator.apply(stickerToSendView); + + nextStickerToSendView = new BackupImageView(context); + nextStickerToSendView.getImageReceiver().setAspectFit(true); + stickerContainer.addView(nextStickerToSendView, LayoutHelper.createFrame(112, 112)); + nextStickerToSendView.setVisibility(View.GONE); + nextStickerToSendView.setAlpha(0f); + ScaleStateListAnimator.apply(nextStickerToSendView); updateLayout(); updateColors(); if (distance <= 0) { - titleView.setText(LocaleController.getString("NoMessages", R.string.NoMessages)); - descriptionView.setText(LocaleController.getString("NoMessagesGreetingsDescription", R.string.NoMessagesGreetingsDescription)); + titleView.setText(getString(R.string.NoMessages)); + descriptionView.setText(getString(R.string.NoMessagesGreetingsDescription)); } else { - titleView.setText(LocaleController.formatString("NearbyPeopleGreetingsMessage", R.string.NearbyPeopleGreetingsMessage, user.first_name, LocaleController.formatDistance(distance, 1))); - descriptionView.setText(LocaleController.getString("NearbyPeopleGreetingsDescription", R.string.NearbyPeopleGreetingsDescription)); + titleView.setText(formatString("NearbyPeopleGreetingsMessage", R.string.NearbyPeopleGreetingsMessage, user.first_name, LocaleController.formatDistance(distance, 1))); + descriptionView.setText(getString(R.string.NearbyPeopleGreetingsDescription)); } descriptionView.setMaxWidth(HintView2.cutInFancyHalf(descriptionView.getText(), descriptionView.getPaint())); stickerToSendView.setContentDescription(descriptionView.getText()); @@ -135,9 +164,9 @@ public void setPremiumLock(boolean lock, long dialogId) { } String text; if (MessagesController.getInstance(currentAccount).premiumFeaturesBlocked()) { - text = LocaleController.formatString(R.string.MessageLockedPremiumLocked, username); + text = formatString(R.string.MessageLockedPremiumLocked, username); } else { - text = LocaleController.formatString(R.string.MessageLockedPremium, username); + text = formatString(R.string.MessageLockedPremium, username); } premiumTextView.setText(AndroidUtilities.replaceTags(text)); premiumTextView.setMaxWidth(HintView2.cutInFancyHalf(premiumTextView.getText(), premiumTextView.getPaint())); @@ -211,23 +240,25 @@ protected void onDraw(Canvas canvas) { private void updateLayout() { removeAllViews(); if (premiumLock) { - addView(premiumIconView, LayoutHelper.createLinear(78, 78, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 20, 17, 20, 9)); + addView(premiumIconView, LayoutHelper.createLinear(78, 78, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 20, 9, 20, 9)); final boolean premiumLocked = MessagesController.getInstance(currentAccount).premiumFeaturesBlocked(); addView(premiumTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 20, 0, 20, premiumLocked ? 13 : 9)); if (!premiumLocked) { addView(premiumButtonView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 30, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 20, 2, 20, 13)); } } else { - addView(titleView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 20, 14, 20, 6)); - addView(descriptionView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 20, 6, 20, 0)); - addView(stickerToSendView, LayoutHelper.createLinear(112, 112, Gravity.CENTER_HORIZONTAL, 0, 16, 0, 16)); + addView(titleView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 20, 6, 20, 6)); + addView(descriptionView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 20, 6, 20, 6)); + addView(stickerContainer, LayoutHelper.createLinear(112, 112, Gravity.CENTER_HORIZONTAL, 16, 10, 16, 16)); } } - private void setSticker(TLRPC.Document sticker) { + public void setSticker(TLRPC.Document sticker) { if (sticker == null) { return; } + wasDraw = true; + nextStickerToSendView.clearImage(); SvgHelper.SvgDrawable svgThumb = DocumentObject.getSvgThumb(sticker, Theme.key_chat_serviceBackground, 1.0f); if (svgThumb != null) { stickerToSendView.setImage(ImageLocation.getForDocument(sticker), createFilter(sticker), svgThumb, 0, sticker); @@ -244,6 +275,102 @@ private void setSticker(TLRPC.Document sticker) { }); } + public void setNextSticker(TLRPC.Document sticker, Runnable whenDone) { + if (sticker == null) { + return; + } + if (togglingStickersAnimator != null) { + togglingStickersAnimator.cancel(); + } + nextStickerToSendView.getImageReceiver().setDelegate(new ImageReceiver.ImageReceiverDelegate() { + private boolean waited; + @Override + public void didSetImageBitmap(int type, String key, Drawable drawable) { + if (waited) { + return; + } + if ((type == ImageReceiver.TYPE_IMAGE || type == ImageReceiver.TYPE_MEDIA) && drawable != null) { + waited = true; + if (drawable instanceof RLottieDrawable && ((RLottieDrawable) drawable).bitmapsCache != null && ((RLottieDrawable) drawable).bitmapsCache.needGenCache()) { + ((RLottieDrawable) drawable).whenCacheDone = () -> { + toggleToNextSticker(); + if (whenDone != null) { + whenDone.run(); + } + }; + } else { + toggleToNextSticker(); + if (whenDone != null) { + whenDone.run(); + } + } + } + } + + @Override + public void didSetImage(ImageReceiver imageReceiver, boolean set, boolean thumb, boolean memCache) {} + }); + SvgHelper.SvgDrawable svgThumb = DocumentObject.getSvgThumb(sticker, Theme.key_chat_serviceBackground, 1.0f); + if (svgThumb != null) { + nextStickerToSendView.setImage(ImageLocation.getForDocument(sticker), createFilter(sticker), svgThumb, 0, sticker); + } else { + TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(sticker.thumbs, 90); + nextStickerToSendView.setImage(ImageLocation.getForDocument(sticker), createFilter(sticker), ImageLocation.getForDocument(thumb, sticker), null, 0, sticker); + } + nextStickerToSendView.setOnClickListener(v -> { + if (listener != null) { + listener.onGreetings(sticker); + } + }); + } + + private AnimatorSet togglingStickersAnimator; + private void toggleToNextSticker() { + if (togglingStickersAnimator != null) { + togglingStickersAnimator.cancel(); + } + + nextStickerToSendView.setVisibility(View.VISIBLE); + stickerToSendView.setVisibility(View.VISIBLE); + + togglingStickersAnimator = new AnimatorSet(); + togglingStickersAnimator.setDuration(420); + togglingStickersAnimator.setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT); + togglingStickersAnimator.addListener(new AnimatorListenerAdapter() { + private boolean cancelled; + @Override + public void onAnimationEnd(Animator animation) { + if (cancelled) return; + + BackupImageView temp = stickerToSendView; + stickerToSendView = nextStickerToSendView; + nextStickerToSendView = temp; + + nextStickerToSendView.setVisibility(View.GONE); + nextStickerToSendView.setAlpha(0f); + stickerToSendView.setVisibility(View.VISIBLE); + stickerToSendView.setAlpha(1f); + } + + @Override + public void onAnimationCancel(Animator animation) { + cancelled = true; + } + }); + togglingStickersAnimator.playTogether( + ObjectAnimator.ofFloat(nextStickerToSendView, View.ALPHA, 0f, 1f), + ObjectAnimator.ofFloat(nextStickerToSendView, View.SCALE_X, .7f, 1f), + ObjectAnimator.ofFloat(nextStickerToSendView, View.SCALE_Y, .7f, 1f), + ObjectAnimator.ofFloat(nextStickerToSendView, View.TRANSLATION_Y, -dp(24), 0), + + ObjectAnimator.ofFloat(stickerToSendView, View.ALPHA, 1f, 0f), + ObjectAnimator.ofFloat(stickerToSendView, View.SCALE_X, 1f, .7f), + ObjectAnimator.ofFloat(stickerToSendView, View.SCALE_Y, 1f, .7f), + ObjectAnimator.ofFloat(stickerToSendView, View.TRANSLATION_Y, 0, dp(24)) + ); + togglingStickersAnimator.start(); + } + public static String createFilter(TLRPC.Document document) { float maxHeight; float maxWidth; @@ -300,22 +427,62 @@ public interface Listener { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { ignoreLayot = true; - descriptionView.setVisibility(View.VISIBLE); + if (!preview) { + descriptionView.setVisibility(View.VISIBLE); + } stickerToSendView.setVisibility(View.VISIBLE); super.onMeasure(widthMeasureSpec, heightMeasureSpec); - if (getMeasuredHeight() > MeasureSpec.getSize(heightMeasureSpec)) { + if (getMeasuredHeight() > MeasureSpec.getSize(heightMeasureSpec) && !preview) { descriptionView.setVisibility(View.GONE); stickerToSendView.setVisibility(View.GONE); } else { - descriptionView.setVisibility(View.VISIBLE); + if (!preview) { + descriptionView.setVisibility(View.VISIBLE); + } stickerToSendView.setVisibility(View.VISIBLE); } ignoreLayot = false; super.onMeasure(widthMeasureSpec, heightMeasureSpec); } + public boolean preview; + public void setPreview(CharSequence title, CharSequence message) { + preview = true; + titleView.setText(TextUtils.isEmpty(title == null ? null : title.toString().trim()) ? getString(R.string.NoMessages) : title); + descriptionView.setText(TextUtils.isEmpty(message == null ? null : message.toString().trim()) ? getString(R.string.NoMessagesGreetingsDescription) : message); + descriptionView.setMaxWidth( + descriptionView.getText().length() > 60 ? + Math.min((int) (AndroidUtilities.displaySize.x * .5f), HintView2.cutInFancyHalf(descriptionView.getText(), descriptionView.getPaint())) : + (int) (AndroidUtilities.displaySize.x * .5f) + ); + } + + private float viewTop; + private float viewTranslationX; + private int backgroundHeight; + private boolean visiblePartSet; + + public void setVisiblePart(float visibleTop, int parentH) { + visiblePartSet = true; + backgroundHeight = parentH; + viewTop = visibleTop; + viewTranslationX = 0; + } + + private boolean disableBackground; + @Override protected void dispatchDraw(Canvas canvas) { + if (!disableBackground) { + if (resourcesProvider != null) { + resourcesProvider.applyServiceShaderMatrix(getMeasuredWidth(), backgroundHeight, viewTranslationX, viewTop + dp(4)); + } else { + Theme.applyServiceShaderMatrix(getMeasuredWidth(), backgroundHeight, viewTranslationX, viewTop + dp(4)); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + canvas.drawRoundRect(0, 0, getWidth(), getHeight(), dp(16), dp(16), Theme.getThemePaint(Theme.key_paint_chatActionBackground, resourcesProvider)); + } + } if (!wasDraw) { wasDraw = true; setSticker(preloadedGreetingsSticker); @@ -351,6 +518,12 @@ private void fetchSticker() { } } + @Override + public void setBackground(Drawable background) { + super.setBackground(background); + disableBackground = true; + } + private int getThemedColor(int key) { return Theme.getColor(key, resourcesProvider); } @@ -390,7 +563,7 @@ public static void showPremiumSheet(Context context, int currentAccount, long di TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(dialogId); username = UserObject.getFirstName(user); } - descriptionView.setText(AndroidUtilities.replaceTags(LocaleController.formatString(premiumLocked ? R.string.PremiumMessageTextLocked : R.string.PremiumMessageText, username, username))); + descriptionView.setText(AndroidUtilities.replaceTags(formatString(premiumLocked ? R.string.PremiumMessageTextLocked : R.string.PremiumMessageText, username, username))); layout.addView(descriptionView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 12, 9, 12, 19)); if (!premiumLocked) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatThemeBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatThemeBottomSheet.java index f1b1ddbaa5..86ca5d72ed 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatThemeBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatThemeBottomSheet.java @@ -1330,45 +1330,6 @@ public boolean insideBottomSheet() { chatAttachAlert.init(); chatAttachAlert.getPhotoLayout().loadGalleryPhotos(); chatAttachAlert.show(); - - FrameLayout chatAttachButton = new FrameLayout(activity) { - - Paint paint = new Paint(); - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(dp(48), MeasureSpec.EXACTLY)); - } - - @Override - protected void dispatchDraw(Canvas canvas) { - super.dispatchDraw(canvas); - paint.setColor(Theme.getColor(Theme.key_divider, resourcesProvider)); - canvas.drawRect(0, 0, getMeasuredWidth(), 1, paint); - } - }; - AnimatedTextView chatAttachButtonText = new AnimatedTextView(activity, true, true, true); - chatAttachButtonText.setTextSize(dp(14)); - chatAttachButtonText.setText(LocaleController.getString(R.string.SetColorAsBackground)); - chatAttachButtonText.setGravity(Gravity.CENTER); - chatAttachButtonText.setTextColor(Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider)); - chatAttachButton.addView(chatAttachButtonText, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); - chatAttachButton.setBackground(Theme.createSimpleSelectorRoundRectDrawable(dp(0), Theme.getColor(Theme.key_windowBackgroundWhite, resourcesProvider), ColorUtils.setAlphaComponent(Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider), (int) (0.3f * 255)))); - chatAttachButton.setOnClickListener(v -> { - if (chatAttachAlert.getCurrentAttachLayout() == chatAttachAlert.getPhotoLayout()) { - chatAttachButtonText.setText(LocaleController.getString(R.string.ChooseBackgroundFromGallery)); - chatAttachAlert.openColorsLayout(); -// chatAttachAlert.colorsLayout.updateColors(forceDark); - } else { - chatAttachButtonText.setText(LocaleController.getString(R.string.SetColorAsBackground)); - chatAttachAlert.showLayout(chatAttachAlert.getPhotoLayout()); - } -// WallpapersListActivity wallpapersListActivity = new WallpapersListActivity(WallpapersListActivity.TYPE_ALL, chatActivity.getDialogId()); -// chatActivity.presentFragment(wallpapersListActivity); -// chatAttachAlert.dismiss(); -// dismiss(); - }); - chatAttachAlert.sizeNotifierFrameLayout.addView(chatAttachButton, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ClickableAnimatedTextView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ClickableAnimatedTextView.java index b8b99270d2..faa6bbc9f8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ClickableAnimatedTextView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ClickableAnimatedTextView.java @@ -21,23 +21,25 @@ public ClickableAnimatedTextView(Context context) { @Override protected void onDraw(Canvas canvas) { - bounds.set(getDrawable().getBounds()); - int w = (int) Math.ceil(getDrawable().getCurrentWidth()); - if (getDrawable().getGravity() == Gravity.LEFT) { - bounds.right = bounds.left + w; - } else if (getDrawable().getGravity() == Gravity.RIGHT) { - bounds.left = bounds.right - w; - } else if (getDrawable().getGravity() == Gravity.CENTER) { - int cx = (bounds.left + bounds.right) / 2; - bounds.left = cx - w / 2; - bounds.right = cx + w / 2; + if (backgroundDrawable != null) { + bounds.set(getDrawable().getBounds()); + int w = (int) Math.ceil(getDrawable().getCurrentWidth()); + if (getDrawable().getGravity() == Gravity.LEFT) { + bounds.right = bounds.left + w; + } else if (getDrawable().getGravity() == Gravity.RIGHT) { + bounds.left = bounds.right - w; + } else if (getDrawable().getGravity() == Gravity.CENTER) { + int cx = (bounds.left + bounds.right) / 2; + bounds.left = cx - w / 2; + bounds.right = cx + w / 2; + } + bounds.left -= getPaddingLeft(); + bounds.top -= getPaddingTop(); + bounds.right += getPaddingRight(); + bounds.bottom += getPaddingBottom(); + backgroundDrawable.setBounds(bounds); + backgroundDrawable.draw(canvas); } - bounds.left -= getPaddingLeft(); - bounds.top -= getPaddingTop(); - bounds.right += getPaddingRight(); - bounds.bottom += getPaddingBottom(); - backgroundDrawable.setBounds(bounds); - backgroundDrawable.draw(canvas); super.onDraw(canvas); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ColoredImageSpan.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ColoredImageSpan.java index fc2d25994d..3d136d2ba5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ColoredImageSpan.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ColoredImageSpan.java @@ -5,6 +5,7 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.drawable.Drawable; +import android.text.TextPaint; import android.text.style.ReplacementSpan; import androidx.annotation.NonNull; @@ -21,6 +22,7 @@ public class ColoredImageSpan extends ReplacementSpan { Drawable drawable; boolean usePaintColor = true; + public boolean useLinkPaintColor = false; int colorKey; private int topOffset = 0; private float translateX, translateY; @@ -69,6 +71,19 @@ public ColoredImageSpan(Drawable drawable, int drawableColor, int verticalAlignm this.verticalAlignment = verticalAlignment; } + private boolean isRelativeSize; + private Paint.FontMetricsInt fontMetrics; + public void setRelativeSize(Paint.FontMetricsInt fontMetricsInt) { + this.isRelativeSize = true; + this.fontMetrics = fontMetricsInt; + if (fontMetrics != null) { + setSize(Math.abs(fontMetrics.descent) + Math.abs(fontMetrics.ascent)); + if (size == 0) { + setSize(AndroidUtilities.dp(20)); + } + } + } + public void setSize(int size) { this.size = size; drawable.setBounds(0, 0, size, size); @@ -92,7 +107,20 @@ public void setWidth(int width) { } @Override - public int getSize(@NonNull Paint paint, CharSequence charSequence, int i, int i1, @Nullable Paint.FontMetricsInt fontMetricsInt) { + public int getSize(@NonNull Paint paint, CharSequence charSequence, int i, int i1, @Nullable Paint.FontMetricsInt fm) { + if (isRelativeSize && fontMetrics != null) { + if (fm == null) { + fm = new Paint.FontMetricsInt(); + } + if (fm != null) { + fm.ascent = fontMetrics.ascent; + fm.descent = fontMetrics.descent; + + fm.top = fontMetrics.top; + fm.bottom = fontMetrics.bottom; + } + return (int) (scaleX * Math.abs(spaceScaleX) * size); + } if (sizeWidth != 0) return (int) (Math.abs(scaleX) * sizeWidth); return (int) (Math.abs(scaleX) * Math.abs(spaceScaleX) * (size != 0 ? size : drawable.getIntrinsicWidth())); @@ -106,6 +134,8 @@ public void draw(@NonNull Canvas canvas, CharSequence text, int start, int end, } else { if (overrideColor != 0) { color = overrideColor; + } else if (useLinkPaintColor && paint instanceof TextPaint) { + color = ((TextPaint) paint).linkColor; } else if (usePaintColor) { color = paint.getColor(); } else { @@ -134,8 +164,8 @@ public void draw(@NonNull Canvas canvas, CharSequence text, int start, int end, if (scaleX != 1f || scaleY != 1f) { canvas.scale(scaleX, scaleY, 0, drawable.getBounds().centerY()); } - if (alpha != 1f) { - drawable.setAlpha((int) (alpha * 255)); + if (alpha != 1f || paint.getAlpha() != 0xFF) { + drawable.setAlpha((int) (alpha * paint.getAlpha())); } drawable.draw(canvas); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/CreateGroupCallBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/CreateGroupCallBottomSheet.java index b1b4f6167c..f429ee315f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/CreateGroupCallBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/CreateGroupCallBottomSheet.java @@ -166,7 +166,7 @@ protected CharSequence getTitle() { } @Override - public RecyclerListView.SelectionAdapter createAdapter() { + public RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { return new RecyclerListView.SelectionAdapter() { @Override public boolean isEnabled(RecyclerView.ViewHolder holder) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropRotationWheel.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropRotationWheel.java index d47544010c..fa8d0a383c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropRotationWheel.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropRotationWheel.java @@ -194,7 +194,7 @@ public boolean onTouchEvent(MotionEvent ev) { Math.abs(newAngle - -MAX_ANGLE) < 0.001f && Math.abs(this.rotation - -MAX_ANGLE) >= 0.001f) { performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); } else if (Math.floor(this.rotation / 2.5f) != Math.floor(newAngle / 2.5f)) { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); + AndroidUtilities.vibrateCursor(this); } } catch (Exception ignore) {} } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java index 14260704af..5923c2337b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java @@ -714,6 +714,7 @@ private int getCurrentWidth() { if (videoEditTextureView != null) { return videoEditTextureView.getVideoWidth(); } + if (bitmap == null) return 1; return bitmapRotation == 90 || bitmapRotation == 270 ? bitmap.getHeight() : bitmap.getWidth(); } @@ -721,6 +722,7 @@ private int getCurrentHeight() { if (videoEditTextureView != null) { return videoEditTextureView.getVideoHeight(); } + if (bitmap == null) return 1; return bitmapRotation == 90 || bitmapRotation == 270 ? bitmap.getWidth() : bitmap.getHeight(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiColorPickerWindow.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiColorPickerWindow.java index 2a66609fed..c6fa44ebd0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiColorPickerWindow.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiColorPickerWindow.java @@ -97,9 +97,7 @@ public void onTouchMove(int x) { } int newSelection = Math.max(0, Math.min(5, x / (emojiSize + dp(4)))); if (getSelection() != newSelection) { - try { - pickerView.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + AndroidUtilities.vibrateCursor(pickerView); setSelection(newSelection); } } @@ -286,11 +284,7 @@ public boolean onTouchEvent(MotionEvent event) { } } if (lastSelection[0] != selection[0] || lastSelection[1] != selection[1]) { - try { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} - } catch (Exception ignore) {} + AndroidUtilities.vibrateCursor(this); if (onSelectionUpdate != null) { onSelectionUpdate.run(selection[0], selection[1]); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java index 4ccc9b54b4..2afb106874 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java @@ -99,6 +99,7 @@ import org.telegram.messenger.ImageReceiver; import org.telegram.messenger.LiteMode; import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MediaController; import org.telegram.messenger.MediaDataController; import org.telegram.messenger.MessageObject; import org.telegram.messenger.MessagesController; @@ -130,9 +131,11 @@ import org.telegram.ui.Components.ListView.RecyclerListViewWithOverlayDraw; import org.telegram.ui.Components.Premium.PremiumButtonView; import org.telegram.ui.ContentPreviewViewer; +import org.telegram.ui.PhotoViewer; import org.telegram.ui.SelectAnimatedEmojiDialog; import org.telegram.ui.StickersActivity; +import java.io.File; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; @@ -1579,8 +1582,8 @@ public boolean onItemClick(View view, int position) { color = Emoji.emojiColor.get(code); } String toCheck = code; - boolean isCompound = false; - if (CompoundEmoji.isCompound(toCheck) && (isCompound = true) || EmojiData.emojiColoredMap.contains(code)) { + final boolean isCompound = CompoundEmoji.isCompound(toCheck); + if (isCompound || EmojiData.emojiColoredMap.contains(code)) { emojiTouchedView = viewEmoji; emojiTouchedX = emojiLastX; emojiTouchedY = emojiLastY; @@ -4053,6 +4056,11 @@ public static String addColorToCode(String code, String color) { return CompoundEmoji.applyColor(code, color); } else { String end = null; + boolean invert = false; + if (Emoji.endsWithRightArrow(code)) { + code = code.substring(0, code.length() - 2); + invert = true; + } int length = code.length(); if (length > 2 && code.charAt(code.length() - 2) == '\u200D') { end = code.substring(code.length() - 2); @@ -4065,6 +4073,9 @@ public static String addColorToCode(String code, String color) { if (end != null) { code += end; } + if (invert) { + code += "\u200Dโžก"; + } return code; } } @@ -5402,7 +5413,7 @@ public void addRecentSticker(TLRPC.Document document) { } MediaDataController.getInstance(currentAccount).addRecentSticker(MediaDataController.TYPE_IMAGE, null, document, (int) (System.currentTimeMillis() / 1000), false); boolean wasEmpty = recentStickers.isEmpty(); - recentStickers = MediaDataController.getInstance(currentAccount).getRecentStickers(MediaDataController.TYPE_IMAGE); + recentStickers = MediaDataController.getInstance(currentAccount).getRecentStickers(MediaDataController.TYPE_IMAGE, true); if (stickersGridAdapter != null) { stickersGridAdapter.notifyDataSetChanged(); } @@ -5791,7 +5802,7 @@ private void checkDocuments(boolean isGif) { } else { int previousCount = recentStickers.size(); int previousCount2 = favouriteStickers.size(); - recentStickers = MediaDataController.getInstance(currentAccount).getRecentStickers(MediaDataController.TYPE_IMAGE); + recentStickers = MediaDataController.getInstance(currentAccount).getRecentStickers(MediaDataController.TYPE_IMAGE, true); favouriteStickers = MediaDataController.getInstance(currentAccount).getRecentStickers(MediaDataController.TYPE_FAVE); if (UserConfig.getInstance(currentAccount).isPremium()) { premiumStickers = MediaDataController.getInstance(currentAccount).getRecentStickers(MediaDataController.TYPE_PREMIUM_STICKERS); @@ -6311,6 +6322,9 @@ public int getItemViewType(int position) { Object object = cache.get(position); if (object != null) { if (object instanceof TLRPC.Document) { + if (object instanceof TLRPC.TL_documentEmpty) { + return 7; + } return 0; } else if (object instanceof String) { if ("trend1".equals(object)) { @@ -6465,8 +6479,26 @@ public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull R view = listView; view.setLayoutParams(new RecyclerView.LayoutParams(LayoutHelper.MATCH_PARENT, AndroidUtilities.dp(52))); break; + case 7: + FrameLayout containerLayout = new FrameLayout(context); + View btnView = new View(context); + Drawable circle = Theme.createRoundRectDrawable(dp(28), Theme.multAlpha(getThemedColor(Theme.key_chat_emojiPanelIcon), .12f)); + Drawable drawable = getResources().getDrawable(R.drawable.filled_add_sticker).mutate(); + drawable.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_chat_emojiPanelIcon), PorterDuff.Mode.MULTIPLY)); + CombinedDrawable combinedDrawable = new CombinedDrawable(circle, drawable); + combinedDrawable.setCustomSize(dp(56), dp(56)); + combinedDrawable.setIconSize(dp(24), dp(24)); + btnView.setBackground(combinedDrawable); + btnView.setOnClickListener(v -> { + if (fragment instanceof ChatActivity) { + ((ChatActivity) fragment).openAttachMenuForCreatingSticker(); + } + }); + ScaleStateListAnimator.apply(btnView); + containerLayout.addView(btnView, LayoutHelper.createFrame(56, 56, Gravity.CENTER)); + view = containerLayout; + break; } - return new RecyclerListView.Holder(view); } @@ -6537,6 +6569,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { title += " " + LocaleController.getString("SetPinnedSuffix", R.string.SetPinnedSuffix); } cell.setText(title, 0); + if (set.set.creator && !StickersAlert.DISABLE_STICKER_EDITOR) { + cell.setEdit(v -> { + delegate.onShowStickerSet(set.set, null); + }); + } } } else if (object == recentStickers) { cell.setText(LocaleController.getString("RecentStickers", R.string.RecentStickers), R.drawable.msg_close, LocaleController.getString(R.string.ClearRecentStickersAlertTitle)); @@ -6580,6 +6617,7 @@ private void updateItems() { totalItems = 0; ArrayList packs = stickerSets; int startRow = 0; + boolean isAddedStickerBtnSet = false; for (int a = -5; a < packs.size(); a++) { ArrayList documents; TLRPC.TL_messages_stickerSet pack = null; @@ -6603,6 +6641,9 @@ private void updateItems() { packStartPosition.put(key = "fav", totalItems); } else if (a == -2) { documents = recentStickers; +// if (!documents.isEmpty() && !StickersAlert.DISABLE_STICKER_EDITOR) { +// isAddedStickerBtnSet = true; +// } packStartPosition.put(key = "recent", totalItems); } else if (a == -1) { continue; @@ -6612,6 +6653,11 @@ private void updateItems() { key = null; pack = packs.get(a); documents = pack.documents; + if (!isAddedStickerBtnSet && !StickersAlert.DISABLE_STICKER_EDITOR) { + isAddedStickerBtnSet = true; + documents = new ArrayList<>(documents); + documents.add(0, new TLRPC.TL_documentEmpty()); + } packStartPosition.put(pack, totalItems); } if (a == groupStickerPackNum) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterGLThread.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterGLThread.java index f6350368a7..36eed45614 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterGLThread.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterGLThread.java @@ -13,12 +13,14 @@ import org.telegram.messenger.BuildVars; import org.telegram.messenger.DispatchQueue; import org.telegram.messenger.FileLog; +import org.telegram.messenger.R; import org.telegram.messenger.SharedConfig; import org.telegram.ui.Stories.recorder.StoryEntry; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; +import java.util.Locale; import java.util.concurrent.CountDownLatch; import javax.microedition.khronos.egl.EGL10; @@ -148,6 +150,7 @@ public FilterGLThread(SurfaceTexture surface, FilterGLThreadVideoDelegate filter public void updateHDRInfo(StoryEntry.HDRInfo hdrInfo) { postRunnable(() -> { makeCurrentContext(); + setupVideoShader(hdrInfo); filterShaders.updateHDRInfo(hdrInfo); }); } @@ -156,6 +159,54 @@ public void setFilterGLThreadDelegate(FilterShaders.FilterShadersDelegate filter postRunnable(() -> filterShaders.setDelegate(filterShadersDelegate)); } + private boolean setupVideoShader(StoryEntry.HDRInfo hdrInfo) { + String hdrProcessor = ""; + int hdrType = hdrInfo != null ? hdrInfo.getHDRType() : 0; + if (hdrType == 1) { + hdrProcessor = RLottieDrawable.readRes(null, R.raw.hdr2sdr_hlg); + } else if (hdrType == 2) { + hdrProcessor = RLottieDrawable.readRes(null, R.raw.hdr2sdr_pq); + } + + int vertexShader; + int fragmentShader; + if (hdrType != 0) { + vertexShader = FilterShaders.loadShader(GLES20.GL_VERTEX_SHADER, FilterShaders.simpleVertexVideoShaderCode); + fragmentShader = FilterShaders.loadShader(GLES20.GL_FRAGMENT_SHADER, String.format(Locale.US, FilterShaders.simpleHdrToSdrFragmentShaderCode, hdrProcessor)); + } else { + vertexShader = FilterShaders.loadShader(GLES20.GL_VERTEX_SHADER, FilterShaders.simpleVertexVideoShaderCode); + fragmentShader = FilterShaders.loadShader(GLES20.GL_FRAGMENT_SHADER, "#extension GL_OES_EGL_image_external : require\n" + FilterShaders.simpleFragmentShaderCode.replace("sampler2D", "samplerExternalOES")); + } + + if (vertexShader != 0 && fragmentShader != 0) { + if (simpleOESShaderProgram != 0) { + GLES20.glDeleteProgram(simpleOESShaderProgram); + } + simpleOESShaderProgram = GLES20.glCreateProgram(); + GLES20.glAttachShader(simpleOESShaderProgram, vertexShader); + GLES20.glAttachShader(simpleOESShaderProgram, fragmentShader); + GLES20.glBindAttribLocation(simpleOESShaderProgram, 0, "position"); + GLES20.glBindAttribLocation(simpleOESShaderProgram, 1, "inputTexCoord"); + + GLES20.glLinkProgram(simpleOESShaderProgram); + int[] linkStatus = new int[1]; + GLES20.glGetProgramiv(simpleOESShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); + if (linkStatus[0] == 0) { + GLES20.glDeleteProgram(simpleOESShaderProgram); + simpleOESShaderProgram = 0; + } else { + simpleOESPositionHandle = GLES20.glGetAttribLocation(simpleOESShaderProgram, "position"); + simpleOESInputTexCoordHandle = GLES20.glGetAttribLocation(simpleOESShaderProgram, "inputTexCoord"); + simpleOESSourceImageHandle = GLES20.glGetUniformLocation(simpleOESShaderProgram, "sourceImage"); + simpleOESMatrixHandle = GLES20.glGetUniformLocation(simpleOESShaderProgram, "videoMatrix"); + } + } else { + return false; + } + + return true; + } + private boolean initGL() { egl10 = (EGL10) EGLContext.getEGL(); @@ -266,28 +317,7 @@ private boolean initGL() { return false; } - vertexShader = FilterShaders.loadShader(GLES20.GL_VERTEX_SHADER, FilterShaders.simpleVertexVideoShaderCode); - fragmentShader = FilterShaders.loadShader(GLES20.GL_FRAGMENT_SHADER, "#extension GL_OES_EGL_image_external : require\n" + FilterShaders.simpleFragmentShaderCode.replace("sampler2D", "samplerExternalOES")); - if (vertexShader != 0 && fragmentShader != 0) { - simpleOESShaderProgram = GLES20.glCreateProgram(); - GLES20.glAttachShader(simpleOESShaderProgram, vertexShader); - GLES20.glAttachShader(simpleOESShaderProgram, fragmentShader); - GLES20.glBindAttribLocation(simpleOESShaderProgram, 0, "position"); - GLES20.glBindAttribLocation(simpleOESShaderProgram, 1, "inputTexCoord"); - - GLES20.glLinkProgram(simpleOESShaderProgram); - int[] linkStatus = new int[1]; - GLES20.glGetProgramiv(simpleOESShaderProgram, GLES20.GL_LINK_STATUS, linkStatus, 0); - if (linkStatus[0] == 0) { - GLES20.glDeleteProgram(simpleOESShaderProgram); - simpleOESShaderProgram = 0; - } else { - simpleOESPositionHandle = GLES20.glGetAttribLocation(simpleOESShaderProgram, "position"); - simpleOESInputTexCoordHandle = GLES20.glGetAttribLocation(simpleOESShaderProgram, "inputTexCoord"); - simpleOESSourceImageHandle = GLES20.glGetUniformLocation(simpleOESShaderProgram, "sourceImage"); - simpleOESMatrixHandle = GLES20.glGetUniformLocation(simpleOESShaderProgram, "videoMatrix"); - } - } else { + if (!setupVideoShader(null)) { return false; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterShaders.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterShaders.java index 637523188c..7b31fe6c27 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterShaders.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterShaders.java @@ -3,11 +3,9 @@ import android.graphics.Bitmap; import android.graphics.Matrix; import android.graphics.PointF; -import android.media.MediaFormat; import android.opengl.GLES11Ext; import android.opengl.GLES20; import android.opengl.GLUtils; -import android.util.Log; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.BuildVars; @@ -67,24 +65,24 @@ public class FilterShaders { "gl_FragColor = vec4(mix(image.rgb, tone.rgb, 1.0 - mask.b), 1.0);" + "}"; - private static final String yuv_highpassSkinSmoothingCompositingFilterFragmentShaderString_300 = - "%1$s\n" + - "in highp vec2 vTextureCoord;" + - "in highp vec2 texCoord2;" + - "uniform sampler2D toneCurveTexture;" + - "uniform sampler2D inputImageTexture3;" + - "uniform lowp float mixturePercent;" + - "out vec4 fragColor;" + - "void main() {" + - "vec4 image = TEX(vTextureCoord);" + - "vec4 mask = texture(inputImageTexture3, texCoord2);" + - "float redCurveValue = texture(toneCurveTexture, vec2(image.r, 0.0)).r;" + - "float greenCurveValue = texture(toneCurveTexture, vec2(image.g, 0.0)).g;" + - "float blueCurveValue = texture(toneCurveTexture, vec2(image.b, 0.0)).b;" + - "vec4 result = vec4(redCurveValue, greenCurveValue, blueCurveValue, image.a);" + - "vec4 tone = mix(image, result, mixturePercent);" + - "fragColor = vec4(mix(image.rgb, tone.rgb, 1.0 - mask.b), 1.0);" + - "}"; + private static final String HDRHighpassSkinSmoothingCompositingFilterFragmentShaderString = + "%1$s\n" + + "precision lowp float;" + + "varying highp vec2 vTextureCoord;" + + "varying highp vec2 texCoord2;" + + "uniform sampler2D toneCurveTexture;" + + "uniform sampler2D inputImageTexture3;" + + "uniform lowp float mixturePercent;" + + "void main() {" + + "vec4 image = TEX(vTextureCoord);" + + "vec4 mask = texture2D(inputImageTexture3, texCoord2);" + + "float redCurveValue = texture2D(toneCurveTexture, vec2(image.r, 0.0)).r;" + + "float greenCurveValue = texture2D(toneCurveTexture, vec2(image.g, 0.0)).g;" + + "float blueCurveValue = texture2D(toneCurveTexture, vec2(image.b, 0.0)).b;" + + "vec4 result = vec4(redCurveValue, greenCurveValue, blueCurveValue, image.a);" + + "vec4 tone = mix(image, result, mixturePercent);" + + "gl_FragColor = vec4(mix(image.rgb, tone.rgb, 1.0 - mask.b), 1.0);" + + "}"; private static final String greenAndBlueChannelOverlayFragmentShaderCode = "%1$s\n" + @@ -100,18 +98,18 @@ public class FilterShaders { "gl_FragColor = vec4(ba,ba,ba,image.a);" + "}"; - private static final String greenAndBlueChannelOverlayFragmentShaderCode_300 = - "%1$s\n" + - "in highp vec2 vTextureCoord;" + - "out vec4 fragColor;" + - "void main() {" + - "vec4 inp = TEX(vTextureCoord);" + - "vec4 image = vec4(inp.rgb * pow(2.0, -1.0), inp.w);" + - "vec4 base = vec4(image.g, image.g, image.g, 1.0);" + - "vec4 overlay = vec4(image.b, image.b, image.b, 1.0);" + - "float ba = 2.0 * overlay.b * base.b + overlay.b * (1.0 - base.a) + base.b * (1.0 - overlay.a);" + - "fragColor = vec4(ba,ba,ba,image.a);" + - "}"; + private static final String HDRGreenAndBlueChannelOverlayFragmentShaderCode = + "%1$s\n" + + "precision lowp float;" + + "varying highp vec2 vTextureCoord;" + + "void main() {" + + "vec4 inp = TEX(vTextureCoord);" + + "vec4 image = vec4(inp.rgb * pow(2.0, -1.0), inp.w);" + + "vec4 base = vec4(image.g, image.g, image.g, 1.0);" + + "vec4 overlay = vec4(image.b, image.b, image.b, 1.0);" + + "float ba = 2.0 * overlay.b * base.b + overlay.b * (1.0 - base.a) + base.b * (1.0 - overlay.a);" + + "gl_FragColor = vec4(ba,ba,ba,image.a);" + + "}"; private static final String stillImageHighPassFilterFragmentShaderCode = "precision lowp float;" + @@ -335,17 +333,6 @@ public boolean create() { "vTextureCoord = vec2(videoMatrix * inputTexCoord).xy;" + "}"; - private static final String simpleVertexVideoShaderCode_300 = - "#version 320 es\n" + - "in vec4 position;" + - "uniform mat4 videoMatrix;" + - "in vec4 inputTexCoord;" + - "out vec2 vTextureCoord;" + - "void main() {" + - "gl_Position = position;" + - "vTextureCoord = vec2(videoMatrix * inputTexCoord).xy;" + - "}"; - private static final String simpleTwoTextureVertexVideoShaderCode = "attribute vec4 position;" + "uniform mat4 videoMatrix;" + @@ -358,19 +345,6 @@ public boolean create() { "texCoord2 = inputTexCoord.xy;" + "}"; - private static final String simpleTwoTextureVertexVideoShaderCode_300 = - "#version 320 es\n" + - "in vec4 position;" + - "uniform mat4 videoMatrix;" + - "in vec4 inputTexCoord;" + - "out vec2 vTextureCoord;" + - "out vec2 texCoord2;" + - "void main() {" + - "gl_Position = position;" + - "vTextureCoord = vec2(videoMatrix * inputTexCoord).xy;" + - "texCoord2 = inputTexCoord.xy;" + - "}"; - private static final String rgbToHsvFragmentShaderCode = "%1$s\n" + "precision highp float;" + @@ -389,22 +363,22 @@ public boolean create() { "gl_FragColor = vec4(rgb_to_hsv(texel.rgb), texel.a);" + "}"; - private static final String yuvToHsvFragmentShaderCode_300 = - "%1$s\n" + - "in vec2 vTextureCoord;" + - "out vec4 fragColor;" + - "highp vec3 rgb_to_hsv(vec3 c) {" + - "highp vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);" + - "highp vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);" + - "highp vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);" + - "highp float d = q.x - min(q.w, q.y);" + - "highp float e = 1.0e-10;" + - "return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);" + - "}" + - "void main() {" + - "vec4 texel = TEX(vTextureCoord);" + - "fragColor = vec4(rgb_to_hsv(texel.rgb), texel.a);" + - "}"; + private static final String HDRRgbToHsvFragmentShaderCode = + "%1$s\n" + + "precision highp float;" + + "varying vec2 vTextureCoord;" + + "vec3 rgb_to_hsv(vec3 c) {" + + "vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);" + + "vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);" + + "vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);" + + "float d = q.x - min(q.w, q.y);" + + "float e = 1.0e-10;" + + "return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);" + + "}" + + "void main() {" + + "vec4 texel = TEX(vTextureCoord);" + + "gl_FragColor = vec4(rgb_to_hsv(texel.rgb), texel.a);" + + "}"; private static final String enhanceFragmentShaderCode = "precision highp float;" + @@ -474,6 +448,13 @@ public boolean create() { "gl_FragColor = texture2D(sTexture, vTextureCoord);" + "}"; + public static final String simpleHdrToSdrFragmentShaderCode = + "%1$s\n" + + "varying highp vec2 vTextureCoord;" + + "void main() {" + + "gl_FragColor = TEX(vTextureCoord);" + + "}"; + private static final String sharpenVertexShaderCode = "attribute vec4 position;" + "attribute vec2 inputTexCoord;" + @@ -1396,12 +1377,12 @@ public void updateHDRInfo(StoryEntry.HDRInfo hdrInfo) { } private boolean setupExternalShaders() { - String yuvProcessor = ""; + String hdrProcessor = ""; int hdrType = hdrInfo != null ? hdrInfo.getHDRType() : 0; if (hdrType == 1) { - yuvProcessor = RLottieDrawable.readRes(null, R.raw.yuv_hlg2rgb); + hdrProcessor = RLottieDrawable.readRes(null, R.raw.hdr2sdr_hlg); } else if (hdrType == 2) { - yuvProcessor = RLottieDrawable.readRes(null, R.raw.yuv_pq2rgb); + hdrProcessor = RLottieDrawable.readRes(null, R.raw.hdr2sdr_pq); } String extension = isVideo ? "#extension GL_OES_EGL_image_external : require" : ""; String sampler2D = isVideo ? "samplerExternalOES" : "sampler2D"; @@ -1411,8 +1392,8 @@ private boolean setupExternalShaders() { for (int a = 0; a < (isVideo ? 2 : 1); a++) { if (a == 1 && isVideo) { if (hdrType != 0) { - vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexVideoShaderCode_300); - fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, String.format(Locale.US, yuvToHsvFragmentShaderCode_300, yuvProcessor)); + vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexVideoShaderCode); + fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, String.format(Locale.US, HDRRgbToHsvFragmentShaderCode, hdrProcessor)); } else { vertexShader = fragmentShader = 0; } @@ -1453,8 +1434,8 @@ private boolean setupExternalShaders() { if (isVideo) { if (hdrType != 0) { - vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexVideoShaderCode_300); - fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, String.format(Locale.US, greenAndBlueChannelOverlayFragmentShaderCode_300, yuvProcessor)); + vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleVertexVideoShaderCode); + fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, String.format(Locale.US, HDRGreenAndBlueChannelOverlayFragmentShaderCode, hdrProcessor)); } else { vertexShader = fragmentShader = 0; } @@ -1494,8 +1475,8 @@ private boolean setupExternalShaders() { if (isVideo) { if (hdrType != 0) { - vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleTwoTextureVertexVideoShaderCode_300); - fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, String.format(Locale.US, yuv_highpassSkinSmoothingCompositingFilterFragmentShaderString_300, yuvProcessor)); + vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, simpleTwoTextureVertexVideoShaderCode); + fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, String.format(Locale.US, HDRHighpassSkinSmoothingCompositingFilterFragmentShaderString, hdrProcessor)); } else { vertexShader = fragmentShader = 0; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FolderBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FolderBottomSheet.java index a4a4bce6fa..2e638821d2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/FolderBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FolderBottomSheet.java @@ -916,7 +916,7 @@ protected CharSequence getTitle() { } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { return new RecyclerListView.SelectionAdapter() { private static final int diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCreateSpan.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCreateSpan.java index cdf8e9ab14..78941bff6d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCreateSpan.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCreateSpan.java @@ -37,11 +37,13 @@ import org.telegram.messenger.UserObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Cells.GroupCreateUserCell; public class GroupCreateSpan extends View { private long uid; private String key; + public boolean isFlag; private static TextPaint textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); private static Paint backPaint = new Paint(Paint.ANTI_ALIAS_FLAG); private Drawable deleteDrawable; @@ -80,6 +82,7 @@ public GroupCreateSpan(Context context, Object object, ContactsController.Contac super(context); this.resourcesProvider = resourcesProvider; this.small = small; + isFlag = false; currentContact = contact; deleteDrawable = getResources().getDrawable(R.drawable.delete); @@ -143,6 +146,11 @@ public GroupCreateSpan(Context context, Object object, ContactsController.Contac uid = Long.MIN_VALUE + 9; firstName = LocaleController.getString(R.string.FilterNewChats); break; + case "premium": + isFlag = true; + avatarDrawable.setColor(Theme.getColor(Theme.key_premiumGradientBackground2, resourcesProvider)); + firstName = LocaleController.getString(R.string.PrivacyPremium); + break; case "archived": default: avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_ARCHIVED); @@ -228,7 +236,11 @@ public GroupCreateSpan(Context context, Object object, ContactsController.Contac textWidth = (int) Math.ceil(nameLayout.getLineWidth(0)); textX = -nameLayout.getLineLeft(0); } - imageReceiver.setImage(imageLocation, "50_50", avatarDrawable, 0, null, imageParent, 1); + if (object instanceof String && "premium".equals((String) object)) { + imageReceiver.setImageBitmap(GroupCreateUserCell.makePremiumUsersDrawable(getContext(), true)); + } else { + imageReceiver.setImage(imageLocation, "50_50", avatarDrawable, 0, null, imageParent, 1); + } updateColors(); NotificationCenter.listenEmojiLoading(this); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java index 97c5a7831a..5277b0e4a0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java @@ -179,7 +179,6 @@ public class InstantCameraView extends FrameLayout implements NotificationCenter private TextureView textureView; private BackupImageView textureOverlayView; private final boolean useCamera2 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && SharedConfig.useCamera2; - private final boolean supportHotSwap = useCamera2 && DualCameraView.dualAvailableStatic(ApplicationLoader.applicationContext); private CameraSession cameraSession; private boolean bothCameras; private Camera2Session[] camera2Sessions = new Camera2Session[2]; @@ -703,7 +702,7 @@ public boolean delete() { } if (useCamera2) { - bothCameras = DualCameraView.dualAvailableStatic(getContext()); + bothCameras = DualCameraView.roundDualAvailableStatic(getContext()); if (bothCameras) { for (int a = 0; a < 2; ++a) { if (camera2Sessions[a] == null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ItemOptions.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ItemOptions.java index 712d3b50de..a04a7dbe14 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ItemOptions.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ItemOptions.java @@ -254,7 +254,7 @@ public ItemOptions putCheck() { } ActionBarMenuSubItem lastSubItem = (ActionBarMenuSubItem) lastChild; lastSubItem.setRightIcon(R.drawable.msg_text_check); - lastSubItem.getRightIcon().setColorFilter(0xffffffff, PorterDuff.Mode.MULTIPLY); + lastSubItem.getRightIcon().setColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteBlueIcon, resourcesProvider), PorterDuff.Mode.MULTIPLY); lastSubItem.getRightIcon().setScaleX(.85f); lastSubItem.getRightIcon().setScaleY(.85f); return this; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/LayoutHelper.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/LayoutHelper.java index 98b95b95d8..864a9e5174 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/LayoutHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/LayoutHelper.java @@ -175,6 +175,13 @@ public static LinearLayout.LayoutParams createLinear(int width, int height, int return layoutParams; } + public static LinearLayout.LayoutParams createLinear(int width, float height, int gravity, int leftMargin, int topMargin, int rightMargin, int bottomMargin) { + LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(getSize(width), getSize(height)); + layoutParams.setMargins(AndroidUtilities.dp(leftMargin), AndroidUtilities.dp(topMargin), AndroidUtilities.dp(rightMargin), AndroidUtilities.dp(bottomMargin)); + layoutParams.gravity = gravity; + return layoutParams; + } + public static LinearLayout.LayoutParams createLinear(int width, int height, float leftMargin, float topMargin, float rightMargin, float bottomMargin) { LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(getSize(width), getSize(height)); layoutParams.setMargins(AndroidUtilities.dp(leftMargin), AndroidUtilities.dp(topMargin), AndroidUtilities.dp(rightMargin), AndroidUtilities.dp(bottomMargin)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/LinkSpanDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/LinkSpanDrawable.java index 8028a10b9d..a474b04074 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/LinkSpanDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/LinkSpanDrawable.java @@ -1,5 +1,7 @@ package org.telegram.ui.Components; +import static org.telegram.messenger.AndroidUtilities.dp; + import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; @@ -15,6 +17,7 @@ import android.text.style.CharacterStyle; import android.text.style.ClickableSpan; import android.util.Pair; +import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; @@ -23,6 +26,7 @@ import androidx.core.graphics.ColorUtils; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.FileLog; import org.telegram.messenger.LiteMode; import org.telegram.messenger.SharedConfig; import org.telegram.ui.ActionBar.SimpleTextView; @@ -125,7 +129,7 @@ public S getSpan() { } public boolean draw(Canvas canvas) { - final int radius = isLite ? 0 : AndroidUtilities.dp(CORNER_RADIUS_DP); + final int radius = isLite ? 0 : dp(CORNER_RADIUS_DP); boolean cornerRadiusUpdate = cornerRadius != radius; if (mSelectionPaint == null) { mSelectionPaint = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -205,14 +209,14 @@ public boolean draw(Canvas canvas) { } mSelectionPaint.setAlpha((int) (mSelectionAlpha * selectionAlpha * Math.min(1, pressT * 5f) * (1f - releaseT))); - mSelectionPaint.setStrokeWidth(Math.min(1, 1f - longPress) * AndroidUtilities.dp(5)); + mSelectionPaint.setStrokeWidth(Math.min(1, 1f - longPress) * dp(5)); for (int i = 0; i < mPathesCount; ++i) { mPathes.get(i).closeRects(); canvas.drawPath(mPathes.get(i), mSelectionPaint); } mRipplePaint.setAlpha((int) (mRippleAlpha * rippleAlpha * (1f - releaseT))); - mRipplePaint.setStrokeWidth(Math.min(1, 1f - longPress) * AndroidUtilities.dp(5)); + mRipplePaint.setStrokeWidth(Math.min(1, 1f - longPress) * dp(5)); if (pressT < 1f) { float r = pressT * mMaxRadius; canvas.save(); @@ -495,9 +499,11 @@ public interface OnLinkPress { } private boolean isCustomLinkCollector; - private LinkCollector links; + private final LinkCollector links; private Theme.ResourcesProvider resourcesProvider; + AnimatedEmojiSpan.EmojiGroupedSpans stack; + private LinkSpanDrawable pressedLink; private OnLinkPress onPressListener; @@ -507,6 +513,30 @@ public interface OnLinkPress { private boolean disablePaddingsOffsetX; private boolean disablePaddingsOffsetY; + private CharacterStyle currentLinkLoading; + public void setLoading(CharacterStyle span) { + if (currentLinkLoading != span) { + links.clearLoading(true); + currentLinkLoading = span; + LoadingDrawable drawable = LinkSpanDrawable.LinkCollector.makeLoading(getLayout(), span, getPaddingTop()); + if (drawable != null) { + final int color = processColor(Theme.getColor(Theme.key_chat_linkSelectBackground, resourcesProvider)); + drawable.setColors( + Theme.multAlpha(color, .8f), + Theme.multAlpha(color, 1.3f), + Theme.multAlpha(color, 1f), + Theme.multAlpha(color, 4f) + ); + drawable.strokePaint.setStrokeWidth(AndroidUtilities.dpf2(1.25f)); + links.addLoading(drawable); + } + } + } + + protected int processColor(int color) { + return color; + } + public LinksTextView(Context context) { this(context, null); } @@ -617,6 +647,8 @@ public boolean onTouchEvent(MotionEvent event) { return pressedLink != null || super.onTouchEvent(event); } + private boolean loggedError = false; + @Override protected void onDraw(Canvas canvas) { if (!isCustomLinkCollector) { @@ -624,13 +656,54 @@ protected void onDraw(Canvas canvas) { if (!disablePaddingsOffset) { canvas.translate(disablePaddingsOffsetX ? 0 : getPaddingLeft(), disablePaddingsOffsetY ? 0 : getPaddingTop()); } - if (links.draw(canvas)) { + if (links != null && links.draw(canvas)) { invalidate(); } canvas.restore(); } + boolean restore = false; + try { + Layout layout = getLayout(); + float offset = (getGravity() & Gravity.CENTER_VERTICAL) != 0 && layout != null ? getPaddingTop() + (getHeight() - getPaddingTop() - getPaddingBottom() - layout.getHeight()) / 2f : 0; + if (offset != 0 || getPaddingLeft() != 0) { + canvas.save(); + restore = true; + canvas.translate(getPaddingLeft(), offset); + } + AnimatedEmojiSpan.drawAnimatedEmojis(canvas, layout, stack, 0, null, 0, 0, 0, 1f); + } catch (Exception e) { + if (!loggedError) FileLog.e(e, true); + loggedError = true; + } + if (restore) { + canvas.restore(); + } super.onDraw(canvas); } + + @Override + public void setText(CharSequence text, TextView.BufferType type) { + super.setText(text, type); + stack = AnimatedEmojiSpan.update(AnimatedEmojiDrawable.CACHE_TYPE_MESSAGES, this, stack, getLayout()); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + stack = AnimatedEmojiSpan.update(AnimatedEmojiDrawable.CACHE_TYPE_MESSAGES, this, stack, getLayout()); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + stack = AnimatedEmojiSpan.update(AnimatedEmojiDrawable.CACHE_TYPE_MESSAGES, this, stack, getLayout()); + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + AnimatedEmojiSpan.release(this, stack); + } } public static class ClickableSmallTextView extends SimpleTextView { @@ -656,7 +729,7 @@ protected void onDraw(Canvas canvas) { if (isClickable()) { AndroidUtilities.rectTmp.set(0, 0, getPaddingLeft() + getTextWidth() + getPaddingRight(), getHeight()); linkBackgroundPaint.setColor(getLinkColor()); - canvas.drawRoundRect(AndroidUtilities.rectTmp, AndroidUtilities.dp(CORNER_RADIUS_DP), AndroidUtilities.dp(CORNER_RADIUS_DP), linkBackgroundPaint); + canvas.drawRoundRect(AndroidUtilities.rectTmp, dp(CORNER_RADIUS_DP), dp(CORNER_RADIUS_DP), linkBackgroundPaint); } super.onDraw(canvas); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ListView/AdapterWithDiffUtils.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ListView/AdapterWithDiffUtils.java index 7aef60ab8b..9545d9e9a9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ListView/AdapterWithDiffUtils.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ListView/AdapterWithDiffUtils.java @@ -21,7 +21,7 @@ public void setItems(ArrayList oldItems, ArrayList getThemeDescriptions() { @Override public boolean isLightStatusBar() { - if (storyViewer != null && storyViewer.isShown()) { + if (getLastStoryViewer() != null && getLastStoryViewer().isShown()) { return false; } int color = Theme.getColor(Theme.key_windowBackgroundWhite); @@ -1088,11 +1088,9 @@ public StoriesTabsView(Context context, Theme.ResourcesProvider resourcesProvide @Override public Tab[] createTabs() { Tab[] tabs = new Tab[] { - new Tab(0, R.raw.msg_stories_saved, LocaleController.getString("ProfileMyStoriesTab", R.string.ProfileMyStoriesTab)), - new Tab(1, R.raw.msg_stories_archive, LocaleController.getString("ProfileStoriesArchiveTab", R.string.ProfileStoriesArchiveTab)) + new Tab(0, R.raw.msg_stories_saved, 20, 40, LocaleController.getString("ProfileMyStoriesTab", R.string.ProfileMyStoriesTab)), + new Tab(1, R.raw.msg_stories_archive, 0, 0, LocaleController.getString("ProfileStoriesArchiveTab", R.string.ProfileStoriesArchiveTab)) }; - tabs[0].customEndFrameMid = 20; - tabs[0].customEndFrameEnd = 40; return tabs; } } @@ -1100,8 +1098,8 @@ public Tab[] createTabs() { @Override public int getNavigationBarColor() { int color = getThemedColor(Theme.key_windowBackgroundWhite); - if (storyViewer != null && storyViewer.attachedToParent()) { - return storyViewer.getNavigationBarColor(color); + if (getLastStoryViewer() != null && getLastStoryViewer().attachedToParent()) { + return getLastStoryViewer().getNavigationBarColor(color); } return color; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/MessageContainsEmojiButton.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/MessageContainsEmojiButton.java index 810bc0b267..8189419002 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/MessageContainsEmojiButton.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/MessageContainsEmojiButton.java @@ -58,6 +58,7 @@ public class MessageContainsEmojiButton extends FrameLayout implements Notificat public final static int REACTIONS_TYPE = 1; public final static int EMOJI_STICKER_TYPE = 2; public final static int SINGLE_REACTION_TYPE = 3; + public final static int STICKERS_BOT_TYPE = 4; int type; private class BoldAndAccent extends CharacterStyle { @@ -162,6 +163,13 @@ public void draw(@NonNull Canvas canvas, CharSequence charSequence, int start, i loadingDrawable.setRadiiDp(4); } } + } else { + if (type == STICKERS_BOT_TYPE) { + mainText = AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.StickersCheckStickersBotForMoreOptions), + Theme.key_chat_messageLinkIn, AndroidUtilities.REPLACING_TAG_TYPE_LINKBOLD, + null, + resourcesProvider); + } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/NumberPicker.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/NumberPicker.java index b12e5a70d7..e592d6f0c1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/NumberPicker.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/NumberPicker.java @@ -675,6 +675,9 @@ public void setMinValue(int minValue) { updateInputTextView(); tryComputeMaxWidth(); invalidate(); + if (mScrollState == OnScrollListener.SCROLL_STATE_IDLE && mOnScrollListener != null) { + mOnScrollListener.onScrollStateChange(this, OnScrollListener.SCROLL_STATE_IDLE); + } } public int getMaxValue() { @@ -702,6 +705,9 @@ public void setMaxValue(int maxValue) { updateInputTextView(); tryComputeMaxWidth(); invalidate(); + if (mScrollState == OnScrollListener.SCROLL_STATE_IDLE && mOnScrollListener != null) { + mOnScrollListener.onScrollStateChange(this, OnScrollListener.SCROLL_STATE_IDLE); + } } public String[] getDisplayedValues() { @@ -894,16 +900,17 @@ private void setValueInternal(int current, boolean notifyChange) { int previous = mValue; mValue = mFantomValue = current; updateInputTextView(); - if (Math.abs(previous - current) > 0.9f && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + if (Math.abs(previous - current) > 0.9f) { + AndroidUtilities.vibrateCursor(this); } if (notifyChange) { notifyChange(previous, current); } initializeSelectorWheelIndices(); invalidate(); + if (mScrollState == OnScrollListener.SCROLL_STATE_IDLE && mOnScrollListener != null) { + mOnScrollListener.onScrollStateChange(this, OnScrollListener.SCROLL_STATE_IDLE); + } } protected void changeValueByOne(boolean increment) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/OutlineTextContainerView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/OutlineTextContainerView.java index 2a17821e79..56b83596aa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/OutlineTextContainerView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/OutlineTextContainerView.java @@ -55,8 +55,16 @@ public class OutlineTextContainerView extends FrameLayout { private EditText attachedEditText; private boolean forceUseCenter; + private final Theme.ResourcesProvider resourcesProvider; + public OutlineTextContainerView(Context context) { + this(context, null); + } + + public OutlineTextContainerView(Context context, Theme.ResourcesProvider resourcesProvider) { super(context); + this.resourcesProvider = resourcesProvider; + setWillNotDraw(false); textPaint.setTextSize(AndroidUtilities.dp(16)); outlinePaint.setStyle(Paint.Style.STROKE); @@ -92,10 +100,10 @@ private void setColor(int color) { } public void updateColor() { - int textSelectionColor = ColorUtils.blendARGB(Theme.getColor(Theme.key_windowBackgroundWhiteHintText), Theme.getColor(Theme.key_windowBackgroundWhiteValueText), forceUseCenter ? 0f : selectionProgress); - textPaint.setColor(ColorUtils.blendARGB(textSelectionColor, Theme.getColor(Theme.key_text_RedBold), errorProgress)); - int selectionColor = ColorUtils.blendARGB(Theme.getColor(Theme.key_windowBackgroundWhiteInputField), Theme.getColor(Theme.key_windowBackgroundWhiteInputFieldActivated), forceUseCenter ? 0f : selectionProgress); - setColor(ColorUtils.blendARGB(selectionColor, Theme.getColor(Theme.key_text_RedBold), errorProgress)); + int textSelectionColor = ColorUtils.blendARGB(Theme.getColor(Theme.key_windowBackgroundWhiteHintText, resourcesProvider), Theme.getColor(Theme.key_windowBackgroundWhiteValueText, resourcesProvider), forceUseCenter ? 0f : selectionProgress); + textPaint.setColor(ColorUtils.blendARGB(textSelectionColor, Theme.getColor(Theme.key_text_RedBold, resourcesProvider), errorProgress)); + int selectionColor = ColorUtils.blendARGB(Theme.getColor(Theme.key_windowBackgroundWhiteInputField, resourcesProvider), Theme.getColor(Theme.key_windowBackgroundWhiteInputFieldActivated, resourcesProvider), forceUseCenter ? 0f : selectionProgress); + setColor(ColorUtils.blendARGB(selectionColor, Theme.getColor(Theme.key_text_RedBold, resourcesProvider), errorProgress)); } public void animateSelection(float newValue) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LPhotoPaintView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LPhotoPaintView.java index bd0a385ae4..154fad652e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LPhotoPaintView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LPhotoPaintView.java @@ -140,7 +140,7 @@ public class LPhotoPaintView extends SizeNotifierFrameLayoutPhoto implements IPh private RenderView renderView; private View renderInputView; private FrameLayout selectionContainerView; - private EntitiesContainerView entitiesView; + public EntitiesContainerView entitiesView; private ThanosEffect thanosEffect; private FrameLayout topLayout; public FrameLayout bottomLayout; @@ -1987,7 +1987,7 @@ public void maybeShowDismissalAlert(PhotoViewer photoViewer, Activity parentActi return; } - if (editingText) { + if (editingText && currentEntityView != null) { selectEntity(null); return; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerCutOutBtn.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerCutOutBtn.java new file mode 100644 index 0000000000..9963dec733 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerCutOutBtn.java @@ -0,0 +1,109 @@ +package org.telegram.ui.Components.Paint.Views; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.RectF; +import android.os.Build; +import android.text.SpannableStringBuilder; +import android.view.View; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.R; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.BlurringShader; +import org.telegram.ui.Components.ColoredImageSpan; +import org.telegram.ui.Stories.recorder.ButtonWithCounterView; + +@SuppressLint("ViewConstructor") +public class StickerCutOutBtn extends ButtonWithCounterView { + private static final int STATE_CUT_OUT = 0; + private static final int STATE_UNDO_CAT = 1; + private static final int STATE_CANCEL = 2; + + protected final BlurringShader.StoryBlurDrawer blurDrawer; + protected final RectF bounds = new RectF(); + private int state; + private final StickerMakerView stickerMakerView; + + public StickerCutOutBtn(StickerMakerView stickerMakerView, Context context, Theme.ResourcesProvider resourcesProvider, BlurringShader.BlurManager blurManager) { + super(context, false, resourcesProvider); + this.stickerMakerView = stickerMakerView; + blurDrawer = new BlurringShader.StoryBlurDrawer(blurManager, this, BlurringShader.StoryBlurDrawer.BLUR_TYPE_BACKGROUND, true); + setWillNotDraw(false); + setTextColor(Color.WHITE); + setFlickeringLoading(true); + text.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + setForeground(Theme.createRadSelectorDrawable(Theme.getColor(Theme.key_listSelector, resourcesProvider), 8, 8)); + } + + @Override + public void setAlpha(float alpha) { + if (!stickerMakerView.hasSegmentedBitmap()) { + alpha = 0f; + } + super.setAlpha(alpha); + } + + @Override + protected void onDraw(Canvas canvas) { + bounds.set(0, 0, getMeasuredWidth(), getMeasuredHeight()); + super.onDraw(canvas); + } + + @Override + public void setVisibility(int visibility) { + if (Build.VERSION.SDK_INT < 24) { + super.setVisibility(View.GONE); + } else { + super.setVisibility(visibility); + } + } + + public void setCutOutState(boolean animated) { + state = STATE_CUT_OUT; + SpannableStringBuilder cutOutBtnText = new SpannableStringBuilder("d"); + ColoredImageSpan coloredImageSpan = new ColoredImageSpan(R.drawable.media_magic_cut); + coloredImageSpan.setSize(dp(22)); + coloredImageSpan.setTranslateX(dp(-2)); + cutOutBtnText.setSpan(coloredImageSpan, 0, 1, 0); + cutOutBtnText.append(" ").append(LocaleController.getString(R.string.SegmentationCutObject)); + setText(cutOutBtnText, animated); + } + + public void setUndoCutState(boolean animated) { + state = STATE_UNDO_CAT; + SpannableStringBuilder cutOutBtnText = new SpannableStringBuilder("d"); + ColoredImageSpan coloredImageSpan = new ColoredImageSpan(R.drawable.photo_undo2); + coloredImageSpan.setSize(dp(20)); + coloredImageSpan.setTranslateX(dp(-3)); + cutOutBtnText.setSpan(coloredImageSpan, 0, 1, 0); + cutOutBtnText.append(" ").append(LocaleController.getString(R.string.SegmentationUndoCutOut)); + setText(cutOutBtnText, animated); + } + + public void setCancelState(boolean animated) { + state = STATE_CANCEL; + setText(LocaleController.getString(R.string.Cancel), animated); + } + + public boolean isCutOutState() { + return state == STATE_CUT_OUT; + } + + public boolean isCancelState() { + return state == STATE_CANCEL; + } + + public void clean() { + setCutOutState(false); + } + + public void invalidateBlur() { + invalidate(); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerMakerBackgroundView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerMakerBackgroundView.java new file mode 100644 index 0000000000..a2727d6c61 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerMakerBackgroundView.java @@ -0,0 +1,60 @@ +package org.telegram.ui.Components.Paint.Views; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Path; +import android.view.View; + +import org.telegram.messenger.AndroidUtilities; + +public class StickerMakerBackgroundView extends View { + private final Paint backgroundPaint = new Paint(); + private final Path path = new Path(); + + public StickerMakerBackgroundView(Context context) { + super(context); + backgroundPaint.setColor(Color.WHITE); + backgroundPaint.setAlpha(40); + setLayerType(LAYER_TYPE_HARDWARE, null); + } + + @Override + protected void onDraw(Canvas canvas) { + float inset = dp(10); + float width = getMeasuredWidth() - inset * 2; + float height = getMeasuredHeight() - inset * 2; + + canvas.save(); + AndroidUtilities.rectTmp.set(inset, inset, inset + width, inset + width); + AndroidUtilities.rectTmp.offset(0, (height - AndroidUtilities.rectTmp.height()) / 2); + float rx = width / 7f; + path.rewind(); + path.addRoundRect(AndroidUtilities.rectTmp, rx, rx, Path.Direction.CW); + canvas.clipPath(path); + + int singleRectSize = dp(10); + canvas.save(); + canvas.translate(AndroidUtilities.rectTmp.left, AndroidUtilities.rectTmp.top); + + int rowCount = (int) (AndroidUtilities.rectTmp.width() / singleRectSize) + 1; + int columCount = (int) (AndroidUtilities.rectTmp.height() / singleRectSize) + 1; + + for (int c = 0; c < columCount; c++) { + canvas.save(); + for (int r = 0; r < rowCount; r++) { + if ((r % 2 == 0 && c % 2 == 0) || (r % 2 != 0 && c % 2 != 0)) { + canvas.drawRect(0, 0, singleRectSize, singleRectSize, backgroundPaint); + } + canvas.translate(singleRectSize, 0); + } + canvas.restore(); + canvas.translate(0, singleRectSize); + } + canvas.restore(); + canvas.restore(); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerMakerView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerMakerView.java new file mode 100644 index 0000000000..fde6b01a39 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/StickerMakerView.java @@ -0,0 +1,1067 @@ +package org.telegram.ui.Components.Paint.Views; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.animation.ValueAnimator; +import android.annotation.SuppressLint; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.BlurMaskFilter; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.CornerPathEffect; +import android.graphics.DashPathEffect; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.Path; +import android.graphics.PathMeasure; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; +import android.graphics.Rect; +import android.graphics.RectF; +import android.os.Build; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.animation.LinearInterpolator; +import android.widget.FrameLayout; +import android.widget.TextView; + +import androidx.annotation.Nullable; + +import com.google.mlkit.common.MlKitException; +import com.google.mlkit.vision.common.InputImage; +import com.google.mlkit.vision.segmentation.subject.Subject; +import com.google.mlkit.vision.segmentation.subject.SubjectSegmentation; +import com.google.mlkit.vision.segmentation.subject.SubjectSegmenter; +import com.google.mlkit.vision.segmentation.subject.SubjectSegmenterOptions; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.FileLoader; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.ImageReceiver; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MediaController; +import org.telegram.messenger.MediaDataController; +import org.telegram.messenger.MessageObject; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.messenger.UserConfig; +import org.telegram.messenger.Utilities; +import org.telegram.messenger.VideoEditedInfo; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.AnimatedFloat; +import org.telegram.ui.Components.BulletinFactory; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.ThanosEffect; +import org.telegram.ui.Stories.DarkThemeResourceProvider; +import org.telegram.ui.Stories.recorder.StoryEntry; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; + +@SuppressLint("ViewConstructor") +public class StickerMakerView extends FrameLayout implements NotificationCenter.NotificationCenterDelegate { + + public int currentAccount = -1; + private final AnimatedFloat segmentBorderAlpha = new AnimatedFloat(0, (View) null, 0, 420, CubicBezierInterpolator.EASE_OUT_QUINT); + private final Paint dashPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + private final Paint bgPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + private final Paint borderPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + private final Paint segmentBorderPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + private final PathMeasure bordersPathMeasure = new PathMeasure(); + private final Path bgPath = new Path(); + private final Path areaPath = new Path(); + private final Path screenPath = new Path(); + private final Path dashPath = new Path(); + private volatile boolean segmentingLoading; + private volatile boolean segmentingLoaded; + private SegmentedObject selectedObject; + public SegmentedObject[] objects; + private volatile Bitmap sourceBitmap; + private Bitmap filteredBitmap; + private boolean isSegmentedState; + private final TextView actionTextView; + private ValueAnimator bordersAnimator; + private ValueAnimator bordersEnterAnimator; + private float segmentBorderImageWidth, segmentBorderImageHeight; + private float bordersAnimatorValueStart, bordersAnimatorValue; + private float bordersEnterAnimatorValue; + private ThanosEffect thanosEffect; + private int containerWidth; + private int containerHeight; + public boolean isThanosInProgress; + private StickerUploader stickerUploader; + private AlertDialog loadingDialog; + private final Theme.ResourcesProvider resourcesProvider; + private StickerCutOutBtn stickerCutOutBtn; + + private final Matrix imageReceiverMatrix = new Matrix(); + private float imageReceiverWidth, imageReceiverHeight; + + public StickerMakerView(Context context, Theme.ResourcesProvider resourcesProvider) { + super(context); + this.resourcesProvider = resourcesProvider; + dashPaint.setColor(0xffffffff); + dashPaint.setStyle(Paint.Style.STROKE); + dashPaint.setStrokeWidth(dp(2)); + dashPaint.setStrokeCap(Paint.Cap.ROUND); + dashPaint.setPathEffect(new DashPathEffect(new float[]{dp(5), dp(10)}, .5f)); + dashPaint.setShadowLayer(AndroidUtilities.dpf2(0.75f), 0, 0, 0x50000000); + dashPaint.setAlpha(140); + + actionTextView = new TextView(context); + actionTextView.setText(LocaleController.getString(R.string.SegmentationTabToCrop)); + actionTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + actionTextView.setTextColor(Color.WHITE); + actionTextView.setAlpha(0f); + actionTextView.setScaleX(0.3f); + actionTextView.setScaleY(0.3f); + addView(actionTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); + + borderPaint.setColor(Color.WHITE); + borderPaint.setStrokeWidth(dp(3)); + borderPaint.setStyle(Paint.Style.STROKE); + borderPaint.setStrokeCap(Paint.Cap.ROUND); + borderPaint.setPathEffect(new CornerPathEffect(dp(6))); + borderPaint.setMaskFilter(new BlurMaskFilter(dp(4), BlurMaskFilter.Blur.NORMAL)); + + segmentBorderPaint.setColor(Color.WHITE); + segmentBorderPaint.setStrokeWidth(dp(3)); + segmentBorderPaint.setStyle(Paint.Style.STROKE); + segmentBorderPaint.setStrokeCap(Paint.Cap.ROUND); + segmentBorderPaint.setPathEffect(new CornerPathEffect(dp(6))); + segmentBorderPaint.setMaskFilter(new BlurMaskFilter(dp(4), BlurMaskFilter.Blur.NORMAL)); + + bgPaint.setColor(0x66000000); + setLayerType(LAYER_TYPE_HARDWARE, null); + } + + public void setStickerCutOutBtn(StickerCutOutBtn stickerCutOutBtn) { + this.stickerCutOutBtn = stickerCutOutBtn; + } + + public float getSegmentBorderImageHeight() { + return segmentBorderImageHeight; + } + + public float getSegmentBorderImageWidth() { + return segmentBorderImageWidth; + } + + public ThanosEffect getThanosEffect() { + if (!ThanosEffect.supports()) { + return null; + } + if (thanosEffect == null) { + addView(thanosEffect = new ThanosEffect(getContext(), () -> { + ThanosEffect thisThanosEffect = thanosEffect; + if (thisThanosEffect != null) { + thanosEffect = null; + removeView(thisThanosEffect); + } + }), LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + } + return thanosEffect; + } + + public class SegmentedObject { + + public AnimatedFloat select = new AnimatedFloat(0, (View) null, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); + public boolean hover; + + public int orientation; + public Bitmap image; + public Bitmap darkMaskImage; + + public RectF bounds = new RectF(); + public RectF rotatedBounds = new RectF(); + + private float borderImageWidth; + private float borderImageHeight; + + private final Path segmentBorderPath = new Path(); + private final Path partSegmentBorderPath = new Path(); + + public void drawBorders(Canvas canvas, float progress, float alpha, View parent) { + select.setParent(parent); + if (sourceBitmap == null) return; + + final float s = AndroidUtilities.lerp(1f, 1.065f, alpha) * AndroidUtilities.lerp(1f, 1.05f, select.set(hover)); + + int w, h; + if (orientation / 90 % 2 != 0) { + w = sourceBitmap.getHeight(); + h = sourceBitmap.getWidth(); + } else { + w = sourceBitmap.getWidth(); + h = sourceBitmap.getHeight(); + } + + canvas.save(); + canvas.scale(s, s, rotatedBounds.centerX() / w * borderImageWidth - borderImageWidth / 2f, rotatedBounds.centerY() / h * borderImageHeight - borderImageHeight / 2f); + + bordersPathMeasure.setPath(segmentBorderPath, false); + partSegmentBorderPath.reset(); + + float length = bordersPathMeasure.getLength(); + if (length == 0) { + return; + } + + segmentBorderPaint.setAlpha((int) (0xFF * alpha)); + borderPaint.setAlpha((int) (0x40 * alpha)); + canvas.drawPath(partSegmentBorderPath, borderPaint); + + float toPercent = progress + 0.2f; + float from = length * progress; + float to = length * toPercent; + bordersPathMeasure.getSegment(from, to, partSegmentBorderPath, true); + canvas.drawPath(partSegmentBorderPath, segmentBorderPaint); + canvas.drawPath(partSegmentBorderPath, segmentBorderPaint); + if (toPercent > 1) { + from = 0; + to = (toPercent - 1) * length; + partSegmentBorderPath.reset(); + bordersPathMeasure.setPath(segmentBorderPath, false); + bordersPathMeasure.getSegment(from, to, partSegmentBorderPath, true); + canvas.drawPath(partSegmentBorderPath, segmentBorderPaint); + canvas.drawPath(partSegmentBorderPath, segmentBorderPaint); + } + + if (image != null) { + canvas.save(); + canvas.rotate(orientation); + canvas.scale(1f / w * borderImageWidth, 1f / h * borderImageHeight); + canvas.drawBitmap(image, -sourceBitmap.getWidth() / 2f, -sourceBitmap.getHeight() / 2f, null); + canvas.restore(); + } + canvas.restore(); + } + + public void recycle() { + segmentBorderPath.reset(); + if (image != null) { + image.recycle(); + image = null; + } + if (darkMaskImage != null) { + darkMaskImage.recycle(); + darkMaskImage = null; + } + } + } + + + public void drawSegmentBorderPath(Canvas canvas, ImageReceiver imageReceiver, Matrix matrix, ViewGroup parent) { + segmentBorderAlpha.setParent(parent); + if ((bordersAnimator == null && segmentBorderAlpha.get() <= 0) || parent == null) { + return; + } + + imageReceiverWidth = imageReceiver.getImageWidth(); + imageReceiverHeight = imageReceiver.getImageHeight(); + matrix.invert(imageReceiverMatrix); + + float progress = (bordersAnimatorValueStart + bordersAnimatorValue) % 1.0f; + float alpha = segmentBorderAlpha.set(bordersAnimator == null ? 0f : 1f); + + canvas.drawColor(Theme.multAlpha(0x50000000, alpha)); + if (objects != null) { + for (SegmentedObject object : objects) { + object.drawBorders(canvas, progress, alpha, parent); + } + } + + parent.invalidate(); + } + + public void enableClippingMode(Utilities.Callback onClickListener) { + setOnClickListener(v -> { + if (objects == null || objects.length == 0 || sourceBitmap == null) { + return; + } + + SegmentedObject object = objectBehind(tx, ty); + if (object != null) { + onClickListener.run(object); + } + }); + + actionTextView.animate().cancel(); + actionTextView.animate().alpha(1f).scaleX(1f).scaleY(1f).setDuration(240).setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT).start(); + if (bordersAnimator != null) { + bordersAnimator.cancel(); + } + bordersAnimatorValueStart = bordersAnimatorValue; + bordersAnimator = ValueAnimator.ofFloat(0, 1); + bordersAnimator.addUpdateListener(animation -> { + bordersAnimatorValue = (float) animation.getAnimatedValue(); + }); + bordersAnimator.setRepeatCount(ValueAnimator.INFINITE); + bordersAnimator.setRepeatMode(ValueAnimator.RESTART); + bordersAnimator.setDuration(2400); + bordersAnimator.setInterpolator(new LinearInterpolator()); + bordersAnimator.start(); + } + + float tx, ty; + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + tx = ev.getX(); + ty = ev.getY(); + if (objects != null && bordersAnimator != null) { + SegmentedObject object = objectBehind(tx, ty); + for (int i = 0; i < objects.length; ++i) { + final boolean hover = objects[i] == object && (ev.getAction() != MotionEvent.ACTION_CANCEL && ev.getAction() != MotionEvent.ACTION_UP); + if (hover && !objects[i].hover) { + AndroidUtilities.vibrateCursor(this); + } + objects[i].hover = hover; + } + if (getParent() instanceof View) { + ((View) getParent()).invalidate(); + } + } + return super.dispatchTouchEvent(ev); + } + + public SegmentedObject objectBehind(float tx, float ty) { + float[] p = new float[] { tx, ty }; + imageReceiverMatrix.mapPoints(p); + int w, h; + if (objects[0].orientation / 90 % 2 != 0) { + w = sourceBitmap.getHeight(); + h = sourceBitmap.getWidth(); + } else { + w = sourceBitmap.getWidth(); + h = sourceBitmap.getHeight(); + } + for (int i = 0; i < objects.length; ++i) { + AndroidUtilities.rectTmp.set( + objects[i].rotatedBounds.left / w * imageReceiverWidth, + objects[i].rotatedBounds.top / h * imageReceiverHeight, + objects[i].rotatedBounds.right / w * imageReceiverWidth, + objects[i].rotatedBounds.bottom / h * imageReceiverHeight + ); + AndroidUtilities.rectTmp.offset(-imageReceiverWidth / 2f, -imageReceiverHeight / 2f); + if (AndroidUtilities.rectTmp.contains(p[0], p[1])) { + return objects[i]; + } + } + return null; + } + + public void disableClippingMode() { + segmentBorderAlpha.set(0f); + if (bordersAnimator != null) { + bordersAnimator.cancel(); + bordersAnimator = null; + } + setOnClickListener(null); + setClickable(false); + actionTextView.animate().cancel(); + actionTextView.animate().alpha(0f).scaleX(0.7f).scaleY(0.7f).setDuration(240).setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT).start(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + actionTextView.setTranslationY(getMeasuredWidth() / 2f + dp(10)); + } + + public boolean isSegmentedState() { + return isSegmentedState; + } + + public void setSegmentedState(boolean segmentedState, SegmentedObject selectedObject) { + isSegmentedState = segmentedState; + this.selectedObject = selectedObject; + } + + public Bitmap getSegmentedDarkMaskImage() { + return isSegmentedState && selectedObject != null ? selectedObject.darkMaskImage : null; + } + + public boolean hasSegmentedBitmap() { + return segmentingLoaded && objects != null && objects.length > 0; + } + + public Bitmap getSourceBitmap() { + return sourceBitmap; + } + + public Bitmap getSourceBitmap(boolean hasFilters) { + if (hasFilters && filteredBitmap != null) { + return filteredBitmap; + } + return sourceBitmap; + } + + public Bitmap getSegmentedImage(Bitmap filteredBitmap, boolean hasFilters, int orientation) { + if (selectedObject == null) { + return sourceBitmap; + } + if (hasFilters && filteredBitmap != null) { + return cutSegmentInFilteredBitmap(filteredBitmap, orientation); + } + return selectedObject.image; + } + + @Nullable + public Bitmap getThanosImage(MediaController.PhotoEntry photoEntry, int orientation) { + Bitmap filteredBitmap = photoEntry.filterPath != null ? BitmapFactory.decodeFile(photoEntry.filterPath) : getSourceBitmap(); + Bitmap paintedBitmap = BitmapFactory.decodeFile(photoEntry.paintPath); + + Bitmap result = Bitmap.createBitmap(filteredBitmap.getWidth(), filteredBitmap.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(result); + Paint maskPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); + Paint bitmapPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); + maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN)); + canvas.drawBitmap(filteredBitmap, 0, 0, bitmapPaint); + + Rect dstRect = new Rect(); + dstRect.set(0, 0, filteredBitmap.getWidth(), filteredBitmap.getHeight()); + + SegmentedObject object = selectedObject; + if (object == null && objects.length > 0) { + object = objects[0]; + } + if (object == null) + return null; + + if (object.orientation != 0 && photoEntry.isFiltered) { + Matrix matrix = new Matrix(); + matrix.postRotate(object.orientation, object.darkMaskImage.getWidth() / 2f, object.darkMaskImage.getHeight() / 2f); + if (object.orientation / 90 % 2 != 0) { + float dxy = (object.darkMaskImage.getHeight() - object.darkMaskImage.getWidth()) / 2f; + matrix.postTranslate(dxy, -dxy); + } + matrix.postScale(filteredBitmap.getWidth() / (float) object.darkMaskImage.getHeight(), filteredBitmap.getHeight() / (float) object.darkMaskImage.getWidth()); + canvas.drawBitmap(object.darkMaskImage, matrix, maskPaint); + } else { + canvas.drawBitmap(object.darkMaskImage, null, dstRect, maskPaint); + } + + if (paintedBitmap != null) { + maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT)); + if (object.orientation != 0 && !photoEntry.isFiltered) { + Matrix matrix = new Matrix(); + matrix.postRotate(-object.orientation, paintedBitmap.getWidth() / 2f, paintedBitmap.getHeight() / 2f); + if (object.orientation / 90 % 2 != 0) { + float dxy = (paintedBitmap.getHeight() - paintedBitmap.getWidth()) / 2f; + matrix.postTranslate(dxy, -dxy); + } + matrix.postScale(filteredBitmap.getWidth() / (float) paintedBitmap.getHeight(), filteredBitmap.getHeight() / (float) paintedBitmap.getWidth()); + canvas.drawBitmap(paintedBitmap, matrix, maskPaint); + } else { + canvas.drawBitmap(paintedBitmap, null, dstRect, maskPaint); + } + } + return result; + } + + @Override + protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + super.onLayout(changed, left, top, right, bottom); + + float inset = dp(10); + float width = getMeasuredWidth() - inset * 2; + float height = getMeasuredHeight() - inset * 2; + + float rx = width / 8f; + AndroidUtilities.rectTmp.set(inset, inset, inset + width, inset + width); + AndroidUtilities.rectTmp.offset(0, (height - AndroidUtilities.rectTmp.height()) / 2); + areaPath.rewind(); + areaPath.addRoundRect(AndroidUtilities.rectTmp, rx, rx, Path.Direction.CW); + + bgPath.rewind(); + bgPath.addRect(0, 0, getMeasuredWidth(), getMeasuredHeight(), Path.Direction.CW); + + screenPath.reset(); + screenPath.op(bgPath, areaPath, Path.Op.DIFFERENCE); + dashPath.rewind(); + AndroidUtilities.rectTmp.inset(dp(-1f), dp(-1f)); + dashPath.addRoundRect(AndroidUtilities.rectTmp, rx, rx, Path.Direction.CW); + } + + @Override + protected void dispatchDraw(Canvas canvas) { + super.dispatchDraw(canvas); + canvas.drawPath(screenPath, bgPaint); + canvas.drawPath(dashPath, dashPaint); + } + + private Bitmap createSmoothEdgesSegmentedImage(int x, int y, Bitmap inputBitmap) { + Bitmap srcBitmap = getSourceBitmap(); + if (inputBitmap == null || srcBitmap == null) { + return null; + } + Paint bitmapPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); + Bitmap bluredBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bluredBitmap); + canvas.drawBitmap(inputBitmap, x, y, bitmapPaint); + Utilities.stackBlurBitmap(bluredBitmap, 5); + + Bitmap resultBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.ARGB_8888); + canvas = new Canvas(resultBitmap); + canvas.drawBitmap(srcBitmap, 0, 0, bitmapPaint); + Paint maskPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); + maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN)); + canvas.drawBitmap(bluredBitmap, 0, 0, maskPaint); + Bitmap segmentedImage = resultBitmap; + bluredBitmap.recycle(); + return segmentedImage; + } + + public void segmentImage(Bitmap source, int orientation, int containerWidth, int containerHeight) { + this.containerWidth = containerWidth; + this.containerHeight = containerHeight; + if (segmentingLoaded) { + return; + } + if (segmentingLoading || source == null) return; + if (Build.VERSION.SDK_INT < 24) return; + SubjectSegmenter segmenter = SubjectSegmentation.getClient( + new SubjectSegmenterOptions.Builder() + .enableMultipleSubjects( + new SubjectSegmenterOptions.SubjectResultOptions.Builder() + .enableSubjectBitmap() + .build() + ) + .build() + ); + segmentingLoading = true; + sourceBitmap = source; + InputImage inputImage = InputImage.fromBitmap(source, orientation); + segmenter.process(inputImage) + .addOnSuccessListener(result -> { + if (sourceBitmap == null) return; + final ArrayList finalObjects = new ArrayList<>(); + Utilities.themeQueue.postRunnable(() -> { + if (sourceBitmap == null) return; + List subjects = result.getSubjects(); + Matrix matrix = new Matrix(); + matrix.postScale(1f / sourceBitmap.getWidth(), 1f / sourceBitmap.getHeight()); + matrix.postTranslate(-.5f, -.5f); + matrix.postRotate(orientation); + matrix.postTranslate(.5f, .5f); + if (orientation / 90 % 2 != 0) { + matrix.postScale(sourceBitmap.getHeight(), sourceBitmap.getWidth()); + } else { + matrix.postScale(sourceBitmap.getWidth(), sourceBitmap.getHeight()); + } + for (int i = 0; i < subjects.size(); ++i) { + Subject subject = subjects.get(i); + SegmentedObject o = new SegmentedObject(); + o.bounds.set(subject.getStartX(), subject.getStartY(), subject.getStartX() + subject.getWidth(), subject.getStartY() + subject.getHeight()); + o.rotatedBounds.set(o.bounds); + matrix.mapRect(o.rotatedBounds); + o.orientation = orientation; + o.image = createSmoothEdgesSegmentedImage(subject.getStartX(), subject.getStartY(), subject.getBitmap()); + if (o.image == null) continue; + + o.darkMaskImage = Bitmap.createBitmap(o.image.getWidth(), o.image.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(o.darkMaskImage); + canvas.drawColor(Color.BLACK); + Paint maskPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); + maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT)); + canvas.drawBitmap(o.image, 0, 0, maskPaint); + + createSegmentImagePath(o, containerWidth, containerHeight); + segmentBorderImageWidth = o.borderImageWidth; + segmentBorderImageHeight = o.borderImageHeight; + + finalObjects.add(o); + } + selectedObject = null; + + segmentingLoaded = true; + segmentingLoading = false; + AndroidUtilities.runOnUIThread(() -> { + objects = finalObjects.toArray(new SegmentedObject[1]); + if (objects.length > 0) { + stickerCutOutBtn.setScaleX(0.3f); + stickerCutOutBtn.setScaleY(0.3f); + stickerCutOutBtn.setAlpha(0f); + stickerCutOutBtn.animate().alpha(1f).scaleX(1f).scaleY(1f).setDuration(250).setInterpolator(CubicBezierInterpolator.DEFAULT).start(); + } + }); + + }); + }) + .addOnFailureListener(error -> { + segmentingLoading = false; + FileLog.e(error); + if (isWaitingMlKitError(error) && isAttachedToWindow()) { + AndroidUtilities.runOnUIThread(() -> segmentImage(source, orientation, containerWidth, containerHeight), 2000); + } else { + segmentingLoaded = true; + } + }); + } + + private void createSegmentImagePath(SegmentedObject object, int containerWidth, int containerHeight) { + int imageWidth = object.image.getWidth(); + int imageHeight = object.image.getHeight(); + int maxImageSize = Math.max(imageWidth, imageHeight); + float scaleFactor = maxImageSize / 256f; + + if (object.orientation / 90 % 2 != 0) { + imageWidth = object.image.getHeight(); + imageHeight = object.image.getWidth(); + } + + Bitmap bitmap = Bitmap.createBitmap((int) (imageWidth / scaleFactor), (int) (imageHeight / scaleFactor), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + RectF rectF = new RectF(); + rectF.set(0, 0, bitmap.getWidth(), bitmap.getHeight()); + if (object.orientation != 0) { + Matrix matrix = new Matrix(); + matrix.postRotate(object.orientation, object.image.getWidth() / 2f, object.image.getHeight() / 2f); + if (object.orientation / 90 % 2 != 0) { + float dxy = (object.image.getHeight() - object.image.getWidth()) / 2f; + matrix.postTranslate(dxy, -dxy); + } + matrix.postScale(rectF.width() / imageWidth, rectF.height() / imageHeight); + canvas.drawBitmap(object.image, matrix, new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG)); + } else { + canvas.drawBitmap(object.image, null, rectF, new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG)); + } + + int[] pixels = new int[bitmap.getWidth() * bitmap.getHeight()]; + bitmap.getPixels(pixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight()); + + ArrayList leftPoints = new ArrayList<>(); + ArrayList rightPoints = new ArrayList<>(); + Point leftPoint = null; + Point rightPoint = null; + + scaleFactor = containerWidth / (float) bitmap.getWidth(); + for (int i = 0; i < pixels.length; i++) { + int y = i / bitmap.getWidth(); + int x = i - y * bitmap.getWidth(); + + boolean hasColor = pixels[i] != 0; + if (pixels[i] == 0) { + boolean hasLeft = i - 1 >= 0; + boolean hasRight = i + 1 < pixels.length; + if (hasLeft && pixels[i - 1] != 0) { + rightPoint = new Point(x, y, scaleFactor); + } + if (leftPoint == null && hasRight && pixels[i + 1] != 0) { + leftPoint = new Point(x, y, scaleFactor); + } + } + boolean isLastPixelInX = x == bitmap.getWidth() - 1; + boolean isFirstPixelInX = x == 0; + if (isLastPixelInX) { + if (hasColor) { + rightPoint = new Point(x, y, scaleFactor); + } + if (leftPoint != null) leftPoints.add(leftPoint); + if (rightPoint != null) rightPoints.add(rightPoint); + leftPoint = null; + rightPoint = null; + } + if (isFirstPixelInX) { + if (hasColor) { + leftPoint = new Point(x, y, scaleFactor); + } + } + } + + ArrayList topPoints = new ArrayList<>(); + ArrayList bottomPoints = new ArrayList<>(); + Point topPoint = null; + Point bottomPoint = null; + for (int i = 0; i < pixels.length; i++) { + int x = i / bitmap.getHeight(); + int y = i - x * bitmap.getHeight(); + boolean hasColor = pixels[x + y * bitmap.getWidth()] != 0; + if (!hasColor) { + int topPos = x + (y - 1) * bitmap.getWidth(); + int bottomPos = x + (y + 1) * bitmap.getWidth(); + boolean hasTop = topPos >= 0; + boolean hasBottom = bottomPos < pixels.length; + if (hasTop && pixels[topPos] != 0) { + bottomPoint = new Point(x, y, scaleFactor); + } + if (topPoint == null && hasBottom && pixels[bottomPos] != 0) { + topPoint = new Point(x, y, scaleFactor); + } + } + boolean isLastPixelInY = y == bitmap.getHeight() - 1; + boolean isFirstPixelInY = y == 0; + if (isLastPixelInY) { + if (hasColor) { + bottomPoint = new Point(x, y, scaleFactor); + } + if (topPoint != null) topPoints.add(topPoint); + if (bottomPoint != null) bottomPoints.add(bottomPoint); + topPoint = null; + bottomPoint = null; + } + if (isFirstPixelInY) { + if (hasColor) { + topPoint = new Point(x, y, scaleFactor); + } + } + } + + HashSet topBottomPointsSet = new LinkedHashSet<>(); + HashSet leftRightPointsSet = new LinkedHashSet<>(); + Collections.reverse(rightPoints); + Collections.reverse(topPoints); + + leftRightPointsSet.addAll(leftPoints); + leftRightPointsSet.addAll(rightPoints); + + topBottomPointsSet.addAll(bottomPoints); + topBottomPointsSet.addAll(topPoints); + + List topBottomPointsList = new ArrayList<>(topBottomPointsSet); + List leftRightPointsList = new ArrayList<>(leftRightPointsSet); + + Path path1 = new Path(); + for (int i = 0; i < leftRightPointsList.size(); i += 2) { + Point point = leftRightPointsList.get(i); + if (path1.isEmpty()) { + path1.moveTo(point.x, point.y); + } else { + path1.lineTo(point.x, point.y); + } + } + + Path path2 = new Path(); + for (int i = 0; i < topBottomPointsList.size(); i += 2) { + Point point = topBottomPointsList.get(i); + if (path2.isEmpty()) { + path2.moveTo(point.x, point.y); + } else { + path2.lineTo(point.x, point.y); + } + } + + object.segmentBorderPath.reset(); + object.segmentBorderPath.op(path1, path2, Path.Op.INTERSECT); + scaleFactor = Math.min( + containerWidth / (float) imageWidth, + containerHeight / (float) imageHeight + ); + object.borderImageWidth = imageWidth * scaleFactor; + object.borderImageHeight = imageHeight * scaleFactor; + object.segmentBorderPath.offset(-object.borderImageWidth / 2f, -object.borderImageHeight / 2f); + } + + public Bitmap cutSegmentInFilteredBitmap(Bitmap filteredBitmap, int orientation) { + if (selectedObject == null) { + return filteredBitmap; + } + this.filteredBitmap = filteredBitmap; + if (selectedObject.darkMaskImage == null || !isSegmentedState) { + return filteredBitmap; + } + Bitmap result = Bitmap.createBitmap(filteredBitmap.getWidth(), filteredBitmap.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(result); + Paint maskPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); + Paint bitmapPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); + maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT)); + canvas.drawBitmap(filteredBitmap, 0, 0, bitmapPaint); + Rect dstRect = new Rect(); + dstRect.set(0, 0, filteredBitmap.getWidth(), filteredBitmap.getHeight()); + if (selectedObject.orientation != 0) { + Matrix matrix = new Matrix(); + matrix.postRotate(selectedObject.orientation, selectedObject.darkMaskImage.getWidth() / 2f, selectedObject.darkMaskImage.getHeight() / 2f); + if (selectedObject.orientation / 90 % 2 != 0) { + float dxy = (selectedObject.image.getHeight() - selectedObject.image.getWidth()) / 2f; + matrix.postTranslate(dxy, -dxy); + } + matrix.postScale(filteredBitmap.getWidth() / (float) selectedObject.darkMaskImage.getHeight(), filteredBitmap.getHeight() / (float) selectedObject.darkMaskImage.getWidth()); + canvas.drawBitmap(selectedObject.darkMaskImage, matrix, maskPaint); + } else { + canvas.drawBitmap(selectedObject.darkMaskImage, null, dstRect, maskPaint); + } + return result; + } + + public void clean() { + if (bordersAnimator != null) { + bordersAnimator.cancel(); + bordersAnimator = null; + } + sourceBitmap = null; + if (objects != null) { + for (int i = 0; i < objects.length; ++i) { + if (objects[i] != null) { + objects[i].recycle(); + } + } + objects = null; + } + segmentingLoaded = false; + segmentingLoading = false; + isSegmentedState = false; + actionTextView.setAlpha(0f); + actionTextView.setScaleX(0.3f); + actionTextView.setScaleY(0.3f); + } + + public static boolean isWaitingMlKitError(Exception e) { + return e instanceof MlKitException && e.getMessage() != null && e.getMessage().contains("segmentation optional module to be downloaded"); + } + + public void setCurrentAccount(int account) { + if (currentAccount != account) { + if (currentAccount >= 0) { + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.fileUploaded); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.fileUploadFailed); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.filePreparingFailed); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.filePreparingStarted); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.fileNewChunkAvailable); + } + + currentAccount = account; + + if (currentAccount >= 0) { + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.fileUploaded); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.fileUploadFailed); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.filePreparingFailed); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.filePreparingStarted); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.fileNewChunkAvailable); + } + } + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + if (currentAccount >= 0) { + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.fileUploaded); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.fileUploadFailed); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.filePreparingFailed); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.filePreparingStarted); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.fileNewChunkAvailable); + } + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.fileUploaded); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.fileUploadFailed); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.filePreparingFailed); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.filePreparingStarted); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.fileNewChunkAvailable); + } + + @Override + public void didReceivedNotification(int id, int account, Object... args) { + if (id == NotificationCenter.fileUploaded) { + final String location = (String) args[0]; + final TLRPC.InputFile file = (TLRPC.InputFile) args[1]; + if (stickerUploader != null && location.equalsIgnoreCase(stickerUploader.finalPath)) { + stickerUploader.file = file; + uploadMedia(); + } + } else if (id == NotificationCenter.fileUploadFailed) { + String location = (String) args[0]; + if (stickerUploader != null && location.equalsIgnoreCase(stickerUploader.finalPath)) { + hideLoadingDialog(); + } + } else if (id == NotificationCenter.filePreparingStarted) { + if (stickerUploader == null) return; + if (args[0] == stickerUploader.messageObject) { + FileLoader.getInstance(UserConfig.selectedAccount).uploadFile(stickerUploader.finalPath, false, true, ConnectionsManager.FileTypeFile); + } + } else if (id == NotificationCenter.fileNewChunkAvailable) { + if (stickerUploader == null) return; + if (args[0] == stickerUploader.messageObject) { + String finalPath = (String) args[1]; + long availableSize = (Long) args[2]; + long finalSize = (Long) args[3]; + float convertingProgress = (float) args[4]; +// progress = convertingProgress * .3f + uploadProgress * .7f; +// NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.uploadStoryProgress, path, progress); + +// if (firstSecondSize < 0 && convertingProgress * duration >= 1000) { +// firstSecondSize = availableSize; +// } + + FileLoader.getInstance(currentAccount).checkUploadNewDataAvailable(finalPath, false, Math.max(1, availableSize), finalSize, convertingProgress); + +// if (finalSize > 0) { +// if (firstSecondSize < 0) { +// firstSecondSize = finalSize; +// } +// ready = true; +// } + } + } else if (id == NotificationCenter.filePreparingFailed) { + if (stickerUploader == null) return; + if (args[0] == stickerUploader.messageObject) { + hideLoadingDialog(); + } + } + } + + public void uploadStickerFile(String path, VideoEditedInfo videoEditedInfo, String emoji, CharSequence stickerPackName, boolean addToFavorite, TLRPC.StickerSet stickerSet, TLRPC.Document replacedSticker) { + uploadStickerFile(path, videoEditedInfo, emoji, stickerPackName, addToFavorite, stickerSet, replacedSticker, ""); + } + + public void uploadStickerFile(String path, VideoEditedInfo videoEditedInfo, String emoji, CharSequence stickerPackName, boolean addToFavorite, TLRPC.StickerSet stickerSet, TLRPC.Document replacedSticker, CharSequence stickerShortPackName) { + AndroidUtilities.runOnUIThread(() -> { + stickerUploader = new StickerUploader(); + stickerUploader.emoji = emoji; + stickerUploader.path = stickerUploader.finalPath = path; + stickerUploader.stickerShortPackName = stickerShortPackName; + stickerUploader.stickerPackName = stickerPackName; + stickerUploader.addToFavorite = addToFavorite; + stickerUploader.stickerSet = stickerSet; + stickerUploader.replacedSticker = replacedSticker; + stickerUploader.videoEditedInfo = videoEditedInfo; + if (videoEditedInfo != null) { + TLRPC.TL_message message = new TLRPC.TL_message(); + message.id = 1; + stickerUploader.finalPath = message.attachPath = StoryEntry.makeCacheFile(UserConfig.selectedAccount, "webm").getAbsolutePath(); + stickerUploader.messageObject = new MessageObject(UserConfig.selectedAccount, message, (MessageObject) null, false, false); + stickerUploader.messageObject.videoEditedInfo = videoEditedInfo; + MediaController.getInstance().scheduleVideoConvert(stickerUploader.messageObject, false, false); + } else { + FileLoader.getInstance(UserConfig.selectedAccount).uploadFile(path, false, true, ConnectionsManager.FileTypeFile); + } + showLoadingDialog(); + }, 300); + } + + private void showLoadingDialog() { + loadingDialog = new AlertDialog(getContext(), AlertDialog.ALERT_TYPE_SPINNER, new DarkThemeResourceProvider()); + loadingDialog.show(); + } + + private void hideLoadingDialog() { + if (loadingDialog != null) { + loadingDialog.dismiss(); + loadingDialog = null; + } + } + + private void uploadMedia() { + TLRPC.TL_messages_uploadMedia req = new TLRPC.TL_messages_uploadMedia(); + req.peer = new TLRPC.TL_inputPeerSelf(); + req.media = new TLRPC.TL_inputMediaUploadedDocument(); + req.media.file = stickerUploader.file; + if (stickerUploader.videoEditedInfo != null) { + req.media.mime_type = "video/webm"; + } else { + req.media.mime_type = "image/webp"; + } + TLRPC.TL_documentAttributeSticker attr = new TLRPC.TL_documentAttributeSticker(); + attr.alt = stickerUploader.emoji; + attr.stickerset = new TLRPC.TL_inputStickerSetEmpty(); + req.media.attributes.add(attr); + ConnectionsManager.getInstance(UserConfig.selectedAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (response instanceof TLRPC.TL_messageMediaDocument) { + TLRPC.TL_messageMediaDocument mediaDocument = (TLRPC.TL_messageMediaDocument) response; + stickerUploader.tlInputStickerSetItem = MediaDataController.getInputStickerSetItem(mediaDocument.document, stickerUploader.emoji); + stickerUploader.mediaDocument = mediaDocument; + afterUploadingMedia(); + } else { + hideLoadingDialog(); + showError(error); + } + }), ConnectionsManager.RequestFlagFailOnServerErrors); + } + + private void showError(TLRPC.TL_error error) { + if (error != null) { + BulletinFactory.of((FrameLayout) getParent(), resourcesProvider).createErrorBulletin(error.text).show(); + } + } + + private void afterUploadingMedia() { + final int currentAccount = UserConfig.selectedAccount; + if (stickerUploader.replacedSticker != null) { + TLRPC.TL_stickers_replaceSticker req = new TLRPC.TL_stickers_replaceSticker(); + req.sticker = MediaDataController.getInputStickerSetItem(stickerUploader.replacedSticker, "").document; + req.new_sticker = stickerUploader.tlInputStickerSetItem; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (response instanceof TLRPC.TL_messages_stickerSet) { + MediaDataController.getInstance(currentAccount).toggleStickerSet(null, response, 2, null, false, false); + AndroidUtilities.runOnUIThread(() -> NotificationCenter.getInstance(UserConfig.selectedAccount).postNotificationNameOnUIThread(NotificationCenter.customStickerCreated, false, response, stickerUploader.mediaDocument.document), 250); + } + showError(error); + hideLoadingDialog(); + })); + } else if (stickerUploader.stickerPackName != null) { + TLRPC.TL_stickers_createStickerSet req = new TLRPC.TL_stickers_createStickerSet(); + req.user_id = new TLRPC.TL_inputUserSelf(); + req.title = stickerUploader.stickerPackName.toString(); + req.short_name = stickerUploader.stickerShortPackName != null ? stickerUploader.stickerShortPackName.toString() : ""; + req.stickers.add(stickerUploader.tlInputStickerSetItem); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (response instanceof TLRPC.TL_messages_stickerSet) { + MediaDataController.getInstance(currentAccount).toggleStickerSet(null, response, 2, null, false, false); + AndroidUtilities.runOnUIThread(() -> NotificationCenter.getInstance(UserConfig.selectedAccount).postNotificationNameOnUIThread(NotificationCenter.customStickerCreated, false, response, stickerUploader.mediaDocument.document), 250); + } + showError(error); + hideLoadingDialog(); + })); + } else if (stickerUploader.addToFavorite) { + hideLoadingDialog(); + NotificationCenter.getInstance(currentAccount).postNotificationNameOnUIThread(NotificationCenter.customStickerCreated, false); + AndroidUtilities.runOnUIThread(() -> MediaDataController.getInstance(UserConfig.selectedAccount).addRecentSticker(MediaDataController.TYPE_FAVE, null, stickerUploader.mediaDocument.document, (int) (System.currentTimeMillis() / 1000), false), 350); + } else if (stickerUploader.stickerSet != null) { + TLRPC.TL_stickers_addStickerToSet req = new TLRPC.TL_stickers_addStickerToSet(); + req.stickerset = MediaDataController.getInputStickerSet(stickerUploader.stickerSet); + req.sticker = stickerUploader.tlInputStickerSetItem; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (response instanceof TLRPC.TL_messages_stickerSet) { + MediaDataController.getInstance(currentAccount).toggleStickerSet(null, response, 2, null, false, false); + AndroidUtilities.runOnUIThread(() -> NotificationCenter.getInstance(UserConfig.selectedAccount).postNotificationNameOnUIThread(NotificationCenter.customStickerCreated, false, response, stickerUploader.mediaDocument.document), 250); + } + showError(error); + hideLoadingDialog(); + })); + } + } + + private static class StickerUploader { + public String path; + public String finalPath; + public String emoji; + public CharSequence stickerShortPackName; + public CharSequence stickerPackName; + public TLRPC.TL_inputStickerSetItem tlInputStickerSetItem; + public TLRPC.TL_messageMediaDocument mediaDocument; + public TLRPC.InputFile file; + public boolean addToFavorite; + public TLRPC.StickerSet stickerSet; + public TLRPC.Document replacedSticker; + + public MessageObject messageObject; + public VideoEditedInfo videoEditedInfo; + } + + private static class Point extends android.graphics.Point { + + public Point(int x, int y) { + super(x, y); + } + + public Point(int x, int y, float scale) { + super((int) (x * scale), (int) (y * scale)); + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PaintingOverlay.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PaintingOverlay.java index 163a8d27ff..7be320ebe1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PaintingOverlay.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PaintingOverlay.java @@ -47,8 +47,8 @@ public PaintingOverlay(Context context) { super(context); } - public void setData(String paintPath, ArrayList entities, boolean isVideo, boolean startAfterSet) { - setEntities(entities, isVideo, startAfterSet); + public void setData(String paintPath, ArrayList entities, boolean isVideo, boolean startAfterSet, boolean clip) { + setEntities(entities, isVideo, startAfterSet, clip); if (paintPath != null) { paintBitmap = BitmapFactory.decodeFile(paintPath); setBackground(backgroundDrawable = new BitmapDrawable(paintBitmap)); @@ -159,7 +159,8 @@ public void hideBitmap() { setBackground(null); } - public void setEntities(ArrayList entities, boolean isVideo, boolean startAfterSet) { + public void setEntities(ArrayList entities, boolean isVideo, boolean startAfterSet, boolean clip) { + setClipChildren(clip); reset(); mediaEntityViews = new HashMap<>(); if (entities != null && !entities.isEmpty()) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PasscodeView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PasscodeView.java index cc6a02b862..1f31f08c5e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PasscodeView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PasscodeView.java @@ -23,8 +23,6 @@ import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; -import android.hardware.biometrics.BiometricManager; -import android.hardware.biometrics.BiometricPrompt; import android.os.Build; import android.os.SystemClock; @@ -56,10 +54,15 @@ import android.widget.TextView; import androidx.annotation.IdRes; +import androidx.annotation.NonNull; +import androidx.biometric.BiometricManager; +import androidx.biometric.BiometricPrompt; +import androidx.core.content.ContextCompat; import androidx.core.os.CancellationSignal; import androidx.dynamicanimation.animation.FloatValueHolder; import androidx.dynamicanimation.animation.SpringAnimation; import androidx.dynamicanimation.animation.SpringForce; +import androidx.fragment.app.FragmentActivity; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.ApplicationLoader; @@ -73,6 +76,8 @@ import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; import org.telegram.messenger.SharedConfig; +import org.telegram.messenger.UserObject; +import org.telegram.messenger.Utilities; import org.telegram.messenger.support.fingerprint.FingerprintManagerCompat; import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.Theme; @@ -104,10 +109,6 @@ public void didReceivedNotification(int id, int account, Object... args) { } else if (id == NotificationCenter.passcodeDismissed) { if (args[0] != this) { setVisibility(GONE); - - if (fingerprintDialog != null) { - fingerprintDialog.dismiss(); - } } } } @@ -459,12 +460,6 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto private ImageView fingerprintImage; private int keyboardHeight = 0; - private CancellationSignal cancellationSignal; - private ImageView fingerprintImageView; - private TextView fingerprintStatusTextView; - private boolean selfCancelled; - private AlertDialog fingerprintDialog; - private int imageY; private RLottieImageView imageView; @@ -1110,24 +1105,6 @@ public void onResume() { public void onPause() { AndroidUtilities.cancelRunOnUIThread(checkRunnable); - if (fingerprintDialog != null) { - try { - if (fingerprintDialog.isShowing()) { - fingerprintDialog.dismiss(); - } - fingerprintDialog = null; - } catch (Exception e) { - FileLog.e(e); - } - } - try { - if (Build.VERSION.SDK_INT >= 23 && cancellationSignal != null) { - cancellationSignal.cancel(); - cancellationSignal = null; - } - } catch (Exception e) { - FileLog.e(e); - } } @Override @@ -1152,150 +1129,32 @@ private void checkFingerprint() { } Activity parentActivity = (Activity) getContext(); if (parentActivity != null && fingerprintView.getVisibility() == VISIBLE && !ApplicationLoader.mainInterfacePaused && (!(parentActivity instanceof LaunchActivity) || ((LaunchActivity) parentActivity).allowShowFingerprintDialog(this))) { - if (Build.VERSION.SDK_INT >= 28 && NaConfig.INSTANCE.getUseSystemUnlock().Bool()) { - try { - boolean useBiometric; - if (Build.VERSION.SDK_INT >= 29) { - BiometricManager biometricManager = (BiometricManager) ApplicationLoader.applicationContext.getSystemService(Context.BIOMETRIC_SERVICE); - if (Build.VERSION.SDK_INT >= 30) { - useBiometric = biometricManager.canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_WEAK) == BiometricManager.BIOMETRIC_SUCCESS; - } else { - useBiometric = biometricManager.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS; - } - } else { - FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.from(ApplicationLoader.applicationContext); - useBiometric = fingerprintManager.isHardwareDetected() && fingerprintManager.hasEnrolledFingerprints(); - } - if (useBiometric) { - Executor executor = ContextCompat.getMainExecutor(parentActivity); - BiometricPrompt.Builder builder = new BiometricPrompt.Builder(parentActivity) - .setTitle(LocaleController.getString("NekoX", R.string.NekoX)) - .setNegativeButton(LocaleController.getString("Canel", R.string.Cancel), executor, (dialog, which) -> { }); - if (Build.VERSION.SDK_INT >= 29) { - builder.setConfirmationRequired(false); - } - builder.build().authenticate(new android.os.CancellationSignal(), executor, new BiometricPrompt.AuthenticationCallback() { - @Override - public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) { - processDone(true); - } - }); - return; - } - } catch (Exception e) { - e.printStackTrace(); - } - } - try { - if (fingerprintDialog != null && fingerprintDialog.isShowing()) { - return; - } - } catch (Exception e) { - FileLog.e(e); - } try { - FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.from(ApplicationLoader.applicationContext); - if (fingerprintManager.isHardwareDetected() && fingerprintManager.hasEnrolledFingerprints() && FingerprintController.isKeyReady() && !FingerprintController.checkDeviceFingerprintsChanged()) { - RelativeLayout relativeLayout = new RelativeLayout(getContext()); - relativeLayout.setPadding(AndroidUtilities.dp(24), 0, AndroidUtilities.dp(24), 0); - - TextView fingerprintTextView = new TextView(getContext()); - fingerprintTextView.setId(id_fingerprint_textview); - fingerprintTextView.setTextAppearance(android.R.style.TextAppearance_Material_Subhead); - fingerprintTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); - fingerprintTextView.setText(LocaleController.getString("FingerprintInfo", R.string.FingerprintInfo)); - relativeLayout.addView(fingerprintTextView); - RelativeLayout.LayoutParams layoutParams = LayoutHelper.createRelative(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT); - layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP); - layoutParams.addRule(RelativeLayout.ALIGN_PARENT_START); - fingerprintTextView.setLayoutParams(layoutParams); - - fingerprintImageView = new ImageView(getContext()); - fingerprintImageView.setImageResource(R.drawable.ic_fp_40px); - fingerprintImageView.setId(id_fingerprint_imageview); - relativeLayout.addView(fingerprintImageView, LayoutHelper.createRelative(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 0, 20, 0, 0, RelativeLayout.ALIGN_PARENT_START, RelativeLayout.BELOW, id_fingerprint_textview)); - - fingerprintStatusTextView = new TextView(getContext()); - fingerprintStatusTextView.setGravity(Gravity.CENTER_VERTICAL); - fingerprintStatusTextView.setText(LocaleController.getString("FingerprintHelp", R.string.FingerprintHelp)); - fingerprintStatusTextView.setTextAppearance(android.R.style.TextAppearance_Material_Body1); - fingerprintStatusTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack) & 0x42ffffff); - relativeLayout.addView(fingerprintStatusTextView); - layoutParams = LayoutHelper.createRelative(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT); - layoutParams.setMarginStart(AndroidUtilities.dp(16)); - layoutParams.addRule(RelativeLayout.ALIGN_BOTTOM, id_fingerprint_imageview); - layoutParams.addRule(RelativeLayout.ALIGN_TOP, id_fingerprint_imageview); - layoutParams.addRule(RelativeLayout.END_OF, id_fingerprint_imageview); - fingerprintStatusTextView.setLayoutParams(layoutParams); - - AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setView(relativeLayout); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setOnDismissListener(dialog -> { - if (cancellationSignal != null) { - selfCancelled = true; - try { - cancellationSignal.cancel(); - } catch (Exception e) { - FileLog.e(e); - } - cancellationSignal = null; - } - }); - if (fingerprintDialog != null) { - try { - if (fingerprintDialog.isShowing()) { - fingerprintDialog.dismiss(); - } - } catch (Exception e) { - FileLog.e(e); - } - } - fingerprintDialog = builder.show(); - - cancellationSignal = new CancellationSignal(); - selfCancelled = false; - fingerprintManager.authenticate(null, 0, cancellationSignal, new FingerprintManagerCompat.AuthenticationCallback() { + if (BiometricManager.from(getContext()).canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG) == BiometricManager.BIOMETRIC_SUCCESS && FingerprintController.isKeyReady() && !FingerprintController.checkDeviceFingerprintsChanged()) { + final Executor executor = ContextCompat.getMainExecutor(getContext()); + BiometricPrompt prompt = new BiometricPrompt(LaunchActivity.instance, executor, new BiometricPrompt.AuthenticationCallback() { @Override - public void onAuthenticationError(int errMsgId, CharSequence errString) { - if (errMsgId == 10) { - try { - if (fingerprintDialog.isShowing()) { - fingerprintDialog.dismiss(); - } - } catch (Exception e) { - FileLog.e(e); - } - fingerprintDialog = null; - } else if (!selfCancelled && errMsgId != 5) { - showFingerprintError(errString); - } + public void onAuthenticationError(int errMsgId, @NonNull CharSequence errString) { + FileLog.d("PasscodeView onAuthenticationError " + errMsgId + " \"" + errString + "\""); } @Override - public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) { - showFingerprintError(helpString); + public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) { + FileLog.d("PasscodeView onAuthenticationSucceeded"); + processDone(true); } @Override public void onAuthenticationFailed() { - showFingerprintError(LocaleController.getString("FingerprintNotRecognized", R.string.FingerprintNotRecognized)); + FileLog.d("PasscodeView onAuthenticationFailed"); } - - @Override - public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result) { - try { - if (fingerprintDialog.isShowing()) { - fingerprintDialog.dismiss(); - } - } catch (Exception e) { - FileLog.e(e); - } - fingerprintDialog = null; - processDone(true); - } - }, null); + }); + final BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder() + .setTitle(LocaleController.getString("NekoX", R.string.NekoX)) + .setNegativeButtonText(LocaleController.getString(R.string.Back)) + .setAllowedAuthenticators(BiometricManager.Authenticators.BIOMETRIC_STRONG) + .build(); + prompt.authenticate(promptInfo); } } catch (Throwable e) { //ignore @@ -1310,13 +1169,6 @@ public void onShow(boolean fingerprint, boolean animated) { private void checkFingerprintButton() { Activity parentActivity = (Activity) getContext(); if (Build.VERSION.SDK_INT >= 23 && parentActivity != null && SharedConfig.useFingerprint) { - try { - if (fingerprintDialog != null && fingerprintDialog.isShowing()) { - return; - } - } catch (Exception e) { - FileLog.e(e); - } try { FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.from(ApplicationLoader.applicationContext); if (fingerprintManager.isHardwareDetected() && fingerprintManager.hasEnrolledFingerprints() && FingerprintController.isKeyReady() && !FingerprintController.checkDeviceFingerprintsChanged()) { @@ -1574,13 +1426,16 @@ public void onAnimationEnd(Animator animation) { setOnTouchListener((v, event) -> true); } - private void showFingerprintError(CharSequence error) { - fingerprintImageView.setImageResource(R.drawable.ic_fingerprint_error); - fingerprintStatusTextView.setText(error); - fingerprintStatusTextView.setTextColor(0xfff4511e); - VibrateUtil.vibrate(); - AndroidUtilities.shakeView(fingerprintStatusTextView); - } +// private void showFingerprintError(CharSequence error) { +// fingerprintImageView.setImageResource(R.drawable.ic_fingerprint_error); +// fingerprintStatusTextView.setText(error); +// fingerprintStatusTextView.setTextColor(0xfff4511e); +// Vibrator v = (Vibrator) getContext().getSystemService(Context.VIBRATOR_SERVICE); +// if (v != null) { +// v.vibrate(200); +// } +// AndroidUtilities.shakeView(fingerprintStatusTextView); +// } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java index 789ccee99f..530def37b2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java @@ -12,11 +12,13 @@ import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; +import android.graphics.Color; import android.graphics.LinearGradient; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; +import android.graphics.Rect; import android.graphics.Shader; import android.graphics.SurfaceTexture; import android.graphics.drawable.Drawable; @@ -134,6 +136,10 @@ public class PhotoFilterView extends FrameLayout implements FilterShaders.Filter private ImageView curveItem; private Bitmap bitmapToEdit; + private Bitmap bitmapMask; + private final Rect maskRect = new Rect(); + private final Matrix maskMatrix = new Matrix(); + private final Paint maskPaint = new Paint(Paint.FILTER_BITMAP_FLAG); private int orientation; private final Theme.ResourcesProvider resourcesProvider; @@ -317,6 +323,10 @@ public void readParams(AbstractSerializedData stream, boolean exception) { } public PhotoFilterView(Context context, VideoEditTextureView videoTextureView, Bitmap bitmap, int rotation, MediaController.SavedFilterState state, PaintingOverlay overlay, int hasFaces, boolean mirror, boolean ownLayout, BlurringShader.BlurManager blurManager, Theme.ResourcesProvider resourcesProvider) { + this(context, videoTextureView, bitmap, null, rotation, state, overlay, hasFaces, mirror, ownLayout, blurManager, resourcesProvider); + } + + public PhotoFilterView(Context context, VideoEditTextureView videoTextureView, Bitmap bitmap, Bitmap mask, int rotation, MediaController.SavedFilterState state, PaintingOverlay overlay, int hasFaces, boolean mirror, boolean ownLayout, BlurringShader.BlurManager blurManager, Theme.ResourcesProvider resourcesProvider) { super(context); this.ownLayout = ownLayout; this.resourcesProvider = resourcesProvider; @@ -384,6 +394,7 @@ public PhotoFilterView(Context context, VideoEditTextureView videoTextureView, B filtersEmpty = true; } bitmapToEdit = bitmap; + bitmapMask = mask; orientation = rotation; if (videoTextureView != null) { @@ -1007,6 +1018,19 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { if (paintingOverlay != null && child == textureView) { canvas.save(); canvas.translate(textureView.getLeft(), textureView.getTop()); + if (bitmapMask != null && textureView.getVisibility() == View.VISIBLE) { + maskRect.set(0, 0, textureView.getMeasuredWidth(), textureView.getMeasuredHeight()); + if (orientation != 0) { + maskMatrix.reset(); + maskMatrix.postRotate(orientation, bitmapMask.getWidth() / 2f, bitmapMask.getHeight() / 2f); + float dxy = (bitmapMask.getHeight() - bitmapMask.getWidth()) / 2f; + maskMatrix.postTranslate(dxy, -dxy); + maskMatrix.postScale(maskRect.width() / (float) bitmapMask.getHeight(), maskRect.height() / (float) bitmapMask.getWidth()); + canvas.drawBitmap(bitmapMask, maskMatrix, maskPaint); + } else { + canvas.drawBitmap(bitmapMask, null, maskRect, maskPaint); + } + } float scale = textureView.getMeasuredWidth() / (float) paintingOverlay.getMeasuredWidth(); canvas.scale(scale, scale); paintingOverlay.draw(canvas); @@ -1438,9 +1462,7 @@ public boolean onTouch(MotionEvent event) { } catch (Exception ignore) {} lastVibrateValue = newValue; } else if (Math.abs(newValueInt - lastVibrateValueInt) > (SharedConfig.getDevicePerformanceClass() == SharedConfig.PERFORMANCE_CLASS_HIGH ? 5 : 10)) { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + AndroidUtilities.vibrateCursor(this); lastVibrateValue = newValue; } filterView.setEnhanceValue(newValue); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/DoubledLimitsBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/DoubledLimitsBottomSheet.java index 1ee2bb14d0..e8e154a9c1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/DoubledLimitsBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/DoubledLimitsBottomSheet.java @@ -155,7 +155,7 @@ protected CharSequence getTitle() { } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { adapter = new Adapter(currentAccount, false, resourcesProvider); adapter.containerView = containerView; return adapter; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/FeaturesPageView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/FeaturesPageView.java index a177c553ef..34beeaa62b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/FeaturesPageView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/FeaturesPageView.java @@ -25,7 +25,6 @@ import androidx.recyclerview.widget.RecyclerView; import org.telegram.messenger.AndroidUtilities; -import org.telegram.messenger.BuildVars; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MessagesController; import org.telegram.messenger.R; @@ -137,10 +136,20 @@ public FeaturesPageView(Context context, int type, Theme.ResourcesProvider resou PremiumPreviewFragment.PREMIUM_FEATURE_BUSINESS_AWAY_MESSAGES )); itemsTmp.add(new Item(VIEW_TYPE_ITEM, R.drawable.menu_premium_chatbot, - LocaleController.getString(R.string.PremiumBusinessChatbots), + LocaleController.getString(R.string.PremiumBusinessChatbots2), LocaleController.getString(R.string.PremiumBusinessChatbotsDescription), PremiumPreviewFragment.PREMIUM_FEATURE_BUSINESS_CHATBOTS )); + itemsTmp.add(new Item(VIEW_TYPE_ITEM, R.drawable.menu_feature_intro, + LocaleController.getString(R.string.PremiumBusinessIntro), + LocaleController.getString(R.string.PremiumBusinessIntroDescription), + PremiumPreviewFragment.PREMIUM_FEATURE_BUSINESS_INTRO + )); + itemsTmp.add(new Item(VIEW_TYPE_ITEM, R.drawable.menu_premium_chatlink, + LocaleController.getString(R.string.PremiumBusinessChatLinks), + LocaleController.getString(R.string.PremiumBusinessChatLinksDescription), + PremiumPreviewFragment.PREMIUM_FEATURE_BUSINESS_CHAT_LINKS + )); } if (order != null) { final SparseIntArray finalOrder = order; @@ -268,7 +277,7 @@ public HeaderView(Context context) { TextView textView = new TextView(context); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); - textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + textView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); textView.setText(LocaleController.getString("UpgradedStories", R.string.UpgradedStories)); addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, 111, 0, 0)); @@ -342,14 +351,14 @@ protected void onDetachedFromWindow() { textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); textView.setText(LocaleController.getString(R.string.TelegramBusiness)); textView.setGravity(Gravity.CENTER); - addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, 150, 0, 0)); + addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 33, 150, 33, 0)); textView = new TextView(context); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2, resourcesProvider)); textView.setText(LocaleController.getString(R.string.TelegramBusinessSubtitle2)); textView.setGravity(Gravity.CENTER); - addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, 183, 0, 20)); + addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 33, 183, 33, 20)); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GiftPremiumBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GiftPremiumBottomSheet.java index 7b5c9b6b28..a7f73c3300 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GiftPremiumBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GiftPremiumBottomSheet.java @@ -312,7 +312,7 @@ protected CharSequence getTitle() { } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { return new RecyclerListView.SelectionAdapter() { private final static int VIEW_TYPE_HEADER = 0, VIEW_TYPE_TIER = 1, diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitReachedBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitReachedBottomSheet.java index 81e5b07b06..87c8a20289 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitReachedBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitReachedBottomSheet.java @@ -16,6 +16,7 @@ import android.graphics.PorterDuffColorFilter; import android.graphics.drawable.Drawable; import android.os.Build; +import android.text.Layout; import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.Spanned; @@ -43,6 +44,7 @@ import androidx.recyclerview.widget.RecyclerView; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BotWebViewVibrationEffect; import org.telegram.messenger.ChannelBoostsController; import org.telegram.messenger.ChatObject; import org.telegram.messenger.ContactsController; @@ -70,8 +72,10 @@ import org.telegram.ui.ChatActivity; import org.telegram.ui.ChatEditActivity; import org.telegram.ui.Components.AvatarDrawable; +import org.telegram.ui.Components.AvatarsImageView; import org.telegram.ui.Components.BackupImageView; import org.telegram.ui.Components.BottomSheetWithRecyclerListView; +import org.telegram.ui.Components.Bulletin; import org.telegram.ui.Components.BulletinFactory; import org.telegram.ui.Components.ColoredImageSpan; import org.telegram.ui.Components.CubicBezierInterpolator; @@ -139,9 +143,10 @@ public class LimitReachedBottomSheet extends BottomSheetWithRecyclerListView imp public static final int TYPE_BOOSTS_FOR_REPLY_ICON = 26; public static final int TYPE_BOOSTS_FOR_PROFILE_ICON = 27; public static final int TYPE_BOOSTS_FOR_CUSTOM_EMOJI_PACK = 29; - public static final int TYPE_FEATURES = 30; - public static final int TYPE_BOOSTS_FOR_REMOVE_RESTRICTIONS = 31; - public static final int TYPE_PIN_SAVED_DIALOGS = 28; + public static final int TYPE_BOOSTS_FOR_ADS = 30; + public static final int TYPE_FEATURES = 31; + public static final int TYPE_BOOSTS_FOR_REMOVE_RESTRICTIONS = 32; + public static final int TYPE_PIN_SAVED_DIALOGS = 33; private boolean canSendLink; private int linkRow = -1; @@ -203,6 +208,7 @@ private static class BoostFeature { public final String countValue; public final String textKeyPlural; public final int countPlural; + public boolean incremental; private BoostFeature( int iconResId, @@ -234,6 +240,9 @@ public boolean equals(BoostFeature that) { if (that == null) { return false; } + if (incremental && countPlural > 2) { + return true; + } return ( this.iconResId == that.iconResId && this.textKey == that.textKey && @@ -243,6 +252,11 @@ public boolean equals(BoostFeature that) { ); } + public BoostFeature asIncremental() { + incremental = true; + return this; + } + public static boolean arraysEqual(ArrayList a, ArrayList b) { if (a == null && b == null) return true; if (a != null && b == null || a == null && b != null) return false; @@ -277,6 +291,8 @@ public BoostFeatureLevel(int lvl, boolean isFirst) { private ArrayList inactiveChats = new ArrayList<>(); private ArrayList inactiveChatsSignatures = new ArrayList<>(); private ArrayList restrictedUsers = new ArrayList<>(); + private ArrayList premiumMessagingBlockedUsers = new ArrayList<>(); + private ArrayList premiumInviteBlockedUsers = new ArrayList<>(); PremiumButtonView premiumButtonView; TextView actionBtn; @@ -324,6 +340,7 @@ public LimitReachedBottomSheet(BaseFragment fragment, Context context, int type, type == TYPE_BOOSTS_FOR_REACTIONS || type == TYPE_BOOSTS_FOR_REPLY_ICON || type == TYPE_BOOSTS_FOR_PROFILE_ICON || + type == TYPE_BOOSTS_FOR_ADS || type == TYPE_FEATURES ) { ((ViewGroup) premiumButtonView.getParent()).removeView(premiumButtonView); @@ -401,6 +418,7 @@ public void invalidate() { super.invalidate(); } }; + ScaleStateListAnimator.apply(premiumButtonView, .02f, 1.2f); if (!hasFixedSize && !( type == TYPE_BOOSTS_FOR_POSTING || @@ -412,7 +430,8 @@ public void invalidate() { type == TYPE_BOOSTS_FOR_CUSTOM_WALLPAPER || type == TYPE_BOOSTS_FOR_REACTIONS || type == TYPE_BOOSTS_FOR_REPLY_ICON || - type == TYPE_BOOSTS_FOR_PROFILE_ICON + type == TYPE_BOOSTS_FOR_PROFILE_ICON || + type == TYPE_BOOSTS_FOR_ADS )) { divider = new View(context) { @Override @@ -430,7 +449,7 @@ protected void onDraw(Canvas canvas) { divider.setBackgroundColor(Theme.getColor(Theme.key_dialogBackground, resourcesProvider)); containerView.addView(divider, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 72, Gravity.BOTTOM, 0, 0, 0, 0)); } - containerView.addView(premiumButtonView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM, 16, 0, 16, 12)); + containerView.addView(premiumButtonView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM, 16 + backgroundPaddingLeft / AndroidUtilities.density, 0, 16 + backgroundPaddingLeft / AndroidUtilities.density, 12)); recyclerListView.setPadding(0, 0, 0, AndroidUtilities.dp(72)); recyclerListView.setOnItemClickListener((view, position) -> { if (view instanceof AdminedChannelCell) { @@ -449,6 +468,14 @@ protected void onDraw(Canvas canvas) { } GroupCreateUserCell cell = (GroupCreateUserCell) view; Object object = cell.getObject(); + if (cell.isBlocked()) { + long dialogId; + if (object instanceof TLRPC.User) { + dialogId = ((TLRPC.User) object).id; + } else return; + showPremiumBlockedToast(cell, dialogId); + return; + } if (selectedChats.contains(object)) { selectedChats.remove(object); } else { @@ -581,7 +608,8 @@ protected void onDraw(Canvas canvas) { type == TYPE_BOOSTS_FOR_CUSTOM_WALLPAPER || type == TYPE_BOOSTS_FOR_REACTIONS || type == TYPE_BOOSTS_FOR_REPLY_ICON || - type == TYPE_BOOSTS_FOR_PROFILE_ICON + type == TYPE_BOOSTS_FOR_PROFILE_ICON || + type == TYPE_BOOSTS_FOR_ADS ) { AndroidUtilities.addToClipboard(getBoostLink()); dismiss(); @@ -648,6 +676,33 @@ private void limitPreviewIncreaseCurrentValue() { (boostsStatus.next_level_boosts - boostsStatus.current_level_boosts)); } + private int shiftDp = -4; + private void showPremiumBlockedToast(View view, long dialogId) { + AndroidUtilities.shakeViewSpring(view, shiftDp = -shiftDp); + BotWebViewVibrationEffect.APP_ERROR.vibrate(); + String username = ""; + if (dialogId >= 0) { + username = UserObject.getForcedFirstName(MessagesController.getInstance(currentAccount).getUser(dialogId)); + } + Bulletin bulletin; + if (MessagesController.getInstance(currentAccount).premiumFeaturesBlocked()) { + bulletin = BulletinFactory.of((FrameLayout) containerView, resourcesProvider).createSimpleBulletin(R.raw.star_premium_2, AndroidUtilities.replaceTags(LocaleController.formatString(R.string.UserBlockedNonPremium, username))); + } else { + bulletin = BulletinFactory.of((FrameLayout) containerView, resourcesProvider) + .createSimpleBulletin(R.raw.star_premium_2, AndroidUtilities.replaceTags(LocaleController.formatString(R.string.UserBlockedNonPremium, username)), LocaleController.getString(R.string.UserBlockedNonPremiumButton), () -> { + BaseFragment lastFragment = LaunchActivity.getLastFragment(); + if (lastFragment == null) { + return; + } + BaseFragment.BottomSheetParams params = new BaseFragment.BottomSheetParams(); + params.transitionFromLeft = true; + params.allowNestedScroll = false; + parentFragment.showAsSheet(new PremiumPreviewFragment("noncontacts"), params); + }); + } + bulletin.show(); + } + private void boostChannel(Loadable button) { boostChannel(button, false); } @@ -817,7 +872,8 @@ public void updatePremiumButtonText() { type == TYPE_BOOSTS_FOR_CUSTOM_WALLPAPER || type == TYPE_BOOSTS_FOR_REACTIONS || type == TYPE_BOOSTS_FOR_REPLY_ICON || - type == TYPE_BOOSTS_FOR_PROFILE_ICON + type == TYPE_BOOSTS_FOR_PROFILE_ICON || + type == TYPE_BOOSTS_FOR_ADS ) { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder("d "); spannableStringBuilder.setSpan(new ColoredImageSpan(R.drawable.msg_copy_filled), 0, 1, 0); @@ -970,6 +1026,7 @@ public CharSequence getTitle() { case TYPE_BOOSTS_FOR_REMOVE_RESTRICTIONS: return LocaleController.getString(R.string.BoostGroup); case TYPE_BOOSTS_FOR_USERS: + case TYPE_BOOSTS_FOR_ADS: return LocaleController.getString(isGroup() ? R.string.BoostGroup : R.string.BoostChannel); case TYPE_BOOSTS_FOR_POSTING: case TYPE_BOOSTS_FOR_COLOR: @@ -983,7 +1040,7 @@ public CharSequence getTitle() { case TYPE_BOOSTS_FOR_PROFILE_COLOR: return LocaleController.getString(R.string.UnlockBoostChannelFeatures); case TYPE_ADD_MEMBERS_RESTRICTED: - return LocaleController.getString(R.string.ChannelInviteViaLink); + return LocaleController.getString(R.string.ChannelInviteViaLink2); default: return LocaleController.getString(R.string.LimitReached); } @@ -1137,7 +1194,7 @@ public void didReceivedNotification(int id, int account, Object... args) { private static final int VIEW_TYPE_BOOST_FEATURE = 9; @Override - public RecyclerListView.SelectionAdapter createAdapter() { + public RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { return new RecyclerListView.SelectionAdapter() { @Override public boolean isEnabled(RecyclerView.ViewHolder holder) { @@ -1276,6 +1333,7 @@ public void onClick(View v) { break; case VIEW_TYPE_USER: view = new GroupCreateUserCell(context, 1, 0, false); + view.setPadding(backgroundPaddingLeft, 0, backgroundPaddingLeft, 0); break; case VIEW_TYPE_PROGRESS: FlickerLoadingView flickerLoadingView = new FlickerLoadingView(context, null); @@ -1310,7 +1368,14 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi cell.setChecked(selectedChats.contains(chat), false); } else if (type == TYPE_ADD_MEMBERS_RESTRICTED) { TLRPC.User user = restrictedUsers.get(position - chatStartRow); - String signature = LocaleController.formatUserStatus(currentAccount, user, null, null); + final boolean premiumBlocked = premiumMessagingBlockedUsers != null && premiumMessagingBlockedUsers.contains(user.id); + cell.overridePremiumBlocked(premiumBlocked, false); + String signature; + if (premiumBlocked) { + signature = LocaleController.getString(R.string.InvitePremiumBlockedUser); + } else { + signature = LocaleController.formatUserStatus(currentAccount, user, null, null); + } cell.setObject(user, ContactsController.formatName(user.first_name, user.last_name), signature, position != chatEndRow - 1f); cell.setChecked(selectedChats.contains(user), false); } @@ -1326,7 +1391,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi HeaderCell headerCell = (HeaderCell) holder.itemView; if (type == TYPE_ADD_MEMBERS_RESTRICTED) { if (canSendLink) { - headerCell.setText(LocaleController.getString("ChannelInviteViaLink", R.string.ChannelInviteViaLink)); + headerCell.setText(LocaleController.getString(R.string.ChannelInviteViaLink)); } else { if (restrictedUsers.size() == 1) { headerCell.setText(LocaleController.getString("ChannelInviteViaLinkRestricted2", R.string.ChannelInviteViaLinkRestricted2)); @@ -1397,7 +1462,8 @@ private boolean isBoostingForAdminPossible() { || type == TYPE_BOOSTS_FOR_WALLPAPER || type == TYPE_BOOSTS_FOR_REPLY_ICON || type == TYPE_BOOSTS_FOR_PROFILE_ICON - || type == TYPE_BOOSTS_FOR_CUSTOM_WALLPAPER; + || type == TYPE_BOOSTS_FOR_CUSTOM_WALLPAPER + || type == TYPE_BOOSTS_FOR_ADS; } private String getBoostLink() { @@ -1416,16 +1482,42 @@ public void setVeryLargeFile(boolean b) { updatePremiumButtonText(); } - public void setRestrictedUsers(TLRPC.Chat chat, ArrayList userRestrictedPrivacy) { + public void setRestrictedUsers( + TLRPC.Chat chat, + ArrayList userRestrictedPrivacy, + ArrayList premiumMessagingBlockedUsers, + ArrayList premiumInviteBlockedUsers + ) { fromChat = chat; - canSendLink = ChatObject.canUserDoAdminAction(chat, ChatObject.ACTION_INVITE); + canSendLink = ChatObject.canUserDoAdminAction(chat, ChatObject.ACTION_INVITE) || true; restrictedUsers = new ArrayList<>(userRestrictedPrivacy); + this.premiumMessagingBlockedUsers = premiumMessagingBlockedUsers; + this.premiumInviteBlockedUsers = premiumInviteBlockedUsers; selectedChats.clear(); if (canSendLink) { - selectedChats.addAll(restrictedUsers); + for (TLRPC.User user : restrictedUsers) { + if (premiumMessagingBlockedUsers == null || !premiumMessagingBlockedUsers.contains(user.id)) { + selectedChats.add(user); + } + } } updateRows(); updateButton(); + + if ( + (type == TYPE_ADD_MEMBERS_RESTRICTED && !MessagesController.getInstance(currentAccount).premiumFeaturesBlocked() && (premiumInviteBlockedUsers != null && !premiumInviteBlockedUsers.isEmpty() || premiumMessagingBlockedUsers != null && premiumMessagingBlockedUsers.size() >= restrictedUsers.size())) && + premiumInviteBlockedUsers != null && premiumMessagingBlockedUsers != null && (premiumInviteBlockedUsers.size() == 1 && premiumMessagingBlockedUsers.size() == 1 || premiumMessagingBlockedUsers.size() >= premiumInviteBlockedUsers.size()) + ) { + if (LimitReachedBottomSheet.this.premiumButtonView != null && LimitReachedBottomSheet.this.premiumButtonView.getParent() != null) { + ((ViewGroup) LimitReachedBottomSheet.this.premiumButtonView.getParent()).removeView(LimitReachedBottomSheet.this.premiumButtonView); + } + if (divider != null && divider.getParent() != null) { + ((ViewGroup) divider.getParent()).removeView(divider); + } + if (recyclerListView != null) { + recyclerListView.setPadding(0, 0, 0, 0); + } + } } public void setDialogId(long dialogId) { @@ -1524,6 +1616,11 @@ public HeaderView(Context context) { R.string.GroupNeedBoostsForCustomEmojiPackDescription, messagesController.groupEmojiStickersLevelMin ); + } else if (type == TYPE_BOOSTS_FOR_ADS) { + descriptionStr = LocaleController.formatString( + R.string.ChannelNeedBoostsForSwitchOffAdsDescription, + messagesController.channelRestrictSponsoredLevelMin + ); } else if (type == TYPE_BOOSTS_FOR_EMOJI_STATUS) { descriptionStr = LocaleController.formatString( isGroup ? R.string.GroupNeedBoostsForEmojiStatusDescription : R.string.ChannelNeedBoostsForEmojiStatusDescription, @@ -1640,6 +1737,7 @@ public HeaderView(Context context) { type == TYPE_BOOSTS_FOR_WALLPAPER || type == TYPE_BOOSTS_FOR_CUSTOM_WALLPAPER || type == TYPE_BOOSTS_FOR_USERS || + type == TYPE_BOOSTS_FOR_ADS || type == TYPE_BOOSTS_FOR_REACTIONS || type == TYPE_BOOSTS_FOR_REPLY_ICON || type == TYPE_BOOSTS_FOR_PROFILE_ICON || @@ -1649,7 +1747,128 @@ public HeaderView(Context context) { currentValue = 0; } - if (type != TYPE_FEATURES) { + if (type == TYPE_ADD_MEMBERS_RESTRICTED && !MessagesController.getInstance(currentAccount).premiumFeaturesBlocked() && (premiumInviteBlockedUsers != null && !premiumInviteBlockedUsers.isEmpty() || premiumMessagingBlockedUsers != null && premiumMessagingBlockedUsers.size() >= restrictedUsers.size())) { + ArrayList userIds = premiumInviteBlockedUsers.isEmpty() ? premiumMessagingBlockedUsers : premiumInviteBlockedUsers; + + AvatarsImageView avatarsImageView = new AvatarsImageView(context, false); + avatarsImageView.avatarsDrawable.strokeWidth = dp(3.33f); + avatarsImageView.setSize(dp(72)); + avatarsImageView.setStepFactor(0.4f); + final int count = Math.min(userIds.size(), 3); + avatarsImageView.setCount(count); + for (int i = 0; i < count; ++i) { + long userId = userIds.get(i); + TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(userId); + avatarsImageView.setObject(i, currentAccount, user); + } + avatarsImageView.commitTransition(false); + addView(avatarsImageView, LayoutHelper.createLinear(72 + (count - 1) * 30, 72, Gravity.CENTER_HORIZONTAL, 0, 16, 0, 13)); + + TextView title = new TextView(context); + title.setGravity(Gravity.CENTER); + title.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); + title.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); + title.setText(LocaleController.getString(R.string.InvitePremiumBlockedTitle)); + addView(title, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 32, 0, 32, 9)); + + TextView description = new TextView(context); + description.setGravity(Gravity.CENTER); + description.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + description.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); + addView(description, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 32, 0, 32, 19)); + + final boolean andMessaging = premiumMessagingBlockedUsers != null && premiumMessagingBlockedUsers.size() >= premiumInviteBlockedUsers.size(); + final boolean onlyMessaging = premiumInviteBlockedUsers != null && premiumInviteBlockedUsers.isEmpty(); + String string; + if (userIds.size() == 1) { + string = LocaleController.formatString( + andMessaging ? R.string.InviteMessagePremiumBlockedOne : R.string.InvitePremiumBlockedOne, + UserObject.getForcedFirstName(MessagesController.getInstance(currentAccount).getUser(userIds.get(0))) + ); + } else if (userIds.size() == 2) { + string = LocaleController.formatString( + andMessaging ? R.string.InviteMessagePremiumBlockedTwo : R.string.InvitePremiumBlockedTwo, + UserObject.getForcedFirstName(MessagesController.getInstance(currentAccount).getUser(userIds.get(0))), + UserObject.getForcedFirstName(MessagesController.getInstance(currentAccount).getUser(userIds.get(1))) + ); + } else if (userIds.size() == 3) { + string = LocaleController.formatString( + andMessaging ? R.string.InviteMessagePremiumBlockedThree : R.string.InvitePremiumBlockedThree, + UserObject.getForcedFirstName(MessagesController.getInstance(currentAccount).getUser(userIds.get(0))), + UserObject.getForcedFirstName(MessagesController.getInstance(currentAccount).getUser(userIds.get(1))), + UserObject.getForcedFirstName(MessagesController.getInstance(currentAccount).getUser(userIds.get(2))) + ); + } else { + string = LocaleController.formatPluralString( + andMessaging ? "InviteMessagePremiumBlockedMany" : "InvitePremiumBlockedMany", + userIds.size() - 2, + UserObject.getForcedFirstName(MessagesController.getInstance(currentAccount).getUser(userIds.get(0))), + UserObject.getForcedFirstName(MessagesController.getInstance(currentAccount).getUser(userIds.get(1))) + ); + avatarsImageView.setPlus(userIds.size() - 2, getThemedColor(Theme.key_dialogBackground)); + } + description.setText(AndroidUtilities.replaceTags(string)); + + PremiumButtonView premiumButtonView = new PremiumButtonView(context, false, resourcesProvider); + ScaleStateListAnimator.apply(premiumButtonView, .02f, 1.2f); + premiumButtonView.setButton(LocaleController.getString(R.string.InvitePremiumBlockedSubscribe), v -> { + if (parentFragment == null) return; + BaseFragment.BottomSheetParams params = new BaseFragment.BottomSheetParams(); + params.transitionFromLeft = true; + params.allowNestedScroll = false; + parentFragment.showAsSheet(new PremiumPreviewFragment("invite_privacy"), params); + }); + addView(premiumButtonView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, 4 + backgroundPaddingLeft / AndroidUtilities.density, 0, 4 + backgroundPaddingLeft / AndroidUtilities.density, 18)); + + final int blockedInviting = premiumInviteBlockedUsers == null ? 0 : premiumInviteBlockedUsers.size(); + final int blockedMessaging = premiumMessagingBlockedUsers == null ? 0 : premiumMessagingBlockedUsers.size(); + + if ((blockedInviting - blockedMessaging) > 0 && !(blockedInviting == 1 && blockedMessaging == 1) && canSendLink) { + SimpleTextView or = new SimpleTextView(context) { + private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); + @Override + protected void dispatchDraw(Canvas canvas) { + paint.setColor(Theme.multAlpha(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2, resourcesProvider), .8f)); + paint.setStyle(Paint.Style.STROKE); + paint.setStrokeWidth(1); + final float cy = getHeight() / 2f; + canvas.drawLine(0, cy, getWidth() / 2f - getTextWidth() / 2f - dp(8), cy, paint); + canvas.drawLine(getWidth() / 2f + getTextWidth() / 2f + dp(8), cy, getWidth(), cy, paint); + + super.dispatchDraw(canvas); + } + }; + or.setGravity(Gravity.CENTER); + or.setAlignment(Layout.Alignment.ALIGN_CENTER); + or.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2, resourcesProvider)); + or.setText(" " + LocaleController.getString(R.string.InvitePremiumBlockedOr) + " "); + or.setTextSize(14); + addView(or, LayoutHelper.createLinear(190, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 12, 0, 12, 20)); + + title = new TextView(context); + title.setGravity(Gravity.CENTER); + title.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); + title.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); + title.setText(LocaleController.getString(R.string.InviteBlockedTitle)); + addView(title, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 32, 0, 32, 9)); + + description = new TextView(context); + description.setGravity(Gravity.CENTER); + description.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + description.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); + if (premiumInviteBlockedUsers.size() <= 1) { + description.setText(LocaleController.getString(R.string.InviteBlockedOneMessage)); + } else { + description.setText(LocaleController.getString(R.string.InviteBlockedManyMessage)); + } + addView(description, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 32, 0, 32, 19)); + } + + updatePremiumButtonText(); + return; + } else if (type != TYPE_FEATURES) { limitPreviewView = new LimitPreviewView(context, icon, currentValue, premiumLimit, percent, resourcesProvider) { @Override public void invalidate() { @@ -1699,7 +1918,7 @@ public void invalidate() { } title = new TextView(context); - title.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + title.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); if (type == TYPE_FEATURES) { title.setText(LocaleController.getString(R.string.BoostingAdditionalFeaturesTitle)); } else if (type == TYPE_BOOSTS_FOR_REMOVE_RESTRICTIONS) { @@ -1710,6 +1929,8 @@ public void invalidate() { } else { title.setText(getBoostsTitleString()); } + } else if (type == TYPE_BOOSTS_FOR_ADS) { + title.setText(getBoostsTitleString()); } else if (type == TYPE_BOOSTS_FOR_POSTING) { if (boostsStatus.level == 0) { title.setText(LocaleController.getString("BoostingEnableStories", R.string.BoostingEnableStories)); @@ -1824,7 +2045,7 @@ public void invalidate() { } else { addView(description, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 24, 0, 24, 24)); } - if(type == TYPE_FEATURES) { + if (type == TYPE_FEATURES) { ((MarginLayoutParams) description.getLayoutParams()).bottomMargin = dp(15); ((MarginLayoutParams) title.getLayoutParams()).bottomMargin = dp(6); ((MarginLayoutParams) title.getLayoutParams()).topMargin = dp(12); @@ -1941,6 +2162,11 @@ private String getBoostDescriptionStringAfterBoost() { R.string.GroupNeedBoostsForCustomEmojiPackDescription, messagesController.groupEmojiStickersLevelMin ); + } else if (type == TYPE_BOOSTS_FOR_ADS) { + descriptionStr = LocaleController.formatString( + R.string.ChannelNeedBoostsForSwitchOffAdsDescription, + messagesController.channelRestrictSponsoredLevelMin + ); } else if (type == TYPE_BOOSTS_FOR_EMOJI_STATUS) { descriptionStr = LocaleController.formatString( isGroup ? R.string.GroupNeedBoostsForEmojiStatusDescription : R.string.ChannelNeedBoostsForEmojiStatusDescription, @@ -2140,7 +2366,7 @@ private static LimitParams getLimitParams(int type, int currentAccount) { limitParams.descriptionStr = LocaleController.formatString("LimitReachedStoriesMonthly", R.string.LimitReachedStoriesMonthly, limitParams.defaultLimit, limitParams.premiumLimit); limitParams.descriptionStrPremium = LocaleController.formatString("LimitReachedStoriesMonthlyPremium", R.string.LimitReachedStoriesMonthlyPremium, limitParams.premiumLimit); limitParams.descriptionStrLocked = LocaleController.formatString("LimitReachedStoriesMonthlyPremium", R.string.LimitReachedStoriesMonthlyPremium, limitParams.defaultLimit); - } else if (type == TYPE_BOOSTS_FOR_POSTING || type == TYPE_BOOSTS_FOR_REMOVE_RESTRICTIONS || type == TYPE_BOOSTS_FOR_COLOR || type == TYPE_BOOSTS_FOR_PROFILE_COLOR || type == TYPE_BOOSTS_FOR_REPLY_ICON || type == TYPE_BOOSTS_FOR_PROFILE_ICON || type == TYPE_BOOSTS_FOR_EMOJI_STATUS || type == TYPE_BOOSTS_FOR_CUSTOM_EMOJI_PACK || type == TYPE_BOOSTS_FOR_WALLPAPER || type == TYPE_BOOSTS_FOR_CUSTOM_WALLPAPER || type == TYPE_BOOSTS_FOR_USERS || type == TYPE_BOOSTS_FOR_REACTIONS) { + } else if (type == TYPE_BOOSTS_FOR_POSTING || type == TYPE_BOOSTS_FOR_REMOVE_RESTRICTIONS || type == TYPE_BOOSTS_FOR_COLOR || type == TYPE_BOOSTS_FOR_PROFILE_COLOR || type == TYPE_BOOSTS_FOR_REPLY_ICON || type == TYPE_BOOSTS_FOR_PROFILE_ICON || type == TYPE_BOOSTS_FOR_EMOJI_STATUS || type == TYPE_BOOSTS_FOR_ADS || type == TYPE_BOOSTS_FOR_CUSTOM_EMOJI_PACK || type == TYPE_BOOSTS_FOR_WALLPAPER || type == TYPE_BOOSTS_FOR_CUSTOM_WALLPAPER || type == TYPE_BOOSTS_FOR_USERS || type == TYPE_BOOSTS_FOR_REACTIONS) { limitParams.defaultLimit = MessagesController.getInstance(currentAccount).storiesSentMonthlyLimitDefault; limitParams.premiumLimit = MessagesController.getInstance(currentAccount).storiesSentMonthlyLimitPremium; limitParams.icon = R.drawable.filled_limit_boost; @@ -2208,7 +2434,8 @@ private void updateRows() { type == TYPE_BOOSTS_FOR_CUSTOM_WALLPAPER || type == TYPE_BOOSTS_FOR_EMOJI_STATUS || type == TYPE_BOOSTS_FOR_CUSTOM_EMOJI_PACK || - type == TYPE_BOOSTS_FOR_REACTIONS + type == TYPE_BOOSTS_FOR_REACTIONS || + type == TYPE_BOOSTS_FOR_ADS ) { if (type != TYPE_BOOSTS_FOR_USERS || ChatObject.hasAdminRights(getChat())) { topPadding = .24f; @@ -2228,20 +2455,29 @@ private void updateRows() { rowCount += boostFeatures.size() - 1; chatEndRow = rowCount; } else if (!hasFixedSize(type)) { - dividerRow = rowCount++; - chatsTitleRow = rowCount++; + if (type != TYPE_ADD_MEMBERS_RESTRICTED) { + dividerRow = rowCount++; + chatsTitleRow = rowCount++; + } else { + topPadding = .24f; + } if (loading) { loadingRow = rowCount++; } else { - chatStartRow = rowCount; - if (type == TYPE_ADD_MEMBERS_RESTRICTED) { - rowCount += restrictedUsers.size(); - } else if (type == TYPE_TO0_MANY_COMMUNITIES) { - rowCount += inactiveChats.size(); - } else { - rowCount += chats.size(); + if ( + !(type == TYPE_ADD_MEMBERS_RESTRICTED && !MessagesController.getInstance(currentAccount).premiumFeaturesBlocked() && (premiumInviteBlockedUsers != null && !premiumInviteBlockedUsers.isEmpty() || premiumMessagingBlockedUsers != null && premiumMessagingBlockedUsers.size() >= restrictedUsers.size())) || + !(premiumInviteBlockedUsers != null && premiumInviteBlockedUsers.size() == 1 && premiumMessagingBlockedUsers != null && premiumMessagingBlockedUsers.size() == 1 && canSendLink) + ) { + chatStartRow = rowCount; + if (type == TYPE_ADD_MEMBERS_RESTRICTED) { + rowCount += restrictedUsers.size(); + } else if (type == TYPE_TO0_MANY_COMMUNITIES) { + rowCount += inactiveChats.size(); + } else { + rowCount += chats.size(); + } + chatEndRow = rowCount; } - chatEndRow = rowCount; if (chatEndRow - chatStartRow > 1) { emptyViewDividerRow = rowCount++; } @@ -2404,6 +2640,7 @@ private void setupBoostFeatures() { maxlvl = Math.max(maxlvl, m.channelEmojiStatusLevelMin); maxlvl = Math.max(maxlvl, m.channelWallpaperLevelMin); maxlvl = Math.max(maxlvl, m.channelCustomWallpaperLevelMin); + maxlvl = Math.max(maxlvl, m.channelRestrictSponsoredLevelMin); } } @@ -2422,9 +2659,9 @@ private ArrayList boostFeaturesForLevel(int level) { ArrayList list = new ArrayList<>(); final MessagesController m = MessagesController.getInstance(currentAccount); if (m == null) return list; - list.add(BoostFeature.of(R.drawable.menu_feature_stories, "BoostFeatureStoriesPerDay", level)); + list.add(BoostFeature.of(R.drawable.menu_feature_stories, "BoostFeatureStoriesPerDay", level).asIncremental()); if (!isGroup) { - list.add(BoostFeature.of(R.drawable.menu_feature_reactions, "BoostFeatureCustomReaction", level)); + list.add(BoostFeature.of(R.drawable.menu_feature_reactions, "BoostFeatureCustomReaction", level).asIncremental()); } final int nameColorsAvailable = m.peerColors != null ? m.peerColors.colorsAvailable(level, false) : 0; final int profileColorsAvailable = m.profilePeerColors != null ? m.profilePeerColors.colorsAvailable(level, isGroup) : 0; @@ -2458,6 +2695,9 @@ private ArrayList boostFeaturesForLevel(int level) { if ((!isGroup && level >= m.channelCustomWallpaperLevelMin) || (isGroup && level >= m.groupCustomWallpaperLevelMin)) { list.add(BoostFeature.of(R.drawable.menu_feature_custombg, isGroup ? R.string.BoostFeatureCustomBackgroundGroup : R.string.BoostFeatureCustomBackground)); } + if ((!isGroup && level >= m.channelRestrictSponsoredLevelMin)) { + list.add(BoostFeature.of(R.drawable.menu_feature_noads, R.string.BoostFeatureSwitchOffAds)); + } Collections.reverse(list); return list; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumFeatureBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumFeatureBottomSheet.java index f04fe650c7..1fc291e708 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumFeatureBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumFeatureBottomSheet.java @@ -396,8 +396,8 @@ public void onPageScrollStateChanged(int i) { BaseFragment mainFragment = LaunchActivity.getLastFragment(); for (int i = 0; i < 2; i++) { BaseFragment currentFragment = i == 0 ? fragment : mainFragment; - if (currentFragment != null && currentFragment.storyViewer != null && currentFragment.storyViewer.isShown()) { - currentFragment.storyViewer.dismissVisibleDialogs(); + if (currentFragment != null && currentFragment.getLastStoryViewer() != null) { + currentFragment.getLastStoryViewer().dismissVisibleDialogs(); } if (currentFragment != null && currentFragment.getVisibleDialog() != null) { currentFragment.getVisibleDialog().dismiss(); @@ -516,8 +516,8 @@ public boolean dispatchTouchEvent(MotionEvent event) { private static Theme.ResourcesProvider getResourceProvider(BaseFragment fragment) { if (fragment != null) { - if (fragment.storyViewer != null && fragment.storyViewer.isShown()) { - return fragment.storyViewer.getResourceProvider(); + if (fragment.getLastStoryViewer() != null && fragment.getLastStoryViewer().isShown()) { + return fragment.getLastStoryViewer().getResourceProvider(); } return fragment.getResourceProvider(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumPreviewBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumPreviewBottomSheet.java index 64216973a4..43d79eb4fb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumPreviewBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumPreviewBottomSheet.java @@ -420,7 +420,7 @@ protected CharSequence getTitle() { } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { return new Adapter(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostRepository.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostRepository.java index c4f685fff7..f95c71d538 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostRepository.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostRepository.java @@ -19,7 +19,6 @@ import org.telegram.messenger.MessageObject; import org.telegram.messenger.MessagesController; import org.telegram.messenger.MessagesStorage; -import org.telegram.messenger.SharedConfig; import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserObject; import org.telegram.messenger.Utilities; @@ -28,7 +27,7 @@ import org.telegram.tgnet.TLRPC; import org.telegram.tgnet.tl.TL_stories; import org.telegram.ui.ActionBar.BaseFragment; -import org.telegram.ui.Components.BotWebViewSheet; +import org.telegram.ui.bots.BotWebViewSheet; import org.telegram.ui.LaunchActivity; //import org.telegram.ui.PaymentFormActivity; @@ -639,7 +638,7 @@ public static void loadCountries(Utilities.Callback> onDone) { + public static int loadGiftOptions(TLRPC.Chat chat, Utilities.Callback> onDone) { MessagesController controller = MessagesController.getInstance(UserConfig.selectedAccount); ConnectionsManager connection = ConnectionsManager.getInstance(UserConfig.selectedAccount); TLRPC.TL_payments_getPremiumGiftCodeOptions req = new TLRPC.TL_payments_getPremiumGiftCodeOptions(); @@ -647,8 +646,9 @@ public static void loadGiftOptions(TLRPC.Chat chat, Utilities.Callback { +// return connection.sendRequest(req, (response, error) -> { // if (response != null) { // TLRPC.Vector vector = (TLRPC.Vector) response; // List result = new ArrayList<>(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostViaGiftsBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostViaGiftsBottomSheet.java index bbf89e2bb0..86b5011513 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostViaGiftsBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostViaGiftsBottomSheet.java @@ -447,7 +447,7 @@ protected CharSequence getTitle() { } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { return adapter = new BoostAdapter(resourcesProvider); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/GiftInfoBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/GiftInfoBottomSheet.java index f5ef0d54c0..c61ad39466 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/GiftInfoBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/GiftInfoBottomSheet.java @@ -146,7 +146,7 @@ protected CharSequence getTitle() { } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { return adapter = new GiftInfoAdapter(resourcesProvider) { @Override protected void dismiss() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/PremiumPreviewGiftToUsersBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/PremiumPreviewGiftToUsersBottomSheet.java index eb584bf3ed..fc3554d4cb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/PremiumPreviewGiftToUsersBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/PremiumPreviewGiftToUsersBottomSheet.java @@ -68,7 +68,8 @@ public static void show(List selectedUsers, List selectedUsers, List giftCodeOptions, Theme.ResourcesProvider resourcesProvider) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/ReassignBoostBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/ReassignBoostBottomSheet.java index 87268ccb81..a381a654e9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/ReassignBoostBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/ReassignBoostBottomSheet.java @@ -226,7 +226,7 @@ protected CharSequence getTitle() { } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { return new RecyclerListView.SelectionAdapter() { @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/SelectorBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/SelectorBottomSheet.java index ce9a776dd8..65a00b84a6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/SelectorBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/SelectorBottomSheet.java @@ -682,7 +682,7 @@ protected CharSequence getTitle() { } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { return selectorAdapter = new SelectorAdapter(getContext(), resourcesProvider); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/UserSelectorBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/UserSelectorBottomSheet.java index 39b2edd823..8c3f1ddeb4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/UserSelectorBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/UserSelectorBottomSheet.java @@ -1,6 +1,8 @@ package org.telegram.ui.Components.Premium.boosts; import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.getString; +import static org.telegram.ui.Components.Premium.boosts.adapters.SelectorAdapter.VIEW_TYPE_TOP_SECTION; import android.annotation.SuppressLint; import android.content.Intent; @@ -25,6 +27,7 @@ import androidx.recyclerview.widget.RecyclerView; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BirthdayController; import org.telegram.messenger.ContactsController; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaDataController; @@ -62,6 +65,10 @@ public class UserSelectorBottomSheet extends BottomSheetWithRecyclerListView imp private static UserSelectorBottomSheet instance; public static void open() { + open(0, null); + } + + public static void open(long userId, BirthdayController.BirthdayState birthdayState) { BaseFragment fragment = LaunchActivity.getLastFragment(); if (fragment == null) { return; @@ -69,8 +76,12 @@ public static void open() { if (instance != null) { return; } - UserSelectorBottomSheet sheet = new UserSelectorBottomSheet(fragment, true); - sheet.show(); + UserSelectorBottomSheet sheet = new UserSelectorBottomSheet(fragment, userId, birthdayState, true); + if (fragment != null) { + fragment.showDialog(sheet); + } else { + sheet.show(); + } instance = sheet; } @@ -128,6 +139,9 @@ public static boolean handleIntent(Intent intent, Browser.Progress progress) { private float recipientsBtnExtraSpace; private ReplacementSpan recipientsBtnSpaceSpan; + private long userId; + private BirthdayController.BirthdayState birthdays; + private final Runnable remoteSearchRunnable = new Runnable() { @Override public void run() { @@ -150,12 +164,12 @@ private void checkEditTextHint() { if (selectedIds.size() > 0) { if (!isHintSearchText) { isHintSearchText = true; - AndroidUtilities.runOnUIThread(() -> searchField.setHintText(LocaleController.getString("Search", R.string.Search), true), 10); + AndroidUtilities.runOnUIThread(() -> searchField.setHintText(getString("Search", R.string.Search), true), 10); } } else { if (isHintSearchText) { isHintSearchText = false; - AndroidUtilities.runOnUIThread(() -> searchField.setHintText(LocaleController.getString("GiftPremiumUsersSearchHint", R.string.GiftPremiumUsersSearchHint), true), 10); + AndroidUtilities.runOnUIThread(() -> searchField.setHintText(getString("GiftPremiumUsersSearchHint", R.string.GiftPremiumUsersSearchHint), true), 10); } } } @@ -174,9 +188,23 @@ public void draw(@NonNull Canvas canvas, CharSequence text, int start, int end, }; } - public UserSelectorBottomSheet(BaseFragment fragment, boolean needFocus) { + public UserSelectorBottomSheet(BaseFragment fragment, long userId, BirthdayController.BirthdayState state, boolean needFocus) { super(fragment, needFocus, false, false, fragment.getResourceProvider()); + this.birthdays = state; + if (birthdays != null && !birthdays.today.isEmpty()) { + for (TLRPC.User user : birthdays.today) { + selectedIds.add(user.id); + allSelectedObjects.put(user.id, user); + } + } + this.userId = userId; + if (userId != 0 && fragment != null && !selectedIds.contains(userId)) { + TLRPC.User user = fragment.getMessagesController().getUser(userId); + selectedIds.add(user.id); + allSelectedObjects.put(user.id, user); + } + headerView = new SelectorHeaderCell(getContext(), resourcesProvider) { @Override protected int getHeaderHeight() { @@ -212,7 +240,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { }; searchField.setBackgroundColor(getThemedColor(Theme.key_dialogBackground)); searchField.setOnSearchTextChange(this::onSearch); - searchField.setHintText(LocaleController.getString("GiftPremiumUsersSearchHint", R.string.GiftPremiumUsersSearchHint), false); + searchField.setHintText(getString(!selectedIds.isEmpty() ? R.string.Search : R.string.GiftPremiumUsersSearchHint), false); sectionCell = new View(getContext()) { @Override @@ -276,7 +304,7 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat checkEditTextHint(); updateList(true, false); }, null); - updateList(true, false); + updateList(true, true); clearSearchAfterSelect(); } }); @@ -396,7 +424,7 @@ public void dismissInternal() { } private void showMaximumUsersToast() { - String text = LocaleController.getString("BoostingSelectUpToWarningUsers", R.string.BoostingSelectUpToWarningUsers); + String text = getString("BoostingSelectUpToWarningUsers", R.string.BoostingSelectUpToWarningUsers); BulletinFactory.of(container, resourcesProvider).createSimpleBulletin(R.raw.chats_infotip, text).show(true); try { container.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); @@ -445,14 +473,14 @@ private void updateActionButton(boolean animated) { SpannableStringBuilder stringBuilder = new SpannableStringBuilder(); if (selectedIds.size() == 0) { if (LocaleController.isRTL) { - stringBuilder.append(LocaleController.getString("GiftPremiumChooseRecipientsBtn", R.string.GiftPremiumChooseRecipientsBtn)); + stringBuilder.append(getString("GiftPremiumChooseRecipientsBtn", R.string.GiftPremiumChooseRecipientsBtn)); stringBuilder.append("d").setSpan(recipientsBtnSpaceSpan, stringBuilder.length() - 1, stringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } else { stringBuilder.append("d").setSpan(recipientsBtnSpaceSpan, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - stringBuilder.append(LocaleController.getString("GiftPremiumChooseRecipientsBtn", R.string.GiftPremiumChooseRecipientsBtn)); + stringBuilder.append(getString("GiftPremiumChooseRecipientsBtn", R.string.GiftPremiumChooseRecipientsBtn)); } } else { - stringBuilder.append(LocaleController.getString("GiftPremiumProceedBtn", R.string.GiftPremiumProceedBtn)); + stringBuilder.append(getString("GiftPremiumProceedBtn", R.string.GiftPremiumProceedBtn)); } actionButton.setCount(selectedIds.size(), true); actionButton.setText(stringBuilder, animated, false); @@ -474,24 +502,62 @@ private void clearSearchAfterSelect() { } } - private void updateSectionCell(boolean animated) { - if (selectedIds == null) { - return; + private boolean isSearching() { + return !TextUtils.isEmpty(query); + } + + private int addSection(ArrayList items, CharSequence title, ArrayList users, boolean addSelectAll) { + int h = 0; + if (users.isEmpty()) { + return h; } - if (selectedIds.size() > 0) { - selectorAdapter.setTopSectionClickListener(v -> { - selectedIds.clear(); - searchField.spansContainer.removeAllSpans(true); + List userItems = new ArrayList<>(); + int count = 0; + boolean allSelected = true; + for (TLRPC.User user : users) { + if (user.id == userId) { + continue; + } + if (!selectedIds.contains(user.id)) { + allSelected = false; + } + count++; + h += dp(56); + userItems.add(Item.asUser(user, selectedIds.contains(user.id))); + } + if (userItems.isEmpty()) { + return h; + } + h += dp(32); + Item header = Item.asTopSection(title); + if (addSelectAll && count > 1) { + final boolean finalAllSelected = allSelected; + header.withRightText(getString(allSelected ? R.string.DeselectAll : R.string.SelectAll), v -> { + if (finalAllSelected) { + for (TLRPC.User user : users) { + selectedIds.remove(user.id); + allSelectedObjects.remove(user.id); + } + } else { + for (TLRPC.User user : users) { + if (!selectedIds.contains(user.id)) { + selectedIds.add(user.id); + allSelectedObjects.put(user.id, user); + } + } + } checkEditTextHint(); - updateList(true, false); + searchField.updateSpans(true, selectedIds, () -> { + checkEditTextHint(); + updateList(true, false); + }, null); + updateList(true, true); + clearSearchAfterSelect(); }); - } else { - selectorAdapter.setTopSectionClickListener(null); } - } - - private boolean isSearching() { - return !TextUtils.isEmpty(query); + items.add(header); + items.addAll(userItems); + return h; } @SuppressLint("NotifyDataSetChanged") @@ -507,19 +573,37 @@ public void updateItems(boolean animated, boolean notify) { items.add(Item.asUser(foundedUser, selectedIds.contains(foundedUser.id))); } } else { + if (userId >= 0) { + TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(userId); + if (user != null) { + // + } + } + if (birthdays != null) { + h += addSection(items, getString(R.string.BirthdayToday), birthdays.today, true); + h += addSection(items, getString(R.string.BirthdayYesterday), birthdays.yesterday, true); + h += addSection(items, getString(R.string.BirthdayTomorrow), birthdays.tomorrow, true); + } + Item topSection = null; + ArrayList selected = new ArrayList<>(); if (!hints.isEmpty()) { List userItems = new ArrayList<>(); for (TLRPC.TL_topPeer hint : hints) { TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(hint.peer.user_id); - if (user.self || user.bot || UserObject.isService(user.id) || UserObject.isDeleted(user)) { + if (user == null || user.id == userId || user.self || user.bot || UserObject.isService(user.id) || UserObject.isDeleted(user)) { continue; } + if (birthdays != null && birthdays.contains(user.id)) { + continue; + } + if (selectedIds.contains(user.id)) selected.add(user.id); h += dp(56); userItems.add(Item.asUser(user, selectedIds.contains(user.id))); } if (!userItems.isEmpty()) { h += dp(32); - items.add(Item.asTopSection(LocaleController.getString("GiftPremiumFrequentContacts", R.string.GiftPremiumFrequentContacts))); + topSection = Item.asTopSection(getString(R.string.GiftPremiumFrequentContacts)); + items.add(topSection); items.addAll(userItems); } } @@ -527,11 +611,15 @@ public void updateItems(boolean animated, boolean notify) { List userItems = new ArrayList<>(); for (TLRPC.TL_contact contact : contactsMap.get(contactLetter)) { long myUid = UserConfig.getInstance(currentAccount).getClientUserId(); - if (contact.user_id == myUid) { + if (contact.user_id == myUid || contact.user_id == userId) { + continue; + } + if (birthdays != null && birthdays.contains(contact.user_id)) { continue; } h += dp(56); TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(contact.user_id); + if (selectedIds.contains(user.id)) selected.add(user.id); userItems.add(Item.asUser(user, selectedIds.contains(user.id))); } @@ -541,6 +629,21 @@ public void updateItems(boolean animated, boolean notify) { items.addAll(userItems); } } + if (topSection != null && selected.size() > 0 && !selectedIds.isEmpty()) { + topSection.withRightText(getString(R.string.DeselectAll), v -> { + for (long userId : selected) { + selectedIds.remove(userId); + allSelectedObjects.remove(userId); + } + checkEditTextHint(); + searchField.updateSpans(true, selectedIds, () -> { + checkEditTextHint(); + updateList(true, false); + }, null); + updateList(true, true); + clearSearchAfterSelect(); + }); + } } if (items.isEmpty()) { @@ -550,8 +653,6 @@ public void updateItems(boolean animated, boolean notify) { int minHeight = (int) (AndroidUtilities.displaySize.y * 0.6f); items.add(Item.asPad(Math.max(0, minHeight - h))); - updateSectionCell(animated); - if (notify && selectorAdapter != null) { if (animated) { selectorAdapter.setItems(oldItems, items); @@ -569,11 +670,11 @@ public void onConfigurationChanged(Configuration newConfig) { @Override protected CharSequence getTitle() { - return LocaleController.getString("GiftTelegramPremiumTitle", R.string.GiftTelegramPremiumTitle); + return getString("GiftTelegramPremiumTitle", R.string.GiftTelegramPremiumTitle); } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { selectorAdapter = new SelectorAdapter(getContext(), resourcesProvider); selectorAdapter.setGreenSelector(true); return selectorAdapter; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/SelectorAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/SelectorAdapter.java index 952ab38ed7..dd95d46f64 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/SelectorAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/SelectorAdapter.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.graphics.Paint; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; @@ -11,6 +12,8 @@ import androidx.recyclerview.widget.RecyclerView; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.DialogObject; +import org.telegram.messenger.Emoji; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MessagesController; import org.telegram.messenger.R; @@ -25,6 +28,7 @@ import org.telegram.ui.Components.Premium.boosts.cells.selector.SelectorUserCell; import org.telegram.ui.Components.RecyclerListView; import org.telegram.ui.Components.StickerEmptyView; +import org.telegram.ui.DialogsActivity; import java.util.HashMap; import java.util.List; @@ -149,7 +153,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } userCell.setChecked(item.checked, false); userCell.setCheckboxAlpha(1f, false); - userCell.setDivider(position < items.size() - 2); + userCell.setDivider(position + 1 >= items.size() || items.get(position + 1).viewType == viewType); if ((position + 1 < items.size()) && items.get(position + 1).viewType == VIEW_TYPE_LETTER) { userCell.setDivider(false); } @@ -176,11 +180,13 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } } else if (viewType == VIEW_TYPE_TOP_SECTION) { GraySectionCell cell = (GraySectionCell) holder.itemView; - cell.setText(item.text); - if (topSectionClickListener == null) { - cell.setRightText(null, null); + if (TextUtils.equals(cell.getText(), item.text)) { + cell.setRightText(item.subtext == null ? "" : item.subtext, true, item.callback); } else { - cell.setRightText(LocaleController.getString(R.string.UsersDeselectAll), topSectionClickListener); + cell.setText(Emoji.replaceWithRestrictedEmoji(item.text, cell.getTextView(), null)); + if (!TextUtils.isEmpty(item.subtext)) { + cell.setRightText(item.subtext, item.callback); + } } topSectionCell = cell; } @@ -266,10 +272,11 @@ public static class Item extends AdapterWithDiffUtils.Item { public TLRPC.InputPeer peer; public TLRPC.Chat chat; public TLRPC.TL_help_country country; - public String text; + public CharSequence text, subtext; public int type; public boolean checked; public int padHeight = -1; + public View.OnClickListener callback; private Item(int viewType, boolean selectable) { super(viewType, selectable); @@ -296,12 +303,18 @@ public static Item asLetter(String letter) { return item; } - public static Item asTopSection(String text) { + public static Item asTopSection(CharSequence text) { Item item = new Item(VIEW_TYPE_TOP_SECTION, false); item.text = text; return item; } + public Item withRightText(String rightText, View.OnClickListener whenRightTextClicked) { + subtext = rightText; + callback = whenRightTextClicked; + return this; + } + public static Item asCountry(TLRPC.TL_help_country tlHelpCountry, boolean checked) { Item item = new Item(VIEW_TYPE_COUNTRY, true); item.country = tlHelpCountry; @@ -327,6 +340,13 @@ public static Item asChat(TLRPC.Chat chat, boolean checked) { return item; } + public long getDialogId() { + if (user != null) return user.id; + if (chat != null) return -chat.id; + if (peer != null) return DialogObject.getPeerDialogId(peer); + return 0; + } + public static Item asNoUsers() { return new Item(VIEW_TYPE_NO_USERS, false); } @@ -341,15 +361,29 @@ public boolean equals(Object o) { } if (viewType == VIEW_TYPE_PAD && (padHeight != i.padHeight)) { return false; - } else if (viewType == VIEW_TYPE_USER && (user != i.user || chat != i.chat || peer != i.peer || type != i.type || checked != i.checked)) { + } else if (viewType == VIEW_TYPE_USER && (getDialogId() != i.getDialogId() || type != i.type)) { return false; - } else if (viewType == VIEW_TYPE_COUNTRY && (country != i.country || checked != i.checked)) { + } else if (viewType == VIEW_TYPE_COUNTRY && (country != i.country)) { return false; } else if (viewType == VIEW_TYPE_LETTER && (!TextUtils.equals(text, i.text))) { return false; - } else if (viewType == VIEW_TYPE_TOP_SECTION && (!TextUtils.equals(text, i.text) || checked != i.checked)) { + } else if (viewType == VIEW_TYPE_TOP_SECTION && (!TextUtils.equals(text, i.text))) { + return false; + } + return true; + } + + @Override + protected boolean contentsEquals(AdapterWithDiffUtils.Item o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Item i = (Item) o; + if (checked != i.checked) { return false; } + if (viewType == VIEW_TYPE_TOP_SECTION) { + return TextUtils.equals(subtext, i.subtext) && (callback == null) == (i.callback == null); + } return true; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/selector/SelectorLetterCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/selector/SelectorLetterCell.java index 1785e1abbb..5a4b0bbacc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/selector/SelectorLetterCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/selector/SelectorLetterCell.java @@ -32,7 +32,7 @@ public SelectorLetterCell(@NonNull Context context, Theme.ResourcesProvider reso addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 16, 0, 16, 0)); } - public void setLetter(String letter) { + public void setLetter(CharSequence letter) { textView.setText(letter); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java index 97dd08947d..d72f043e2f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java @@ -215,9 +215,15 @@ public void run() { } generatingCache = false; decodeFrameFinishedInternal(); + if (whenCacheDone != null) { + whenCacheDone.run(); + whenCacheDone = null; + } } }; + public Runnable whenCacheDone; + BitmapsCache bitmapsCache; int generateCacheFramePointer; @@ -1021,6 +1027,14 @@ protected boolean scheduleNextGetFrame() { return true; } + public void post(Runnable runnable) { + if (shouldLimitFps && Thread.currentThread() == ApplicationLoader.applicationHandler.getLooper().getThread()) { + DispatchQueuePoolBackground.execute(() -> AndroidUtilities.runOnUIThread(runnable), frameWaitSync != null); + } else { + loadFrameRunnableQueue.execute(() -> AndroidUtilities.runOnUIThread(runnable)); + } + } + public boolean isHeavyDrawable() { return isDice == 0; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomEmojiReactionsWindow.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomEmojiReactionsWindow.java index d2ed41a285..ab5b8413d9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomEmojiReactionsWindow.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomEmojiReactionsWindow.java @@ -1,5 +1,6 @@ package org.telegram.ui.Components.Reactions; +import static org.telegram.ui.Components.ReactionsContainerLayout.TYPE_STICKER_SET_EMOJI; import static org.telegram.ui.Components.ReactionsContainerLayout.TYPE_STORY; import static org.telegram.ui.Components.ReactionsContainerLayout.TYPE_STORY_LIKES; import static org.telegram.ui.Components.ReactionsContainerLayout.TYPE_TAGS; @@ -48,6 +49,7 @@ import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ChatActivity; +import org.telegram.ui.Components.AnimatedEmojiDrawable; import org.telegram.ui.Components.Bulletin; import org.telegram.ui.Components.BulletinFactory; import org.telegram.ui.Components.CubicBezierInterpolator; @@ -160,7 +162,7 @@ public void setAlpha(float alpha) { dismiss(); } }); - attachToParent = type == TYPE_STORY_LIKES; + attachToParent = type == TYPE_STORY_LIKES || type == TYPE_STICKER_SET_EMOJI; // sizeNotifierFrameLayout.setFitsSystemWindows(true); @@ -200,7 +202,7 @@ protected void onReactionClick(ImageViewEmoji emoji, ReactionsLayoutInBubble.Vis @Override protected void onEmojiSelected(View emojiView, Long documentId, TLRPC.Document document, Integer until) { - if (!UserConfig.getInstance(baseFragment.getCurrentAccount()).isPremium()) { + if (baseFragment != null && reactionsContainerLayout.getWindowType() != SelectAnimatedEmojiDialog.TYPE_STICKER_SET_EMOJI && !UserConfig.getInstance(baseFragment.getCurrentAccount()).isPremium()) { windowView.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP); BulletinFactory.of(windowView, null).createEmojiBulletin( document, @@ -210,7 +212,11 @@ protected void onEmojiSelected(View emojiView, Long documentId, TLRPC.Document d ).show(); return; } - reactionsContainerLayout.onReactionClicked(emojiView, ReactionsLayoutInBubble.VisibleReaction.fromCustomEmoji(documentId), false); + if (documentId == null && document == null) return; + if (document != null) { + AnimatedEmojiDrawable.getDocumentFetcher(UserConfig.selectedAccount).putDocument(document); + } + reactionsContainerLayout.onReactionClicked(emojiView, ReactionsLayoutInBubble.VisibleReaction.fromCustomEmoji(documentId == null ? document.id : documentId), false); AndroidUtilities.hideKeyboard(windowView); } @@ -360,7 +366,7 @@ private void createTransition(boolean enter) { if (type == TYPE_STORY) { containerView.setTranslationX((windowView.getMeasuredWidth() - containerView.getMeasuredWidth()) / 2f - AndroidUtilities.dp(16)); - } else if (type == TYPE_STORY_LIKES) { + } else if (type == TYPE_STORY_LIKES || type == TYPE_STICKER_SET_EMOJI) { containerView.setTranslationX(location[0] - windowLocation[0] - AndroidUtilities.dp(18)); } else { containerView.setTranslationX(location[0] - windowLocation[0] - AndroidUtilities.dp(2)); @@ -731,7 +737,7 @@ public void invalidate() { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int size; - if (type == TYPE_STORY || type == TYPE_STORY_LIKES) { + if (type == TYPE_STORY || type == TYPE_STORY_LIKES || type == TYPE_STICKER_SET_EMOJI) { size = reactionsContainerLayout.getMeasuredWidth(); } else { size = Math.min(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.getSize(heightMeasureSpec)); @@ -782,7 +788,7 @@ protected void dispatchDraw(Canvas canvas) { } if (reactionsContainerLayout.hintView != null) { canvas.save(); - canvas.translate(drawingRect.left, drawingRect.top + reactionsContainerLayout.hintView.getY() - (type == TYPE_TAGS ? reactionsContainerLayout.rect.top : 0)); + canvas.translate(drawingRect.left, drawingRect.top + reactionsContainerLayout.hintView.getY() - (type == TYPE_TAGS || type == TYPE_STICKER_SET_EMOJI ? reactionsContainerLayout.rect.top : 0)); canvas.saveLayerAlpha( 0, 0, reactionsContainerLayout.hintView.getMeasuredWidth(), reactionsContainerLayout.hintView.getMeasuredHeight(), (int) (255 * reactionsContainerLayout.hintView.getAlpha() * (1f - enterTransitionProgress)), Canvas.ALL_SAVE_FLAG); reactionsContainerLayout.hintView.draw(canvas); canvas.restore(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsLayoutInBubble.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsLayoutInBubble.java index caa5e0c366..1c87da57da 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsLayoutInBubble.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsLayoutInBubble.java @@ -1264,6 +1264,17 @@ public boolean isSame(TLRPC.Reaction reaction) { return false; } + public VisibleReaction flatten() { + if (documentId != 0) { + TLRPC.Document document = AnimatedEmojiDrawable.findDocument(UserConfig.selectedAccount, documentId); + String emoji = MessageObject.findAnimatedEmojiEmoticon(document, null); + if (emoji != null) { + return VisibleReaction.fromEmojicon(emoji); + } + } + return this; + } + @NonNull @Override public String toString() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ReactionsContainerLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ReactionsContainerLayout.java index a2a6192e70..4a0d4c582b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ReactionsContainerLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ReactionsContainerLayout.java @@ -4,6 +4,7 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; +import android.animation.LayoutTransition; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.annotation.SuppressLint; @@ -23,9 +24,9 @@ import android.provider.Settings; import android.text.Layout; import android.text.StaticLayout; +import android.text.TextUtils; import android.util.LongSparseArray; import android.util.Property; -import android.util.SparseArray; import android.util.TypedValue; import android.view.Gravity; import android.view.HapticFeedbackConstants; @@ -33,7 +34,6 @@ import android.view.View; import android.view.ViewConfiguration; import android.view.ViewGroup; -import android.view.ViewTreeObserver; import android.view.accessibility.AccessibilityNodeInfo; import android.view.animation.OvershootInterpolator; import android.widget.FrameLayout; @@ -65,7 +65,6 @@ import org.telegram.messenger.SvgHelper; import org.telegram.messenger.UserConfig; import org.telegram.messenger.Utilities; -import org.telegram.messenger.support.LongSparseLongArray; import org.telegram.tgnet.TLRPC; import org.telegram.tgnet.tl.TL_stories; import org.telegram.ui.ActionBar.AlertDialog; @@ -107,6 +106,7 @@ public void set(ReactionsContainerLayout object, Float value) { public final static int TYPE_STORY = 1; public static final int TYPE_STORY_LIKES = 2; public static final int TYPE_TAGS = 3; + public static final int TYPE_STICKER_SET_EMOJI = 4; private final static int ALPHA_DURATION = 150; private final static float SIDE_SCALE = 0.6f; @@ -176,6 +176,7 @@ public boolean equals(Object o) { RectF rectF = new RectF(); HashSet selectedReactions = new HashSet<>(); + HashSet alwaysSelectedReactions = new HashSet<>(); private int[] location = new int[2]; @@ -223,6 +224,7 @@ public boolean equals(Object o) { public TextView hintView; public int hintViewWidth, hintViewHeight; public float bubblesOffset; + private float miniBubblesOffset; public ReactionsContainerLayout(int type, BaseFragment fragment, @NonNull Context context, int currentAccount, Theme.ResourcesProvider resourcesProvider) { super(context); @@ -390,7 +392,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int customEmojiReactionsIconView = new InternalImageView(context); customEmojiReactionsIconView.setImageResource(R.drawable.msg_reactions_expand); customEmojiReactionsIconView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); - if (type == TYPE_STORY || type == TYPE_STORY_LIKES) { + if (type == TYPE_STORY || type == TYPE_STORY_LIKES || type == TYPE_STICKER_SET_EMOJI) { customEmojiReactionsIconView.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.MULTIPLY)); } else { customEmojiReactionsIconView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogBackground), PorterDuff.Mode.MULTIPLY)); @@ -529,7 +531,7 @@ public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull R nextRecentReaction.getLayoutParams().width = size - dp(12); nextRecentReaction.getLayoutParams().height = size; - if (type == TYPE_STORY_LIKES) { + if (type == TYPE_STORY_LIKES || type == TYPE_STICKER_SET_EMOJI) { bgPaint.setColor(ColorUtils.blendARGB(Color.BLACK, Color.WHITE, 0.13f)); } else { bgPaint.setColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground, resourcesProvider)); @@ -541,7 +543,14 @@ public boolean showExpandableReactions() { return showExpandableReactions; } + public List getVisibleReactionsList() { + return visibleReactionsList; + } + public int getWindowType() { + if (type == TYPE_STICKER_SET_EMOJI) { + return SelectAnimatedEmojiDialog.TYPE_STICKER_SET_EMOJI; + } if (type == TYPE_TAGS) { return SelectAnimatedEmojiDialog.TYPE_TAGS; } @@ -597,11 +606,11 @@ private void showCustomEmojiReactionDialog() { //animatePullingBack(); } - protected void onShownCustomEmojiReactionDialog(){ + protected void onShownCustomEmojiReactionDialog() { } - private void invalidateLoopViews() { + public void invalidateLoopViews() { for (int i = 0; i < recyclerListView.getChildCount(); i++) { View child = recyclerListView.getChildAt(i); if (child instanceof ReactionHolderView) { @@ -948,7 +957,7 @@ private void drawBubbles(Canvas canvas, float br, float cPr, float sr, int alpha } cx = LocaleController.isRTL || mirrorX ? bigCircleOffset - bigCircleRadius : getWidth() - bigCircleOffset + bigCircleRadius; - cx += bubblesOffset; + cx += bubblesOffset + miniBubblesOffset; cy = isTop ? getPaddingTop() - expandSize() - dp(16) : getHeight() - smallCircleRadius - sPad + expandSize(); cy = AndroidUtilities.lerp(cy, smallCircleRadius + sPad - expandSize(), CubicBezierInterpolator.DEFAULT.getInterpolation(flipVerticalProgress)); sPad = -dp(1); @@ -966,6 +975,10 @@ private void drawBubbles(Canvas canvas, float br, float cPr, float sr, int alpha bgPaint.setAlpha(255); } + public void setMiniBubblesOffset(float miniBubblesOffset) { + this.miniBubblesOffset = miniBubblesOffset; + } + private void checkPressedProgressForOtherViews(View view) { int position = recyclerListView.getChildAdapterPosition(view); float translationX; @@ -1136,6 +1149,9 @@ public void setMessage(MessageObject message, TLRPC.ChatFull chatFull) { if (type == TYPE_TAGS && !UserConfig.getInstance(currentAccount).isPremium()) { showExpandableReactions = false; } + if (type == TYPE_STICKER_SET_EMOJI) { + showExpandableReactions = true; + } setVisibleReactionsList(visibleReactions); if (message != null && message.messageOwner.reactions != null && message.messageOwner.reactions.results != null) { @@ -1183,6 +1199,27 @@ public HashSet getSelectedReactions() { return selectedReactions; } + public String getSelectedEmoji() { + if (selectedReactions.isEmpty()) { + return ""; + } + String result = null; + ReactionsLayoutInBubble.VisibleReaction visibleReaction = selectedReactions.iterator().next(); + if (visibleReaction.documentId != 0) { + TLRPC.Document document = AnimatedEmojiDrawable.findDocument(currentAccount, visibleReaction.documentId); + if (document != null) { + result = MessageObject.findAnimatedEmojiEmoticon(document, null); + } + } + if (TextUtils.isEmpty(result)) { + result = visibleReaction.emojicon; + } + if (TextUtils.isEmpty(result)) { + result = "๐Ÿ‘"; + } + return result; + } + public static HashSet getInclusiveReactions(ArrayList messages) { LongSparseArray arr = new LongSparseArray<>(); HashSet messageReactions = new HashSet<>(); @@ -1220,6 +1257,20 @@ public void setSelectedReactionsInclusive(ArrayList messages) { selectedReactions.clear(); selectedReactions.addAll(getInclusiveReactions(messages)); updateSelected(); + if (type == TYPE_STICKER_SET_EMOJI) { + alwaysSelectedReactions.addAll(selectedReactions); + setMessage(messageObject, null); + } + } + + public void setSelectedReactionInclusive(ReactionsLayoutInBubble.VisibleReaction visibleReaction) { + selectedReactions.clear(); + selectedReactions.add(visibleReaction); + updateSelected(); + if (type == TYPE_STICKER_SET_EMOJI) { + alwaysSelectedReactions.addAll(selectedReactions); + setMessage(messageObject, null); + } } private void updateSelected() { @@ -1244,11 +1295,20 @@ private void filterReactions(List visib } private void fillRecentReactionsList(List visibleReactions) { - if (!allReactionsAvailable) { + HashSet hashSet = new HashSet<>(); + int added = 0; + if (type == TYPE_STICKER_SET_EMOJI) { + for (ReactionsLayoutInBubble.VisibleReaction visibleReaction : alwaysSelectedReactions) { + if (!hashSet.contains(visibleReaction)) { + hashSet.add(visibleReaction); + visibleReactions.add(visibleReaction); + added++; + } + } + } + if (!allReactionsAvailable || type == TYPE_STICKER_SET_EMOJI) { if (type == TYPE_TAGS) { ArrayList topReactions = MediaDataController.getInstance(currentAccount).getSavedReactions(); - HashSet hashSet = new HashSet<>(); - int added = 0; for (int i = 0; i < topReactions.size(); i++) { ReactionsLayoutInBubble.VisibleReaction visibleReaction = ReactionsLayoutInBubble.VisibleReaction.fromTLReaction(topReactions.get(i)); if (!hashSet.contains(visibleReaction)) { @@ -1277,8 +1337,6 @@ private void fillRecentReactionsList(List hashSet = new HashSet<>(); - int added = 0; if (type == TYPE_TAGS) { TLRPC.TL_messages_savedReactionsTags savedTags = MessagesController.getInstance(currentAccount).getSavedReactionTags(0); if (savedTags != null) { @@ -1543,7 +1601,7 @@ public void setHint(CharSequence storyReactionsHint) { hintView.setPadding(dp(8), 0, dp(8), 0); hintView.setClickable(true); hintView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12); - if (type == TYPE_STORY || type == TYPE_STORY_LIKES) { + if (type == TYPE_STORY || type == TYPE_STORY_LIKES || type == TYPE_STICKER_SET_EMOJI) { hintView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); hintView.setAlpha(0.5f); } else { @@ -1826,6 +1884,12 @@ public void invalidate() { addView(enterImageView, LayoutHelper.createFrame(34, 34, Gravity.CENTER)); addView(pressedBackupImageView, LayoutHelper.createFrame(34, 34, Gravity.CENTER)); addView(loopImageView, LayoutHelper.createFrame(34, 34, Gravity.CENTER)); + if (type == TYPE_STICKER_SET_EMOJI) { + LayoutTransition layoutTransition = new LayoutTransition(); + layoutTransition.setDuration(100); + layoutTransition.enableTransitionType(LayoutTransition.CHANGING); + setLayoutTransition(layoutTransition); + } enterImageView.setLayerNum(Integer.MAX_VALUE); loopImageView.setLayerNum(Integer.MAX_VALUE); loopImageView.imageReceiver.setAutoRepeat(0); @@ -1876,6 +1940,9 @@ private void setReaction(ReactionsLayoutInBubble.VisibleReaction react, int posi currentReaction = react; selected = selectedReactions.contains(react); hasEnterAnimation = currentReaction.emojicon != null && (showCustomEmojiReaction() || allReactionsIsDefault) && LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_EMOJI_REACTIONS); + if (type == TYPE_STICKER_SET_EMOJI) { + hasEnterAnimation = false; + } if (currentReaction.emojicon != null) { updateImage(react); @@ -1891,7 +1958,7 @@ private void setReaction(ReactionsLayoutInBubble.VisibleReaction react, int posi loopImageView.getImageReceiver().clearImage(); AnimatedEmojiDrawable pressedDrawable = new AnimatedEmojiDrawable(AnimatedEmojiDrawable.CACHE_TYPE_ALERT_PREVIEW_LARGE, currentAccount, currentReaction.documentId); AnimatedEmojiDrawable loopDrawable = new AnimatedEmojiDrawable(AnimatedEmojiDrawable.CACHE_TYPE_ALERT_PREVIEW, currentAccount, currentReaction.documentId); - if (type == TYPE_STORY || type == TYPE_STORY_LIKES) { + if (type == TYPE_STORY || type == TYPE_STORY_LIKES || type == TYPE_STICKER_SET_EMOJI) { pressedDrawable.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)); loopDrawable.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)); } else { @@ -1929,8 +1996,8 @@ private void updateImage(ReactionsLayoutInBubble.VisibleReaction react) { TLRPC.TL_availableReaction defaultReaction = MediaDataController.getInstance(currentAccount).getReactionsMap().get(currentReaction.emojicon); if (defaultReaction != null) { SvgHelper.SvgDrawable svgThumb = DocumentObject.getSvgThumb(defaultReaction.activate_animation, Theme.key_windowBackgroundWhiteGrayIcon, 0.2f); - if (!LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_EMOJI_REACTIONS)) { - if (SharedConfig.getDevicePerformanceClass() <= SharedConfig.PERFORMANCE_CLASS_LOW) { + if (!LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_EMOJI_REACTIONS) || type == TYPE_STICKER_SET_EMOJI) { + if (SharedConfig.getDevicePerformanceClass() <= SharedConfig.PERFORMANCE_CLASS_LOW || type == TYPE_STICKER_SET_EMOJI) { loopImageView.getImageReceiver().setImage(ImageLocation.getForDocument(defaultReaction.select_animation), "60_60_firstframe", null, null, hasEnterAnimation ? null : svgThumb, 0, "tgs", currentReaction, 0); } else { enterImageView.getImageReceiver().setImage(ImageLocation.getForDocument(defaultReaction.appear_animation), ReactionsUtils.APPEAR_ANIMATION_FILTER, null, null, svgThumb, 0, "tgs", react, 0); @@ -2066,7 +2133,7 @@ public boolean onTouchEvent(MotionEvent event) { pressed = true; pressedX = event.getX(); pressedY = event.getY(); - if (sideScale == 1f && !isLocked && type != TYPE_TAGS) { + if (sideScale == 1f && !isLocked && type != TYPE_TAGS && type != TYPE_STICKER_SET_EMOJI) { AndroidUtilities.runOnUIThread(longPressRunnable, ViewConfiguration.getLongPressTimeout()); } } @@ -2283,7 +2350,7 @@ public CustomReactionsContainer(Context context) { @Override protected void dispatchDraw(Canvas canvas) { int color; - if (type == TYPE_STORY || type == TYPE_STORY_LIKES) { + if (type == TYPE_STORY || type == TYPE_STORY_LIKES || type == TYPE_STICKER_SET_EMOJI) { color = ColorUtils.setAlphaComponent(Color.WHITE, 30); } else { color = ColorUtils.blendARGB(Theme.getColor(Theme.key_actionBarDefaultSubmenuItemIcon, resourcesProvider), Theme.getColor(Theme.key_dialogBackground, resourcesProvider), 0.7f); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ScaleStateListAnimator.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ScaleStateListAnimator.java index 160df0ebe9..ffa3943617 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ScaleStateListAnimator.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ScaleStateListAnimator.java @@ -18,6 +18,8 @@ public static void apply(View view, float scale, float tension) { return; } + view.setLayerType(View.LAYER_TYPE_HARDWARE, null); + AnimatorSet pressedAnimator = new AnimatorSet(); pressedAnimator.playTogether( ObjectAnimator.ofFloat(view, View.SCALE_X, 1f - scale), diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrollSlidingTabStrip.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrollSlidingTabStrip.java index 2536b7506a..de1e6d2a50 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrollSlidingTabStrip.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrollSlidingTabStrip.java @@ -627,22 +627,29 @@ public void setImages() { tabView.imageView.setImageDrawable(thumbDrawable); } } else { - Object object = child.getTag(); + Object thumbObject = child.getTag(); Object parentObject = child.getTag(R.id.parent_tag); TLRPC.Document sticker = (TLRPC.Document) child.getTag(R.id.object_tag); ImageLocation imageLocation; - if (object instanceof TLRPC.Document) { + String thumbType = null; + if (thumbObject instanceof TLRPC.Document) { + //no thumb, using first sticker from set if (!tabView.inited) { - tabView.svgThumb = DocumentObject.getSvgThumb((TLRPC.Document) object, Theme.key_emptyListPlaceholder, 0.2f); + tabView.svgThumb = DocumentObject.getSvgThumb((TLRPC.Document) thumbObject, Theme.key_emptyListPlaceholder, 0.2f); } imageLocation = ImageLocation.getForDocument(sticker); - } else if (object instanceof TLRPC.PhotoSize) { - TLRPC.PhotoSize thumb = (TLRPC.PhotoSize) object; + } else if (thumbObject instanceof TLRPC.PhotoSize) { + TLRPC.PhotoSize thumb = (TLRPC.PhotoSize) thumbObject; int thumbVersion = 0; if (parentObject instanceof TLRPC.TL_messages_stickerSet) { + TLRPC.TL_messages_stickerSet stickerSet = ((TLRPC.TL_messages_stickerSet) parentObject); thumbVersion = ((TLRPC.TL_messages_stickerSet) parentObject).set.thumb_version; + if (!tabView.inited) { + tabView.svgThumb = DocumentObject.getSvgThumb(stickerSet.set.thumbs, Theme.key_emptyListPlaceholder, 0.2f); + } } + thumbType = thumb.type; imageLocation = ImageLocation.getForSticker(thumb, sticker, thumbVersion); } else { continue; @@ -660,16 +667,24 @@ public void setImages() { BackupImageView imageView = tabView.imageView; final boolean lite = !LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_STICKERS_KEYBOARD); String imageFilter = lite ? "40_40_firstframe" : "40_40"; - if (MessageObject.isVideoSticker(sticker) && sticker.thumbs != null && sticker.thumbs.size() > 0) { - if (lite) { - TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(sticker.thumbs, 90); - imageView.setImage(ImageLocation.getForDocument(thumb, sticker), "40_40", svgThumb, 0, parentObject); - } else if (svgThumb != null) { - imageView.setImage(ImageLocation.getForDocument(sticker), imageFilter, svgThumb, 0, parentObject); + if ((thumbType == null && MessageObject.isVideoSticker(sticker) && sticker.thumbs != null && sticker.thumbs.size() > 0) || (thumbType != null && thumbType.equalsIgnoreCase("v"))) { + if (thumbType == null) { + if (lite) { + TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(sticker.thumbs, 90); + imageView.setImage(ImageLocation.getForDocument(thumb, sticker), "40_40", svgThumb, 0, parentObject); + } else if (svgThumb != null) { + imageView.setImage(ImageLocation.getForDocument(sticker), imageFilter, svgThumb, 0, parentObject); + } else { + imageView.setImage(ImageLocation.getForDocument(sticker), imageFilter, imageLocation, null, 0, parentObject); + } } else { - imageView.setImage(ImageLocation.getForDocument(sticker), imageFilter, imageLocation, null, 0, parentObject); + if (svgThumb != null) { + imageView.setImage(imageLocation, imageFilter, svgThumb, 0, parentObject); + } else { + imageView.setImage(imageLocation, imageFilter, null, null, 0, parentObject); + } } - } else if (MessageObject.isAnimatedStickerDocument(sticker, true)) { + } else if ((thumbType == null && MessageObject.isAnimatedStickerDocument(sticker, true)) || (thumbType != null && thumbType.equalsIgnoreCase("a"))) { if (svgThumb != null) { imageView.setImage(imageLocation, imageFilter, svgThumb, 0, parentObject); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchDownloadsContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchDownloadsContainer.java index f85753b618..06c124e6a5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchDownloadsContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchDownloadsContainer.java @@ -3,6 +3,8 @@ import android.app.Activity; import android.content.Context; import android.graphics.Canvas; +import android.text.SpannableString; +import android.text.Spanned; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; @@ -19,7 +21,9 @@ import org.telegram.messenger.AccountInstance; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.DownloadController; +import org.telegram.messenger.FileLoadOperation; import org.telegram.messenger.FileLoader; +import org.telegram.messenger.FileLog; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaController; import org.telegram.messenger.MessageObject; @@ -28,6 +32,7 @@ import org.telegram.messenger.R; import org.telegram.messenger.UserConfig; import org.telegram.messenger.Utilities; +import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.Theme; @@ -36,6 +41,7 @@ import org.telegram.ui.Cells.SharedDocumentCell; import org.telegram.ui.FilteredSearchView; import org.telegram.ui.PhotoViewer; +import org.telegram.ui.PremiumPreviewFragment; import java.util.ArrayList; @@ -79,7 +85,13 @@ public SearchDownloadsContainer(BaseFragment fragment, int currentAccount) { this.parentFragment = fragment; this.parentActivity = fragment.getParentActivity(); this.currentAccount = currentAccount; - recyclerListView = new BlurredRecyclerView(getContext()); + recyclerListView = new BlurredRecyclerView(getContext()) { + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + super.onLayout(changed, l, t, r, b); + checkItemsFloodWait(); + } + }; ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new TouchHelperCallback()); itemTouchHelper.attachToRecyclerView(recyclerListView); addView(recyclerListView); @@ -96,6 +108,7 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_DRAGGING) { AndroidUtilities.hideKeyboard(parentActivity.getCurrentFocus()); } + checkItemsFloodWait(); } }); DefaultItemAnimator defaultItemAnimator = new DefaultItemAnimator(); @@ -587,6 +600,7 @@ public boolean isEnabled(RecyclerView.ViewHolder holder) { protected void onAttachedToWindow() { super.onAttachedToWindow(); NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.onDownloadingFilesChanged); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.premiumFloodWaitReceived); if (getVisibility() == View.VISIBLE) { DownloadController.getInstance(currentAccount).clearUnviewedDownloads(); } @@ -598,6 +612,7 @@ protected void onAttachedToWindow() { protected void onDetachedFromWindow() { super.onDetachedFromWindow(); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.onDownloadingFilesChanged); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.premiumFloodWaitReceived); } @@ -608,6 +623,8 @@ public void didReceivedNotification(int id, int account, Object... args) { DownloadController.getInstance(currentAccount).clearUnviewedDownloads(); } update(true); + } else if (id == NotificationCenter.premiumFloodWaitReceived) { + checkItemsFloodWait(); } } @@ -708,4 +725,57 @@ public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHol viewHolder.itemView.setPressed(false); } } + + public void checkItemsFloodWait() { + if (UserConfig.getInstance(currentAccount).isPremium()) return; + if (recyclerListView == null) return; + for (int i = 0; i < recyclerListView.getChildCount(); ++i) { + try { + View child = recyclerListView.getChildAt(i); + if (!(child instanceof Cell)) continue; + MessageObject messageObject = ((Cell) child).sharedDocumentCell.getMessage(); + if (messageObject == null) continue; + if (FileLoader.getInstance(currentAccount).checkLoadCaughtPremiumFloodWait(messageObject.getFileName())) { + showPremiumFloodWaitBulletin(false); + return; + } else if (FileLoader.getInstance(currentAccount).checkLoadCaughtPremiumFloodWait(messageObject.getFileName())) { + showPremiumFloodWaitBulletin(true); + return; + } + } catch (Exception e) { + FileLog.e(e); + } + } + } + + public void showPremiumFloodWaitBulletin(final boolean isUpload) { + if (parentFragment == null || !recyclerListView.isAttachedToWindow()) return; + + final long now = System.currentTimeMillis(); + if (now - ConnectionsManager.lastPremiumFloodWaitShown < 1000L * MessagesController.getInstance(currentAccount).uploadPremiumSpeedupNotifyPeriod) { + return; + } + ConnectionsManager.lastPremiumFloodWaitShown = now; + if (UserConfig.getInstance(currentAccount).isPremium() || MessagesController.getInstance(currentAccount).premiumFeaturesBlocked()) { + return; + } + + final float n; + if (isUpload) { + n = MessagesController.getInstance(currentAccount).uploadPremiumSpeedupUpload; + } else { + n = MessagesController.getInstance(currentAccount).uploadPremiumSpeedupDownload; + } + SpannableString boldN = new SpannableString(Double.toString(Math.round(n * 10) / 10.0).replaceAll("\\.0$", "")); + boldN.setSpan(new TypefaceSpan(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)), 0, boldN.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + + if (parentFragment.hasStoryViewer()) return; + BulletinFactory.of(parentFragment).createSimpleBulletin( + R.raw.speed_limit, + LocaleController.getString(isUpload ? R.string.UploadSpeedLimited : R.string.DownloadSpeedLimited), + AndroidUtilities.replaceCharSequence("%d", AndroidUtilities.premiumText(LocaleController.getString(isUpload ? R.string.UploadSpeedLimitedMessage : R.string.DownloadSpeedLimitedMessage), () -> { + parentFragment.presentFragment(new PremiumPreviewFragment(isUpload ? "upload_speed" : "download_speed")); + }), boldN) + ).setDuration(8000).show(false); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBar.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBar.java index ddd1b0cad0..daa39b0c6a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBar.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBar.java @@ -465,10 +465,8 @@ private void updateTimestampAnimation() { lastWidth = width; if (timestampIndex != currentTimestamp) { - if (pressed && parentView != null) { - try { - parentView.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + if (pressed) { + AndroidUtilities.vibrateCursor(parentView); } currentTimestamp = timestampIndex; if (currentTimestamp >= 0 && currentTimestamp < timestamps.size()) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBarView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBarView.java index 48fe8cc711..f258d32996 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBarView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SeekBarView.java @@ -310,9 +310,7 @@ private void setSeekBarDrag(boolean stop, float progress) { if (separatorsCount > 1) { int value = Math.round((separatorsCount - 1) * progress); if (!stop && value != lastValue) { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + AndroidUtilities.vibrateCursor(this); } lastValue = value; } @@ -698,9 +696,7 @@ private void drawTimestampLabel(Canvas canvas) { if (timestampIndex != currentTimestamp) { timestampLabel[1] = timestampLabel[0]; if (pressed) { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + AndroidUtilities.vibrateCursor(this); } if (timestampIndex >= 0 && timestampIndex < timestamps.size()) { CharSequence label = timestamps.get(timestampIndex).second; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java index 38f0cdb7ad..445577f526 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java @@ -8,6 +8,8 @@ package org.telegram.ui.Components; +import static org.telegram.messenger.AndroidUtilities.dp; + import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; @@ -130,6 +132,7 @@ public class ShareAlert extends BottomSheet implements NotificationCenter.Notifi private View selectedCountView; private TextView pickerBottomLayout; private FrameLayout bulletinContainer; + public FrameLayout bulletinContainer2; private LinearLayout sharesCountLayout; private AnimatorSet animatorSet; private RecyclerListView topicsGridView; @@ -235,7 +238,7 @@ public SwitchView(Context context) { rect = new RectF(); searchBackground = new View(context); - searchBackground.setBackgroundDrawable(Theme.createRoundRectDrawable(AndroidUtilities.dp(18), getThemedColor(darkTheme ? Theme.key_voipgroup_searchBackground : Theme.key_dialogSearchBackground))); + searchBackground.setBackgroundDrawable(Theme.createRoundRectDrawable(dp(18), getThemedColor(darkTheme ? Theme.key_voipgroup_searchBackground : Theme.key_dialogSearchBackground))); addView(searchBackground, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 36, Gravity.LEFT | Gravity.TOP, 14, 0, 14, 0)); slidingView = new View(context) { @@ -261,7 +264,7 @@ protected void onDraw(Canvas canvas) { paint.setShader(linearGradient); } rect.set(0, 0, getMeasuredWidth(), getMeasuredHeight()); - canvas.drawRoundRect(rect, AndroidUtilities.dp(18), AndroidUtilities.dp(18), paint); + canvas.drawRoundRect(rect, dp(18), dp(18), paint); } }; addView(slidingView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 36, Gravity.LEFT | Gravity.TOP, 14, 0, 14, 0)); @@ -313,13 +316,13 @@ public void onAnimationEnd(Animator animation) { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - int width = MeasureSpec.getSize(widthMeasureSpec) - AndroidUtilities.dp(28); + int width = MeasureSpec.getSize(widthMeasureSpec) - dp(28); FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) leftTab.getLayoutParams(); layoutParams.width = width / 2; layoutParams = (FrameLayout.LayoutParams) rightTab.getLayoutParams(); layoutParams.width = width / 2; - layoutParams.leftMargin = width / 2 + AndroidUtilities.dp(14); + layoutParams.leftMargin = width / 2 + dp(14); layoutParams = (FrameLayout.LayoutParams) slidingView.getLayoutParams(); layoutParams.width = width / 2; @@ -346,7 +349,7 @@ public SearchField(Context context) { super(context); searchBackground = new View(context); - searchBackground.setBackgroundDrawable(Theme.createRoundRectDrawable(AndroidUtilities.dp(18), getThemedColor(darkTheme ? Theme.key_voipgroup_searchBackground : Theme.key_dialogSearchBackground))); + searchBackground.setBackgroundDrawable(Theme.createRoundRectDrawable(dp(18), getThemedColor(darkTheme ? Theme.key_voipgroup_searchBackground : Theme.key_dialogSearchBackground))); addView(searchBackground, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 36, Gravity.LEFT | Gravity.TOP, 14, 11, 14, 0)); searchIconImageView = new ImageView(context); @@ -363,7 +366,7 @@ protected int getCurrentColor() { return getThemedColor(darkTheme ? Theme.key_voipgroup_searchPlaceholder : Theme.key_dialogSearchIcon); } }); - progressDrawable.setSide(AndroidUtilities.dp(7)); + progressDrawable.setSide(dp(7)); clearSearchImageView.setScaleX(0.1f); clearSearchImageView.setScaleY(0.1f); clearSearchImageView.setAlpha(0.0f); @@ -386,7 +389,7 @@ protected int getCurrentColor() { searchEditText.setImeOptions(EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI); searchEditText.setHint(LocaleController.getString("ShareSendTo", R.string.ShareSendTo)); searchEditText.setCursorColor(getThemedColor(darkTheme ? Theme.key_voipgroup_searchText : Theme.key_featuredStickers_addedIcon)); - searchEditText.setCursorSize(AndroidUtilities.dp(20)); + searchEditText.setCursorSize(dp(20)); searchEditText.setCursorWidth(1.5f); addView(searchEditText, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 40, Gravity.LEFT | Gravity.TOP, 16 + 38, 9, 16 + 30, 0)); searchEditText.addTextChangedListener(new TextWatcher() { @@ -679,24 +682,24 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int availableHeight = totalHeight - getPaddingTop(); int size = Math.max(searchAdapter.getItemCount(), listAdapter.getItemCount() - 1); - int contentSize = AndroidUtilities.dp(103) + AndroidUtilities.dp(48) + Math.max(2, (int) Math.ceil(size / 4.0f)) * AndroidUtilities.dp(103) + backgroundPaddingTop; + int contentSize = dp(103) + dp(48) + Math.max(2, (int) Math.ceil(size / 4.0f)) * dp(103) + backgroundPaddingTop; if (topicsGridView.getVisibility() != View.GONE) { - int topicsSize = AndroidUtilities.dp(103) + AndroidUtilities.dp(48) + Math.max(2, (int) Math.ceil((shareTopicsAdapter.getItemCount() - 1) / 4.0f)) * AndroidUtilities.dp(103) + backgroundPaddingTop; + int topicsSize = dp(103) + dp(48) + Math.max(2, (int) Math.ceil((shareTopicsAdapter.getItemCount() - 1) / 4.0f)) * dp(103) + backgroundPaddingTop; if (topicsSize > contentSize) { contentSize = AndroidUtilities.lerp(contentSize, topicsSize, topicsGridView.getAlpha()); } } - int padding = (contentSize < availableHeight ? 0 : availableHeight - (availableHeight / 5 * 3)) + AndroidUtilities.dp(8); + int padding = (contentSize < availableHeight ? 0 : availableHeight - (availableHeight / 5 * 3)) + dp(8); if (gridView.getPaddingTop() != padding) { ignoreLayout = true; - gridView.setPadding(0, padding, 0, AndroidUtilities.dp(48)); - topicsGridView.setPadding(0, padding, 0, AndroidUtilities.dp(48)); + gridView.setPadding(0, padding, 0, dp(48)); + topicsGridView.setPadding(0, padding, 0, dp(48)); ignoreLayout = false; } if (keyboardVisible && getLayoutParams().height <= 0 && searchGridView.getPaddingTop() != padding) { ignoreLayout = true; - searchGridView.setPadding(0, 0, 0, AndroidUtilities.dp(48)); + searchGridView.setPadding(0, 0, 0, dp(48)); ignoreLayout = false; } fullHeight = contentSize >= totalHeight; @@ -716,14 +719,14 @@ private void onMeasureInternal(int widthMeasureSpec, int heightMeasureSpec) { widthSize -= backgroundPaddingLeft * 2; int keyboardSize = 0; - if (!commentTextView.isWaitingForKeyboardOpen() && keyboardSize <= AndroidUtilities.dp(20) && !commentTextView.isPopupShowing() && !commentTextView.isAnimatePopupClosing()) { + if (!commentTextView.isWaitingForKeyboardOpen() && keyboardSize <= dp(20) && !commentTextView.isPopupShowing() && !commentTextView.isAnimatePopupClosing()) { ignoreLayout = true; commentTextView.hideEmojiView(); ignoreLayout = false; } ignoreLayout = true; - if (keyboardSize <= AndroidUtilities.dp(20)) { + if (keyboardSize <= dp(20)) { if (!AndroidUtilities.isInMultiwindow) { int paddingBottom; if (keyboardVisible) { @@ -761,7 +764,7 @@ private void onMeasureInternal(int widthMeasureSpec, int heightMeasureSpec) { if (commentTextView != null && commentTextView.isPopupView(child)) { if (AndroidUtilities.isInMultiwindow || AndroidUtilities.isTablet()) { if (AndroidUtilities.isTablet()) { - child.measure(MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(Math.min(AndroidUtilities.dp(AndroidUtilities.isTablet() ? 200 : 320), heightSize - AndroidUtilities.statusBarHeight + getPaddingTop()), MeasureSpec.EXACTLY)); + child.measure(MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(Math.min(dp(AndroidUtilities.isTablet() ? 200 : 320), heightSize - AndroidUtilities.statusBarHeight + getPaddingTop()), MeasureSpec.EXACTLY)); } else { child.measure(MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(heightSize - AndroidUtilities.statusBarHeight + getPaddingTop(), MeasureSpec.EXACTLY)); } @@ -783,7 +786,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { if (keyboardVisible) { paddingBottom = 0; } else { - paddingBottom = keyboardSize <= AndroidUtilities.dp(20) && !AndroidUtilities.isInMultiwindow && !AndroidUtilities.isTablet() ? commentTextView.getEmojiPadding() : 0; + paddingBottom = keyboardSize <= dp(20) && !AndroidUtilities.isInMultiwindow && !AndroidUtilities.isTablet() ? commentTextView.getEmojiPadding() : 0; } setBottomClip(paddingBottom); @@ -852,12 +855,12 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (!fullHeight) { - if (ev.getAction() == MotionEvent.ACTION_DOWN && ev.getY() < topOffset - AndroidUtilities.dp(30)) { + if (ev.getAction() == MotionEvent.ACTION_DOWN && ev.getY() < topOffset - dp(30)) { dismiss(); return true; } } else { - if (ev.getAction() == MotionEvent.ACTION_DOWN && scrollOffsetY != 0 && ev.getY() < scrollOffsetY - AndroidUtilities.dp(30)) { + if (ev.getAction() == MotionEvent.ACTION_DOWN && scrollOffsetY != 0 && ev.getY() < scrollOffsetY - dp(30)) { dismiss(); return true; } @@ -885,9 +888,9 @@ public void requestLayout() { protected void onDraw(Canvas canvas) { canvas.save(); canvas.translate(0, currentPanTranslationY); - int y = scrollOffsetY - backgroundPaddingTop + AndroidUtilities.dp(6) + topOffset; - int top = containerViewTop = scrollOffsetY - backgroundPaddingTop - AndroidUtilities.dp(13) + topOffset; - int height = getMeasuredHeight() + AndroidUtilities.dp(30 + 30) + backgroundPaddingTop; + int y = scrollOffsetY - backgroundPaddingTop + dp(6) + topOffset; + int top = containerViewTop = scrollOffsetY - backgroundPaddingTop - dp(13) + topOffset; + int height = getMeasuredHeight() + dp(30 + 30) + backgroundPaddingTop; int statusBarHeight = 0; float radProgress = 1.0f; float pinAlpha = 0; @@ -895,38 +898,32 @@ protected void onDraw(Canvas canvas) { y += AndroidUtilities.statusBarHeight; final boolean pinnedToTop = fullHeight && top + backgroundPaddingTop < AndroidUtilities.statusBarHeight; top = AndroidUtilities.lerp(top + AndroidUtilities.statusBarHeight, -backgroundPaddingTop, pinAlpha = this.pinnedToTop.set(pinnedToTop)); -// top += AndroidUtilities.statusBarHeight; -// height -= AndroidUtilities.statusBarHeight; -// -// if (fullHeight) { -// if (top + backgroundPaddingTop < AndroidUtilities.statusBarHeight * 2) { -// int diff = Math.min(AndroidUtilities.statusBarHeight, AndroidUtilities.statusBarHeight * 2 - top - backgroundPaddingTop); -// top -= diff; -// height += diff; -// radProgress = 1.0f - Math.min(1.0f, (diff * 2) / (float) AndroidUtilities.statusBarHeight); -// } -// if (top + backgroundPaddingTop < AndroidUtilities.statusBarHeight) { -// statusBarHeight = Math.min(AndroidUtilities.statusBarHeight, AndroidUtilities.statusBarHeight - top - backgroundPaddingTop); -// } -// } } shadowDrawable.setBounds(0, top, getMeasuredWidth(), height); shadowDrawable.draw(canvas); -// if (radProgress != 1.0f) { -// Theme.dialogs_onlineCirclePaint.setColor(getThemedColor(darkTheme ? Theme.key_voipgroup_inviteMembersBackground : Theme.key_dialogBackground)); -// Theme.dialogs_onlineCirclePaint.setAlpha((int) (Theme.dialogs_onlineCirclePaint.getAlpha() * pinAlpha)); -// rect1.set(backgroundPaddingLeft, backgroundPaddingTop + top, getMeasuredWidth() - backgroundPaddingLeft, backgroundPaddingTop + top + AndroidUtilities.dp(24)); -// canvas.drawRoundRect(rect1, AndroidUtilities.dp(12) * radProgress, AndroidUtilities.dp(12) * radProgress, Theme.dialogs_onlineCirclePaint); -// } + if (bulletinContainer2 != null) { + if (top <= AndroidUtilities.statusBarHeight && bulletinContainer2.getChildCount() > 0) { + bulletinContainer2.setTranslationY(0); + Bulletin bulletin = Bulletin.getVisibleBulletin(); + if (bulletin != null) { + if (bulletin.getLayout() != null) { + bulletin.getLayout().setTop(true); + } + bulletin.hide(); + } + } else { + bulletinContainer2.setTranslationY(Math.max(0, top + backgroundPaddingTop - bulletinContainer2.getTop() - bulletinContainer2.getMeasuredHeight())); + } + } if (pinAlpha < 1) { - int w = AndroidUtilities.dp(36); - rect1.set((getMeasuredWidth() - w) / 2, y, (getMeasuredWidth() + w) / 2, y + AndroidUtilities.dp(4)); + int w = dp(36); + rect1.set((getMeasuredWidth() - w) / 2, y, (getMeasuredWidth() + w) / 2, y + dp(4)); Theme.dialogs_onlineCirclePaint.setColor(getThemedColor(darkTheme ? Theme.key_voipgroup_scrollUp : Theme.key_sheet_scrollUp)); Theme.dialogs_onlineCirclePaint.setAlpha((int) (Theme.dialogs_onlineCirclePaint.getAlpha() * (1f - pinAlpha))); - canvas.drawRoundRect(rect1, AndroidUtilities.dp(2), AndroidUtilities.dp(2), Theme.dialogs_onlineCirclePaint); + canvas.drawRoundRect(rect1, dp(2), dp(2), Theme.dialogs_onlineCirclePaint); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { @@ -950,7 +947,7 @@ protected void onDraw(Canvas canvas) { @Override protected void dispatchDraw(Canvas canvas) { canvas.save(); - canvas.clipRect(0, getPaddingTop() + currentPanTranslationY, getMeasuredWidth(), getMeasuredHeight() + currentPanTranslationY + AndroidUtilities.dp(50)); + canvas.clipRect(0, getPaddingTop() + currentPanTranslationY, getMeasuredWidth(), getMeasuredHeight() + currentPanTranslationY + dp(50)); super.dispatchDraw(canvas); canvas.restore(); } @@ -1025,7 +1022,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { topicsGridView.setOverScrollMode(View.OVER_SCROLL_NEVER); topicsGridView.setSelectorDrawableColor(0); topicsGridView.setItemSelectorColorProvider(i -> 0); - topicsGridView.setPadding(0, 0, 0, AndroidUtilities.dp(48)); + topicsGridView.setPadding(0, 0, 0, dp(48)); topicsGridView.setClipToPadding(false); topicsGridView.addItemDecoration(new RecyclerView.ItemDecoration() { @Override @@ -1033,11 +1030,11 @@ public void getItemOffsets(@NonNull android.graphics.Rect outRect, @NonNull View RecyclerListView.Holder holder = (RecyclerListView.Holder) parent.getChildViewHolder(view); if (holder != null) { int pos = holder.getAdapterPosition(); - outRect.left = pos % 4 == 0 ? 0 : AndroidUtilities.dp(4); - outRect.right = pos % 4 == 3 ? 0 : AndroidUtilities.dp(4); + outRect.left = pos % 4 == 0 ? 0 : dp(4); + outRect.right = pos % 4 == 3 ? 0 : dp(4); } else { - outRect.left = AndroidUtilities.dp(4); - outRect.right = AndroidUtilities.dp(4); + outRect.left = dp(4); + outRect.right = dp(4); } } }); @@ -1086,14 +1083,14 @@ public void getItemOffsets(@NonNull android.graphics.Rect outRect, @NonNull View @Override protected boolean allowSelectChildAtPosition(float x, float y) { - return y >= AndroidUtilities.dp(darkTheme && linkToCopy[1] != null ? 111 : 58) + (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0); + return y >= dp(darkTheme && linkToCopy[1] != null ? 111 : 58) + (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0); } @Override public void draw(Canvas canvas) { if (topicsGridView.getVisibility() != View.GONE) { canvas.save(); - canvas.clipRect(0, scrollOffsetY + AndroidUtilities.dp(darkTheme && linkToCopy[1] != null ? 111 : 58), getWidth(), getHeight()); + canvas.clipRect(0, scrollOffsetY + dp(darkTheme && linkToCopy[1] != null ? 111 : 58), getWidth(), getHeight()); } super.draw(canvas); if (topicsGridView.getVisibility() != View.GONE) { @@ -1103,7 +1100,7 @@ public void draw(Canvas canvas) { }; gridView.setSelectorDrawableColor(0); gridView.setItemSelectorColorProvider(i -> 0); - gridView.setPadding(0, 0, 0, AndroidUtilities.dp(48)); + gridView.setPadding(0, 0, 0, dp(48)); gridView.setClipToPadding(false); gridView.setLayoutManager(layoutManager = new GridLayoutManager(getContext(), 4)); layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @@ -1124,11 +1121,11 @@ public void getItemOffsets(android.graphics.Rect outRect, View view, RecyclerVie RecyclerListView.Holder holder = (RecyclerListView.Holder) parent.getChildViewHolder(view); if (holder != null) { int pos = holder.getAdapterPosition(); - outRect.left = pos % 4 == 0 ? 0 : AndroidUtilities.dp(4); - outRect.right = pos % 4 == 3 ? 0 : AndroidUtilities.dp(4); + outRect.left = pos % 4 == 0 ? 0 : dp(4); + outRect.right = pos % 4 == 3 ? 0 : dp(4); } else { - outRect.left = AndroidUtilities.dp(4); - outRect.right = AndroidUtilities.dp(4); + outRect.left = dp(4); + outRect.right = dp(4); } } }); @@ -1159,14 +1156,14 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { @Override protected boolean allowSelectChildAtPosition(float x, float y) { - return y >= AndroidUtilities.dp(darkTheme && linkToCopy[1] != null ? 111 : 58) + (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0); + return y >= dp(darkTheme && linkToCopy[1] != null ? 111 : 58) + (Build.VERSION.SDK_INT >= 21 ? AndroidUtilities.statusBarHeight : 0); } @Override public void draw(Canvas canvas) { if (topicsGridView.getVisibility() != View.GONE) { canvas.save(); - canvas.clipRect(0, scrollOffsetY + AndroidUtilities.dp(darkTheme && linkToCopy[1] != null ? 111 : 58), getWidth(), getHeight()); + canvas.clipRect(0, scrollOffsetY + dp(darkTheme && linkToCopy[1] != null ? 111 : 58), getWidth(), getHeight()); } super.draw(canvas); if (topicsGridView.getVisibility() != View.GONE) { @@ -1176,7 +1173,7 @@ public void draw(Canvas canvas) { }; searchGridView.setItemSelectorColorProvider(i -> 0); searchGridView.setSelectorDrawableColor(0); - searchGridView.setPadding(0, 0, 0, AndroidUtilities.dp(48)); + searchGridView.setPadding(0, 0, 0, dp(48)); searchGridView.setClipToPadding(false); searchGridView.setLayoutManager(searchLayoutManager = new FillLastGridLayoutManager(getContext(), 4, 0, searchGridView)); searchLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @@ -1217,12 +1214,12 @@ public void getItemOffsets(android.graphics.Rect outRect, View view, RecyclerVie outRect.left = outRect.right = 0; } else { final int pos = holder.getAdapterPosition(); - outRect.left = pos % 4 == 0 ? 0 : AndroidUtilities.dp(4); - outRect.right = pos % 4 == 3 ? 0 : AndroidUtilities.dp(4); + outRect.left = pos % 4 == 0 ? 0 : dp(4); + outRect.right = pos % 4 == 3 ? 0 : dp(4); } } else { - outRect.left = AndroidUtilities.dp(4); - outRect.right = AndroidUtilities.dp(4); + outRect.left = dp(4); + outRect.right = dp(4); } } }); @@ -1251,7 +1248,7 @@ public void getItemOffsets(android.graphics.Rect outRect, View view, RecyclerVie containerView.addView(searchGridView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT, 0, 0, 0, 0)); FrameLayout.LayoutParams frameLayoutParams = new FrameLayout.LayoutParams(LayoutHelper.MATCH_PARENT, AndroidUtilities.getShadowHeight(), Gravity.TOP | Gravity.LEFT); - frameLayoutParams.topMargin = AndroidUtilities.dp(darkTheme && linkToCopy[1] != null ? 111 : 58); + frameLayoutParams.topMargin = dp(darkTheme && linkToCopy[1] != null ? 111 : 58); shadow[0] = new View(context); shadow[0].setBackgroundColor(getThemedColor(Theme.key_dialogShadowLine)); shadow[0].setAlpha(0.0f); @@ -1261,7 +1258,7 @@ public void getItemOffsets(android.graphics.Rect outRect, View view, RecyclerVie containerView.addView(frameLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, darkTheme && linkToCopy[1] != null ? 111 : 58, Gravity.LEFT | Gravity.TOP)); frameLayoutParams = new FrameLayout.LayoutParams(LayoutHelper.MATCH_PARENT, AndroidUtilities.getShadowHeight(), Gravity.BOTTOM | Gravity.LEFT); - frameLayoutParams.bottomMargin = AndroidUtilities.dp(48); + frameLayoutParams.bottomMargin = dp(48); shadow[1] = new View(context); shadow[1].setBackgroundColor(getThemedColor(Theme.key_dialogShadowLine)); containerView.addView(shadow[1], frameLayoutParams); @@ -1271,7 +1268,7 @@ public void getItemOffsets(android.graphics.Rect outRect, View view, RecyclerVie pickerBottomLayout.setBackgroundDrawable(Theme.createSelectorWithBackgroundDrawable(getThemedColor(darkTheme ? Theme.key_voipgroup_inviteMembersBackground : Theme.key_dialogBackground), getThemedColor(darkTheme ? Theme.key_voipgroup_listSelector : Theme.key_listSelector))); pickerBottomLayout.setTextColor(getThemedColor(darkTheme ? Theme.key_voipgroup_listeningText : Theme.key_dialogTextBlue2)); pickerBottomLayout.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - pickerBottomLayout.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); + pickerBottomLayout.setPadding(dp(18), 0, dp(18), 0); pickerBottomLayout.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); pickerBottomLayout.setGravity(Gravity.CENTER); if (darkTheme && linkToCopy[1] != null) { @@ -1323,6 +1320,9 @@ public void getItemOffsets(android.graphics.Rect outRect, View view, RecyclerVie bulletinContainer = new FrameLayout(context); containerView.addView(bulletinContainer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 100, Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0, 0, pickerBottomLayout != null ? 48 : 0)); + bulletinContainer2 = new FrameLayout(context); + containerView.addView(bulletinContainer2, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.FILL_HORIZONTAL | Gravity.TOP, 0, 0, 0, 0)); + frameLayout2 = new FrameLayout(context) { private final Paint p = new Paint(); @@ -1360,8 +1360,8 @@ protected void onDraw(Canvas canvas) { topBackgroundAnimator.start(); chatActivityEnterViewAnimateFromTop = 0; } - float alphaOffset = (frameLayout2.getMeasuredHeight() - AndroidUtilities.dp(48)) * (1f - getAlpha()); - shadow[1].setTranslationY(-(frameLayout2.getMeasuredHeight() - AndroidUtilities.dp(48)) + captionEditTextTopOffset + currentPanTranslationY + alphaOffset); + float alphaOffset = (frameLayout2.getMeasuredHeight() - dp(48)) * (1f - getAlpha()); + shadow[1].setTranslationY(-(frameLayout2.getMeasuredHeight() - dp(48)) + captionEditTextTopOffset + currentPanTranslationY + alphaOffset); // int newColor = getThemedColor(darkTheme ? Theme.key_voipgroup_inviteMembersBackground : Theme.key_dialogBackground); // if (color != newColor) { @@ -1457,7 +1457,7 @@ public void hidePopup(boolean byBackButton) { commentTextView.setBackgroundColor(backgroundColor); commentTextView.setHint(LocaleController.getString("ShareComment", R.string.ShareComment)); commentTextView.onResume(); - commentTextView.setPadding(0, 0, AndroidUtilities.dp(84), 0); + commentTextView.setPadding(0, 0, dp(84), 0); frameLayout2.addView(commentTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT)); frameLayout2.setClipChildren(false); frameLayout2.setClipToPadding(false); @@ -1482,12 +1482,12 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { containerView.addView(writeButtonContainer, LayoutHelper.createFrame(60, 60, Gravity.RIGHT | Gravity.BOTTOM, 0, 0, 6, 10)); ImageView writeButton = new ImageView(context); - Drawable drawable = Theme.createSimpleSelectorCircleDrawable(AndroidUtilities.dp(56), getThemedColor(Theme.key_dialogFloatingButton), getThemedColor(Build.VERSION.SDK_INT >= 21 ? Theme.key_dialogFloatingButtonPressed : Theme.key_dialogFloatingButton)); + Drawable drawable = Theme.createSimpleSelectorCircleDrawable(dp(56), getThemedColor(Theme.key_dialogFloatingButton), getThemedColor(Build.VERSION.SDK_INT >= 21 ? Theme.key_dialogFloatingButtonPressed : Theme.key_dialogFloatingButton)); if (Build.VERSION.SDK_INT < 21) { Drawable shadowDrawable = context.getResources().getDrawable(R.drawable.floating_shadow_profile).mutate(); shadowDrawable.setColorFilter(new PorterDuffColorFilter(0xff000000, PorterDuff.Mode.SRC_IN)); CombinedDrawable combinedDrawable = new CombinedDrawable(shadowDrawable, drawable, 0, 0); - combinedDrawable.setIconSize(AndroidUtilities.dp(56), AndroidUtilities.dp(56)); + combinedDrawable.setIconSize(dp(56), dp(56)); drawable = combinedDrawable; } writeButton.setBackgroundDrawable(drawable); @@ -1500,7 +1500,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { @SuppressLint("NewApi") @Override public void getOutline(View view, Outline outline) { - outline.setOval(0, 0, AndroidUtilities.dp(56), AndroidUtilities.dp(56)); + outline.setOval(0, 0, dp(56), dp(56)); } }); } @@ -1508,7 +1508,7 @@ public void getOutline(View view, Outline outline) { writeButton.setOnClickListener(v -> sendInternal(true)); writeButton.setOnLongClickListener(v -> onSendLongClick(writeButton)); - textPaint.setTextSize(AndroidUtilities.dp(12)); + textPaint.setTextSize(dp(12)); textPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); selectedCountView = new View(context) { @@ -1516,20 +1516,20 @@ public void getOutline(View view, Outline outline) { protected void onDraw(Canvas canvas) { String text = String.format("%d", Math.max(1, selectedDialogs.size())); int textSize = (int) Math.ceil(textPaint.measureText(text)); - int size = Math.max(AndroidUtilities.dp(16) + textSize, AndroidUtilities.dp(24)); + int size = Math.max(dp(16) + textSize, dp(24)); int cx = getMeasuredWidth() / 2; int cy = getMeasuredHeight() / 2; textPaint.setColor(getThemedColor(Theme.key_dialogRoundCheckBoxCheck)); paint.setColor(getThemedColor(darkTheme ? Theme.key_voipgroup_inviteMembersBackground : Theme.key_dialogBackground)); rect.set(cx - size / 2, 0, cx + size / 2, getMeasuredHeight()); - canvas.drawRoundRect(rect, AndroidUtilities.dp(12), AndroidUtilities.dp(12), paint); + canvas.drawRoundRect(rect, dp(12), dp(12), paint); paint.setColor(getThemedColor(Theme.key_dialogFloatingButton)); - rect.set(cx - size / 2 + AndroidUtilities.dp(2), AndroidUtilities.dp(2), cx + size / 2 - AndroidUtilities.dp(2), getMeasuredHeight() - AndroidUtilities.dp(2)); - canvas.drawRoundRect(rect, AndroidUtilities.dp(10), AndroidUtilities.dp(10), paint); + rect.set(cx - size / 2 + dp(2), dp(2), cx + size / 2 - dp(2), getMeasuredHeight() - dp(2)); + canvas.drawRoundRect(rect, dp(10), dp(10), paint); - canvas.drawText(text, cx - textSize / 2, AndroidUtilities.dp(16.2f), textPaint); + canvas.drawText(text, cx - textSize / 2, dp(16.2f), textPaint); } }; selectedCountView.setAlpha(0.0f); @@ -1853,9 +1853,9 @@ private void invalidateTopicsAnimation(View cell, int[] loc, float value) { searchView.setScaleY(0.9f + (1f - value) * 0.1f); searchView.setAlpha(1f - value); - topicsBackActionBar.getBackButton().setTranslationX(-AndroidUtilities.dp(16) * (1f - value)); - topicsBackActionBar.getTitleTextView().setTranslationY(AndroidUtilities.dp(16) * (1f - value)); - topicsBackActionBar.getSubtitleTextView().setTranslationY(AndroidUtilities.dp(16) * (1f - value)); + topicsBackActionBar.getBackButton().setTranslationX(-dp(16) * (1f - value)); + topicsBackActionBar.getTitleTextView().setTranslationY(dp(16) * (1f - value)); + topicsBackActionBar.getSubtitleTextView().setTranslationY(dp(16) * (1f - value)); topicsBackActionBar.setAlpha(value); topicsGridView.getLocationInWindow(loc); @@ -1988,7 +1988,7 @@ public boolean onTouch(View v, MotionEvent event) { sendWithoutSound.setIconColor(getThemedColor(Theme.key_windowBackgroundWhiteHintText)); } sendWithoutSound.setTextAndIcon(LocaleController.getString("SendWithoutSound", R.string.SendWithoutSound), R.drawable.input_notify_off); - sendWithoutSound.setMinimumWidth(AndroidUtilities.dp(196)); + sendWithoutSound.setMinimumWidth(dp(196)); sendPopupLayout2.addView(sendWithoutSound, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); sendWithoutSound.setOnClickListener(v -> { if (sendPopupWindow != null && sendPopupWindow.isShowing()) { @@ -2002,7 +2002,7 @@ public boolean onTouch(View v, MotionEvent event) { sendMessage.setIconColor(getThemedColor(Theme.key_windowBackgroundWhiteHintText)); } sendMessage.setTextAndIcon(LocaleController.getString("SendMessage", R.string.SendMessage), R.drawable.msg_send); - sendMessage.setMinimumWidth(AndroidUtilities.dp(196)); + sendMessage.setMinimumWidth(dp(196)); sendPopupLayout2.addView(sendMessage, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); sendMessage.setOnClickListener(v -> { if (sendPopupWindow != null && sendPopupWindow.isShowing()) { @@ -2024,17 +2024,17 @@ public boolean onTouch(View v, MotionEvent event) { sendPopupWindow.getContentView().setFocusableInTouchMode(true); SharedConfig.removeScheduledOrNoSoundHint(); - layout.measure(View.MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(1000), View.MeasureSpec.AT_MOST), View.MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(1000), View.MeasureSpec.AT_MOST)); + layout.measure(View.MeasureSpec.makeMeasureSpec(dp(1000), View.MeasureSpec.AT_MOST), View.MeasureSpec.makeMeasureSpec(dp(1000), View.MeasureSpec.AT_MOST)); sendPopupWindow.setFocusable(true); int[] location = new int[2]; view.getLocationInWindow(location); int y; - if (keyboardVisible && parentFragment != null && parentFragment.contentView.getMeasuredHeight() > AndroidUtilities.dp(58)) { + if (keyboardVisible && parentFragment != null && parentFragment.contentView.getMeasuredHeight() > dp(58)) { y = location[1] + view.getMeasuredHeight(); } else { - y = location[1] - layout.getMeasuredHeight() - AndroidUtilities.dp(2); + y = location[1] - layout.getMeasuredHeight() - dp(2); } - sendPopupWindow.showAtLocation(view, Gravity.LEFT | Gravity.TOP, location[0] + view.getMeasuredWidth() - layout.getMeasuredWidth() + AndroidUtilities.dp(8), y); + sendPopupWindow.showAtLocation(view, Gravity.LEFT | Gravity.TOP, location[0] + view.getMeasuredWidth() - layout.getMeasuredWidth() + dp(8), y); sendPopupWindow.dimBehind(); if (!NekoConfig.disableVibration.Bool()) view.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); @@ -2232,7 +2232,7 @@ private void updateLayout() { } holder = (RecyclerListView.Holder) listView.findContainingViewHolder(child); - int top = child.getTop() - AndroidUtilities.dp(8); + int top = child.getTop() - dp(8); int newOffset = top > 0 && holder != null && holder.getAdapterPosition() == 0 ? top : 0; if (top >= 0 && holder != null && holder.getAdapterPosition() == 0) { lastOffset = child.getTop(); @@ -2257,7 +2257,7 @@ private void updateLayout() { } holder = (RecyclerListView.Holder) listView.findContainingViewHolder(child); - int topicsTop = child.getTop() - AndroidUtilities.dp(8); + int topicsTop = child.getTop() - dp(8); int topicsNewOffset = topicsTop > 0 && holder != null && holder.getAdapterPosition() == 0 ? topicsTop : 0; if (topicsTop >= 0 && holder != null && holder.getAdapterPosition() == 0) { lastOffset = child.getTop(); @@ -2407,8 +2407,8 @@ public void updateSelectedCount(int animated) { } else { selectedCountView.invalidate(); if (!showCommentTextView(true) && animated != 0) { - selectedCountView.setPivotX(AndroidUtilities.dp(21)); - selectedCountView.setPivotY(AndroidUtilities.dp(12)); + selectedCountView.setPivotX(dp(21)); + selectedCountView.setPivotY(dp(12)); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.playTogether( ObjectAnimator.ofFloat(selectedCountView, View.SCALE_X, animated == 1 ? 1.1f : 0.9f, 1.0f), @@ -2551,13 +2551,13 @@ protected String repostToCustomName() { return super.repostToCustomName(); } }; - view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, AndroidUtilities.dp(100))); + view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, dp(100))); break; } case 1: default: { view = new View(context); - view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, AndroidUtilities.dp(darkTheme && linkToCopy[1] != null ? 109 : 56))); + view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, dp(darkTheme && linkToCopy[1] != null ? 109 : 56))); break; } } @@ -2617,7 +2617,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType switch (viewType) { case 0: { view = new ShareTopicCell(context, resourcesProvider); - view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, AndroidUtilities.dp(100))); + view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, dp(100))); break; } case 1: @@ -3082,7 +3082,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType switch (viewType) { case 5: { view = new ShareDialogCell(context, darkTheme ? ShareDialogCell.TYPE_CALL : ShareDialogCell.TYPE_SHARE, resourcesProvider); - view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, AndroidUtilities.dp(100))); + view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, dp(100))); break; } case 0: { @@ -3092,7 +3092,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType default: case 1: { view = new View(context); - view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, AndroidUtilities.dp(darkTheme && linkToCopy[1] != null ? 109 : 56))); + view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, dp(darkTheme && linkToCopy[1] != null ? 109 : 56))); break; } case 2: { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java index 2944e3bb23..b86483735e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java @@ -1629,7 +1629,7 @@ public void onTextChanged(EditText editText) { } searchItem.setVisibility(View.GONE); searchWas = text.length() != 0 || searchingReaction != null; - switchToCurrentSelectedMode(false); + post(() -> switchToCurrentSelectedMode(false)); if (mediaPages[0].selectedType == TAB_FILES) { if (documentsSearchAdapter == null) { return; @@ -9381,4 +9381,37 @@ private CharSequence addPostText() { } return addPostButton; } + + public void showPremiumFloodWaitBulletin(final boolean isUpload) { + if (profileActivity == null) return; + +// final long now = System.currentTimeMillis(); +// if (now - ConnectionsManager.lastPremiumFloodWaitShown < 1000L * MessagesController.getInstance(currentAccount).uploadPremiumSpeedupNotifyPeriod) { +// return; +// } +// ConnectionsManager.lastPremiumFloodWaitShown = now; +// if (UserConfig.getInstance(currentAccount).isPremium() || MessagesController.getInstance(currentAccount).premiumFeaturesBlocked()) { +// return; +// } + + final int currentAccount = profileActivity.getCurrentAccount(); + + final float n; + if (isUpload) { + n = MessagesController.getInstance(currentAccount).uploadPremiumSpeedupUpload; + } else { + n = MessagesController.getInstance(currentAccount).uploadPremiumSpeedupDownload; + } + SpannableString boldN = new SpannableString(Double.toString(Math.round(n * 10) / 10.0).replaceAll("\\.0$", "")); + boldN.setSpan(new TypefaceSpan(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)), 0, boldN.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + + if (profileActivity.hasStoryViewer()) return; + BulletinFactory.of(profileActivity).createSimpleBulletin( + R.raw.speed_limit, + LocaleController.getString(isUpload ? R.string.UploadSpeedLimited : R.string.DownloadSpeedLimited), + AndroidUtilities.replaceCharSequence("%d", AndroidUtilities.premiumText(LocaleController.getString(isUpload ? R.string.UploadSpeedLimitedMessage : R.string.DownloadSpeedLimitedMessage), () -> { + profileActivity.presentFragment(new PremiumPreviewFragment(isUpload ? "upload_speed" : "download_speed")); + }), boldN) + ).setDuration(8000).show(true); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SlideChooseView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SlideChooseView.java index 4c00cd0b6f..a68b4f10f6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SlideChooseView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SlideChooseView.java @@ -182,9 +182,7 @@ public boolean onTouchEvent(MotionEvent event) { private void setOption(int index) { if (selectedIndex != index) { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + AndroidUtilities.vibrateCursor(this); } selectedIndex = index; if (callback != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerSetBulletinLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerSetBulletinLayout.java index 5d942e9cdd..054eddab85 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerSetBulletinLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerSetBulletinLayout.java @@ -114,7 +114,7 @@ public StickerSetBulletinLayout(@NonNull Context context, TLObject setObject, in imageLocation = ImageLocation.getForSticker(thumb, sticker, thumbVersion); } - if (object instanceof TLRPC.Document && MessageObject.isAnimatedStickerDocument(sticker, true) || MessageObject.isVideoSticker(sticker) || MessageObject.isGifDocument(sticker)) { + if (object instanceof TLRPC.Document && (MessageObject.isAnimatedStickerDocument(sticker, true) || MessageObject.isVideoSticker(sticker) || MessageObject.isGifDocument(sticker))) { imageView.setImage(ImageLocation.getForDocument(sticker), "50_50", imageLocation, null, 0, setObject); } else if (imageLocation != null && imageLocation.imageType == FileLoader.IMAGE_TYPE_LOTTIE) { imageView.setImage(imageLocation, "50_50", "tgs", null, setObject); @@ -205,9 +205,9 @@ public StickerSetBulletinLayout(@NonNull Context context, TLObject setObject, in break; case TYPE_REPLACED_TO_FAVORITES_GIFS: final boolean isPremium = UserConfig.getInstance(UserConfig.selectedAccount).isPremium(); - if (!MessagesController.getInstance(UserConfig.selectedAccount).premiumFeaturesBlocked() || !isPremium) { - titleTextView.setText(LocaleController.formatString("LimitReachedFavoriteGifs", R.string.LimitReachedFavoriteGifs, MessagesController.getInstance(UserConfig.selectedAccount).savedGifsLimitDefault)); - CharSequence str = AndroidUtilities.premiumText(LocaleController.formatString("LimitReachedFavoriteGifsSubtitle", R.string.LimitReachedFavoriteGifsSubtitle, MessagesController.getInstance(UserConfig.selectedAccount).savedGifsLimitPremium), () -> { + if (!MessagesController.getInstance(UserConfig.selectedAccount).premiumFeaturesBlocked() && !isPremium) { + titleTextView.setText(LocaleController.formatString(R.string.LimitReachedFavoriteGifs, MessagesController.getInstance(UserConfig.selectedAccount).savedGifsLimitDefault)); + CharSequence str = AndroidUtilities.premiumText(LocaleController.formatString(R.string.LimitReachedFavoriteGifsSubtitle, MessagesController.getInstance(UserConfig.selectedAccount).savedGifsLimitPremium), () -> { Activity activity = AndroidUtilities.findActivity(context); if (activity instanceof LaunchActivity) { ((LaunchActivity) activity).presentFragment(new PremiumPreviewFragment(LimitReachedBottomSheet.limitTypeToServerString(LimitReachedBottomSheet.TYPE_GIFS))); @@ -215,8 +215,8 @@ public StickerSetBulletinLayout(@NonNull Context context, TLObject setObject, in }); subtitleTextView.setText(str); } else { - titleTextView.setText(LocaleController.formatString("LimitReachedFavoriteGifs", R.string.LimitReachedFavoriteGifs, isPremium ? MessagesController.getInstance(UserConfig.selectedAccount).savedGifsLimitPremium : MessagesController.getInstance(UserConfig.selectedAccount).savedGifsLimitDefault)); - subtitleTextView.setText(LocaleController.formatString("LimitReachedFavoriteGifsSubtitlePremium", R.string.LimitReachedFavoriteGifsSubtitlePremium)); + titleTextView.setText(LocaleController.formatString(R.string.LimitReachedFavoriteGifs, isPremium ? MessagesController.getInstance(UserConfig.selectedAccount).savedGifsLimitPremium : MessagesController.getInstance(UserConfig.selectedAccount).savedGifsLimitDefault)); + subtitleTextView.setText(LocaleController.getString(R.string.LimitReachedFavoriteGifsSubtitlePremium)); } break; case TYPE_REMOVED_FROM_RECENT: diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java index dbadadb6c0..ce39b7fe74 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java @@ -25,6 +25,8 @@ import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.Drawable; @@ -39,7 +41,6 @@ import android.transition.Transition; import android.transition.TransitionManager; import android.transition.TransitionValues; -import android.util.Log; import android.util.SparseArray; import android.util.TypedValue; import android.view.Gravity; @@ -47,14 +48,17 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; +import android.view.animation.LinearInterpolator; import android.view.inputmethod.EditorInfo; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; +import androidx.annotation.NonNull; import androidx.collection.LongSparseArray; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.RecyclerView; import org.telegram.messenger.AndroidUtilities; @@ -62,6 +66,7 @@ import org.telegram.messenger.DocumentObject; import org.telegram.messenger.MediaController; import org.telegram.messenger.MediaDataController; +import org.telegram.messenger.BuildVars; import org.telegram.messenger.Emoji; import org.telegram.messenger.FileLoader; import org.telegram.messenger.FileLog; @@ -85,6 +90,8 @@ import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.ActionBarMenuItem; +import org.telegram.ui.ActionBar.ActionBarMenuSubItem; +import org.telegram.ui.ActionBar.ActionBarPopupWindow; import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.BottomSheet; @@ -98,6 +105,7 @@ import org.telegram.ui.Components.Premium.PremiumFeatureBottomSheet; import org.telegram.ui.ContentPreviewViewer; import org.telegram.ui.LaunchActivity; +import org.telegram.ui.PhotoViewer; import org.telegram.ui.PremiumPreviewFragment; import org.telegram.ui.ProfileActivity; @@ -112,9 +120,12 @@ import tw.nekomimi.nekogram.utils.ProxyUtil; import xyz.nextalone.nagram.NaConfig; import xyz.nextalone.nagram.helper.ExternalStickerCacheHelper; +import xyz.nextalone.nagram.helper.StickerSetHelper; public class StickersAlert extends BottomSheet implements NotificationCenter.NotificationCenterDelegate { + public final static boolean DISABLE_STICKER_EDITOR = !BuildVars.DEBUG_PRIVATE_VERSION; + public interface StickersAlertDelegate { void onStickerSelected(TLRPC.Document sticker, String query, Object parent, MessageObject.SendAnimationData sendAnimationData, boolean clearsInputField, boolean notify, int scheduleDate); boolean canSchedule(); @@ -141,10 +152,13 @@ public interface StickersAlertCustomButtonDelegate { private Pattern urlPattern; private RecyclerListView gridView; private GridAdapter adapter; + private ItemTouchHelper dragAndDropHelper; + private TLRPC.Document draggedDocument; private LinkSpanDrawable.LinksTextView titleTextView; private TextView descriptionTextView; private ActionBarMenuItem optionsButton; - private TextView pickerBottomLayout; + private ActionBarMenuSubItem deleteItem; + private AnimatedTextView pickerBottomLayout; private PremiumButtonView premiumButtonView; private FrameLayout pickerBottomFrameLayout; private FrameLayout stickerPreviewLayout; @@ -161,10 +175,12 @@ public interface StickersAlertCustomButtonDelegate { private Activity parentActivity; private int itemSize, itemHeight; public boolean probablyEmojis; + private boolean isEditModeEnabled; - private int menu_archive = 4; + private int menu_archive = 102; private final int menuRefreshExternalCache = 100; private final int menuDeleteExternalCache = 101; + private final int menu_copy_sticker_set = 103; private TLRPC.TL_messages_stickerSet stickerSet; private TLRPC.Document selectedSticker; @@ -189,6 +205,7 @@ public interface StickersAlertCustomButtonDelegate { private boolean showTooltipWhenToggle = true; private int buttonTextColorKey; + private final StickersShaker stickersShaker = new StickersShaker(); private ContentPreviewViewer.ContentPreviewViewerDelegate previewDelegate = new ContentPreviewViewer.ContentPreviewViewerDelegate() { @Override @@ -230,6 +247,52 @@ public void remove(SendMessagesHelper.ImportingSticker importingSticker) { removeSticker(importingSticker); } + @Override + public void deleteSticker(TLRPC.Document document) { + stickerSet.documents.remove(document); + adapter.notifyDataSetChanged(); + TLRPC.TL_stickers_removeStickerFromSet req = new TLRPC.TL_stickers_removeStickerFromSet(); + req.sticker = MediaDataController.getInputStickerSetItem(document, "").document; + ConnectionsManager.getInstance(UserConfig.selectedAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (response instanceof TLRPC.TL_messages_stickerSet) { + MediaDataController.getInstance(UserConfig.selectedAccount).toggleStickerSet(null, response, 2, null, false, false); + } + })); + } + + @Override + public boolean canEditSticker() { + return true; + } + + @Override + public void editSticker(TLRPC.Document document) { + final ChatActivity chatActivity; + if (parentFragment instanceof ChatActivity) { + chatActivity = (ChatActivity) parentFragment; + } else { + chatActivity = null; + } + final ArrayList photos = new ArrayList<>(); + File file = FileLoader.getInstance(UserConfig.selectedAccount).getPathToAttach(document, true); + if (file == null || !file.exists()) { + return; + } + AndroidUtilities.runOnUIThread(() -> { + final MediaController.PhotoEntry entry = new MediaController.PhotoEntry(0, 0, 0, file.getAbsolutePath(), 0, false, 0, 0, 0); + photos.add(entry); + PhotoViewer.getInstance().setParentActivity(parentFragment.getParentActivity(), resourcesProvider); + PhotoViewer.getInstance().openPhotoForSelect(photos, 0, PhotoViewer.SELECT_TYPE_STICKER, false, new PhotoViewer.EmptyPhotoViewerProvider() { + @Override + public boolean allowCaption() { + return false; + } + }, chatActivity); + PhotoViewer.getInstance().enableStickerMode(document); + ContentPreviewViewer.getInstance().setStickerSetForCustomSticker(stickerSet); + }, 300); + } + @Override public boolean needSend(int contentType) { return delegate != null; @@ -248,7 +311,7 @@ public long getDialogId() { return 0; } }; - + public StickersAlert(Context context, Object parentObject, TLObject object, Theme.ResourcesProvider resourcesProvider) { super(context, false, resourcesProvider); this.resourcesProvider = resourcesProvider; @@ -712,8 +775,28 @@ protected void onDraw(Canvas canvas) { containerView.addView(shadow[0], frameLayoutParams); gridView = new RecyclerListView(context) { + @Override + public boolean drawChild(Canvas canvas, View child, long drawingTime) { + if (child instanceof StickerEmojiCell) { + if (isEditModeEnabled) { + int pos = gridView.getChildViewHolder(child).getAdapterPosition(); + canvas.save(); + canvas.rotate(stickersShaker.getRotationValueForPos(pos), child.getLeft() + (child.getMeasuredWidth() / 2f), child.getTop() + (child.getMeasuredHeight() / 2f)); + canvas.translate(stickersShaker.getTranslateXValueForPos(pos), stickersShaker.getTranslateYValueForPos(pos)); + boolean result = super.drawChild(canvas, child, drawingTime); + canvas.restore(); + invalidate(); + return result; + } + } + return super.drawChild(canvas, child, drawingTime); + } + @Override public boolean onInterceptTouchEvent(MotionEvent event) { + if (isEditModeEnabled) { + return super.onInterceptTouchEvent(event); + } boolean result = ContentPreviewViewer.getInstance().onInterceptTouchEvent(event, gridView, 0, previewDelegate, resourcesProvider); return super.onInterceptTouchEvent(event) || result; } @@ -742,6 +825,59 @@ public int getSpanSize(int position) { return 1; } }); + dragAndDropHelper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.RIGHT | ItemTouchHelper.LEFT, 0) { + + private int movedPos = -1; + + @Override + public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder source, @NonNull RecyclerView.ViewHolder target) { + if (source.getItemViewType() == GridAdapter.TYPE_ADD_STICKER) { + return false; + } + if (source.getItemViewType() != target.getItemViewType()) { + return false; + } + int fromPosition = source.getAdapterPosition(); + int toPosition = target.getAdapterPosition(); + TLRPC.Document removed = stickerSet.documents.remove(fromPosition); + stickerSet.documents.add(toPosition, removed); + adapter.notifyItemMoved(fromPosition, toPosition); + movedPos = toPosition; + return true; + } + + @Override + public int getDragDirs(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) { + if (viewHolder.getItemViewType() == GridAdapter.TYPE_ADD_STICKER) { + return 0; + } + return super.getDragDirs(recyclerView, viewHolder); + } + + @Override + public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { + super.onSelectedChanged(viewHolder, actionState); + if (actionState == ItemTouchHelper.ACTION_STATE_IDLE && draggedDocument != null && movedPos > 0) { + TLRPC.TL_stickers_changeStickerPosition req = new TLRPC.TL_stickers_changeStickerPosition(); + req.position = movedPos; + req.sticker = MediaDataController.getInputStickerSetItem(draggedDocument, "").document; + AndroidUtilities.runOnUIThread(() -> ConnectionsManager.getInstance(UserConfig.selectedAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (response instanceof TLRPC.TL_messages_stickerSet) { + MediaDataController.getInstance(UserConfig.selectedAccount).toggleStickerSet(null, response, 2, null, false, false); + } + })), 200); + movedPos = -1; + draggedDocument = null; + } else if (actionState == ItemTouchHelper.ACTION_STATE_DRAG) { + draggedDocument = ((StickerEmojiCell) viewHolder.itemView).getSticker(); + } + } + + @Override + public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) { + + } + }); gridView.setAdapter(adapter = new GridAdapter(context)); gridView.setVerticalScrollBarEnabled(false); gridView.addItemDecoration(new RecyclerView.ItemDecoration() { @@ -757,7 +893,13 @@ public void getItemOffsets(Rect outRect, View view, RecyclerView parent, Recycle gridView.setClipToPadding(false); gridView.setEnabled(true); gridView.setGlowColor(getThemedColor(Theme.key_dialogScrollGlow)); - gridView.setOnTouchListener((v, event) -> ContentPreviewViewer.getInstance().onTouch(event, gridView, 0, stickersOnItemClickListener, previewDelegate, resourcesProvider)); + + gridView.setOnTouchListener((v, event) -> { + if (isEditModeEnabled) { + return false; + } + return ContentPreviewViewer.getInstance().onTouch(event, gridView, 0, stickersOnItemClickListener, previewDelegate, resourcesProvider); + }); gridView.setOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { @@ -765,6 +907,13 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { } }); stickersOnItemClickListener = (view, position) -> { + if (view instanceof AddStickerBtnView) { + StickersDialogs.showAddStickerDialog(stickerSet, view, parentFragment, resourcesProvider); + return; + } + if (isEditModeEnabled) { + return; + } if (stickerSetCovereds != null) { TLRPC.StickerSetCovered pack = adapter.positionsToSets.get(position); if (pack != null) { @@ -874,8 +1023,12 @@ public void requestLayout() { optionsButton.addSubItem(menuRefreshExternalCache, R.drawable.menu_views_reposts, LocaleController.getString(R.string.ExternalStickerCacheRefresh)); optionsButton.addSubItem(menuDeleteExternalCache, R.drawable.msg_delete, LocaleController.getString(R.string.ExternalStickerCacheDelete)); } + optionsButton.addSubItem(menu_copy_sticker_set, R.drawable.msg_copy, LocaleController.getString(R.string.StickersCopyStickerSet)); - optionsButton.setOnClickListener(v -> optionsButton.toggleSubMenu()); + optionsButton.setOnClickListener(v -> { + checkOptions(); + optionsButton.toggleSubMenu(); + }); optionsButton.setDelegate(this::onSubItemClick); optionsButton.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); optionsButton.setVisibility(inputStickerSet != null ? View.VISIBLE : View.GONE); @@ -889,10 +1042,10 @@ public void requestLayout() { shadow[1].setBackgroundColor(getThemedColor(Theme.key_dialogShadowLine)); containerView.addView(shadow[1], frameLayoutParams); - pickerBottomLayout = new TextView(context); + pickerBottomLayout = new AnimatedTextView(context); pickerBottomLayout.setBackground(Theme.createSelectorWithBackgroundDrawable(getThemedColor(Theme.key_dialogBackground), getThemedColor(Theme.key_listSelector))); pickerBottomLayout.setTextColor(getThemedColor(buttonTextColorKey = Theme.key_dialogTextBlue2)); - pickerBottomLayout.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + pickerBottomLayout.setTextSize(dp(14)); pickerBottomLayout.setPadding(dp(18), 0, dp(18), 0); pickerBottomLayout.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); pickerBottomLayout.setGravity(Gravity.CENTER); @@ -975,6 +1128,57 @@ private void updateDescription() { } } + private void checkOptions() { + final MediaDataController mediaDataController = MediaDataController.getInstance(currentAccount); + boolean notInstalled = stickerSet == null || !mediaDataController.isStickerPackInstalled(stickerSet.set.id); + if (stickerSet != null && stickerSet.set != null && stickerSet.set.creator && deleteItem == null && !DISABLE_STICKER_EDITOR) { + optionsButton.addSubItem(3, R.drawable.tabs_reorder, LocaleController.getString(R.string.StickersReorder)); + optionsButton.addSubItem(4, R.drawable.msg_edit, LocaleController.getString(R.string.EditName)); + if (notInstalled) { + deleteItem = optionsButton.addSubItem(5, R.drawable.msg_delete, LocaleController.getString(R.string.Delete)); + } else { + ActionBarPopupWindow.ActionBarPopupWindowLayout moreDeleteOptions = new ActionBarPopupWindow.ActionBarPopupWindowLayout(getContext(), 0, resourcesProvider); + moreDeleteOptions.setFitItems(true); + ActionBarMenuSubItem backItem = ActionBarMenuItem.addItem(moreDeleteOptions, R.drawable.msg_arrow_back, LocaleController.getString(R.string.Back), false, resourcesProvider); + backItem.setOnClickListener(view -> optionsButton.getPopupLayout().getSwipeBack().closeForeground()); + ActionBarMenuSubItem deleteForeverItem = ActionBarMenuItem.addItem(moreDeleteOptions, 0, LocaleController.getString(R.string.StickersDeleteForEveryone), false, resourcesProvider); + int redColor = getThemedColor(Theme.key_text_RedBold); + deleteForeverItem.setColors(redColor, redColor); + deleteForeverItem.setSelectorColor(Theme.multAlpha(redColor, .1f)); + ActionBarMenuSubItem deleteForMe = ActionBarMenuItem.addItem(moreDeleteOptions, 0, LocaleController.getString(R.string.StickersRemoveForMe), false, resourcesProvider); + deleteForMe.setOnClickListener(v -> { + optionsButton.closeSubMenu(); + dismiss(); + MediaDataController.getInstance(currentAccount).toggleStickerSet(getContext(), stickerSet, 1, parentFragment, true, true); + }); + deleteForeverItem.setOnClickListener(v -> { + optionsButton.closeSubMenu(); + StickersDialogs.showDeleteForEveryOneDialog(stickerSet.set, resourcesProvider, getContext(), () -> { + dismiss(); + MediaDataController.getInstance(currentAccount).toggleStickerSet(getContext(), stickerSet, 1, parentFragment, false, false); + }); + }); + deleteItem = optionsButton.addSwipeBackItem(R.drawable.msg_delete, null, LocaleController.getString(R.string.Delete), moreDeleteOptions); + } + optionsButton.addColoredGap(); + View stickersBotBtn = new MessageContainsEmojiButton(currentAccount, getContext(), resourcesProvider, new ArrayList<>(), MessageContainsEmojiButton.STICKERS_BOT_TYPE); + stickersBotBtn.setOnClickListener(v -> { + optionsButton.closeSubMenu(); + dismiss(); + AndroidUtilities.runOnUIThread(() -> MessagesController.getInstance(currentAccount).openByUserName("stickers", parentFragment, 1), 200); + }); + stickersBotBtn.setTag(R.id.fit_width_tag, 1); + optionsButton.addSubItem(stickersBotBtn, LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT); + + int redColor = getThemedColor(Theme.key_text_RedBold); + deleteItem.setColors(redColor, redColor); + deleteItem.setSelectorColor(Theme.multAlpha(redColor, .1f)); + if (deleteItem.getRightIcon() != null) { + deleteItem.getRightIcon().setColorFilter(redColor); + } + } + } + private void updateSendButton() { int size = (int) (Math.min(AndroidUtilities.displaySize.x, AndroidUtilities.displaySize.y) / 2 / AndroidUtilities.density); if (importingStickers != null) { @@ -1107,6 +1311,24 @@ protected void onSend(LongSparseArray dids, int count, TLRPC.TL_fo } else if (id == menuDeleteExternalCache) { // Na: [ExternalStickerCache] delete cache files ExternalStickerCacheHelper.deleteCacheFiles(stickerSet); + enableEditMode(); + } else if (id == menu_copy_sticker_set) { + // Na: copy sticker set + dismiss(); + StickersDialogs.showShortNameEditorDialog(resourcesProvider, containerView.getContext(), short_name -> { + StickersDialogs.showNameEditorDialog(null, resourcesProvider, containerView.getContext(), pack_name -> { + StickerSetHelper.INSTANCE.copyStickerSet(short_name, pack_name, stickerSet, UserConfig.selectedAccount); + }); + }); + } else if (id == 4) { + StickersDialogs.showNameEditorDialog(stickerSet.set, resourcesProvider, getContext(), arg -> { + titleTextView.setText(arg); + }); + } else if (id == 5) { + StickersDialogs.showDeleteForEveryOneDialog(stickerSet.set, resourcesProvider, getContext(), () -> { + dismiss(); + MediaDataController.getInstance(currentAccount).toggleStickerSet(getContext(), stickerSet, 1, parentFragment, false, false); + }); } } @@ -1254,7 +1476,7 @@ public void onClick(View widget) { type = MediaDataController.TYPE_MASK; } else if (stickerSet.set.emojis) { type = MediaDataController.TYPE_EMOJIPACKS; - }; + } try { if (error == null) { if (showTooltipWhenToggle) { @@ -1275,14 +1497,25 @@ public void onClick(View widget) { } else { optionsButton.showSubItem(menu_archive); String text; - if (stickerSet.set.masks) { + boolean isEditModeAvailable = stickerSet.set.creator && !DISABLE_STICKER_EDITOR; + if (isEditModeAvailable) { + text = LocaleController.getString(isEditModeEnabled ? R.string.Done : R.string.EditStickers); + } else if (stickerSet.set.masks) { text = LocaleController.formatPluralString("RemoveManyMasksCount", stickerSet.documents.size()); } else if (stickerSet.set.emojis) { text = LocaleController.formatPluralString("RemoveManyEmojiCount", stickerSet.documents.size()); } else { text = LocaleController.formatPluralString("RemoveManyStickersCount", stickerSet.documents.size()); } - if (stickerSet.set.official) { + if (isEditModeAvailable) { + setButton(v -> { + if (isEditModeEnabled) { + disableEditMode(); + } else { + enableEditMode(); + } + }, text, Theme.key_featuredStickers_buttonText, Theme.key_featuredStickers_addButton, Theme.key_featuredStickers_addButtonPressed); + } else if (stickerSet.set.official) { setButton(v -> { if (installDelegate != null) { installDelegate.onStickerSetUninstalled(); @@ -1643,6 +1876,7 @@ public void setOnDismissListener(Runnable onDismissListener) { @Override public void dismiss() { super.dismiss(); + stickersShaker.stopShake(false); if (!ignoreMasterDismiss && masterDismissListener != null) { masterDismissListener.run(); } @@ -1743,6 +1977,20 @@ public void didReceivedNotification(int id, int account, Object... args) { updateFields(); } } else if (id == NotificationCenter.stickersDidLoad) { + TLRPC.TL_messages_stickerSet newStickerSet = null; + if (inputStickerSet != null) { + final MediaDataController mediaDataController = MediaDataController.getInstance(currentAccount); + if (newStickerSet == null && inputStickerSet.short_name != null) { + newStickerSet = mediaDataController.getStickerSetByName(inputStickerSet.short_name); + } + if (newStickerSet == null) { + newStickerSet = mediaDataController.getStickerSetById(inputStickerSet.id); + } + } + if (newStickerSet != stickerSet) { + stickerSet = newStickerSet; + loadStickerSet(); + } updateFields(); } } @@ -1755,7 +2003,7 @@ private void setButton(View.OnClickListener onClickListener, String title, int c if (colorKey >= 0) { pickerBottomLayout.setTextColor(getThemedColor(buttonTextColorKey = colorKey)); } - pickerBottomLayout.setText(title); + pickerBottomLayout.setText(title, false); pickerBottomLayout.setOnClickListener(onClickListener); ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) pickerBottomLayout.getLayoutParams(); @@ -1810,6 +2058,15 @@ public void updateColors(boolean applyDescriptions) { optionsButton.setPopupItemsSelectorColor(getThemedColor(Theme.key_dialogButtonSelector)); optionsButton.redrawPopup(getThemedColor(Theme.key_actionBarDefaultSubmenuBackground)); + if (deleteItem != null) { + int redColor = getThemedColor(Theme.key_text_RedBold); + deleteItem.setColors(redColor, redColor); + deleteItem.setSelectorColor(Theme.multAlpha(redColor, .1f)); + if (deleteItem.getRightIcon() != null) { + deleteItem.getRightIcon().setColorFilter(redColor); + } + } + if (applyDescriptions) { if (Theme.isAnimatingColor() && animatingDescriptions == null) { animatingDescriptions = getThemeDescriptions(); @@ -1869,6 +2126,8 @@ public ArrayList getThemeDescriptions() { private class GridAdapter extends RecyclerListView.SelectionAdapter { + public static final int TYPE_ADD_STICKER = 3; + private Context context; private int stickersPerRow; private SparseArray cache = new SparseArray<>(); @@ -1898,6 +2157,9 @@ public int getItemViewType(int position) { } return 1; } + if (stickerSet != null && stickerSet.documents.size() == position) { + return 3; + } return 0; } @@ -1925,32 +2187,43 @@ public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { case 2: view = new FeaturedStickerSetInfoCell(context, 8, true, false, resourcesProvider); break; + case TYPE_ADD_STICKER: + view = new AddStickerBtnView(context, resourcesProvider); + break; } - return new RecyclerListView.Holder(view); } @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { if (stickerSetCovereds != null) { switch (holder.getItemViewType()) { case 0: TLRPC.Document sticker = (TLRPC.Document) cache.get(position); - ((StickerEmojiCell) holder.itemView).setSticker(sticker, positionsToSets.get(position), false); + StickerEmojiCell cell = (StickerEmojiCell) holder.itemView; + cell.setSticker(sticker, positionsToSets.get(position), false); break; case 1: ((EmptyCell) holder.itemView).setHeight(dp(82)); break; case 2: TLRPC.StickerSetCovered stickerSetCovered = stickerSetCovereds.get((Integer) cache.get(position)); - FeaturedStickerSetInfoCell cell = (FeaturedStickerSetInfoCell) holder.itemView; - cell.setStickerSet(stickerSetCovered, false); + FeaturedStickerSetInfoCell cell2 = (FeaturedStickerSetInfoCell) holder.itemView; + cell2.setStickerSet(stickerSetCovered, false); break; } } else if (importingStickers != null) { ((StickerEmojiCell) holder.itemView).setSticker(importingStickersPaths.get(position)); } else { - ((StickerEmojiCell) holder.itemView).setSticker(stickerSet.documents.get(position), stickerSet, showEmoji); + if (holder.getItemViewType() != TYPE_ADD_STICKER) { + StickerEmojiCell cell = (StickerEmojiCell) holder.itemView; + if (stickerSet == null) return; + cell.setSticker(stickerSet.documents.get(position), null, stickerSet, null, showEmoji, isEditModeEnabled); + cell.editModeIcon.setOnClickListener(v -> { + ContentPreviewViewer.getInstance().setDelegate(previewDelegate); + ContentPreviewViewer.getInstance().showMenuFor(cell); + }); + } } } @@ -2004,6 +2277,9 @@ public void notifyDataSetChanged() { totalItems = importingStickersPaths.size(); } else { totalItems = stickerSet != null ? stickerSet.documents.size() : 0; + if (stickerSet != null && stickerSet.set.creator && !DISABLE_STICKER_EDITOR && !stickerSet.set.masks && !stickerSet.set.emojis) { + totalItems++; + } } super.notifyDataSetChanged(); } @@ -2034,6 +2310,42 @@ public void getThemeDescriptions(List descriptions, ThemeDescr } } + @SuppressLint("NotifyDataSetChanged") + public void enableEditMode() { + if (isEditModeEnabled) { + return; + } + dragAndDropHelper.attachToRecyclerView(gridView); + isEditModeEnabled = true; + stickersShaker.startShake(); + AndroidUtilities.forEachViews(gridView, view -> { + if (view instanceof StickerEmojiCell) { + ((StickerEmojiCell) view).enableEditMode(true); + } + }); + optionsButton.postDelayed(() -> adapter.notifyDataSetChanged(), 200); + optionsButton.animate().alpha(0f).start(); + pickerBottomLayout.setText(LocaleController.getString(R.string.Done), true); + } + + @SuppressLint("NotifyDataSetChanged") + public void disableEditMode() { + if (!isEditModeEnabled) { + return; + } + dragAndDropHelper.attachToRecyclerView(null); + isEditModeEnabled = false; + stickersShaker.stopShake(true); + AndroidUtilities.forEachViews(gridView, view -> { + if (view instanceof StickerEmojiCell) { + ((StickerEmojiCell) view).disableEditMode(true); + } + }); + optionsButton.postDelayed(() -> adapter.notifyDataSetChanged(), 200); + optionsButton.animate().alpha(1f).start(); + pickerBottomLayout.setText(LocaleController.getString(R.string.EditStickers), true); + } + @Override public void onBackPressed() { if (ContentPreviewViewer.getInstance().isVisible()) { @@ -2048,4 +2360,151 @@ public void onBackPressed() { public void setOnMasterDismiss(Runnable listener) { masterDismissListener = listener; } + + private static class AddStickerBtnView extends FrameLayout { + + public AddStickerBtnView(Context context, Theme.ResourcesProvider resourcesProvider) { + super(context); + View btnView = new View(context); + Drawable circle = Theme.createRoundRectDrawable(dp(28), Theme.multAlpha(Theme.getColor(Theme.key_chat_emojiPanelIcon, resourcesProvider), .12f)); + Drawable drawable = context.getResources().getDrawable(R.drawable.filled_add_sticker).mutate(); + drawable.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelIcon, resourcesProvider), PorterDuff.Mode.MULTIPLY)); + CombinedDrawable combinedDrawable = new CombinedDrawable(circle, drawable); + combinedDrawable.setCustomSize(dp(56), dp(56)); + combinedDrawable.setIconSize(dp(24), dp(24)); + btnView.setBackground(combinedDrawable); + ScaleStateListAnimator.apply(btnView); + addView(btnView, LayoutHelper.createFrame(56, 56, Gravity.CENTER)); + } + } + + private static class StickersShaker { + private static final int MAX_SHAKERS = 6; + private final List rotateAnimators = new ArrayList<>(); + private final List translateXAnimators = new ArrayList<>(); + private final List translateYAnimators = new ArrayList<>(); + + private final List imageRotations = new ArrayList<>(); + private final List imageTranslationsX = new ArrayList<>(); + private final List imageTranslationsY = new ArrayList<>(); + + private void init() { + if (!imageRotations.isEmpty()) return; + for (int i = 0; i < MAX_SHAKERS; i++) { + imageRotations.add(0f); + imageTranslationsX.add(0f); + imageTranslationsY.add(0f); + } + } + + public float getRotationValueForPos(int pos) { + if (imageRotations.isEmpty()) return 0; + pos = pos - ((pos / MAX_SHAKERS) * MAX_SHAKERS); + return imageRotations.get(pos); + } + + public float getTranslateXValueForPos(int pos) { + if (imageTranslationsX.isEmpty()) return 0; + pos = pos - ((pos / MAX_SHAKERS) * MAX_SHAKERS); + return imageTranslationsX.get(pos); + } + + public float getTranslateYValueForPos(int pos) { + if (imageTranslationsY.isEmpty()) return 0; + pos = pos - ((pos / MAX_SHAKERS) * MAX_SHAKERS); + return imageTranslationsY.get(pos); + } + + public void startShake() { + init(); + for (int i = 0; i < MAX_SHAKERS; i++) { + final int pos = i; + int duration = 300; + long currentTime = (long) (Utilities.random.nextFloat() * duration); + + ValueAnimator rotateAnimator = ValueAnimator.ofFloat(0, -2f, 0, 2f, 0f); + rotateAnimator.addUpdateListener(animation -> { + imageRotations.set(pos, (float) animation.getAnimatedValue()); + }); + rotateAnimator.setRepeatCount(ValueAnimator.INFINITE); + rotateAnimator.setRepeatMode(ValueAnimator.RESTART); + rotateAnimator.setInterpolator(new LinearInterpolator()); + rotateAnimator.setCurrentPlayTime(currentTime); + rotateAnimator.setDuration(duration); + rotateAnimator.start(); + + float max = dp(0.5f); + ValueAnimator translateXAnimator = ValueAnimator.ofFloat(0, max, 0, -max, 0); + translateXAnimator.addUpdateListener(animation -> { + imageTranslationsX.set(pos, (float) animation.getAnimatedValue()); + }); + translateXAnimator.setRepeatCount(ValueAnimator.INFINITE); + translateXAnimator.setRepeatMode(ValueAnimator.RESTART); + translateXAnimator.setInterpolator(new LinearInterpolator()); + translateXAnimator.setCurrentPlayTime(currentTime); + translateXAnimator.setDuration((long) (duration * 1.2)); + translateXAnimator.start(); + + ValueAnimator translateYAnimator = ValueAnimator.ofFloat(0, max, 0 - max, 0); + translateYAnimator.addUpdateListener(animation -> { + imageTranslationsY.set(pos, (float) animation.getAnimatedValue()); + }); + translateYAnimator.setRepeatCount(ValueAnimator.INFINITE); + translateYAnimator.setRepeatMode(ValueAnimator.RESTART); + translateYAnimator.setInterpolator(new LinearInterpolator()); + translateYAnimator.setCurrentPlayTime(currentTime); + translateYAnimator.setDuration(duration); + translateYAnimator.start(); + + rotateAnimators.add(rotateAnimator); + translateXAnimators.add(translateXAnimator); + translateYAnimators.add(translateYAnimator); + } + } + + public void stopShake(boolean animate) { + for (int i = 0; i < rotateAnimators.size(); i++) { + final int pos = i; + rotateAnimators.get(i).cancel(); + if (animate) { + ValueAnimator animator = ValueAnimator.ofFloat(imageRotations.get(i), 0f); + animator.addUpdateListener(animation -> { + imageRotations.set(pos, (float) animation.getAnimatedValue()); + }); + animator.setDuration(100); + animator.start(); + } + } + + for (int i = 0; i < translateXAnimators.size(); i++) { + final int pos = i; + translateXAnimators.get(i).cancel(); + if (animate) { + ValueAnimator animator = ValueAnimator.ofFloat(imageTranslationsX.get(i), 0f); + animator.addUpdateListener(animation -> { + imageTranslationsX.set(pos, (float) animation.getAnimatedValue()); + }); + animator.setDuration(100); + animator.start(); + } + } + + for (int i = 0; i < translateYAnimators.size(); i++) { + final int pos = i; + translateYAnimators.get(i).cancel(); + if (animate) { + ValueAnimator animator = ValueAnimator.ofFloat(imageTranslationsY.get(i), 0f); + animator.addUpdateListener(animation -> { + imageTranslationsY.set(pos, (float) animation.getAnimatedValue()); + }); + animator.setDuration(100); + animator.start(); + } + } + + translateYAnimators.clear(); + translateXAnimators.clear(); + rotateAnimators.clear(); + } + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersDialogs.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersDialogs.java new file mode 100644 index 0000000000..c16aff11f9 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersDialogs.java @@ -0,0 +1,329 @@ +package org.telegram.ui.Components; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.content.Context; +import android.content.DialogInterface; +import android.text.Editable; +import android.text.InputFilter; +import android.text.InputType; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.widget.FrameLayout; +import android.widget.TextView; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MediaDataController; +import org.telegram.messenger.MessageObject; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.messenger.UserConfig; +import org.telegram.messenger.Utilities; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.ActionBarMenuItem; +import org.telegram.ui.ActionBar.ActionBarPopupWindow; +import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ChatActivity; +import org.telegram.ui.ContentPreviewViewer; +import org.telegram.ui.Stories.recorder.EmojiBottomSheet; + +import java.util.ArrayList; + +public class StickersDialogs { + private static int getThemedColor(int key, Theme.ResourcesProvider resourcesProvider) { + return Theme.getColor(key, resourcesProvider); + } + + public static void showNameEditorDialog(TLRPC.StickerSet set, Theme.ResourcesProvider resourcesProvider, Context context, Utilities.Callback callback) { + AlertDialog.Builder builder = new AlertDialog.Builder(context, resourcesProvider); + boolean editMode = set != null; + builder.setTitle(LocaleController.getString(editMode ? R.string.EditStickerPack : R.string.NewStickerPack)); + builder.setMessage(LocaleController.getString(R.string.StickersChooseNameForStickerPack)); + FrameLayout frameLayout = new FrameLayout(context); + frameLayout.setPadding(dp(24), 0, dp(20), 0); + final EditTextBoldCursor editText = new EditTextBoldCursor(context) { + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(dp(50), MeasureSpec.EXACTLY)); + } + }; + editText.setTextColor(getThemedColor(Theme.key_dialogTextBlack, resourcesProvider)); + editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); + editText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + editText.setTextColor(getThemedColor(Theme.key_dialogTextBlack, resourcesProvider)); + editText.setHandlesColor(getThemedColor(Theme.key_chat_TextSelectionCursor, resourcesProvider)); + editText.setHeaderHintColor(getThemedColor(Theme.key_windowBackgroundWhiteBlueHeader, resourcesProvider)); + editText.setSingleLine(true); + editText.setFocusable(true); + InputFilter[] inputFilters = new InputFilter[2]; + final int maxLength = 50; + inputFilters[0] = new InputFilter.LengthFilter(maxLength); + inputFilters[1] = (source, start, end, dest, dstart, dend) -> { + if (source.length() > 0 && Character.isWhitespace(source.charAt(0)) && (TextUtils.isEmpty(editText.getText()) || dstart == 0)) { + return ""; + } + return source; + }; + editText.setFilters(inputFilters); + editText.setLineColors(getThemedColor(Theme.key_windowBackgroundWhiteInputField, resourcesProvider), getThemedColor(Theme.key_windowBackgroundWhiteInputFieldActivated, resourcesProvider), getThemedColor(Theme.key_text_RedRegular, resourcesProvider)); + editText.setImeOptions(EditorInfo.IME_ACTION_DONE); + editText.setBackground(null); + editText.requestFocus(); + editText.setPadding(dp(LocaleController.isRTL ? 28 : 0), 0, dp(LocaleController.isRTL ? 0 : 28), 0); + frameLayout.addView(editText); + + NumberTextView checkTextView = new NumberTextView(context); + checkTextView.setCenterAlign(true); + checkTextView.setTextSize(15); + checkTextView.setNumber(maxLength, false); + checkTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText4)); + checkTextView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); + frameLayout.addView(checkTextView, LayoutHelper.createFrame(26, 20, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL, 0, 2, 4, 0)); + editText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + checkTextView.setNumber(maxLength - Character.codePointCount(s, 0, s.length()), true); + } + }); + if (editMode) { + editText.setText(set.title); + editText.setSelection(set.title.length()); + } + builder.setView(frameLayout); + builder.setCustomViewOffset(4); + builder.setPositiveButton(LocaleController.getString(editMode ? R.string.Done : R.string.Create), (dialog, i) -> { + CharSequence text = editText.getText().toString().trim(); + if (!TextUtils.isEmpty(text)) { + AndroidUtilities.hideKeyboard(editText); + dialog.dismiss(); + callback.run(text); + if (editMode) { + TLRPC.TL_stickers_renameStickerSet req = new TLRPC.TL_stickers_renameStickerSet(); + req.stickerset = MediaDataController.getInputStickerSet(set); + req.title = text.toString(); + ConnectionsManager.getInstance(UserConfig.selectedAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (response instanceof TLRPC.TL_messages_stickerSet) { + MediaDataController.getInstance(UserConfig.selectedAccount).toggleStickerSet(null, response, 2, null, false, false); + } + })); + } + } + }); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> { + AndroidUtilities.hideKeyboard(editText); + dialog.dismiss(); + }); + AlertDialog alertDialog = builder.show(); + alertDialog.setDismissDialogByButtons(false); + editText.setOnEditorActionListener((view1, i, keyEvent) -> { + if (i == EditorInfo.IME_ACTION_DONE) { + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).callOnClick(); + return true; + } + return false; + }); + } + + public static void showShortNameEditorDialog(Theme.ResourcesProvider resourcesProvider, Context context, Utilities.Callback callback) { + AlertDialog.Builder builder = new AlertDialog.Builder(context, resourcesProvider); + builder.setTitle(LocaleController.getString(R.string.NewStickerPack)); + builder.setMessage(LocaleController.getString(R.string.StickersChooseShortNameForStickerPack)); + FrameLayout frameLayout = new FrameLayout(context); + frameLayout.setPadding(dp(24), 0, dp(20), 0); + final EditTextBoldCursor editText = new EditTextBoldCursor(context) { + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(dp(50), MeasureSpec.EXACTLY)); + } + }; + editText.setTextColor(getThemedColor(Theme.key_dialogTextBlack, resourcesProvider)); + editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); + editText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + editText.setTextColor(getThemedColor(Theme.key_dialogTextBlack, resourcesProvider)); + editText.setHandlesColor(getThemedColor(Theme.key_chat_TextSelectionCursor, resourcesProvider)); + editText.setHeaderHintColor(getThemedColor(Theme.key_windowBackgroundWhiteBlueHeader, resourcesProvider)); + editText.setSingleLine(true); + editText.setFocusable(true); + InputFilter[] inputFilters = new InputFilter[2]; + final int maxLength = 50; + inputFilters[0] = new InputFilter.LengthFilter(maxLength); + inputFilters[1] = (source, start, end, dest, dstart, dend) -> { + for (int i = start; i < end; i++) { + if (Character.isWhitespace(source.charAt(i))) { + return ""; + } + } + return source; + }; + editText.setFilters(inputFilters); + editText.setLineColors(getThemedColor(Theme.key_windowBackgroundWhiteInputField, resourcesProvider), getThemedColor(Theme.key_windowBackgroundWhiteInputFieldActivated, resourcesProvider), getThemedColor(Theme.key_text_RedRegular, resourcesProvider)); + editText.setImeOptions(EditorInfo.IME_ACTION_DONE); + editText.setBackground(null); + editText.requestFocus(); + editText.setPadding(dp(LocaleController.isRTL ? 28 : 0), 0, dp(LocaleController.isRTL ? 0 : 28), 0); + frameLayout.addView(editText); + + NumberTextView checkTextView = new NumberTextView(context); + checkTextView.setCenterAlign(true); + checkTextView.setTextSize(15); + checkTextView.setNumber(maxLength, false); + checkTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText4)); + checkTextView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); + frameLayout.addView(checkTextView, LayoutHelper.createFrame(26, 20, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL, 0, 2, 4, 0)); + editText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + checkTextView.setNumber(maxLength - Character.codePointCount(s, 0, s.length()), true); + } + }); + builder.setView(frameLayout); + builder.setCustomViewOffset(4); + builder.setPositiveButton(LocaleController.getString(R.string.Done), (dialog, i) -> { + CharSequence text = editText.getText().toString().trim(); + AndroidUtilities.hideKeyboard(editText); + dialog.dismiss(); + callback.run(text); + }); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> { + AndroidUtilities.hideKeyboard(editText); + dialog.dismiss(); + }); + AlertDialog alertDialog = builder.show(); + alertDialog.setDismissDialogByButtons(false); + editText.setOnEditorActionListener((view1, i, keyEvent) -> { + if (i == EditorInfo.IME_ACTION_DONE) { + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).callOnClick(); + return true; + } + return false; + }); + } + + public static void showDeleteForEveryOneDialog(TLRPC.StickerSet set, Theme.ResourcesProvider resourcesProvider, Context context, Runnable callback) { + if (set == null) return; + AlertDialog alertDialog = new AlertDialog.Builder(context, resourcesProvider) + .setTitle(LocaleController.getString(R.string.StickersDeleteStickerSetTitle)) + .setMessage(LocaleController.getString(R.string.StickersDeleteStickerSetDescription)) + .setPositiveButton(LocaleController.getString(R.string.Delete), (di, w) -> { + callback.run(); + TLRPC.TL_stickers_deleteStickerSet req = new TLRPC.TL_stickers_deleteStickerSet(); + req.stickerset = MediaDataController.getInputStickerSet(set); + ConnectionsManager.getInstance(UserConfig.selectedAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + + })); + }) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) + .create(); + alertDialog.show(); + TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); + if (button != null) { + button.setTextColor(getThemedColor(Theme.key_text_RedBold, resourcesProvider)); + } + } + + private static void openStickerPickerDialog(TLRPC.TL_messages_stickerSet stickerSet, BaseFragment fragment, Theme.ResourcesProvider resourcesProvider) { + EmojiBottomSheet sheet = new EmojiBottomSheet(fragment.getContext(), true, resourcesProvider); + sheet.whenDocumentSelected((parentObject, document, a) -> { + String emoji = MessageObject.findAnimatedEmojiEmoticon(document, "\uD83D\uDE00", UserConfig.selectedAccount); + if (TextUtils.isEmpty(emoji)) { + emoji = "\uD83D\uDE00"; + } + TLRPC.TL_stickers_addStickerToSet req = new TLRPC.TL_stickers_addStickerToSet(); + req.stickerset = MediaDataController.getInputStickerSet(stickerSet.set); + req.sticker = MediaDataController.getInputStickerSetItem(document, emoji); + ConnectionsManager.getInstance(UserConfig.selectedAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (response instanceof TLRPC.TL_messages_stickerSet) { + MediaDataController.getInstance(UserConfig.selectedAccount).toggleStickerSet(null, response, 1, null, false, false); + AndroidUtilities.runOnUIThread(() -> NotificationCenter.getInstance(UserConfig.selectedAccount).postNotificationNameOnUIThread(NotificationCenter.customStickerCreated, false, response, document), 250); + } else if (error != null) { + BulletinFactory.showError(error); + } + })); + }); + if (fragment.visibleDialog != null) { + sheet.show(); + } else { + fragment.showDialog(sheet); + } + } + + public static void showAddStickerDialog(TLRPC.TL_messages_stickerSet stickerSet, View view, BaseFragment fragment, Theme.ResourcesProvider resourcesProvider) { + Context context = fragment.getContext(); + if (!(fragment instanceof ChatActivity)) { + openStickerPickerDialog(stickerSet, fragment, resourcesProvider); + return; + } + ActionBarPopupWindow.ActionBarPopupWindowLayout previewMenu = new ActionBarPopupWindow.ActionBarPopupWindowLayout(context, R.drawable.popup_fixed_alert3, resourcesProvider, 0); + ArrayList items = new ArrayList<>(); + final ArrayList actions = new ArrayList<>(); + ArrayList icons = new ArrayList<>(); + + items.add(LocaleController.getString(R.string.StickersCreateNewSticker)); + icons.add(R.drawable.menu_sticker_add); + actions.add(0); + + items.add(LocaleController.getString(R.string.StickersAddAnExistingSticker)); + icons.add(R.drawable.menu_sticker_select); + actions.add(1); + + ActionBarPopupWindow popupWindow = new ActionBarPopupWindow(previewMenu, LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT); + View.OnClickListener onItemClickListener = v -> { + int which = (int) v.getTag(); + popupWindow.dismiss(); + if (actions.get(which) == 1) { + openStickerPickerDialog(stickerSet, fragment, resourcesProvider); + } else { + ((ChatActivity) fragment).openAttachMenuForCreatingSticker(); + ContentPreviewViewer.getInstance().setStickerSetForCustomSticker(stickerSet); + } + }; + + for (int i = 0; i < items.size(); i++) { + View item = ActionBarMenuItem.addItem(previewMenu, icons.get(i), items.get(i), false, resourcesProvider); + item.setTag(i); + item.setOnClickListener(onItemClickListener); + } + + popupWindow.setDismissAnimationDuration(100); + popupWindow.setScaleOut(true); + popupWindow.setOutsideTouchable(true); + popupWindow.setClippingEnabled(true); + popupWindow.setAnimationStyle(R.style.PopupContextAnimation); + popupWindow.setFocusable(true); + previewMenu.measure(View.MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(1000), View.MeasureSpec.AT_MOST), View.MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(1000), View.MeasureSpec.AT_MOST)); + popupWindow.setInputMethodMode(ActionBarPopupWindow.INPUT_METHOD_NOT_NEEDED); + popupWindow.getContentView().setFocusableInTouchMode(true); + int[] pos = new int[2]; + view.getLocationInWindow(pos); + popupWindow.showAtLocation(view, 0, pos[0] + (view.getMeasuredWidth() / 2) - (previewMenu.getMeasuredWidth() / 2), pos[1] + (view.getMeasuredHeight() / 2) - (previewMenu.getMeasuredHeight() / 2)); + popupWindow.dimBehind(); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TopViewCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TopViewCell.java index baef2917b4..18c3c27bbd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/TopViewCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TopViewCell.java @@ -32,11 +32,6 @@ public TopViewCell(Context context, Theme.ResourcesProvider resourcesProvider) { imageView.getImageReceiver().setAutoRepeatCount(1); imageView.getImageReceiver().setAutoRepeat(1); imageView.setOnClickListener(v -> { - RLottieDrawable lottie = imageView.getImageReceiver().getLottieAnimation(); - if (lottie != null) { - if (lottie.getCurrentFrame() < lottie.getFramesCount() - 20) return; - lottie.setProgress(0f); - } imageView.getImageReceiver().startAnimation(); }); addView(imageView, LayoutHelper.createLinear(90, 90, Gravity.CENTER, 0, 9, 0, 9)); @@ -68,6 +63,7 @@ public void setEmoji(String setName, String emoji) { public void setEmoji(int iconResId) { if (lastIconResId != iconResId) { imageView.setImageDrawable(new RLottieDrawable(lastIconResId = iconResId, "" + iconResId, dp(90), dp(90))); + imageView.getImageReceiver().setAutoRepeat(2); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/UItem.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/UItem.java index 57fcacffe9..980b286fe6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/UItem.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UItem.java @@ -4,10 +4,15 @@ import android.text.TextUtils; import android.view.View; -import org.checkerframework.checker.guieffect.qual.UI; import org.telegram.messenger.Utilities; +import org.telegram.tgnet.TLRPC; +import org.telegram.tgnet.tl.TL_stats; +import org.telegram.ui.Business.BusinessLinksActivity; import org.telegram.ui.Business.QuickRepliesController; +import org.telegram.ui.Cells.SlideIntChooseView; +import org.telegram.ui.ChannelMonetizationLayout; import org.telegram.ui.Components.ListView.AdapterWithDiffUtils; +import org.telegram.ui.StatisticActivity; import java.util.Objects; @@ -17,10 +22,12 @@ public class UItem extends AdapterWithDiffUtils.Item { public int id; public boolean checked; public boolean enabled = true; + public boolean hideDivider; public int iconResId; + public int backgroundKey; public CharSequence text, subtext, textValue; public String[] texts; - public boolean accent, red; + public boolean accent, red, transparent; public boolean include; public long dialogId; @@ -51,6 +58,18 @@ public static UItem asHeader(CharSequence text) { return i; } + public static UItem asLargeHeader(CharSequence text) { + UItem i = new UItem(UniversalAdapter.VIEW_TYPE_LARGE_HEADER, false); + i.text = text; + return i; + } + + public static UItem asBlackHeader(CharSequence text) { + UItem i = new UItem(UniversalAdapter.VIEW_TYPE_BLACK_HEADER, false); + i.text = text; + return i; + } + public static UItem asTopView(CharSequence text, String setName, String emoji) { UItem i = new UItem(UniversalAdapter.VIEW_TYPE_TOPVIEW, false); i.text = text; @@ -98,6 +117,14 @@ public static UItem asButton(int id, int iconResId, CharSequence text, CharSeque return i; } + public static UItem asButton(int id, CharSequence text, TLRPC.Document sticker) { + UItem i = new UItem(UniversalAdapter.VIEW_TYPE_TEXT, false); + i.id = id; + i.text = text; + i.object = sticker; + return i; + } + public static UItem asRippleCheck(int id, CharSequence text) { UItem i = new UItem(UniversalAdapter.VIEW_TYPE_CHECKRIPPLE, false); i.id = id; @@ -141,6 +168,25 @@ public static UItem asShadow(CharSequence text) { return i; } + public static UItem asLargeShadow(CharSequence text) { + UItem i = new UItem(UniversalAdapter.VIEW_TYPE_LARGE_SHADOW, false); + i.text = text; + return i; + } + + public static UItem asCenterShadow(CharSequence text) { + UItem i = new UItem(UniversalAdapter.VIEW_TYPE_SHADOW, false); + i.text = text; + i.accent = true; + return i; + } + + public static UItem asProceedOverview(ChannelMonetizationLayout.ProceedOverview value) { + UItem i = new UItem(UniversalAdapter.VIEW_TYPE_PROCEED_OVERVIEW, false); + i.object = value; + return i; + } + public static UItem asShadow(int id, CharSequence text) { UItem i = new UItem(UniversalAdapter.VIEW_TYPE_SHADOW, false); i.id = id; @@ -178,6 +224,20 @@ public static UItem asSlideView(String[] choices, int chosen, Utilities.Callback return item; } + public static UItem asIntSlideView( + int style, + int minStringResId, int min, + int valueMinStringResId, int valueStringResId, int valueMaxStringResId, int value, + int maxStringResId, int max, + Utilities.Callback whenChose + ) { + UItem item = new UItem(UniversalAdapter.VIEW_TYPE_INTSLIDE, false); + item.intValue = value; + item.intCallback = whenChose; + item.object = SlideIntChooseView.Options.make(style, min, minStringResId, valueMinStringResId, valueStringResId, valueMaxStringResId, max, maxStringResId); + return item; + } + public static UItem asQuickReply(QuickRepliesController.QuickReply quickReply) { UItem item = new UItem(UniversalAdapter.VIEW_TYPE_QUICK_REPLY, false); item.object = quickReply; @@ -190,6 +250,37 @@ public static UItem asLargeQuickReply(QuickRepliesController.QuickReply quickRep return item; } + public static UItem asBusinessChatLink(BusinessLinksActivity.BusinessLinkWrapper businessLink) { + UItem item = new UItem(UniversalAdapter.VIEW_TYPE_BUSINESS_LINK, false); + item.object = businessLink; + return item; + } + + public static UItem asChart(int type, int stats_dc, StatisticActivity.ChartViewData data) { + UItem item = new UItem(UniversalAdapter.VIEW_TYPE_CHART_LINEAR + type, false); + item.intValue = stats_dc; + item.object = data; + return item; + } + + public static UItem asTransaction(TL_stats.BroadcastRevenueTransaction transaction) { + UItem item = new UItem(UniversalAdapter.VIEW_TYPE_TRANSACTION, false); + item.object = transaction; + return item; + } + + public static UItem asRadioUser(Object object) { + UItem item = new UItem(UniversalAdapter.VIEW_TYPE_RADIO_USER, false); + item.object = object; + return item; + } + + public static UItem asSpace(int height) { + UItem item = new UItem(UniversalAdapter.VIEW_TYPE_SPACE, false); + item.intValue = height; + return item; + } + public UItem setCloseIcon(Runnable onCloseClick) { clickCallback = onCloseClick; return this; @@ -197,6 +288,9 @@ public UItem setCloseIcon(Runnable onCloseClick) { public UItem setChecked(boolean checked) { this.checked = checked; + if (viewType == UniversalAdapter.VIEW_TYPE_FILTER_CHAT) { + viewType = UniversalAdapter.VIEW_TYPE_FILTER_CHAT_CHECK; + } return this; } @@ -223,7 +317,11 @@ public boolean equals(Object o) { return ( viewType == item.viewType && id == item.id && + dialogId == item.dialogId && iconResId == item.iconResId && + backgroundKey == item.backgroundKey && + hideDivider == item.hideDivider && + transparent == item.transparent && red == item.red && accent == item.accent && TextUtils.equals(text, item.text) && diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/URLSpanCopyToClipboard.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/URLSpanCopyToClipboard.java new file mode 100644 index 0000000000..c734387684 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/URLSpanCopyToClipboard.java @@ -0,0 +1,32 @@ +package org.telegram.ui.Components; + +import android.view.View; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.ui.ActionBar.BaseFragment; + +public class URLSpanCopyToClipboard extends URLSpanNoUnderline { + private BaseFragment fragment; + + public URLSpanCopyToClipboard(String url, BaseFragment fragment) { + super(url); + this.fragment = fragment; + } + + public URLSpanCopyToClipboard(String url, boolean forceNoUnderline, BaseFragment fragment) { + super(url, forceNoUnderline); + this.fragment = fragment; + } + + public URLSpanCopyToClipboard(String url, TextStyleSpan.TextStyleRun run, BaseFragment fragment) { + super(url, run); + this.fragment = fragment; + } + + @Override + public void onClick(View widget) { + String url = getURL(); + AndroidUtilities.addToClipboard(url); + BulletinFactory.of(fragment).createCopyLinkBulletin().show(); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalAdapter.java index d6b869c2e8..935ef74770 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalAdapter.java @@ -1,31 +1,42 @@ package org.telegram.ui.Components; +import static org.telegram.messenger.AndroidUtilities.dp; + import android.content.Context; import android.graphics.Canvas; import android.text.TextUtils; -import android.util.Log; +import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.R; import org.telegram.messenger.Utilities; +import org.telegram.tgnet.TLRPC; +import org.telegram.tgnet.tl.TL_stats; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Business.BusinessLinksActivity; import org.telegram.ui.Business.QuickRepliesActivity; import org.telegram.ui.Business.QuickRepliesController; import org.telegram.ui.Cells.DialogRadioCell; import org.telegram.ui.Cells.HeaderCell; import org.telegram.ui.Cells.NotificationsCheckCell; +import org.telegram.ui.Cells.SlideIntChooseView; import org.telegram.ui.Cells.TextCell; import org.telegram.ui.Cells.TextCheckCell; import org.telegram.ui.Cells.TextInfoPrivacyCell; +import org.telegram.ui.Cells.TextRightIconCell; import org.telegram.ui.Cells.UserCell; +import org.telegram.ui.ChannelMonetizationLayout; +import org.telegram.ui.Charts.BaseChartView; import org.telegram.ui.Components.ListView.AdapterWithDiffUtils; +import org.telegram.ui.StatisticActivity; +import org.telegram.ui.Stories.recorder.HintView2; +import org.telegram.ui.Stories.recorder.StoryPrivacyBottomSheet; import java.util.ArrayList; @@ -34,33 +45,68 @@ public class UniversalAdapter extends AdapterWithDiffUtils { public static final int VIEW_TYPE_CUSTOM = -1; public static final int VIEW_TYPE_HEADER = 0; - public static final int VIEW_TYPE_TOPVIEW = 1; - - public static final int VIEW_TYPE_TEXT = 2; - public static final int VIEW_TYPE_CHECK = 3; - public static final int VIEW_TYPE_TEXT_CHECK = 4; - public static final int VIEW_TYPE_ICON_TEXT_CHECK = 5; - public static final int VIEW_TYPE_SHADOW = 6; - public static final int VIEW_TYPE_CHECKRIPPLE = 7; - public static final int VIEW_TYPE_RADIO = 8; - public static final int VIEW_TYPE_FILTER_CHAT = 9; - public static final int VIEW_TYPE_USER_ADD = 10; - public static final int VIEW_TYPE_SLIDE = 11; - public static final int VIEW_TYPE_QUICK_REPLY = 12; - public static final int VIEW_TYPE_LARGE_QUICK_REPLY = 13; - + public static final int VIEW_TYPE_BLACK_HEADER = 1; + public static final int VIEW_TYPE_TOPVIEW = 2; + + public static final int VIEW_TYPE_TEXT = 3; + public static final int VIEW_TYPE_CHECK = 4; + public static final int VIEW_TYPE_TEXT_CHECK = 5; + public static final int VIEW_TYPE_ICON_TEXT_CHECK = 6; + public static final int VIEW_TYPE_SHADOW = 7; + public static final int VIEW_TYPE_LARGE_SHADOW = 8; + public static final int VIEW_TYPE_CHECKRIPPLE = 9; + public static final int VIEW_TYPE_RADIO = 10; + public static final int VIEW_TYPE_FILTER_CHAT = 11; + public static final int VIEW_TYPE_FILTER_CHAT_CHECK = 12; + public static final int VIEW_TYPE_USER_ADD = 13; + public static final int VIEW_TYPE_SLIDE = 14; + public static final int VIEW_TYPE_INTSLIDE = 15; + public static final int VIEW_TYPE_QUICK_REPLY = 16; + public static final int VIEW_TYPE_LARGE_QUICK_REPLY = 17; + + public static final int VIEW_TYPE_CHART_LINEAR = 18; + public static final int VIEW_TYPE_CHART_DOUBLE_LINEAR = 19; + public static final int VIEW_TYPE_CHART_STACK_BAR = 20; + public static final int VIEW_TYPE_CHART_BAR = 21; + public static final int VIEW_TYPE_CHART_STACK_LINEAR = 22; + public static final int VIEW_TYPE_CHART_LINEAR_BAR = 23; + + public static final int VIEW_TYPE_PROCEED_OVERVIEW = 24; + public static final int VIEW_TYPE_TRANSACTION = 25; + + public static final int VIEW_TYPE_LARGE_HEADER = 26; + public static final int VIEW_TYPE_RADIO_USER = 27; + public static final int VIEW_TYPE_SPACE = 28; + + public static final int VIEW_TYPE_BUSINESS_LINK = 29; + + public static final int VIEW_TYPE_RIGHT_ICON_TEXT = 30; + + private final RecyclerListView listView; private final Context context; private final int currentAccount; + private final int classGuid; private final Utilities.Callback2, UniversalAdapter> fillItems; private final Theme.ResourcesProvider resourcesProvider; private final ArrayList oldItems = new ArrayList<>(); private final ArrayList items = new ArrayList<>(); - public UniversalAdapter(Context context, int currentAccount, Utilities.Callback2, UniversalAdapter> fillItems, Theme.ResourcesProvider resourcesProvider) { + private BaseChartView.SharedUiComponents chartSharedUI; + + public UniversalAdapter( + RecyclerListView listView, + Context context, + int currentAccount, + int classGuid, + Utilities.Callback2, UniversalAdapter> fillItems, + Theme.ResourcesProvider resourcesProvider + ) { super(); + this.listView = listView; this.context = context; this.currentAccount = currentAccount; + this.classGuid = classGuid; this.fillItems = fillItems; this.resourcesProvider = resourcesProvider; update(false); @@ -195,6 +241,16 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int view = new HeaderCell(context, resourcesProvider); view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); break; + case VIEW_TYPE_BLACK_HEADER: + view = new HeaderCell(context, Theme.key_windowBackgroundWhiteBlackText, 17, 15, false, resourcesProvider); + view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + break; + case VIEW_TYPE_LARGE_HEADER: + HeaderCell headerCell = new HeaderCell(context, Theme.key_windowBackgroundWhiteBlackText, 23, 8, 10, false, resourcesProvider); + headerCell.setTextSize(20); + headerCell.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + view = headerCell; + break; case VIEW_TYPE_TOPVIEW: view = new TopViewCell(context, resourcesProvider); break; @@ -232,7 +288,8 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { }; break; case VIEW_TYPE_FILTER_CHAT: - UserCell userCell = new UserCell(context, 6, 0, false); + case VIEW_TYPE_FILTER_CHAT_CHECK: + UserCell userCell = new UserCell(context, 6, viewType == VIEW_TYPE_FILTER_CHAT_CHECK ? 3 : 0, false); userCell.setSelfAsSavedMessages(true); userCell.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); view = userCell; @@ -242,10 +299,20 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { userCell2.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); view = userCell2; break; + case VIEW_TYPE_RADIO_USER: + StoryPrivacyBottomSheet.UserCell userCell3 = new StoryPrivacyBottomSheet.UserCell(context, resourcesProvider); + userCell3.setIsSendAs(false, false); + userCell3.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + view = userCell3; + break; case VIEW_TYPE_SLIDE: view = new SlideChooseView(context, resourcesProvider); view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); break; + case VIEW_TYPE_INTSLIDE: + view = new SlideIntChooseView(context, resourcesProvider); + view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + break; case VIEW_TYPE_QUICK_REPLY: view = new QuickRepliesActivity.QuickReplyView(context, onReordered != null, resourcesProvider); view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); @@ -254,8 +321,41 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { view = new QuickRepliesActivity.LargeQuickReplyView(context, resourcesProvider); view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); break; + case VIEW_TYPE_CHART_LINEAR: + case VIEW_TYPE_CHART_DOUBLE_LINEAR: + case VIEW_TYPE_CHART_STACK_BAR: + case VIEW_TYPE_CHART_BAR: + case VIEW_TYPE_CHART_STACK_LINEAR: + case VIEW_TYPE_CHART_LINEAR_BAR: + if (chartSharedUI == null) { + chartSharedUI = new BaseChartView.SharedUiComponents(); + } + view = new StatisticActivity.UniversalChartCell(context, currentAccount, viewType - VIEW_TYPE_CHART_LINEAR, chartSharedUI, classGuid); + view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + break; + case VIEW_TYPE_TRANSACTION: + view = new ChannelMonetizationLayout.TransactionCell(context, resourcesProvider); + view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + break; + case VIEW_TYPE_PROCEED_OVERVIEW: + view = new ChannelMonetizationLayout.ProceedOverviewCell(context, resourcesProvider); + view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + break; + case VIEW_TYPE_SPACE: + view = new View(context); + view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + break; + case VIEW_TYPE_BUSINESS_LINK: + view = new BusinessLinksActivity.BusinessLinkView(context, resourcesProvider); + view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + break; + case VIEW_TYPE_RIGHT_ICON_TEXT: + view = new TextRightIconCell(context, resourcesProvider); + view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + break; default: case VIEW_TYPE_SHADOW: + case VIEW_TYPE_LARGE_SHADOW: view = new TextInfoPrivacyCell(context, resourcesProvider); break; } @@ -272,7 +372,11 @@ public int getItemViewType(int position) { private boolean hasDivider(int position) { UItem item = getItem(position); UItem nextItem = getItem(position + 1); - return item != null && nextItem != null && (nextItem.viewType != VIEW_TYPE_SHADOW) == (item.viewType != VIEW_TYPE_SHADOW); + return item != null && !item.hideDivider && nextItem != null && isShadow(nextItem.viewType) == isShadow(item.viewType); + } + + private boolean isShadow(int viewType) { + return viewType == VIEW_TYPE_SHADOW || viewType == VIEW_TYPE_LARGE_SHADOW; } @Override @@ -285,7 +389,12 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi final boolean divider = hasDivider(position); switch (viewType) { case VIEW_TYPE_HEADER: + case VIEW_TYPE_BLACK_HEADER: + case VIEW_TYPE_LARGE_HEADER: ((HeaderCell) holder.itemView).setText(item.text); + if (item.backgroundKey != 0) { + holder.itemView.setBackgroundColor(getThemedColor(item.backgroundKey)); + } break; case VIEW_TYPE_TOPVIEW: TopViewCell topCell = (TopViewCell) holder.itemView; @@ -298,7 +407,9 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi break; case VIEW_TYPE_TEXT: TextCell cell = (TextCell) holder.itemView; - if (TextUtils.isEmpty(item.textValue)) { + if (item.object instanceof TLRPC.Document) { + cell.setTextAndSticker(item.text, (TLRPC.Document) item.object, divider); + } else if (TextUtils.isEmpty(item.textValue)) { if (item.iconResId == 0) { cell.setText(item.text, divider); } else { @@ -318,6 +429,9 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } else { cell.setColors(Theme.key_windowBackgroundWhiteGrayIcon, Theme.key_windowBackgroundWhiteBlackText); } + if (item.backgroundKey != 0) { + cell.setBackgroundColor(getThemedColor(item.backgroundKey)); + } break; case VIEW_TYPE_CHECK: case VIEW_TYPE_CHECKRIPPLE: @@ -356,16 +470,27 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi ((NotificationsCheckCell) holder.itemView).setTextAndValueAndCheck(item.text, item.subtext, item.checked, divider); break; case VIEW_TYPE_SHADOW: + case VIEW_TYPE_LARGE_SHADOW: TextInfoPrivacyCell cell2 = (TextInfoPrivacyCell) holder.itemView; if (TextUtils.isEmpty(item.text)) { - cell2.setFixedSize(12); + cell2.setFixedSize(viewType == VIEW_TYPE_LARGE_SHADOW ? 220 : 12); cell2.setText(""); } else { cell2.setFixedSize(0); cell2.setText(item.text); } - final boolean prev = prevItem != null && prevItem.viewType != viewType; - final boolean next = nextItem != null && nextItem.viewType != viewType; + if (item.accent) { // asCenterShadow + cell2.setTextGravity(Gravity.CENTER); + cell2.getTextView().setWidth(Math.min(HintView2.cutInFancyHalf(cell2.getText(), cell2.getTextView().getPaint()), AndroidUtilities.displaySize.x - dp(60))); + cell2.getTextView().setPadding(0, dp(17), 0, dp(17)); + } else { + cell2.setTextGravity(Gravity.START); + cell2.getTextView().setMinWidth(0); + cell2.getTextView().setMaxWidth(AndroidUtilities.displaySize.x); + cell2.getTextView().setPadding(0, dp(10), 0, dp(17)); + } + final boolean prev = prevItem != null && !isShadow(prevItem.viewType); + final boolean next = nextItem != null && !isShadow(nextItem.viewType); int drawable; if (prev && next) { drawable = R.drawable.greydivider; @@ -376,6 +501,9 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } else { drawable = R.drawable.field_carret_empty; } + if (item.backgroundKey != 0) { + cell2.setBackgroundColor(getThemedColor(item.backgroundKey)); + } cell2.setBackground(Theme.getThemedDrawableByKey(context, drawable, Theme.key_windowBackgroundGrayShadow, resourcesProvider)); break; case VIEW_TYPE_CUSTOM: @@ -389,8 +517,12 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } break; case VIEW_TYPE_FILTER_CHAT: + case VIEW_TYPE_FILTER_CHAT_CHECK: UserCell userCell = (UserCell) holder.itemView; userCell.setFromUItem(currentAccount, item, divider); + if (viewType == VIEW_TYPE_FILTER_CHAT_CHECK) { + userCell.setChecked(item.checked, false); + } break; case VIEW_TYPE_USER_ADD: UserCell userCell2 = (UserCell) holder.itemView; @@ -407,6 +539,10 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } }); break; + case VIEW_TYPE_INTSLIDE: + SlideIntChooseView slideIntChooseView = (SlideIntChooseView) holder.itemView; + slideIntChooseView.set(item.intValue, (SlideIntChooseView.Options) item.object, item.intCallback); + break; case VIEW_TYPE_QUICK_REPLY: QuickRepliesActivity.QuickReplyView replyView = (QuickRepliesActivity.QuickReplyView) holder.itemView; replyView.setChecked(item.checked, false); @@ -422,9 +558,85 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi replyView2.set((QuickRepliesController.QuickReply) item.object, divider); } break; + case VIEW_TYPE_CHART_LINEAR: + case VIEW_TYPE_CHART_DOUBLE_LINEAR: + case VIEW_TYPE_CHART_STACK_BAR: + case VIEW_TYPE_CHART_BAR: + case VIEW_TYPE_CHART_STACK_LINEAR: + case VIEW_TYPE_CHART_LINEAR_BAR: + ((StatisticActivity.UniversalChartCell) holder.itemView).set( + item.intValue, + (StatisticActivity.ChartViewData) item.object, + () -> { + View view = findViewByItemObject(item.object); + if (view instanceof StatisticActivity.UniversalChartCell) { + return (StatisticActivity.UniversalChartCell) view; + } + return null; + } + ); + break; + case VIEW_TYPE_TRANSACTION: + ((ChannelMonetizationLayout.TransactionCell) holder.itemView).set((TL_stats.BroadcastRevenueTransaction) item.object, divider); + break; + case VIEW_TYPE_PROCEED_OVERVIEW: + ((ChannelMonetizationLayout.ProceedOverviewCell) holder.itemView).set((ChannelMonetizationLayout.ProceedOverview) item.object); + break; + case VIEW_TYPE_RADIO_USER: + StoryPrivacyBottomSheet.UserCell userCell1 = (StoryPrivacyBottomSheet.UserCell) holder.itemView; + final boolean animated = userCell1.dialogId == (item.object instanceof TLRPC.User ? ((TLRPC.User) item.object).id : (item.object instanceof TLRPC.Chat ? -((TLRPC.Chat) item.object).id : 0)); + userCell1.setIsSendAs(false, true); + userCell1.set(item.object); + userCell1.checkBox.setVisibility(View.GONE); + userCell1.radioButton.setVisibility(View.VISIBLE); + userCell1.setChecked(item.checked, animated); + userCell1.setDivider(divider); + break; + case VIEW_TYPE_SPACE: + if (item.transparent) { + holder.itemView.setBackgroundColor(0x00000000); + } + holder.itemView.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, item.intValue)); + break; + case VIEW_TYPE_BUSINESS_LINK: + BusinessLinksActivity.BusinessLinkView businessLinkView = (BusinessLinksActivity.BusinessLinkView) holder.itemView; + if (item.object instanceof BusinessLinksActivity.BusinessLinkWrapper) { + businessLinkView.set((BusinessLinksActivity.BusinessLinkWrapper) item.object, divider); + } + break; + case VIEW_TYPE_RIGHT_ICON_TEXT: + TextRightIconCell textCell = (TextRightIconCell) holder.itemView; + textCell.setTextAndIcon(item.text, item.iconResId); + textCell.setDivider(divider); + if (item.backgroundKey != 0) { + textCell.setBackgroundColor(getThemedColor(item.backgroundKey)); + } + break; } } + private View findViewByItemObject(Object object) { + int position = -1; + for (int i = 0; i < getItemCount(); ++i) { + UItem item = getItem(i); + if (item != null && item.object == object) { + position = i; + break; + } + } + if (position == RecyclerListView.NO_POSITION) { + return null; + } + for (int i = 0; i < listView.getChildCount(); ++i) { + View child = listView.getChildAt(i); + int childPosition = listView.getChildAdapterPosition(child); + if (childPosition != RecyclerListView.NO_POSITION && childPosition == position) { + return child; + } + } + return null; + } + @Override public void onViewAttachedToWindow(@NonNull RecyclerView.ViewHolder holder) { updateReorder(holder, allowReorder); @@ -453,11 +665,16 @@ public boolean isEnabled(RecyclerView.ViewHolder holder) { viewType == VIEW_TYPE_TEXT || viewType == VIEW_TYPE_TEXT_CHECK || viewType == VIEW_TYPE_ICON_TEXT_CHECK || + viewType == VIEW_TYPE_RIGHT_ICON_TEXT || viewType == VIEW_TYPE_CHECK || viewType == VIEW_TYPE_RADIO || viewType == VIEW_TYPE_FILTER_CHAT || + viewType == VIEW_TYPE_FILTER_CHAT_CHECK || viewType == VIEW_TYPE_LARGE_QUICK_REPLY || - viewType == VIEW_TYPE_QUICK_REPLY + viewType == VIEW_TYPE_QUICK_REPLY || + viewType == VIEW_TYPE_BUSINESS_LINK || + viewType == VIEW_TYPE_TRANSACTION || + viewType == VIEW_TYPE_RADIO_USER ) && (item == null || item.enabled); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalFragment.java new file mode 100644 index 0000000000..329644ee64 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalFragment.java @@ -0,0 +1,139 @@ +package org.telegram.ui.Components; + +import static org.telegram.messenger.LocaleController.formatPluralString; +import static org.telegram.messenger.LocaleController.getString; + +import android.content.Context; +import android.view.View; +import android.widget.FrameLayout; + +import androidx.recyclerview.widget.LinearLayoutManager; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.R; +import org.telegram.ui.ActionBar.ActionBar; +import org.telegram.ui.ActionBar.AdjustPanLayoutHelper; +import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.ActionBar.BackDrawable; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.INavigationLayout; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Business.QuickRepliesController; +import org.telegram.ui.ChatActivity; +import org.telegram.ui.DialogsActivity; +import org.telegram.ui.LaunchActivity; + +import java.util.ArrayList; + +public abstract class UniversalFragment extends BaseFragment { + + public UniversalRecyclerView listView; + + @Override + public View createView(Context context) { + actionBar.setBackButtonDrawable(new BackDrawable(false)); + actionBar.setAllowOverlayTitle(true); + actionBar.setTitle(getTitle()); + actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { + @Override + public void onItemClick(int id) { + if (id == -1) { + finishFragment(); + } + } + }); + + FrameLayout contentView = new SizeNotifierFrameLayout(context) { +// private AdjustPanLayoutHelper adjustPanLayoutHelper = new AdjustPanLayoutHelper(this) { +// @Override +// protected void onTransitionStart(boolean keyboardVisible, int contentHeight) {} +// @Override +// protected void onTransitionEnd() {} +// @Override +// protected void onPanTranslationUpdate(float y, float progress, boolean keyboardVisible) { +// if (getParentLayout() != null && getParentLayout().isPreviewOpenAnimationInProgress()) { +// return; +// } +// actionBar.setTranslationY(y); +// } +// }; +// +// @Override +// protected void onAttachedToWindow() { +// super.onAttachedToWindow(); +// adjustPanLayoutHelper.onAttach(); +// } +// +// @Override +// protected void onDetachedFromWindow() { +// super.onDetachedFromWindow(); +// adjustPanLayoutHelper.onDetach(); +// } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure( + MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(heightMeasureSpec), MeasureSpec.EXACTLY) + ); + } + }; + contentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); + + listView = new UniversalRecyclerView(this, this::fillItems, this::onClick, this::onLongClick) { + @Override + protected void onMeasure(int widthSpec, int heightSpec) { +// applyScrolledPosition(); + super.onMeasure(widthSpec, heightSpec); + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + super.onLayout(changed, l, t, r, b); + savedScrollPosition = -1; + } + }; + contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + + return fragmentView = contentView; + } + + protected abstract CharSequence getTitle(); + protected abstract void fillItems(ArrayList items, UniversalAdapter adapter); + protected abstract void onClick(UItem item, View view, int position, float x, float y); + protected abstract boolean onLongClick(UItem item, View view, int position, float x, float y); + + private int savedScrollPosition = -1; + private int savedScrollOffset; + + public void saveScrollPosition() { + if (listView != null && listView.getChildCount() > 0) { + View view = null; + int position = -1; + int top = Integer.MAX_VALUE; + for (int i = 0; i < listView.getChildCount(); i++) { + int childPosition = listView.getChildAdapterPosition(listView.getChildAt(i)); + View child = listView.getChildAt(i); + if (childPosition != RecyclerListView.NO_POSITION && child.getTop() < top) { + view = child; + position = childPosition; + top = child.getTop(); + } + } + if (view != null) { + savedScrollPosition = position; + savedScrollOffset = view.getTop(); + if (savedScrollPosition == 0 && savedScrollOffset > AndroidUtilities.dp(88)) { + savedScrollOffset = AndroidUtilities.dp(88); + } + listView.layoutManager.scrollToPositionWithOffset(position, view.getTop() - listView.getPaddingTop()); + } + } + } + + public void applyScrolledPosition() { + if (savedScrollPosition >= 0) { + listView.layoutManager.scrollToPositionWithOffset(savedScrollPosition, savedScrollOffset - listView.getPaddingTop()); + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalRecyclerView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalRecyclerView.java index bd6f272386..480737cd4a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalRecyclerView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalRecyclerView.java @@ -14,29 +14,62 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.Utilities; +import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Cells.DialogCell; import org.telegram.ui.FiltersSetupActivity; import java.util.ArrayList; +import kotlinx.coroutines.android.AndroidDispatcherFactory; + public class UniversalRecyclerView extends RecyclerListView { public final LinearLayoutManager layoutManager; public final UniversalAdapter adapter; private ItemTouchHelper itemTouchHelper; + private boolean doNotDetachViews; + public void doNotDetachViews() { + doNotDetachViews = true; + } + + public UniversalRecyclerView( + BaseFragment fragment, + Utilities.Callback2, UniversalAdapter> fillItems, + Utilities.Callback5 onClick, + Utilities.Callback5Return onLongClick + ) { + this( + fragment.getContext(), + fragment.getCurrentAccount(), + fragment.getClassGuid(), + fillItems, + onClick, + onLongClick, + fragment.getResourceProvider() + ); + } + public UniversalRecyclerView( Context context, int currentAccount, + int classGuid, Utilities.Callback2, UniversalAdapter> fillItems, Utilities.Callback5 onClick, Utilities.Callback5Return onLongClick, Theme.ResourcesProvider resourcesProvider ) { super(context, resourcesProvider); - setLayoutManager(layoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)); - setAdapter(adapter = new UniversalAdapter(context, currentAccount, fillItems, resourcesProvider)); + + setLayoutManager(layoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) { + @Override + protected int getExtraLayoutSpace(State state) { + if (doNotDetachViews) return AndroidUtilities.displaySize.y; + return super.getExtraLayoutSpace(state); + } + }); + setAdapter(adapter = new UniversalAdapter(this, context, currentAccount, classGuid, fillItems, resourcesProvider)); if (onClick != null) { setOnItemClickListener((view, position, x, y) -> { @@ -66,8 +99,6 @@ protected void onMoveAnimationUpdate(ViewHolder holder) { itemAnimator.setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT); itemAnimator.setDurations(350); setItemAnimator(itemAnimator); - - setTranslateSelector(true); } private boolean reorderingAllowed; @@ -115,6 +146,18 @@ public View findViewByItemId(int itemId) { return findViewByPosition(position); } + public View findViewByItemObject(Object object) { + int position = -1; + for (int i = 0; i < adapter.getItemCount(); ++i) { + UItem item = adapter.getItem(i); + if (item != null && item.object == object) { + position = i; + break; + } + } + return findViewByPosition(position); + } + public int findPositionByItemId(int itemId) { int position = -1; for (int i = 0; i < adapter.getItemCount(); ++i) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayer.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayer.java index 3b5542ba45..c6cb67fe13 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayer.java @@ -16,6 +16,7 @@ import android.media.AudioManager; import android.media.MediaFormat; import android.net.Uri; +import android.os.Build; import android.os.Handler; import android.os.Looper; import android.view.Surface; @@ -878,6 +879,18 @@ public StoryEntry.HDRInfo getHDRStaticInfo(StoryEntry.HDRInfo hdrInfo) { hdrInfo.maxlum = byteBuffer.getShort(17); hdrInfo.minlum = byteBuffer.getShort(19) * 0.0001f; } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + if (mediaFormat.containsKey(MediaFormat.KEY_COLOR_TRANSFER)) { + hdrInfo.colorTransfer = mediaFormat.getInteger(MediaFormat.KEY_COLOR_TRANSFER); + } + if (mediaFormat.containsKey(MediaFormat.KEY_COLOR_STANDARD)) { + hdrInfo.colorStandard = mediaFormat.getInteger(MediaFormat.KEY_COLOR_STANDARD); + } + if (mediaFormat.containsKey(MediaFormat.KEY_COLOR_RANGE)) { + hdrInfo.colorRange = mediaFormat.getInteger(MediaFormat.KEY_COLOR_RANGE); + } + } } catch (Exception ignore) { hdrInfo.maxlum = hdrInfo.minlum = 0; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayerSeekBar.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayerSeekBar.java index bb9dafbdaf..2f8eb1d31c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayerSeekBar.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoPlayerSeekBar.java @@ -598,9 +598,7 @@ private void drawTimestampLabel(Canvas canvas) { if (timestampIndex != currentTimestamp) { timestampLabel[1] = timestampLabel[0]; if (pressed) { - try { - parentView.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + AndroidUtilities.vibrateCursor(parentView); } if (timestampIndex >= 0 && timestampIndex < timestamps.size()) { CharSequence label = timestamps.get(timestampIndex).second; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ViewPagerFixed.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ViewPagerFixed.java index fe24f98937..f2b2731c04 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ViewPagerFixed.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ViewPagerFixed.java @@ -128,6 +128,10 @@ protected boolean canScroll(MotionEvent e) { return true; } + protected boolean canScrollForward(MotionEvent e) { + return canScroll(e); + } + protected void onScrollEnd() {} public ViewPagerFixed(@NonNull Context context) { @@ -384,6 +388,9 @@ private boolean prepareForMoving(MotionEvent ev, boolean forward) { if (!canScroll(ev)) { return false; } + if (forward && !canScrollForward(ev)) { + return false; + } getParent().requestDisallowInterceptTouchEvent(true); maybeStartTracking = false; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilersTextView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilersTextView.java index f2fa34ea9c..bc7e61aa76 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilersTextView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilersTextView.java @@ -11,13 +11,12 @@ import android.graphics.Rect; import android.graphics.Region; import android.text.Layout; -import android.text.Spannable; import android.text.Spanned; -import android.text.StaticLayout; import android.view.MotionEvent; import android.widget.TextView; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.Emoji; import org.telegram.ui.Cells.TextSelectionHelper; import org.telegram.ui.Components.AnimatedEmojiDrawable; import org.telegram.ui.Components.AnimatedEmojiSpan; @@ -39,6 +38,7 @@ public class SpoilersTextView extends TextView implements TextSelectionHelper.Si public int cacheType = AnimatedEmojiDrawable.CACHE_TYPE_MESSAGES; private AnimatedEmojiSpan.EmojiGroupedSpans animatedEmoji; + private boolean useAlphaForEmoji = true; public SpoilersTextView(Context context) { this(context, true); @@ -74,6 +74,10 @@ public void setText(CharSequence text, BufferType type) { super.setText(text, type); } + public void setUseAlphaForEmoji(boolean useAlphaForEmoji) { + this.useAlphaForEmoji = useAlphaForEmoji; + } + @Override protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) { super.onTextChanged(text, start, lengthBefore, lengthAfter); @@ -105,7 +109,9 @@ protected void onDraw(Canvas canvas) { path.addRect(bounds.left + pl, bounds.top + pt, bounds.right + pl, bounds.bottom + pt, Path.Direction.CW); } canvas.clipPath(path, Region.Op.DIFFERENCE); + Emoji.emojiDrawingUseAlpha = useAlphaForEmoji; super.onDraw(canvas); + Emoji.emojiDrawingUseAlpha = true; canvas.restore(); canvas.save(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java index 0f5aaaccf0..6fc73838d6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java @@ -8,6 +8,8 @@ package org.telegram.ui; +import static org.telegram.messenger.AndroidUtilities.dp; + import android.animation.ValueAnimator; import android.annotation.SuppressLint; import android.app.Activity; @@ -16,8 +18,11 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.Color; import android.graphics.Paint; +import android.graphics.Path; import android.graphics.PixelFormat; +import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Build; @@ -31,15 +36,22 @@ import android.view.HapticFeedbackConstants; import android.view.MotionEvent; import android.view.View; +import android.view.ViewGroup; import android.view.WindowInsets; import android.view.WindowManager; import android.widget.FrameLayout; +import android.widget.LinearLayout; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import org.telegram.messenger.AccountInstance; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.ImageLoader; import org.telegram.messenger.MediaController; import org.telegram.messenger.MediaDataController; +import org.telegram.messenger.DocumentObject; import org.telegram.messenger.Emoji; import org.telegram.messenger.FileLoader; import org.telegram.messenger.FileLog; @@ -52,15 +64,17 @@ import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; import org.telegram.messenger.SendMessagesHelper; +import org.telegram.messenger.SvgHelper; import org.telegram.messenger.UserConfig; -import org.telegram.messenger.Utilities; +import org.telegram.messenger.VideoEditedInfo; import org.telegram.messenger.WebFile; +import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLRPC; -import org.telegram.ui.ActionBar.ActionBarMenu; import org.telegram.ui.ActionBar.ActionBarMenuItem; import org.telegram.ui.ActionBar.ActionBarMenuSubItem; import org.telegram.ui.ActionBar.ActionBarPopupWindow; import org.telegram.ui.ActionBar.BottomSheet; +import org.telegram.ui.ActionBar.SimpleTextView; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Cells.ContextLinkCell; import org.telegram.ui.Cells.StickerCell; @@ -68,19 +82,29 @@ import org.telegram.ui.Components.AlertsCreator; import org.telegram.ui.Components.AnimatedEmojiDrawable; import org.telegram.ui.Components.AnimatedEmojiSpan; +import org.telegram.ui.Components.BackupImageView; +import org.telegram.ui.Components.BulletinFactory; import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.EmojiPacksAlert; import org.telegram.ui.Components.EmojiView; import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.PaintingOverlay; +import org.telegram.ui.Components.Reactions.CustomEmojiReactionsWindow; +import org.telegram.ui.Components.ReactionsContainerLayout; import org.telegram.ui.Components.RecyclerListView; +import org.telegram.ui.Components.StickersAlert; +import org.telegram.ui.Components.StickersDialogs; import org.telegram.ui.Components.SuggestEmojiView; +import org.telegram.ui.Stories.DarkThemeResourceProvider; import java.io.FileOutputStream; import java.util.ArrayList; +import java.util.List; import tw.nekomimi.nekogram.NekoConfig; import tw.nekomimi.nekogram.ui.MessageHelper; import tw.nekomimi.nekogram.utils.VibrateUtil; +import xyz.nextalone.nagram.NaConfig; public class ContentPreviewViewer { @@ -94,6 +118,12 @@ public FrameLayoutDrawer(Context context) { protected void onDraw(Canvas canvas) { ContentPreviewViewer.this.onDraw(canvas); } + + @Override + protected boolean drawChild(Canvas canvas, View child, long drawingTime) { + if (child instanceof PaintingOverlay) return false; + return super.drawChild(canvas, child, drawingTime); + } } public interface ContentPreviewViewerDelegate { @@ -101,25 +131,72 @@ default boolean can() { return true; } - void openSet(TLRPC.InputStickerSet set, boolean clearInputField); + default void openSet(TLRPC.InputStickerSet set, boolean clearInputField) { + + } + + default boolean needSend(int contentType) { + return false; + } + + default void stickerSetSelected(TLRPC.StickerSet set, String emoji) { + + } + + default void newStickerPackSelected(CharSequence short_name, CharSequence name, String emoji) { + + } + + default void addToFavoriteSelected(String emoji) { + + } + + default void sendSticker() { + } + + default void sendSticker(TLRPC.Document sticker, String query, Object parent, boolean notify, int scheduleDate) { + } + + default void sendGif(Object gif, Object parent, boolean notify, int scheduleDate) { + } + + default void sendEmoji(TLRPC.Document emoji) { + } - boolean needSend(int contentType); - default void sendSticker(TLRPC.Document sticker, String query, Object parent, boolean notify, int scheduleDate) {} - default void sendGif(Object gif, Object parent, boolean notify, int scheduleDate) {} - default void sendEmoji(TLRPC.Document emoji) {} + default boolean canSchedule() { + return false; + } - boolean canSchedule(); - boolean isInScheduleMode(); + default boolean isInScheduleMode() { + return false; + } long getDialogId(); default boolean needRemove() { return false; } + default void remove(SendMessagesHelper.ImportingSticker sticker) { } + default void deleteSticker(TLRPC.Document document) { + + } + + default boolean canEditSticker() { + return false; + } + + default void editSticker(TLRPC.Document document) { + + } + + default boolean isReplacedSticker() { + return false; + } + default String getQuery(boolean isGif) { return null; } @@ -128,7 +205,8 @@ default boolean needOpen() { return true; } - default void gifAddedOrDeleted() {} + default void gifAddedOrDeleted() { + } default boolean needMenu() { return true; @@ -137,32 +215,46 @@ default boolean needMenu() { default Boolean canSetAsStatus(TLRPC.Document document) { return null; } - default void setAsEmojiStatus(TLRPC.Document document, Integer until) {} + + default void setAsEmojiStatus(TLRPC.Document document, Integer until) { + } default boolean needCopy(TLRPC.Document document) { return false; } - default void copyEmoji(TLRPC.Document document) {} - default void resetTouch() {} + default void copyEmoji(TLRPC.Document document) { + } + + default void resetTouch() { + } default boolean needRemoveFromRecent(TLRPC.Document document) { return false; } - default void removeFromRecent(TLRPC.Document document) {} + + default void removeFromRecent(TLRPC.Document document) { + } default boolean isPhotoEditor() { return false; } + + default boolean isStickerEditor() { + return false; + } } public final static int CONTENT_TYPE_NONE = -1; public final static int CONTENT_TYPE_STICKER = 0; public final static int CONTENT_TYPE_GIF = 1; public final static int CONTENT_TYPE_EMOJI = 2; + public final static int CONTENT_TYPE_CUSTOM_STIKER = 3; private final static int nkbtn_send_without_sound = 100; private final static int nkbtn_stickerdl = 110; + private final static int nkbtn_sticker_copy = 111; + private final static int nkbtn_sticker_copy_png = 112; private static TextPaint textPaint; @@ -181,6 +273,7 @@ default boolean isPhotoEditor() { private ActionBarPopupWindow visibleMenu; private ContentPreviewViewerDelegate delegate; private boolean isPhotoEditor; + private boolean isStickerEditor; private boolean isRecentSticker; @@ -196,6 +289,8 @@ default boolean isPhotoEditor() { private FrameLayoutDrawer containerView; private ImageReceiver centerImage = new ImageReceiver(); private ImageReceiver effectImage = new ImageReceiver(); + private PaintingOverlay paintingOverlay; + private Path paintingOverlayClipPath; private boolean isVisible = false; private float showProgress; private StaticLayout stickerEmojiLayout; @@ -206,18 +301,157 @@ default boolean isPhotoEditor() { private float blurProgress; private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); private UnlockPremiumView unlockPremiumView; + private ReactionsContainerLayout reactionsLayout; + private FrameLayout reactionsLayoutContainer; private boolean closeOnDismiss; private boolean drawEffect; + private TLRPC.TL_messages_stickerSet stickerSetForCustomSticker; - private Runnable showSheetRunnable = new Runnable() { + private final Runnable showSheetRunnable = new Runnable() { @Override public void run() { if (parentActivity == null || isPhotoEditor) { return; } closeOnDismiss = true; - ActionBarPopupWindow.ActionBarPopupWindowLayout previewMenu = new ActionBarPopupWindow.ActionBarPopupWindowLayout(containerView.getContext(), R.drawable.popup_fixed_alert3, resourcesProvider); - if (currentContentType == CONTENT_TYPE_STICKER) { + int flags = 0; + if (currentContentType == CONTENT_TYPE_CUSTOM_STIKER) { + flags |= ActionBarPopupWindow.ActionBarPopupWindowLayout.FLAG_USE_SWIPEBACK; + } + ActionBarPopupWindow.ActionBarPopupWindowLayout previewMenu = new ActionBarPopupWindow.ActionBarPopupWindowLayout(containerView.getContext(), R.drawable.popup_fixed_alert3, resourcesProvider, flags); + if (currentContentType == CONTENT_TYPE_CUSTOM_STIKER) { + ArrayList items = new ArrayList<>(); + final ArrayList actions = new ArrayList<>(); + ArrayList icons = new ArrayList<>(); + + if (stickerSetForCustomSticker == null) { + items.add(LocaleController.getString("SendStickerPreview", R.string.SendStickerPreview)); + icons.add(R.drawable.msg_send); + actions.add(0); + + items.add(LocaleController.getString("AddToFavorites", R.string.AddToFavorites)); + icons.add(R.drawable.msg_fave); + actions.add(1); + } + + items.add(LocaleController.getString(delegate != null && delegate.isReplacedSticker() ? R.string.StickersReplaceSticker : R.string.AddToStickerPack)); + icons.add(delegate != null && delegate.isReplacedSticker() ? R.drawable.msg_replace : R.drawable.menu_sticker_add); + actions.add(2); + + ActionBarMenuSubItem backCell = new ActionBarMenuSubItem(parentActivity, true, false, resourcesProvider); + backCell.setItemHeight(44); + backCell.setTextAndIcon(LocaleController.getString("Back", R.string.Back), R.drawable.msg_arrow_back); + backCell.getTextView().setPadding(LocaleController.isRTL ? 0 : AndroidUtilities.dp(40), 0, LocaleController.isRTL ? AndroidUtilities.dp(40) : 0, 0); + + FrameLayout backContainer = new FrameLayout(containerView.getContext()); + LinearLayout linearLayout = new LinearLayout(containerView.getContext()); + linearLayout.setBackgroundColor(getThemedColor(Theme.key_actionBarDefaultSubmenuBackground)); + linearLayout.setOrientation(LinearLayout.VERTICAL); + RecyclerListView listView = createMyStickerPacksListView(); + listView.setOnItemClickListener((view, position) -> { + StickerPackNameView stickerPackNameView = (StickerPackNameView) view; + TLRPC.StickerSetCovered stickerSetCovered = stickerPackNameView.getCover(); + CustomEmojiReactionsWindow reactionsWindow = reactionsLayout.getReactionsWindow(); + if (reactionsWindow != null && reactionsWindow.isShowing()) { + reactionsWindow.dismiss(); + } + if (stickerSetCovered instanceof TLRPC.TL_stickerSetNoCovered) { + StickersDialogs.showShortNameEditorDialog(resourcesProvider, containerView.getContext(), short_name -> { + StickersDialogs.showNameEditorDialog(null, resourcesProvider, containerView.getContext(), arg -> { + delegate.newStickerPackSelected(short_name, arg, reactionsLayout.getSelectedEmoji()); + if (popupWindow != null) { + popupWindow.dismiss(); + } + }); + }); + return; + } + delegate.stickerSetSelected(stickerSetCovered.set, reactionsLayout.getSelectedEmoji()); + if (popupWindow != null) { + popupWindow.dismiss(); + } + }); + backContainer.addView(backCell); + linearLayout.addView(backContainer); + linearLayout.addView(new ActionBarPopupWindow.GapView(containerView.getContext(), resourcesProvider), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 8)); + + View.OnClickListener onItemClickListener = v -> { + if (parentActivity == null) { + return; + } + int which = (int) v.getTag(); + if (actions.get(which) == 2) { + if (stickerSetForCustomSticker == null) { + listView.requestLayout(); + linearLayout.requestLayout(); + listView.getAdapter().notifyDataSetChanged(); + previewMenu.getSwipeBack().openForeground(1); + } else { + delegate.stickerSetSelected(stickerSetForCustomSticker.set, reactionsLayout.getSelectedEmoji()); + if (popupWindow != null) { + popupWindow.dismiss(); + } + } + } else { + if (actions.get(which) == 1) { + delegate.addToFavoriteSelected(reactionsLayout.getSelectedEmoji()); + } else if (actions.get(which) == 0) { + delegate.sendSticker(); + } + if (popupWindow != null) { + popupWindow.dismiss(); + } + } + }; + for (int i = 0; i < items.size(); i++) { + View item = ActionBarMenuItem.addItem(previewMenu, icons.get(i), items.get(i), false, resourcesProvider); + item.setTag(i); + item.setOnClickListener(onItemClickListener); + } + + previewMenu.measure(View.MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(1000), View.MeasureSpec.AT_MOST), View.MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(1000), View.MeasureSpec.AT_MOST)); + linearLayout.addView(listView, new LinearLayout.LayoutParams(previewMenu.getMeasuredWidth() - dp(16), (int) (previewMenu.getMeasuredHeight() * 1.5f))); + previewMenu.addViewToSwipeBack(linearLayout); + backContainer.setOnClickListener(view -> previewMenu.getSwipeBack().closeForeground()); + + popupWindow = new ActionBarPopupWindow(previewMenu, LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT) { + @Override + public void dismiss() { + super.dismiss(); + popupWindow = null; + menuVisible = false; + if (closeOnDismiss) { + close(); + } + } + }; + popupWindow.setPauseNotifications(true); + popupWindow.setDismissAnimationDuration(100); + popupWindow.setScaleOut(true); + popupWindow.setOutsideTouchable(false); + popupWindow.setClippingEnabled(false); + popupWindow.setAnimationStyle(R.style.PopupContextAnimation); + popupWindow.setFocusable(false); + previewMenu.measure(View.MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(1000), View.MeasureSpec.AT_MOST), View.MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(1000), View.MeasureSpec.AT_MOST)); + popupWindow.setInputMethodMode(ActionBarPopupWindow.INPUT_METHOD_NOT_NEEDED); + popupWindow.getContentView().setFocusableInTouchMode(true); + + int insets = 0; + int top; + if (Build.VERSION.SDK_INT >= 21 && lastInsets != null) { + insets = lastInsets.getStableInsetBottom() + lastInsets.getStableInsetTop(); + top = lastInsets.getStableInsetTop(); + } else { + top = AndroidUtilities.statusBarHeight; + } + int size = (int) (Math.min(containerView.getWidth(), containerView.getHeight() - insets) / 1.8f); + int y = (int) (moveY + Math.max(size / 2 + top, (containerView.getHeight() - insets - keyboardHeight) / 2) + size / 2); + y += AndroidUtilities.dp(24 + 60); + popupWindow.showAtLocation(containerView, 0, (int) ((containerView.getMeasuredWidth() - previewMenu.getMeasuredWidth()) / 2f), y); + showEmojiSelectorForStickers(); + menuVisible = true; + containerView.invalidate(); + } else if (currentContentType == CONTENT_TYPE_STICKER) { if (MessageObject.isPremiumSticker(currentDocument) && !AccountInstance.getInstance(currentAccount).getUserConfig().isPremium()) { showUnlockPremiumView(); menuVisible = true; @@ -246,7 +480,7 @@ public void run() { icons.add(R.drawable.msg_timer); actions.add(3); } - if (currentStickerSet != null && delegate.needOpen()) { + if (currentStickerSet != null && !(currentStickerSet instanceof TLRPC.TL_inputStickerSetEmpty) && delegate.needOpen()) { items.add(LocaleController.formatString("ViewPackPreview", R.string.ViewPackPreview)); icons.add(R.drawable.msg_media); actions.add(1); @@ -259,6 +493,14 @@ public void run() { items.add(LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); icons.add(R.drawable.msg_gallery); actions.add(nkbtn_stickerdl); + if (NaConfig.INSTANCE.getShowCopyPhoto().Bool()) { + items.add(LocaleController.getString("CopyPhotoAsSticker", R.string.CopyPhotoAsSticker)); + icons.add(R.drawable.msg_copy); + actions.add(nkbtn_sticker_copy); + items.add(LocaleController.getString("CopyPhoto", R.string.CopyPhoto)); + icons.add(R.drawable.msg_copy); + actions.add(nkbtn_sticker_copy_png); + } } if (!MessageObject.isMaskDocument(currentDocument) && (inFavs || MediaDataController.getInstance(currentAccount).canAddStickerToFavorites() && MessageObject.isStickerHasSet(currentDocument))) { items.add(inFavs ? LocaleController.getString("DeleteFromFavorites", R.string.DeleteFromFavorites) : LocaleController.getString("AddToFavorites", R.string.AddToFavorites)); @@ -270,15 +512,29 @@ public void run() { icons.add(R.drawable.msg_delete); actions.add(4); } + + if (currentStickerSet != null && currentDocument != null) { + final MediaDataController mediaDataController = MediaDataController.getInstance(currentAccount); + TLRPC.TL_messages_stickerSet stickerSet = mediaDataController.getStickerSet(currentStickerSet, true); + if (stickerSet != null && stickerSet.set.creator && !StickersAlert.DISABLE_STICKER_EDITOR) { + if (delegate != null && delegate.canEditSticker() && !stickerSet.set.emojis && !stickerSet.set.masks && MessageObject.isStaticStickerDocument(currentDocument)) { + items.add(LocaleController.getString(R.string.EditSticker)); + icons.add(R.drawable.msg_edit); + actions.add(7); + } + if (delegate != null) { + items.add(LocaleController.getString(R.string.DeleteSticker)); + icons.add(R.drawable.msg_delete); + actions.add(8); + } + } + } + if (items.isEmpty()) { return; } menuVisible = true; containerView.invalidate(); - int[] ic = new int[icons.size()]; - for (int a = 0; a < icons.size(); a++) { - ic[a] = icons.get(a); - } View.OnClickListener onItemClickListener = new View.OnClickListener() { @@ -313,6 +569,18 @@ public void onClick(View v) { delegate.remove(importingSticker); } else if (actions.get(which) == nkbtn_stickerdl) { MessageHelper.getInstance(currentAccount).saveStickerToGallery(parentActivity, currentDocument); + } else if (actions.get(which) == nkbtn_sticker_copy) { + MessageHelper.getInstance(currentAccount).addStickerToClipboard(currentDocument, () -> { + BulletinFactory.global().createCopyBulletin(LocaleController.getString("PhotoCopied", R.string.PhotoCopied)).show(); + }); + } else if (actions.get(which) == nkbtn_sticker_copy_png) { + MessageHelper.getInstance(currentAccount).addStickerToClipboardAsPNG(currentDocument, () -> { + BulletinFactory.global().createCopyBulletin(LocaleController.getString("PhotoCopied", R.string.PhotoCopied)).show(); + }); + } else if (actions.get(which) == 7) { + delegate.editSticker(currentDocument); + } else if (actions.get(which) == 8) { + delegate.deleteSticker(currentDocument); } if (popupWindow != null) { popupWindow.dismiss(); @@ -321,9 +589,14 @@ public void onClick(View v) { }; for (int i = 0; i < items.size(); i++) { - View item = ActionBarMenuItem.addItem(previewMenu, icons.get(i), items.get(i), false, resourcesProvider); + ActionBarMenuSubItem item = ActionBarMenuItem.addItem(previewMenu, icons.get(i), items.get(i), false, resourcesProvider); item.setTag(i); item.setOnClickListener(onItemClickListener); + if (actions.get(i) == 8) { + int redColor = getThemedColor(Theme.key_text_RedBold); + item.setColors(redColor, redColor); + item.setSelectorColor(Theme.multAlpha(redColor, .1f)); + } } popupWindow = new ActionBarPopupWindow(previewMenu, LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT) { @Override @@ -334,6 +607,16 @@ public void dismiss() { if (closeOnDismiss) { close(); } + if (currentPreviewCell != null) { + if (currentPreviewCell instanceof StickerEmojiCell) { + ((StickerEmojiCell) currentPreviewCell).setScaled(false); + } else if (currentPreviewCell instanceof StickerCell) { + ((StickerCell) currentPreviewCell).setScaled(false); + } else if (currentPreviewCell instanceof ContextLinkCell) { + ((ContextLinkCell) currentPreviewCell).setScaled(false); + } + currentPreviewCell = null; + } } }; popupWindow.setPauseNotifications(true); @@ -660,6 +943,51 @@ public void dismiss() { } }; + public void setStickerSetForCustomSticker(TLRPC.TL_messages_stickerSet stickerSetForCustomSticker) { + this.stickerSetForCustomSticker = stickerSetForCustomSticker; + } + + private void showEmojiSelectorForStickers() { + if (reactionsLayout == null) { + reactionsLayout = new ReactionsContainerLayout(ReactionsContainerLayout.TYPE_STICKER_SET_EMOJI, null, containerView.getContext(), UserConfig.selectedAccount, resourcesProvider) { + @Override + public void invalidateLoopViews() { + super.invalidateLoopViews(); + ContentPreviewViewer.this.setFocusable(getReactionsWindow() != null); + } + }; + reactionsLayout.skipEnterAnimation = true; + reactionsLayout.setPadding(0, dp(22), 0, dp(22)); + reactionsLayout.setClipChildren(false); + reactionsLayout.setClipToPadding(false); + reactionsLayout.setVisibility(View.VISIBLE); + reactionsLayout.setHint(LocaleController.getString(R.string.StickersSetEmojiForSticker)); + reactionsLayout.setBubbleOffset(-dp(105)); + reactionsLayout.setMiniBubblesOffset(-dp(14)); + reactionsLayoutContainer = new FrameLayout(containerView.getContext()); + reactionsLayoutContainer.addView(reactionsLayout, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 72 + 22 + 22, Gravity.CENTER_HORIZONTAL, 0, 0, 0, 0)); + containerView.addView(reactionsLayoutContainer, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, 100, 0, 0)); + reactionsLayout.setMessage(null, null); + } + reactionsLayout.setDelegate((view, visibleReaction, longpress, addToRecent) -> { + CustomEmojiReactionsWindow reactionsWindow = reactionsLayout.getReactionsWindow(); + if (reactionsWindow != null && reactionsWindow.isShowing()) { + reactionsLayout.setSelectedReactionInclusive(visibleReaction); + reactionsWindow.getSelectAnimatedEmojiDialog().setSelectedReaction(visibleReaction); + AndroidUtilities.runOnUIThread(reactionsWindow::dismiss, 200); + } else { + reactionsLayout.setSelectedReactionInclusive(visibleReaction); + } + }); + if (!reactionsLayout.getVisibleReactionsList().isEmpty()) { + reactionsLayout.setSelectedReaction(reactionsLayout.getVisibleReactionsList().get(0)); + } + reactionsLayoutContainer.setScaleY(0.6f); + reactionsLayoutContainer.setScaleX(0.6f); + reactionsLayoutContainer.setAlpha(0f); + AndroidUtilities.runOnUIThread(() -> reactionsLayoutContainer.animate().alpha(1f).scaleX(1f).scaleY(1f).setDuration(150).setInterpolator(CubicBezierInterpolator.DEFAULT).start(), 10); + } + private void showUnlockPremiumView() { if (unlockPremiumView == null) { unlockPremiumView = new UnlockPremiumView(containerView.getContext(), UnlockPremiumView.TYPE_STICKERS, resourcesProvider); @@ -737,6 +1065,7 @@ public boolean onTouch(MotionEvent event, final RecyclerListView listView, final delegate = contentPreviewViewerDelegate; if (delegate != null) { isPhotoEditor = delegate.isPhotoEditor(); + isStickerEditor = delegate.isStickerEditor(); } if (delegate != null && !delegate.can()) { return false; @@ -941,6 +1270,7 @@ public boolean onInterceptTouchEvent(MotionEvent event, final RecyclerListView l delegate = contentPreviewViewerDelegate; if (delegate != null) { isPhotoEditor = delegate.isPhotoEditor(); + isStickerEditor = delegate.isStickerEditor(); } if (delegate != null && !delegate.can()) { return false; @@ -1088,6 +1418,7 @@ public void setDelegate(ContentPreviewViewerDelegate contentPreviewViewerDelegat delegate = contentPreviewViewerDelegate; if (delegate != null) { isPhotoEditor = delegate.isPhotoEditor(); + isStickerEditor = delegate.isStickerEditor(); } } @@ -1134,7 +1465,11 @@ protected void onDetachedFromWindow() { windowView.addView(containerView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); containerView.setOnTouchListener((v, event) -> { if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_POINTER_UP || event.getAction() == MotionEvent.ACTION_CANCEL) { - close(); + if (isStickerEditor) { + closeWithMenu(); + } else { + close(); + } } return true; }); @@ -1150,9 +1485,7 @@ protected void onDetachedFromWindow() { windowLayoutParams.gravity = Gravity.TOP; windowLayoutParams.type = WindowManager.LayoutParams.LAST_APPLICATION_WINDOW; if (Build.VERSION.SDK_INT >= 21) { - windowLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; - } else { - windowLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; + windowLayoutParams.flags = WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM | WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; } centerImage.setAspectFit(true); centerImage.setInvalidateAll(true); @@ -1163,6 +1496,21 @@ protected void onDetachedFromWindow() { effectImage.setParentView(containerView); } + public void setFocusable(boolean focusable) { + if (focusable) { + windowLayoutParams.flags &=~ WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; + windowLayoutParams.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE; + } else { + windowLayoutParams.flags |= WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; + } + WindowManager wm1 = (WindowManager) parentActivity.getSystemService(Context.WINDOW_SERVICE); + try { + wm1.updateViewLayout(windowView, windowLayoutParams); + } catch (Exception e) { + FileLog.e(e); + } + } + public void setKeyboardHeight(int height) { keyboardHeight = height; } @@ -1178,7 +1526,7 @@ public void open(TLRPC.Document document, SendMessagesHelper.ImportingSticker st backgroundDrawable.setColor(isDark ? 0x71000000 : 0x64E6E6E6); drawEffect = false; centerImage.setColorFilter(null); - if (contentType == CONTENT_TYPE_STICKER || contentType == CONTENT_TYPE_EMOJI) { + if (contentType == CONTENT_TYPE_STICKER || contentType == CONTENT_TYPE_EMOJI || contentType == CONTENT_TYPE_CUSTOM_STIKER) { if (document == null && sticker == null) { return; } @@ -1234,6 +1582,13 @@ public void open(TLRPC.Document document, SendMessagesHelper.ImportingSticker st } } else if (sticker != null) { centerImage.setImage(sticker.path, null, null, sticker.animated ? "tgs" : null, 0); + if (sticker.videoEditedInfo != null) { + if (paintingOverlay == null) { + paintingOverlay = new PaintingOverlay(containerView.getContext()); + containerView.addView(paintingOverlay, new FrameLayout.LayoutParams(512, 512)); + } + paintingOverlay.setEntities(sticker.videoEditedInfo.mediaEntities, true, true, false); + } if (emojiPath != null) { CharSequence emoji = Emoji.replaceEmoji(emojiPath, textPaint.getFontMetricsInt(), AndroidUtilities.dp(24), false); stickerEmojiLayout = new StaticLayout(emoji, textPaint, AndroidUtilities.dp(500), Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false); @@ -1315,6 +1670,13 @@ public boolean isVisible() { } public void closeWithMenu() { + if (reactionsLayout != null) { + CustomEmojiReactionsWindow customEmojiReactionsWindow = reactionsLayout.getReactionsWindow(); + if (customEmojiReactionsWindow != null && customEmojiReactionsWindow.isShowing()) { + customEmojiReactionsWindow.dismiss(); + return; + } + } menuVisible = false; if (popupWindow != null) { popupWindow.dismiss(); @@ -1336,10 +1698,13 @@ public void close() { currentQuery = null; delegate = null; isVisible = false; - resourcesProvider = null; + AndroidUtilities.runOnUIThread(() -> resourcesProvider = null, 200); if (unlockPremiumView != null) { unlockPremiumView.animate().alpha(0).translationY(AndroidUtilities.dp(56)).setDuration(150).setInterpolator(CubicBezierInterpolator.DEFAULT).start(); } + if (reactionsLayoutContainer != null) { + reactionsLayoutContainer.animate().alpha(0).setDuration(150).scaleX(0.6f).scaleY(0.6f).setInterpolator(CubicBezierInterpolator.DEFAULT).start(); + } NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.startAllHeavyOperations, 8); } @@ -1454,6 +1819,10 @@ private void onDraw(Canvas canvas) { float scale = 0.8f * showProgress / 0.8f; size = (int) (size * scale); + if (currentContentType == CONTENT_TYPE_CUSTOM_STIKER) { + canvas.translate(0, dp(70)); + } + if (drawEffect) { float smallImageSize = size * 0.6669f; float padding = size * 0.0546875f; @@ -1470,6 +1839,22 @@ private void onDraw(Canvas canvas) { centerImage.draw(canvas); } + if (paintingOverlay != null) { + canvas.save(); + canvas.translate(-size / 2f, -size / 2f); + canvas.scale((float) size / paintingOverlay.getWidth(), (float) size / paintingOverlay.getHeight()); + paintingOverlay.setAlpha(showProgress); + if (paintingOverlayClipPath == null) { + paintingOverlayClipPath = new Path(); + } + paintingOverlayClipPath.rewind(); + AndroidUtilities.rectTmp.set(0, 0, paintingOverlay.getWidth(), paintingOverlay.getHeight()); + paintingOverlayClipPath.addRoundRect(AndroidUtilities.rectTmp, size / 8f, size / 8f, Path.Direction.CW); + canvas.clipPath(paintingOverlayClipPath); + paintingOverlay.draw(canvas); + canvas.restore(); + } + if (currentContentType == CONTENT_TYPE_GIF && !isPhotoEditor && slideUpDrawable != null) { int w = slideUpDrawable.getIntrinsicWidth(); int h = slideUpDrawable.getIntrinsicHeight(); @@ -1511,7 +1896,14 @@ private void onDraw(Canvas canvas) { if (showProgress == 0) { centerImage.setImageBitmap((Drawable) null); AndroidUtilities.unlockOrientation(parentActivity); - AndroidUtilities.runOnUIThread(() -> centerImage.setImageBitmap((Bitmap) null)); + AndroidUtilities.runOnUIThread(() -> { + centerImage.setImageBitmap((Bitmap) null); + if (paintingOverlay != null) { + paintingOverlay.reset(); + containerView.removeView(paintingOverlay); + paintingOverlay = null; + } + }); if (blurrBitmap != null) { blurrBitmap.recycle(); blurrBitmap = null; @@ -1535,6 +1927,7 @@ private int getThemedColor(int key) { } private boolean preparingBitmap; + private void prepareBlurBitmap() { if (parentActivity == null || preparingBitmap) { return; @@ -1557,6 +1950,14 @@ public boolean showMenuFor(View view) { } setParentActivity(activity); StickerEmojiCell stickerEmojiCell = (StickerEmojiCell) view; + if (currentPreviewCell instanceof StickerEmojiCell) { + ((StickerEmojiCell) currentPreviewCell).setScaled(false); + } else if (currentPreviewCell instanceof StickerCell) { + ((StickerCell) currentPreviewCell).setScaled(false); + } else if (currentPreviewCell instanceof ContextLinkCell) { + ((ContextLinkCell) currentPreviewCell).setScaled(false); + } + currentPreviewCell = stickerEmojiCell; open(stickerEmojiCell.getSticker(), stickerEmojiCell.getStickerPath(), MessageObject.findAnimatedEmojiEmoticon(stickerEmojiCell.getSticker(), null, currentAccount), delegate != null ? delegate.getQuery(false) : null, null, CONTENT_TYPE_STICKER, stickerEmojiCell.isRecent(), stickerEmojiCell.getParentObject(), resourcesProvider); AndroidUtilities.cancelRunOnUIThread(showSheetRunnable); AndroidUtilities.runOnUIThread(showSheetRunnable, 16); @@ -1565,4 +1966,149 @@ public boolean showMenuFor(View view) { } return false; } + + public void showCustomStickerActions(String path, VideoEditedInfo videoEditedInfo, View view, ContentPreviewViewerDelegate delegate) { + Activity activity = AndroidUtilities.findActivity(view.getContext()); + if (activity == null) { + return; + } + setParentActivity(activity); + setDelegate(delegate); + SendMessagesHelper.ImportingSticker sticker = new SendMessagesHelper.ImportingSticker(); + sticker.path = path; + sticker.videoEditedInfo = videoEditedInfo; + open(null, sticker, null, null, null, CONTENT_TYPE_CUSTOM_STIKER, false, null, new DarkThemeResourceProvider()); + AndroidUtilities.cancelRunOnUIThread(showSheetRunnable); + AndroidUtilities.runOnUIThread(showSheetRunnable, 16); + } + + private void getMyStickersRemote(TLRPC.TL_messages_getMyStickers request, List resultList) { + ConnectionsManager.getInstance(UserConfig.selectedAccount).sendRequest(request, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (error != null) { + return; + } + if (response instanceof TLRPC.TL_messages_myStickers) { + TLRPC.TL_messages_myStickers myStickers = (TLRPC.TL_messages_myStickers) response; + for (TLRPC.StickerSetCovered set : myStickers.sets) { + if (!set.set.emojis && !set.set.masks) { + resultList.add(set); + } + } + if (myStickers.sets.size() == request.limit) { + request.offset_id = myStickers.sets.get(myStickers.sets.size() - 1).set.id; + getMyStickersRemote(request, resultList); + } + } + })); + } + + public RecyclerListView createMyStickerPacksListView() { + if (parentActivity == null) { + return null; + } + + final List stickerSetCoveredList = new ArrayList<>(); + stickerSetCoveredList.add(new TLRPC.TL_stickerSetNoCovered()); + + final TLRPC.TL_messages_getMyStickers request = new TLRPC.TL_messages_getMyStickers(); + request.limit = 100; + getMyStickersRemote(request, stickerSetCoveredList); + + RecyclerListView listView = new RecyclerListView(parentActivity) { + @Override + protected void onMeasure(int widthSpec, int heightSpec) { + int height = MeasureSpec.getSize(heightSpec); + int listViewTotalHeight = AndroidUtilities.dp(4) + AndroidUtilities.dp(50) * getAdapter().getItemCount(); + if (listViewTotalHeight > height) { + listViewTotalHeight = height; + } + super.onMeasure(widthSpec, MeasureSpec.makeMeasureSpec(listViewTotalHeight, MeasureSpec.EXACTLY)); + } + }; + listView.setLayoutManager(new LinearLayoutManager(parentActivity)); + listView.addItemDecoration(new RecyclerView.ItemDecoration() { + @Override + public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + int p = parent.getChildAdapterPosition(view); + if (p == stickerSetCoveredList.size() - 1) { + outRect.bottom = AndroidUtilities.dp(4); + } + } + }); + listView.setAdapter(new RecyclerListView.SelectionAdapter() { + + @Override + public boolean isEnabled(RecyclerView.ViewHolder holder) { + return true; + } + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + StickerPackNameView stickerPackNameView = new StickerPackNameView(parent.getContext(), resourcesProvider); + stickerPackNameView.setLayoutParams(new RecyclerView.LayoutParams(LayoutHelper.WRAP_CONTENT, AndroidUtilities.dp(48))); + return new RecyclerListView.Holder(stickerPackNameView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + StickerPackNameView cell = (StickerPackNameView) holder.itemView; + cell.bind(stickerSetCoveredList.get(position)); + } + + @Override + public int getItemCount() { + return stickerSetCoveredList.size(); + } + }); + return listView; + } + + private static class StickerPackNameView extends LinearLayout { + private final BackupImageView imageView; + private final SimpleTextView textView; + private final Theme.ResourcesProvider resourcesProvider; + private TLRPC.StickerSetCovered cover; + + public StickerPackNameView(Context context, Theme.ResourcesProvider resourcesProvider) { + super(context); + this.resourcesProvider = resourcesProvider; + imageView = new BackupImageView(context); + textView = new SimpleTextView(context); + textView.setTextSize(16); + textView.setTextColor(Color.WHITE); + setOrientation(LinearLayout.HORIZONTAL); + addView(imageView, LayoutHelper.createLinear(24, 24, Gravity.CENTER, 17, 0, 17, 0)); + addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 0, 12, 0)); + } + + public TLRPC.StickerSetCovered getCover() { + return cover; + } + + public void bind(TLRPC.StickerSetCovered cover) { + this.cover = cover; + if (cover instanceof TLRPC.TL_stickerSetNoCovered) { + textView.setText(LocaleController.getString(R.string.NewStickerPack)); + imageView.setImageResource(R.drawable.msg_addbot); + return; + } + textView.setText(cover.set.title); + if (cover.cover != null) { + TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(cover.cover.thumbs, 90); + SvgHelper.SvgDrawable svgThumb = DocumentObject.getSvgThumb(cover.cover, Theme.key_windowBackgroundGray, 1.0f, 1f, resourcesProvider); + if (svgThumb != null) { + if (thumb != null) { + imageView.setImage(ImageLocation.getForDocument(thumb, cover.cover), null, "webp", svgThumb, cover); + } else { + imageView.setImage(ImageLocation.getForDocument(cover.cover), null, "webp", svgThumb, cover); + } + } else { + imageView.setImage(ImageLocation.getForDocument(thumb, cover.cover), null, "webp", null, cover); + } + } else { + imageView.setImage(null, null, null, null, null, 0); + } + } + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java index 413d38b49a..cc6d8ddba3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java @@ -9,6 +9,7 @@ package org.telegram.ui; import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.getString; import android.Manifest; import android.animation.Animator; @@ -45,6 +46,7 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.text.SpannableStringBuilder; import android.text.TextPaint; import android.text.TextUtils; import android.transition.ChangeBounds; @@ -93,6 +95,7 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.AnimationNotificationsLocker; import org.telegram.messenger.ApplicationLoader; +import org.telegram.messenger.BirthdayController; import org.telegram.messenger.BotWebViewVibrationEffect; import org.telegram.messenger.BuildVars; import org.telegram.messenger.ChatObject; @@ -172,7 +175,7 @@ import org.telegram.ui.Components.BackButtonMenu; import org.telegram.ui.Components.BackupImageView; import org.telegram.ui.Components.BlurredRecyclerView; -import org.telegram.ui.Components.BotWebViewSheet; +import org.telegram.ui.bots.BotWebViewSheet; import org.telegram.ui.Components.Bulletin; import org.telegram.ui.Components.BulletinFactory; import org.telegram.ui.Components.ChatActivityEnterView; @@ -188,6 +191,7 @@ import org.telegram.ui.Components.FloatingDebug.FloatingDebugProvider; import org.telegram.ui.Components.FolderBottomSheet; import org.telegram.ui.Components.FolderDrawable; +import org.telegram.ui.Components.ForegroundColorSpanThemable; import org.telegram.ui.Components.Forum.ForumUtilities; import org.telegram.ui.Components.FragmentContextView; import org.telegram.ui.Components.ItemOptions; @@ -2782,6 +2786,8 @@ public boolean onFragmentCreate() { getMessagesController().getSavedMessagesController().preloadDialogs(true); } + BirthdayController.getInstance(currentAccount).check(); + return true; } @@ -5746,6 +5752,10 @@ private void updateDialogsHint() { if (dialogsHintCell == null || fragmentView == null || getContext() == null) { return; } + if (dialogsHintCell != null) { + dialogsHintCell.setCompact(false); + dialogsHintCell.setAvatars(currentAccount, null); + } if (isInPreviewMode()) { dialogsHintCellVisible = false; dialogsHintCell.setVisibility(View.GONE); @@ -5759,9 +5769,120 @@ private void updateDialogsHint() { } authHintCell.set(DialogsActivity.this, currentAccount); updateAuthHintCellVisibility(true); + } else if (folderId == 0 && !getMessagesController().premiumPurchaseBlocked() && BirthdayController.getInstance(currentAccount).contains() && !NekoConfig.disableTrending.Bool()) { + BirthdayController.BirthdayState state = BirthdayController.getInstance(currentAccount).getState(); + ArrayList users = state.today; + dialogsHintCellVisible = true; + dialogsHintCell.setVisibility(View.VISIBLE); + dialogsHintCell.setCompact(true); + dialogsHintCell.setOnClickListener(v -> UserSelectorBottomSheet.open(0, state)); + dialogsHintCell.setAvatars(currentAccount, users); + dialogsHintCell.setText(Emoji.replaceWithRestrictedEmoji(AndroidUtilities.replaceSingleTag( + users.size() == 1 ? + LocaleController.formatString(R.string.BirthdayTodaySingleTitle, UserObject.getForcedFirstName(users.get(0))) : + LocaleController.formatPluralString("BirthdayTodayMultipleTitle", users.size()), + Theme.key_windowBackgroundWhiteValueText, + AndroidUtilities.REPLACING_TAG_TYPE_LINKBOLD, + null + ), dialogsHintCell.titleView, this::updateDialogsHint), + LocaleController.formatString(users.size() == 1 ? R.string.BirthdayTodaySingleMessage : R.string.BirthdayTodayMultipleMessage) + ); + dialogsHintCell.setOnCloseListener(v -> { + BirthdayController.getInstance(currentAccount).hide(); + ChangeBounds transition = new ChangeBounds(); + transition.setDuration(200); + TransitionManager.beginDelayedTransition((ViewGroup) dialogsHintCell.getParent(), transition); + updateDialogsHint(); + BulletinFactory.of(this) + .createSimpleBulletin(R.raw.chats_infotip, LocaleController.getString("BoostingPremiumChristmasToast", R.string.BoostingPremiumChristmasToast), 4) + .setDuration(Bulletin.DURATION_PROLONG) + .show(); + }); + updateAuthHintCellVisibility(false); + } else if ( + folderId == 0 && + MessagesController.getInstance(currentAccount).pendingSuggestions.contains("BIRTHDAY_SETUP") && + getMessagesController().getUserFull(getUserConfig().getClientUserId()) != null && + getMessagesController().getUserFull(getUserConfig().getClientUserId()).birthday == null + ) { + ContactsController.getInstance(currentAccount).loadPrivacySettings(); + dialogsHintCellVisible = true; + dialogsHintCell.setVisibility(View.VISIBLE); + dialogsHintCell.setCompact(true); + dialogsHintCell.setOnClickListener(v -> { + showDialog(AlertsCreator.createBirthdayPickerDialog(getContext(), getString(R.string.EditProfileBirthdayTitle), getString(R.string.EditProfileBirthdayButton), null, birthday -> { + TLRPC.TL_account_updateBirthday req = new TLRPC.TL_account_updateBirthday(); + req.flags |= 1; + req.birthday = birthday; + TLRPC.UserFull userFull = getMessagesController().getUserFull(getUserConfig().getClientUserId()); + TLRPC.TL_birthday oldBirthday = userFull != null ? userFull.birthday : null; + if (userFull != null) { + userFull.flags2 |= 32; + userFull.birthday = birthday; + } + getConnectionsManager().sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TLRPC.TL_boolTrue) { + BulletinFactory.of(DialogsActivity.this) + .createSimpleBulletin(R.raw.contact_check, LocaleController.getString(R.string.PrivacyBirthdaySetDone)) + .setDuration(Bulletin.DURATION_PROLONG).show(); + } else { + if (userFull != null) { + if (oldBirthday == null) { + userFull.flags2 &=~ 32; + } else { + userFull.flags2 |= 32; + } + userFull.birthday = oldBirthday; + getMessagesStorage().updateUserInfo(userFull, false); + } + if (err != null && err.text != null && err.text.startsWith("FLOOD_WAIT_")) { + if (getContext() != null) { + showDialog( + new AlertDialog.Builder(getContext(), resourceProvider) + .setTitle(getString(R.string.PrivacyBirthdayTooOftenTitle)) + .setMessage(getString(R.string.PrivacyBirthdayTooOftenMessage)) + .setPositiveButton(getString(R.string.OK), null) + .create() + ); + } + } else { + BulletinFactory.of(DialogsActivity.this) + .createSimpleBulletin(R.raw.error, LocaleController.getString(R.string.UnknownError)) + .show(); + } + } + }), ConnectionsManager.RequestFlagDoNotWaitFloodWait); + + MessagesController.getInstance(currentAccount).removeSuggestion(0, "BIRTHDAY_SETUP"); + + updateDialogsHint(); + }, () -> { + BaseFragment.BottomSheetParams params = new BaseFragment.BottomSheetParams(); + params.transitionFromLeft = true; + params.allowNestedScroll = false; + showAsSheet(new PrivacyControlActivity(PrivacyControlActivity.PRIVACY_RULES_TYPE_BIRTHDAY), params); + }, getResourceProvider()).create()); + }); + dialogsHintCell.setText(Emoji.replaceWithRestrictedEmoji(LocaleController.getString(R.string.BirthdaySetupTitle), dialogsHintCell.titleView, this::updateDialogsHint), LocaleController.formatString(R.string.BirthdaySetupMessage)); + dialogsHintCell.setOnCloseListener(v -> { + MessagesController.getInstance(currentAccount).removeSuggestion(0, "BIRTHDAY_SETUP"); + ChangeBounds transition = new ChangeBounds(); + transition.setDuration(200); + TransitionManager.beginDelayedTransition((ViewGroup) dialogsHintCell.getParent(), transition); + updateDialogsHint(); + + BulletinFactory.of(this) + .createSimpleBulletin(R.raw.chats_infotip, LocaleController.getString(R.string.BirthdaySetupLater), LocaleController.getString(R.string.Settings), () -> { + presentFragment(new UserInfoActivity()); + }) + .setDuration(Bulletin.DURATION_PROLONG) + .show(); + }); + updateAuthHintCellVisibility(false); } else if (isPremiumChristmasHintVisible()) { dialogsHintCellVisible = true; dialogsHintCell.setVisibility(View.VISIBLE); + dialogsHintCell.setCompact(false); dialogsHintCell.setOnClickListener(v -> UserSelectorBottomSheet.open()); dialogsHintCell.setText(Emoji.replaceEmoji(AndroidUtilities.replaceSingleTag( LocaleController.getString("GiftPremiumEventAdsTitle", R.string.GiftPremiumEventAdsTitle), @@ -5784,6 +5905,7 @@ private void updateDialogsHint() { } else if (isPremiumRestoreHintVisible()) { dialogsHintCellVisible = true; dialogsHintCell.setVisibility(View.VISIBLE); + dialogsHintCell.setCompact(false); dialogsHintCell.setOnClickListener(v -> { presentFragment(new PremiumPreviewFragment("dialogs_hint").setSelectAnnualByDefault()); AndroidUtilities.runOnUIThread(() -> { @@ -5804,6 +5926,7 @@ private void updateDialogsHint() { } else if (isPremiumHintVisible()) { dialogsHintCellVisible = true; dialogsHintCell.setVisibility(View.VISIBLE); + dialogsHintCell.setCompact(false); dialogsHintCell.setOnClickListener(v -> { presentFragment(new PremiumPreviewFragment("dialogs_hint").setSelectAnnualByDefault()); AndroidUtilities.runOnUIThread(() -> { @@ -5824,6 +5947,7 @@ private void updateDialogsHint() { } else if (isCacheHintVisible()) { dialogsHintCellVisible = true; dialogsHintCell.setVisibility(View.VISIBLE); + dialogsHintCell.setCompact(false); dialogsHintCell.setOnClickListener(v -> { presentFragment(new CacheControlActivity()); AndroidUtilities.runOnUIThread(() -> { @@ -5863,6 +5987,7 @@ private void updateDialogsHint() { final String finalSuggestion = foundSuggestion; dialogsHintCellVisible = true; dialogsHintCell.setVisibility(View.VISIBLE); + dialogsHintCell.setCompact(false); dialogsHintCell.setOnClickListener(v -> { if (ApplicationLoader.applicationLoaderInstance != null) { ApplicationLoader.applicationLoaderInstance.onSuggestionClick(finalSuggestion); @@ -7736,6 +7861,7 @@ private void onItemClick(View view, int position, RecyclerListView.Adapter adapt long dialogId = 0; long topicId = 0; int message_id = 0; + MessageObject msg = null; boolean isGlobalSearch = false; int folderId = 0; int filterId = 0; @@ -7826,7 +7952,7 @@ private void onItemClick(View view, int position, RecyclerListView.Adapter adapt searchObject = (TLRPC.EncryptedChat) obj; } } else if (obj instanceof MessageObject) { - MessageObject messageObject = (MessageObject) obj; + MessageObject messageObject = msg = (MessageObject) obj; dialogId = messageObject.getDialogId(); message_id = messageObject.getId(); TLRPC.Chat chat = getMessagesController().getChat(-dialogId); @@ -7960,7 +8086,7 @@ private void onItemClick(View view, int position, RecyclerListView.Adapter adapt } else if (searchString != null) { if (getMessagesController().checkCanOpenChat(args, DialogsActivity.this)) { getNotificationCenter().postNotificationName(NotificationCenter.closeChats); - presentFragment(new ChatActivity(args)); + presentFragment(highlightFoundQuote(new ChatActivity(args), msg)); } } else { slowedReloadAfterDialogClick = true; @@ -7971,20 +8097,20 @@ private void onItemClick(View view, int position, RecyclerListView.Adapter adapt if (chat != null && chat.forum && topicId == 0) { if (!LiteMode.isEnabled(LiteMode.FLAG_CHAT_FORUM_TWOCOLUMN)) { if (needOpenChatActivity) { - presentFragment(new ChatActivity(args)); + presentFragment(highlightFoundQuote(new ChatActivity(args), msg)); } else { presentFragment(new TopicsFragment(args)); } } else { if (!canOpenInRightSlidingView) { if (needOpenChatActivity) { - presentFragment(new ChatActivity(args)); + presentFragment(highlightFoundQuote(new ChatActivity(args), msg)); } else { presentFragment(new TopicsFragment(args)); } } else if (!searching) { if (needOpenChatActivity) { - presentFragment(new ChatActivity(args)); + presentFragment(highlightFoundQuote(new ChatActivity(args), msg)); } else { if (rightSlidingDialogContainer.currentFragment != null && ((TopicsFragment) rightSlidingDialogContainer.currentFragment).getDialogId() == dialogId) { rightSlidingDialogContainer.finishPreview(); @@ -8014,11 +8140,55 @@ private void onItemClick(View view, int position, RecyclerListView.Adapter adapt rightSlidingDialogContainer.finishPreview(); } } - presentFragment(chatActivity); + presentFragment(highlightFoundQuote(chatActivity, msg)); + } + } + } + } + } + + public ChatActivity highlightFoundQuote(ChatActivity chatActivity, MessageObject message) { + if (message != null && message.hasHighlightedWords()) { + try { + CharSequence text = null; + if (!TextUtils.isEmpty(message.caption)) { + text = message.caption; + } else { + text = message.messageText; + } + CharSequence highlighted = AndroidUtilities.highlightText(text, message.highlightedWords, null); + if (highlighted instanceof SpannableStringBuilder) { + SpannableStringBuilder spannedHighlighted = (SpannableStringBuilder) highlighted; + ForegroundColorSpanThemable[] spans = spannedHighlighted.getSpans(0, spannedHighlighted.length(), ForegroundColorSpanThemable.class); + if (spans.length > 0) { + int start = spannedHighlighted.getSpanStart(spans[0]); + int end = spannedHighlighted.getSpanEnd(spans[0]); + for (int i = 1; i < spans.length; ++i) { + int sstart = spannedHighlighted.getSpanStart(spans[i]); + int send = spannedHighlighted.getSpanStart(spans[i]); + if (sstart == end) { + end = send; + } else if (sstart > end) { + boolean whitespace = true; + for (int j = end; j <= sstart; ++j) { + if (!Character.isWhitespace(spannedHighlighted.charAt(j))) { + whitespace = false; + break; + } + } + if (whitespace) { + end = send; + } + } + } + chatActivity.setHighlightQuote(message.getId(), text.subSequence(start, end).toString(), start); } } + } catch (Exception e) { + FileLog.e(e); } } + return chatActivity; } public void setOpenedDialogId(long dialogId, long topicId) { @@ -12198,13 +12368,15 @@ private void setFragmentIsSliding(boolean sliding) { fragmentView.requestLayout(); } } else { - for (int i = 0; i < viewPages.length; i++) { - ViewPage page = viewPages[i]; - if (page != null) { - page.setLayerType(View.LAYER_TYPE_NONE, null); - page.setClipChildren(true); - page.setClipToPadding(true); - page.listView.setClipChildren(true); + if (viewPages != null) { + for (int i = 0; i < viewPages.length; i++) { + ViewPage page = viewPages[i]; + if (page != null) { + page.setLayerType(View.LAYER_TYPE_NONE, null); + page.setClipChildren(true); + page.setClipToPadding(true); + page.listView.setClipChildren(true); + } } } if (actionBar != null) { @@ -12394,7 +12566,7 @@ public void updateStoriesVisibility(boolean animated) { if (dialogStoriesCell == null || storiesVisibilityAnimator != null || rightSlidingDialogContainer != null && rightSlidingDialogContainer.hasFragment() || searchIsShowed || actionBar.isActionModeShowed() || onlySelect) { return; } - if (StoryRecorder.isVisible() || (storyViewer != null && storyViewer.isFullyVisible())) { + if (StoryRecorder.isVisible() || (getLastStoryViewer() != null && getLastStoryViewer().isFullyVisible())) { animated = false; } boolean onlySelfStories = !isArchive() && getStoriesController().hasOnlySelfStories(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DilogCacheBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/DilogCacheBottomSheet.java index 5160481779..05e23a71dd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DilogCacheBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DilogCacheBottomSheet.java @@ -47,7 +47,7 @@ protected CharSequence getTitle() { } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { return new RecyclerListView.SelectionAdapter() { @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java b/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java index c3c0c37d3e..fa7d99ec1c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java @@ -2,7 +2,6 @@ import android.graphics.Canvas; import android.text.TextUtils; -import android.util.Log; import android.view.HapticFeedbackConstants; import android.view.View; import android.widget.FrameLayout; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java index 7452eaed42..0ac4339eef 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java @@ -28,7 +28,6 @@ import android.text.style.DynamicDrawableSpan; import android.text.style.ImageSpan; import android.text.style.ReplacementSpan; -import android.util.Log; import android.util.TypedValue; import android.view.Gravity; import android.view.View; @@ -2249,7 +2248,7 @@ private void updateRows(boolean animated) { } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { return adapter = new AdapterWithDiffUtils() { private RecyclerListView.Adapter realAdapter() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java index 6c2b093cfb..87649da078 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java @@ -11,7 +11,6 @@ import android.graphics.PorterDuffColorFilter; import android.graphics.drawable.Drawable; import android.text.TextUtils; -import android.util.Log; import android.util.TypedValue; import android.view.Gravity; import android.view.HapticFeedbackConstants; @@ -31,7 +30,6 @@ import androidx.recyclerview.widget.RecyclerView; import org.telegram.messenger.AndroidUtilities; -import org.telegram.messenger.BotWebViewVibrationEffect; import org.telegram.messenger.Emoji; import org.telegram.messenger.FileLog; import org.telegram.messenger.LocaleController; @@ -51,7 +49,6 @@ import org.telegram.ui.Cells.ShadowSectionCell; import org.telegram.ui.Cells.TextCheckCell; import org.telegram.ui.Cells.TextInfoPrivacyCell; -import org.telegram.ui.Components.BotWebViewContainer; import org.telegram.ui.Components.Bulletin; import org.telegram.ui.Components.BulletinFactory; import org.telegram.ui.Components.CombinedDrawable; @@ -87,7 +84,6 @@ public class FiltersSetupActivity extends BaseFragment implements NotificationCe private boolean ignoreUpdates; private boolean highlightTags; - private boolean scrollingToBottom; public FiltersSetupActivity highlightTags() { this.highlightTags = true; return this; @@ -585,9 +581,6 @@ private void updateRows(boolean animated) { presentFragment(new PremiumPreviewFragment("settings")); }) : LocaleController.getString(R.string.FolderShowTagsInfo))); - if (scrollingToBottom) { - animated = false; - } if (adapter != null) { if (animated) { adapter.setItems(oldItems, items); @@ -617,20 +610,6 @@ public void onFragmentDestroy() { super.onFragmentDestroy(); } - @Override - public void onBecomeFullyVisible() { - super.onBecomeFullyVisible(); - if (highlightTags) { - highlightTags = false; - scrollingToBottom = true; - listView.smoothScrollToPosition(adapter.getItemCount() - 1); - AndroidUtilities.runOnUIThread(() -> { - scrollingToBottom = false; - listView.highlightRow(() -> folderTagsPosition); - }, 200); - } - } - @Override public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); @@ -727,6 +706,15 @@ protected void dispatchDraw(Canvas canvas) { } }); + if (highlightTags) { + updateRows(false); + highlightTags = false; + listView.scrollToPosition(adapter.getItemCount() - 1); + AndroidUtilities.runOnUIThread(() -> { + listView.highlightRow(() -> folderTagsPosition); + }, 200); + } + return fragmentView; } @@ -759,11 +747,7 @@ public void didReceivedNotification(int id, int account, Object... args) { } updateRows(true); } else if (id == NotificationCenter.suggestedFiltersLoaded) { - if (scrollingToBottom) { - AndroidUtilities.runOnUIThread(() -> updateRows(true), 900); - } else { - updateRows(true); - } + updateRows(true); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FragmentUsernameBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/FragmentUsernameBottomSheet.java new file mode 100644 index 0000000000..a863ea3d09 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/FragmentUsernameBottomSheet.java @@ -0,0 +1,190 @@ +package org.telegram.ui; + +import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.getString; + +import android.content.Context; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.TextUtils; +import android.util.TypedValue; +import android.view.Gravity; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import org.telegram.PhoneFormat.PhoneFormat; +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BillingController; +import org.telegram.messenger.ChatObject; +import org.telegram.messenger.DialogObject; +import org.telegram.messenger.Emoji; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.R; +import org.telegram.messenger.UserConfig; +import org.telegram.messenger.UserObject; +import org.telegram.messenger.browser.Browser; +import org.telegram.tgnet.TLObject; +import org.telegram.tgnet.TLRPC; +import org.telegram.tgnet.tl.TL_fragment; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.BottomSheet; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.AvatarDrawable; +import org.telegram.ui.Components.BackupImageView; +import org.telegram.ui.Components.BulletinFactory; +import org.telegram.ui.Components.ColoredImageSpan; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.LinkSpanDrawable; +import org.telegram.ui.Components.Premium.PremiumButtonView; +import org.telegram.ui.Components.RLottieImageView; +import org.telegram.ui.Stories.recorder.ButtonWithCounterView; + +import tw.nekomimi.nekogram.utils.AlertUtil; + +public class FragmentUsernameBottomSheet { + + public static final int TYPE_USERNAME = 0; + public static final int TYPE_PHONE = 1; + + public static void open( + Context context, + int type, + String name, + TLObject owner, + TL_fragment.TL_collectibleInfo info, + Theme.ResourcesProvider resourcesProvider + ) { + BottomSheet sheet = new BottomSheet(context, false, resourcesProvider); + sheet.fixNavigationBar(Theme.getColor(Theme.key_dialogBackground, resourcesProvider)); + + LinearLayout layout = new LinearLayout(context); + layout.setOrientation(LinearLayout.VERTICAL); + layout.setPadding(dp(16), 0, dp(16), 0); + + RLottieImageView imageView = new RLottieImageView(context); + imageView.setScaleType(ImageView.ScaleType.CENTER); + int sz = type == TYPE_USERNAME ? 70 : 78; + imageView.setAnimation(type == TYPE_USERNAME ? R.raw.fragment_username : R.raw.fragment_phone, sz, sz); + imageView.playAnimation(); + imageView.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)); + imageView.setBackground(Theme.createCircleDrawable(dp(80), Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider))); + layout.addView(imageView, LayoutHelper.createLinear(80, 80, Gravity.CENTER_HORIZONTAL, 0, 16, 0, 16)); + + final String ownerName; + if (owner instanceof TLRPC.User) { + ownerName = UserObject.getUserName((TLRPC.User) owner); + } else if (owner instanceof TLRPC.Chat) { + ownerName = ((TLRPC.Chat) owner).title; + } else { + ownerName = ""; + } + + final String money = BillingController.getInstance().formatCurrency(info.amount, info.currency); + final String crypto_money = BillingController.getInstance().formatCurrency(info.crypto_amount, info.crypto_currency); + + String title; + String message; + String link; + if (type == TYPE_USERNAME) { + title = LocaleController.formatString(R.string.FragmentUsernameTitle, "@" + name); + message = LocaleController.formatString(R.string.FragmentUsernameMessage, LocaleController.formatShortDateTime(info.purchase_date), crypto_money, TextUtils.isEmpty(money) ? "" : "(" + money + ")"); + link = MessagesController.getInstance(UserConfig.selectedAccount).linkPrefix + "/" + name; + } else if (type == TYPE_PHONE) { + title = LocaleController.formatString(R.string.FragmentPhoneTitle, PhoneFormat.getInstance().format("+" + name)); + message = LocaleController.formatString(R.string.FragmentPhoneMessage, LocaleController.formatShortDateTime(info.purchase_date), crypto_money, TextUtils.isEmpty(money) ? "" : "(" + money + ")"); + link = PhoneFormat.getInstance().format("+" + name); + } else { + return; + } + + Runnable copy = link != null ? () -> { + AndroidUtilities.addToClipboard(link); + if (type == TYPE_PHONE) { + BulletinFactory.of(sheet.getContainer(), resourcesProvider).createCopyBulletin(getString(R.string.PhoneCopied)).show(); + } else { + BulletinFactory.of(sheet.getContainer(), resourcesProvider).createCopyLinkBulletin().show(); + } + } : null; + + CharSequence titleSpanned = AndroidUtilities.replaceSingleTag(title, copy); + + final SpannableString tonIcon = new SpannableString("TON"); + ColoredImageSpan span = new ColoredImageSpan(R.drawable.mini_ton); + span.setWidth(dp(13)); + tonIcon.setSpan(span, 0, tonIcon.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + CharSequence messageSpanned = AndroidUtilities.replaceCharSequence("TON", AndroidUtilities.replaceTags(message), tonIcon); + + TextView headerView = new LinkSpanDrawable.LinksTextView(context); + headerView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + headerView.setGravity(Gravity.CENTER); + headerView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); + headerView.setLinkTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2, resourcesProvider)); + headerView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + headerView.setText(titleSpanned); + layout.addView(headerView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 42, 0, 42, 0)); + + FrameLayout chipLayout = new FrameLayout(context); + chipLayout.setBackground(Theme.createRoundRectDrawable(dp(28), dp(28), Theme.getColor(Theme.key_groupcreate_spanBackground, resourcesProvider))); + + BackupImageView chipAvatar = new BackupImageView(context); + chipAvatar.setRoundRadius(dp(28)); + AvatarDrawable avatarDrawable = new AvatarDrawable(); + avatarDrawable.setInfo(owner); + chipAvatar.setForUserOrChat(owner, avatarDrawable); + chipLayout.addView(chipAvatar, LayoutHelper.createFrame(28, 28, Gravity.LEFT | Gravity.TOP)); + + TextView chipText = new TextView(context); + chipText.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); + chipText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); + chipText.setSingleLine(); + chipText.setText(Emoji.replaceEmoji(ownerName, chipText.getPaint().getFontMetricsInt(), false)); + chipLayout.addView(chipText, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL | Gravity.LEFT, 37, 0, 10, 0)); + + layout.addView(chipLayout, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 28, Gravity.CENTER_HORIZONTAL, 42, 10, 42, 18)); + + TextView descriptionView = new TextView(context); + descriptionView.setGravity(Gravity.CENTER); + descriptionView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); + descriptionView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + descriptionView.setText(messageSpanned); + layout.addView(descriptionView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 32, 0, 32, 19)); + + ButtonWithCounterView button = new ButtonWithCounterView(context, resourcesProvider); + button.setText(getString(R.string.FragmentUsernameOpen), false); + button.setOnClickListener(v -> { + Browser.openUrl(context, info.url); + }); + layout.addView(button, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, 6, 0, 6, 0)); + + if (copy != null) { + ButtonWithCounterView button2 = new ButtonWithCounterView(context, false, resourcesProvider); + button2.setText(getString(type == TYPE_USERNAME ? R.string.FragmentUsernameCopy : R.string.FragmentPhoneCopy), false); + button2.setOnClickListener(v -> { + copy.run(); + sheet.dismiss(); + }); + layout.addView(button2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, 6, 6, 6, 0)); + + // na: copy fragment username + if (type == TYPE_USERNAME) { + ButtonWithCounterView button3 = new ButtonWithCounterView(context, false, resourcesProvider); + button3.setText(getString(R.string.Copy), false); + button3.setOnClickListener(v -> { + AlertUtil.copyAndAlert("@" + name); + sheet.dismiss(); + }); + layout.addView(button3, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, 6, 6, 6, 0)); + } + } + + sheet.setCustomView(layout); + sheet.show(); + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java index 621dc3c993..5c014e83de 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java @@ -73,6 +73,7 @@ import org.telegram.ui.ActionBar.ThemeDescription; import org.telegram.ui.Adapters.SearchAdapterHelper; import org.telegram.ui.Cells.CheckBoxCell; +import org.telegram.ui.Cells.GraySectionCell; import org.telegram.ui.Cells.GroupCreateSectionCell; import org.telegram.ui.Cells.GroupCreateUserCell; import org.telegram.ui.Cells.TextCell; @@ -130,6 +131,8 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen private boolean searchWas; private boolean searching; private int chatAddType; + private boolean allowPremium; + private GroupCreateSpan selectedPremium; private LongSparseArray selectedContacts = new LongSparseArray<>(); private ArrayList allSpans = new ArrayList<>(); private GroupCreateSpan currentDeletingSpan; @@ -143,7 +146,7 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen private PermanentLinkBottomSheet sharedLinkBottomSheet; public interface GroupCreateActivityDelegate { - void didSelectUsers(ArrayList ids); + void didSelectUsers(boolean withPremium, ArrayList ids); } public interface GroupCreateActivityImportDelegate { @@ -158,12 +161,44 @@ default void needAddBot(TLRPC.User user) { } } + private ArrayList toSelectIds; + private boolean toSelectPremium; + public void select(ArrayList ids, boolean premium) { + if (spansContainer == null) { + toSelectIds = ids; + toSelectPremium = premium; + return; + } + if (premium && selectedPremium == null) { + selectedPremium = new GroupCreateSpan(getContext(), "premium"); + spansContainer.addSpan(selectedPremium); + selectedPremium.setOnClickListener(GroupCreateActivity.this); + } else if (!premium && selectedPremium != null) { + spansContainer.removeSpan(selectedPremium); + selectedPremium = null; + } + for (long id : ids) { + TLObject obj; + if (id < 0) { + obj = getMessagesController().getChat(-id); + } else { + obj = getMessagesController().getUser(id); + } + if (obj == null) continue; + GroupCreateSpan span = new GroupCreateSpan(getContext(), obj); + spansContainer.addSpan(span); + span.setOnClickListener(this); + } + spansContainer.endAnimation(); + AndroidUtilities.updateVisibleRows(listView); + } + private class SpansContainer extends ViewGroup { private boolean animationStarted; private ArrayList animators = new ArrayList<>(); private View addingSpan; - private View removingSpan; + private final ArrayList removingSpans = new ArrayList<>(); private int animationIndex = -1; public SpansContainer(Context context) { @@ -186,7 +221,8 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { continue; } child.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(32), MeasureSpec.EXACTLY)); - if (child != removingSpan && currentLineWidth + child.getMeasuredWidth() > maxWidth) { + boolean isRemoving = removingSpans.contains(child); + if (!isRemoving && currentLineWidth + child.getMeasuredWidth() > maxWidth) { y += child.getMeasuredHeight() + AndroidUtilities.dp(8); currentLineWidth = 0; } @@ -196,10 +232,10 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } x = AndroidUtilities.dp(13) + currentLineWidth; if (!animationStarted) { - if (child == removingSpan) { + if (isRemoving) { child.setTranslationX(AndroidUtilities.dp(13) + allCurrentLineWidth); child.setTranslationY(allY); - } else if (removingSpan != null) { + } else if (!removingSpans.isEmpty()) { if (child.getTranslationX() != x) { animators.add(ObjectAnimator.ofFloat(child, "translationX", x)); } @@ -211,7 +247,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { child.setTranslationY(y); } } - if (child != removingSpan) { + if (!isRemoving) { currentLineWidth += child.getMeasuredWidth() + AndroidUtilities.dp(9); } allCurrentLineWidth += child.getMeasuredWidth() + AndroidUtilities.dp(9); @@ -264,7 +300,7 @@ public void onAnimationEnd(Animator animation) { editText.setTranslationY(fieldY); } } else if (currentAnimation != null) { - if (!ignoreScrollEvent && removingSpan == null) { + if (!ignoreScrollEvent && removingSpans.isEmpty()) { editText.bringPointIntoView(editText.getSelectionStart()); } } @@ -283,7 +319,9 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto public void addSpan(final GroupCreateSpan span) { allSpans.add(span); - selectedContacts.put(span.getUid(), span); + if (!span.isFlag) { + selectedContacts.put(span.getUid(), span); + } editText.setHintVisible(false, TextUtils.isEmpty(editText.getText())); if (currentAnimation != null && currentAnimation.isRunning()) { @@ -310,9 +348,21 @@ public void onAnimationEnd(Animator animator) { addView(span); } + public void endAnimation() { + if (currentAnimation != null && currentAnimation.isRunning()) { + currentAnimation.setupEndValues(); + currentAnimation.cancel(); + } + } + public void removeSpan(final GroupCreateSpan span) { ignoreScrollEvent = true; - selectedContacts.remove(span.getUid()); + if (!span.isFlag) { + selectedContacts.remove(span.getUid()); + } + if (span == selectedPremium) { + selectedPremium = null; + } allSpans.remove(span); span.setOnClickListener(null); @@ -326,7 +376,7 @@ public void removeSpan(final GroupCreateSpan span) { @Override public void onAnimationEnd(Animator animator) { removeView(span); - removingSpan = null; + removingSpans.clear(); currentAnimation = null; animationStarted = false; editText.setAllowDrawCursor(true); @@ -336,11 +386,66 @@ public void onAnimationEnd(Animator animator) { } }); currentAnimation.setDuration(150); - removingSpan = span; + removingSpans.clear(); + removingSpans.add(span); animators.clear(); - animators.add(ObjectAnimator.ofFloat(removingSpan, View.SCALE_X, 1.0f, 0.01f)); - animators.add(ObjectAnimator.ofFloat(removingSpan, View.SCALE_Y, 1.0f, 0.01f)); - animators.add(ObjectAnimator.ofFloat(removingSpan, View.ALPHA, 1.0f, 0.0f)); + animators.add(ObjectAnimator.ofFloat(span, View.SCALE_X, 1.0f, 0.01f)); + animators.add(ObjectAnimator.ofFloat(span, View.SCALE_Y, 1.0f, 0.01f)); + animators.add(ObjectAnimator.ofFloat(span, View.ALPHA, 1.0f, 0.0f)); + requestLayout(); + } + + public void removeAllSpans(boolean animated) { + ignoreScrollEvent = true; + + ArrayList spans = new ArrayList<>(allSpans); + allSpans.clear(); + + removingSpans.clear(); + removingSpans.addAll(spans); + + for (int i = 0; i < spans.size(); ++i) { + spans.get(i).setOnClickListener(null); + } + + endAnimation(); + if (animated) { + animationStarted = false; + currentAnimation = new AnimatorSet(); + currentAnimation.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animator) { + for (int i = 0; i < spans.size(); ++i) { + removeView(spans.get(i)); + } + removingSpans.clear(); + currentAnimation = null; + animationStarted = false; + editText.setAllowDrawCursor(true); + if (allSpans.isEmpty()) { + editText.setHintVisible(true, true); + } + } + }); + animators.clear(); + for (int i = 0; i < spans.size(); ++i) { + GroupCreateSpan span = spans.get(i); + animators.add(ObjectAnimator.ofFloat(span, View.SCALE_X, 1.0f, 0.01f)); + animators.add(ObjectAnimator.ofFloat(span, View.SCALE_Y, 1.0f, 0.01f)); + animators.add(ObjectAnimator.ofFloat(span, View.ALPHA, 1.0f, 0.0f)); + } + } else { + for (int i = 0; i < spans.size(); ++i) { + removeView(spans.get(i)); + } + removingSpans.clear(); + currentAnimation = null; + animationStarted = false; + editText.setAllowDrawCursor(true); + if (allSpans.isEmpty()) { + editText.setHintVisible(true, true); + } + } requestLayout(); } } @@ -357,6 +462,7 @@ public GroupCreateActivity(Bundle args) { isNeverShare = args.getBoolean("isNeverShare", false); addToGroup = args.getBoolean("addToGroup", false); chatAddType = args.getInt("chatAddType", 0); + allowPremium = args.getBoolean("allowPremium", false); chatId = args.getLong("chatId"); channelId = args.getLong("channelId"); if (isAlwaysShare || isNeverShare || addToGroup) { @@ -664,6 +770,10 @@ public void afterTextChanged(Editable editable) { } }); + if (toSelectIds != null) { + select(toSelectIds, toSelectPremium); + } + FlickerLoadingView flickerLoadingView = new FlickerLoadingView(context); flickerLoadingView.setViewType(FlickerLoadingView.USERS_TYPE); flickerLoadingView.showDate(false); @@ -692,6 +802,18 @@ public void afterTextChanged(Editable editable) { showDialog(sharedLinkBottomSheet); } else if (view instanceof GroupCreateUserCell) { GroupCreateUserCell cell = (GroupCreateUserCell) view; + if (cell.currentPremium) { + if (selectedPremium == null) { + selectedPremium = new GroupCreateSpan(editText.getContext(), "premium"); + spansContainer.addSpan(selectedPremium); + selectedPremium.setOnClickListener(GroupCreateActivity.this); + } else { + spansContainer.removeSpan(selectedPremium); + selectedPremium = null; + } + checkVisibleRows(); + return; + } Object object = cell.getObject(); long id; if (object instanceof TLRPC.User) { @@ -757,7 +879,7 @@ public void afterTextChanged(Editable editable) { } } getMessagesController().putUser(user, !searching); - } else { + } else if (object instanceof TLRPC.Chat) { TLRPC.Chat chat = (TLRPC.Chat) object; getMessagesController().putChat(chat, !searching); } @@ -769,7 +891,7 @@ public void afterTextChanged(Editable editable) { if (searching || searchWas) { AndroidUtilities.showKeyboard(editText); } else { - cell.setChecked(!exists, true); + checkVisibleRows(); } if (editText.length() > 0) { editText.setText(null); @@ -965,6 +1087,10 @@ private void checkVisibleRows() { id = ((TLRPC.User) object).id; } else if (object instanceof TLRPC.Chat) { id = -((TLRPC.Chat) object).id; + } else if (object instanceof String && "premium".equalsIgnoreCase((String) object)) { + cell.setChecked(selectedPremium != null, true); + cell.setCheckBoxEnabled(true); + continue; } else { id = 0; } @@ -977,6 +1103,18 @@ private void checkVisibleRows() { cell.setCheckBoxEnabled(true); } } + } else if (child instanceof GraySectionCell) { + int position = listView.getChildAdapterPosition(child); + if (position == adapter.firstSectionRow) { + GraySectionCell cell = (GraySectionCell) child; + cell.setRightText(selectedPremium != null || !selectedContacts.isEmpty() ? LocaleController.getString(R.string.DeselectAll) : "", true, v -> { + selectedPremium = null; + selectedContacts.clear(); + spansContainer.removeAllSpans(true); + checkVisibleRows(); + updateEditTextHint(); + }); + } } } } @@ -1031,14 +1169,14 @@ private boolean onDonePressed(boolean alert) { if (!ChatObject.isChannel(chat)) { LinearLayout linearLayout = new LinearLayout(getParentActivity()); linearLayout.setOrientation(LinearLayout.VERTICAL); - cells[0] = new CheckBoxCell(getParentActivity(), 1); + cells[0] = new CheckBoxCell(getParentActivity(), 1, resourceProvider); cells[0].setBackgroundDrawable(Theme.getSelectorDrawable(false)); cells[0].setMultiline(true); if (selectedContacts.size() == 1) { TLRPC.User user = getMessagesController().getUser(selectedContacts.keyAt(0)); - cells[0].setText(AndroidUtilities.replaceTags(LocaleController.formatString("AddOneMemberForwardMessages", R.string.AddOneMemberForwardMessages, UserObject.getFirstName(user))), "", true, false); + cells[0].setText(AndroidUtilities.replaceTags(LocaleController.formatString(R.string.AddOneMemberForwardMessages, UserObject.getFirstName(user))), "", true, false); } else { - cells[0].setText(LocaleController.getString("AddMembersForwardMessages", R.string.AddMembersForwardMessages), "", true, false); + cells[0].setText(LocaleController.getString(R.string.AddMembersForwardMessages), "", true, false); } cells[0].setPadding(LocaleController.isRTL ? AndroidUtilities.dp(16) : AndroidUtilities.dp(8), 0, LocaleController.isRTL ? AndroidUtilities.dp(8) : AndroidUtilities.dp(16), 0); linearLayout.addView(cells[0], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -1077,7 +1215,7 @@ private boolean onDonePressed(boolean alert) { } if (isAlwaysShare || isNeverShare) { if (delegate != null) { - delegate.didSelectUsers(result); + delegate.didSelectUsers(selectedPremium != null, result); } finishFragment(); } else { @@ -1160,10 +1298,27 @@ public void setDelegate(GroupCreateActivityDelegate groupCreateActivityDelegate) delegate = groupCreateActivityDelegate; } - public void setDelegate(ContactsAddActivityDelegate contactsAddActivityDelegate) { + public void setDelegate2(ContactsAddActivityDelegate contactsAddActivityDelegate) { delegate2 = contactsAddActivityDelegate; } + public static class Comparator implements java.util.Comparator { + private static String getName(TLObject object) { + if (object instanceof TLRPC.User) { + TLRPC.User user = (TLRPC.User) object; + return ContactsController.formatName(user.first_name, user.last_name); + } else if (object instanceof TLRPC.Chat) { + TLRPC.Chat chat = (TLRPC.Chat) object; + return chat.title; + } + return ""; + } + @Override + public int compare(TLObject o1, TLObject o2) { + return getName(o1).compareTo(getName(o2)); + } + } + public class GroupCreateAdapter extends RecyclerListView.FastScrollAdapter { private Context context; @@ -1173,6 +1328,9 @@ public class GroupCreateAdapter extends RecyclerListView.FastScrollAdapter { private Runnable searchRunnable; private boolean searching; private ArrayList contacts = new ArrayList<>(); + private int userTypesHeaderRow; + private int firstSectionRow; + private int premiumRow; private int usersStartRow; private int inviteViaLink; private int noContactsStubRow; @@ -1208,22 +1366,15 @@ public GroupCreateAdapter(Context ctx) { } contacts.add(chat); } - Collections.sort(contacts, new Comparator() { - private String getName(TLObject object) { - if (object instanceof TLRPC.User) { - TLRPC.User user = (TLRPC.User) object; - return ContactsController.formatName(user.first_name, user.last_name); - } else { - TLRPC.Chat chat = (TLRPC.Chat) object; - return chat.title; - } + Collections.sort(contacts, new Comparator()); + TLObject lastContact = null; + for (int i = 0; i < contacts.size(); ++i) { + TLObject contact = contacts.get(i); + if (lastContact == null || !firstLetter(Comparator.getName(lastContact)).equals(firstLetter(Comparator.getName(contact)))) { + contacts.add(i, new Letter(firstLetter(Comparator.getName(contact)))); } - - @Override - public int compare(TLObject o1, TLObject o2) { - return getName(o1).compareTo(getName(o2)); - } - }); + lastContact = contact; + } } searchAdapterHelper = new SearchAdapterHelper(false); @@ -1236,6 +1387,11 @@ public int compare(TLObject o1, TLObject o2) { }); } + private String firstLetter(String string) { + if (TextUtils.isEmpty(string)) return ""; + return string.substring(0, 1); + } + public void setSearching(boolean value) { if (searching == value) { return; @@ -1252,7 +1408,9 @@ public String getLetter(int position) { TLObject object = contacts.get(position - usersStartRow); String firstName; String lastName; - if (object instanceof TLRPC.User) { + if (object instanceof Letter) { + return ((Letter) object).letter; + } else if (object instanceof TLRPC.User) { TLRPC.User user = (TLRPC.User) object; firstName = user.first_name; lastName = user.last_name; @@ -1281,6 +1439,9 @@ public String getLetter(int position) { public int getItemCount() { int count; noContactsStubRow = -1; + userTypesHeaderRow = -1; + firstSectionRow = -1; + premiumRow = -1; if (searching) { count = searchResult.size(); int localServerCount = searchAdapterHelper.getLocalServerSearch().size(); @@ -1292,7 +1453,15 @@ public int getItemCount() { currentItemsCount = count; return count; } else { - count = contacts.size(); + count = 0; + if (allowPremium) { + userTypesHeaderRow = firstSectionRow = count++; + premiumRow = count++; + } else { + firstSectionRow = count; + } + usersStartRow = count; + count += contacts.size(); if (addToGroup) { if (chatId != 0) { TLRPC.Chat chat = getMessagesController().getChat(chatId); @@ -1304,7 +1473,7 @@ public int getItemCount() { inviteViaLink = 0; } if (inviteViaLink != 0) { - usersStartRow = 1; + usersStartRow++; count++; } } @@ -1322,10 +1491,10 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType View view; switch (viewType) { case 0: - view = new GroupCreateSectionCell(context); + view = new GraySectionCell(context); break; case 1: - view = new GroupCreateUserCell(context, 1, 0, false).showPremiumBlocked(); + view = new GroupCreateUserCell(context, 1, 0, false);//.showPremiumBlocked(); break; case 3: StickerEmptyView stickerEmptyView = new StickerEmptyView(context, null, StickerEmptyView.STICKER_TYPE_NO_CONTACTS) { @@ -1353,9 +1522,25 @@ protected void onAttachedToWindow() { public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { switch (holder.getItemViewType()) { case 0: { - GroupCreateSectionCell cell = (GroupCreateSectionCell) holder.itemView; + GraySectionCell cell = (GraySectionCell) holder.itemView; if (searching) { cell.setText(LocaleController.getString("GlobalSearch", R.string.GlobalSearch)); + } else if (position == userTypesHeaderRow) { + cell.setText(LocaleController.getString(R.string.PrivacyUserTypes)); + } else if (position - usersStartRow >= 0 && position - usersStartRow < contacts.size()) { + TLObject object = contacts.get(position - usersStartRow); + if (object instanceof Letter) { + cell.setText(((Letter) object).letter.toUpperCase()); + } + } + if (position == firstSectionRow) { + cell.setRightText(selectedPremium != null || !selectedContacts.isEmpty() ? LocaleController.getString(R.string.DeselectAll) : "", true, v -> { + selectedPremium = null; + selectedContacts.clear(); + spansContainer.removeAllSpans(true); + checkVisibleRows(); + updateEditTextHint(); + }); } break; } @@ -1382,8 +1567,10 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { String objectUserName; if (object instanceof TLRPC.User) { objectUserName = ((TLRPC.User) object).username; - } else { + } else if (object instanceof TLRPC.Chat) { objectUserName = ChatObject.getPublicUsername((TLRPC.Chat) object); + } else { + return; } if (position < localCount) { name = searchResultNames.get(position); @@ -1419,6 +1606,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } } } else { + if (position == premiumRow) { + cell.setPremium(); + cell.setChecked(selectedPremium != null, false); + return; + } object = contacts.get(position - usersStartRow); } cell.setObject(object, name, username); @@ -1461,12 +1653,22 @@ public int getItemViewType(int position) { } return 1; } else { + if (position == userTypesHeaderRow) { + return 0; + } + if (position == premiumRow) { + return 1; + } if (inviteViaLink != 0 && position == 0) { return 2; } if (noContactsStubRow == position) { return 3; } + if (position - usersStartRow >= 0 && position - usersStartRow < contacts.size()) { + if (contacts.get(position - usersStartRow) instanceof Letter) + return 0; + } return 1; } } @@ -1486,6 +1688,7 @@ public void onViewRecycled(RecyclerView.ViewHolder holder) { @Override public boolean isEnabled(RecyclerView.ViewHolder holder) { + if (holder.getItemViewType() == 0) return false; if (ignoreUsers != null && holder.itemView instanceof GroupCreateUserCell) { GroupCreateUserCell cell = (GroupCreateUserCell) holder.itemView; Object object = cell.getObject(); @@ -1541,10 +1744,12 @@ public void searchDialogs(final String query) { TLRPC.User user = (TLRPC.User) object; name = ContactsController.formatName(user.first_name, user.last_name).toLowerCase(); username = UserObject.getPublicUsername(user); - } else { + } else if (object instanceof TLRPC.Chat) { TLRPC.Chat chat = (TLRPC.Chat) object; name = chat.title; username = ChatObject.getPublicUsername(chat); + } else { + continue; } String tName = LocaleController.getInstance().getTranslitString(name); if (name.equals(tName)) { @@ -1564,7 +1769,7 @@ public void searchDialogs(final String query) { if (object instanceof TLRPC.User) { TLRPC.User user = (TLRPC.User) object; resultArrayNames.add(AndroidUtilities.generateSearchName(user.first_name, user.last_name, q)); - } else { + } else if (object instanceof TLRPC.Chat) { TLRPC.Chat chat = (TLRPC.Chat) object; resultArrayNames.add(AndroidUtilities.generateSearchName(chat.title, null, q)); } @@ -1674,4 +1879,11 @@ public ArrayList getThemeDescriptions() { return themeDescriptions; } + + private static class Letter extends TLRPC.TL_contact { + public final String letter; + public Letter(String letter) { + this.letter = letter; + } + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/IntroActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/IntroActivity.java index ce928b1237..84bb839d64 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/IntroActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/IntroActivity.java @@ -192,7 +192,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto darkThemeDrawable.setCustomEndFrame(Theme.getCurrentTheme().isDark() ? darkThemeDrawable.getFramesCount() - 1 : 0); darkThemeDrawable.setCurrentFrame(Theme.getCurrentTheme().isDark() ? darkThemeDrawable.getFramesCount() - 1 : 0, false); - themeIconView.setContentDescription(LocaleController.getString(Theme.getCurrentTheme().isDark() ? R.string.AccDescrSwitchToDayTheme : R.string.AccDescrSwitchToDayTheme)); + themeIconView.setContentDescription(LocaleController.getString(Theme.getCurrentTheme().isDark() ? R.string.AccDescrSwitchToDayTheme : R.string.AccDescrSwitchToNightTheme)); themeIconView.setAnimation(darkThemeDrawable); themeFrameLayout.setOnClickListener(v -> { @@ -223,7 +223,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto pos[0] += themeIconView.getMeasuredWidth() / 2; pos[1] += themeIconView.getMeasuredHeight() / 2; NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.needSetDayNightTheme, themeInfo, false, pos, -1, toDark, themeIconView); - themeIconView.setContentDescription(LocaleController.getString(toDark ? R.string.AccDescrSwitchToDayTheme : R.string.AccDescrSwitchToDayTheme)); + themeIconView.setContentDescription(LocaleController.getString(toDark ? R.string.AccDescrSwitchToDayTheme : R.string.AccDescrSwitchToNightTheme)); }); frameLayout2 = new FrameLayout(context); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java index 5194cf306f..f9f0e47f92 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java @@ -130,8 +130,8 @@ import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; -import org.telegram.tgnet.tl.TL_stories; import org.telegram.tgnet.tl.TL_chatlists; +import org.telegram.tgnet.tl.TL_stories; import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.DrawerLayoutContainer; @@ -153,7 +153,6 @@ import org.telegram.ui.Components.AudioPlayerAlert; import org.telegram.ui.Components.BatteryDrawable; import org.telegram.ui.Components.BlockingUpdateView; -import org.telegram.ui.Components.BotWebViewSheet; import org.telegram.ui.Components.Bulletin; import org.telegram.ui.Components.BulletinFactory; import org.telegram.ui.Components.CubicBezierInterpolator; @@ -194,6 +193,7 @@ import org.telegram.ui.Stories.StoriesListPlaceProvider; import org.telegram.ui.Stories.StoryViewer; import org.telegram.ui.Stories.recorder.StoryRecorder; +import org.telegram.ui.bots.BotWebViewSheet; import org.webrtc.voiceengine.WebRtcAudioTrack; import java.io.BufferedReader; @@ -240,6 +240,7 @@ public class LaunchActivity extends BasePermissionsActivity implements INavigati public final static String EXTRA_FORCE_NOT_INTERNAL_APPS = "force_not_internal_apps"; public final static Pattern PREFIX_T_ME_PATTERN = Pattern.compile("^(?:http(?:s|)://|)([A-z0-9-]+?)\\.t\\.me"); + public static boolean isActive; public static boolean isResumed; public static Runnable onResumeStaticCallback; @@ -358,6 +359,7 @@ public void accept(Boolean aBoolean) { @Override protected void onCreate(Bundle savedInstanceState) { + isActive = true; if (BuildVars.DEBUG_VERSION) { StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder(StrictMode.getVmPolicy()) .detectLeakedClosableObjects() @@ -836,8 +838,8 @@ public void onPreviewOpenAnimationEnd() { actionBarLayout.setFragmentStack(mainFragmentsStack); actionBarLayout.setFragmentStackChangedListener(() -> { checkSystemBarColors(true, false); - if (getLastFragment() != null && getLastFragment().storyViewer != null && getLastFragment().storyViewer.isShown()) { - getLastFragment().storyViewer.updatePlayingMode(); + if (getLastFragment() != null && getLastFragment().getLastStoryViewer() != null) { + getLastFragment().getLastStoryViewer().updatePlayingMode(); } }); actionBarLayout.setDelegate(this); @@ -2161,11 +2163,13 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool String code = null; String contactToken = null; String folderSlug = null; + String chatLinkSlug = null; TLRPC.TL_wallPaper wallPaper = null; String inputInvoiceSlug = null; Integer messageId = null; Long channelId = null; Long threadId = null; + String text = null; boolean isBoost = false; Integer commentId = null; int videoTimestamp = -1; @@ -2293,6 +2297,7 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool username = group; group = null; } + text = data.getQueryParameter("text"); } else if (path.startsWith("addstickers/")) { sticker = path.replace("addstickers/", ""); } else if (path.startsWith("addemoji/")) { @@ -2385,6 +2390,8 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool folderSlug = path.substring(7); } else if (path.startsWith("addlist/")) { folderSlug = path.substring(8); + } else if (path.startsWith("m/")) { + chatLinkSlug = path.substring(2); } else if (path.length() >= 1) { botAppMaybe = null; ArrayList segments = new ArrayList<>(data.getPathSegments()); @@ -2426,6 +2433,7 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool attachMenuBotChoose = data.getQueryParameter("choose"); attachMenuBotToOpen = data.getQueryParameter("attach"); threadId = Utilities.parseLong(data.getQueryParameter("thread")); + text = data.getQueryParameter("text"); if (data.getQuery() != null) { isBoost = data.getQuery().equals("boost"); } @@ -2513,6 +2521,7 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool threadId = null; } } + text = data.getQueryParameter("text"); commentId = Utilities.parseInt(data.getQueryParameter("comment")); if (commentId == 0) { commentId = null; @@ -2852,6 +2861,10 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool url = url.replace("tg:addlist", "tg://telegram.org").replace("tg://addlist", "tg://telegram.org"); data = Uri.parse(url); folderSlug = data.getQueryParameter("slug"); + } else if (url.startsWith("tg:message") || url.startsWith("tg://message")) { + url = url.replace("tg:message", "tg://telegram.org").replace("tg://message", "tg://telegram.org"); + data = Uri.parse(url); + chatLinkSlug = data.getQueryParameter("slug"); } else { unsupportedUrl = url.replace("tg://", "").replace("tg:", ""); int index; @@ -2902,11 +2915,11 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool AlertsCreator.processError(currentAccount, error, getActionBarLayout().getLastFragment(), req); } }), ConnectionsManager.RequestFlagFailOnServerErrors); - } else if (username != null || group != null || sticker != null || emoji != null || contactToken != null || folderSlug != null || message != null || game != null || voicechat != null || auth != null || unsupportedUrl != null || lang != null || code != null || wallPaper != null || inputInvoiceSlug != null || channelId != null || theme != null || login != null) { + } else if (username != null || group != null || sticker != null || emoji != null || contactToken != null || folderSlug != null || message != null || game != null || voicechat != null || auth != null || unsupportedUrl != null || lang != null || code != null || wallPaper != null || inputInvoiceSlug != null || channelId != null || theme != null || login != null || chatLinkSlug != null) { if (message != null && message.startsWith("@")) { message = " " + message; } - runLinkRequest(intentAccount[0], username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, login, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, 0, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, startApp, progress, forceNotInternalForApps, storyId, isBoost); + runLinkRequest(intentAccount[0], username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, text, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, login, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, 0, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, startApp, progress, forceNotInternalForApps, storyId, isBoost, chatLinkSlug); } else { try (Cursor cursor = getContentResolver().query(intent.getData(), null, null, null, null)) { if (cursor != null) { @@ -3830,7 +3843,7 @@ private void runLinkRequest(final int intentAccount, final String message, final String contactToken, final String folderSlug, - final boolean hasUrl, + String text, final boolean hasUrl, final Integer messageId, final Long channelId, final Long threadId, @@ -3856,9 +3869,10 @@ private void runLinkRequest(final int intentAccount, final Browser.Progress progress, final boolean forceNotInternalForApps, final int storyId, - final boolean isBoost) { + final boolean isBoost, + final String chatLinkSlug) { if (state == 0 && ChatActivity.SCROLL_DEBUG_DELAY && progress != null) { - Runnable runnable = () -> runLinkRequest(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, 1, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost); + Runnable runnable = () -> runLinkRequest(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, text, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, 1, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost, chatLinkSlug); progress.init(); progress.onCancel(() -> AndroidUtilities.cancelRunOnUIThread(runnable)); AndroidUtilities.runOnUIThread(runnable, 7500); @@ -3868,7 +3882,7 @@ private void runLinkRequest(final int intentAccount, if (account != intentAccount) { switchToAccount(account, true); } - runLinkRequest(account, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, 1, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost); + runLinkRequest(account, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, text, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, 1, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost, chatLinkSlug); }).show(); return; } else if (code != null) { @@ -4017,14 +4031,7 @@ private void runLinkRequest(final int intentAccount, } if (baseFragment != null) { storyItem.dialogId = peerId; - StoryViewer storyViewer = baseFragment.getOrCreateStoryViewer(); - if (storyViewer.isShown() && storyViewer.attachedToParent()) { - StoryViewer overlayStoryViewer = baseFragment.getOrCreateOverlayStoryViewer(); - final StoryViewer storyViewer1 = storyViewer; - overlayStoryViewer.setOnCloseListener(() -> storyViewer1.setOverlayVisible(false)); - storyViewer.setOverlayVisible(true); - storyViewer = overlayStoryViewer; - } + StoryViewer storyViewer = baseFragment.createOverlayStoryViewer(); storyViewer.instantClose(); storyViewer.open(this, storyItem, null); } @@ -4038,7 +4045,7 @@ private void runLinkRequest(final int intentAccount, getAttachMenuBot.bot = MessagesController.getInstance(intentAccount).getInputUser(peerId); ConnectionsManager.getInstance(intentAccount).sendRequest(getAttachMenuBot, (response1, error1) -> AndroidUtilities.runOnUIThread(() -> { if (error1 != null) { - AndroidUtilities.runOnUIThread(() -> runLinkRequest(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, null, null, progress, forceNotInternalForApps, storyId, isBoost)); + AndroidUtilities.runOnUIThread(() -> runLinkRequest(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, text, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, null, null, progress, forceNotInternalForApps, storyId, isBoost, chatLinkSlug)); } else if (response1 instanceof TLRPC.TL_attachMenuBotsBot) { TLRPC.TL_attachMenuBotsBot bot = (TLRPC.TL_attachMenuBotsBot) response1; TLRPC.TL_attachMenuBot attachBot = bot.bot; @@ -4059,7 +4066,7 @@ private void runLinkRequest(final int intentAccount, } }), ConnectionsManager.RequestFlagInvokeAfter | ConnectionsManager.RequestFlagFailOnServerErrors); - processWebAppBot(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost, user, dismissLoading, botAttachable, true); + processWebAppBot(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, text, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost, chatLinkSlug, user, dismissLoading, botAttachable, true); }, null); } else if (attachBot.request_write_access || forceNotInternalForApps) { AtomicBoolean allowWrite = new AtomicBoolean(true); @@ -4077,15 +4084,15 @@ private void runLinkRequest(final int intentAccount, } }), ConnectionsManager.RequestFlagInvokeAfter | ConnectionsManager.RequestFlagFailOnServerErrors); - processWebAppBot(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost, user, dismissLoading, false, false); + processWebAppBot(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, text, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost, chatLinkSlug, user, dismissLoading, false, false); }); } else { - processWebAppBot(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost, user, dismissLoading, false, false); + processWebAppBot(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, text, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost, chatLinkSlug, user, dismissLoading, false, false); } } })); } else { - processWebAppBot(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost, user, dismissLoading, false, false); + processWebAppBot(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, text, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, botAppMaybe, botAppStartParam, progress, forceNotInternalForApps, storyId, isBoost, chatLinkSlug, user, dismissLoading, false, false); } return; } @@ -4359,6 +4366,9 @@ public void didChangeOwner(TLRPC.User user) { if (setAsAttachBot != null) { args.putString("attach_bot_start_command", setAsAttachBot); } + if (text != null) { + args.putString("start_text", text); + } BaseFragment lastFragment = !mainFragmentsStack.isEmpty() && voicechat == null ? mainFragmentsStack.get(mainFragmentsStack.size() - 1) : null; if (lastFragment == null || MessagesController.getInstance(intentAccount).checkCanOpenChat(args, lastFragment)) { final boolean sameDialogId = lastFragment instanceof ChatActivity && ((ChatActivity) lastFragment).getDialogId() == dialog_id; @@ -5005,6 +5015,31 @@ public void onError() { } } } + } else if (chatLinkSlug != null) { + TLRPC.TL_account_resolveBusinessChatLink req = new TLRPC.TL_account_resolveBusinessChatLink(); + req.slug = chatLinkSlug; + + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TLRPC.TL_account_resolvedBusinessChatLinks) { + TLRPC.TL_account_resolvedBusinessChatLinks resolvedLink = (TLRPC.TL_account_resolvedBusinessChatLinks) res; + + MessagesController.getInstance(currentAccount).putUsers(resolvedLink.users, false); + MessagesController.getInstance(currentAccount).putChats(resolvedLink.chats, false); + MessagesStorage.getInstance(currentAccount).putUsersAndChats(resolvedLink.users, resolvedLink.chats, true, true); + + Bundle args = new Bundle(); + if (resolvedLink.peer instanceof TLRPC.TL_peerUser) { + args.putLong("user_id", resolvedLink.peer.user_id); + } else if (resolvedLink.peer instanceof TLRPC.TL_peerChat || resolvedLink.peer instanceof TLRPC.TL_peerChannel) { + args.putLong("chat_id", resolvedLink.peer.channel_id); + } + ChatActivity chatActivity = new ChatActivity(args); + chatActivity.setResolvedChatLink(resolvedLink); + presentFragment(chatActivity, false, true); + } else { + showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString(R.string.BusinessLink), LocaleController.getString(R.string.BusinessLinkInvalid))); + } + })); } if (requestId[0] != 0) { @@ -5045,6 +5080,7 @@ private void processWebAppBot(final int intentAccount, final String message, final String contactToken, final String folderSlug, + final String text, final boolean hasUrl, final Integer messageId, final Long channelId, @@ -5072,6 +5108,7 @@ private void processWebAppBot(final int intentAccount, final boolean forceNotInternalForApps, final int storyId, final boolean isBoost, + final String chatLinkSlug, TLRPC.User user, Runnable dismissLoading, boolean botAttachable, boolean ignoreInactive) { @@ -5085,7 +5122,7 @@ private void processWebAppBot(final int intentAccount, progress.end(); } if (error1 != null) { - AndroidUtilities.runOnUIThread(() -> runLinkRequest(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, null, null, progress, forceNotInternalForApps, storyId, isBoost)); + AndroidUtilities.runOnUIThread(() -> runLinkRequest(intentAccount, username, group, sticker, emoji, botUser, botChat, botChannel, botChatAdminParams, message, contactToken, folderSlug, text, hasUrl, messageId, channelId, threadId, commentId, game, auth, lang, unsupportedUrl, code, loginToken, wallPaper, inputInvoiceSlug, theme, voicechat, livestream, state, videoTimestamp, setAsAttachBot, attachMenuBotToOpen, attachMenuBotChoose, null, null, progress, forceNotInternalForApps, storyId, isBoost, chatLinkSlug)); } else { TLRPC.TL_messages_botApp botApp = (TLRPC.TL_messages_botApp) response1; AndroidUtilities.runOnUIThread(() -> { @@ -5094,6 +5131,7 @@ private void processWebAppBot(final int intentAccount, AtomicBoolean allowWrite = new AtomicBoolean(); BaseFragment lastFragment = mainFragmentsStack.get(mainFragmentsStack.size() - 1); Runnable loadBotSheet = () -> { + if (!isActive) return; BotWebViewSheet sheet = new BotWebViewSheet(LaunchActivity.this, lastFragment.getResourceProvider()); sheet.setParentActivity(LaunchActivity.this); sheet.requestWebView(intentAccount, user.id, user.id, null, null, BotWebViewSheet.TYPE_WEB_VIEW_BOT_APP, 0, false, lastFragment, botApp.app, allowWrite.get(), botAppStartParam, user); @@ -5190,8 +5228,8 @@ private void processBoostDialog(Long peerId, Runnable dismissLoading, Browser.Pr return; } Theme.ResourcesProvider resourcesProvider = lastFragment.getResourceProvider(); - if (lastFragment.storyViewer != null && lastFragment.storyViewer.isFullyVisible()) { - resourcesProvider = lastFragment.storyViewer.getResourceProvider(); + if (lastFragment.getLastStoryViewer() != null && lastFragment.getLastStoryViewer().isFullyVisible()) { + resourcesProvider = lastFragment.getLastStoryViewer().getResourceProvider(); } LimitReachedBottomSheet limitReachedBottomSheet = new LimitReachedBottomSheet(lastFragment, this, TYPE_BOOSTS_FOR_USERS, currentAccount, resourcesProvider); limitReachedBottomSheet.setCanApplyBoost(canApplyBoost); @@ -5894,6 +5932,7 @@ private void onFinish() { finished = true; if (currentAccount != -1) { NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.appDidLogout); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.openBoostForUsersDialog); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.mainUserInfoChanged); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.attachMenuBotsDidLoad); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.didUpdateConnectionState); @@ -6044,8 +6083,8 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (rightActionBarLayout.getFragmentStack().size() != 0) { BaseFragment fragment = rightActionBarLayout.getFragmentStack().get(rightActionBarLayout.getFragmentStack().size() - 1); fragment.onActivityResultFragment(requestCode, resultCode, data); - if (fragment.storyViewer != null && fragment.storyViewer.isShown()) { - fragment.storyViewer.onActivityResult(requestCode, resultCode, data); + if (fragment.getLastStoryViewer() != null) { + fragment.getLastStoryViewer().onActivityResult(requestCode, resultCode, data); } } @@ -6171,9 +6210,7 @@ protected void onStop() { @Override protected void onDestroy() { -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { -// MonetHelper.unregisterReceiver(this); -// } + isActive = false; if (PhotoViewer.getPipInstance() != null) { PhotoViewer.getPipInstance().destroyPhotoViewer(); } @@ -6427,6 +6464,7 @@ public void onConfigurationChanged(Configuration newConfig) { public void onMultiWindowModeChanged(boolean isInMultiWindowMode) { AndroidUtilities.isInMultiwindow = isInMultiWindowMode; checkLayout(); + super.onMultiWindowModeChanged(isInMultiWindowMode); } @Override @@ -6686,6 +6724,12 @@ public void updateDrawState(@NonNull TextPaint ds) { themeSwitchSunView.setVisibility(View.VISIBLE); themeSwitchSunView.invalidate(); } + if (sideMenu != null && sideMenu.getChildCount() > 0) { + View firstChild = sideMenu.getChildAt(0); + if (firstChild instanceof DrawerProfileCell) { + ((DrawerProfileCell) firstChild).updateSunDrawable(toDark); + } + } themeSwitchImageView.setImageBitmap(bitmap); themeSwitchImageView.setVisibility(View.VISIBLE); themeSwitchSunDrawable = darkThemeView.getAnimatedDrawable(); @@ -7644,12 +7688,8 @@ public boolean dispatchKeyEvent(KeyEvent event) { int keyCode = event.getKeyCode(); if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP || event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) { BaseFragment baseFragment = getLastFragment(); - if (baseFragment != null && baseFragment.overlayStoryViewer != null && baseFragment.overlayStoryViewer.isShown()) { - baseFragment.overlayStoryViewer.dispatchKeyEvent(event); - return true; - } - if (baseFragment != null && baseFragment.storyViewer != null && baseFragment.storyViewer.isShown()) { - baseFragment.storyViewer.dispatchKeyEvent(event); + if (baseFragment != null && baseFragment.getLastStoryViewer() != null) { + baseFragment.getLastStoryViewer().dispatchKeyEvent(event); return true; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java index 6810c22a33..8c4da20a9f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java @@ -591,7 +591,7 @@ public void onItemClick(int id) { if (messageObject.isLiveLocation()) { actionBar.setTitle(LocaleController.getString("AttachLiveLocation", R.string.AttachLiveLocation)); otherItem = menu.addItem(0, R.drawable.ic_ab_other, getResourceProvider()); - otherItem.addSubItem(get_directions, R.drawable.navigate, LocaleController.getString("GetDirections", R.string.GetDirections)); + otherItem.addSubItem(get_directions, R.drawable.filled_directions, LocaleController.getString("GetDirections", R.string.GetDirections)); } else { if (messageObject.messageOwner.media.title != null && messageObject.messageOwner.media.title.length() > 0) { actionBar.setTitle(LocaleController.getString("SharedPlace", R.string.SharedPlace)); @@ -1085,7 +1085,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { ActionBarPopupWindow.ActionBarPopupWindowLayout popupLayout = new ActionBarPopupWindow.ActionBarPopupWindowLayout(context); ActionBarMenuSubItem cell = new ActionBarMenuSubItem(getParentActivity(), true, true, getResourceProvider()); cell.setMinimumWidth(AndroidUtilities.dp(200)); - cell.setTextAndIcon(LocaleController.getString("GetDirections", R.string.GetDirections), R.drawable.navigate); + cell.setTextAndIcon(LocaleController.getString("GetDirections", R.string.GetDirections), R.drawable.filled_directions); cell.setOnClickListener(e -> { openDirections(location); if (popupWindow != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java index 744d145406..acbcbbc0b2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java @@ -125,6 +125,7 @@ import org.telegram.tgnet.SerializedData; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; +import org.telegram.tgnet.tl.TL_stats; import org.telegram.ui.ActionBar.ActionBar; import org.telegram.ui.ActionBar.ActionBarMenuItem; import org.telegram.ui.ActionBar.AlertDialog; @@ -210,7 +211,8 @@ public class LoginActivity extends BaseFragment implements NotificationCenter.No private final static int MODE_LOGIN = 0, MODE_CANCEL_ACCOUNT_DELETION = 1, MODE_CHANGE_PHONE_NUMBER = 2, - MODE_CHANGE_LOGIN_EMAIL = 3; + MODE_CHANGE_LOGIN_EMAIL = 3, + MODE_BALANCE_PASSWORD = 4; private final static int VIEW_PHONE_INPUT = 0, VIEW_CODE_MESSAGE = 1, @@ -249,7 +251,8 @@ public class LoginActivity extends BaseFragment implements NotificationCenter.No MODE_LOGIN, MODE_CANCEL_ACCOUNT_DELETION, MODE_CHANGE_PHONE_NUMBER, - MODE_CHANGE_LOGIN_EMAIL + MODE_CHANGE_LOGIN_EMAIL, + MODE_BALANCE_PASSWORD }) public @interface ActivityMode {} @@ -463,6 +466,19 @@ public LoginActivity cancelAccountDeletion(String phone, Bundle params, TLRPC.TL return this; } + private TLRPC.InputChannel channel; + private TLRPC.TL_account_password currentPassword; + private Utilities.Callback2 passwordFinishCallback; + + public LoginActivity promptPassword(TLRPC.TL_account_password currentPassword, TLRPC.InputChannel channel, Utilities.Callback2 callback) { + activityMode = MODE_BALANCE_PASSWORD; + currentViewNum = VIEW_PASSWORD; + this.channel = channel; + this.currentPassword = currentPassword; + passwordFinishCallback = callback; + return this; + } + public LoginActivity changePhoneNumber() { activityMode = MODE_CHANGE_PHONE_NUMBER; return this; @@ -1064,7 +1080,7 @@ protected void onDialogDismiss(Dialog dialog) { @Override public boolean onBackPressed() { - if (currentViewNum == VIEW_PHONE_INPUT || activityMode == MODE_CHANGE_LOGIN_EMAIL && currentViewNum == VIEW_ADD_EMAIL) { + if (currentViewNum == VIEW_PHONE_INPUT || activityMode == MODE_CHANGE_LOGIN_EMAIL && currentViewNum == VIEW_ADD_EMAIL || activityMode == MODE_BALANCE_PASSWORD && currentViewNum == VIEW_PASSWORD) { for (int a = 0; a < views.length; a++) { if (views[a] != null) { views[a].onDestroyActivity(); @@ -4994,7 +5010,7 @@ public LoginActivityPasswordView(Context context) { titleView = new TextView(context); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); - titleView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + titleView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); titleView.setText(LocaleController.getString(R.string.YourPasswordHeader)); titleView.setGravity(Gravity.CENTER); titleView.setLineSpacing(AndroidUtilities.dp(2), 1.0f); @@ -5036,7 +5052,7 @@ public LoginActivityPasswordView(Context context) { cancelButton = new TextView(context); cancelButton.setGravity(Gravity.CENTER | Gravity.LEFT); - cancelButton.setText(LocaleController.getString("ForgotPassword", R.string.ForgotPassword)); + cancelButton.setText(LocaleController.getString(R.string.ForgotPassword)); cancelButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); cancelButton.setLineSpacing(AndroidUtilities.dp(2), 1.0f); cancelButton.setPadding(AndroidUtilities.dp(16), 0, AndroidUtilities.dp(16), 0); @@ -5046,73 +5062,83 @@ public LoginActivityPasswordView(Context context) { addView(bottomContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.BOTTOM)); VerticalPositionAutoAnimator.attach(cancelButton); - cancelButton.setOnClickListener(view -> { - if (radialProgressView.getTag() != null) { - return; + if (activityMode == MODE_BALANCE_PASSWORD) { + cancelButton.setVisibility(View.GONE); + currentPassword = LoginActivity.this.currentPassword; + if (currentPassword != null && !TextUtils.isEmpty(currentPassword.hint)) { + codeField.setHint(currentPassword.hint); + } else { + codeField.setHint(null); } - if (currentPassword.has_recovery) { - needShowProgress(0); - TLRPC.TL_auth_requestPasswordRecovery req = new TLRPC.TL_auth_requestPasswordRecovery(); - ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { - needHideProgress(false); - if (error == null) { - final TLRPC.TL_auth_passwordRecovery res = (TLRPC.TL_auth_passwordRecovery) response; - if (getParentActivity() == null) { - return; - } - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - - String rawPattern = res.email_pattern; - SpannableStringBuilder emailPattern = SpannableStringBuilder.valueOf(rawPattern); - int startIndex = rawPattern.indexOf('*'), endIndex = rawPattern.lastIndexOf('*'); - if (startIndex != endIndex && startIndex != -1 && endIndex != -1) { - TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); - run.flags |= TextStyleSpan.FLAG_STYLE_SPOILER; - run.start = startIndex; - run.end = endIndex + 1; - emailPattern.setSpan(new TextStyleSpan(run), startIndex, endIndex + 1, 0); - } - builder.setMessage(AndroidUtilities.formatSpannable(LocaleController.getString(R.string.RestoreEmailSent), emailPattern)); - builder.setTitle(LocaleController.getString("RestoreEmailSentTitle", R.string.RestoreEmailSentTitle)); - builder.setPositiveButton(LocaleController.getString(R.string.Continue), (dialogInterface, i) -> { - Bundle bundle = new Bundle(); - bundle.putString("email_unconfirmed_pattern", res.email_pattern); - bundle.putString("password", passwordString); - bundle.putString("requestPhone", requestPhone); - bundle.putString("phoneHash", phoneHash); - bundle.putString("phoneCode", phoneCode); - setPage(VIEW_RECOVER, true, bundle, false); - }); - Dialog dialog = showDialog(builder.create()); - if (dialog != null) { - dialog.setCanceledOnTouchOutside(false); - dialog.setCancelable(false); - } - } else { - if (error.text.startsWith("FLOOD_WAIT")) { - int time = Utilities.parseInt(error.text); - String timeString; - if (time < 60) { - timeString = LocaleController.formatPluralString("Seconds", time); - } else { - timeString = LocaleController.formatPluralString("Minutes", time / 60); + } else { + cancelButton.setOnClickListener(view -> { + if (radialProgressView.getTag() != null) { + return; + } + if (currentPassword.has_recovery) { + needShowProgress(0); + TLRPC.TL_auth_requestPasswordRecovery req = new TLRPC.TL_auth_requestPasswordRecovery(); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + needHideProgress(false); + if (error == null) { + final TLRPC.TL_auth_passwordRecovery res = (TLRPC.TL_auth_passwordRecovery) response; + if (getParentActivity() == null) { + return; + } + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + + String rawPattern = res.email_pattern; + SpannableStringBuilder emailPattern = SpannableStringBuilder.valueOf(rawPattern); + int startIndex = rawPattern.indexOf('*'), endIndex = rawPattern.lastIndexOf('*'); + if (startIndex != endIndex && startIndex != -1 && endIndex != -1) { + TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); + run.flags |= TextStyleSpan.FLAG_STYLE_SPOILER; + run.start = startIndex; + run.end = endIndex + 1; + emailPattern.setSpan(new TextStyleSpan(run), startIndex, endIndex + 1, 0); + } + builder.setMessage(AndroidUtilities.formatSpannable(LocaleController.getString(R.string.RestoreEmailSent), emailPattern)); + builder.setTitle(LocaleController.getString("RestoreEmailSentTitle", R.string.RestoreEmailSentTitle)); + builder.setPositiveButton(LocaleController.getString(R.string.Continue), (dialogInterface, i) -> { + Bundle bundle = new Bundle(); + bundle.putString("email_unconfirmed_pattern", res.email_pattern); + bundle.putString("password", passwordString); + bundle.putString("requestPhone", requestPhone); + bundle.putString("phoneHash", phoneHash); + bundle.putString("phoneCode", phoneCode); + setPage(VIEW_RECOVER, true, bundle, false); + }); + Dialog dialog = showDialog(builder.create()); + if (dialog != null) { + dialog.setCanceledOnTouchOutside(false); + dialog.setCancelable(false); } - needShowAlert(LocaleController.getString(R.string.WrongCodeTitle), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - needShowAlert(LocaleController.getString(R.string.RestorePasswordNoEmailTitle), error.text); + if (error.text.startsWith("FLOOD_WAIT")) { + int time = Utilities.parseInt(error.text); + String timeString; + if (time < 60) { + timeString = LocaleController.formatPluralString("Seconds", time); + } else { + timeString = LocaleController.formatPluralString("Minutes", time / 60); + } + needShowAlert(LocaleController.getString(R.string.WrongCodeTitle), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + } else { + needShowAlert(LocaleController.getString(R.string.RestorePasswordNoEmailTitle), error.text); + } } - } - }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); - } else { - AndroidUtilities.hideKeyboard(codeField); - new AlertDialog.Builder(context) - .setTitle(LocaleController.getString(R.string.RestorePasswordNoEmailTitle)) - .setMessage(LocaleController.getString(R.string.RestorePasswordNoEmailText)) - .setPositiveButton(LocaleController.getString(R.string.Close), null) - .setNegativeButton(LocaleController.getString(R.string.ResetAccount), (dialog, which) -> tryResetAccount(requestPhone, phoneHash, phoneCode)) - .show(); - } - }); + }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); + } else { + AndroidUtilities.hideKeyboard(codeField); + new AlertDialog.Builder(context) + .setTitle(LocaleController.getString(R.string.RestorePasswordNoEmailTitle)) + .setMessage(LocaleController.getString(R.string.RestorePasswordNoEmailText)) + .setPositiveButton(LocaleController.getString(R.string.Close), null) + .setNegativeButton(LocaleController.getString(R.string.ResetAccount), (dialog, which) -> tryResetAccount(requestPhone, phoneHash, phoneCode)) + .show(); + } + }); + } } @Override @@ -5180,6 +5206,10 @@ public void onNextPressed(String code) { return; } + if (currentPassword == null) { + return; + } + String oldPassword = codeField.getText().toString(); if (oldPassword.length() == 0) { onPasscodeError(false); @@ -5201,8 +5231,6 @@ public void onNextPressed(String code) { } - final TLRPC.TL_auth_checkPassword req = new TLRPC.TL_auth_checkPassword(); - RequestDelegate requestDelegate = (response, error) -> AndroidUtilities.runOnUIThread(() -> { nextPressed = false; if (error != null && "SRP_ID_INVALID".equals(error.text)) { @@ -5216,7 +5244,10 @@ public void onNextPressed(String code) { return; } - if (response instanceof TLRPC.TL_auth_authorization) { + if (response instanceof TL_stats.TL_broadcastRevenueWithdrawalUrl) { + passwordFinishCallback.run((TL_stats.TL_broadcastRevenueWithdrawalUrl) response, null); + finishFragment(); + } else if (response instanceof TLRPC.TL_auth_authorization) { showDoneButton(false, true); postDelayed(() -> { needHideProgress(false, false); @@ -5243,14 +5274,23 @@ public void onNextPressed(String code) { }); if (current_algo instanceof TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) { - req.password = SRPHelper.startCheck(x_bytes, currentPassword.srp_id, currentPassword.srp_B, (TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) current_algo); - if (req.password == null) { + TLRPC.TL_inputCheckPasswordSRP password = SRPHelper.startCheck(x_bytes, currentPassword.srp_id, currentPassword.srp_B, (TLRPC.TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow) current_algo); + if (password == null) { TLRPC.TL_error error = new TLRPC.TL_error(); error.text = "PASSWORD_HASH_INVALID"; requestDelegate.run(null, error); return; } - ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); + if (activityMode == MODE_BALANCE_PASSWORD) { + final TL_stats.TL_getBroadcastRevenueWithdrawalUrl req = new TL_stats.TL_getBroadcastRevenueWithdrawalUrl(); + req.channel = channel; + req.password = password; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); + } else { + final TLRPC.TL_auth_checkPassword req = new TLRPC.TL_auth_checkPassword(); + req.password = password; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); + } } }); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/MessageStatisticActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/MessageStatisticActivity.java index 4410043994..32a3f7b8fa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/MessageStatisticActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/MessageStatisticActivity.java @@ -55,6 +55,7 @@ import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; +import org.telegram.tgnet.tl.TL_stats; import org.telegram.tgnet.tl.TL_stories; import org.telegram.ui.ActionBar.ActionBar; import org.telegram.ui.ActionBar.ActionBarMenu; @@ -606,14 +607,14 @@ private void loadChats(int count) { listViewAdapter.notifyDataSetChanged(); } if (messageObject.isStory()) { - TLRPC.TL_stats_getStoryPublicForwards req = new TLRPC.TL_stats_getStoryPublicForwards(); + TL_stats.TL_getStoryPublicForwards req = new TL_stats.TL_getStoryPublicForwards(); req.limit = count; req.id = messageObject.storyItem.id; req.peer = getMessagesController().getInputPeer(-chatId); req.offset = nextOffset == null ? "" : nextOffset; int reqId = getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { if (error == null) { - TLRPC.TL_stats_publicForwards res = (TLRPC.TL_stats_publicForwards) response; + TL_stats.TL_publicForwards res = (TL_stats.TL_publicForwards) response; if ((res.flags & 1) != 0) { nextOffset = res.next_offset; } else { @@ -628,7 +629,7 @@ private void loadChats(int count) { getMessagesController().putChats(res.chats, false); getMessagesController().putUsers(res.users, false); - for (TLRPC.PublicForward forward : res.forwards) { + for (TL_stats.PublicForward forward : res.forwards) { if (forward instanceof TL_stories.TL_publicForwardStory) { TL_stories.TL_publicForwardStory forwardStory = (TL_stories.TL_publicForwardStory) forward; forwardStory.story.dialogId = DialogObject.getPeerDialogId(forwardStory.peer); @@ -636,8 +637,8 @@ private void loadChats(int count) { MessageObject msg = new MessageObject(currentAccount, forwardStory.story); msg.generateThumbs(false); messages.add(msg); - } else if (forward instanceof TLRPC.TL_publicForwardMessage) { - TLRPC.TL_publicForwardMessage forwardMessage = (TLRPC.TL_publicForwardMessage) forward; + } else if (forward instanceof TL_stats.TL_publicForwardMessage) { + TL_stats.TL_publicForwardMessage forwardMessage = (TL_stats.TL_publicForwardMessage) forward; messages.add(new MessageObject(currentAccount, forwardMessage.message, false, true)); } } @@ -653,7 +654,7 @@ private void loadChats(int count) { getConnectionsManager().bindRequestToGuid(reqId, classGuid); return; } - TLRPC.TL_stats_getMessagePublicForwards req = new TLRPC.TL_stats_getMessagePublicForwards(); + TL_stats.TL_getMessagePublicForwards req = new TL_stats.TL_getMessagePublicForwards(); req.limit = count; if (messageObject.messageOwner.fwd_from != null) { req.msg_id = messageObject.messageOwner.fwd_from.saved_from_msg_id; @@ -665,7 +666,7 @@ private void loadChats(int count) { req.offset = nextOffset == null ? "" : nextOffset; int reqId = getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { if (error == null) { - TLRPC.TL_stats_publicForwards res = (TLRPC.TL_stats_publicForwards) response; + TL_stats.TL_publicForwards res = (TL_stats.TL_publicForwards) response; if ((res.flags & 1) != 0) { nextOffset = res.next_offset; } else { @@ -680,7 +681,7 @@ private void loadChats(int count) { getMessagesController().putChats(res.chats, false); getMessagesController().putUsers(res.users, false); - for (TLRPC.PublicForward forward : res.forwards) { + for (TL_stats.PublicForward forward : res.forwards) { if (forward instanceof TL_stories.TL_publicForwardStory) { TL_stories.TL_publicForwardStory forwardStory = (TL_stories.TL_publicForwardStory) forward; forwardStory.story.dialogId = DialogObject.getPeerDialogId(forwardStory.peer); @@ -688,8 +689,8 @@ private void loadChats(int count) { MessageObject msg = new MessageObject(currentAccount, forwardStory.story); msg.generateThumbs(false); messages.add(msg); - } else if (forward instanceof TLRPC.TL_publicForwardMessage) { - TLRPC.TL_publicForwardMessage forwardMessage = (TLRPC.TL_publicForwardMessage) forward; + } else if (forward instanceof TL_stats.TL_publicForwardMessage) { + TL_stats.TL_publicForwardMessage forwardMessage = (TL_stats.TL_publicForwardMessage) forward; messages.add(new MessageObject(currentAccount, forwardMessage.message, false, true)); } } @@ -713,7 +714,7 @@ private void loadStat() { req.peer = getMessagesController().getInputPeer(-chatId); reqObject = req; } else { - TLRPC.TL_stats_getMessageStats req = new TLRPC.TL_stats_getMessageStats(); + TL_stats.TL_getMessageStats req = new TL_stats.TL_getMessageStats(); if (messageObject.messageOwner.fwd_from != null) { req.msg_id = messageObject.messageOwner.fwd_from.saved_from_msg_id; req.channel = getMessagesController().getInputChannel(-messageObject.getFromChatId()); @@ -731,14 +732,14 @@ private void loadStat() { return; } - TLRPC.StatsGraph views_graph; - TLRPC.StatsGraph reactions_by_emotion_graph; + TL_stats.StatsGraph views_graph; + TL_stats.StatsGraph reactions_by_emotion_graph; if (response instanceof TL_stories.TL_stats_storyStats) { TL_stories.TL_stats_storyStats res = (TL_stories.TL_stats_storyStats) response; views_graph = res.views_graph; reactions_by_emotion_graph = res.reactions_by_emotion_graph; } else { - TLRPC.TL_stats_messageStats res = (TLRPC.TL_stats_messageStats) response; + TL_stats.TL_messageStats res = (TL_stats.TL_messageStats) response; views_graph = res.views_graph; reactions_by_emotion_graph = res.reactions_by_emotion_graph; } @@ -747,7 +748,7 @@ private void loadStat() { reactionsByEmotionData = StatisticActivity.createViewData(reactions_by_emotion_graph, LocaleController.getString("ReactionsByEmotionChartTitle", R.string.ReactionsByEmotionChartTitle), 2, false); if (interactionsViewData != null && interactionsViewData.chartData.x.length <= 5) { statsLoaded = false; - TLRPC.TL_stats_loadAsyncGraph request = new TLRPC.TL_stats_loadAsyncGraph(); + TL_stats.TL_loadAsyncGraph request = new TL_stats.TL_loadAsyncGraph(); request.token = interactionsViewData.zoomToken; request.x = interactionsViewData.chartData.x[interactionsViewData.chartData.x.length - 1]; request.flags |= 1; @@ -755,17 +756,17 @@ private void loadStat() { final String cacheKey = interactionsViewData.zoomToken + "_" + request.x; int reqId = ConnectionsManager.getInstance(currentAccount).sendRequest(request, (response1, error1) -> { ChartData childData = null; - if (response1 instanceof TLRPC.TL_statsGraph) { - String json = ((TLRPC.TL_statsGraph) response1).json.data; + if (response1 instanceof TL_stats.TL_statsGraph) { + String json = ((TL_stats.TL_statsGraph) response1).json.data; try { childData = StatisticActivity.createChartData(new JSONObject(json), 1, false); } catch (JSONException e) { e.printStackTrace(); } - } else if (response1 instanceof TLRPC.TL_statsGraphError) { + } else if (response1 instanceof TL_stats.TL_statsGraphError) { AndroidUtilities.runOnUIThread(() -> { if (getParentActivity() != null) { - Toast.makeText(getParentActivity(), ((TLRPC.TL_statsGraphError) response1).error, Toast.LENGTH_LONG).show(); + Toast.makeText(getParentActivity(), ((TL_stats.TL_statsGraphError) response1).error, Toast.LENGTH_LONG).show(); } }); } @@ -874,7 +875,7 @@ public void onZoomed() { return; } - TLRPC.TL_stats_loadAsyncGraph request = new TLRPC.TL_stats_loadAsyncGraph(); + TL_stats.TL_loadAsyncGraph request = new TL_stats.TL_loadAsyncGraph(); request.token = data.zoomToken; if (x != 0) { request.x = x; @@ -888,15 +889,15 @@ public void onZoomed() { int reqId = ConnectionsManager.getInstance(currentAccount).sendRequest(request, (response, error) -> { ChartData childData = null; - if (response instanceof TLRPC.TL_statsGraph) { - String json = ((TLRPC.TL_statsGraph) response).json.data; + if (response instanceof TL_stats.TL_statsGraph) { + String json = ((TL_stats.TL_statsGraph) response).json.data; try { childData = StatisticActivity.createChartData(new JSONObject(json), data.graphType, false); } catch (JSONException e) { e.printStackTrace(); } - } else if (response instanceof TLRPC.TL_statsGraphError) { - Toast.makeText(getContext(), ((TLRPC.TL_statsGraphError) response).error, Toast.LENGTH_LONG).show(); + } else if (response instanceof TL_stats.TL_statsGraphError) { + Toast.makeText(getContext(), ((TL_stats.TL_statsGraphError) response).error, Toast.LENGTH_LONG).show(); } ChartData finalChildData = childData; @@ -933,7 +934,7 @@ public void zoomCanceled() { } @Override - void loadData(StatisticActivity.ChartViewData viewData) { + protected void loadData(StatisticActivity.ChartViewData viewData) { // viewData.load(currentAccount, classGuid, ); } }; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/MultiContactsSelectorBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/MultiContactsSelectorBottomSheet.java index 9bcf578729..763db02bb0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/MultiContactsSelectorBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/MultiContactsSelectorBottomSheet.java @@ -483,7 +483,7 @@ protected CharSequence getTitle() { } @Override - protected RecyclerListView.SelectionAdapter createAdapter() { + protected RecyclerListView.SelectionAdapter createAdapter(RecyclerListView listView) { selectorAdapter = new SelectorAdapter(getContext(), resourcesProvider); selectorAdapter.setGreenSelector(true); return selectorAdapter; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java index 6df3afe791..7779d9cf69 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java @@ -22,7 +22,6 @@ import android.graphics.PorterDuffColorFilter; import android.graphics.Typeface; import android.graphics.drawable.Drawable; -import android.hardware.biometrics.BiometricManager; import android.os.Build; import android.text.Editable; import android.text.InputType; @@ -51,6 +50,7 @@ import androidx.annotation.IntDef; import androidx.annotation.NonNull; +import androidx.biometric.BiometricManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -63,7 +63,6 @@ import org.telegram.messenger.SharedConfig; import org.telegram.messenger.UserConfig; import org.telegram.messenger.Utilities; -import org.telegram.messenger.support.fingerprint.FingerprintManagerCompat; import org.telegram.ui.ActionBar.ActionBar; import org.telegram.ui.ActionBar.ActionBarMenu; import org.telegram.ui.ActionBar.ActionBarMenuItem; @@ -897,22 +896,15 @@ private void updateRows() { changePasscodeRow = rowCount++; try { if (Build.VERSION.SDK_INT >= 23) { - boolean useBiometric; - if (Build.VERSION.SDK_INT >= 29) { - BiometricManager biometricManager = (BiometricManager) ApplicationLoader.applicationContext.getSystemService(Context.BIOMETRIC_SERVICE); - if (Build.VERSION.SDK_INT >= 30) { - useBiometric = biometricManager.canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_WEAK) == BiometricManager.BIOMETRIC_SUCCESS; - } else { - useBiometric = biometricManager.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS; - } + if ( + BiometricManager.from(getContext()).canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG) == BiometricManager.BIOMETRIC_SUCCESS && + AndroidUtilities.isKeyguardSecure() + ) { + fingerprintRow = rowCount++; } else { - FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.from(ApplicationLoader.applicationContext); - useBiometric = fingerprintManager.isHardwareDetected(); + fingerprintRow = -1; } - if (useBiometric) { - fingerprintRow = rowCount++; - } else fingerprintRow = -1; - } + } else fingerprintRow = -1; } catch (Throwable e) { FileLog.e(e); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PeerColorActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PeerColorActivity.java index 1c1ebe89a3..f8bcc8ccea 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PeerColorActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PeerColorActivity.java @@ -28,8 +28,12 @@ import android.graphics.Shader; import android.graphics.drawable.Drawable; import android.os.Build; +import android.text.Spannable; +import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.Spanned; +import android.text.style.DynamicDrawableSpan; +import android.text.style.ImageSpan; import android.text.style.ReplacementSpan; import android.util.SparseIntArray; import android.util.TypedValue; @@ -1337,6 +1341,18 @@ public int getIntrinsicHeight() { } } + public static CharSequence withLevelLock(CharSequence text, int lvl) { + if (lvl <= 0) return text; + final Context context = ApplicationLoader.applicationContext; + SpannableStringBuilder ssb = new SpannableStringBuilder(text); + ssb.append(" L"); + LevelLock drawable = new LevelLock(context, lvl, null); + ColoredImageSpan span = new ColoredImageSpan(drawable); + span.setTranslateY(dp(1)); + ssb.setSpan(span, ssb.length() - 1, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + return ssb; + } + public static class ChangeNameColorCell extends View { private final int currentAccount; private final boolean isChannelOrGroup; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java index c3897f10ad..243504b051 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java @@ -40,6 +40,7 @@ import android.graphics.Paint; import android.graphics.Path; import android.graphics.PixelFormat; +import android.graphics.PointF; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.PorterDuffXfermode; @@ -180,6 +181,7 @@ import org.telegram.messenger.browser.Browser; import org.telegram.messenger.utils.PhotoUtilities; import org.telegram.messenger.camera.Size; +import org.telegram.messenger.video.MediaCodecVideoConvertor; import org.telegram.messenger.video.VideoPlayerRewinder; import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLObject; @@ -232,6 +234,9 @@ import org.telegram.ui.Components.OptionsSpeedIconDrawable; import org.telegram.ui.Components.OtherDocumentPlaceholderDrawable; import org.telegram.ui.Components.Paint.Views.LPhotoPaintView; +import org.telegram.ui.Components.Paint.Views.StickerCutOutBtn; +import org.telegram.ui.Components.Paint.Views.StickerMakerView; +import org.telegram.ui.Components.Paint.Views.StickerMakerBackgroundView; import org.telegram.ui.Components.PaintingOverlay; import org.telegram.ui.Components.PhotoCropView; import org.telegram.ui.Components.PhotoFilterView; @@ -251,6 +256,7 @@ import org.telegram.ui.Components.SpeedIconDrawable; import org.telegram.ui.Components.StickersAlert; import org.telegram.ui.Components.TextViewSwitcher; +import org.telegram.ui.Components.ThanosEffect; import org.telegram.ui.Components.Tooltip; import org.telegram.ui.Components.TranslateAlert2; import org.telegram.ui.Components.URLSpanReplacement; @@ -266,6 +272,7 @@ import org.telegram.ui.Components.spoilers.SpoilersTextView; import org.telegram.ui.Stories.DarkThemeResourceProvider; import org.telegram.ui.Stories.recorder.KeyboardNotifier; +import org.telegram.ui.Stories.recorder.StoryEntry; import java.io.ByteArrayInputStream; import java.io.File; @@ -1026,6 +1033,7 @@ public void run() { public final static int SELECT_TYPE_AVATAR = 1; public final static int SELECT_TYPE_WALLPAPER = 3; public final static int SELECT_TYPE_QR = 10; + public final static int SELECT_TYPE_STICKER = 11; VideoPlayerRewinder videoPlayerRewinder = new VideoPlayerRewinder() { @Override @@ -1822,7 +1830,14 @@ public void restore() { private PaintingOverlay leftPaintingOverlay; private PaintingOverlay rightPaintingOverlay; private ImageReceiver leftImage = new ImageReceiver(); - private ImageReceiver centerImage = new ImageReceiver(); + private ImageReceiver centerImage = new ImageReceiver() { + @Override + protected boolean setImageBitmapByKey(Drawable drawable, String key, int type, boolean memCache, int guid) { + boolean result = super.setImageBitmapByKey(drawable, key, type, memCache, guid); + prepareSegmentImage(); + return result; + } + }; private ImageReceiver rightImage = new ImageReceiver(); private BlurringShader.ThumbBlurer leftBlur = new BlurringShader.ThumbBlurer(1, this::invalidateBlur); private BlurringShader.ThumbBlurer centerBlur = new BlurringShader.ThumbBlurer(1, this::invalidateBlur); @@ -1830,6 +1845,8 @@ public void restore() { private boolean leftImageIsVideo; private boolean centerImageIsVideo; private boolean rightImageIsVideo; + private boolean centerImageTransformLocked = false; + private Matrix centerImageTransform = new Matrix(); private Paint videoFrameBitmapPaint = new Paint(); private Bitmap videoFrameBitmap = null; private int currentIndex; @@ -1855,6 +1872,9 @@ public void restore() { boolean fromCamera; private boolean captionTranslated; private String captionDetectedLanguage; + private StickerMakerView stickerMakerView; + private StickerMakerBackgroundView stickerMakerBackgroundView; + private StickerCutOutBtn cutOutBtn; private long avatarsDialogId; private boolean canEditAvatar; @@ -2815,6 +2835,7 @@ public FrameLayoutDrawer(Context context, Activity activity) { super(context, activity, false); setWillNotDraw(false); paint.setColor(0x33000000); + setLayerType(LAYER_TYPE_HARDWARE, null); } @Override @@ -3838,6 +3859,8 @@ public void didReceivedNotification(int id, int account, Object... args) { break; } } + } else if (id == NotificationCenter.customStickerCreated) { + closePhoto(false, false); } else if (id == NotificationCenter.fileLoaded) { String location = (String) args[0]; for (int a = 0; a < 3; a++) { @@ -4470,7 +4493,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto wasLayout = true; if (changed) { if (!dontResetZoomOnFirstLayout) { - scale = 1; + scale = scale1(); translationX = 0; translationY = 0; updateMinMax(scale); @@ -4531,6 +4554,10 @@ public boolean dispatchKeyEventPreIme(KeyEvent event) { closeCaptionEnter(true); return false; } + if (ContentPreviewViewer.getInstance().isVisible()) { + ContentPreviewViewer.getInstance().closeWithMenu(); + return false; + } PhotoViewer.getInstance().closePhoto(true, false); return true; } @@ -4539,6 +4566,15 @@ public boolean dispatchKeyEventPreIme(KeyEvent event) { @Override protected void onDraw(Canvas canvas) { + if (stickerMakerBackgroundView != null) { + View parent = (View) stickerMakerBackgroundView.getParent(); + float alpha = Math.min(stickerMakerBackgroundView.getAlpha(), parent != null ? parent.getAlpha() : 1f); + if (alpha > 0) { + canvas.saveLayerAlpha(0, 0, getWidth(), getHeight(), (int) alpha * 255, Canvas.ALL_SAVE_FLAG); + stickerMakerBackgroundView.draw(canvas); + canvas.restore(); + } + } if (Build.VERSION.SDK_INT >= 21 && isVisible) { blackPaint.setAlpha(backgroundDrawable.getAlpha()); canvas.drawRect(0, getMeasuredHeight(), getMeasuredWidth(), getMeasuredHeight() + insets.bottom, blackPaint); @@ -4590,7 +4626,7 @@ public boolean dispatchTouchEvent(MotionEvent ev) { @Override protected boolean drawChild(Canvas canvas, View child, long drawingTime) { View overlay = textSelectionHelper.getOverlayView(windowView.getContext()); - if (child == overlay) { + if (child == overlay || child == stickerMakerBackgroundView) { return false; } return super.drawChild(canvas, child, drawingTime); @@ -5659,7 +5695,7 @@ protected void dispatchDraw(Canvas canvas) { containerView.addView(bottomLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM | Gravity.LEFT)); navigationBar = new View(activityContext); - navigationBar.setBackgroundColor(0x7f000000); + navigationBar.setBackgroundColor((sendPhotoType == SELECT_TYPE_STICKER ? 0xFF000000 : 0x7f000000)); windowView.addView(navigationBar, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, navigationBarHeight / AndroidUtilities.density, Gravity.BOTTOM | Gravity.FILL_HORIZONTAL)); pressedDrawable[0] = new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT, new int[]{0x32000000, 0}); @@ -5939,6 +5975,15 @@ public void setAlpha(float alpha) { if (captionEdit != null && captionEdit.getVisibility() != GONE) { captionEdit.setAlpha(alpha); } + if (cutOutBtn != null && cutOutBtn.getVisibility() != GONE) { + cutOutBtn.setAlpha(alpha); + } + if (stickerMakerView != null && stickerMakerView.getVisibility() != GONE) { + stickerMakerView.setAlpha(alpha); + } + if (stickerMakerBackgroundView != null && stickerMakerBackgroundView.getVisibility() != GONE) { + stickerMakerBackgroundView.setAlpha(alpha); + } } @Override @@ -6258,7 +6303,131 @@ public void invalidate() { placeProvider.needAddMorePhotos(); closePhoto(true, false); }); + + stickerMakerBackgroundView = new StickerMakerBackgroundView(activityContext) { + @Override + public void setAlpha(float alpha) { + super.setAlpha(alpha); + windowView.invalidate(); + } + }; + containerView.addView(stickerMakerBackgroundView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT, 0, 0, 0, 0)); + stickerMakerView = new StickerMakerView(activityContext, resourcesProvider); + + stickerMakerView.setCurrentAccount(currentAccount); + containerView.addView(stickerMakerView, containerView.indexOfChild(actionBar) - 1, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT, 0, 0, 0, 0)); + cutOutBtn = new StickerCutOutBtn(stickerMakerView, activityContext, resourcesProvider, blurManager) { + private final Path path = new Path(); + + @Override + protected void onDraw(Canvas canvas) { + canvas.save(); + path.rewind(); + path.addRoundRect(bounds, dp(8), dp(8), Path.Direction.CW); + canvas.clipPath(path); + canvas.translate(-getX(), -getY()); + drawCaptionBlur(canvas, blurDrawer, 0xFF2b2b2b, 0x33000000, false, true, false); + canvas.restore(); + super.onDraw(canvas); + } + }; + stickerMakerView.setStickerCutOutBtn(cutOutBtn); + cutOutBtn.setOnClickListener(v -> { + if (cutOutBtn.isLoading()) { + return; + } + if (currentIndex < 0 || currentIndex >= imagesArrLocals.size() || stickerMakerView.isThanosInProgress) { + return; + } + MediaController.MediaEditState entry = (MediaController.MediaEditState) imagesArrLocals.get(currentIndex); + boolean hasFilters = !TextUtils.isEmpty(entry.filterPath); + if (cutOutBtn.isCutOutState()) { + cutOutBtn.setCancelState(true); + stickerMakerView.enableClippingMode(segmentedObject -> { + if (stickerMakerView.hasSegmentedBitmap()) { + ThanosEffect thanosEffect = stickerMakerView.getThanosEffect(); + stickerMakerView.setSegmentedState(true, segmentedObject); + Bitmap segmentedImage = stickerMakerView.getSegmentedImage(centerImage.getBitmap(), hasFilters, centerImage.getOrientation()); + + Object object = imagesArrLocals.get(currentIndex); + MediaController.PhotoEntry photoEntry = ((MediaController.PhotoEntry) object); + + if (thanosEffect == null/* || photoEntry.isCropped || centerImage.getOrientation() == 180*/) { + centerImage.setImageBitmap(segmentedImage); + cutOutBtn.setUndoCutState(true); + cutOutBtn.postDelayed(this::applyCurrentEditMode, 250); + return; + } + + Bitmap bitmap = stickerMakerView.getThanosImage(photoEntry, centerImage.getOrientation()); + if (bitmap == null) { + centerImage.setImageBitmap(segmentedImage); + cutOutBtn.setUndoCutState(true); + cutOutBtn.postDelayed(this::applyCurrentEditMode, 250); + return; + } + if (entry.cropState != null) { + bitmap = createCroppedBitmap(bitmap, entry.cropState, new int[]{centerImage.getOrientation(), centerImage.getInvert()}, true); + } + + Matrix matrix = new Matrix(); + float w = getContainerViewWidth(), h = stickerMakerView.getSegmentBorderImageHeight(); + float tx = 0, ty = 0; + if (centerImage.getOrientation() != 0 && !photoEntry.isCropped) { + final float bw = bitmap.getWidth(); + final float bh = bitmap.getHeight(); + final float r = (float) Math.sqrt((bw / 2f) * (bw / 2f) + (bh / 2f) * (bh / 2f)); + final float d = 2 * r; + Bitmap newBitmap = Bitmap.createBitmap((int) d, (int) d, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(newBitmap); + canvas.save(); + canvas.rotate(centerImage.getOrientation(), r, r); + canvas.drawBitmap(bitmap, (d - bw) / 2, (d - bh) / 2, null); + bitmap.recycle(); + bitmap = newBitmap; + + final float pd = 2 * (float) Math.sqrt((w / 2f) * (w / 2f) + (h / 2f) * (h / 2f)); + tx = -(pd - w) / 2; + ty = -(pd - h) / 2; + w = pd; + h = pd; + } + matrix.postScale(w, h); + matrix.postScale(scale, scale, w / 2f, h / 2f); + int marginTop = (int) ((getContainerViewHeight() - stickerMakerView.getSegmentBorderImageHeight()) / 2f); + matrix.postTranslate(translationX + tx, translationY + ty + marginTop); + stickerMakerView.isThanosInProgress = true; + thanosEffect.animate(matrix, bitmap, () -> { + centerImage.setImageBitmap(segmentedImage); + cutOutBtn.setUndoCutState(true); + cutOutBtn.postDelayed(() -> { + applyCurrentEditMode(); + stickerMakerView.isThanosInProgress = false; + }, 1000); + }, () -> {}); + } else { + cutOutBtn.setCutOutState(true); + } + stickerMakerView.disableClippingMode(); + containerView.invalidate(); + }); + containerView.invalidate(); + } else if (cutOutBtn.isCancelState()) { + cutOutBtn.setCutOutState(true); + stickerMakerView.disableClippingMode(); + containerView.invalidate(); + } else { + stickerMakerView.setSegmentedState(false, null); + centerImage.setImageBitmap(stickerMakerView.getSourceBitmap(hasFilters)); + cutOutBtn.setCutOutState(true); + cutOutBtn.postDelayed(this::applyCurrentEditMode, 250); + } + }); + cutOutBtn.setCutOutState(false); + containerView.addView(cutOutBtn, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM | Gravity.LEFT, 10, 0, 10, 48 + 24)); + showEditCaption(false, false); + showStickerMode(false, false); captionEditContainer = new FrameLayout(parentActivity) { @Override @@ -6307,7 +6476,7 @@ public void setTranslationY(float translationY) { if (placeProvider != null && !placeProvider.allowSendingSubmenu()) { return false; } - boolean isStoryViewer = parentFragment != null && parentFragment.storyViewer != null && parentFragment.storyViewer.isShown(); + boolean isStoryViewer = parentFragment != null && parentFragment.getLastStoryViewer() != null; if (!isStoryViewer && (parentChatActivity == null || parentChatActivity.isInScheduleMode())) { return false; } @@ -6542,6 +6711,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { cropItem.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_WHITE_SELECTOR_COLOR)); itemsLayout.addView(cropItem, LayoutHelper.createLinear(48, 48)); cropItem.setOnClickListener(v -> { + cancelStickerClippingMode(); if (isCaptionOpen()) { return; } @@ -6584,6 +6754,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { paintItem.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_WHITE_SELECTOR_COLOR)); itemsLayout.addView(paintItem, LayoutHelper.createLinear(48, 48)); paintItem.setOnClickListener(v -> { + cancelStickerClippingMode(); if (isCaptionOpen()) { return; } @@ -6657,6 +6828,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { tuneItem.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_WHITE_SELECTOR_COLOR)); itemsLayout.addView(tuneItem, LayoutHelper.createLinear(48, 48)); tuneItem.setOnClickListener(v -> { + cancelStickerClippingMode(); if (isCaptionOpen()) { return; } @@ -6687,7 +6859,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { return; } Runnable onEnd = () -> { - cropTransform.setViewTransform(previousHasTransform, previousCropPx, previousCropPy, previousCropRotation, previousCropOrientation, previousCropScale, 1.0f, 1.0f, previousCropPw, previousCropPh, 0, 0, previousCropMirrored); + cropTransform.setViewTransform(previousHasTransform, previousCropPx, previousCropPy, previousCropRotation, previousCropOrientation, previousCropScale, scale1(), scale1(), previousCropPw, previousCropPh, 0, 0, previousCropMirrored); // if (previousHasTransform) { // editState.cropState = new MediaController.CropState(); // editState.cropState.cropPx = previousCropPx; @@ -6749,10 +6921,10 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { ImageReceiver.ImageReceiverDelegate imageReceiverDelegate = (imageReceiver, set, thumb, memCache) -> { if (imageReceiver == centerImage && set && !thumb) { - if (!isCurrentVideo && (currentEditMode == EDIT_MODE_CROP || sendPhotoType == SELECT_TYPE_AVATAR) && photoCropView != null) { + if (!isCurrentVideo && (currentEditMode == EDIT_MODE_CROP || sendPhotoType == SELECT_TYPE_AVATAR || sendPhotoType == SELECT_TYPE_STICKER) && photoCropView != null) { Bitmap bitmap = imageReceiver.getBitmap(); if (bitmap != null) { - photoCropView.setBitmap(bitmap, imageReceiver.getOrientation(), sendPhotoType != SELECT_TYPE_AVATAR, true, paintingOverlay, cropTransform, null, null); + photoCropView.setBitmap(bitmap, imageReceiver.getOrientation(), sendPhotoType != SELECT_TYPE_AVATAR && sendPhotoType != SELECT_TYPE_STICKER, true, paintingOverlay, cropTransform, null, null); } } if (paintingOverlay.getVisibility() == View.VISIBLE) { @@ -6760,7 +6932,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } detectFaces(); } - if (imageReceiver == centerImage && set && placeProvider != null && placeProvider.scaleToFill() && !ignoreDidSetImage && sendPhotoType != SELECT_TYPE_AVATAR) { + if (imageReceiver == centerImage && set && placeProvider != null && placeProvider.scaleToFill() && !ignoreDidSetImage && sendPhotoType != SELECT_TYPE_AVATAR && sendPhotoType != SELECT_TYPE_STICKER) { if (!wasLayout) { dontResetZoomOnFirstLayout = true; } else { @@ -7130,6 +7302,146 @@ public void onDismiss(DialogInterface dialog) { } } if (!replace) { + if (sendPhotoType == SELECT_TYPE_STICKER) { + Object object = imagesArrLocals.get(currentIndex); + if (object instanceof MediaController.PhotoEntry) { + int stickerMaxSize = 512; + MediaController.PhotoEntry photoEntry = ((MediaController.PhotoEntry) object); + String path = photoEntry.imagePath != null ? photoEntry.imagePath : photoEntry.path; + Bitmap paintBitmap = BitmapFactory.decodeFile(path); + Bitmap canvasBitmap = Bitmap.createBitmap(stickerMaxSize, stickerMaxSize, Bitmap.Config.ARGB_8888); + + float scaleImage = Math.min( + (float) getContainerViewWidth() / paintBitmap.getWidth(), + (float) getContainerViewHeight() / paintBitmap.getHeight() + ) / (getContainerViewWidth() - dp(20)) * canvasBitmap.getWidth() * scale; + float scaleContainer = (float) canvasBitmap.getWidth() / (getContainerViewWidth() - dp(20)); + + Canvas canvas = new Canvas(canvasBitmap); + Matrix matrix = new Matrix(); + + if (centerImage.getOrientation() != 0 && !(photoEntry.isPainted || photoEntry.isCropped)) { + float cx = paintBitmap.getWidth() / 2f; + float cy = paintBitmap.getHeight() / 2f; + matrix.postRotate(centerImage.getOrientation(), cx, cy); + float scaleFactor = paintBitmap.getWidth() / (float) paintBitmap.getHeight(); + matrix.postScale(scaleFactor, scaleFactor, cx, cy); + } + + matrix.postScale(scaleImage, scaleImage); + float newSrcImgWidth = paintBitmap.getWidth() * scaleImage; + float newSrcImgHeight = paintBitmap.getHeight() * scaleImage; + float dyToCenter = -(newSrcImgHeight - canvasBitmap.getHeight()) / 2; + float dxToCenter = -(newSrcImgWidth - canvasBitmap.getWidth()) / 2; + matrix.postTranslate(dxToCenter, dyToCenter); + + matrix.postTranslate(translationX * scaleContainer, translationY * scaleContainer); + Path clipPath = new Path(); + RectF clipRect = new RectF(); + clipRect.set(0, 0, canvasBitmap.getWidth(), canvasBitmap.getHeight()); + int r = canvasBitmap.getWidth() / 8; + clipPath.addRoundRect(clipRect, r, r, Path.Direction.CW); + canvas.clipPath(clipPath); + canvas.drawBitmap(paintBitmap, matrix, new Paint(Paint.FILTER_BITMAP_FLAG)); + + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(canvasBitmap, Bitmap.CompressFormat.WEBP, stickerMaxSize, stickerMaxSize, 100, false, 101, 101); + final String fullStickerPath = FileLoader.getInstance(UserConfig.selectedAccount).getPathToAttach(size, "webp", true).toString(); + + VideoEditedInfo videoEditedInfo1 = null; + if (hasAnimatedMediaEntities()) { + ArrayList entities = new ArrayList<>(); + for (VideoEditedInfo.MediaEntity entity : photoEntry.mediaEntities) { + VideoEditedInfo.MediaEntity e = entity.copy(); + AndroidUtilities.rectTmp.set( + e.x * paintBitmap.getWidth(), + e.y * paintBitmap.getHeight(), + (e.x + e.width) * paintBitmap.getWidth(), + (e.y + e.height) * paintBitmap.getHeight() + ); + matrix.mapRect(AndroidUtilities.rectTmp); + e.x = AndroidUtilities.rectTmp.left / canvasBitmap.getWidth(); + e.y = AndroidUtilities.rectTmp.top / canvasBitmap.getHeight(); + e.width = AndroidUtilities.rectTmp.width() / canvasBitmap.getWidth(); + e.height = AndroidUtilities.rectTmp.height() / canvasBitmap.getHeight(); + e.scale *= scaleImage; + entities.add(e); + } + videoEditedInfo1 = new VideoEditedInfo(); + videoEditedInfo1.originalPath = fullStickerPath; + videoEditedInfo1.isPhoto = true; + videoEditedInfo1.originalWidth = videoEditedInfo1.resultWidth = stickerMaxSize; + videoEditedInfo1.originalHeight = videoEditedInfo1.resultHeight = stickerMaxSize; + videoEditedInfo1.mediaEntities = entities; + videoEditedInfo1.originalDuration = videoEditedInfo1.estimatedDuration = Utilities.clamp(photoEntry.averageDuration, 2800L, 800L); + videoEditedInfo1.bitrate = (int) (255 * 1024 * 8 / (videoEditedInfo1.originalDuration / 1000.0) * 0.24); + videoEditedInfo1.framerate = 30; + videoEditedInfo1.isSticker = true; + videoEditedInfo1.estimatedSize = 256 * 1024 * 8; + } + if (photoEntry.thumbPath != null) { + try { + new File(photoEntry.thumbPath).delete(); + } catch (Exception e) { + FileLog.e(e); + } + photoEntry.thumbPath = null; + } + if (photoEntry.fullPaintPath != null) { + try { + Bitmap paintBitmap2 = BitmapFactory.decodeFile(photoEntry.fullPaintPath); + canvas.drawBitmap(paintBitmap2, matrix, new Paint(Paint.FILTER_BITMAP_FLAG)); + paintBitmap2.recycle(); + } catch (Exception e) { + FileLog.e(e); + } + } + size = ImageLoader.scaleAndSaveImage(canvasBitmap, getCompressFormat(), thumbSize, thumbSize, 83, false, 101, 101); + + photoEntry.thumbPath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); + VideoEditedInfo finalVideoEditedInfo = videoEditedInfo1; + + doneButtonPressed = false; + ContentPreviewViewer.getInstance().showCustomStickerActions(fullStickerPath, videoEditedInfo1, stickerMakerView, new ContentPreviewViewer.ContentPreviewViewerDelegate() { + @Override + public void sendSticker() { + photoEntry.imagePath = fullStickerPath; + placeProvider.sendButtonPressed(currentIndex, finalVideoEditedInfo, notify, scheduleDate, forceDocument); + NotificationCenter.getInstance(UserConfig.selectedAccount).postNotificationNameOnUIThread(NotificationCenter.customStickerCreated, true); + } + + @Override + public void addToFavoriteSelected(String emoji) { + stickerMakerView.uploadStickerFile(fullStickerPath, finalVideoEditedInfo, emoji, null, true, null, null); + } + + @Override + public void stickerSetSelected(TLRPC.StickerSet stickerSet, String emoji) { + stickerMakerView.uploadStickerFile(fullStickerPath, finalVideoEditedInfo, emoji, null, false, stickerSet, replacedSticker); + } + + @Override + public void newStickerPackSelected(CharSequence short_name, CharSequence name, String emoji) { + stickerMakerView.uploadStickerFile(fullStickerPath, finalVideoEditedInfo, emoji, name, false, null, null, short_name); + } + + @Override + public boolean isReplacedSticker() { + return replacedSticker != null; + } + + @Override + public long getDialogId() { + return currentDialogId; + } + + @Override + public boolean isStickerEditor() { + return true; + } + }); + return; + } + } placeProvider.sendButtonPressed(currentIndex, videoEditedInfo, notify, scheduleDate, forceDocument); } else { placeProvider.replaceButtonPressed(currentIndex, videoEditedInfo); @@ -7199,6 +7511,15 @@ private void showForward(ArrayList fmessages, boolean noQuote) { ((LaunchActivity) parentActivity).presentFragment(fragment, false, true); } + private String getTempFileAbsolutePath() { + File file = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); + return file.getAbsolutePath(); + } + + private Bitmap.CompressFormat getCompressFormat() { + return sendPhotoType == SELECT_TYPE_STICKER ? Bitmap.CompressFormat.PNG : Bitmap.CompressFormat.JPEG; + } + private boolean isCaptionOpen() { return ( captionEdit != null && @@ -7848,6 +8169,15 @@ private boolean cropRotate(float diff) { return cropRotate(diff, false, null); } + private float scale1() { + if (sendPhotoType == SELECT_TYPE_STICKER) { + int width = getContainerViewWidth(); + if (width == 0) width = AndroidUtilities.displaySize.x; + return (width - dp(20) + 1) / (float) width; + } + return 1f; + } + private boolean cropRotate(final float diff, boolean restoreMirror, Runnable onEnd) { if (imageMoveAnimation != null) { return false; @@ -7865,7 +8195,7 @@ private boolean cropRotate(final float diff, boolean restoreMirror, Runnable onE animationStartTime = System.currentTimeMillis(); imageMoveAnimation = new AnimatorSet(); if (sendPhotoType == SELECT_TYPE_AVATAR) { - animateToScale = 1; + scale = animateToScale = 1f; } else if (centerImage != null) { int bitmapWidth = centerImage.getBitmapWidth(), bitmapHeight = centerImage.getBitmapHeight(); if (Math.abs((int) photoCropView.cropView.getStateOrientation() / 90 % 2) == 1) { @@ -7884,6 +8214,10 @@ private boolean cropRotate(final float diff, boolean restoreMirror, Runnable onE } animateToScale = newScale / oldScale; } + if (sendPhotoType == SELECT_TYPE_STICKER) { + scale *= scale1(); + animateToScale *= scale1(); + } ValueAnimator areaRotateAnimator = ValueAnimator.ofFloat(0, 1f); final float wasRotation = photoCropView.wheelView.getRotation(); areaRotateAnimator.addUpdateListener(a -> { @@ -7902,9 +8236,9 @@ public void onAnimationEnd(Animator animation) { imageMoveAnimation = null; rotate = animateToRotate = 0; mirror = animateToMirror = 0; - scale = animateToScale = 1; + scale = animateToScale = scale1(); containerView.invalidate(); - photoCropView.cropView.areaView.setRotationScaleTranslation(0, 1, 0, 0); + photoCropView.cropView.areaView.setRotationScaleTranslation(0, scale1(), 0, 0); photoCropView.wheelView.setRotated(false); if (Math.abs(diff) > 0) { if (photoCropView.rotate(diff)) { @@ -8285,7 +8619,12 @@ private int[] fixVideoWidthHeight(int w, int h) { private VideoEditedInfo getCurrentVideoEditedInfo() { if (!isCurrentVideo && hasAnimatedMediaEntities() && centerImage.getBitmapWidth() > 0) { - float maxSize = sendPhotoType == SELECT_TYPE_AVATAR ? 800 : 854; + float maxSize = 854; + if (sendPhotoType == SELECT_TYPE_AVATAR) { + maxSize = 800; + } else if (sendPhotoType == SELECT_TYPE_STICKER) { + maxSize = 500; + } VideoEditedInfo videoEditedInfo = new VideoEditedInfo(); videoEditedInfo.start = videoEditedInfo.startTime = 0; videoEditedInfo.endTime = Math.min(3000, editState.averageDuration); @@ -8320,7 +8659,7 @@ private VideoEditedInfo getCurrentVideoEditedInfo() { width *= editState.cropState.cropPw; height *= editState.cropState.cropPh; } - if (sendPhotoType == SELECT_TYPE_AVATAR) { + if (sendPhotoType == SELECT_TYPE_AVATAR || sendPhotoType == SELECT_TYPE_STICKER) { width = height; } float scale = Math.max(width / maxSize, height / maxSize); @@ -8450,23 +8789,23 @@ private CharSequence applyCaption() { Object object = imagesArrLocals.get(currentIndex); CharSequence caption = captionEdit.getText(); -// CharSequence[] result = new CharSequence[] { caption }; + CharSequence[] result = new CharSequence[] { caption }; if (hasCaptionForAllMedia && !TextUtils.equals(captionForAllMedia, caption) && placeProvider.getPhotoIndex(currentIndex) != 0 && placeProvider.getSelectedCount() > 0) { hasCaptionForAllMedia = false; } -// ArrayList entities = MediaDataController.getInstance(currentAccount).getEntities(result, supportsSendingNewEntities()); - captionForAllMedia = caption; + ArrayList entities = MediaDataController.getInstance(currentAccount).getEntities(result, supportsSendingNewEntities()); + captionForAllMedia = result[0]; if (object instanceof MediaController.PhotoEntry) { MediaController.PhotoEntry photoEntry = (MediaController.PhotoEntry) object; - photoEntry.caption = caption; -// photoEntry.entities = entities; + photoEntry.caption = result[0]; + photoEntry.entities = entities; } else if (object instanceof MediaController.SearchImage) { MediaController.SearchImage photoEntry = (MediaController.SearchImage) object; - photoEntry.caption = caption; -// photoEntry.entities = entities; + photoEntry.caption = result[0]; + photoEntry.entities = entities; } if (caption.length() != 0 && !placeProvider.isPhotoChecked(currentIndex)) { @@ -9067,6 +9406,8 @@ public void onVideoSizeChanged(int width, int height, int unappliedRotationDegre aspectRatioFrameLayout.setAspectRatio(height == 0 ? 1 : (width * pixelWidthHeightRatio) / height, unappliedRotationDegrees); if (videoTextureView instanceof VideoEditTextureView) { + StoryEntry.HDRInfo hdrInfo = videoPlayer.getHDRStaticInfo(null); + ((VideoEditTextureView) videoTextureView).setHDRInfo(hdrInfo); ((VideoEditTextureView) videoTextureView).setVideoSize((int) (width * pixelWidthHeightRatio), height); if (sendPhotoType == SELECT_TYPE_AVATAR) { setCropBitmap(); @@ -9572,7 +9913,7 @@ private void mergeImages(String finalPath, String thumbPath, Bitmap thumb, Bitma canvas.drawBitmap(bitmap, null, dstRect, bitmapPaint); } FileOutputStream stream = new FileOutputStream(new File(finalPath)); - dst.compress(Bitmap.CompressFormat.JPEG, size == thumbSize ? 83 : 87, stream); + dst.compress(getCompressFormat(), size == thumbSize ? 83 : 87, stream); try { stream.close(); } catch (Exception e) { @@ -9702,7 +10043,10 @@ private void applyCurrentEditMode() { int[] orientation = null; boolean hasChanged = false; MediaController.MediaEditState entry = (MediaController.MediaEditState) imagesArrLocals.get(currentIndex); - if (currentEditMode == EDIT_MODE_CROP || currentEditMode == EDIT_MODE_NONE && sendPhotoType == SELECT_TYPE_AVATAR) { + if (currentEditMode == EDIT_MODE_NONE && sendPhotoType == SELECT_TYPE_STICKER) { + bitmap = centerImage.getBitmap(); + orientation = new int[]{centerImage.getOrientation(), centerImage.getInvert()}; + } else if (currentEditMode == EDIT_MODE_CROP || currentEditMode == EDIT_MODE_NONE && sendPhotoType == SELECT_TYPE_AVATAR) { photoCropView.makeCrop(entry); if (entry.cropState == null && currentEditMode != EDIT_MODE_CROP) { return; @@ -9724,9 +10068,10 @@ private void applyCurrentEditMode() { } } else if (currentEditMode == EDIT_MODE_FILTER) { bitmap = photoFilterView.getBitmap(); + bitmap = stickerMakerView.cutSegmentInFilteredBitmap(bitmap, centerImage.getOrientation()); savedFilterState = photoFilterView.getSavedFilterState(); } else if (currentEditMode == EDIT_MODE_PAINT) { - if (Build.VERSION.SDK_INT >= 18 && (sendPhotoType == 0 || sendPhotoType == SELECT_TYPE_AVATAR || sendPhotoType == 2)) { + if (sendPhotoType == 0 || sendPhotoType == SELECT_TYPE_AVATAR || sendPhotoType == SELECT_TYPE_STICKER || sendPhotoType == 2) { entities = new ArrayList<>(); } hasChanged = photoPaintView.hasChanges(); @@ -9748,7 +10093,49 @@ private void applyCurrentEditMode() { entry.imagePath = null; } - if (currentEditMode == EDIT_MODE_CROP || currentEditMode == EDIT_MODE_NONE && sendPhotoType == SELECT_TYPE_AVATAR) { + if (currentEditMode == EDIT_MODE_NONE && sendPhotoType == SELECT_TYPE_STICKER) { + if (entry.cropState != null) { + Bitmap croppedBitmap = createCroppedBitmap(bitmap, entry.cropState, orientation, true); + if (entry.paintPath != null) { + Bitmap paintBitmap = BitmapFactory.decodeFile(entry.fullPaintPath); + Bitmap croppedPaintBitmap = createCroppedBitmap(paintBitmap, entry.cropState, null, false); + if (!isCurrentVideo) { + if (hasAnimatedMediaEntities()) { + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(croppedBitmap, getCompressFormat(), AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); + entry.imagePath = currentImagePath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); + } else { + mergeImages(entry.imagePath = getTempFileAbsolutePath(), null, croppedPaintBitmap, croppedBitmap, AndroidUtilities.getPhotoSize(), true); + } + } + mergeImages(entry.thumbPath = getTempFileAbsolutePath(), null, croppedPaintBitmap, croppedBitmap, thumbSize, true); + } else { + if (!isCurrentVideo) { + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(croppedBitmap, getCompressFormat(), AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); + entry.imagePath = currentImagePath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); + } + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(croppedBitmap, thumbSize, thumbSize, 70, false, 101, 101); + entry.thumbPath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); + } + } else if (entry.paintPath != null) { + Bitmap paintBitmap = BitmapFactory.decodeFile(entry.fullPaintPath); + if (!isCurrentVideo) { + if (hasAnimatedMediaEntities()) { + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(bitmap, getCompressFormat(), AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); + entry.imagePath = currentImagePath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); + } else { + mergeImages(entry.imagePath = getTempFileAbsolutePath(), null, paintBitmap, bitmap, AndroidUtilities.getPhotoSize(), true); + } + } + mergeImages(entry.thumbPath = getTempFileAbsolutePath(), null, paintBitmap, bitmap, thumbSize, true); + } else { + if (!isCurrentVideo) { + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(bitmap, getCompressFormat(), AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); + entry.imagePath = currentImagePath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); + } + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(bitmap, thumbSize, thumbSize, 70, false, 101, 101); + entry.thumbPath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); + } + } else if (currentEditMode == EDIT_MODE_CROP || currentEditMode == EDIT_MODE_NONE && sendPhotoType == SELECT_TYPE_AVATAR) { editState.cropState = entry.cropState; editState.croppedPaintPath = entry.croppedPaintPath; editState.croppedMediaEntities = entry.croppedMediaEntities; @@ -9761,15 +10148,13 @@ private void applyCurrentEditMode() { if (!isCurrentVideo) { if (hasAnimatedMediaEntities()) { - TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(croppedBitmap, Bitmap.CompressFormat.JPEG, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(croppedBitmap, getCompressFormat(), AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); entry.imagePath = currentImagePath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); } else { - File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); - mergeImages(entry.imagePath = f.getAbsolutePath(), null, croppedPaintBitmap, croppedBitmap, AndroidUtilities.getPhotoSize(), true); + mergeImages(entry.imagePath = getTempFileAbsolutePath(), null, croppedPaintBitmap, croppedBitmap, AndroidUtilities.getPhotoSize(), true); } } - File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); - mergeImages(entry.thumbPath = f.getAbsolutePath(), null, croppedPaintBitmap, croppedBitmap, thumbSize, true); + mergeImages(entry.thumbPath = getTempFileAbsolutePath(), null, croppedPaintBitmap, croppedBitmap, thumbSize, true); if (croppedPaintBitmap != null) { croppedPaintBitmap.recycle(); } @@ -9778,7 +10163,7 @@ private void applyCurrentEditMode() { } } else { if (!isCurrentVideo) { - TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(croppedBitmap, Bitmap.CompressFormat.JPEG, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(croppedBitmap, getCompressFormat(), AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); entry.imagePath = currentImagePath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); } TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(croppedBitmap, thumbSize, thumbSize, 70, false, 101, 101); @@ -9793,15 +10178,15 @@ private void applyCurrentEditMode() { if (entry.filterPath != null) { new File(entry.filterPath).delete(); } - TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(bitmap, Bitmap.CompressFormat.JPEG, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); + TLRPC.PhotoSize size = ImageLoader.scaleAndSaveImage(bitmap, getCompressFormat(), AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); entry.filterPath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); Bitmap b = entry.cropState != null ? createCroppedBitmap(bitmap, entry.cropState, null, true) : bitmap; if (entry.paintPath == null) { if (!isCurrentVideo) { - size = ImageLoader.scaleAndSaveImage(b, Bitmap.CompressFormat.JPEG, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); + size = ImageLoader.scaleAndSaveImage(b, getCompressFormat(), AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); entry.imagePath = currentImagePath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); } - size = ImageLoader.scaleAndSaveImage(b, Bitmap.CompressFormat.JPEG, thumbSize, thumbSize, 83, false, 101, 101); + size = ImageLoader.scaleAndSaveImage(b, getCompressFormat(), thumbSize, thumbSize, 83, false, 101, 101); entry.thumbPath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); } else { String path = entry.fullPaintPath; @@ -9823,15 +10208,13 @@ private void applyCurrentEditMode() { } if (!isCurrentVideo) { if (hasAnimatedMediaEntities()) { - size = ImageLoader.scaleAndSaveImage(b, Bitmap.CompressFormat.JPEG, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); + size = ImageLoader.scaleAndSaveImage(b, getCompressFormat(), AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); entry.imagePath = currentImagePath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); } else { - File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); - mergeImages(entry.imagePath = f.getAbsolutePath(), path, paintBitmap, b, AndroidUtilities.getPhotoSize(), true); + mergeImages(entry.imagePath = getTempFileAbsolutePath(), path, paintBitmap, b, AndroidUtilities.getPhotoSize(), true); } } - File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); - mergeImages(entry.thumbPath = f.getAbsolutePath(), path, paintBitmap, b, thumbSize, true); + mergeImages(entry.thumbPath = getTempFileAbsolutePath(), path, paintBitmap, b, thumbSize, true); if (recyclePaint) { paintBitmap.recycle(); } @@ -9850,7 +10233,7 @@ private void applyCurrentEditMode() { entry.stickers = stickers != null ? new ArrayList<>(stickers) : null; entry.paintPath = editState.paintPath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); - paintingOverlay.setEntities(entry.mediaEntities = editState.mediaEntities = entities == null || entities.isEmpty() ? null : entities, isCurrentVideo, true); + paintingOverlay.setEntities(entry.mediaEntities = editState.mediaEntities = entities == null || entities.isEmpty() ? null : entities, isCurrentVideo, true, sendPhotoType != SELECT_TYPE_STICKER); entry.averageDuration = editState.averageDuration = photoPaintView.getLcm(); if (entry.mediaEntities != null && paintThumbBitmap[0] != null) { size = ImageLoader.scaleAndSaveImage(paintThumbBitmap[0], Bitmap.CompressFormat.PNG, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); @@ -9939,15 +10322,13 @@ private void applyCurrentEditMode() { } if (!isCurrentVideo) { if (hasAnimatedMediaEntities()) { - size = ImageLoader.scaleAndSaveImage(croppedBitmap, Bitmap.CompressFormat.JPEG, AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); + size = ImageLoader.scaleAndSaveImage(croppedBitmap, getCompressFormat(), AndroidUtilities.getPhotoSize(), AndroidUtilities.getPhotoSize(), 87, false, 101, 101); entry.imagePath = currentImagePath = FileLoader.getInstance(currentAccount).getPathToAttach(size, true).toString(); } else { - File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); - mergeImages(entry.imagePath = f.getAbsolutePath(), null, croppedBitmap, paintBitmap, AndroidUtilities.getPhotoSize(), false); + mergeImages(entry.imagePath = getTempFileAbsolutePath(), null, croppedBitmap, paintBitmap, AndroidUtilities.getPhotoSize(), false); } } - File f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_CACHE), SharedConfig.getLastLocalId() + "_temp.jpg"); - mergeImages(entry.thumbPath = f.getAbsolutePath(), null, croppedBitmap, paintBitmap, thumbSize, false); + mergeImages(entry.thumbPath = getTempFileAbsolutePath(), null, croppedBitmap, paintBitmap, thumbSize, false); if (recycle && paintBitmap != null) { paintBitmap.recycle(); @@ -10225,6 +10606,7 @@ public void switchToEditMode(final int mode) { navigationBarColorTo = 0x7f000000; } showEditCaption(editing && savedState == null && mode == EDIT_MODE_NONE, true); + showStickerMode(mode == EDIT_MODE_NONE && sendPhotoType == SELECT_TYPE_STICKER, true); navigationBar.setVisibility(mode != EDIT_MODE_FILTER ? View.VISIBLE : View.INVISIBLE); switchingToMode = mode; if (currentEditMode == EDIT_MODE_NONE) { @@ -10299,7 +10681,7 @@ public void switchToEditMode(final int mode) { newScale = Math.min(getContainerViewWidth(0) / (float) bitmapWidth, getContainerViewHeight(0) / (float) bitmapHeight); } } - animateToScale = newScale / oldScale; + animateToScale = newScale / oldScale * scale1(); animateToX = 0; translationX = getLeftInset() / 2 - getRightInset() / 2; if (sendPhotoType == SELECT_TYPE_AVATAR) { @@ -10410,10 +10792,9 @@ public void onAnimationEnd(Animator animation) { if (sendPhotoType == SELECT_TYPE_AVATAR) { photoCropView.setVisibility(View.VISIBLE); } - animateToScale = 1; + scale = animateToScale = scale1(); animateToX = 0; animateToY = 0; - scale = 1; updateMinMax(scale); containerView.invalidate(); @@ -10612,10 +10993,9 @@ public void onAnimationEnd(Animator animation) { translateY = 0; } switchingToMode = -1; - animateToScale = 1; + scale = animateToScale = 1f; animateToX = 0; animateToY = 0; - scale = 1; updateMinMax(scale); padImageForHorizontalInsets = true; containerView.invalidate(); @@ -10646,7 +11026,7 @@ public void onAnimationEnd(Animator animation) { bitmap = null; } else { if (state == null) { - bitmap = centerImage.getBitmap(); + bitmap = stickerMakerView.isSegmentedState() ? stickerMakerView.getSourceBitmap() : centerImage.getBitmap(); orientation = centerImage.getOrientation(); } else { bitmap = BitmapFactory.decodeFile(originalPath); @@ -10661,7 +11041,8 @@ public void onAnimationEnd(Animator animation) { } else { hasFaces = currentImageHasFace == 1 ? 1 : 0; } - photoFilterView = new PhotoFilterView(parentActivity, videoTextureView != null ? (VideoEditTextureView) videoTextureView : null, bitmap, orientation, state, isCurrentVideo ? null : paintingOverlay, hasFaces, videoTextureView == null && (editState.cropState != null && editState.cropState.mirrored || cropTransform.isMirrored()), true, null, resourcesProvider); + Bitmap bitmapMask = stickerMakerView.getSegmentedDarkMaskImage(); + photoFilterView = new PhotoFilterView(parentActivity, videoTextureView != null ? (VideoEditTextureView) videoTextureView : null, bitmap, bitmapMask, orientation, state, isCurrentVideo ? null : paintingOverlay, hasFaces, videoTextureView == null && (editState.cropState != null && editState.cropState.mirrored || cropTransform.isMirrored()), true, null, resourcesProvider); containerView.addView(photoFilterView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); photoFilterView.getDoneTextView().setOnClickListener(v -> { applyCurrentEditMode(); @@ -10783,10 +11164,9 @@ public void onAnimationEnd(Animator animation) { translateY = 0; } switchingToMode = -1; - animateToScale = 1; + scale = animateToScale = 1f; animateToX = 0; animateToY = 0; - scale = 1; updateMinMax(scale); padImageForHorizontalInsets = true; containerView.invalidate(); @@ -10957,6 +11337,10 @@ protected void onTextAdd() { photoPaintView.setOffsetTranslationY(dp(126), 0, 0, false); photoPaintView.setOffsetTranslationX(-dp(12)); } + if (photoPaintView != null) { + photoPaintView.entitiesView.setClipChildren(sendPhotoType != SELECT_TYPE_STICKER); + photoPaintView.setClipChildren(sendPhotoType != SELECT_TYPE_STICKER); + } } private ValueAnimator translateYAnimator; @@ -11009,6 +11393,7 @@ private void switchToPaintMode() { updateActionBarTitlePadding(); } showEditCaption(false, true); + showStickerMode(false, true); Bitmap bitmap = centerImage.getBitmap(); final float finalScale = scale; @@ -11046,7 +11431,7 @@ private void switchToPaintMode() { } oldScale = Math.min(getContainerViewWidth() / (float) bitmapWidth, getContainerViewHeight() / (float) bitmapHeight); newScale = Math.min(getContainerViewWidth(3) / (float) bitmapWidth, getContainerViewHeight(3) / (float) bitmapHeight); - animateToScale = newScale / oldScale; // * finalScale; + animateToScale = newScale / oldScale * scale1(); // * finalScale; animateToX = getLeftInset() / 2 - getRightInset() / 2; animationStartTime = System.currentTimeMillis(); zoomAnimation = true; @@ -11081,7 +11466,7 @@ public void onAnimationEnd(Animator animation) { } translateY = 0; switchingToMode = -1; - animateToScale = scale = 1; + animateToScale = scale = scale1(); animateToX = 0; animateToY = 0; updateMinMax(scale); @@ -11883,6 +12268,7 @@ private void onPhotoShow(final MessageObject messageObject, final TLRPC.FileLoca docNameTextView.setVisibility(View.GONE); showVideoTimeline(false, false); showEditCaption(false, false); + showStickerMode(false, false); videoAvatarTooltip.setVisibility(View.GONE); compressItem.setVisibility(View.GONE); // captionEditText.setVisibility(View.GONE); @@ -12967,7 +13353,7 @@ private void setIsAboutToSwitchToIndex(int index, boolean init, boolean animated actionBarContainer.setTextShadows(fancyShadows); navigationBar.setVisibility(fancyShadows ? View.GONE : View.VISIBLE); if (currentEditMode == EDIT_MODE_NONE) { - navigationBar.setBackgroundColor(fancyShadows ? 0 : 0x7f000000); + navigationBar.setBackgroundColor(fancyShadows ? 0 : (sendPhotoType == SELECT_TYPE_STICKER ? 0xFF000000 : 0x7f000000)); } if (title != null) { if (animated) { @@ -13024,6 +13410,61 @@ private CharSequence postProcessTranslated(MessageObject messageObject) { return message; } + public TLRPC.Document replacedSticker; + + public void enableStickerMode(TLRPC.Document document) { + replacedSticker = document; + if (stickerMakerView != null) { + stickerMakerView.clean(); + } + if (cutOutBtn != null) { + cutOutBtn.clean(); + } + showStickerMode(true, false); + } + + public void prepareSegmentImage() { + if (stickerMakerView != null && sendPhotoType == SELECT_TYPE_STICKER) { + stickerMakerView.segmentImage(centerImage.getBitmap(), centerImage.getOrientation(), getContainerViewWidth(), getContainerViewHeight()); + } + } + + private void showStickerMode(boolean show, boolean animated) { + if (!animated) { + stickerMakerView.animate().setListener(null).cancel(); + stickerMakerView.setVisibility(show ? View.VISIBLE : View.GONE); + stickerMakerView.setAlpha(pickerView.getAlpha()); + stickerMakerBackgroundView.animate().setListener(null).cancel(); + stickerMakerBackgroundView.setVisibility(show ? View.VISIBLE : View.GONE); + stickerMakerBackgroundView.setAlpha(show ? pickerView.getAlpha() : 0f); + cutOutBtn.animate().setListener(null).cancel(); + cutOutBtn.setVisibility(show ? View.VISIBLE : View.GONE); + cutOutBtn.setAlpha(pickerView.getAlpha()); + } else { + if (show && cutOutBtn.getTag() == null) { + stickerMakerView.animate().setListener(null).cancel(); + cutOutBtn.animate().setListener(null).cancel(); + stickerMakerBackgroundView.animate().setListener(null).cancel(); + if (cutOutBtn.getVisibility() != View.VISIBLE) { + cutOutBtn.setVisibility(View.VISIBLE); + cutOutBtn.animate().alpha(pickerView.getAlpha()).start(); + stickerMakerView.setVisibility(View.VISIBLE); + stickerMakerView.animate().alpha(pickerView.getAlpha()).start(); + stickerMakerBackgroundView.setVisibility(View.VISIBLE); + stickerMakerBackgroundView.animate().alpha(pickerView.getAlpha()).start(); + } + } else if (!show && cutOutBtn.getTag() != null) { + stickerMakerView.animate().setListener(null).cancel(); + cutOutBtn.animate().setListener(null).cancel(); + stickerMakerBackgroundView.animate().setListener(null).cancel(); + cutOutBtn.animate().alpha(0f).setListener(new HideViewAfterAnimation(cutOutBtn)).start(); + stickerMakerView.animate().alpha(0f).setListener(new HideViewAfterAnimation(stickerMakerView)).start(); + stickerMakerBackgroundView.animate().alpha(0f).setListener(new HideViewAfterAnimation(stickerMakerBackgroundView)).start(); + } + } + cutOutBtn.setTag(show ? 1 : null); + } + private ObjectAnimator captionAnimator; private void showEditCaption(boolean show, boolean animated) { if (!animated) { @@ -13339,10 +13780,9 @@ private void setImageIndex(int index, boolean init, boolean animateCaption) { draggingDown = false; translationX = 0; translationY = 0; - scale = 1; animateToX = 0; animateToY = 0; - animateToScale = 1; + scale = animateToScale = scale1(); animateToRotate = 0; animationStartTime = 0; zoomAnimation = false; @@ -14013,7 +14453,7 @@ private void setIndexToPaintingOverlay(int index, PaintingOverlay paintingOverla mediaEntities = photoEntry.mediaEntities; } paintingOverlay.setVisibility(View.VISIBLE); - paintingOverlay.setData(paintPath, mediaEntities, isVideo, false); + paintingOverlay.setData(paintPath, mediaEntities, isVideo, false, sendPhotoType != SELECT_TYPE_STICKER); } } @@ -14488,7 +14928,7 @@ public boolean openPhotoForSelect(final TLRPC.FileLocation fileLocation, final I if (type == 4 || type == 5) { pickerViewSendButton.setImageResource(R.drawable.msg_input_send_mini); layoutParams2.bottomMargin = dp(7.33f); - } else if (type == SELECT_TYPE_AVATAR || type == SELECT_TYPE_WALLPAPER || type == SELECT_TYPE_QR) { + } else if (type == SELECT_TYPE_AVATAR || type == SELECT_TYPE_WALLPAPER || type == SELECT_TYPE_QR || type == SELECT_TYPE_STICKER) { pickerViewSendButton.setImageResource(R.drawable.floating_check); pickerViewSendButton.setPadding(0, dp(1), 0, 0); layoutParams2.bottomMargin = dp(7.33f); @@ -14498,6 +14938,9 @@ public boolean openPhotoForSelect(final TLRPC.FileLocation fileLocation, final I } pickerViewSendButton.setLayoutParams(layoutParams2); } + if (type != SELECT_TYPE_STICKER && stickerMakerView != null) { + stickerMakerView.clean(); + } if (sendPhotoType != SELECT_TYPE_AVATAR && type == SELECT_TYPE_AVATAR && isVisible) { sendPhotoType = type; doneButtonPressed = false; @@ -14810,6 +15253,7 @@ public boolean openPhoto(final MessageObject messageObject, NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.fileLoadFailed); NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.fileLoaded); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.customStickerCreated); NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.fileLoadProgressChanged); NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.mediaCountDidLoad); NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.mediaDidLoad); @@ -14968,9 +15412,12 @@ public boolean onPreDraw() { yPos = top + (bottom - top - layoutParams.height * scale) / 2; xPos = (windowView.getMeasuredWidth() - getLeftInset() - getRightInset() - layoutParams.width * scale) / 2.0f + getLeftInset(); } else { - scaleX = (float) windowView.getMeasuredWidth() / layoutParams.width; + scaleX = (float) (windowView.getMeasuredWidth()) / layoutParams.width; scaleY = (float) (AndroidUtilities.displaySize.y + (isStatusBarVisible() ? AndroidUtilities.statusBarHeight : 0)) / layoutParams.height; scale = Math.min(scaleX, scaleY); + if (sendPhotoType == SELECT_TYPE_STICKER) { + scale *= scale1(); + } yPos = ((AndroidUtilities.displaySize.y + (isStatusBarVisible() ? AndroidUtilities.statusBarHeight : 0)) - (layoutParams.height * scale)) / 2.0f; xPos = (windowView.getMeasuredWidth() - layoutParams.width * scale) / 2.0f; } @@ -15037,9 +15484,7 @@ public boolean onPreDraw() { if (containerView == null || windowView == null) { return; } - if (Build.VERSION.SDK_INT >= 18) { - containerView.setLayerType(View.LAYER_TYPE_NONE, null); - } + containerView.setLayerType(View.LAYER_TYPE_NONE, null); animationInProgress = 0; invalidateBlur(); transitionAnimationStartTime = 0; @@ -15419,6 +15864,9 @@ public void closePhoto(boolean animated, boolean fromEditMode) { Object entry = imagesArrLocals.get(currentIndex); if (entry instanceof MediaController.MediaEditState) { ((MediaController.MediaEditState) entry).editedInfo = getCurrentVideoEditedInfo(); + if (sendPhotoType == SELECT_TYPE_STICKER) { + ((MediaController.MediaEditState) entry).reset(); + } } } float wasScaleX = 1f, wasScaleY = 1f, wasScaleAlertX = 1f, wasScaleAlertY = 1f; @@ -15785,6 +16233,7 @@ private ClippingImageView[] getAnimatingImageViews(PlaceProviderObject object) { private void removeObservers() { NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.fileLoadFailed); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.fileLoaded); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.customStickerCreated); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.fileLoadProgressChanged); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.mediaCountDidLoad); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.mediaDidLoad); @@ -15984,9 +16433,8 @@ private void updateMinMax(float scale) { w *= editState.cropState.cropPw; h *= editState.cropState.cropPh; } - int maxW = (int) (w * scale - getContainerViewWidth()) / 2; - int maxH = (int) (h * scale - getContainerViewHeight()) / 2; - + int maxW = sendPhotoType == SELECT_TYPE_STICKER ? (int) (scale * w) : (int) (w * scale - getContainerViewWidth()) / 2; + int maxH = sendPhotoType == SELECT_TYPE_STICKER ? (int) (scale * h) : (int) (h * scale - getContainerViewHeight()) / 2; if (maxW > 0) { minX = -maxW; maxX = maxW; @@ -16092,7 +16540,7 @@ private boolean onTouchEvent(MotionEvent ev) { if (currentEditMode == EDIT_MODE_FILTER) { photoFilterView.onTouch(ev); return true; - } else if (currentEditMode == EDIT_MODE_CROP || currentEditMode != EDIT_MODE_PAINT && sendPhotoType == SELECT_TYPE_AVATAR) { + } else if (currentEditMode == EDIT_MODE_CROP || currentEditMode != EDIT_MODE_PAINT && (sendPhotoType == SELECT_TYPE_AVATAR)) { return true; } @@ -16138,7 +16586,7 @@ private boolean onTouchEvent(MotionEvent ev) { pinchStartY = translationY; zooming = true; moving = false; - if (currentEditMode == EDIT_MODE_PAINT) { + if (currentEditMode == EDIT_MODE_PAINT || sendPhotoType == SELECT_TYPE_STICKER) { moveStartX = pinchCenterX; moveStartY = pinchCenterY; draggingDown = false; @@ -16182,7 +16630,7 @@ private boolean onTouchEvent(MotionEvent ev) { if (canZoom && ev.getPointerCount() == 2 && !draggingDown && zooming && !changingPage) { discardTap = true; - if (currentEditMode == EDIT_MODE_PAINT) { + if (currentEditMode == EDIT_MODE_PAINT || sendPhotoType == SELECT_TYPE_STICKER) { float newPinchCenterX = (ev.getX(0) + ev.getX(1)) / 2.0f; float newPinchCenterY = (ev.getY(0) + ev.getY(1)) / 2.0f; float moveDx = moveStartX - newPinchCenterX; @@ -16228,7 +16676,7 @@ private boolean onTouchEvent(MotionEvent ev) { return true; } } - if (placeProvider.canScrollAway() && currentEditMode == EDIT_MODE_NONE && sendPhotoType != SELECT_TYPE_AVATAR && canDragDown && !draggingDown && scale == 1 && dy >= dp(30) && dy / 2 > dx) { + if (placeProvider.canScrollAway() && currentEditMode == EDIT_MODE_NONE && sendPhotoType != SELECT_TYPE_AVATAR && sendPhotoType != SELECT_TYPE_STICKER && canDragDown && !draggingDown && scale == 1 && dy >= dp(30) && dy / 2 > dx) { draggingDown = true; hidePressedDrawables(); moving = false; @@ -16247,7 +16695,7 @@ private boolean onTouchEvent(MotionEvent ev) { } else if (!invalidCoords && animationStartTime == 0) { float moveDx = moveStartX - ev.getX(); float moveDy = moveStartY - ev.getY(); - if (moving || currentEditMode != EDIT_MODE_NONE || scale == 1 && Math.abs(moveDy) + dp(12) < Math.abs(moveDx) || scale != 1) { + if (moving || currentEditMode != EDIT_MODE_NONE || sendPhotoType == SELECT_TYPE_STICKER || scale == 1 && Math.abs(moveDy) + dp(12) < Math.abs(moveDx) || scale != 1) { if (!moving) { moveDx = 0; moveDy = 0; @@ -16262,7 +16710,7 @@ private boolean onTouchEvent(MotionEvent ev) { if (translationX < minX && (currentEditMode != EDIT_MODE_NONE || !rightImage.hasImageSet()) || translationX > maxX && (currentEditMode != EDIT_MODE_NONE || !leftImage.hasImageSet())) { moveDx /= 3.0f; } - if (maxY == 0 && minY == 0 && currentEditMode == EDIT_MODE_NONE && sendPhotoType != SELECT_TYPE_AVATAR) { + if (maxY == 0 && minY == 0 && currentEditMode == EDIT_MODE_NONE && sendPhotoType != SELECT_TYPE_AVATAR && sendPhotoType != SELECT_TYPE_STICKER) { if (translationY - moveDy < minY) { translationY = minY; moveDy = 0; @@ -16277,7 +16725,7 @@ private boolean onTouchEvent(MotionEvent ev) { } translationX -= moveDx; - if (scale != 1 || currentEditMode != EDIT_MODE_NONE) { + if (scale != 1 || currentEditMode != EDIT_MODE_NONE || sendPhotoType == SELECT_TYPE_STICKER) { translationY -= moveDy; } invalidateBlur(); @@ -16306,9 +16754,10 @@ private boolean onTouchEvent(MotionEvent ev) { paintViewTouched = 0; if (zooming) { invalidCoords = true; - if (scale < 1.0f) { - updateMinMax(1.0f); - animateTo(1.0f, 0, 0, true); + float maxScale = sendPhotoType == SELECT_TYPE_STICKER ? 0.33f : 1f; + if (scale < maxScale) { + updateMinMax(maxScale); + animateTo(maxScale, 0, 0, true); } else if (scale > 3.0f) { float atx = (pinchCenterX - getContainerViewWidth() / 2) - ((pinchCenterX - getContainerViewWidth() / 2) - pinchStartX) * (3.0f / pinchStartScale); float aty = (pinchCenterY - getContainerViewHeight() / 2) - ((pinchCenterY - getContainerViewHeight() / 2) - pinchStartY) * (3.0f / pinchStartScale); @@ -16372,7 +16821,7 @@ private boolean onTouchEvent(MotionEvent ev) { velocity = velocityTracker.getXVelocity(); } - if (currentEditMode == EDIT_MODE_NONE && sendPhotoType != SELECT_TYPE_AVATAR) { + if (currentEditMode == EDIT_MODE_NONE && sendPhotoType != SELECT_TYPE_AVATAR && sendPhotoType != SELECT_TYPE_STICKER) { if ((translationX < minX - getContainerViewWidth() / 3 || velocity < -dp(650)) && rightImage.hasImageSet()) { goToNext(); return true; @@ -16759,7 +17208,7 @@ public void onAnimationEnd(Animator animation) { int containerWidth = getContainerViewWidth(); int containerHeight = getContainerViewHeight(); if (animationInProgress != 2 && animationInProgress != 4 && !pipAnimationInProgress && !isInline) { - if (currentEditMode == EDIT_MODE_NONE && sendPhotoType != SELECT_TYPE_AVATAR && scale == 1 && aty != -1 && !zoomAnimation) { + if (currentEditMode == EDIT_MODE_NONE && sendPhotoType != SELECT_TYPE_AVATAR && sendPhotoType != SELECT_TYPE_STICKER && scale == 1 && aty != -1 && !zoomAnimation) { float maxValue = containerWidth / 4.0f; backgroundDrawable.setAlpha((int) Math.max(127, 255 * (1.0f - (Math.min(Math.abs(aty), maxValue) / maxValue)))); } else { @@ -16770,7 +17219,7 @@ public void onAnimationEnd(Animator animation) { } sideImage = null; - if (currentEditMode == EDIT_MODE_NONE && sendPhotoType != SELECT_TYPE_AVATAR) { + if (currentEditMode == EDIT_MODE_NONE && sendPhotoType != SELECT_TYPE_AVATAR && sendPhotoType != SELECT_TYPE_STICKER) { if (scale >= 1.0f && !zoomAnimation && !zooming) { if (currentTranslationX > maxX + dp(5)) { sideImage = leftImage; @@ -16882,17 +17331,24 @@ public void onAnimationEnd(Animator animation) { translateX = maxX; } boolean drawTextureView = videoSizeSet && aspectRatioFrameLayout != null && aspectRatioFrameLayout.getVisibility() == View.VISIBLE; + centerImageTransformLocked = false; + centerImageTransform.reset(); if (centerImage.hasBitmapImage() || drawTextureView && textureUploaded) { canvas.save(); canvas.translate(containerWidth / 2 + getAdditionX(), containerHeight / 2 + getAdditionY()); + centerImageTransform.postTranslate(containerWidth / 2 + getAdditionX(), containerHeight / 2 + getAdditionY()); canvas.translate(translateX, currentTranslationY + (currentEditMode != EDIT_MODE_PAINT ? currentPanTranslationY : 0)); + centerImageTransform.preTranslate(translateX, currentTranslationY + (currentEditMode != EDIT_MODE_PAINT ? currentPanTranslationY : 0)); canvas.scale(currentScale - scaleDiff, currentScale - scaleDiff); + centerImageTransform.preScale(currentScale - scaleDiff, currentScale - scaleDiff); canvas.rotate(currentRotation); + centerImageTransform.postRotate(currentRotation); if (currentEditMode == EDIT_MODE_PAINT && photoPaintView != null) { int trueH = getContainerViewHeight(true, 0); trueH -= photoPaintView.getEmojiPadding(Math.abs(AndroidUtilities.displaySize.y + AndroidUtilities.statusBarHeight - trueH) < dp(20)); int h = getContainerViewHeight(false, 0); canvas.translate(0, (trueH - h) / 2f * (1f - photoPaintView.adjustPanLayoutHelperProgress())); + centerImageTransform.postTranslate(0, (trueH - h) / 2f * (1f - photoPaintView.adjustPanLayoutHelperProgress())); } boolean drawCenterImage = false; @@ -16918,6 +17374,7 @@ public void onAnimationEnd(Animator animation) { } width *= scale; height *= scale; +// centerImageTransform.postScale(scale, scale); centerImage.setImageCoords(-width / 2, -height / 2, width, height); if (isCurrentVideo) { centerImage.draw(canvas); @@ -16925,6 +17382,7 @@ public void onAnimationEnd(Animator animation) { drawCenterImage = true; } } + centerImageTransformLocked = true; } int bitmapWidth, originalWidth; @@ -17041,16 +17499,21 @@ public void onAnimationEnd(Animator animation) { } canvas.translate(cropTransform.getCropAreaX() * cropAnimationValue, cropTransform.getCropAreaY() * cropAnimationValue); + if (!centerImageTransformLocked) centerImageTransform.postTranslate(cropTransform.getCropAreaX() * cropAnimationValue, cropTransform.getCropAreaY() * cropAnimationValue); canvas.scale(cropScale, cropScale); + if (!centerImageTransformLocked) centerImageTransform.postScale(cropScale, cropScale); canvas.translate(cropTransform.getCropPx() * rotatedWidth * scale * cropAnimationValue, cropTransform.getCropPy() * rotatedHeight * scale * cropAnimationValue); + if (!centerImageTransformLocked) centerImageTransform.postTranslate(cropTransform.getCropPx() * rotatedWidth * scale * cropAnimationValue, cropTransform.getCropPy() * rotatedHeight * scale * cropAnimationValue); float rotation = (cropTransform.getRotation() + orientation); if (rotation > 180) { rotation -= 360; } if (sendPhotoType == SELECT_TYPE_AVATAR && (currentEditMode == EDIT_MODE_PAINT || switchingToMode == EDIT_MODE_PAINT)) { canvas.rotate(rotation); + if (!centerImageTransformLocked) centerImageTransform.postRotate(rotation); } else { canvas.rotate(rotation * cropAnimationValue); + if (!centerImageTransformLocked) centerImageTransform.postRotate(rotation * cropAnimationValue); } } else { if (videoTextureView != null) { @@ -17128,7 +17591,9 @@ public void onAnimationEnd(Animator animation) { } } if (paintingOverlay.getVisibility() == View.VISIBLE && (isCurrentVideo || currentEditMode != EDIT_MODE_FILTER || switchingToMode != -1)) { - canvas.clipRect(0, 0, paintingOverlay.getMeasuredWidth(), paintingOverlay.getMeasuredHeight()); + if (sendPhotoType != SELECT_TYPE_STICKER) { + canvas.clipRect(0, 0, paintingOverlay.getMeasuredWidth(), paintingOverlay.getMeasuredHeight()); + } paintingOverlay.draw(canvas); } canvas.restore(); @@ -17363,6 +17828,8 @@ private void drawCenterImageInternal(Canvas canvas, float currentMirror, float a if (photoViewerWebView == null || !photoViewerWebView.isLoaded()) { centerImage.setAlpha(alpha); centerImage.draw(canvas); + stickerMakerView.drawSegmentBorderPath(canvas, centerImage, centerImageTransform, containerView); + centerImageTransformLocked = true; } if (restore) { canvas.restore(); @@ -17728,7 +18195,7 @@ public VideoPlayerRewinder getVideoPlayerRewinder() { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { - if (scale != 1) { + if (scale != 1 && sendPhotoType != SELECT_TYPE_STICKER) { scroller.abortAnimation(); scroller.fling(Math.round(translationX), Math.round(translationY), Math.round(velocityX), Math.round(velocityY), (int) minX, (int) maxX, (int) minY, (int) maxY); containerView.postInvalidate(); @@ -17744,7 +18211,7 @@ public boolean onSingleTapConfirmed(MotionEvent e) { float x = e.getX(); float y = e.getY(); if (checkImageView.getVisibility() != View.VISIBLE) { - if (SharedConfig.nextMediaTap && y > ActionBar.getCurrentActionBarHeight() + AndroidUtilities.statusBarHeight + dp(40)) { + if (SharedConfig.nextMediaTap && sendPhotoType != SELECT_TYPE_STICKER && y > ActionBar.getCurrentActionBarHeight() + AndroidUtilities.statusBarHeight + dp(40)) { int side = NekoConfig.disablePhotoSideAction.Bool() ? 0 : Math.min(135, containerView.getMeasuredWidth() / 8); if (x < side) { if (leftImage.hasImageSet()) { @@ -18385,7 +18852,7 @@ private void showQualityView(final boolean show) { if (fancyShadows) { navigationBar.setVisibility(View.VISIBLE); navigationBar.setAlpha(0f); - navigationBar.setBackgroundColor(0x7f000000); + navigationBar.setBackgroundColor((sendPhotoType == SELECT_TYPE_STICKER ? 0xFF000000 : 0x7f000000)); } qualityChooseView.setTag(1); qualityChooseViewAnimation.playTogether( @@ -18420,7 +18887,7 @@ public void onAnimationEnd(Animator animation) { if (fancyShadows) { navigationBar.setVisibility(View.GONE); navigationBar.setAlpha(0f); - navigationBar.setBackgroundColor(0x7f000000); + navigationBar.setBackgroundColor((sendPhotoType == SELECT_TYPE_STICKER ? 0xFF000000 : 0x7f000000)); } qualityChooseView.setVisibility(View.INVISIBLE); qualityPicker.setVisibility(View.INVISIBLE); @@ -19377,6 +19844,14 @@ private void drawCaptionBlur(Canvas canvas, BlurringShader.StoryBlurDrawer drawe } } + private void cancelStickerClippingMode() { + if (sendPhotoType == SELECT_TYPE_STICKER && cutOutBtn.isCancelState()) { + cutOutBtn.setCutOutState(true); + stickerMakerView.disableClippingMode(); + containerView.invalidate(); + } + } + private void invalidateBlur() { if (animationInProgress != 0) { return; @@ -19384,6 +19859,9 @@ private void invalidateBlur() { if (captionEdit != null) { captionEdit.invalidateBlur(); } + if (cutOutBtn != null) { + cutOutBtn.invalidateBlur(); + } if (videoTimelineView != null) { videoTimelineView.invalidateBlur(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PremiumPreviewFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/PremiumPreviewFragment.java index 2884fb93ee..976ec4eeab 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PremiumPreviewFragment.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PremiumPreviewFragment.java @@ -67,6 +67,9 @@ import org.telegram.ui.ActionBar.ThemeDescription; import org.telegram.ui.Business.AwayMessagesActivity; import org.telegram.ui.Business.BusinessChatbotController; +import org.telegram.ui.Business.BusinessIntroActivity; +import org.telegram.ui.Business.BusinessLinksActivity; +import org.telegram.ui.Business.BusinessLinksController; import org.telegram.ui.Business.ChatbotsActivity; import org.telegram.ui.Business.GreetMessagesActivity; import org.telegram.ui.Business.LocationActivity; @@ -192,6 +195,8 @@ public class PremiumPreviewFragment extends BaseFragment implements Notification public final static int PREMIUM_FEATURE_BUSINESS_AWAY_MESSAGES = 33; public final static int PREMIUM_FEATURE_BUSINESS_CHATBOTS = 34; public final static int PREMIUM_FEATURE_FOLDER_TAGS = 35; + public final static int PREMIUM_FEATURE_BUSINESS_INTRO = 36; + public final static int PREMIUM_FEATURE_BUSINESS_CHAT_LINKS = 37; private int statusBarHeight; private int firstViewHeight; @@ -289,6 +294,10 @@ public static int serverStringToFeatureType(String s) { return PREMIUM_FEATURE_BUSINESS_QUICK_REPLIES; case "business_bots": return PREMIUM_FEATURE_BUSINESS_CHATBOTS; + case "business_intro": + return PREMIUM_FEATURE_BUSINESS_INTRO; + case "business_links": + return PREMIUM_FEATURE_BUSINESS_CHAT_LINKS; case "business_hours": return PREMIUM_FEATURE_BUSINESS_OPENING_HOURS; case "business_location": @@ -368,6 +377,10 @@ public static String featureTypeToServerString(int type) { return "quick_replies"; case PREMIUM_FEATURE_BUSINESS_CHATBOTS: return "business_bots"; + case PREMIUM_FEATURE_BUSINESS_INTRO: + return "business_intro"; + case PREMIUM_FEATURE_BUSINESS_CHAT_LINKS: + return "business_links"; case PREMIUM_FEATURE_BUSINESS_OPENING_HOURS: return "business_hours"; case PREMIUM_FEATURE_BUSINESS_LOCATION: @@ -447,6 +460,7 @@ public View createView(Context context) { if (getMessagesController().suggestedFilters.isEmpty()) { getMessagesController().loadSuggestedFilters(); } + BusinessLinksController.getInstance(currentAccount).load(false); } } @@ -731,6 +745,10 @@ public boolean onInterceptTouchEvent(MotionEvent ev) { }); } else if (cell.data.type == PREMIUM_FEATURE_FOLDER_TAGS) { presentFragment(new FiltersSetupActivity().highlightTags()); + } else if (cell.data.type == PREMIUM_FEATURE_BUSINESS_INTRO) { + presentFragment(new BusinessIntroActivity()); + } else if (cell.data.type == PREMIUM_FEATURE_BUSINESS_CHAT_LINKS) { + presentFragment(new BusinessLinksActivity()); } return; } @@ -808,14 +826,14 @@ public static void fillPremiumFeaturesList(ArrayList premium premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_ADVANCED_CHAT_MANAGEMENT, R.drawable.menu_premium_tools, LocaleController.getString(R.string.PremiumPreviewAdvancedChatManagement), LocaleController.getString(R.string.PremiumPreviewAdvancedChatManagementDescription))); premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_PROFILE_BADGE, R.drawable.msg_premium_badge, LocaleController.getString(R.string.PremiumPreviewProfileBadge), LocaleController.getString(R.string.PremiumPreviewProfileBadgeDescription))); premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_ANIMATED_AVATARS, R.drawable.msg_premium_avatar, LocaleController.getString(R.string.PremiumPreviewAnimatedProfiles), LocaleController.getString(R.string.PremiumPreviewAnimatedProfilesDescription))); - premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_SAVED_TAGS, R.drawable.premium_tags, applyNewSpan(LocaleController.getString(R.string.PremiumPreviewTags2)), LocaleController.getString(R.string.PremiumPreviewTagsDescription2))); + premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_SAVED_TAGS, R.drawable.premium_tags, LocaleController.getString(R.string.PremiumPreviewTags2), LocaleController.getString(R.string.PremiumPreviewTagsDescription2))); premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_APPLICATION_ICONS, R.drawable.msg_premium_icons, LocaleController.getString(R.string.PremiumPreviewAppIcon), LocaleController.getString(R.string.PremiumPreviewAppIconDescription))); premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_EMOJI_STATUS, R.drawable.premium_status, LocaleController.getString(R.string.PremiumPreviewEmojiStatus), LocaleController.getString(R.string.PremiumPreviewEmojiStatusDescription))); premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_TRANSLATIONS, R.drawable.msg_premium_translate, LocaleController.getString(R.string.PremiumPreviewTranslations), LocaleController.getString(R.string.PremiumPreviewTranslationsDescription))); premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_WALLPAPER, R.drawable.premium_wallpaper, LocaleController.getString(R.string.PremiumPreviewWallpaper), LocaleController.getString(R.string.PremiumPreviewWallpaperDescription))); premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_NAME_COLOR, R.drawable.premium_colors, LocaleController.getString(R.string.PremiumPreviewProfileColor), LocaleController.getString(R.string.PremiumPreviewProfileColorDescription))); - premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_LAST_SEEN, R.drawable.menu_premium_seen, applyNewSpan(LocaleController.getString(R.string.PremiumPreviewLastSeen)), LocaleController.getString(R.string.PremiumPreviewLastSeenDescription))); - premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_MESSAGE_PRIVACY, R.drawable.menu_premium_privacy, applyNewSpan(LocaleController.getString(R.string.PremiumPreviewMessagePrivacy)), LocaleController.getString(R.string.PremiumPreviewMessagePrivacyDescription))); + premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_LAST_SEEN, R.drawable.menu_premium_seen, LocaleController.getString(R.string.PremiumPreviewLastSeen), LocaleController.getString(R.string.PremiumPreviewLastSeenDescription))); + premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_MESSAGE_PRIVACY, R.drawable.menu_premium_privacy, LocaleController.getString(R.string.PremiumPreviewMessagePrivacy), LocaleController.getString(R.string.PremiumPreviewMessagePrivacyDescription))); premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_BUSINESS, R.drawable.filled_premium_business, applyNewSpan(LocaleController.getString(R.string.TelegramBusiness)), LocaleController.getString(R.string.PremiumPreviewBusinessDescription))); if (messagesController.premiumFeaturesTypesToPosition.size() > 0) { @@ -843,7 +861,9 @@ public static void fillBusinessFeaturesList(ArrayList premiu premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_BUSINESS_QUICK_REPLIES, R.drawable.filled_open_message, LocaleController.getString(R.string.PremiumBusinessQuickReplies), LocaleController.getString(R.string.PremiumBusinessQuickRepliesDescription))); premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_BUSINESS_GREETING_MESSAGES, R.drawable.premium_status, LocaleController.getString(R.string.PremiumBusinessGreetingMessages), LocaleController.getString(R.string.PremiumBusinessGreetingMessagesDescription))); premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_BUSINESS_AWAY_MESSAGES, R.drawable.filled_premium_away, LocaleController.getString(R.string.PremiumBusinessAwayMessages), LocaleController.getString(R.string.PremiumBusinessAwayMessagesDescription))); - premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_BUSINESS_CHATBOTS, R.drawable.filled_premium_bots, LocaleController.getString(R.string.PremiumBusinessChatbots), LocaleController.getString(R.string.PremiumBusinessChatbotsDescription))); + premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_BUSINESS_CHATBOTS, R.drawable.filled_premium_bots, applyNewSpan(LocaleController.getString(R.string.PremiumBusinessChatbots2)), LocaleController.getString(R.string.PremiumBusinessChatbotsDescription))); + premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_BUSINESS_CHAT_LINKS, R.drawable.filled_premium_chatlink, applyNewSpan(LocaleController.getString(R.string.PremiumBusinessChatLinks)), LocaleController.getString(R.string.PremiumBusinessChatLinksDescription))); + premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_BUSINESS_INTRO, R.drawable.filled_premium_intro, applyNewSpan(LocaleController.getString(R.string.PremiumBusinessIntro)), LocaleController.getString(R.string.PremiumBusinessIntroDescription))); } else { premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_EMOJI_STATUS, R.drawable.filled_premium_status2, LocaleController.getString(R.string.PremiumPreviewBusinessEmojiStatus), LocaleController.getString(R.string.PremiumPreviewBusinessEmojiStatusDescription))); premiumFeatures.add(new PremiumFeatureData(PREMIUM_FEATURE_FOLDER_TAGS, R.drawable.premium_tags, LocaleController.getString(R.string.PremiumPreviewFolderTags), LocaleController.getString(R.string.PremiumPreviewFolderTagsDescription))); @@ -852,7 +872,7 @@ public static void fillBusinessFeaturesList(ArrayList premiu if (messagesController.businessFeaturesTypesToPosition.size() > 0) { for (int i = 0; i < premiumFeatures.size(); i++) { - if (messagesController.businessFeaturesTypesToPosition.get(premiumFeatures.get(i).type, -1) == -1 && !BuildVars.DEBUG_PRIVATE_VERSION) { + if (messagesController.businessFeaturesTypesToPosition.get(premiumFeatures.get(i).type, -1) == -1 && !BuildVars.DEBUG_VERSION) { premiumFeatures.remove(i); i--; } @@ -1251,7 +1271,7 @@ public BackgroundView(Context context) { @Override public void onLongPress() { super.onLongPress(); - if (settingsView != null && !BuildVars.DEBUG_PRIVATE_VERSION) { + if (settingsView != null || !BuildVars.DEBUG_PRIVATE_VERSION) { return; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PrivacyControlActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PrivacyControlActivity.java index b6d3a573ae..735ecd3609 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PrivacyControlActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PrivacyControlActivity.java @@ -8,9 +8,8 @@ package org.telegram.ui; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.AnimatorSet; +import static org.telegram.messenger.LocaleController.getString; + import android.content.Context; import android.content.SharedPreferences; import android.graphics.Canvas; @@ -72,7 +71,6 @@ import org.telegram.ui.Components.AlertsCreator; import org.telegram.ui.Components.BackgroundGradientDrawable; import org.telegram.ui.Components.BackupImageView; -import org.telegram.ui.Components.BotWebViewContainer; import org.telegram.ui.Components.Bulletin; import org.telegram.ui.Components.BulletinFactory; import org.telegram.ui.Components.CombinedDrawable; @@ -100,8 +98,10 @@ public class PrivacyControlActivity extends BaseFragment implements Notification private int initialRulesSubType; private ArrayList initialPlus = new ArrayList<>(); private ArrayList initialMinus = new ArrayList<>(); + private final boolean[] initialPlusPremium = new boolean[2]; private int rulesType; + private final boolean[] currentPlusPremium = new boolean[2]; private ArrayList currentPlus; private ArrayList currentMinus; @@ -110,6 +110,7 @@ public class PrivacyControlActivity extends BaseFragment implements Notification private boolean prevSubtypeContacts; + private int setBirthdayRow; private int messageRow; private int sectionRow; private int everybodyRow; @@ -149,6 +150,7 @@ public class PrivacyControlActivity extends BaseFragment implements Notification public final static int PRIVACY_RULES_TYPE_VOICE_MESSAGES = 8; public final static int PRIVACY_RULES_TYPE_BIO = 9; public final static int PRIVACY_RULES_TYPE_MESSAGES = 10; + public final static int PRIVACY_RULES_TYPE_BIRTHDAY = 11; public final static int TYPE_EVERYBODY = 0; public final static int TYPE_NOBODY = 1; @@ -467,13 +469,15 @@ public View createView(Context context) { } else if (rulesType == PRIVACY_RULES_TYPE_CALLS) { actionBar.setTitle(LocaleController.getString("Calls", R.string.Calls)); } else if (rulesType == PRIVACY_RULES_TYPE_INVITE) { - actionBar.setTitle(LocaleController.getString("GroupsAndChannels", R.string.GroupsAndChannels)); + actionBar.setTitle(LocaleController.getString("PrivacyInvites", R.string.PrivacyInvites)); } else if (rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES) { actionBar.setTitle(LocaleController.getString("PrivacyVoiceMessages", R.string.PrivacyVoiceMessages)); } else if (rulesType == PRIVACY_RULES_TYPE_LASTSEEN) { actionBar.setTitle(LocaleController.getString("PrivacyLastSeen", R.string.PrivacyLastSeen)); } else if (rulesType == PRIVACY_RULES_TYPE_MESSAGES) { actionBar.setTitle(LocaleController.getString(R.string.PrivacyMessages)); + } else if (rulesType == PRIVACY_RULES_TYPE_BIRTHDAY) { + actionBar.setTitle(LocaleController.getString(R.string.PrivacyBirthday)); } actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -564,7 +568,7 @@ protected void dispatchDraw(Canvas canvas) { cameraDrawable.setCustomEndFrame(43); setAvatarCell.imageView.playAnimation(); } - } else if (rulesType == PRIVACY_RULES_TYPE_MESSAGES && position == myContactsRow && !getUserConfig().isPremium()) { + } else if (rulesType == PRIVACY_RULES_TYPE_MESSAGES && position == myContactsRow && !getMessagesController().newNoncontactPeersRequirePremiumWithoutOwnpremium && !getUserConfig().isPremium()) { BulletinFactory.of(this).createSimpleBulletin( R.raw.star_premium_2, LocaleController.getString(R.string.OptionPremiumRequiredTitle), @@ -624,50 +628,31 @@ protected void dispatchDraw(Canvas canvas) { } else { createFromArray = currentPlus; } - if (createFromArray.isEmpty()) { - Bundle args = new Bundle(); - args.putBoolean(position == neverShareRow ? "isNeverShare" : "isAlwaysShare", true); - args.putInt("chatAddType", rulesType != PRIVACY_RULES_TYPE_LASTSEEN ? 1 : 0); - GroupCreateActivity fragment = new GroupCreateActivity(args); - fragment.setDelegate(ids -> { - if (position == neverShareRow) { - currentMinus = ids; - for (int a = 0; a < currentMinus.size(); a++) { - currentPlus.remove(currentMinus.get(a)); - } - } else { - currentPlus = ids; - for (int a = 0; a < currentPlus.size(); a++) { - currentMinus.remove(currentPlus.get(a)); - } + Bundle args = new Bundle(); + args.putBoolean(position == neverShareRow ? "isNeverShare" : "isAlwaysShare", true); + args.putInt("chatAddType", rulesType != PRIVACY_RULES_TYPE_LASTSEEN ? 1 : 0); + if (position == alwaysShareRow && rulesType == PRIVACY_RULES_TYPE_INVITE) { + args.putBoolean("allowPremium", true); + } + GroupCreateActivity fragment = new GroupCreateActivity(args); + fragment.select(createFromArray, position == alwaysShareRow && currentPlusPremium[currentType == TYPE_CONTACTS ? 0 : 1]); + fragment.setDelegate((premium, ids) -> { + if (position == neverShareRow) { + currentMinus = ids; + for (int a = 0; a < currentMinus.size(); a++) { + currentPlus.remove(currentMinus.get(a)); } - updateDoneButton(); - listAdapter.notifyDataSetChanged(); - }); - presentFragment(fragment); - } else { - PrivacyUsersActivity fragment = new PrivacyUsersActivity(PrivacyUsersActivity.TYPE_PRIVACY, createFromArray, rulesType != PRIVACY_RULES_TYPE_LASTSEEN && rulesType != PRIVACY_RULES_TYPE_PHOTO && rulesType != PRIVACY_RULES_TYPE_BIO, position == alwaysShareRow); - fragment.setDelegate((ids, added) -> { - if (position == neverShareRow) { - currentMinus = ids; - if (added) { - for (int a = 0; a < currentMinus.size(); a++) { - currentPlus.remove(currentMinus.get(a)); - } - } - } else { - currentPlus = ids; - if (added) { - for (int a = 0; a < currentPlus.size(); a++) { - currentMinus.remove(currentPlus.get(a)); - } - } + } else { + currentPlusPremium[currentType == TYPE_CONTACTS ? 0 : 1] = premium; + currentPlus = ids; + for (int a = 0; a < currentPlus.size(); a++) { + currentMinus.remove(currentPlus.get(a)); } - updateDoneButton(); - listAdapter.notifyDataSetChanged(); - }); - presentFragment(fragment); - } + } + updateDoneButton(); + listAdapter.notifyDataSetChanged(); + }); + presentFragment(fragment); } else if (position == p2pRow) { presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_P2P)); } else if (position == readRow) { @@ -771,6 +756,8 @@ private void applyCurrentPrivacySettings() { req.key = new TLRPC.TL_inputPrivacyKeyChatInvite(); } else if (rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES) { req.key = new TLRPC.TL_inputPrivacyKeyVoiceMessages(); + } else if (rulesType == PRIVACY_RULES_TYPE_BIRTHDAY) { + req.key = new TLRPC.TL_inputPrivacyKeyBirthday(); } else { req.key = new TLRPC.TL_inputPrivacyKeyStatusTimestamp(); } @@ -821,6 +808,9 @@ private void applyCurrentPrivacySettings() { } else if (currentType == TYPE_CONTACTS) { req.rules.add(new TLRPC.TL_inputPrivacyValueAllowContacts()); } + if (currentType != 0 && currentPlusPremium[currentType == TYPE_CONTACTS ? 0 : 1]) { + req.rules.add(new TLRPC.TL_inputPrivacyValueAllowPremium()); + } AlertDialog progressDialog = null; if (getParentActivity() != null) { progressDialog = new AlertDialog(getParentActivity(), AlertDialog.ALERT_TYPE_SPINNER); @@ -881,6 +871,8 @@ private void checkPrivacy() { currentPlus = new ArrayList<>(); return; } + currentPlusPremium[0] = initialPlusPremium[0] = rulesType == PRIVACY_RULES_TYPE_INVITE; + currentPlusPremium[1] = initialPlusPremium[1] = false; currentPlus = new ArrayList<>(); currentMinus = new ArrayList<>(); ArrayList privacyRules = ContactsController.getInstance(currentAccount).getPrivacyRules(rulesType); @@ -888,6 +880,8 @@ private void checkPrivacy() { currentType = TYPE_NOBODY; } else { int type = -1; + boolean premium = false; + boolean hadAllowContacts = false; for (int a = 0; a < privacyRules.size(); a++) { TLRPC.PrivacyRule rule = privacyRules.get(a); if (rule instanceof TLRPC.TL_privacyValueAllowChatParticipants) { @@ -906,10 +900,19 @@ private void checkPrivacy() { } else if (rule instanceof TLRPC.TL_privacyValueDisallowUsers) { TLRPC.TL_privacyValueDisallowUsers privacyValueDisallowUsers = (TLRPC.TL_privacyValueDisallowUsers) rule; currentMinus.addAll(privacyValueDisallowUsers.users); + } else if (rule instanceof TLRPC.TL_privacyValueAllowPremium) { + premium = true; + } else if (rule instanceof TLRPC.TL_privacyValueAllowAll) { + type = 0; + } else if (rule instanceof TLRPC.TL_privacyValueDisallowAll && !hadAllowContacts) { + type = 1; + } else if (rule instanceof TLRPC.TL_privacyValueAllowContacts) { + hadAllowContacts = true; + type = 2; } else if (type == -1) { if (rule instanceof TLRPC.TL_privacyValueAllowAll) { type = 0; - } else if (rule instanceof TLRPC.TL_privacyValueDisallowAll) { + } else if (rule instanceof TLRPC.TL_privacyValueDisallowAll && !hadAllowContacts) { type = 1; } else { type = 2; @@ -923,6 +926,8 @@ private void checkPrivacy() { } else if (type == TYPE_NOBODY || type == -1 && currentPlus.size() > 0) { currentType = TYPE_NOBODY; } + int a = currentType == TYPE_CONTACTS ? 0 : 1; + currentPlusPremium[a] = initialPlusPremium[a] = premium; if (doneButton != null) { doneButton.setAlpha(0.0f); doneButton.setScaleX(0.0f); @@ -975,6 +980,9 @@ private boolean hasChanges() { if (rulesType == PRIVACY_RULES_TYPE_PHONE && currentType == TYPE_NOBODY && initialRulesSubType != currentSubType) { return true; } + if (currentType != 0 && initialPlusPremium[currentType == TYPE_CONTACTS ? 0 : 1] != currentPlusPremium[currentType == TYPE_CONTACTS ? 0 : 1]) { + return true; + } if (initialMinus.size() != currentMinus.size()) { return true; } @@ -1005,6 +1013,7 @@ private void updateRows(boolean animated) { currentPhotoForRestRow = -1; photoForRestDescriptionRow = -1; messageRow = -1; + setBirthdayRow = -1; phoneDetailRow = -1; phoneSectionRow = -1; phoneEverybodyRow = -1; @@ -1021,6 +1030,12 @@ private void updateRows(boolean animated) { readPremiumRow = readPremiumDetailRow = -1; rowCount = 0; + if (rulesType == PRIVACY_RULES_TYPE_BIRTHDAY) { + TLRPC.UserFull userFull = getMessagesController().getUserFull(getUserConfig().getClientUserId()); + if (userFull != null && userFull.birthday == null) { + setBirthdayRow = rowCount++; + } + } if (rulesType == PRIVACY_RULES_TYPE_FORWARDS) { messageRow = rowCount++; } @@ -1036,7 +1051,8 @@ private void updateRows(boolean animated) { rulesType == PRIVACY_RULES_TYPE_FORWARDS || rulesType == PRIVACY_RULES_TYPE_PHONE || rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES || - rulesType == PRIVACY_RULES_TYPE_INVITE + rulesType == PRIVACY_RULES_TYPE_INVITE || + rulesType == PRIVACY_RULES_TYPE_BIRTHDAY ) { nobodyRow = rowCount++; } @@ -1348,6 +1364,13 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { value = LocaleController.getString("EmpryUsersPlaceholder", R.string.EmpryUsersPlaceholder); } + if (currentPlusPremium[currentType == TYPE_CONTACTS ? 0 : 1]) { + if (currentPlus == null || currentPlus.isEmpty()) { + value = LocaleController.formatString(R.string.PrivacyPremium); + } else { + value = LocaleController.formatString(R.string.PrivacyPremiumAnd, value); + } + } if (rulesType != PRIVACY_RULES_TYPE_LASTSEEN && rulesType != PRIVACY_RULES_TYPE_PHOTO && rulesType != PRIVACY_RULES_TYPE_BIO) { textCell.setTextAndValue(LocaleController.getString("AlwaysAllow", R.string.AlwaysAllow), value, neverShareRow != -1); } else { @@ -1394,6 +1417,59 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { backgroundResId = R.drawable.greydivider_bottom; } + } else if (position == setBirthdayRow) { + privacyCell.setText(AndroidUtilities.replaceArrows(AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.PrivacyBirthdaySet), () -> { + showDialog(AlertsCreator.createBirthdayPickerDialog(getContext(), getString(R.string.EditProfileBirthdayTitle), getString(R.string.EditProfileBirthdayButton), null, birthday -> { + TLRPC.TL_account_updateBirthday req = new TLRPC.TL_account_updateBirthday(); + req.flags |= 1; + req.birthday = birthday; + TLRPC.UserFull userFull = getMessagesController().getUserFull(getUserConfig().getClientUserId()); + TLRPC.TL_birthday oldBirthday = userFull != null ? userFull.birthday : null; + if (userFull != null) { + userFull.flags2 |= 32; + userFull.birthday = birthday; + getMessagesStorage().updateUserInfo(userFull, false); + } + getConnectionsManager().sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TLRPC.TL_boolTrue) { + BulletinFactory.of(PrivacyControlActivity.this) + .createSimpleBulletin(R.raw.contact_check, LocaleController.getString(R.string.PrivacyBirthdaySetDone)) + .setDuration(Bulletin.DURATION_PROLONG).show(); + } else { + if (userFull != null) { + if (oldBirthday == null) { + userFull.flags2 &=~ 32; + } else { + userFull.flags2 |= 32; + } + userFull.birthday = oldBirthday; + getMessagesStorage().updateUserInfo(userFull, false); + } + if (err != null && err.text != null && err.text.startsWith("FLOOD_WAIT_")) { + if (getContext() != null) { + showDialog( + new AlertDialog.Builder(getContext(), resourceProvider) + .setTitle(getString(R.string.PrivacyBirthdayTooOftenTitle)) + .setMessage(getString(R.string.PrivacyBirthdayTooOftenMessage)) + .setPositiveButton(getString(R.string.OK), null) + .create() + ); + } + } else { + BulletinFactory.of(PrivacyControlActivity.this) + .createSimpleBulletin(R.raw.error, LocaleController.getString(R.string.UnknownError)) + .show(); + } + } + }), ConnectionsManager.RequestFlagDoNotWaitFloodWait); + + MessagesController.getInstance(currentAccount).removeSuggestion(0, "BIRTHDAY_SETUP"); + + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.premiumPromoUpdated); + updateRows(true); + }, null, getResourceProvider()).create()); + }), true)); + backgroundResId = R.drawable.greydivider; } else if (position == detailRow) { if (rulesType == PRIVACY_RULES_TYPE_PHONE) { if (prevSubtypeContacts = (currentType == TYPE_NOBODY && currentSubType == 1)) { @@ -1425,7 +1501,9 @@ public void onClick(@NonNull View view) { } else if (rulesType == PRIVACY_RULES_TYPE_PHOTO) { privacyCell.setText(LocaleController.getString("PrivacyProfilePhotoInfo", R.string.PrivacyProfilePhotoInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_BIO) { - privacyCell.setText(LocaleController.getString("PrivacyBioInfo", R.string.PrivacyBioInfo)); + privacyCell.setText(LocaleController.getString("PrivacyBioInfo3", R.string.PrivacyBioInfo3)); + } else if (rulesType == PRIVACY_RULES_TYPE_BIRTHDAY) { + privacyCell.setText(LocaleController.getString(R.string.PrivacyBirthdayInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_P2P) { privacyCell.setText(LocaleController.getString("PrivacyCallsP2PHelp", R.string.PrivacyCallsP2PHelp)); } else if (rulesType == PRIVACY_RULES_TYPE_CALLS) { @@ -1453,6 +1531,8 @@ public void onClick(@NonNull View view) { privacyCell.setText(LocaleController.getString("CustomP2PInfo", R.string.CustomP2PInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_BIO) { privacyCell.setText(LocaleController.getString("PrivacyBioInfo", R.string.PrivacyBioInfo)); + } else if (rulesType == PRIVACY_RULES_TYPE_BIRTHDAY) { + privacyCell.setText(LocaleController.getString(R.string.PrivacyBirthdayInfo3)); } else if (rulesType == PRIVACY_RULES_TYPE_CALLS) { privacyCell.setText(LocaleController.getString("CustomCallInfo", R.string.CustomCallInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_INVITE) { @@ -1506,6 +1586,8 @@ public void onClick(@NonNull View view) { headerCell.setText(LocaleController.getString("PrivacyVoiceMessagesTitle", R.string.PrivacyVoiceMessagesTitle)); } else if (rulesType == PRIVACY_RULES_TYPE_MESSAGES) { headerCell.setText(LocaleController.getString(R.string.PrivacyMessagesTitle)); + } else if (rulesType == PRIVACY_RULES_TYPE_BIRTHDAY) { + headerCell.setText(LocaleController.getString(R.string.PrivacyBirthdayTitle)); } else { headerCell.setText(LocaleController.getString("LastSeenTitle", R.string.LastSeenTitle)); } @@ -1528,7 +1610,7 @@ public void onClick(@NonNull View view) { radioCell.setText(LocaleController.getString("LastSeenEverybody", R.string.LastSeenEverybody), currentType == TYPE_EVERYBODY, true); } } else if (position == myContactsRow) { - if ((rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES || rulesType == PRIVACY_RULES_TYPE_MESSAGES) && !getUserConfig().isPremium()) { + if (rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES && !getUserConfig().isPremium() || rulesType == PRIVACY_RULES_TYPE_MESSAGES && !getMessagesController().newNoncontactPeersRequirePremiumWithoutOwnpremium && !getUserConfig().isPremium()) { radioCell.setRadioIcon(getContext().getResources().getDrawable(R.drawable.mini_switch_lock).mutate()); } if (rulesType == PRIVACY_RULES_TYPE_P2P) { @@ -1539,7 +1621,7 @@ public void onClick(@NonNull View view) { radioCell.setText(LocaleController.getString("LastSeenContacts", R.string.LastSeenContacts), currentType == TYPE_CONTACTS, nobodyRow != -1); } } else { - if ((rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES || rulesType == PRIVACY_RULES_TYPE_MESSAGES) && !getUserConfig().isPremium()) { + if (rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES && !getUserConfig().isPremium() || rulesType == PRIVACY_RULES_TYPE_MESSAGES && !getMessagesController().newNoncontactPeersRequirePremiumWithoutOwnpremium && !getUserConfig().isPremium()) { radioCell.setRadioIcon(getContext().getResources().getDrawable(R.drawable.mini_switch_lock).mutate()); } if (rulesType == PRIVACY_RULES_TYPE_P2P) { @@ -1569,7 +1651,7 @@ public void onClick(@NonNull View view) { public int getItemViewType(int position) { if (position == alwaysShareRow || position == neverShareRow || position == p2pRow || position == readPremiumRow) { return 0; - } else if (position == shareDetailRow || position == detailRow || position == p2pDetailRow || position == photoForRestDescriptionRow || position == readDetailRow || position == readPremiumDetailRow) { + } else if (position == shareDetailRow || position == detailRow || position == p2pDetailRow || position == photoForRestDescriptionRow || position == readDetailRow || position == readPremiumDetailRow || position == setBirthdayRow) { return 1; } else if (position == sectionRow || position == shareSectionRow || position == p2pSectionRow || position == phoneSectionRow) { return 2; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java index 9b8ea9502e..b0b7626b81 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java @@ -66,6 +66,8 @@ import org.telegram.ui.Components.Premium.PremiumGradient; import org.telegram.ui.Components.RecyclerListView; import org.telegram.ui.Components.TextStyleSpan; +import org.telegram.ui.bots.BotBiometry; +import org.telegram.ui.bots.BotBiometrySettings; import java.util.ArrayList; @@ -87,6 +89,7 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio private int lastSeenRow; private int profilePhotoRow; private int bioRow; + private int birthdayRow; private int forwardsRow; private int callsRow; private int voicesRow; @@ -111,6 +114,7 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio private int passportRow; private int paymentsClearRow; private int webSessionsRow; + private int botsBiometryRow; private int botsDetailRow; private int botsAndWebsitesShadowRow; private int contactsSectionRow; @@ -124,6 +128,8 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio private int secretDetailRow; private int rowCount; + private final ArrayList biometryBots = new ArrayList<>(); + private boolean deleteAccountUpdate; private boolean secretMapUpdate; private boolean currentSync; @@ -363,6 +369,8 @@ public boolean supportsPredictiveItemAnimations() { presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_PHOTO)); } else if (position == bioRow) { presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_BIO)); + } else if (position == birthdayRow) { + presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_BIRTHDAY)); } else if (position == forwardsRow) { presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_FORWARDS)); } else if (position == voicesRow) { @@ -585,9 +593,17 @@ public boolean supportsPredictiveItemAnimations() { } } else if (position == passportRow) { presentFragment(new PassportActivity(PassportActivity.TYPE_PASSWORD, 0, "", "", null, null, null, null, null)); + } else if (position == botsBiometryRow) { + presentFragment(new BotBiometrySettings()); } }); + BotBiometry.getBots(getContext(), currentAccount, bots -> { + biometryBots.clear(); + biometryBots.addAll(bots); + updateRows(true); + }); + return fragmentView; } @@ -653,10 +669,8 @@ private void updateRows(boolean notify) { phoneNumberRow = rowCount++; lastSeenRow = rowCount++; profilePhotoRow = rowCount++; - bioRow = rowCount++; forwardsRow = rowCount++; callsRow = rowCount++; - groupsRow = rowCount++; groupsDetailRow = -1; if (!getMessagesController().premiumFeaturesBlocked() || getUserConfig().isPremium()) { voicesRow = rowCount++; @@ -665,6 +679,9 @@ private void updateRows(boolean notify) { voicesRow = -1; noncontactsRow = -1; } + birthdayRow = rowCount++; + bioRow = rowCount++; + groupsRow = rowCount++; privacyShadowRow = rowCount++; if (getMessagesController().autoarchiveAvailable || getUserConfig().isPremium()) { @@ -686,6 +703,11 @@ private void updateRows(boolean notify) { passportRow = -1; } paymentsClearRow = rowCount++; + if (!biometryBots.isEmpty()) { + botsBiometryRow = rowCount++; + } else { + botsBiometryRow = -1; + } if (webSessionsActivityPreload != null && webSessionsActivityPreload.getSessionsCount() > 0) { webSessionsRow = rowCount++; botsDetailRow = rowCount++; @@ -773,6 +795,7 @@ public static String formatRulesString(AccountInstance accountInstance, int rule int type = -1; int plus = 0; int minus = 0; + boolean premium = false; for (int a = 0; a < privacyRules.size(); a++) { TLRPC.PrivacyRule rule = privacyRules.get(a); if (rule instanceof TLRPC.TL_privacyValueAllowChatParticipants) { @@ -799,6 +822,8 @@ public static String formatRulesString(AccountInstance accountInstance, int rule } else if (rule instanceof TLRPC.TL_privacyValueDisallowUsers) { TLRPC.TL_privacyValueDisallowUsers privacyValueDisallowUsers = (TLRPC.TL_privacyValueDisallowUsers) rule; minus += privacyValueDisallowUsers.users.size(); + } else if (rule instanceof TLRPC.TL_privacyValueAllowPremium) { + premium = true; } else if (type == -1) { if (rule instanceof TLRPC.TL_privacyValueAllowAll) { type = 0; @@ -824,33 +849,33 @@ public static String formatRulesString(AccountInstance accountInstance, int rule } } } else if (type == 2 || type == -1 && minus > 0 && plus > 0) { - if (rulesType == 3) { + if (rulesType == PrivacyControlActivity.PRIVACY_RULES_TYPE_P2P) { if (plus == 0 && minus == 0) { return LocaleController.getString("P2PContacts", R.string.P2PContacts); } else { if (plus != 0 && minus != 0) { - return LocaleController.formatString("P2PContactsMinusPlus", R.string.P2PContactsMinusPlus, minus, plus); + return LocaleController.formatString(R.string.P2PContactsMinusPlus, minus, plus); } else if (minus != 0) { - return LocaleController.formatString("P2PContactsMinus", R.string.P2PContactsMinus, minus); + return LocaleController.formatString(R.string.P2PContactsMinus, minus); } else { - return LocaleController.formatString("P2PContactsPlus", R.string.P2PContactsPlus, plus); + return LocaleController.formatString(R.string.P2PContactsPlus, plus); } } } else { if (plus == 0 && minus == 0) { - return LocaleController.getString("LastSeenContacts", R.string.LastSeenContacts); + return LocaleController.getString(premium ? R.string.LastSeenContactsPremium : R.string.LastSeenContacts); } else { if (plus != 0 && minus != 0) { - return LocaleController.formatString("LastSeenContactsMinusPlus", R.string.LastSeenContactsMinusPlus, minus, plus); + return LocaleController.formatString(premium ? R.string.LastSeenContactsPremiumMinusPlus : R.string.LastSeenContactsMinusPlus, minus, plus); } else if (minus != 0) { - return LocaleController.formatString("LastSeenContactsMinus", R.string.LastSeenContactsMinus, minus); + return LocaleController.formatString(premium ? R.string.LastSeenContactsPremiumMinus : R.string.LastSeenContactsMinus, minus); } else { - return LocaleController.formatString("LastSeenContactsPlus", R.string.LastSeenContactsPlus, plus); + return LocaleController.formatString(premium ? R.string.LastSeenContactsPremiumPlus : R.string.LastSeenContactsPlus, plus); } } } } else if (type == 1 || plus > 0) { - if (rulesType == 3) { + if (rulesType == PrivacyControlActivity.PRIVACY_RULES_TYPE_P2P) { if (plus == 0) { return LocaleController.getString("P2PNobody", R.string.P2PNobody); } else { @@ -858,9 +883,9 @@ public static String formatRulesString(AccountInstance accountInstance, int rule } } else { if (plus == 0) { - return LocaleController.getString("LastSeenNobody", R.string.LastSeenNobody); + return LocaleController.getString(premium ? R.string.LastSeenNobodyPremium : R.string.LastSeenNobody); } else { - return LocaleController.formatString("LastSeenNobodyPlus", R.string.LastSeenNobodyPlus, plus); + return LocaleController.formatString(premium ? R.string.LastSeenNobodyPremiumPlus : R.string.LastSeenNobodyPlus, plus); } } } @@ -892,6 +917,7 @@ public boolean isEnabled(RecyclerView.ViewHolder holder) { position == callsRow && !getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_CALLS) || position == profilePhotoRow && !getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_PHOTO) || position == bioRow && !getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_BIO) || + position == birthdayRow && !getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_BIRTHDAY) || position == forwardsRow && !getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_FORWARDS) || position == phoneNumberRow && !getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_PHONE) || position == voicesRow && !getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_VOICE_MESSAGES) || @@ -899,7 +925,8 @@ public boolean isEnabled(RecyclerView.ViewHolder holder) { position == deleteAccountRow && !getContactsController().getLoadingDeleteInfo() || position == newChatsRow && !getContactsController().getLoadingGlobalSettings() || position == emailLoginRow || position == paymentsClearRow || position == secretMapRow || - position == contactsSyncRow || position == passportRow || position == contactsDeleteRow || position == contactsSuggestRow || position == autoDeleteMesages; + position == contactsSyncRow || position == passportRow || position == contactsDeleteRow || + position == contactsSuggestRow || position == autoDeleteMesages || position == botsBiometryRow; } @Override @@ -973,7 +1000,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_INVITE); } - textCell.setTextAndValue(LocaleController.getString("GroupsAndChannels", R.string.GroupsAndChannels), value, true); + textCell.setTextAndValue(LocaleController.getString(R.string.PrivacyInvites), value, false); } else if (position == callsRow) { if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_CALLS)) { showLoading = true; @@ -998,6 +1025,14 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_BIO); } textCell.setTextAndValue(LocaleController.getString("PrivacyBio", R.string.PrivacyBio), value, true); + } else if (position == birthdayRow) { + if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_BIRTHDAY)) { + showLoading = true; + loadingLen = 30; + } else { + value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_BIRTHDAY); + } + textCell.setTextAndValue(LocaleController.getString(R.string.PrivacyBirthday), value, true); } else if (position == forwardsRow) { if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_FORWARDS)) { showLoading = true; @@ -1020,7 +1055,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { imageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayIcon), PorterDuff.Mode.MULTIPLY)); } else if (position == noncontactsRow) { value = LocaleController.getString(noncontactsValue ? R.string.ContactsAndPremium : R.string.P2PEverybody); - textCell.setTextAndValue(addPremiumStar(LocaleController.getString(R.string.PrivacyMessages)), value, false); + textCell.setTextAndValue(getMessagesController().newNoncontactPeersRequirePremiumWithoutOwnpremium ? LocaleController.getString(R.string.PrivacyMessages) : addPremiumStar(LocaleController.getString(R.string.PrivacyMessages)), value, bioRow != -1); } else if (position == passportRow) { textCell.setText(LocaleController.getString("TelegramPassport", R.string.TelegramPassport), true); } else if (position == deleteAccountRow) { @@ -1040,6 +1075,8 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { deleteAccountUpdate = false; } else if (position == paymentsClearRow) { textCell.setText(LocaleController.getString("PrivacyPaymentsClear", R.string.PrivacyPaymentsClear), true); + } else if (position == botsBiometryRow) { + textCell.setText(LocaleController.getString(R.string.PrivacyBiometryBotsButton), true); } else if (position == secretMapRow) { switch (SharedConfig.mapPreviewType) { case 0: @@ -1077,6 +1114,8 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { privacyCell.setText(LocaleController.getString("SecretWebPageInfo", R.string.SecretWebPageInfo)); } else if (position == botsDetailRow) { privacyCell.setText(LocaleController.getString("PrivacyBotsInfo", R.string.PrivacyBotsInfo)); + } else if (position == privacyShadowRow) { + privacyCell.setText(LocaleController.getString(R.string.PrivacyInvitesInfo)); } else if (position == contactsDetailRow) { /*if (newSync) { privacyCell.setText(LocaleController.getString("SyncContactsInfoOn", R.string.SyncContactsInfoOn)); @@ -1209,15 +1248,15 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { public int getItemViewType(int position) { if (position == passportRow || position == lastSeenRow || position == phoneNumberRow || position == deleteAccountRow || position == webSessionsRow || position == groupsRow || position == paymentsClearRow || - position == secretMapRow || position == contactsDeleteRow) { + position == secretMapRow || position == contactsDeleteRow || position == botsBiometryRow) { return 0; - } else if (position == deleteAccountDetailRow || position == groupsDetailRow || position == sessionsDetailRow || position == secretDetailRow || position == botsDetailRow || position == contactsDetailRow || position == newChatsSectionRow) { + } else if (position == privacyShadowRow || position == deleteAccountDetailRow || position == groupsDetailRow || position == sessionsDetailRow || position == secretDetailRow || position == botsDetailRow || position == contactsDetailRow || position == newChatsSectionRow) { return 1; } else if (position == securitySectionRow || position == advancedSectionRow || position == privacySectionRow || position == secretSectionRow || position == botsSectionRow || position == contactsSectionRow || position == newChatsHeaderRow) { return 2; } else if (position == secretWebpageRow || position == contactsSyncRow || position == contactsSuggestRow || position == newChatsRow) { return 3; - } else if (position == privacyShadowRow || position == botsAndWebsitesShadowRow) { + } else if (position == botsAndWebsitesShadowRow) { return 4; } else if (position == autoDeleteMesages || position == sessionsRow || position == emailLoginRow || position == passwordRow || position == passcodeRow || position == blockedRow) { return 5; @@ -1228,9 +1267,9 @@ public int getItemViewType(int position) { private SpannableString premiumStar; private CharSequence addPremiumStar(String text) { - if (!getUserConfig().isPremium()) { - return text; - } +// if (getUserConfig().isPremium()) { +// return text; +// } if (premiumStar == null) { premiumStar = new SpannableString("โ˜…"); Drawable drawable = new AnimatedEmojiDrawable.WrapSizeDrawable(PremiumGradient.getInstance().premiumStarMenuDrawable, dp(18), dp(18)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PrivacyUsersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PrivacyUsersActivity.java index 977751a7b1..9751fd74cd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PrivacyUsersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PrivacyUsersActivity.java @@ -68,6 +68,7 @@ public class PrivacyUsersActivity extends BaseFragment implements NotificationCe private boolean isGroup; private ArrayList uidArray; private boolean isAlwaysShare; + public int rulesType; private PrivacyActivityDelegate delegate; @@ -89,6 +90,11 @@ public PrivacyUsersActivity() { blockedUsersActivity = true; } + public PrivacyUsersActivity loadBlocked() { + getMessagesController().getBlockedPeers(true); + return this; + } + public PrivacyUsersActivity(int type, ArrayList users, boolean group, boolean always) { super(); uidArray = users; @@ -227,8 +233,11 @@ public void onItemClick(int id) { } else if (currentType == TYPE_FILTER) { args.putInt("chatAddType", 2); } + if (isAlwaysShare && rulesType == PrivacyControlActivity.PRIVACY_RULES_TYPE_INVITE) { + args.putBoolean("allowPremium", true); + } GroupCreateActivity fragment = new GroupCreateActivity(args); - fragment.setDelegate(ids -> { + fragment.setDelegate((premium, ids) -> { for (Long id1 : ids) { if (uidArray.contains(id1)) { continue; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java index e82e25499a..48818da6e7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java @@ -11,6 +11,7 @@ import static androidx.core.view.ViewCompat.TYPE_TOUCH; import static org.telegram.messenger.AndroidUtilities.dp; import static org.telegram.messenger.ContactsController.PRIVACY_RULES_TYPE_ADDED_BY_PHONE; +import static org.telegram.messenger.LocaleController.formatString; import android.Manifest; import android.animation.Animator; @@ -64,6 +65,7 @@ import android.text.Spanned; import android.text.TextPaint; import android.text.TextUtils; +import android.text.style.CharacterStyle; import android.text.style.ClickableSpan; import android.text.style.ForegroundColorSpan; import android.util.Property; @@ -121,6 +123,8 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.ApplicationLoader; import org.telegram.messenger.BuildConfig; +import org.telegram.messenger.BillingController; +import org.telegram.messenger.BirthdayController; import org.telegram.messenger.BuildVars; import org.telegram.messenger.ChatObject; import org.telegram.messenger.ChatThemeController; @@ -156,7 +160,7 @@ import org.telegram.tgnet.SerializedData; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; -import org.telegram.tgnet.tl.TL_stories; +import org.telegram.tgnet.tl.TL_fragment; import org.telegram.ui.ActionBar.ActionBar; import org.telegram.ui.ActionBar.ActionBarLayout; import org.telegram.ui.ActionBar.ActionBarMenu; @@ -182,9 +186,11 @@ import org.telegram.ui.Cells.GraySectionCell; import org.telegram.ui.Cells.HeaderCell; import org.telegram.ui.Cells.NotificationsCheckCell; +import org.telegram.ui.Cells.ProfileChannelCell; import org.telegram.ui.Cells.SettingsSearchCell; import org.telegram.ui.Cells.SettingsSuggestionCell; import org.telegram.ui.Cells.ShadowSectionCell; +import org.telegram.ui.Cells.ShareDialogCell; import org.telegram.ui.Cells.TextCell; import org.telegram.ui.Cells.TextCheckCell; import org.telegram.ui.Cells.TextDetailCell; @@ -235,8 +241,11 @@ import org.telegram.ui.Components.Premium.LimitReachedBottomSheet; import org.telegram.ui.Components.Premium.PremiumFeatureBottomSheet; import org.telegram.ui.Components.Premium.PremiumGradient; +import org.telegram.ui.Components.Premium.PremiumNotAvailableBottomSheet; import org.telegram.ui.Components.Premium.PremiumPreviewBottomSheet; import org.telegram.ui.Components.Premium.ProfilePremiumCell; +import org.telegram.ui.Components.Premium.boosts.BoostRepository; +import org.telegram.ui.Components.Premium.boosts.PremiumPreviewGiftToUsersBottomSheet; import org.telegram.ui.Components.Premium.boosts.UserSelectorBottomSheet; import org.telegram.ui.Components.ProfileGalleryView; import org.telegram.ui.Components.RLottieDrawable; @@ -262,6 +271,7 @@ import org.telegram.ui.Stories.StoryViewer; import org.telegram.ui.Stories.recorder.DualCameraView; import org.telegram.ui.Stories.recorder.StoryRecorder; +import org.telegram.ui.bots.BotBiometry; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; @@ -269,12 +279,15 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.time.DayOfWeek; +import java.time.LocalDate; +import java.time.Period; import java.time.format.TextStyle; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashSet; @@ -486,6 +499,10 @@ public void setAlpha(int a) { private TLRPC.ChatFull chatInfo; private TLRPC.UserFull userInfo; + public ProfileChannelCell.ChannelMessageFetcher profileChannelMessageFetcher; + public boolean createdBirthdayFetcher; + public ProfileBirthdayEffect.BirthdayEffectFetcher birthdayFetcher; + private CharSequence currentBio; private long selectedUser; @@ -524,8 +541,9 @@ public void setAlpha(int a) { private final static int view_discussion = 22; private final static int delete_topic = 23; - private final static int aliasChannelName = 43; - private final static int edit_name = 30; + private final static int aliasChannelName = 100; + private final static int edit_name = 101; + private final static int edit_info = 30; private final static int logout = 31; private final static int search_button = 32; private final static int set_as_main = 33; @@ -545,8 +563,11 @@ public void setAlpha(int a) { private int setAvatarRow; private int setAvatarSectionRow; + private int channelRow; + private int channelDividerRow; private int numberSectionRow; private int numberRow; + public int birthdayRow; private int setUsernameRow; private int bioRow; private int phoneSuggestionSectionRow; @@ -659,6 +680,8 @@ public void setAlpha(int a) { HashSet notificationsExceptionTopics = new HashSet<>(); + private CharacterStyle loadingSpan; + private final Property HEADER_SHADOW = new AnimationProperties.FloatProperty("headerShadow") { @Override public void setValue(ProfileActivity object, float value) { @@ -1917,6 +1940,7 @@ public boolean onFragmentCreate() { getNotificationCenter().addObserver(this, NotificationCenter.reloadDialogPhotos); getNotificationCenter().addObserver(this, NotificationCenter.storiesUpdated); getNotificationCenter().addObserver(this, NotificationCenter.storiesReadUpdated); + getNotificationCenter().addObserver(this, NotificationCenter.userIsPremiumBlockedUpadted); NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.emojiLoaded); updateRowsIds(); if (listAdapter != null) { @@ -2011,6 +2035,7 @@ public void onFragmentDestroy() { getNotificationCenter().removeObserver(this, NotificationCenter.reloadDialogPhotos); getNotificationCenter().removeObserver(this, NotificationCenter.storiesUpdated); getNotificationCenter().removeObserver(this, NotificationCenter.storiesReadUpdated); + getNotificationCenter().removeObserver(this, NotificationCenter.userIsPremiumBlockedUpadted); NotificationCenter.getGlobalInstance().removeObserver(this, NotificationCenter.emojiLoaded); if (avatarsViewPager != null) { avatarsViewPager.onDestroy(); @@ -2043,6 +2068,10 @@ public void onFragmentDestroy() { if (pinchToZoomHelper != null) { pinchToZoomHelper.clear(); } + if (birthdayFetcher != null && createdBirthdayFetcher) { + birthdayFetcher.detach(true); + birthdayFetcher = null; + } } @Override @@ -2162,7 +2191,7 @@ public void onItemClick(final int id) { } else { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), resourcesProvider); builder.setTitle(LocaleController.getString("BlockUser", R.string.BlockUser)); - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("AreYouSureBlockContact2", R.string.AreYouSureBlockContact2, ContactsController.formatName(user.first_name, user.last_name)))); + builder.setMessage(AndroidUtilities.replaceTags(formatString("AreYouSureBlockContact2", R.string.AreYouSureBlockContact2, ContactsController.formatName(user.first_name, user.last_name)))); builder.setPositiveButton(LocaleController.getString("BlockContact", R.string.BlockContact), (dialogInterface, i) -> { getMessagesController().blockPeer(userId); if (BulletinFactory.canShowBulletin(ProfileActivity.this)) { @@ -2247,7 +2276,7 @@ public void onItemClick(final int id) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setTitle(LocaleController.getPluralString("DeleteTopics", 1)); TLRPC.TL_forumTopic topic = MessagesController.getInstance(currentAccount).getTopicsController().findTopic(chatId, topicId); - builder.setMessage(LocaleController.formatString("DeleteSelectedTopic", R.string.DeleteSelectedTopic, topic == null ? "topic" : topic.title)); + builder.setMessage(formatString("DeleteSelectedTopic", R.string.DeleteSelectedTopic, topic == null ? "topic" : topic.title)); builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { @@ -2343,7 +2372,7 @@ public void didChangeOwner(TLRPC.User user) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), resourcesProvider); builder.setTitle(LocaleController.getString("AddBot", R.string.AddBot)); String chatName = chat == null ? "" : MessageHelper.INSTANCE.zalgoFilter(chat.title); - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("AddMembersAlertNamesText", R.string.AddMembersAlertNamesText, UserObject.getUserName(user), chatName))); + builder.setMessage(AndroidUtilities.replaceTags(formatString("AddMembersAlertNamesText", R.string.AddMembersAlertNamesText, UserObject.getUserName(user), chatName))); builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); builder.setPositiveButton(LocaleController.getString("AddBot", R.string.AddBot), (di, i) -> { disableProfileAnimation = true; @@ -2488,6 +2517,9 @@ public void didChangeOwner(TLRPC.User user) { } final boolean isVideo = location.imageType == FileLoader.IMAGE_TYPE_ANIMATION; File f = FileLoader.getInstance(currentAccount).getPathToAttach(location.location, isVideo ? "mp4" : null, true); + if (isVideo && !f.exists()) { + f = new File(FileLoader.getDirectory(FileLoader.MEDIA_DIR_IMAGE), FileLoader.getAttachFileName(location.location, "mp4")); + } if (f.exists()) { MediaController.saveFile(f.toString(), getParentActivity(), 0, null, null, uri -> { if (getParentActivity() == null) { @@ -2496,8 +2528,8 @@ public void didChangeOwner(TLRPC.User user) { BulletinFactory.createSaveToGalleryBulletin(ProfileActivity.this, isVideo, null).show(); }); } - } else if (id == edit_name) { - presentFragment(new ChangeNameActivity(resourcesProvider)); + } else if (id == edit_info) { + presentFragment(new UserInfoActivity()); } else if (id == edit_color) { presentFragment(new PeerColorActivity(0).startOnProfile().setOnApplied(ProfileActivity.this)); } else if (id == logout) { @@ -2572,10 +2604,10 @@ public void didChangeOwner(TLRPC.User user) { } if (location.imageType == FileLoader.IMAGE_TYPE_ANIMATION) { builder.setTitle(LocaleController.getString("AreYouSureDeleteVideoTitle", R.string.AreYouSureDeleteVideoTitle)); - builder.setMessage(LocaleController.formatString("AreYouSureDeleteVideo", R.string.AreYouSureDeleteVideo)); + builder.setMessage(formatString("AreYouSureDeleteVideo", R.string.AreYouSureDeleteVideo)); } else { builder.setTitle(LocaleController.getString("AreYouSureDeletePhotoTitle", R.string.AreYouSureDeletePhotoTitle)); - builder.setMessage(LocaleController.formatString("AreYouSureDeletePhoto", R.string.AreYouSureDeletePhoto)); + builder.setMessage(formatString("AreYouSureDeletePhoto", R.string.AreYouSureDeletePhoto)); } builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface, i) -> { int position = avatarsViewPager.getRealPosition(); @@ -3838,9 +3870,7 @@ public void openExceptions() { builder.show(); } else if (position == bioRow) { - if (userInfo != null) { - presentFragment(new ChangeBioActivity()); - } + presentFragment(new UserInfoActivity()); } else if (position == numberRow) { TLRPC.User user = UserConfig.getInstance(currentAccount).getCurrentUser(); if (user == null || StrUtil.isBlank(user.phone)) { @@ -4008,7 +4038,9 @@ public void openExceptions() { } else if (position == businessRow) { presentFragment(new PremiumPreviewFragment(PremiumPreviewFragment.FEATURES_BUSINESS, "settings")); } else if (position == premiumGiftingRow) { - UserSelectorBottomSheet.open(); +// UserSelectorBottomSheet.open(0, BirthdayController.getInstance(currentAccount).getState()); + showDialog(new PremiumNotAvailableBottomSheet(this)); + // NekoX: remove Google billing } else if (position == bizHoursRow) { hoursExpanded = !hoursExpanded; saveScrollPosition(); @@ -4060,6 +4092,19 @@ protected boolean disablePermissionCheck() { } // } } + } else if (position == channelRow) { + if (userInfo == null) return; + Bundle args = new Bundle(); + args.putLong("chat_id", userInfo.personal_channel_id); + presentFragment(new ChatActivity(args)); + } else if (position == birthdayRow) { + if (birthdayEffect != null && birthdayEffect.start()) { + return; + } + TextDetailCell cell = (TextDetailCell) view; + if (cell.hasImage()) { + onTextDetailCellImageClicked(cell.getImageView()); + } } else { ProfileActivity.this.processOnClickOrPress(position, view, x, y); } @@ -4112,7 +4157,8 @@ public boolean onItemClick(View view, int position) { BuildVars.DEBUG_PRIVATE_VERSION ? (SharedConfig.photoViewerBlur ? "do not blur in photoviewer" : "blur in photoviewer") : null, !SharedConfig.payByInvoice ? "Enable Invoice Payment" : "Disable Invoice Payment", BuildVars.DEBUG_PRIVATE_VERSION ? "Update Attach Bots" : null, - Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? (!SharedConfig.useCamera2 ? "Use Camera 2 API" : "Use old Camera 1 API") : null + Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? (!SharedConfig.useCamera2 ? "Use Camera 2 API" : "Use old Camera 1 API") : null, + BuildVars.DEBUG_VERSION ? "Clear bot biometry data" : null }; builder.setItems(items, (dialog, which) -> { @@ -4146,7 +4192,7 @@ public boolean onItemClick(View view, int position) { getMessagesStorage().clearSentMedia(); SharedConfig.setNoSoundHintShowed(false); SharedPreferences.Editor editor = MessagesController.getGlobalMainSettings().edit(); - editor.remove("archivehint").remove("proximityhint").remove("archivehint_l").remove("speedhint").remove("gifhint").remove("reminderhint").remove("soundHint").remove("themehint").remove("bganimationhint").remove("filterhint").remove("n_0").remove("storyprvhint").remove("storyhint").remove("storyhint2").remove("storydualhint").remove("storysvddualhint").remove("stories_camera").remove("dualcam").remove("dualmatrix").remove("dual_available").remove("archivehint").remove("askNotificationsAfter").remove("askNotificationsDuration").remove("viewoncehint").remove("taptostorysoundhint").remove("nothanos").remove("voiceoncehint").remove("savedhint").remove("savedsearchhint").remove("savedsearchtaghint").remove("groupEmojiPackHintShown").remove("newppsms").apply(); + editor.remove("archivehint").remove("proximityhint").remove("archivehint_l").remove("speedhint").remove("gifhint").remove("reminderhint").remove("soundHint").remove("themehint").remove("bganimationhint").remove("filterhint").remove("n_0").remove("storyprvhint").remove("storyhint").remove("storyhint2").remove("storydualhint").remove("storysvddualhint").remove("stories_camera").remove("dualcam").remove("dualmatrix").remove("dual_available").remove("archivehint").remove("askNotificationsAfter").remove("askNotificationsDuration").remove("viewoncehint").remove("taptostorysoundhint").remove("nothanos").remove("voiceoncehint").remove("savedhint").remove("savedsearchhint").remove("savedsearchtaghint").remove("groupEmojiPackHintShown").remove("newppsms").remove("monetizationadshint").apply(); MessagesController.getEmojiSettings(currentAccount).edit().remove("featured_hidden").remove("emoji_featured_hidden").commit(); SharedConfig.textSelectionHintShows = 0; SharedConfig.lockRecordAudioVideoHint = 0; @@ -4166,7 +4212,15 @@ public boolean onItemClick(View view, int position) { getNotificationCenter().postNotificationName(NotificationCenter.newSuggestionsAvailable); RestrictedLanguagesSelectActivity.cleanup(); PersistColorPalette.getInstance(currentAccount).cleanup(); - getMessagesController().getMainSettings().edit().remove("peerColors").remove("profilePeerColors").remove("boostingappearance").commit(); + SharedPreferences prefs = getMessagesController().getMainSettings(); + editor = prefs.edit(); + editor.remove("peerColors").remove("profilePeerColors").remove("boostingappearance").remove("bizbothint"); + for (String key : prefs.getAll().keySet()) { + if (key.contains("show_gift_for_") || key.contains("bdayhint_") || key.contains("bdayanim_")) { + editor.remove(key); + } + } + editor.commit(); } else if (which == 7) { VoIPHelper.showCallDebugSettings(getParentActivity()); } else if (which == 8) { @@ -4356,6 +4410,8 @@ public boolean onItemClick(View view, int position) { listCodecs("video/avc", info); listCodecs("video/hevc", info); + listCodecs("video/x-vnd.on2.vp8", info); + listCodecs("video/x-vnd.on2.vp9", info); showDialog(new ShareAlert(getParentActivity(), null, info.toString(), false, null, false) { @Override @@ -4395,7 +4451,7 @@ protected void onSend(LongSparseArray dids, int count, TLRPC.TL_fo } else if (which == 23) { SharedConfig.toggleSurfaceInStories(); for (int i = 0; i < getParentLayout().getFragmentStack().size(); i++) { - getParentLayout().getFragmentStack().get(i).storyViewer = null; + getParentLayout().getFragmentStack().get(i).clearStoryViewers(); } } else if (which == 24) { SharedConfig.togglePhotoViewerBlur(); @@ -4405,6 +4461,8 @@ protected void onSend(LongSparseArray dids, int count, TLRPC.TL_fo getMediaDataController().loadAttachMenuBots(false, true); } else if (which == 27) { SharedConfig.toggleUseCamera2(); + } else if (which == 28) { + BotBiometry.clear(); } }); builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); @@ -4425,6 +4483,15 @@ protected void onSend(LongSparseArray dids, int count, TLRPC.TL_fo participant = visibleChatParticipants.get(position - membersStartRow); } return onMemberClick(participant, true, view); + } else if (position == birthdayRow) { + if (userInfo == null) return false; + try { + AndroidUtilities.addToClipboard(UserInfoActivity.birthdayString(userInfo.birthday)); + BulletinFactory.of(ProfileActivity.this).createCopyBulletin(LocaleController.getString(R.string.BirthdayCopied)).show(); + } catch (Exception e) { + FileLog.e(e); + } + return true; } else { return processOnClickOrPress(position, view, view.getWidth() / 2f, (int) (view.getHeight() * .75f)); } @@ -4997,7 +5064,7 @@ protected void onLongPress() { cameraDrawable = new RLottieDrawable(R.raw.camera_outline, String.valueOf(R.raw.camera_outline), AndroidUtilities.dp(56), AndroidUtilities.dp(56), false, null); cellCameraDrawable = new RLottieDrawable(R.raw.camera_outline, R.raw.camera_outline + "_cell", AndroidUtilities.dp(42), AndroidUtilities.dp(42), false, null); - writeButton.setImageResource(R.drawable.msg_edit); + writeButton.setAnimation(cameraDrawable); writeButton.setContentDescription(LocaleController.getString("AccDescrChangeProfilePicture", R.string.AccDescrChangeProfilePicture)); writeButton.setPadding(AndroidUtilities.dp(2), 0, 0, AndroidUtilities.dp(2)); } else { @@ -5309,6 +5376,7 @@ public void setAlpha(float alpha) { blurredView.setFitsSystemWindows(true); contentView.addView(blurredView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + createBirthdayEffect(); createFloatingActionButton(getContext()); return fragmentView; } @@ -6008,7 +6076,7 @@ public boolean onMemberClick(TLRPC.ChatParticipant participant, boolean isLong, showDialog( new AlertDialog.Builder(getParentActivity(), resourcesProvider) .setTitle(LocaleController.getString("AppName", R.string.AppName)) - .setMessage(LocaleController.formatString("AdminWillBeRemoved", R.string.AdminWillBeRemoved, ContactsController.formatName(user.first_name, user.last_name))) + .setMessage(formatString("AdminWillBeRemoved", R.string.AdminWillBeRemoved, ContactsController.formatName(user.first_name, user.last_name))) .setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialog, which) -> openRightsEdit.run(1)) .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) .create() @@ -6125,6 +6193,7 @@ public void didChangeOwner(TLRPC.User user) { private boolean processOnClickOrPress(final int position, final View view, final float x, final float y) { if (position == usernameRow || position == setUsernameRow) { final String username; + final TLRPC.TL_username usernameObj; if (userId != 0) { final TLRPC.User user = getMessagesController().getUser(userId); String username1 = UserObject.getPublicUsername(user); @@ -6132,12 +6201,14 @@ private boolean processOnClickOrPress(final int position, final View view, final return false; } username = username1; + usernameObj = DialogObject.findUsername(username, user); } else if (chatId != 0) { final TLRPC.Chat chat = getMessagesController().getChat(chatId); if (chat == null || topicId == 0 && !ChatObject.isPublic(chat)) { return false; } username = ChatObject.getPublicUsername(chat); + usernameObj = DialogObject.findUsername(username, chat); } else { return false; } @@ -6214,6 +6285,22 @@ private boolean processOnClickOrPress(final int position, final View view, final return false; } + if (position == phoneRow && user.phone.startsWith("888")) { + TL_fragment.TL_inputCollectiblePhone input = new TL_fragment.TL_inputCollectiblePhone(); + final String phone = input.phone = user.phone; + TL_fragment.TL_getCollectibleInfo req = new TL_fragment.TL_getCollectibleInfo(); + req.collectible = input; + int reqId = getConnectionsManager().sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TL_fragment.TL_collectibleInfo) { + FragmentUsernameBottomSheet.open(getContext(), FragmentUsernameBottomSheet.TYPE_PHONE, phone, user, (TL_fragment.TL_collectibleInfo) res, getResourceProvider()); + } else { + BulletinFactory.showError(err); + } + })); + getConnectionsManager().bindRequestToGuid(reqId, getClassGuid()); + return true; + } + ArrayList items = new ArrayList<>(); ArrayList actions = new ArrayList<>(); List icons = new ArrayList<>(); @@ -6412,7 +6499,7 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { ArrayList[] days = OpeningHoursActivity.getDaysHours(userInfo.business_work_hours.weekly_open); StringBuilder sb = new StringBuilder(); if (userInfo.user != null) { - sb.append(LocaleController.formatString(R.string.BusinessHoursCopyHeader, UserObject.getUserName(userInfo.user))).append("\n"); + sb.append(formatString(R.string.BusinessHoursCopyHeader, UserObject.getUserName(userInfo.user))).append("\n"); } for (int i = 0; i < days.length; ++i) { ArrayList periods = days[i]; @@ -6440,7 +6527,7 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { int valueUtcOffset = timezone == null ? 0 : timezone.utc_offset; int utcOffset = (currentUtcOffset - valueUtcOffset) / 60; if (utcOffset != 0 && timezone != null) { - sb.append(LocaleController.formatString(R.string.BusinessHoursCopyFooter, TimezonesController.getInstance(currentAccount).getTimezoneName(timezone, true))); + sb.append(formatString(R.string.BusinessHoursCopyFooter, TimezonesController.getInstance(currentAccount).getTimezoneName(timezone, true))); } finalText = sb.toString(); } else if (position == bizLocationRow) { @@ -6860,7 +6947,7 @@ private void openAddMember() { } fragment.setIgnoreUsers(users); } - fragment.setDelegate((users, fwdCount) -> { + fragment.setDelegate2((users, fwdCount) -> { HashSet currentParticipants = new HashSet<>(); ArrayList addedUsers = new ArrayList<>(); if (chatInfo != null && chatInfo.participants != null && chatInfo.participants.participants != null) { @@ -7728,6 +7815,19 @@ public void didReceivedNotification(int id, int account, final Object... args) { } updateAutoDeleteItem(); updateTtlIcon(); + if (profileChannelMessageFetcher == null && !isSettings()) { + profileChannelMessageFetcher = new ProfileChannelCell.ChannelMessageFetcher(currentAccount); + profileChannelMessageFetcher.subscribe(() -> updateListAnimated(false)); + profileChannelMessageFetcher.fetch(userInfo); + } + if (!isSettings()) { + ProfileBirthdayEffect.BirthdayEffectFetcher oldFetcher = birthdayFetcher; + birthdayFetcher = ProfileBirthdayEffect.BirthdayEffectFetcher.of(currentAccount, userInfo, birthdayFetcher); + createdBirthdayFetcher = birthdayFetcher != oldFetcher; + if (birthdayFetcher != null) { + birthdayFetcher.subscribe(this::createBirthdayEffect); + } + } } } else if (id == NotificationCenter.privacyRulesUpdated) { // if (qrItem != null) { @@ -7784,6 +7884,10 @@ public void didReceivedNotification(int id, int account, final Object... args) { avatarImage.setHasStories(needInsetForStories()); updateAvatarRoundRadius(); } + } else if (id == NotificationCenter.userIsPremiumBlockedUpadted) { + if (otherItem != null) { + otherItem.setSubItemShown(start_secret_chat, !getMessagesController().isUserPremiumBlocked(userId)); + } } } @@ -7966,6 +8070,7 @@ public void onBecomeFullyHidden() { undoView.hide(true, 0); } super.onBecomeFullyHidden(); + fullyVisible = false; } public void setPlayProfileAnimation(int type) { @@ -8351,6 +8456,9 @@ public AnimatorSet onCustomTransitionAnimation(final boolean isOpen, final Runna } } animatorSet.playTogether(animators); + if (birthdayEffect != null) { + birthdayEffect.hide(); + } } profileTransitionInProgress = true; ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1f); @@ -8475,7 +8583,11 @@ private boolean needInsetForStories() { return getMessagesController().getStoriesController().hasStories(getDialogId()) && !isTopic; } - public void setUserInfo(TLRPC.UserFull value) { + public void setUserInfo( + TLRPC.UserFull value, + ProfileChannelCell.ChannelMessageFetcher channelMessageFetcher, + ProfileBirthdayEffect.BirthdayEffectFetcher birthdayAssetsFetcher + ) { userInfo = value; if (storyView != null) { storyView.setStories(userInfo.stories); @@ -8486,6 +8598,27 @@ public void setUserInfo(TLRPC.UserFull value) { if (sharedMediaLayout != null) { sharedMediaLayout.setUserInfo(userInfo); } + if (profileChannelMessageFetcher == null) { + profileChannelMessageFetcher = channelMessageFetcher; + } + if (profileChannelMessageFetcher == null) { + profileChannelMessageFetcher = new ProfileChannelCell.ChannelMessageFetcher(currentAccount); + } + profileChannelMessageFetcher.subscribe(() -> updateListAnimated(false)); + profileChannelMessageFetcher.fetch(userInfo); + if (birthdayFetcher == null) { + birthdayFetcher = birthdayAssetsFetcher; + } + if (birthdayFetcher == null) { + birthdayFetcher = ProfileBirthdayEffect.BirthdayEffectFetcher.of(currentAccount, userInfo, birthdayFetcher); + createdBirthdayFetcher = birthdayFetcher != null; + } + if (birthdayFetcher != null) { + birthdayFetcher.subscribe(this::createBirthdayEffect); + } + if (otherItem != null) { + otherItem.setSubItemShown(start_secret_chat, !getMessagesController().isUserPremiumBlocked(userId)); + } } public boolean canSearchMembers() { @@ -8539,8 +8672,11 @@ private void updateRowsIds() { setAvatarSectionRow = -1; numberSectionRow = -1; numberRow = -1; + birthdayRow = -1; setUsernameRow = -1; bioRow = -1; + channelRow = -1; + channelDividerRow = -1; phoneSuggestionSectionRow = -1; phoneSuggestionRow = -1; passwordSuggestionSectionRow = -1; @@ -8712,7 +8848,8 @@ private void updateRowsIds() { // disable send last logs clearLogsRow = rowCount++; } - if (BuildVars.DEBUG_VERSION) { + // na: disable switch backend button + if (BuildVars.DEBUG_VERSION && false) { switchBackendRow = rowCount++; } versionRow = rowCount++; @@ -8721,6 +8858,13 @@ private void updateRowsIds() { boolean hasInfo = userInfo != null && !TextUtils.isEmpty(userInfo.about) || user != null && !TextUtils.isEmpty(username); boolean hasPhone = user != null && (!TextUtils.isEmpty(user.phone) || !TextUtils.isEmpty(vcardPhone)); + if (userInfo != null && (userInfo.flags2 & 64) != 0 && (profileChannelMessageFetcher == null || !profileChannelMessageFetcher.loaded || profileChannelMessageFetcher.messageObject != null)) { + TLRPC.Chat channel = getMessagesController().getChat(userInfo.personal_channel_id); + if (channel != null && (ChatObject.isPublic(channel) || !ChatObject.isNotInChat(channel))) { + channelRow = rowCount++; + channelDividerRow = rowCount++; + } + } infoStartRow = rowCount; infoHeaderRow = rowCount++; if (user != null && !user.restriction_reason.isEmpty()) { @@ -8736,6 +8880,9 @@ private void updateRowsIds() { usernameRow = rowCount++; } if (userInfo != null) { + if (userInfo.birthday != null) { + birthdayRow = rowCount++; + } if (userInfo.business_work_hours != null) { bizHoursRow = rowCount++; } @@ -8743,9 +8890,9 @@ private void updateRowsIds() { bizLocationRow = rowCount++; } } - if (phoneRow != -1 || userInfoRow != -1 || usernameRow != -1 || bizHoursRow != -1 || bizLocationRow != -1 || restrictionReasonRow != -1) { - notificationsDividerRow = rowCount++; - } +// if (phoneRow != -1 || userInfoRow != -1 || usernameRow != -1 || bizHoursRow != -1 || bizLocationRow != -1 || restrictionReasonRow != -1) { +// notificationsDividerRow = rowCount++; +// } if (userId != getUserConfig().getClientUserId()) { notificationsRow = rowCount++; } @@ -8825,9 +8972,9 @@ private void updateRowsIds() { restrictionReasonRow = rowCount++; } } - if (infoHeaderRow != -1) { - notificationsDividerRow = rowCount++; - } +// if (infoHeaderRow != -1) { +// notificationsDividerRow = rowCount++; +// } notificationsRow = rowCount++; infoSectionRow = rowCount++; @@ -9349,7 +9496,7 @@ private void updateProfileData(boolean reload) { idTextView.setText("ID: " + userId); } id = userId; - avatarImage.getImageReceiver().setVisible(!PhotoViewer.isShowingImage(photoBig) && (storyViewer == null || !storyViewer.isShown() || storyViewer.transitionViewHolder.view != avatarImage), storyView != null); + avatarImage.getImageReceiver().setVisible(!PhotoViewer.isShowingImage(photoBig) && (getLastStoryViewer() == null || getLastStoryViewer().transitionViewHolder.view != avatarImage), storyView != null); } else if (chatId != 0) { TLRPC.Chat chat = getMessagesController().getChat(chatId); if (chat != null) { @@ -9399,7 +9546,7 @@ private void updateProfileData(boolean reload) { if (count > 0) { statusString = LocaleController.formatPluralString("messages", count, count); } else { - statusString = LocaleController.formatString("TopicProfileStatus", R.string.TopicProfileStatus, chat.title); + statusString = formatString("TopicProfileStatus", R.string.TopicProfileStatus, chat.title); } SpannableString arrowString = new SpannableString(">"); arrowString.setSpan(new ColoredImageSpan(R.drawable.arrow_newchat), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); @@ -9604,7 +9751,7 @@ private void updateProfileData(boolean reload) { prevLoadedImageLocation = imageLocation; getFileLoader().loadFile(imageLocation, chat, null, FileLoader.PRIORITY_LOW, 1); } - avatarImage.getImageReceiver().setVisible(!PhotoViewer.isShowingImage(photoBig) && (storyViewer == null || !storyViewer.isShown() || storyViewer.transitionViewHolder.view != avatarImage), storyView != null); + avatarImage.getImageReceiver().setVisible(!PhotoViewer.isShowingImage(photoBig) && (getLastStoryViewer() == null || getLastStoryViewer().transitionViewHolder.view != avatarImage), storyView != null); if (chat.photo != null && chat.photo.dc_id != 0) { dc = chat.photo.dc_id; idTextView.setText("ID: " + chatId + ", DC: " + dc); @@ -9707,13 +9854,17 @@ private void updatedPeerColor() { if (view instanceof HeaderCell) { ((HeaderCell) view).setTextColor(applyPeerColor(getThemedColor(Theme.key_windowBackgroundWhiteBlueHeader), false)); } else if (view instanceof TextDetailCell) { - ((TextDetailCell) view).valueTextView.setTextColor(applyPeerColor(getThemedColor(Theme.key_windowBackgroundWhiteGrayText2), false)); + ((TextDetailCell) view).updateColors(); } else if (view instanceof TextCell) { ((TextCell) view).updateColors(); } else if (view instanceof AboutLinkCell) { ((AboutLinkCell) view).updateColors(); } else if (view instanceof NotificationsCheckCell) { ((NotificationsCheckCell) view).getCheckBox().invalidate(); + } else if (view instanceof ProfileHoursCell) { + ((ProfileHoursCell) view).updateColors(); + } else if (view instanceof ProfileChannelCell) { + ((ProfileChannelCell) view).updateColors(); } }); if (sharedMediaLayout != null && sharedMediaLayout.scrollSlidingTextTabStrip != null) { @@ -9733,7 +9884,7 @@ private int applyPeerColor(int color, boolean actionBar) { private final SparseIntArray adaptedColors = new SparseIntArray(); private int applyPeerColor(int color, boolean actionBar, Boolean online) { - if (!actionBar) return color; + if (!actionBar && isSettings()) return color; if (peerColor != null) { if (!actionBar) { int index = adaptedColors.indexOfKey(color); @@ -9785,7 +9936,7 @@ private void createActionBarMenu(boolean animated) { return; } if (UserObject.isUserSelf(user)) { - otherItem.addSubItem(edit_name, R.drawable.msg_edit, LocaleController.getString(R.string.EditName)); + otherItem.addSubItem(edit_info, R.drawable.msg_edit, LocaleController.getString(R.string.EditInfo)); otherItem.addSubItem(edit_color, R.drawable.msg_colors, LocaleController.getString(R.string.EditProfileColor)); selfUser = true; } else { @@ -9846,6 +9997,7 @@ private void createActionBarMenu(boolean animated) { // otherItem.addSubItem(gift_premium, R.drawable.msg_gift_premium, LocaleController.getString(R.string.GiftPremium)); // } otherItem.addSubItem(start_secret_chat, R.drawable.msg_secret, LocaleController.getString("StartEncryptedChat", R.string.StartEncryptedChat)); + otherItem.setSubItemShown(start_secret_chat, !getMessagesController().isUserPremiumBlocked(userId)); } if (StrUtil.isNotBlank(user.username)) { otherItem.addSubItem(qr_code, R.drawable.msg_qrcode, LocaleController.getString("ShareQRCode", R.string.ShareQRCode)); @@ -10679,7 +10831,8 @@ private class ListAdapter extends RecyclerListView.SelectionAdapter { VIEW_TYPE_TEXT_DETAIL_MULTILINE = 19, VIEW_TYPE_NOTIFICATIONS_CHECK_SIMPLE = 20, VIEW_TYPE_LOCATION = 21, - VIEW_TYPE_HOURS = 22; + VIEW_TYPE_HOURS = 22, + VIEW_TYPE_CHANNEL = 23; private Context mContext; @@ -10698,7 +10851,12 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType } case VIEW_TYPE_TEXT_DETAIL_MULTILINE: case VIEW_TYPE_TEXT_DETAIL: - final TextDetailCell textDetailCell = new TextDetailCell(mContext, resourcesProvider, viewType == VIEW_TYPE_TEXT_DETAIL_MULTILINE); + final TextDetailCell textDetailCell = new TextDetailCell(mContext, resourcesProvider, viewType == VIEW_TYPE_TEXT_DETAIL_MULTILINE) { + @Override + protected int processColor(int color) { + return applyPeerColor(color, false); + } + }; textDetailCell.setContentDescriptionValueFirst(true); view = textDetailCell; view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); @@ -10832,7 +10990,12 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); break; case VIEW_TYPE_HOURS: - view = new ProfileHoursCell(mContext, resourcesProvider); + view = new ProfileHoursCell(mContext, resourcesProvider) { + @Override + protected int processColor(int color) { + return applyPeerColor(color, false); + } + }; view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); break; case VIEW_TYPE_VERSION: @@ -10879,6 +11042,15 @@ protected void onNoClick(int type) { view = new ProfilePremiumCell(mContext, resourcesProvider); view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); break; + case VIEW_TYPE_CHANNEL: + view = new ProfileChannelCell(ProfileActivity.this) { + @Override + public int processColor(int color) { + return applyPeerColor(color, false); + } + }; + view.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + break; } if (viewType != VIEW_TYPE_SHARED_MEDIA) { view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)); @@ -10891,6 +11063,10 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { if (holder.itemView == sharedMediaLayout) { sharedMediaLayoutAttached = true; } + if (holder.itemView instanceof TextDetailCell) { + ((TextDetailCell) holder.itemView).textView.setLoading(loadingSpan); + ((TextDetailCell) holder.itemView).valueTextView.setLoading(loadingSpan); + } } @Override @@ -10928,7 +11104,35 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_TEXT_DETAIL: TextDetailCell detailCell = (TextDetailCell) holder.itemView; boolean containsQr = false; - if (position == phoneRow) { + boolean containsGift = false; + if (position == birthdayRow) { + TLRPC.UserFull userFull = getMessagesController().getUserFull(userId); + if (userFull != null && userFull.birthday != null) { + final boolean today = BirthdayController.isToday(userFull); + final boolean withYear = (userFull.birthday.flags & 1) != 0; + final int age = withYear ? Period.between(LocalDate.of(userFull.birthday.year, userFull.birthday.month, userFull.birthday.day), LocalDate.now()).getYears() : -1; + + String text = UserInfoActivity.birthdayString(userFull.birthday); + + if (withYear) { + text = LocaleController.formatPluralString(today ? "ProfileBirthdayTodayValueYear" : "ProfileBirthdayValueYear", age, text); + } else { + text = LocaleController.formatString(today ? R.string.ProfileBirthdayTodayValue : R.string.ProfileBirthdayValue, text); + } + + detailCell.setTextAndValue( + Emoji.replaceWithRestrictedEmoji(text, detailCell.textView, () -> { + if (holder.getAdapterPosition() == position && birthdayRow == position && holder.getItemViewType() == VIEW_TYPE_TEXT_DETAIL) { + onBindViewHolder(holder, position); + } + }), + LocaleController.getString(today ? R.string.ProfileBirthdayToday : R.string.ProfileBirthday), + isTopic || bizHoursRow != -1 || bizLocationRow != -1 + ); + + containsGift = today && !getMessagesController().premiumPurchaseBlocked(); + } + } else if (position == phoneRow) { String text; TLRPC.User user = getMessagesController().getUser(userId); String phoneNumber; @@ -10945,7 +11149,8 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { isFragmentPhoneNumber = phoneNumber != null && phoneNumber.matches("888\\d{8}"); detailCell.setTextAndValue(text, LocaleController.getString(isFragmentPhoneNumber ? R.string.AnonymousNumber : R.string.PhoneMobile), false); } else if (position == usernameRow) { - String text, username = null; + String username = null; + CharSequence text; CharSequence value; ArrayList usernames = new ArrayList<>(); if (userId != 0) { @@ -10953,7 +11158,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (user != null) { usernames.addAll(user.usernames); } + TLRPC.TL_username usernameObj = null; if (user != null && !TextUtils.isEmpty(user.username)) { + usernameObj = DialogObject.findUsername(user.username, usernames); username = user.username; } usernames = user == null ? new ArrayList<>() : new ArrayList<>(user.usernames); @@ -10961,6 +11168,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { for (int i = 0; i < usernames.size(); ++i) { TLRPC.TL_username u = usernames.get(i); if (u != null && u.active && !TextUtils.isEmpty(u.username)) { + usernameObj = u; username = u.username; break; } @@ -10969,6 +11177,10 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { value = LocaleController.getString("Username", R.string.Username); if (username != null) { text = "@" + username; + if (usernameObj != null && !usernameObj.editable) { + text = new SpannableString(text); + ((SpannableString) text).setSpan(makeUsernameLinkSpan(usernameObj), 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } } else { text = "โ€”"; } @@ -10990,7 +11202,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { value = ""; usernames = new ArrayList<>(); } - detailCell.setTextAndValue(text, alsoUsernamesString(username, usernames, value), isTopic || bizHoursRow != -1 || bizLocationRow != -1); + detailCell.setTextAndValue(text, alsoUsernamesString(username, usernames, value), (isTopic || bizHoursRow != -1 || bizLocationRow != -1) && birthdayRow < 0); } else if (position == restrictionReasonRow) { ArrayList reasons = new ArrayList<>(); if (userId != 0) { @@ -11060,7 +11272,12 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { detailCell.setTextAndValue(text, value, true); detailCell.setContentDescriptionValueFirst(true); } - if (containsQr) { + if (containsGift) { + Drawable drawable = ContextCompat.getDrawable(detailCell.getContext(), R.drawable.msg_input_gift); + drawable.setColorFilter(new PorterDuffColorFilter(applyPeerColor(getThemedColor(Theme.key_switch2TrackChecked), false), PorterDuff.Mode.MULTIPLY)); + detailCell.setImage(drawable, LocaleController.getString(R.string.GiftPremium)); + detailCell.setImageClickListener(ProfileActivity.this::onTextDetailCellImageClicked); + } else if (containsQr) { Drawable drawable = ContextCompat.getDrawable(detailCell.getContext(), R.drawable.msg_qr_mini); drawable.setColorFilter(new PorterDuffColorFilter(applyPeerColor(getThemedColor(Theme.key_switch2TrackChecked), false), PorterDuff.Mode.MULTIPLY)); detailCell.setImage(drawable, LocaleController.getString("GetQRCode", R.string.GetQRCode)); @@ -11070,6 +11287,8 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { detailCell.setImageClickListener(null); } detailCell.setTag(position); + detailCell.textView.setLoading(loadingSpan); + detailCell.valueTextView.setLoading(loadingSpan); break; case VIEW_TYPE_ABOUT_LINK: AboutLinkCell aboutLinkCell = (AboutLinkCell) holder.itemView; @@ -11267,11 +11486,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } enabled = true; } else if (delta < 60 * 60) { - val = LocaleController.formatString("WillUnmuteIn", R.string.WillUnmuteIn, LocaleController.formatPluralString("Minutes", delta / 60)); + val = formatString("WillUnmuteIn", R.string.WillUnmuteIn, LocaleController.formatPluralString("Minutes", delta / 60)); } else if (delta < 60 * 60 * 24) { - val = LocaleController.formatString("WillUnmuteIn", R.string.WillUnmuteIn, LocaleController.formatPluralString("Hours", (int) Math.ceil(delta / 60.0f / 60))); + val = formatString("WillUnmuteIn", R.string.WillUnmuteIn, LocaleController.formatPluralString("Hours", (int) Math.ceil(delta / 60.0f / 60))); } else if (delta < 60 * 60 * 24 * 365) { - val = LocaleController.formatString("WillUnmuteIn", R.string.WillUnmuteIn, LocaleController.formatPluralString("Days", (int) Math.ceil(delta / 60.0f / 60 / 24))); + val = formatString("WillUnmuteIn", R.string.WillUnmuteIn, LocaleController.formatPluralString("Days", (int) Math.ceil(delta / 60.0f / 60 / 24))); } else { val = null; } @@ -11387,6 +11606,12 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { }); hoursCell.set(userInfo != null ? userInfo.business_work_hours : null, hoursExpanded, hoursShownMine, notificationsDividerRow < 0 || bizLocationRow >= 0); break; + case VIEW_TYPE_CHANNEL: + ((ProfileChannelCell) holder.itemView).set( + getMessagesController().getChat(userInfo.personal_channel_id), + profileChannelMessageFetcher != null ? profileChannelMessageFetcher.messageObject : null + ); + break; } } @@ -11406,23 +11631,10 @@ private CharSequence alsoUsernamesString(String originalUsername, ArrayList 0) { SpannableStringBuilder usernames = new SpannableStringBuilder(); for (int i = 0; i < alsoUsernames.size(); ++i) { - final String usernameRaw = alsoUsernames.get(i).username; + TLRPC.TL_username usernameObj = alsoUsernames.get(i); + final String usernameRaw = usernameObj.username; SpannableString username = new SpannableString("@" + usernameRaw); - username.setSpan(new ClickableSpan() { - @Override - public void onClick(@NonNull View view) { - String urlFinal = getMessagesController().linkPrefix + "/" + usernameRaw; - if (currentChat == null || !currentChat.noforwards) { - AndroidUtilities.addToClipboard(urlFinal); - undoView.showWithAction(0, UndoView.ACTION_USERNAME_COPIED, null); - } - } - - @Override - public void updateDrawState(@NonNull TextPaint ds) { - ds.setUnderlineText(false); - } - }, 0, username.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + username.setSpan(makeUsernameLinkSpan(usernameObj), 0, username.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); username.setSpan(new ForegroundColorSpan(applyPeerColor(getThemedColor(Theme.key_chat_messageLinkIn), false)), 0, username.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); usernames.append(username); if (i < alsoUsernames.size() - 1) { @@ -11442,6 +11654,57 @@ public void updateDrawState(@NonNull TextPaint ds) { } } + private final HashMap usernameSpans = new HashMap(); + public ClickableSpan makeUsernameLinkSpan(TLRPC.TL_username usernameObj) { + ClickableSpan span = usernameSpans.get(usernameObj); + if (span != null) return span; + + final String usernameRaw = usernameObj.username; + span = new ClickableSpan() { + @Override + public void onClick(@NonNull View view) { + if (!usernameObj.editable) { + if (loadingSpan == this) return; + setLoadingSpan(this); + TL_fragment.TL_getCollectibleInfo req = new TL_fragment.TL_getCollectibleInfo(); + TL_fragment.TL_inputCollectibleUsername input = new TL_fragment.TL_inputCollectibleUsername(); + input.username = usernameObj.username; + req.collectible = input; + int reqId = getConnectionsManager().sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + setLoadingSpan(null); + if (res instanceof TL_fragment.TL_collectibleInfo) { + TLObject obj; + if (userId != 0) { + obj = getMessagesController().getUser(userId); + } else { + obj = getMessagesController().getChat(chatId); + } + FragmentUsernameBottomSheet.open(getContext(), FragmentUsernameBottomSheet.TYPE_USERNAME, usernameObj.username, obj, (TL_fragment.TL_collectibleInfo) res, getResourceProvider()); + } else { + BulletinFactory.showError(err); + } + })); + getConnectionsManager().bindRequestToGuid(reqId, getClassGuid()); + } else { + setLoadingSpan(null); + String urlFinal = getMessagesController().linkPrefix + "/" + usernameRaw; + if (currentChat == null || !currentChat.noforwards) { + AndroidUtilities.addToClipboard(urlFinal); + undoView.showWithAction(0, UndoView.ACTION_USERNAME_COPIED, null); + } + } + } + + @Override + public void updateDrawState(@NonNull TextPaint ds) { + ds.setUnderlineText(false); + ds.setColor(ds.linkColor); + } + }; + usernameSpans.put(usernameObj, span); + return span; + } + @Override public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) { if (holder.getAdapterPosition() == setAvatarRow) { @@ -11460,7 +11723,7 @@ public boolean isEnabled(RecyclerView.ViewHolder holder) { position == faqRow || position == policyRow || position == sendLogsRow || position == sendLastLogsRow || position == clearLogsRow || position == switchBackendRow || position == setAvatarRow || position == addToGroupButtonRow || position == premiumRow || position == premiumGiftingRow || - position == businessRow || position == liteModeRow; + position == businessRow || position == liteModeRow || position == birthdayRow || position == channelRow; } if (holder.itemView instanceof UserCell) { UserCell userCell = (UserCell) holder.itemView; @@ -11488,7 +11751,7 @@ public int getItemViewType(int position) { if (position == infoHeaderRow || position == membersHeaderRow || position == settingsSectionRow2 || position == numberSectionRow || position == helpHeaderRow || position == debugHeaderRow) { return VIEW_TYPE_HEADER; - } else if (position == phoneRow || position == locationRow || position == numberRow || position == restrictionReasonRow) { + } else if (position == phoneRow || position == locationRow || position == numberRow || position == birthdayRow || position == restrictionReasonRow) { return VIEW_TYPE_TEXT_DETAIL; } else if (position == usernameRow || position == setUsernameRow) { return VIEW_TYPE_TEXT_DETAIL_MULTILINE; @@ -11513,7 +11776,7 @@ public int getItemViewType(int position) { } else if (position == infoSectionRow || position == lastSectionRow || position == membersSectionRow || position == secretSettingsSectionRow || position == settingsSectionRow || position == devicesSectionRow || position == helpSectionCell || position == setAvatarSectionRow || position == passwordSuggestionSectionRow || - position == phoneSuggestionSectionRow || position == premiumSectionsRow || position == reportDividerRow) { + position == phoneSuggestionSectionRow || position == premiumSectionsRow || position == reportDividerRow || position == channelDividerRow) { return VIEW_TYPE_SHADOW; } else if (position >= membersStartRow && position < membersEndRow) { return VIEW_TYPE_USER; @@ -11535,6 +11798,8 @@ public int getItemViewType(int position) { return VIEW_TYPE_LOCATION; } else if (position == bizHoursRow) { return VIEW_TYPE_HOURS; + } else if (position == channelRow) { + return VIEW_TYPE_CHANNEL; } return 4; } @@ -11720,7 +11985,7 @@ private SearchResult[] onCreateSearchArray() { }), new SearchResult(108, LocaleController.getString("Passcode", R.string.Passcode), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(PasscodeActivity.determineOpenFragment())), SharedConfig.hasEmailLogin ? new SearchResult(125, LocaleController.getString(R.string.EmailLogin), "emailLoginRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())) : null, - new SearchResult(101, LocaleController.getString("BlockedUsers", R.string.BlockedUsers), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyUsersActivity())), + new SearchResult(101, LocaleController.getString("BlockedUsers", R.string.BlockedUsers), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyUsersActivity().loadBlocked())), new SearchResult(110, LocaleController.getString("SessionsTitle", R.string.SessionsTitle), R.drawable.msg2_secret, () -> presentFragment(new SessionsActivity(0))), new SearchResult(105, LocaleController.getString("PrivacyPhone", R.string.PrivacyPhone), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_PHONE, true))), new SearchResult(102, LocaleController.getString("PrivacyLastSeen", R.string.PrivacyLastSeen), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_LASTSEEN, true))), @@ -11728,7 +11993,7 @@ private SearchResult[] onCreateSearchArray() { new SearchResult(104, LocaleController.getString("PrivacyForwards", R.string.PrivacyForwards), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_FORWARDS, true))), new SearchResult(122, LocaleController.getString("PrivacyP2P", R.string.PrivacyP2P), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_P2P, true))), new SearchResult(106, LocaleController.getString("Calls", R.string.Calls), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_CALLS, true))), - new SearchResult(107, LocaleController.getString("GroupsAndChannels", R.string.GroupsAndChannels), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_INVITE, true))), + new SearchResult(107, LocaleController.getString("PrivacyInvites", R.string.PrivacyInvites), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_INVITE, true))), new SearchResult(123, LocaleController.getString("PrivacyVoiceMessages", R.string.PrivacyVoiceMessages), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> { if (!getUserConfig().isPremium()) { try { @@ -12613,13 +12878,40 @@ private void onTextDetailCellImageClicked(View view) { args.putLong("chat_id", chatId); args.putLong("user_id", userId); presentFragment(new QrActivity(args)); + } else if (parent.getTag() != null && ((int) parent.getTag()) == birthdayRow) { + TLRPC.User user = getMessagesController().getUser(dialogId); + if (user == null || userInfo == null) return; + ArrayList options = new ArrayList<>(userInfo.premium_gifts); + if (options.isEmpty()) { + if (getVisibleDialog() != null) return; + final AlertDialog progressDialog = new AlertDialog(getContext(), AlertDialog.ALERT_TYPE_SPINNER); + final int reqId = BoostRepository.loadGiftOptions(null, loadedOptions -> { + progressDialog.dismiss(); + if (getVisibleDialog() != null) return; + loadedOptions = BoostRepository.filterGiftOptions(loadedOptions, 1); + loadedOptions = BoostRepository.filterGiftOptionsByBilling(loadedOptions); + ArrayList users = new ArrayList<>(); + users.add(user); + PremiumPreviewGiftToUsersBottomSheet.show(users, loadedOptions); + }); + progressDialog.setOnCancelListener(di -> { + getConnectionsManager().cancelRequest(reqId, true); + }); + progressDialog.showDelayed(500); + } else { + showDialog(new GiftPremiumBottomSheet(this, user)); + } } } + private boolean fullyVisible; + @Override public void onBecomeFullyVisible() { super.onBecomeFullyVisible(); writeButtonSetBackground(); + fullyVisible = true; + createBirthdayEffect(); } private void writeButtonSetBackground() { @@ -12818,6 +13110,8 @@ public void fillPositions(SparseIntArray sparseIntArray) { put(++pointer, notificationsSimpleRow, sparseIntArray); put(++pointer, bizHoursRow, sparseIntArray); put(++pointer, bizLocationRow, sparseIntArray); + put(++pointer, birthdayRow, sparseIntArray); + put(++pointer, channelRow, sparseIntArray); } private void put(int id, int position, SparseIntArray sparseIntArray) { @@ -13047,19 +13341,19 @@ public void prepareBlurBitmap() { private ShowDrawable showStatusButton; public ShowDrawable getShowStatusButton() { if (showStatusButton == null) { - showStatusButton = new ShowDrawable(); + showStatusButton = new ShowDrawable(LocaleController.getString(R.string.StatusHiddenShow)); showStatusButton.setAlpha((int) (0xFF * Math.min(1f, extraHeight / AndroidUtilities.dp(88f)))); showStatusButton.setBackgroundColor(ColorUtils.blendARGB(Theme.multAlpha(Theme.adaptHSV(actionBarBackgroundColor, +0.18f, -0.1f), 0.5f), 0x23ffffff, currentExpandAnimatorValue)); } return showStatusButton; } - private static class ShowDrawable extends Drawable implements SimpleTextView.PressableDrawable { + public static class ShowDrawable extends Drawable implements SimpleTextView.PressableDrawable { private final Text text; public final Paint backgroundPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - public ShowDrawable() { - text = new Text(LocaleController.getString(R.string.StatusHiddenShow), 11); + public ShowDrawable(String string) { + text = new Text(string, 11); backgroundPaint.setColor(0x1f000000); } @@ -13139,4 +13433,31 @@ public boolean isPressed() { } } + public void setLoadingSpan(CharacterStyle span) { + if (loadingSpan == span) return; + loadingSpan = span; + AndroidUtilities.forEachViews(listView, view -> { + if (view instanceof TextDetailCell) { + ((TextDetailCell) view).textView.setLoading(loadingSpan); + ((TextDetailCell) view).valueTextView.setLoading(loadingSpan); + } + }); + } + + private ProfileBirthdayEffect birthdayEffect; + + private void createBirthdayEffect() { + if (fragmentView == null || !fullyVisible || birthdayFetcher == null || getContext() == null) + return; + + if (birthdayEffect != null) { + birthdayEffect.updateFetcher(birthdayFetcher); + birthdayEffect.invalidate(); + return; + } + + birthdayEffect = new ProfileBirthdayEffect(this, birthdayFetcher); + ((FrameLayout) fragmentView).addView(birthdayEffect, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.FILL_HORIZONTAL | Gravity.TOP)); + } + } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileBirthdayEffect.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileBirthdayEffect.java new file mode 100644 index 0000000000..cfd1f41c57 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileBirthdayEffect.java @@ -0,0 +1,430 @@ +package org.telegram.ui; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.PointF; +import android.graphics.drawable.Drawable; +import android.view.View; +import android.widget.TextView; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BirthdayController; +import org.telegram.messenger.BuildVars; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.ImageLocation; +import org.telegram.messenger.ImageReceiver; +import org.telegram.messenger.LiteMode; +import org.telegram.messenger.MediaDataController; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.Utilities; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Cells.TextDetailCell; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.RLottieDrawable; +import org.telegram.ui.Components.RecyclerListView; + +import java.time.LocalDate; +import java.time.Period; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; + +public class ProfileBirthdayEffect extends View { + + private final int currentAccount; + private final long dialogId; + private final ProfileActivity profileActivity; + private BirthdayEffectFetcher fetcher; + private BirthdayEffectFetcher fetcherToSet; + + public static String numbersEmojipack = "FestiveFontEmoji"; + public static String interactionsPack = "EmojiAnimations"; + public static String[] interactions = new String[] { + "๐ŸŽ‰", "๐ŸŽ†", "๐ŸŽˆ" + }; + + + public PointF sourcePoint = new PointF(); + + public ProfileBirthdayEffect(ProfileActivity profileActivity, BirthdayEffectFetcher fetcher) { + super(profileActivity.getContext()); + + this.currentAccount = profileActivity.getCurrentAccount(); + this.dialogId = profileActivity.getDialogId(); + this.profileActivity = profileActivity; + this.fetcher = fetcher; + } + + private boolean autoplayed; + private boolean attached; + private float t = 1; + + private long lastTime; + + private final static long duration = 4200L; + + @Override + protected void onDraw(Canvas canvas) { + + if (!fetcher.loaded) return; + + if (!attached) { + for (int i = 0; i < fetcher.allAssets.size(); ++i) { + fetcher.allAssets.get(i).setParentView(this); + } + attached = true; + + if (!autoplayed) { + autoplayed = true; + post(() -> { +// final String key = "bdayanim_" + LocalDate.now().getYear() + "_" + dialogId; +// if (MessagesController.getInstance(currentAccount).getMainSettings().getBoolean(key, true)) { + start(); +// MessagesController.getInstance(currentAccount).getMainSettings().edit().putBoolean(key, false).apply(); +// } + }); + } + } + + if (!isPlaying) { + return; + } + + final long now = System.currentTimeMillis(); + final float delta = Utilities.clamp((now - lastTime), 20, 0) / (float) duration; + t = Utilities.clamp(t + delta, 1, 0); + lastTime = now; + + updateSourcePoint(); + + final int iw = EmojiAnimationsOverlay.getFilterWidth(); + fetcher.interactionAsset.setImageCoords((getWidth() - dp(iw)) / 2f, Math.max(0, sourcePoint.y - dp(iw) * .5f), dp(iw), dp(iw)); + canvas.save(); + canvas.scale(-1, 1, getWidth() / 2f, 0); + fetcher.interactionAsset.draw(canvas); + fetcher.interactionAsset.setAlpha(1f - (t - .9f) / .1f); + canvas.restore(); + + final int sz = dp(110); + for (int i = fetcher.digitAssets.size() - 1; i >= 0; --i) { + ImageReceiverAsset asset = fetcher.digitAssets.get(i); + + final float t = AndroidUtilities.cascade(this.t, i, fetcher.digitAssets.size(), 1.8f); + + final float w = (getWidth() - sz * .88f * (fetcher.digitAssets.size() - 1)) / 2f - sourcePoint.x; + final float h = sourcePoint.y + sz; + + final float centerX = sourcePoint.x + sz * .88f * i + t * w; + final float centerY = sourcePoint.y - h * (float) Math.pow(this.t, 2f); + final float scale = CubicBezierInterpolator.EASE_OUT_QUINT.getInterpolation(Utilities.clamp(t / .4f, 1, 0)); + + asset.setImageCoords( + centerX - sz / 2f * scale, + centerY - sz / 2f * scale, + sz * scale, + sz * scale + ); + asset.draw(canvas); + } + + if (t >= 1) { + isPlaying = false; + updateFetcher(fetcherToSet); + fetcherToSet = null; + } else { + invalidate(); + } + } + + public void updateFetcher(BirthdayEffectFetcher fetcher) { + if (this.fetcher == fetcher || fetcher == null) return; + if (isPlaying) { + fetcherToSet = fetcher; + } else { + if (attached) { + for (int i = 0; i < this.fetcher.allAssets.size(); ++i) { + this.fetcher.allAssets.get(i).setParentView(null); + } + attached = false; + } + this.fetcher.removeView(this); + this.fetcher = fetcher; + if (!attached) { + for (int i = 0; i < fetcher.allAssets.size(); ++i) { + fetcher.allAssets.get(i).setParentView(this); + } + attached = true; + } + } + } + + private boolean isPlaying = false; + public boolean start() { + if (!fetcher.loaded) { + return false; + } + if (t < 1) { + return false; + } + if (fetcher.interactionAsset.getLottieAnimation() != null) { + fetcher.interactionAsset.getLottieAnimation().setCurrentFrame(0, false); + fetcher.interactionAsset.getLottieAnimation().restart(true); + } + isPlaying = true; + t = 0; + invalidate(); + return true; + } + + public void hide() { + animate().alpha(0).setDuration(200).setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT).start(); + } + + private void updateSourcePoint() { + RecyclerListView listView = profileActivity.getListView(); + final int position = profileActivity.birthdayRow; + if (position < 0) return; + for (int i = 0; i < listView.getChildCount(); ++i) { + View child = listView.getChildAt(i); + final int childPosition = listView.getChildAdapterPosition(child); + if (position == childPosition && child instanceof TextDetailCell) { + TextView textView = ((TextDetailCell) child).textView; + sourcePoint.set( + listView.getX() + child.getX() + textView.getX() + dp(12), + listView.getY() + child.getY() + textView.getY() + textView.getMeasuredHeight() / 2f + ); + return; + } + } + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + fetcher.addView(this); + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + if (attached) { + for (int i = 0; i < fetcher.allAssets.size(); ++i) { + fetcher.allAssets.get(i).setParentView(null); + } + attached = false; + } + fetcher.removeView(this); + } + + public static class BirthdayEffectFetcher { + public static BirthdayEffectFetcher of(int currentAccount, TLRPC.UserFull userInfo) { + return of(currentAccount, userInfo, null); + } + + public static BirthdayEffectFetcher of(int currentAccount, TLRPC.UserFull userInfo, BirthdayEffectFetcher old) { + if (!LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_STICKERS_CHAT) || !BirthdayController.isToday(userInfo)) { + if (old != null) { + old.detach(false); + } + return null; + } + final int age; + if ((userInfo.birthday.flags & 1) != 0) { + age = Period.between(LocalDate.of(userInfo.birthday.year, userInfo.birthday.month, userInfo.birthday.day), LocalDate.now()).getYears(); + } else { + age = 0; + } + if (old != null) { + if (old.age == age) return old; + old.detach(false); + } + return new BirthdayEffectFetcher(currentAccount, age); + } + + + public final int currentAccount; + public final int age; + + private boolean loaded; + + public ImageReceiverAsset interactionAsset; + public ArrayList digitAssets = new ArrayList<>(); + + public ArrayList allAssets = new ArrayList<>(); + public ArrayList loadedAssets = new ArrayList<>(); + + private final boolean[] setsLoaded = new boolean[2]; + + private BirthdayEffectFetcher(int currentAccount, int age) { + this.currentAccount = currentAccount; + this.age = age; + + if (age <= 0) { + setsLoaded[0] = true; + } else { + final ArrayList order = new ArrayList<>(); + final HashSet digits = new HashSet<>(); + final String ageString = "" + age; + for (int i = 0; i < ageString.length(); ++i) { + char c = ageString.charAt(i); + int n = c - '0'; + if (n < 0 || n > 9) continue; + order.add(n); + digits.add(n); + } + + TLRPC.TL_inputStickerSetShortName inputStickerSetShortName = new TLRPC.TL_inputStickerSetShortName(); + inputStickerSetShortName.short_name = numbersEmojipack; + MediaDataController.getInstance(currentAccount).getStickerSet(inputStickerSetShortName, 0, false, set -> { + + HashMap documents = new HashMap<>(); + + for (Integer digit : digits) { + TLRPC.Document d = SelectAnimatedEmojiDialog.findSticker(set, digit + "\uFE0F\u20E3"); + if (d == null) { + d = SelectAnimatedEmojiDialog.findSticker(set, digit + "\u20E3"); + } + if (d == null) { + FileLog.e("couldn't find " + (digit + "\uFE0F\u20E3") + " emoji in " + numbersEmojipack); + return; + } + documents.put(digit, d); + } + + HashMap assets = new HashMap<>(); + for (Map.Entry entry : documents.entrySet()) { + final int digit = entry.getKey(); + ImageReceiverAsset asset = new ImageReceiverAsset(); + allAssets.add(asset); + asset.setEmoji(entry.getValue(), "80_80", set, () -> { + loadedAssets.add(asset); + checkWhenLoaded(); + }); + asset.onAttachedToWindow(); + assets.put(digit, asset); + } + + for (int i = 0; i < order.size(); ++i) { + final int digit = order.get(i); + digitAssets.add(assets.get(digit)); + } + + setsLoaded[0] = true; + checkWhenLoaded(); + }); + } + + final String interaction = interactions[Utilities.random.nextInt(interactions.length)]; + + TLRPC.TL_inputStickerSetShortName inputStickerSetShortName2 = new TLRPC.TL_inputStickerSetShortName(); + inputStickerSetShortName2.short_name = interactionsPack; + MediaDataController.getInstance(currentAccount).getStickerSet(inputStickerSetShortName2, 0, false, set -> { + TLRPC.Document document = SelectAnimatedEmojiDialog.findSticker(set, interaction); + + if (document == null) { + FileLog.e("couldn't find " + interaction + " sticker in " + interactionsPack); + return; + } + + interactionAsset = new ImageReceiverAsset(); + allAssets.add(interactionAsset); + final int w = EmojiAnimationsOverlay.getFilterWidth(); + interactionAsset.setAutoRepeat(0); + interactionAsset.setEmoji(document, w + "_" + w + "_precache", set, () -> { + loadedAssets.add(interactionAsset); + checkWhenLoaded(); + }); + interactionAsset.onAttachedToWindow(); + + setsLoaded[1] = true; + checkWhenLoaded(); + }); + } + + private ArrayList callbacks = new ArrayList<>(); + public void checkWhenLoaded() { + if (loaded || loadedAssets.size() < allAssets.size()) { + return; + } + if (!setsLoaded[0] || !setsLoaded[1]) { + return; + } + loaded = true; + for (Runnable callback : callbacks) + callback.run(); + callbacks.clear(); + } + + public boolean isLoaded() { + return loaded; + } + + public void subscribe(Runnable callback) { + if (loaded) callback.run(); + else callbacks.add(callback); + } + + private boolean detachLater; + public void detach(boolean force) { + if (!force && !views.isEmpty()) { + detachLater = true; + return; + } + callbacks.clear(); + for (int i = 0; i < allAssets.size(); ++i) { + allAssets.get(i).onDetachedFromWindow(); + } + allAssets.clear(); + } + + public ArrayList views = new ArrayList<>(); + + public void addView(ProfileBirthdayEffect effect) { + views.add(effect); + } + + public void removeView(ProfileBirthdayEffect effect) { + views.remove(effect); + if (views.isEmpty() && detachLater) { + detach(true); + detachLater = false; + } + } + } + + + private static class ImageReceiverAsset extends ImageReceiver { + + public void setEmoji(TLRPC.Document document, String filter, TLRPC.TL_messages_stickerSet set, Runnable whenDone) { + final Runnable[] callback = new Runnable[] { whenDone }; + setDelegate(new ImageReceiverDelegate() { + @Override + public void didSetImage(ImageReceiver imageReceiver, boolean set, boolean thumb, boolean memCache) { + if (imageReceiver.hasBitmapImage() && callback[0] != null) { + RLottieDrawable lottieDrawable = imageReceiver.getLottieAnimation(); + if (lottieDrawable == null) { + callback[0].run(); + callback[0] = null; + return; + } + if (lottieDrawable.isGeneratingCache()) { + lottieDrawable.whenCacheDone = () -> { + callback[0].run(); + callback[0] = null; + }; + } else { + callback[0].run(); + callback[0] = null; + } + } + } + }); + setImage(ImageLocation.getForDocument(document), filter, null, null, set, 0); + } + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ReportAdBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/ReportAdBottomSheet.java new file mode 100644 index 0000000000..7a3b363b1a --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/ReportAdBottomSheet.java @@ -0,0 +1,491 @@ +package org.telegram.ui; + +import static org.telegram.messenger.AndroidUtilities.dp; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Path; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.util.Log; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.MotionEvent; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessageObject; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.R; +import org.telegram.messenger.Utilities; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.BackDrawable; +import org.telegram.ui.ActionBar.BottomSheet; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Cells.HeaderCell; +import org.telegram.ui.Components.AnimatedFloat; +import org.telegram.ui.Components.CombinedDrawable; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.LinkSpanDrawable; +import org.telegram.ui.Components.MediaActivity; +import org.telegram.ui.Components.UItem; +import org.telegram.ui.Components.UniversalAdapter; +import org.telegram.ui.Components.UniversalRecyclerView; +import org.telegram.ui.Components.ViewPagerFixed; + +import java.util.ArrayList; +import java.util.Collections; + +public class ReportAdBottomSheet extends BottomSheet { + + private final ViewPagerFixed viewPager; + private static final int PAGE_TYPE_OPTIONS = 0; + private static final int PAGE_TYPE_SUB_OPTIONS = 1; + private final Paint backgroundPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + private final MessageObject messageObject; + private final TLRPC.Chat chat; + private Listener listener; + + interface Listener { + void onReported(); + void onHidden(); + void onPremiumRequired(); + } + + public ReportAdBottomSheet(Context context, Theme.ResourcesProvider resourcesProvider, MessageObject messageObject, TLRPC.Chat chat) { + super(context, true, resourcesProvider); + this.messageObject = messageObject; + this.chat = chat; + backgroundPaint.setColor(Theme.getColor(Theme.key_dialogBackground, resourcesProvider)); + containerView = new ContainerView(context); + viewPager = new ViewPagerFixed(context) { + @Override + protected void onTabAnimationUpdate(boolean manual) { + super.onTabAnimationUpdate(manual); + containerView.invalidate(); + } + + @Override + protected boolean canScrollForward(MotionEvent e) { + return false; + } + + }; + viewPager.setPadding(backgroundPaddingLeft, 0, backgroundPaddingLeft, 0); + containerView.addView(viewPager, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.FILL)); + viewPager.setAdapter(new ViewPagerFixed.Adapter() { + @Override + public int getItemCount() { + return 5; + } + + @Override + public View createView(int viewType) { + return new Page(context); + } + + @Override + public int getItemViewType(int position) { + if (position == 0) { + return PAGE_TYPE_OPTIONS; + } else { + return PAGE_TYPE_SUB_OPTIONS; + } + } + + @Override + public void bindView(View view, int position, int viewType) { + ((Page) view).bind(viewType); + } + + }); + + if (messageObject == null) { + setReportChooseOption(null); + } + } + + public ReportAdBottomSheet setReportChooseOption(TLRPC.TL_channels_sponsoredMessageReportResultChooseOption chooseOption) { + View[] viewPages = viewPager.getViewPages(); + if (viewPages[0] instanceof Page) { + ((Page) viewPages[0]).bind(PAGE_TYPE_OPTIONS); + containerView.post(() -> ((Page) viewPages[0]).setOption(chooseOption)); + } + if (viewPages[1] instanceof Page) { + ((Page) viewPages[1]).bind(PAGE_TYPE_SUB_OPTIONS); + } + return this; + } + + public ReportAdBottomSheet setListener(Listener listener) { + this.listener = listener; + return this; + } + + @Override + public void onBackPressed() { + if (viewPager.getCurrentPosition() > 0) { + viewPager.scrollToPosition(viewPager.getCurrentPosition() - 1); + return; + } + super.onBackPressed(); + } + + @Override + protected boolean canDismissWithSwipe() { + View currentView = viewPager.getCurrentView(); + if (currentView instanceof Page) { + return ((Page) currentView).atTop(); + } + return true; + } + + private void submitOption(CharSequence optionText, byte[] option) { + TLRPC.TL_channels_reportSponsoredMessage req = new TLRPC.TL_channels_reportSponsoredMessage(); + req.channel = MessagesController.getInputChannel(chat); + req.random_id = messageObject.sponsoredId; + req.option = option; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> { + AndroidUtilities.runOnUIThread(() -> { + if (response != null) { + if (response instanceof TLRPC.TL_channels_sponsoredMessageReportResultChooseOption) { + TLRPC.TL_channels_sponsoredMessageReportResultChooseOption result = (TLRPC.TL_channels_sponsoredMessageReportResultChooseOption) response; + int nextPosition = viewPager.currentPosition + 1; + viewPager.scrollToPosition(nextPosition); + Page nextPage = (Page) viewPager.getViewPages()[1]; + if (nextPage != null) { + nextPage.setOption(result); + if (optionText != null) { + nextPage.setHeaderText(optionText); + } + } + } else if (response instanceof TLRPC.TL_channels_sponsoredMessageReportResultAdsHidden) { + if (listener != null) { + listener.onHidden(); + dismiss(); + } + } else if (response instanceof TLRPC.TL_channels_sponsoredMessageReportResultReported) { + if (listener != null) { + listener.onReported(); + dismiss(); + } + } + } else if (error != null) { + if ("PREMIUM_ACCOUNT_REQUIRED".equals(error.text)) { + if (listener != null) { + listener.onPremiumRequired(); + } + } else if ("AD_EXPIRED".equals(error.text)) { + if (listener != null) { + listener.onReported(); + } + } + dismiss(); + } + }); + }); + } + + private class ContainerView extends FrameLayout { + private final AnimatedFloat isActionBar = new AnimatedFloat(this, 250, CubicBezierInterpolator.EASE_OUT_QUINT); + private float top; + private final Path path = new Path(); + private Boolean statusBarOpen; + + public ContainerView(Context context) { + super(context); + } + + @Override + protected void dispatchDraw(Canvas canvas) { + View[] views = viewPager.getViewPages(); + top = 0; + for (View view : views) { + if (view == null) { + continue; + } + final Page page = (Page) view; + float t = Utilities.clamp(1f - Math.abs(page.getTranslationX() / (float) page.getMeasuredWidth()), 1, 0); + top += page.top() * t; + if (page.getVisibility() == View.VISIBLE) { + page.updateTops(); + } + } + float actionBarT = isActionBar.set(top <= AndroidUtilities.statusBarHeight ? 1f : 0f); + float statusBarHeight = AndroidUtilities.statusBarHeight * actionBarT; + top = Math.max(AndroidUtilities.statusBarHeight, top) - AndroidUtilities.statusBarHeight * actionBarT; + AndroidUtilities.rectTmp.set(backgroundPaddingLeft, top, getWidth() - backgroundPaddingLeft, getHeight() + dp(8)); + final float r = AndroidUtilities.lerp(dp(14), 0, actionBarT); + canvas.drawRoundRect(AndroidUtilities.rectTmp, r, r, backgroundPaint); + canvas.save(); + path.rewind(); + path.addRoundRect(AndroidUtilities.rectTmp, r, r, Path.Direction.CW); + canvas.clipPath(path); + super.dispatchDraw(canvas); + canvas.restore(); + updateLightStatusBar(statusBarHeight > AndroidUtilities.statusBarHeight / 2f); + } + + @Override + protected boolean drawChild(Canvas canvas, View child, long drawingTime) { + return super.drawChild(canvas, child, drawingTime); + } + + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_DOWN && event.getY() < top) { + dismiss(); + return true; + } + return super.dispatchTouchEvent(event); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(heightMeasureSpec), MeasureSpec.EXACTLY)); + } + + private void updateLightStatusBar(boolean open) { + if (statusBarOpen != null && statusBarOpen == open) { + return; + } + boolean openBgLight = AndroidUtilities.computePerceivedBrightness(getThemedColor(Theme.key_dialogBackground)) > .721f; + boolean closedBgLight = AndroidUtilities.computePerceivedBrightness(Theme.blendOver(getThemedColor(Theme.key_actionBarDefault), 0x33000000)) > .721f; + boolean isLight = (statusBarOpen = open) ? openBgLight : closedBgLight; + AndroidUtilities.setLightStatusBar(getWindow(), isLight); + } + } + + private class Page extends FrameLayout { + int pageType; + TLRPC.TL_channels_sponsoredMessageReportResultChooseOption option; + + private final FrameLayout contentView; + private final UniversalRecyclerView listView; + private final BigHeaderCell headerView; + + public Page(Context context) { + super(context); + + contentView = new FrameLayout(context); + contentView.setPadding(0, AndroidUtilities.statusBarHeight, 0, 0); + contentView.setClipToPadding(true); + addView(contentView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.FILL)); + + headerView = new BigHeaderCell(context, resourcesProvider); + headerView.setOnBackClickListener(() -> { + if (pageType == PAGE_TYPE_OPTIONS) { + dismiss(); + } else { + onBackPressed(); + } + }); + headerView.setText(LocaleController.getString("ReportAd", R.string.ReportAd)); + headerView.backDrawable.setColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + headerView.setBackgroundColor(Theme.getColor(Theme.key_dialogBackground, resourcesProvider)); + addView(headerView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL)); + + listView = new UniversalRecyclerView(context, currentAccount, 0, this::fillItems, this::onClick, null, resourcesProvider); + listView.setClipToPadding(false); + listView.layoutManager.setReverseLayout(true); + listView.setOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { + contentView.invalidate(); + containerView.invalidate(); + } + }); + contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + } + + public float top() { + float top = contentView.getPaddingTop(); + for (int i = 0; i < listView.getChildCount(); ++i) { + View child = listView.getChildAt(i); + int position = listView.layoutManager.getPosition(child); + if (position < 0 || position >= listView.adapter.getItemCount()) + continue; + UItem uItem = listView.adapter.getItem(position); + if (uItem != null && uItem.viewType == UniversalAdapter.VIEW_TYPE_SPACE) { + top = contentView.getPaddingTop() + child.getY(); + } + } + return top; + } + + public void updateTops() { + float top = -headerView.getHeight(); + for (int i = 0; i < listView.getChildCount(); ++i) { + View child = listView.getChildAt(i); + int position = listView.layoutManager.getPosition(child); + UItem uItem = listView.adapter.getItem(position); + if (uItem.viewType == UniversalAdapter.VIEW_TYPE_SPACE) { + top = contentView.getPaddingTop() + child.getY(); + break; + } + } + headerView.setTranslationY(Math.max(AndroidUtilities.statusBarHeight, top)); + } + + public void bind(int pageType) { + this.pageType = pageType; + headerView.setCloseImageVisible(pageType != PAGE_TYPE_OPTIONS); + if (listView != null) { + listView.adapter.update(true); + } + } + + public void setOption(TLRPC.TL_channels_sponsoredMessageReportResultChooseOption option) { + this.option = option; + listView.adapter.update(false); + } + + public void setHeaderText(CharSequence headerText) { + headerView.setText(headerText); + headerView.measure(MeasureSpec.makeMeasureSpec(AndroidUtilities.displaySize.x, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(dp(120), MeasureSpec.AT_MOST)); + if (listView != null) { + listView.adapter.update(true); + } + } + + public void fillItems(ArrayList items, UniversalAdapter adapter) { + int height = 0; + + if (headerView.getMeasuredHeight() <= 0) { + headerView.measure(MeasureSpec.makeMeasureSpec(AndroidUtilities.displaySize.x, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(dp(120), MeasureSpec.AT_MOST)); + } + UItem space = UItem.asSpace(headerView.getMeasuredHeight()); + space.id = -1; + space.transparent = true; + items.add(space); + height += headerView.getMeasuredHeight() / AndroidUtilities.density; + + if (option != null) { + HeaderCell headerCell = new HeaderCell(getContext(), Theme.key_windowBackgroundWhiteBlueHeader, 21, 0, 0, false, resourcesProvider); + headerCell.setText(option.title); + headerCell.setBackgroundColor(getThemedColor(Theme.key_dialogBackground)); + UItem headerItem = UItem.asCustom(headerCell); + headerItem.id = -2; + items.add(headerItem); + height += 40; + + for (int i = 0; i < option.options.size(); i++) { + UItem buttonItem = new UItem(UniversalAdapter.VIEW_TYPE_RIGHT_ICON_TEXT, false); + buttonItem.text = option.options.get(i).text; + buttonItem.backgroundKey = Theme.key_dialogBackground; + buttonItem.iconResId = R.drawable.msg_arrowright; + buttonItem.id = i; + items.add(buttonItem); + height += 50; + } + items.get(items.size() - 1).hideDivider = true; + + if (pageType == PAGE_TYPE_OPTIONS) { + FrameLayout frameLayout = new FrameLayout(getContext()); + Drawable shadowDrawable = Theme.getThemedDrawable(getContext(), R.drawable.greydivider, Theme.getColor(Theme.key_windowBackgroundGrayShadow, resourcesProvider)); + Drawable background = new ColorDrawable(getThemedColor(Theme.key_windowBackgroundGray)); + CombinedDrawable combinedDrawable = new CombinedDrawable(background, shadowDrawable, 0, 0); + combinedDrawable.setFullsize(true); + frameLayout.setBackground(combinedDrawable); + LinkSpanDrawable.LinksTextView textView = new LinkSpanDrawable.LinksTextView(getContext()); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + textView.setText(AndroidUtilities.replaceLinks(LocaleController.getString("ReportAdLearnMore", R.string.ReportAdLearnMore), resourcesProvider)); + textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText3, resourcesProvider)); + textView.setGravity(Gravity.CENTER); + frameLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 16, 16, 16, 16)); + UItem bottomItem = UItem.asCustom(frameLayout); + bottomItem.id = -3; + items.add(bottomItem); + height += 46; + } + } + + if (listView != null) { + if (containerView.getMeasuredHeight() - AndroidUtilities.statusBarHeight < AndroidUtilities.dp(height)) { + listView.layoutManager.setReverseLayout(false); + } else { + Collections.reverse(items); + listView.layoutManager.setReverseLayout(true); + } + } + } + + private void onClick(UItem item, View view, int position, float x, float y) { + if (item.viewType == UniversalAdapter.VIEW_TYPE_RIGHT_ICON_TEXT) { + if (option != null) { + TLRPC.TL_sponsoredMessageReportOption clickedOption = option.options.get(item.id); + if (clickedOption != null) { + submitOption(clickedOption.text, clickedOption.option); + } + } else { + submitOption(item.text, null); + } + } + } + + public boolean atTop() { + return !listView.canScrollVertically(-1); + } + + private class BigHeaderCell extends FrameLayout { + private final ImageView btnBack; + private final TextView textView; + public BackDrawable backDrawable; + private Runnable onBackClickListener; + + public BigHeaderCell(Context context, Theme.ResourcesProvider resourcesProvider) { + super(context); + textView = new TextView(context); + textView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); + textView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); + textView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); + addView(textView); + + btnBack = new ImageView(context); + btnBack.setImageDrawable(backDrawable = new BackDrawable(false)); + backDrawable.setColor(0xffffffff); + addView(btnBack, LayoutHelper.createFrame(24, 24, Gravity.TOP | (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT), 16, 16, 16, 0)); + btnBack.setOnClickListener(e -> { + if (onBackClickListener != null) { + onBackClickListener.run(); + } + }); + + setCloseImageVisible(true); + setMinimumHeight(dp(56)); + } + + public void setText(CharSequence text) { + textView.setText(text); + } + + public void setCloseImageVisible(boolean visible) { + btnBack.setVisibility(visible ? View.VISIBLE : View.GONE); + textView.setLayoutParams(LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, LocaleController.isRTL || !visible ? 22 : 53, 14, LocaleController.isRTL && visible ? 53 : 22, 12)); + } + + public void setOnBackClickListener(Runnable onCloseClickListener) { + this.onBackClickListener = onCloseClickListener; + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure( + MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), + heightMeasureSpec + ); + } + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/RevenueSharingAdsInfoBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/RevenueSharingAdsInfoBottomSheet.java new file mode 100644 index 0000000000..9b2479f8d1 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/RevenueSharingAdsInfoBottomSheet.java @@ -0,0 +1,184 @@ +package org.telegram.ui; + +import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.getString; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.drawable.Drawable; +import android.text.SpannableString; +import android.text.SpannableStringBuilder; +import android.text.Spanned; +import android.text.TextUtils; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ScrollView; +import android.widget.TextView; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.R; +import org.telegram.messenger.browser.Browser; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.BottomSheet; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.ColoredImageSpan; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.LinkSpanDrawable; +import org.telegram.ui.Components.RLottieImageView; + +public class RevenueSharingAdsInfoBottomSheet extends BottomSheet { + private static final int ITEM_HORIZONTAL_PADDING = 27; + private static final int ICON_SIZE = 24; + private static final int ITEM_TEXT_PADDING = 68; + + private final Paint topIconBgPaint; + + @SuppressLint("UseCompatLoadingForDrawables") + public RevenueSharingAdsInfoBottomSheet(BaseFragment baseFragment, Context context, Theme.ResourcesProvider resourcesProvider) { + super(context, false, resourcesProvider); + topIconBgPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + topIconBgPaint.setStyle(Paint.Style.FILL); + topIconBgPaint.setColor(Theme.getColor(Theme.key_featuredStickers_addButton)); + + LinearLayout linearLayout = new LinearLayout(context); + linearLayout.setOrientation(LinearLayout.VERTICAL); + + RLottieImageView imageView = new RLottieImageView(getContext()); + imageView.setScaleType(ImageView.ScaleType.CENTER); + imageView.setImageResource(R.drawable.large_ads_info); + imageView.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)); + imageView.setBackground(Theme.createCircleDrawable(dp(80), Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider))); + linearLayout.addView(imageView, LayoutHelper.createLinear(80, 80, Gravity.CENTER_HORIZONTAL, 0, 28, 0, 0)); + + TextView topTitle = new TextView(context); + topTitle.setText(LocaleController.getString("AboutRevenueSharingAds", R.string.AboutRevenueSharingAds)); + topTitle.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + topTitle.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + topTitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); + topTitle.setGravity(Gravity.CENTER_HORIZONTAL); + linearLayout.addView(topTitle, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 22, 14, 22, 0)); + + TextView topSubtitle = new TextView(context); + topSubtitle.setText(LocaleController.getString("RevenueSharingAdsAlertSubtitle", R.string.RevenueSharingAdsAlertSubtitle)); + topSubtitle.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + topSubtitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + topSubtitle.setGravity(Gravity.CENTER_HORIZONTAL); + linearLayout.addView(topSubtitle, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 22, 8, 22, 0)); + + FrameLayout info1 = new FeatureCell(context, R.drawable.menu_privacy, LocaleController.getString("RevenueSharingAdsInfo1Title", R.string.RevenueSharingAdsInfo1Title), LocaleController.getString("RevenueSharingAdsInfo1Subtitle", R.string.RevenueSharingAdsInfo1Subtitle)); + linearLayout.addView(info1, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 0, 20, 0, 0)); + + FrameLayout info2 = new FeatureCell(context, R.drawable.menu_feature_split, LocaleController.getString("RevenueSharingAdsInfo2Title", R.string.RevenueSharingAdsInfo2Title), LocaleController.getString("RevenueSharingAdsInfo2Subtitle", R.string.RevenueSharingAdsInfo2Subtitle)); + linearLayout.addView(info2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 0, 16, 0, 0)); + + String info3DescriptionString = LocaleController.formatString("RevenueSharingAdsInfo3Subtitle", R.string.RevenueSharingAdsInfo3Subtitle, MessagesController.getInstance(baseFragment.getCurrentAccount()).channelRestrictSponsoredLevelMin); + SpannableStringBuilder info3Description = AndroidUtilities.replaceSingleTag(info3DescriptionString, Theme.key_chat_messageLinkIn, 0, () -> { + BaseFragment premiumFragment = new PremiumPreviewFragment(PremiumPreviewFragment.featureTypeToServerString(PremiumPreviewFragment.PREMIUM_FEATURE_ADS)); + baseFragment.presentFragment(premiumFragment); + dismiss(); + }); + + FrameLayout info3 = new FeatureCell(context, R.drawable.menu_feature_noads, LocaleController.getString("RevenueSharingAdsInfo3Title", R.string.RevenueSharingAdsInfo3Title), info3Description); + linearLayout.addView(info3, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 0, 16, 0, 0)); + + View divider = new View(getContext()); + divider.setBackgroundColor(Theme.getColor(Theme.key_divider)); + LinearLayout.LayoutParams dividerLayoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 1); + dividerLayoutParams.setMargins(AndroidUtilities.dp(24), AndroidUtilities.dp(20), AndroidUtilities.dp(24), AndroidUtilities.dp(20)); + linearLayout.addView(divider, dividerLayoutParams); + + TextView textViewDescription4 = new TextView(context); + textViewDescription4.setText(LocaleController.getString("RevenueSharingAdsInfo4Title", R.string.RevenueSharingAdsInfo4Title)); + textViewDescription4.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + textViewDescription4.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + textViewDescription4.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); + textViewDescription4.setTextAlignment(TextView.TEXT_ALIGNMENT_CENTER); + linearLayout.addView(textViewDescription4, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 22, 0, 22, 0)); + + SpannableStringBuilder bottomSubtitle1 = AndroidUtilities.replaceTags(LocaleController.getString(R.string.RevenueSharingAdsInfo4Subtitle2)); + String bottomSubtitle2 = getString(R.string.RevenueSharingAdsInfo4SubtitleLearnMore); + SpannableStringBuilder stringBuilder2 = AndroidUtilities.replaceSingleTag(bottomSubtitle2, Theme.key_chat_messageLinkIn, 0, () -> Browser.openUrl(getContext(), LocaleController.getString("PromoteUrl", R.string.PromoteUrl))); + SpannableString arrowStr = new SpannableString(">"); + ColoredImageSpan span = new ColoredImageSpan(R.drawable.attach_arrow_right); + span.setOverrideColor(Theme.getColor(Theme.key_chat_messageLinkIn)); + span.setScale(.7f, .7f); + span.setWidth(dp(12)); + span.setTranslateY(1); + arrowStr.setSpan(span, 0, arrowStr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + SpannableStringBuilder bottomSubtitleFinal = AndroidUtilities.replaceCharSequence(">", AndroidUtilities.replaceCharSequence("%1$s", bottomSubtitle1, stringBuilder2), arrowStr); + LinkSpanDrawable.LinksTextView textViewSubtitle4 = new LinkSpanDrawable.LinksTextView(context); + textViewSubtitle4.setText(bottomSubtitleFinal); + textViewSubtitle4.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); + textViewSubtitle4.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + textViewSubtitle4.setGravity(Gravity.CENTER_HORIZONTAL); + textViewSubtitle4.setLineSpacing(AndroidUtilities.dp(2), 1f); + linearLayout.addView(textViewSubtitle4, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 26, 8, 26, 0)); + + TextView buttonTextView = new TextView(context); + buttonTextView.setLines(1); + buttonTextView.setSingleLine(true); + buttonTextView.setGravity(Gravity.CENTER); + buttonTextView.setEllipsize(TextUtils.TruncateAt.END); + buttonTextView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); + buttonTextView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + buttonTextView.setText(LocaleController.getString("RevenueSharingAdsAlertButton", R.string.RevenueSharingAdsAlertButton)); + buttonTextView.setBackground(Theme.AdaptiveRipple.filledRect(Theme.getColor(Theme.key_featuredStickers_addButton), 6)); + buttonTextView.setOnClickListener(e -> dismiss()); + linearLayout.addView(buttonTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, 0, 14, 22, 14, 14)); + + ScrollView scrollView = new ScrollView(getContext()); + scrollView.addView(linearLayout); + setCustomView(scrollView); + } + + public static RevenueSharingAdsInfoBottomSheet showAlert(Context context, BaseFragment fragment, Theme.ResourcesProvider resourcesProvider) { + RevenueSharingAdsInfoBottomSheet alert = new RevenueSharingAdsInfoBottomSheet(fragment, context, resourcesProvider); + if (fragment != null) { + if (fragment.getParentActivity() != null) { + fragment.showDialog(alert); + } + } else { + alert.show(); + } + return alert; + } + + private class FeatureCell extends FrameLayout { + public FeatureCell(Context context, int icon, CharSequence header, CharSequence text) { + super(context); + boolean isRtl = LocaleController.isRTL; + ImageView ivIcon = new ImageView(getContext()); + Drawable iconDrawable = getContext().getResources().getDrawable(icon).mutate(); + iconDrawable.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText), PorterDuff.Mode.MULTIPLY)); + ivIcon.setImageDrawable(iconDrawable); + addView(ivIcon, LayoutHelper.createFrame(ICON_SIZE, ICON_SIZE, isRtl ? Gravity.RIGHT : Gravity.LEFT, isRtl ? 0 : ITEM_HORIZONTAL_PADDING, 6, isRtl ? ITEM_HORIZONTAL_PADDING : 0, 0)); + + TextView tvTitle = new TextView(getContext()); + tvTitle.setText(header); + tvTitle.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); + tvTitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + tvTitle.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + addView(tvTitle, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, isRtl ? Gravity.RIGHT : Gravity.LEFT, isRtl ? ITEM_HORIZONTAL_PADDING : ITEM_TEXT_PADDING, 0, isRtl ? ITEM_TEXT_PADDING : ITEM_HORIZONTAL_PADDING, 0)); + + LinkSpanDrawable.LinksTextView tvSubtitle = new LinkSpanDrawable.LinksTextView(getContext()); + tvSubtitle.setText(text); + tvSubtitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + tvSubtitle.setTextColor(Theme.getColor(Theme.key_player_actionBarSubtitle)); + tvSubtitle.setLinkTextColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider)); + tvSubtitle.setLineSpacing(AndroidUtilities.dp(2), 1f); + addView(tvSubtitle, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, isRtl ? Gravity.RIGHT : Gravity.LEFT, isRtl ? ITEM_HORIZONTAL_PADDING : ITEM_TEXT_PADDING, 18, isRtl ? ITEM_TEXT_PADDING : ITEM_HORIZONTAL_PADDING, 0)); + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SelectAnimatedEmojiDialog.java b/TMessagesProj/src/main/java/org/telegram/ui/SelectAnimatedEmojiDialog.java index dc9045464b..c4ab2453e1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SelectAnimatedEmojiDialog.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SelectAnimatedEmojiDialog.java @@ -151,6 +151,7 @@ public class SelectAnimatedEmojiDialog extends FrameLayout implements Notificati public final static int TYPE_EMOJI_STATUS_CHANNEL_TOP = 10; public final static int TYPE_TAGS = 11; public final static int TYPE_EMOJI_STATUS_TOP = 12; + public final static int TYPE_STICKER_SET_EMOJI = 13; public boolean isBottom() { return type == TYPE_SET_REPLY_ICON || type == TYPE_EMOJI_STATUS_CHANNEL_TOP || type == TYPE_EMOJI_STATUS_TOP; @@ -207,6 +208,20 @@ public void setSelectedReactions(HashSet recent = new ArrayList<>(); private ArrayList recentStickers = new ArrayList<>(); + private ArrayList standardEmojis = new ArrayList<>(); private ArrayList topReactions = new ArrayList<>(); private ArrayList recentReactions = new ArrayList<>(); private ArrayList defaultStatuses = new ArrayList<>(); @@ -659,7 +675,7 @@ protected void onTabCreate(EmojiTabsStrip.EmojiTabButton button) { } emojiTabs.animateAppear = bubbleX == null; emojiTabs.setPaddingLeft(type == TYPE_CHAT_REACTIONS ? 10 : 5); - if (type != TYPE_EXPANDABLE_REACTIONS) { + if (type != TYPE_EXPANDABLE_REACTIONS && type != TYPE_STICKER_SET_EMOJI) { contentView.addView(emojiTabs, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 36)); } cachedEmojiTabs[i] = emojiTabs; @@ -678,7 +694,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } }; emojiTabsShadow.setBackgroundColor(Theme.getColor(Theme.key_divider, resourcesProvider)); - if (type != TYPE_EXPANDABLE_REACTIONS) { + if (type != TYPE_EXPANDABLE_REACTIONS && type != TYPE_STICKER_SET_EMOJI) { contentView.addView(emojiTabsShadow, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 1f / AndroidUtilities.density, Gravity.TOP, 0, 36, 0, 0)); } AndroidUtilities.updateViewVisibilityAnimated(emojiTabsShadow, true, 1f, false); @@ -877,7 +893,7 @@ public int getSpanSize(int position) { }); emojiSearchGridView.setVisibility(View.GONE); gridViewContainer.addView(emojiSearchGridView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.FILL, 0, 0, 0, 0)); - contentView.addView(gridViewContainer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP, 0, type == TYPE_EXPANDABLE_REACTIONS ? 0 : 36 + (1 / AndroidUtilities.density), 0, 0)); + contentView.addView(gridViewContainer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP, 0, type == TYPE_EXPANDABLE_REACTIONS || type == TYPE_STICKER_SET_EMOJI ? 0 : 36 + (1 / AndroidUtilities.density), 0, 0)); scrollHelper = new RecyclerAnimationScrollHelper(emojiGridView, layoutManager); scrollHelper.setAnimationCallback(new RecyclerAnimationScrollHelper.AnimationCallback() { @@ -898,7 +914,7 @@ public void onEndAnimation() { RecyclerListView.OnItemLongClickListenerExtended onItemLongClick = new RecyclerListView.OnItemLongClickListenerExtended() { @Override public boolean onItemClick(View view, int position, float x, float y) { - if (type == TYPE_TAGS) return false; + if (type == TYPE_TAGS || type == TYPE_STICKER_SET_EMOJI) return false; if (view instanceof ImageViewEmoji && (type == TYPE_REACTIONS || type == TYPE_EXPANDABLE_REACTIONS)) { incrementHintUse(); if (!NekoConfig.disableVibration.Bool()) @@ -1672,235 +1688,286 @@ public void search(String query, boolean liftUp, boolean delay) { final ArrayList> emojiArrays = new ArrayList<>(); final HashMap, String> emojiStickers = new HashMap<>(); final ArrayList sets = new ArrayList<>(); - Utilities.doCallbacks( - next -> { - if (queryFullyConsistsOfEmojis) { - StickerCategoriesListView.search.fetch(UserConfig.selectedAccount, query, list -> { - if (list != null) { - documentIds.addAll(list.document_id); + final Utilities.Callback applySearch = next -> AndroidUtilities.runOnUIThread(() -> { + if (clearSearchRunnable != null) { + AndroidUtilities.cancelRunOnUIThread(clearSearchRunnable); + clearSearchRunnable = null; + } + + if (query != lastQuery) { + return; + } + searched = true; + switchGrids(true, liftUp); + if (searchBox != null) { + searchBox.showProgress(false); + } + if (searchResult == null) { + searchResult = new ArrayList<>(); + } else { + searchResult.clear(); + } + if (searchSets == null) { + searchSets = new ArrayList<>(); + } else { + searchSets.clear(); + } + if (stickersSearchResult == null) { + stickersSearchResult = new ArrayList<>(); + } else { + stickersSearchResult.clear(); + } + emojiSearchGridView.scrollToPosition(0); + if (type == TYPE_REACTIONS || type == TYPE_TAGS || type == TYPE_SET_DEFAULT_REACTION) { + if (!reactions.isEmpty()) { + searchResult.addAll(reactions); + } else { + TLRPC.TL_availableReaction reaction = availableReactions.get(query); + if (reaction != null) { + searchResult.add(ReactionsLayoutInBubble.VisibleReaction.fromEmojicon(reaction)); + } + } + } + for (long documentId : documentIds) { + searchResult.add(ReactionsLayoutInBubble.VisibleReaction.fromCustomEmoji(documentId)); + } + searchSets.addAll(sets); + for (ArrayList array : emojiArrays) { + stickersSearchResult.addAll(array); + } + searchAdapter.updateRows(!firstSearch); + }); + + if (type == TYPE_STICKER_SET_EMOJI) { + final TLRPC.TL_messages_stickerSet[] restrictedSet = new TLRPC.TL_messages_stickerSet[] { null }; + final TLRPC.TL_messages_stickerSet[] staticSet = new TLRPC.TL_messages_stickerSet[] { null }; + + final Utilities.Callback loadSets = next -> { +// TLRPC.TL_inputStickerSetShortName inputStickerSetShortName = new TLRPC.TL_inputStickerSetShortName(); +// inputStickerSetShortName.short_name = "RestrictedEmoji"; +// MediaDataController.getInstance(currentAccount).getStickerSet(inputStickerSetShortName, 0, false, set -> { +// restrictedSet[0] = set; +// if (staticSet[0] != null) next.run(); +// }); + TLRPC.TL_inputStickerSetShortName inputStickerSetShortName2 = new TLRPC.TL_inputStickerSetShortName(); + inputStickerSetShortName2.short_name = "StaticEmoji"; + MediaDataController.getInstance(currentAccount).getStickerSet(inputStickerSetShortName2, 0, false, set -> { + staticSet[0] = set; +// if (restrictedSet[0] != null) + next.run(); + }); + }; + final Utilities.Callback search = next -> { + MediaDataController.getInstance(currentAccount).getEmojiSuggestions( + lastSearchKeyboardLanguage, query, false, + (result, alias) -> { + try { + for (int i = 0; i < result.size(); ++i) { + if (result.get(i).emoji.startsWith("animated_")) { + continue; + } + String emoji = result.get(i).emoji; + TLRPC.Document document; + document = findSticker(restrictedSet[0], emoji); + if (document == null) { + document = findSticker(staticSet[0], emoji); + } + if (document != null) { + AnimatedEmojiDrawable.getDocumentFetcher(currentAccount).putDocument(document); + documentIds.add(document.id); + } } - next.run(); - }); - } else { + } catch (Exception ignore) { + } next.run(); - } - }, - next -> { - MediaDataController.getInstance(currentAccount).getAnimatedEmojiByKeywords(query, _documentIds -> { - if (_documentIds != null) { - documentIds.addAll(_documentIds); + }, + null, false, false, false, 0 + ); + }; + + Utilities.doCallbacks(loadSets, search, applySearch); + } else { + final Utilities.Callback searchCategories = next -> { + if (queryFullyConsistsOfEmojis) { + StickerCategoriesListView.search.fetch(UserConfig.selectedAccount, query, list -> { + if (list != null) { + documentIds.addAll(list.document_id); } next.run(); }); - }, - next -> { - if (queryFullyConsistsOfEmojis) { - ArrayList stickerSets = MediaDataController.getInstance(currentAccount).getStickerSets(MediaDataController.TYPE_EMOJIPACKS); - String emoticon; - - for (int i = 0; i < stickerSets.size(); ++i) { - if (stickerSets.get(i).documents == null) { - continue; + } else { + next.run(); + } + }; + final Utilities.Callback searchByKeywords = next -> { + MediaDataController.getInstance(currentAccount).getAnimatedEmojiByKeywords(query, _documentIds -> { + if (_documentIds != null) { + documentIds.addAll(_documentIds); + } + next.run(); + }); + }; + final Utilities.Callback searchEmojiSuggestions = next -> { + if (queryFullyConsistsOfEmojis) { + ArrayList stickerSets = MediaDataController.getInstance(currentAccount).getStickerSets(MediaDataController.TYPE_EMOJIPACKS); + String emoticon; + + for (int i = 0; i < stickerSets.size(); ++i) { + if (stickerSets.get(i).documents == null) { + continue; + } + ArrayList documents = stickerSets.get(i).documents; + if (documents == null) { + continue; + } + for (int j = 0; j < documents.size(); ++j) { + emoticon = MessageObject.findAnimatedEmojiEmoticon(documents.get(j), null); + long id = documents.get(j).id; + if (emoticon != null && !documentIds.contains(id) && query.contains(emoticon.toLowerCase())) { + documentIds.add(id); } - ArrayList documents = stickerSets.get(i).documents; + } + } + + ArrayList featuredStickerSets = MediaDataController.getInstance(currentAccount).getFeaturedEmojiSets(); + for (int i = 0; i < featuredStickerSets.size(); ++i) { + if (featuredStickerSets.get(i) instanceof TLRPC.TL_stickerSetFullCovered && + ((TLRPC.TL_stickerSetFullCovered) featuredStickerSets.get(i)).keywords != null) { + ArrayList documents = ((TLRPC.TL_stickerSetFullCovered) featuredStickerSets.get(i)).documents; if (documents == null) { continue; } for (int j = 0; j < documents.size(); ++j) { emoticon = MessageObject.findAnimatedEmojiEmoticon(documents.get(j), null); - long id = documents.get(j).id; - if (emoticon != null && !documentIds.contains(id) && query.contains(emoticon.toLowerCase())) { + final long id = documents.get(j).id; + if (emoticon != null && !documentIds.contains(id) && query.contains(emoticon)) { documentIds.add(id); } } } + } - ArrayList featuredStickerSets = MediaDataController.getInstance(currentAccount).getFeaturedEmojiSets(); - for (int i = 0; i < featuredStickerSets.size(); ++i) { - if (featuredStickerSets.get(i) instanceof TLRPC.TL_stickerSetFullCovered && - ((TLRPC.TL_stickerSetFullCovered) featuredStickerSets.get(i)).keywords != null) { - ArrayList documents = ((TLRPC.TL_stickerSetFullCovered) featuredStickerSets.get(i)).documents; - if (documents == null) { - continue; - } - for (int j = 0; j < documents.size(); ++j) { - emoticon = MessageObject.findAnimatedEmojiEmoticon(documents.get(j), null); - final long id = documents.get(j).id; - if (emoticon != null && !documentIds.contains(id) && query.contains(emoticon)) { - documentIds.add(id); - } - } - } - } - - next.run(); - } else { - MediaDataController.getInstance(currentAccount).getEmojiSuggestions( - lastSearchKeyboardLanguage, query, false, - (result, alias) -> { - try { - for (int i = 0; i < result.size(); ++i) { - if (result.get(i).emoji.startsWith("animated_")) { - documentIds.add(Long.parseLong(result.get(i).emoji.substring(9))); - } else { - if (type == TYPE_REACTIONS || type == TYPE_TAGS || type == TYPE_SET_DEFAULT_REACTION) { - TLRPC.TL_availableReaction reaction = availableReactions.get(result.get(i).emoji); - if (reaction != null) { - reactions.add(ReactionsLayoutInBubble.VisibleReaction.fromEmojicon(reaction)); - } + next.run(); + } else { + MediaDataController.getInstance(currentAccount).getEmojiSuggestions( + lastSearchKeyboardLanguage, query, false, + (result, alias) -> { + try { + for (int i = 0; i < result.size(); ++i) { + if (result.get(i).emoji.startsWith("animated_")) { + documentIds.add(Long.parseLong(result.get(i).emoji.substring(9))); + } else { + if (type == TYPE_REACTIONS || type == TYPE_TAGS || type == TYPE_SET_DEFAULT_REACTION) { + TLRPC.TL_availableReaction reaction = availableReactions.get(result.get(i).emoji); + if (reaction != null) { + reactions.add(ReactionsLayoutInBubble.VisibleReaction.fromEmojicon(reaction)); } } } - } catch (Exception ignore) { } - next.run(); - }, - null, true, type == TYPE_TOPIC_ICON, false, 30 - ); - } - }, - next -> { - if (type != TYPE_AVATAR_CONSTRUCTOR) { - next.run(); - return; - } - final ArrayList emojiStickersArray = new ArrayList<>(0); - final LongSparseArray emojiStickersMap = new LongSparseArray<>(0); - HashMap> allStickers = MediaDataController.getInstance(currentAccount).getAllStickers(); - if (query.length() <= 14) { - CharSequence emoji = query; - int length = emoji.length(); - for (int a = 0; a < length; a++) { - if (a < length - 1 && (emoji.charAt(a) == 0xD83C && emoji.charAt(a + 1) >= 0xDFFB && emoji.charAt(a + 1) <= 0xDFFF || emoji.charAt(a) == 0x200D && (emoji.charAt(a + 1) == 0x2640 || emoji.charAt(a + 1) == 0x2642))) { - emoji = TextUtils.concat(emoji.subSequence(0, a), emoji.subSequence(a + 2, emoji.length())); - length -= 2; - a--; - } else if (emoji.charAt(a) == 0xfe0f) { - emoji = TextUtils.concat(emoji.subSequence(0, a), emoji.subSequence(a + 1, emoji.length())); - length--; - a--; - } + } catch (Exception ignore) { + } + next.run(); + }, + null, true, type == TYPE_TOPIC_ICON, false, 30 + ); + } + }; + final Utilities.Callback searchAvatarConstructor = next -> { + if (type != TYPE_AVATAR_CONSTRUCTOR) { + next.run(); + return; + } + final ArrayList emojiStickersArray = new ArrayList<>(0); + final LongSparseArray emojiStickersMap = new LongSparseArray<>(0); + HashMap> allStickers = MediaDataController.getInstance(currentAccount).getAllStickers(); + if (query.length() <= 14) { + CharSequence emoji = query; + int length = emoji.length(); + for (int a = 0; a < length; a++) { + if (a < length - 1 && (emoji.charAt(a) == 0xD83C && emoji.charAt(a + 1) >= 0xDFFB && emoji.charAt(a + 1) <= 0xDFFF || emoji.charAt(a) == 0x200D && (emoji.charAt(a + 1) == 0x2640 || emoji.charAt(a + 1) == 0x2642))) { + emoji = TextUtils.concat(emoji.subSequence(0, a), emoji.subSequence(a + 2, emoji.length())); + length -= 2; + a--; + } else if (emoji.charAt(a) == 0xfe0f) { + emoji = TextUtils.concat(emoji.subSequence(0, a), emoji.subSequence(a + 1, emoji.length())); + length--; + a--; } - ArrayList newStickers = allStickers != null ? allStickers.get(emoji.toString()) : null; - if (newStickers != null && !newStickers.isEmpty()) { - emojiStickersArray.addAll(newStickers); - for (int a = 0, size = newStickers.size(); a < size; a++) { - TLRPC.Document document = newStickers.get(a); - emojiStickersMap.put(document.id, document); - } - emojiArrays.add(emojiStickersArray); + } + ArrayList newStickers = allStickers != null ? allStickers.get(emoji.toString()) : null; + if (newStickers != null && !newStickers.isEmpty()) { + emojiStickersArray.addAll(newStickers); + for (int a = 0, size = newStickers.size(); a < size; a++) { + TLRPC.Document document = newStickers.get(a); + emojiStickersMap.put(document.id, document); } + emojiArrays.add(emojiStickersArray); } - if (allStickers != null && !allStickers.isEmpty() && query.length() > 1) { - MediaDataController.getInstance(currentAccount).getEmojiSuggestions(lastSearchKeyboardLanguage, query, false, (param, alias) -> { - boolean added = false; - for (int a = 0, size = param.size(); a < size; a++) { - String emoji = param.get(a).emoji; - ArrayList newStickers = allStickers != null ? allStickers.get(emoji) : null; - if (newStickers != null && !newStickers.isEmpty()) { - if (!emojiStickers.containsKey(newStickers)) { - emojiStickers.put(newStickers, emoji); - emojiArrays.add(newStickers); - } + } + if (allStickers != null && !allStickers.isEmpty() && query.length() > 1) { + MediaDataController.getInstance(currentAccount).getEmojiSuggestions(lastSearchKeyboardLanguage, query, false, (param, alias) -> { + boolean added = false; + for (int a = 0, size = param.size(); a < size; a++) { + String emoji = param.get(a).emoji; + ArrayList newStickers = allStickers != null ? allStickers.get(emoji) : null; + if (newStickers != null && !newStickers.isEmpty()) { + if (!emojiStickers.containsKey(newStickers)) { + emojiStickers.put(newStickers, emoji); + emojiArrays.add(newStickers); } } - next.run(); - }, false); - } - }, - next -> { - ArrayList stickerSets = MediaDataController.getInstance(currentAccount).getStickerSets(MediaDataController.TYPE_EMOJIPACKS); - final HashSet addedSets = new HashSet<>(); - final String q = translitSafe(query), sq = " " + q; - if (stickerSets != null) { - for (int i = 0; i < stickerSets.size(); ++i) { - TLRPC.TL_messages_stickerSet set = stickerSets.get(i); - if (set == null || set.set == null || set.set.title == null || set.documents == null || addedSets.contains(set.set.id)) continue; - final String title = translitSafe(set.set.title); - if (title.startsWith(q) || title.contains(sq)) { - sets.add(new SetTitleDocument(title)); - sets.addAll(set.documents); - addedSets.add(set.set.id); - } + } + next.run(); + }, false); + } + }; + final Utilities.Callback searchFromSets = next -> { + ArrayList stickerSets = MediaDataController.getInstance(currentAccount).getStickerSets(MediaDataController.TYPE_EMOJIPACKS); + final HashSet addedSets = new HashSet<>(); + final String q = translitSafe(query), sq = " " + q; + if (stickerSets != null) { + for (int i = 0; i < stickerSets.size(); ++i) { + TLRPC.TL_messages_stickerSet set = stickerSets.get(i); + if (set == null || set.set == null || set.set.title == null || set.documents == null || addedSets.contains(set.set.id)) continue; + final String title = translitSafe(set.set.title); + if (title.startsWith(q) || title.contains(sq)) { + sets.add(new SetTitleDocument(title)); + sets.addAll(set.documents); + addedSets.add(set.set.id); } } - ArrayList featuredSets = MediaDataController.getInstance(currentAccount).getFeaturedEmojiSets(); - if (featuredSets != null) { - for (int i = 0; i < featuredSets.size(); ++i) { - TLRPC.StickerSetCovered set = featuredSets.get(i); - if (set == null || set.set == null || set.set.title == null || addedSets.contains(set.set.id)) continue; - final String title = translitSafe(set.set.title); - if (title.startsWith(q) || title.contains(sq)) { - ArrayList documents = null; - if (set instanceof TLRPC.TL_stickerSetNoCovered) { - TLRPC.TL_messages_stickerSet fullSet = MediaDataController.getInstance(currentAccount).getStickerSet(MediaDataController.getInputStickerSet(set.set), set.set.hash, true); - if (fullSet != null) { - documents = fullSet.documents; - } - } else if (set instanceof TLRPC.TL_stickerSetFullCovered) { - documents = ((TLRPC.TL_stickerSetFullCovered) set).documents; - } else { - documents = set.covers; + } + ArrayList featuredSets = MediaDataController.getInstance(currentAccount).getFeaturedEmojiSets(); + if (featuredSets != null) { + for (int i = 0; i < featuredSets.size(); ++i) { + TLRPC.StickerSetCovered set = featuredSets.get(i); + if (set == null || set.set == null || set.set.title == null || addedSets.contains(set.set.id)) continue; + final String title = translitSafe(set.set.title); + if (title.startsWith(q) || title.contains(sq)) { + ArrayList documents = null; + if (set instanceof TLRPC.TL_stickerSetNoCovered) { + TLRPC.TL_messages_stickerSet fullSet = MediaDataController.getInstance(currentAccount).getStickerSet(MediaDataController.getInputStickerSet(set.set), set.set.hash, true); + if (fullSet != null) { + documents = fullSet.documents; } - if (documents == null || documents.size() == 0) continue; - sets.add(new SetTitleDocument(set.set.title)); - sets.addAll(documents); - addedSets.add(set.set.id); + } else if (set instanceof TLRPC.TL_stickerSetFullCovered) { + documents = ((TLRPC.TL_stickerSetFullCovered) set).documents; + } else { + documents = set.covers; } + if (documents == null || documents.size() == 0) continue; + sets.add(new SetTitleDocument(set.set.title)); + sets.addAll(documents); + addedSets.add(set.set.id); } } - next.run(); - }, - next -> AndroidUtilities.runOnUIThread(() -> { - if (clearSearchRunnable != null) { - AndroidUtilities.cancelRunOnUIThread(clearSearchRunnable); - clearSearchRunnable = null; - } + } + next.run(); + }; - if (query != lastQuery) { - return; - } - searched = true; - switchGrids(true, liftUp); - if (searchBox != null) { - searchBox.showProgress(false); - } - if (searchResult == null) { - searchResult = new ArrayList<>(); - } else { - searchResult.clear(); - } - if (searchSets == null) { - searchSets = new ArrayList<>(); - } else { - searchSets.clear(); - } - if (stickersSearchResult == null) { - stickersSearchResult = new ArrayList<>(); - } else { - stickersSearchResult.clear(); - } - emojiSearchGridView.scrollToPosition(0); - if (type == TYPE_REACTIONS || type == TYPE_TAGS || type == TYPE_SET_DEFAULT_REACTION) { - if (!reactions.isEmpty()) { - searchResult.addAll(reactions); - } else { - TLRPC.TL_availableReaction reaction = availableReactions.get(query); - if (reaction != null) { - searchResult.add(ReactionsLayoutInBubble.VisibleReaction.fromEmojicon(reaction)); - } - } - } - for (long documentId : documentIds) { - searchResult.add(ReactionsLayoutInBubble.VisibleReaction.fromCustomEmoji(documentId)); - } - searchSets.addAll(sets); - for (ArrayList array : emojiArrays) { - stickersSearchResult.addAll(array); - } - searchAdapter.updateRows(!firstSearch); - }) - ); + Utilities.doCallbacks(searchCategories, searchByKeywords, searchEmojiSuggestions, searchAvatarConstructor, searchFromSets, applySearch); + } }, delay ? 425 : 0); if (searchBox != null) { searchBox.showProgress(true); @@ -1910,6 +1977,26 @@ public void search(String query, boolean liftUp, boolean delay) { updateSearchBox(); } + public static TLRPC.Document findSticker(TLRPC.TL_messages_stickerSet set, String emoji) { + if (set == null) return null; + final String q = Emoji.fixEmoji(emoji); + long documentId = 0; + for (int i = 0; i < set.packs.size(); ++i) { + if (!set.packs.get(i).documents.isEmpty() && TextUtils.equals(Emoji.fixEmoji(set.packs.get(i).emoticon), q)) { + documentId = set.packs.get(i).documents.get(0); + break; + } + } + if (documentId == 0) return null; + for (int i = 0; i < set.documents.size(); ++i) { + TLRPC.Document d = set.documents.get(i); + if (d.id == documentId) { + return d; + } + } + return null; + } + private class SearchAdapter extends RecyclerListView.SelectionAdapter { public final static int VIEW_TYPE_SEARCH = 7; @@ -2472,6 +2559,10 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (imageView.imageReceiver != null) { imageView.imageReceiver.clearImage(); } + } else if (type == TYPE_STICKER_SET_EMOJI && position - (searchRow != -1 ? 1 : 0) - (longtapHintRow != -1 ? 1 : 0) < standardEmojis.size()) { + int pos = position - (searchRow != -1 ? 1 : 0) - (longtapHintRow != -1 ? 1 : 0) - (includeEmpty ? 1 : 0); + TLRPC.Document document = standardEmojis.get(pos); + imageView.setSticker(document, emojiGridView); } else if (position - (searchRow != -1 ? 1 : 0) - (longtapHintRow != -1 ? 1 : 0) < recentSize) { int resentPosition = position - (searchRow != -1 ? 1 : 0) - (longtapHintRow != -1 ? 1 : 0) - (includeEmpty ? 1 : 0); if (type == TYPE_AVATAR_CONSTRUCTOR && showStickers) { @@ -3074,11 +3165,17 @@ public void setDrawable(Drawable drawable) { public void setSticker(TLRPC.Document document, View parent) { this.document = document; createImageReceiver(parent); - SvgHelper.SvgDrawable svgThumb = DocumentObject.getSvgThumb(document, Theme.key_windowBackgroundWhiteGrayIcon, 0.2f); + Drawable thumb = null; +// if (type == TYPE_STICKER_SET_EMOJI) { +// thumb = Emoji.getEmojiDrawable(MessageObject.findAnimatedEmojiEmoticon(document, null)); +// } + if (thumb == null) { + thumb = DocumentObject.getSvgThumb(document, Theme.key_windowBackgroundWhiteGrayIcon, 0.2f); + } if (type == TYPE_CHAT_REACTIONS) { - imageReceiver.setImage(ImageLocation.getForDocument(document), !LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_EMOJI_KEYBOARD) ? "34_34_firstframe" : "34_34", null, null, svgThumb, document.size, null, document, 0); + imageReceiver.setImage(ImageLocation.getForDocument(document), !LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_EMOJI_KEYBOARD) ? "34_34_firstframe" : "34_34", null, null, thumb, document.size, null, document, 0); } else { - imageReceiver.setImage(ImageLocation.getForDocument(document), "100_100_firstframe", null, null, svgThumb, 0, "tgs", document, 0); + imageReceiver.setImage(ImageLocation.getForDocument(document), "100_100_firstframe", null, null, thumb, 0, "tgs", document, 0); } isStaticIcon = true; span = null; @@ -3173,7 +3270,7 @@ public void preload(int type, int account) { return; } MediaDataController.getInstance(account).checkStickers(MediaDataController.TYPE_EMOJIPACKS); - if (type == TYPE_REACTIONS || type == TYPE_TAGS || type == TYPE_SET_DEFAULT_REACTION || type == TYPE_CHAT_REACTIONS) { + if (type == TYPE_REACTIONS || type == TYPE_TAGS || type == TYPE_SET_DEFAULT_REACTION || type == TYPE_CHAT_REACTIONS || type == TYPE_STICKER_SET_EMOJI) { MediaDataController.getInstance(account).checkReactions(); } else if (type == TYPE_EMOJI_STATUS_CHANNEL || type == TYPE_EMOJI_STATUS_CHANNEL_TOP) { if (MessagesController.getInstance(account).getMainSettings().getBoolean("resetemojipacks", true)) { @@ -3252,6 +3349,7 @@ private void updateRows(boolean updateEmojipacks, boolean animated, boolean diff positionToButton.clear(); stickerSets.clear(); recentStickers.clear(); + standardEmojis.clear(); if ((!installedEmojipacks.isEmpty() || type == TYPE_AVATAR_CONSTRUCTOR) && type != TYPE_SET_REPLY_ICON && type != TYPE_SET_REPLY_ICON_BOTTOM && type != TYPE_CHAT_REACTIONS && type != TYPE_EXPANDABLE_REACTIONS) { searchRow = totalCount++; @@ -3344,7 +3442,7 @@ private void updateRows(boolean updateEmojipacks, boolean animated, boolean diff } - if (includeHint && type != TYPE_SET_DEFAULT_REACTION && type != TYPE_TAGS && type != TYPE_TOPIC_ICON && type != TYPE_CHAT_REACTIONS && type != TYPE_EXPANDABLE_REACTIONS && type != TYPE_AVATAR_CONSTRUCTOR && type != TYPE_SET_REPLY_ICON && type != TYPE_SET_REPLY_ICON_BOTTOM) { + if (includeHint && type != TYPE_STICKER_SET_EMOJI && type != TYPE_SET_DEFAULT_REACTION && type != TYPE_TAGS && type != TYPE_TOPIC_ICON && type != TYPE_CHAT_REACTIONS && type != TYPE_EXPANDABLE_REACTIONS && type != TYPE_AVATAR_CONSTRUCTOR && type != TYPE_SET_REPLY_ICON && type != TYPE_SET_REPLY_ICON_BOTTOM) { longtapHintRow = totalCount++; rowHashCodes.add(6L); } @@ -3360,7 +3458,10 @@ private void updateRows(boolean updateEmojipacks, boolean animated, boolean diff if (recentReactionsToSet != null) { topReactionsStartRow = totalCount; ArrayList tmp = new ArrayList<>(recentReactionsToSet); - if (type == TYPE_EXPANDABLE_REACTIONS || type == TYPE_TAGS) { + if (type == TYPE_STICKER_SET_EMOJI && tmp.size() > 8) { + tmp.removeAll(tmp.subList(8, tmp.size())); + } + if (type == TYPE_EXPANDABLE_REACTIONS || type == TYPE_TAGS || type == TYPE_STICKER_SET_EMOJI) { topReactions.addAll(tmp); } else { for (int i = 0; i < 16; i++) { @@ -3375,7 +3476,7 @@ private void updateRows(boolean updateEmojipacks, boolean animated, boolean diff totalCount += topReactions.size(); topReactionsEndRow = totalCount; - if (!tmp.isEmpty() && type != TYPE_EXPANDABLE_REACTIONS && type != TYPE_TAGS) { + if (!tmp.isEmpty() && type != TYPE_EXPANDABLE_REACTIONS && type != TYPE_TAGS && type != TYPE_STICKER_SET_EMOJI) { boolean allRecentReactionsIsDefault = true; for (int i = 0; i < tmp.size(); i++) { if (tmp.get(i).documentId != 0) { @@ -3490,7 +3591,26 @@ private void updateRows(boolean updateEmojipacks, boolean animated, boolean diff } } } - if (installedEmojipacks != null && type != TYPE_EXPANDABLE_REACTIONS) { + if (type == TYPE_STICKER_SET_EMOJI) { +// TLRPC.TL_inputStickerSetShortName inputStickerSetShortName = new TLRPC.TL_inputStickerSetShortName(); +// inputStickerSetShortName.short_name = "RestrictedEmoji"; +// TLRPC.TL_messages_stickerSet restrictedSet = mediaDataController.getStickerSet(inputStickerSetShortName, 0, false); + + TLRPC.TL_inputStickerSetShortName inputStickerSetShortName2 = new TLRPC.TL_inputStickerSetShortName(); + inputStickerSetShortName2.short_name = "StaticEmoji"; + TLRPC.TL_messages_stickerSet staticSet = mediaDataController.getStickerSet(inputStickerSetShortName2, 0, false); + + TLRPC.TL_messages_stickerSet baseSet = staticSet; // staticSet != null ? staticSet : restrictedSet; + + if (baseSet != null) { + for (TLRPC.Document d : baseSet.documents) { + standardEmojis.add(d); + rowHashCodes.add(43223 + 13L * d.id); + totalCount++; + } + } + } + if (installedEmojipacks != null && type != TYPE_EXPANDABLE_REACTIONS && type != TYPE_STICKER_SET_EMOJI) { for (int i = 0, j = 0; i < installedEmojipacks.size(); ++i) { TLRPC.TL_messages_stickerSet set = installedEmojipacks.get(i); if (set == null || set.set == null) { @@ -3525,7 +3645,7 @@ private void updateRows(boolean updateEmojipacks, boolean animated, boolean diff } } } - if (featuredEmojiPacks != null && !showStickers && type != TYPE_EXPANDABLE_REACTIONS) { + if (featuredEmojiPacks != null && !showStickers && type != TYPE_EXPANDABLE_REACTIONS && type != TYPE_STICKER_SET_EMOJI) { final int maxlen = SPAN_COUNT_FOR_EMOJI * EXPAND_MAX_LINES; for (int i = 0; i < featuredEmojiPacks.size(); ++i) { TLRPC.StickerSetCovered set1 = featuredEmojiPacks.get(i); @@ -3603,7 +3723,7 @@ private void updateRows(boolean updateEmojipacks, boolean animated, boolean diff } } - if (type != TYPE_EXPANDABLE_REACTIONS) { + if (type != TYPE_EXPANDABLE_REACTIONS && type != TYPE_STICKER_SET_EMOJI) { emojiTabs.updateEmojiPacks(packs); } @@ -3741,6 +3861,10 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto } private int getCacheType() { +// if (type == TYPE_STICKER_SET_EMOJI) { +// return AnimatedEmojiDrawable.CACHE_TYPE_ALERT_STANDARD_EMOJI; +// } + if (type == TYPE_SET_REPLY_ICON || type == TYPE_SET_REPLY_ICON_BOTTOM) { return AnimatedEmojiDrawable.CACHE_TYPE_ALERT_PREVIEW_STATIC; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java index 0cd503aa90..b7ecf1c228 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java @@ -3,6 +3,9 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; +import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.getString; + import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; @@ -35,6 +38,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import org.checkerframework.checker.units.qual.A; import org.json.JSONException; import org.json.JSONObject; import org.telegram.messenger.AndroidUtilities; @@ -47,9 +51,11 @@ import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; import org.telegram.messenger.UserConfig; +import org.telegram.messenger.Utilities; import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; +import org.telegram.tgnet.tl.TL_stats; import org.telegram.ui.ActionBar.ActionBar; import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.BackDrawable; @@ -66,6 +72,7 @@ import org.telegram.ui.Charts.BarChartView; import org.telegram.ui.Charts.BaseChartView; import org.telegram.ui.Charts.DoubleLinearChartView; +import org.telegram.ui.Charts.LinearBarChartView; import org.telegram.ui.Charts.LinearChartView; import org.telegram.ui.Charts.PieChartView; import org.telegram.ui.Charts.StackBarChartView; @@ -78,6 +85,7 @@ import org.telegram.ui.Charts.view_data.LineViewData; import org.telegram.ui.Charts.view_data.TransitionParams; import org.telegram.ui.Components.BottomPagerTabs; +import org.telegram.ui.Components.Bulletin; import org.telegram.ui.Components.BulletinFactory; import org.telegram.ui.Components.ChatAvatarContainer; import org.telegram.ui.Components.CombinedDrawable; @@ -87,9 +95,11 @@ import org.telegram.ui.Components.RLottieImageView; import org.telegram.ui.Components.RadialProgressView; import org.telegram.ui.Components.RecyclerListView; +import org.telegram.ui.Components.SizeNotifierFrameLayout; import org.telegram.ui.Components.ViewPagerFixed; import org.telegram.ui.Stories.StoriesController; import org.telegram.ui.Stories.StoriesListPlaceProvider; +import org.telegram.ui.Stories.recorder.KeyboardNotifier; import java.util.ArrayList; import java.util.Arrays; @@ -170,6 +180,7 @@ public static BaseFragment create(TLRPC.Chat chat, boolean startFromBoosts) { private AlertDialog[] progressDialog = new AlertDialog[1]; private ViewPagerFixed viewPagerFixed; private ChannelBoostLayout boostLayout; + private ChannelMonetizationLayout monetizationLayout; private boolean onlyBoostsStat; public StatisticActivity(Bundle args) { @@ -235,32 +246,32 @@ private void loadStatistic() { } TLObject req; if (isMegagroup) { - TLRPC.TL_stats_getMegagroupStats getMegagroupStats = new TLRPC.TL_stats_getMegagroupStats(); + TL_stats.TL_getMegagroupStats getMegagroupStats = new TL_stats.TL_getMegagroupStats(); req = getMegagroupStats; getMegagroupStats.channel = MessagesController.getInstance(currentAccount).getInputChannel(chatId); } else { - TLRPC.TL_stats_getBroadcastStats getBroadcastStats = new TLRPC.TL_stats_getBroadcastStats(); + TL_stats.TL_getBroadcastStats getBroadcastStats = new TL_stats.TL_getBroadcastStats(); req = getBroadcastStats; getBroadcastStats.channel = MessagesController.getInstance(currentAccount).getInputChannel(chatId); } int reqId = getConnectionsManager().sendRequest(req, (response, error) -> { - if (response instanceof TLRPC.TL_stats_broadcastStats) { + if (response instanceof TL_stats.TL_broadcastStats) { final ChartViewData[] chartsViewData = new ChartViewData[12]; - TLRPC.TL_stats_broadcastStats stats = (TLRPC.TL_stats_broadcastStats) response; - - chartsViewData[0] = createViewData(stats.iv_interactions_graph, LocaleController.getString("IVInteractionsChartTitle", R.string.IVInteractionsChartTitle), 1); - chartsViewData[1] = createViewData(stats.followers_graph, LocaleController.getString("FollowersChartTitle", R.string.FollowersChartTitle), 0); - chartsViewData[2] = createViewData(stats.top_hours_graph, LocaleController.getString("TopHoursChartTitle", R.string.TopHoursChartTitle), 0); - chartsViewData[3] = createViewData(stats.interactions_graph, LocaleController.getString("ViewsAndSharesChartTitle", R.string.ViewsAndSharesChartTitle), 1); - chartsViewData[4] = createViewData(stats.growth_graph, LocaleController.getString("GrowthChartTitle", R.string.GrowthChartTitle), 0); - chartsViewData[5] = createViewData(stats.views_by_source_graph, LocaleController.getString("ViewsBySourceChartTitle", R.string.ViewsBySourceChartTitle), 2); - chartsViewData[6] = createViewData(stats.new_followers_by_source_graph, LocaleController.getString("NewFollowersBySourceChartTitle", R.string.NewFollowersBySourceChartTitle), 2); - chartsViewData[7] = createViewData(stats.languages_graph, LocaleController.getString("LanguagesChartTitle", R.string.LanguagesChartTitle), 4, true); - chartsViewData[8] = createViewData(stats.mute_graph, LocaleController.getString("NotificationsChartTitle", R.string.NotificationsChartTitle), 0); - chartsViewData[9] = createViewData(stats.reactions_by_emotion_graph, LocaleController.getString("ReactionsByEmotionChartTitle", R.string.ReactionsByEmotionChartTitle), 2); - chartsViewData[10] = createViewData(stats.story_interactions_graph, LocaleController.getString("StoryInteractionsChartTitle", R.string.StoryInteractionsChartTitle), 1); - chartsViewData[11] = createViewData(stats.story_reactions_by_emotion_graph, LocaleController.getString("StoryReactionsByEmotionChartTitle", R.string.StoryReactionsByEmotionChartTitle), 2); + TL_stats.TL_broadcastStats stats = (TL_stats.TL_broadcastStats) response; + + chartsViewData[0] = createViewData(stats.iv_interactions_graph, getString("IVInteractionsChartTitle", R.string.IVInteractionsChartTitle), 1); + chartsViewData[1] = createViewData(stats.followers_graph, getString("FollowersChartTitle", R.string.FollowersChartTitle), 0); + chartsViewData[2] = createViewData(stats.top_hours_graph, getString("TopHoursChartTitle", R.string.TopHoursChartTitle), 0); + chartsViewData[3] = createViewData(stats.interactions_graph, getString("ViewsAndSharesChartTitle", R.string.ViewsAndSharesChartTitle), 1); + chartsViewData[4] = createViewData(stats.growth_graph, getString("GrowthChartTitle", R.string.GrowthChartTitle), 0); + chartsViewData[5] = createViewData(stats.views_by_source_graph, getString("ViewsBySourceChartTitle", R.string.ViewsBySourceChartTitle), 2); + chartsViewData[6] = createViewData(stats.new_followers_by_source_graph, getString("NewFollowersBySourceChartTitle", R.string.NewFollowersBySourceChartTitle), 2); + chartsViewData[7] = createViewData(stats.languages_graph, getString("LanguagesChartTitle", R.string.LanguagesChartTitle), 4, true); + chartsViewData[8] = createViewData(stats.mute_graph, getString("NotificationsChartTitle", R.string.NotificationsChartTitle), 0); + chartsViewData[9] = createViewData(stats.reactions_by_emotion_graph, getString("ReactionsByEmotionChartTitle", R.string.ReactionsByEmotionChartTitle), 2); + chartsViewData[10] = createViewData(stats.story_interactions_graph, getString("StoryInteractionsChartTitle", R.string.StoryInteractionsChartTitle), 1); + chartsViewData[11] = createViewData(stats.story_reactions_by_emotion_graph, getString("StoryReactionsByEmotionChartTitle", R.string.StoryReactionsByEmotionChartTitle), 2); if (chartsViewData[2] != null) { chartsViewData[2].useHourFormat = true; @@ -275,16 +286,16 @@ private void loadStatistic() { int msgPos = 0; int storiesPos = 0; List storiesIds = new ArrayList<>(); - for (TLRPC.PostInteractionCounters interactionCounters : stats.recent_posts_interactions) { + for (TL_stats.PostInteractionCounters interactionCounters : stats.recent_posts_interactions) { RecentPostInfo recentPostInfo = new RecentPostInfo(); recentPostInfo.counters = interactionCounters; - if (interactionCounters instanceof TLRPC.TL_postInteractionCountersMessage) { + if (interactionCounters instanceof TL_stats.TL_postInteractionCountersMessage) { recentPostsAll.add(recentPostInfo); recentPostIdtoIndexMap.put(recentPostInfo.getId(), msgPos); msgPos++; } - if (interactionCounters instanceof TLRPC.TL_postInteractionCountersStory) { + if (interactionCounters instanceof TL_stats.TL_postInteractionCountersStory) { storiesIds.add(recentPostInfo.getId()); recentStoriesAll.add(recentPostInfo); recentStoriesIdtoIndexMap.put(recentPostInfo.getId(), storiesPos); @@ -326,18 +337,18 @@ private void loadStatistic() { } - if (response instanceof TLRPC.TL_stats_megagroupStats) { + if (response instanceof TL_stats.TL_megagroupStats) { final ChartViewData[] chartsViewData = new ChartViewData[8]; - TLRPC.TL_stats_megagroupStats stats = (TLRPC.TL_stats_megagroupStats) response; + TL_stats.TL_megagroupStats stats = (TL_stats.TL_megagroupStats) response; - chartsViewData[0] = createViewData(stats.growth_graph, LocaleController.getString("GrowthChartTitle", R.string.GrowthChartTitle), 0); - chartsViewData[1] = createViewData(stats.members_graph, LocaleController.getString("GroupMembersChartTitle", R.string.GroupMembersChartTitle), 0); - chartsViewData[2] = createViewData(stats.new_members_by_source_graph, LocaleController.getString("NewMembersBySourceChartTitle", R.string.NewMembersBySourceChartTitle), 2); - chartsViewData[3] = createViewData(stats.languages_graph, LocaleController.getString("MembersLanguageChartTitle", R.string.MembersLanguageChartTitle), 4, true); - chartsViewData[4] = createViewData(stats.messages_graph, LocaleController.getString("MessagesChartTitle", R.string.MessagesChartTitle), 2); - chartsViewData[5] = createViewData(stats.actions_graph, LocaleController.getString("ActionsChartTitle", R.string.ActionsChartTitle), 1); - chartsViewData[6] = createViewData(stats.top_hours_graph, LocaleController.getString("TopHoursChartTitle", R.string.TopHoursChartTitle), 0); - chartsViewData[7] = createViewData(stats.weekdays_graph, LocaleController.getString("TopDaysOfWeekChartTitle", R.string.TopDaysOfWeekChartTitle), 4); + chartsViewData[0] = createViewData(stats.growth_graph, getString("GrowthChartTitle", R.string.GrowthChartTitle), 0); + chartsViewData[1] = createViewData(stats.members_graph, getString("GroupMembersChartTitle", R.string.GroupMembersChartTitle), 0); + chartsViewData[2] = createViewData(stats.new_members_by_source_graph, getString("NewMembersBySourceChartTitle", R.string.NewMembersBySourceChartTitle), 2); + chartsViewData[3] = createViewData(stats.languages_graph, getString("MembersLanguageChartTitle", R.string.MembersLanguageChartTitle), 4, true); + chartsViewData[4] = createViewData(stats.messages_graph, getString("MessagesChartTitle", R.string.MessagesChartTitle), 2); + chartsViewData[5] = createViewData(stats.actions_graph, getString("ActionsChartTitle", R.string.ActionsChartTitle), 1); + chartsViewData[6] = createViewData(stats.top_hours_graph, getString("TopHoursChartTitle", R.string.TopHoursChartTitle), 0); + chartsViewData[7] = createViewData(stats.weekdays_graph, getString("TopDaysOfWeekChartTitle", R.string.TopDaysOfWeekChartTitle), 4); if (chartsViewData[6] != null) { chartsViewData[6].useHourFormat = true; @@ -415,12 +426,27 @@ public void onAnimationEnd(Animator animation) { for (ChartViewData data : chartsViewData) { if (data != null && data.chartData == null && data.token != null) { - data.load(currentAccount, classGuid, chat.stats_dc, recyclerListView, adapter, diffUtilsCallback); + data.load(currentAccount, classGuid, chat.stats_dc, getFindChartCell(data)); } } } } + private Utilities.Callback0Return getFindChartCell(ChartViewData data) { + return () -> { + int n = recyclerListView.getChildCount(); + for (int i = 0; i < n; i++) { + View child = recyclerListView.getChildAt(i); + if (child instanceof ChartCell && ((ChartCell) child).data == data) { + return (ChartCell) child; + } + } + recyclerListView.setItemAnimator(null); + diffUtilsCallback.update(); + return null; + }; + } + @Override public void onFragmentDestroy() { getNotificationCenter().removeObserver(this, NotificationCenter.boostByChannelCreated); @@ -545,20 +571,19 @@ public void didReceivedNotification(int id, int account, Object... args) { public View createView(Context context) { sharedUi = new BaseChartView.SharedUiComponents(); TLRPC.Chat currentChat = MessagesController.getInstance(currentAccount).getChat(chatId); + TLRPC.ChatFull chatFull = MessagesController.getInstance(currentAccount).getChatFull(chatId); boolean isBoostSupported = ChatObject.isBoostSupported(currentChat); + final boolean hasMonetization = ChatObject.isChannelAndNotMegaGroup(currentChat) && chatFull != null && chatFull.can_view_revenue; BottomPagerTabs storiesTabsView = new BottomPagerTabs(context, getResourceProvider()) { @Override public Tab[] createTabs() { - Tab[] tabs = new Tab[]{ - new Tab(0, R.raw.stats, LocaleController.getString("Statistics", R.string.Statistics)), - new Tab(1, R.raw.boosts, LocaleController.getString("Boosts", R.string.Boosts)) - }; - tabs[0].customFrameInvert = true; - tabs[0].customEndFrameMid = 25; - tabs[0].customEndFrameEnd = 49; - tabs[1].customEndFrameMid = 25; - tabs[1].customEndFrameEnd = 49; - return tabs; + ArrayList tabs = new ArrayList<>(); + tabs.add(new Tab(0, R.raw.stats, 25, 49, getString(R.string.Statistics)).customFrameInvert()); + tabs.add(new Tab(1, R.raw.boosts, 25, 49, getString(R.string.Boosts))); + if (hasMonetization) { + tabs.add(new Tab(2, R.raw.monetize, 19, 45, getString(R.string.Monetization))); + } + return tabs.toArray(new Tab[0]); } }; @@ -568,12 +593,8 @@ protected void onTabAnimationUpdate(boolean manual) { if (manual) { return; } - float progress = currentProgress; - if (currentPosition == 0) { - progress = 1f - progress; - } storiesTabsView.setScrolling(true); - storiesTabsView.setProgress(progress); + storiesTabsView.setProgress(viewPagerFixed.getPositionAnimated()); } }; @@ -587,6 +608,9 @@ protected void onTabAnimationUpdate(boolean manual) { if (isBoostSupported) { boostLayout = new ChannelBoostLayout(StatisticActivity.this, -chatId, getResourceProvider()); } + if (hasMonetization) { + monetizationLayout = new ChannelMonetizationLayout(getContext(), StatisticActivity.this, currentAccount, -chatId, getResourceProvider()); + } boolean showTabs = isBoostSupported && !onlyBoostsStat; if (showTabs && startFromBoosts) { viewPagerFixed.setPosition(1); @@ -594,21 +618,32 @@ protected void onTabAnimationUpdate(boolean manual) { viewPagerFixed.setAdapter(new ViewPagerFixed.Adapter() { @Override public int getItemCount() { - if (onlyBoostsStat) { - return 1; - } - if (isBoostSupported) { - return 2; + int count = onlyBoostsStat ? 1 : 1 + (isBoostSupported ? 1 : 0); + if (hasMonetization) { + count++; } - return 1; + return count; } @Override public View createView(int viewType) { - if (onlyBoostsStat) { - return boostLayout; + if (viewType == 0) { + return statisticLayout; } - return viewType == 0 ? statisticLayout : boostLayout; + viewType--; + if (viewType == 0) { + if (!onlyBoostsStat && isBoostSupported) { + return boostLayout; + } else { + return monetizationLayout; + } + } else { + viewType--; + } + if (viewType == 0) { + return monetizationLayout; + } + return statisticLayout; } @Override @@ -623,11 +658,22 @@ public void bindView(View view, int position, int viewType) { }); - FrameLayout contentLayout = new FrameLayout(getContext()); + FrameLayout contentLayout = new SizeNotifierFrameLayout(getContext()); contentLayout.addView(viewPagerFixed, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, 0, 0, 0, 0, showTabs ? 64 : 0)); if (showTabs) { contentLayout.addView(storiesTabsView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM | Gravity.FILL_HORIZONTAL)); + Bulletin.addDelegate(this, new Bulletin.Delegate() { + @Override + public int getBottomOffset(int tag) { + return dp(64); + } + }); } + new KeyboardNotifier(contentLayout, keyboardHeight -> { + if (storiesTabsView != null) { + storiesTabsView.setVisibility(keyboardHeight > dp(20) ? View.GONE : View.VISIBLE); + } + }); fragmentView = contentLayout; recyclerListView = new RecyclerListView(context) { int lastH; @@ -652,17 +698,17 @@ protected void onMeasure(int widthSpec, int heightSpec) { TextView loadingTitle = new TextView(context); loadingTitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); - loadingTitle.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + loadingTitle.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); loadingTitle.setTextColor(Theme.getColor(Theme.key_player_actionBarTitle)); loadingTitle.setTag(Theme.key_player_actionBarTitle); - loadingTitle.setText(LocaleController.getString("LoadingStats", R.string.LoadingStats)); + loadingTitle.setText(getString("LoadingStats", R.string.LoadingStats)); loadingTitle.setGravity(Gravity.CENTER_HORIZONTAL); TextView loadingSubtitle = new TextView(context); loadingSubtitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); loadingSubtitle.setTextColor(Theme.getColor(Theme.key_player_actionBarSubtitle)); loadingSubtitle.setTag(Theme.key_player_actionBarSubtitle); - loadingSubtitle.setText(LocaleController.getString("LoadingStatsDescription", R.string.LoadingStatsDescription)); + loadingSubtitle.setText(getString("LoadingStatsDescription", R.string.LoadingStatsDescription)); loadingSubtitle.setGravity(Gravity.CENTER_HORIZONTAL); progressLayout.addView(imageView, LayoutHelper.createLinear(120, 120, Gravity.CENTER_HORIZONTAL, 0, 0, 0, 20)); @@ -737,11 +783,11 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { final ArrayList actions = new ArrayList<>(); final ArrayList icons = new ArrayList<>(); - items.add(LocaleController.getString("ViewMessageStatistic", R.string.ViewMessageStatistic)); + items.add(getString("ViewMessageStatistic", R.string.ViewMessageStatistic)); actions.add(0); icons.add(R.drawable.msg_stats); - items.add(LocaleController.getString("ViewMessage", R.string.ViewMessage)); + items.add(getString("ViewMessage", R.string.ViewMessage)); actions.add(1); icons.add(R.drawable.msg_msgbubble3); @@ -785,7 +831,7 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { avatarContainer.setOccupyStatusBar(!AndroidUtilities.isTablet()); avatarContainer.getAvatarImageView().setScaleX(0.9f); avatarContainer.getAvatarImageView().setScaleY(0.9f); - avatarContainer.setRightAvatarPadding(-AndroidUtilities.dp(3)); + avatarContainer.setRightAvatarPadding(-dp(3)); actionBar.addView(avatarContainer, 0, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT, !inPreviewMode ? 50 : 0, 0, 40, 0)); TLRPC.Chat chatLocal = getMessagesController().getChat(chatId); @@ -826,17 +872,20 @@ public void onItemClick(final int id) { return fragmentView; } - public static ChartViewData createViewData(TLRPC.StatsGraph graph, String title, int graphType, boolean isLanguages) { - if (graph == null || graph instanceof TLRPC.TL_statsGraphError) { + public static ChartViewData createViewData(TL_stats.StatsGraph graph, String title, int graphType, boolean isLanguages) { + if (graph == null || graph instanceof TL_stats.TL_statsGraphError) { return null; } ChartViewData viewData = new ChartViewData(title, graphType); viewData.isLanguages = isLanguages; - if (graph instanceof TLRPC.TL_statsGraph) { - String json = ((TLRPC.TL_statsGraph) graph).json.data; + if (graph instanceof TL_stats.TL_statsGraph) { + String json = ((TL_stats.TL_statsGraph) graph).json.data; try { viewData.chartData = createChartData(new JSONObject(json), graphType, isLanguages); - viewData.zoomToken = ((TLRPC.TL_statsGraph) graph).zoom_token; + if (viewData.chartData != null) { + viewData.chartData.yRate = graph.rate; + } + viewData.zoomToken = ((TL_stats.TL_statsGraph) graph).zoom_token; if (viewData.chartData == null || viewData.chartData.x == null || viewData.chartData.x.length < 2) { viewData.isEmpty = true; } @@ -849,14 +898,14 @@ public static ChartViewData createViewData(TLRPC.StatsGraph graph, String title, e.printStackTrace(); return null; } - } else if (graph instanceof TLRPC.TL_statsGraphAsync) { - viewData.token = ((TLRPC.TL_statsGraphAsync) graph).token; + } else if (graph instanceof TL_stats.TL_statsGraphAsync) { + viewData.token = ((TL_stats.TL_statsGraphAsync) graph).token; } return viewData; } - private static ChartViewData createViewData(TLRPC.StatsGraph graph, String title, int graphType) { + public static ChartViewData createViewData(TL_stats.StatsGraph graph, String title, int graphType) { return createViewData(graph, title, graphType, false); } @@ -873,6 +922,13 @@ public static ChartData createChartData(JSONObject jsonObject, int graphType, bo return null; } + public static final int VIEW_TYPE_LINEAR = 0; + public static final int VIEW_TYPE_DOUBLE_LINEAR = 1; + public static final int VIEW_TYPE_STACKBAR = 2; + public static final int VIEW_TYPE_BAR = 3; + public static final int VIEW_TYPE_STACKLINEAR = 4; + public static final int VIEW_TYPE_BAR_LINEAR = 5; + class Adapter extends RecyclerListView.SelectionAdapter { int overviewHeaderCell = -1; @@ -924,13 +980,13 @@ class Adapter extends RecyclerListView.SelectionAdapter { @Override public int getItemViewType(int position) { if (position == growCell || position == folowersCell || position == topHourseCell || position == notificationsCell || position == actionsCell || position == groupMembersCell) { - return 0; + return VIEW_TYPE_LINEAR; } else if (position == interactionsCell || position == ivInteractionsCell || position == storyInteractionsCell) { - return 1; + return VIEW_TYPE_DOUBLE_LINEAR; } else if (position == viewsBySourceCell || position == newFollowersBySourceCell || position == newMembersBySourceCell || position == messagesCell || position == reactionsByEmotionCell || position == storyReactionsByEmotionCell) { - return 2; + return VIEW_TYPE_STACKBAR; } else if (position == languagesCell || position == membersLanguageCell || position == topDayOfWeeksCell) { - return 4; + return VIEW_TYPE_STACKLINEAR; } else if (position >= recentPostsStartRow && position <= recentPostsEndRow) { return 9; } else if (position == progressCell) { @@ -1002,7 +1058,7 @@ public long getItemId(int position) { public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View v; if (viewType >= 0 && viewType <= 4) { - v = new ChartCell(parent.getContext(), viewType, sharedUi) { + v = new ChartCell(parent.getContext(), currentAccount, viewType, sharedUi) { @Override protected void onDraw(Canvas canvas) { if (getTranslationY() != 0) { @@ -1027,7 +1083,7 @@ protected void onDraw(Canvas canvas) { v = new LoadingCell(parent.getContext()); v.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); } else if (viewType == 12) { - v = new EmptyCell(parent.getContext(), AndroidUtilities.dp(15)); + v = new EmptyCell(parent.getContext(), dp(15)); } else if (viewType == 13) { ChartHeaderView headerCell = new ChartHeaderView(parent.getContext()) { @Override @@ -1039,7 +1095,7 @@ protected void onDraw(Canvas canvas) { } }; headerCell.setWillNotDraw(false); - headerCell.setPadding(headerCell.getPaddingLeft(), AndroidUtilities.dp(16), headerCell.getRight(), AndroidUtilities.dp(16)); + headerCell.setPadding(headerCell.getPaddingLeft(), dp(16), headerCell.getRight(), dp(16)); v = headerCell; } else if (viewType == 14) { v = new OverviewCell(parent.getContext(), isMegagroup ? 2 : 4); @@ -1124,19 +1180,19 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi ChartHeaderView headerCell = (ChartHeaderView) holder.itemView; headerCell.showDate(true); headerCell.setDates(minDateOverview, maxDateOverview); - headerCell.setPadding(0, AndroidUtilities.dp(16), 0, AndroidUtilities.dp(16)); + headerCell.setPadding(0, dp(16), 0, dp(16)); if (position == overviewHeaderCell) { - headerCell.setTitle(LocaleController.getString("StatisticOverview", R.string.StatisticOverview)); + headerCell.setTitle(getString("StatisticOverview", R.string.StatisticOverview)); } else if (position == topAdminsHeaderCell) { - headerCell.setTitle(LocaleController.getString("TopAdmins", R.string.TopAdmins)); + headerCell.setTitle(getString("TopAdmins", R.string.TopAdmins)); } else if (position == topInviterHeaderCell) { - headerCell.setTitle(LocaleController.getString("TopInviters", R.string.TopInviters)); + headerCell.setTitle(getString("TopInviters", R.string.TopInviters)); } else if (position == topMembersHeaderCell) { - headerCell.setTitle(LocaleController.getString("TopMembers", R.string.TopMembers)); + headerCell.setTitle(getString("TopMembers", R.string.TopMembers)); } else { headerCell.showDate(false); - headerCell.setPadding(AndroidUtilities.dp(2), AndroidUtilities.dp(15), AndroidUtilities.dp(2), AndroidUtilities.dp(6)); - headerCell.setTitle(LocaleController.getString("RecentPostsCapitalize", R.string.RecentPostsCapitalize)); + headerCell.setPadding(dp(2), dp(15), dp(2), dp(6)); + headerCell.setTitle(getString("RecentPostsCapitalize", R.string.RecentPostsCapitalize)); } } else if (type == 14) { OverviewCell overviewCell = (OverviewCell) holder.itemView; @@ -1395,10 +1451,63 @@ public boolean isEnabled(RecyclerView.ViewHolder holder) { } } - private class ChartCell extends BaseChartCell { + public static class UniversalChartCell extends BaseChartCell { + + private final int currentAccount; + private final int classGuid; + + public UniversalChartCell( + @NonNull Context context, + int currentAccount, + int type, + BaseChartView.SharedUiComponents sharedUi, + int classGuid + ) { + super(context, type, sharedUi); + this.currentAccount = currentAccount; + this.classGuid = classGuid; + } + + + @Override + public void onZoomed() { + + } + + @Override + public void zoomCanceled() { + + } + + private int stats_dc; + private Utilities.Callback0Return findCell; + + public void set(int stats_dc, ChartViewData viewData, Utilities.Callback0Return findCell) { + this.stats_dc = stats_dc; + this.findCell = findCell; +// loadData(viewData); + updateData(viewData, false); + } + + @Override + public void loadData(ChartViewData data) { + if (data == null || stats_dc < 0) return; + data.load(currentAccount, classGuid, stats_dc, findCell); + } + } + + public class ChartCell extends BaseChartCell { + + private final int currentAccount; - public ChartCell(@NonNull Context context, int type, BaseChartView.SharedUiComponents sharedUi) { + public ChartCell( + @NonNull Context context, + int currentAccount, + int type, + BaseChartView.SharedUiComponents sharedUi + ) { super(context, type, sharedUi); + this.currentAccount = currentAccount; } @Override @@ -1435,29 +1544,29 @@ public void onZoomed() { return; } - TLRPC.TL_stats_loadAsyncGraph request = new TLRPC.TL_stats_loadAsyncGraph(); + TL_stats.TL_loadAsyncGraph request = new TL_stats.TL_loadAsyncGraph(); request.token = data.zoomToken; if (x != 0) { request.x = x; request.flags |= 1; } - ZoomCancelable finalCancelabel; - lastCancelable = finalCancelabel = new ZoomCancelable(); - finalCancelabel.adapterPosition = recyclerListView.getChildAdapterPosition(ChartCell.this); + ZoomCancelable finalCancelable; + lastCancelable = finalCancelable = new ZoomCancelable(); + finalCancelable.adapterPosition = recyclerListView.getChildAdapterPosition(ChartCell.this); chartView.legendSignatureView.showProgress(true, false); int reqId = ConnectionsManager.getInstance(currentAccount).sendRequest(request, (response, error) -> { ChartData childData = null; - if (response instanceof TLRPC.TL_statsGraph) { - String json = ((TLRPC.TL_statsGraph) response).json.data; + if (response instanceof TL_stats.TL_statsGraph) { + String json = ((TL_stats.TL_statsGraph) response).json.data; try { childData = createChartData(new JSONObject(json), data.graphType, data == languagesData); } catch (JSONException e) { e.printStackTrace(); } - } else if (response instanceof TLRPC.TL_statsGraphError) { - Toast.makeText(getContext(), ((TLRPC.TL_statsGraphError) response).error, Toast.LENGTH_LONG).show(); + } else if (response instanceof TL_stats.TL_statsGraphError) { + Toast.makeText(getContext(), ((TL_stats.TL_statsGraphError) response).error, Toast.LENGTH_LONG).show(); } ChartData finalChildData = childData; @@ -1465,8 +1574,8 @@ public void onZoomed() { if (finalChildData != null) { childDataCache.put(cacheKey, finalChildData); } - if (finalChildData != null && !finalCancelabel.canceled && finalCancelabel.adapterPosition >= 0) { - View view = layoutManager.findViewByPosition(finalCancelabel.adapterPosition); + if (finalChildData != null && !finalCancelable.canceled && finalCancelable.adapterPosition >= 0) { + View view = layoutManager.findViewByPosition(finalCancelable.adapterPosition); if (view instanceof ChartCell) { data.childChartData = finalChildData; ((ChartCell) view).chartView.legendSignatureView.showProgress(false, false); @@ -1481,7 +1590,7 @@ public void onZoomed() { @Override public void loadData(ChartViewData viewData) { - viewData.load(currentAccount, classGuid, chat.stats_dc, recyclerListView, adapter, diffUtilsCallback); + viewData.load(currentAccount, classGuid, chat.stats_dc, getFindChartCell(data)); } } @@ -1514,19 +1623,20 @@ public BaseChartCell(@NonNull Context context, int type, BaseChartView.SharedUiC checkboxContainer = new FrameLayout(context) { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); + final int width = MeasureSpec.getSize(widthMeasureSpec); + super.onMeasure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), heightMeasureSpec); int currentW = 0; int currentH = 0; int n = getChildCount(); int firstH = n > 0 ? getChildAt(0).getMeasuredHeight() : 0; for (int i = 0; i < n; i++) { - if (currentW + getChildAt(i).getMeasuredWidth() > getMeasuredWidth()) { + if (currentW + getChildAt(i).getMeasuredWidth() > width) { currentW = 0; currentH += getChildAt(i).getMeasuredHeight(); } currentW += getChildAt(i).getMeasuredWidth(); } - setMeasuredDimension(getMeasuredWidth(), firstH + currentH + AndroidUtilities.dp(16)); + setMeasuredDimension(getMeasuredWidth(), firstH + currentH + dp(16)); } @Override @@ -1572,6 +1682,12 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto chartView.legendSignatureView.showPercentage = true; zoomedChartView = new PieChartView(getContext()); break; + case 5: + chartView = new LinearBarChartView(getContext()); + zoomedChartView = new LinearBarChartView(getContext()); + zoomedChartView.legendSignatureView.useHour = true; + break; + case 0: default: chartView = new LinearChartView(getContext()); zoomedChartView = new LinearChartView(getContext()); @@ -1613,7 +1729,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto linearLayout.addView(chartHeaderView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 52)); linearLayout.addView(frameLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); - linearLayout.addView(checkboxContainer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.NO_GRAVITY, 16, 0, 16, 0)); + linearLayout.addView(checkboxContainer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.FILL_HORIZONTAL, 16, 0, 16, 0)); if (chartType == 4) { frameLayout.setClipChildren(false); @@ -1629,7 +1745,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto public abstract void zoomCanceled(); - abstract void loadData(ChartViewData viewData); + protected abstract void loadData(ChartViewData viewData); public void zoomChart(boolean skipTransition) { long d = chartView.getSelectedDate(); @@ -1719,7 +1835,7 @@ public void onAnimationEnd(Animator animation) { } private void zoomOut(boolean animated) { - if (data.chartData.x == null) { + if (data == null || data.chartData == null || data.chartData.x == null) { return; } chartHeaderView.zoomOut(chartView, animated); @@ -1807,8 +1923,8 @@ private ValueAnimator createTransitionAnimator(long d, boolean in) { zoomedChartView.transitionParams = params; chartView.transitionParams = params; - int max = 0; - int min = Integer.MAX_VALUE; + long max = 0; + long min = Integer.MAX_VALUE; for (int i = 0; i < data.chartData.lines.size(); i++) { if (data.chartData.lines.get(i).y[dateIndex] > max) max = data.chartData.lines.get(i).y[dateIndex]; @@ -1974,7 +2090,7 @@ class CheckBoxHolder { this.position = position; checkBox = new FlatCheckBox(getContext()); - checkBox.setPadding(AndroidUtilities.dp(16), 0, AndroidUtilities.dp(16), 0); + checkBox.setPadding(dp(16), 0, dp(16), 0); checkboxContainer.addView(checkBox); checkBoxes.add(this); } @@ -2090,20 +2206,20 @@ public ChartViewData(String title, int grahType) { this.graphType = grahType; } - public void load(int accountId, int classGuid, int dc, RecyclerListView recyclerListView, Adapter adapter, DiffUtilsCallback difCallback) { + public void load(int accountId, int classGuid, int dc, Utilities.Callback0Return findMe) { if (!loading) { loading = true; - TLRPC.TL_stats_loadAsyncGraph request = new TLRPC.TL_stats_loadAsyncGraph(); + TL_stats.TL_loadAsyncGraph request = new TL_stats.TL_loadAsyncGraph(); request.token = token; int reqId = ConnectionsManager.getInstance(accountId).sendRequest(request, (response, error) -> { ChartData chartData = null; String zoomToken = null; if (error == null) { - if (response instanceof TLRPC.TL_statsGraph) { - String json = ((TLRPC.TL_statsGraph) response).json.data; + if (response instanceof TL_stats.TL_statsGraph) { + String json = ((TL_stats.TL_statsGraph) response).json.data; try { chartData = createChartData(new JSONObject(json), graphType, isLanguages); - zoomToken = ((TLRPC.TL_statsGraph) response).zoom_token; + zoomToken = ((TL_stats.TL_statsGraph) response).zoom_token; if (graphType == 4 && chartData.x != null && chartData.x.length > 0) { long x = chartData.x[chartData.x.length - 1]; childChartData = new StackLinearChartData(chartData, x); @@ -2113,10 +2229,10 @@ public void load(int accountId, int classGuid, int dc, RecyclerListView recycler e.printStackTrace(); } } - if (response instanceof TLRPC.TL_statsGraphError) { + if (response instanceof TL_stats.TL_statsGraphError) { isEmpty = false; isError = true; - errorMessage = ((TLRPC.TL_statsGraphError) response).error; + errorMessage = ((TL_stats.TL_statsGraphError) response).error; } } @@ -2127,19 +2243,9 @@ public void load(int accountId, int classGuid, int dc, RecyclerListView recycler this.chartData = finalChartData; this.zoomToken = finalZoomToken; - int n = recyclerListView.getChildCount(); - boolean found = false; - for (int i = 0; i < n; i++) { - View child = recyclerListView.getChildAt(i); - if (child instanceof ChartCell && ((ChartCell) child).data == this) { - ((ChartCell) child).updateData(this, true); - found = true; - break; - } - } - if (!found) { - recyclerListView.setItemAnimator(null); - difCallback.update(); + BaseChartCell me = findMe.run(); + if (me != null) { + me.updateData(this, true); } }); }, null, null, 0, dc, ConnectionsManager.ConnectionTypeGeneric, true); @@ -2149,7 +2255,7 @@ public void load(int accountId, int classGuid, int dc, RecyclerListView recycler } public static class RecentPostInfo { - public TLRPC.PostInteractionCounters counters; + public TL_stats.PostInteractionCounters counters; public MessageObject message; public long getDate() { @@ -2160,45 +2266,45 @@ public long getDate() { } public boolean isStory() { - return counters instanceof TLRPC.TL_postInteractionCountersStory; + return counters instanceof TL_stats.TL_postInteractionCountersStory; } public int getViews() { - if (counters instanceof TLRPC.TL_postInteractionCountersMessage) { - return ((TLRPC.TL_postInteractionCountersMessage) counters).views; + if (counters instanceof TL_stats.TL_postInteractionCountersMessage) { + return ((TL_stats.TL_postInteractionCountersMessage) counters).views; } - if (counters instanceof TLRPC.TL_postInteractionCountersStory) { - return ((TLRPC.TL_postInteractionCountersStory) counters).views; + if (counters instanceof TL_stats.TL_postInteractionCountersStory) { + return ((TL_stats.TL_postInteractionCountersStory) counters).views; } return 0; } public int getReactions() { - if (counters instanceof TLRPC.TL_postInteractionCountersMessage) { - return ((TLRPC.TL_postInteractionCountersMessage) counters).reactions; + if (counters instanceof TL_stats.TL_postInteractionCountersMessage) { + return ((TL_stats.TL_postInteractionCountersMessage) counters).reactions; } - if (counters instanceof TLRPC.TL_postInteractionCountersStory) { - return ((TLRPC.TL_postInteractionCountersStory) counters).reactions; + if (counters instanceof TL_stats.TL_postInteractionCountersStory) { + return ((TL_stats.TL_postInteractionCountersStory) counters).reactions; } return 0; } public int getForwards() { - if (counters instanceof TLRPC.TL_postInteractionCountersMessage) { - return ((TLRPC.TL_postInteractionCountersMessage) counters).forwards; + if (counters instanceof TL_stats.TL_postInteractionCountersMessage) { + return ((TL_stats.TL_postInteractionCountersMessage) counters).forwards; } - if (counters instanceof TLRPC.TL_postInteractionCountersStory) { - return ((TLRPC.TL_postInteractionCountersStory) counters).forwards; + if (counters instanceof TL_stats.TL_postInteractionCountersStory) { + return ((TL_stats.TL_postInteractionCountersStory) counters).forwards; } return 0; } public int getId() { - if (counters instanceof TLRPC.TL_postInteractionCountersMessage) { - return ((TLRPC.TL_postInteractionCountersMessage) counters).msg_id; + if (counters instanceof TL_stats.TL_postInteractionCountersMessage) { + return ((TL_stats.TL_postInteractionCountersMessage) counters).msg_id; } - if (counters instanceof TLRPC.TL_postInteractionCountersStory) { - return ((TLRPC.TL_postInteractionCountersStory) counters).story_id; + if (counters instanceof TL_stats.TL_postInteractionCountersStory) { + return ((TL_stats.TL_postInteractionCountersStory) counters).story_id; } return 0; } @@ -2639,7 +2745,7 @@ public Quadruple(A fist, B second, C third, D fourth) { public D fourth; } - private Quadruple prepare(TLRPC.TL_statsAbsValueAndPrev valueAndPrev) { + private Quadruple prepare(TL_stats.TL_statsAbsValueAndPrev valueAndPrev) { int dif = (int) (valueAndPrev.current - valueAndPrev.previous); float difPercent = valueAndPrev.previous == 0 ? 0 : Math.abs(dif / (float) valueAndPrev.previous * 100f); String primary = AndroidUtilities.formatWholeNumber((int) valueAndPrev.current, 0); @@ -2656,30 +2762,30 @@ private Quadruple prepare(TLRPC.TL_statsAbsVal return new Quadruple<>(primary, secondary, up, isSectionVisible); } - public OverviewChannelData(TLRPC.TL_stats_broadcastStats stats) { + public OverviewChannelData(TL_stats.TL_broadcastStats stats) { Quadruple quadrupleData = prepare(stats.reactions_per_post); - reactionsPerPostTitle = LocaleController.getString("ReactionsPerPost", R.string.ReactionsPerPost); + reactionsPerPostTitle = getString("ReactionsPerPost", R.string.ReactionsPerPost); reactionsPerPostPrimary = quadrupleData.fist; reactionsPerPostSecondary = quadrupleData.second; reactionsPerPostUp = quadrupleData.third; reactionsPerPostVisible = quadrupleData.fourth; quadrupleData = prepare(stats.reactions_per_story); - reactionsPerStoryTitle = LocaleController.getString("ReactionsPerStory", R.string.ReactionsPerStory); + reactionsPerStoryTitle = getString("ReactionsPerStory", R.string.ReactionsPerStory); reactionsPerStoryPrimary = quadrupleData.fist; reactionsPerStorySecondary = quadrupleData.second; reactionsPerStoryUp = quadrupleData.third; reactionsPerStoryVisible = quadrupleData.fourth; quadrupleData = prepare(stats.views_per_story); - viewsPerStoryTitle = LocaleController.getString("ViewsPerStory", R.string.ViewsPerStory); + viewsPerStoryTitle = getString("ViewsPerStory", R.string.ViewsPerStory); viewsPerStoryPrimary = quadrupleData.fist; viewsPerStorySecondary = quadrupleData.second; viewsPerStoryUp = quadrupleData.third; viewsPerStoryVisible = quadrupleData.fourth; quadrupleData = prepare(stats.shares_per_story); - sharesPerStoryTitle = LocaleController.getString("SharesPerStory", R.string.SharesPerStory); + sharesPerStoryTitle = getString("SharesPerStory", R.string.SharesPerStory); sharesPerStoryPrimary = quadrupleData.fist; sharesPerStorySecondary = quadrupleData.second; sharesPerStoryUp = quadrupleData.third; @@ -2687,7 +2793,7 @@ public OverviewChannelData(TLRPC.TL_stats_broadcastStats stats) { int dif = (int) (stats.followers.current - stats.followers.previous); float difPercent = stats.followers.previous == 0 ? 0 : Math.abs(dif / (float) stats.followers.previous * 100f); - followersTitle = LocaleController.getString("FollowersChartTitle", R.string.FollowersChartTitle); + followersTitle = getString("FollowersChartTitle", R.string.FollowersChartTitle); followersPrimary = AndroidUtilities.formatWholeNumber((int) stats.followers.current, 0); if (dif == 0 || difPercent == 0) { @@ -2701,7 +2807,7 @@ public OverviewChannelData(TLRPC.TL_stats_broadcastStats stats) { dif = (int) (stats.shares_per_post.current - stats.shares_per_post.previous); difPercent = stats.shares_per_post.previous == 0 ? 0 : Math.abs(dif / (float) stats.shares_per_post.previous * 100f); - sharesTitle = LocaleController.getString("SharesPerPost", R.string.SharesPerPost); + sharesTitle = getString("SharesPerPost", R.string.SharesPerPost); sharesPrimary = AndroidUtilities.formatWholeNumber((int) stats.shares_per_post.current, 0); if (dif == 0 || difPercent == 0) { @@ -2715,7 +2821,7 @@ public OverviewChannelData(TLRPC.TL_stats_broadcastStats stats) { dif = (int) (stats.views_per_post.current - stats.views_per_post.previous); difPercent = stats.views_per_post.previous == 0 ? 0 : Math.abs(dif / (float) stats.views_per_post.previous * 100f); - viewsTitle = LocaleController.getString("ViewsPerPost", R.string.ViewsPerPost); + viewsTitle = getString("ViewsPerPost", R.string.ViewsPerPost); viewsPrimary = AndroidUtilities.formatWholeNumber((int) stats.views_per_post.current, 0); if (dif == 0 || difPercent == 0) { viewsSecondary = ""; @@ -2727,7 +2833,7 @@ public OverviewChannelData(TLRPC.TL_stats_broadcastStats stats) { viewsUp = dif >= 0; difPercent = (float) (stats.enabled_notifications.part / stats.enabled_notifications.total * 100f); - notificationsTitle = LocaleController.getString("EnabledNotifications", R.string.EnabledNotifications); + notificationsTitle = getString("EnabledNotifications", R.string.EnabledNotifications); if (difPercent == (int) difPercent) { notificationsPrimary = String.format(Locale.ENGLISH, "%d%s", (int) difPercent, "%"); } else { @@ -2758,10 +2864,10 @@ public static class OverviewChatData { String postingMembersSecondary; boolean postingMembersUp; - public OverviewChatData(TLRPC.TL_stats_megagroupStats stats) { + public OverviewChatData(TL_stats.TL_megagroupStats stats) { int dif = (int) (stats.members.current - stats.members.previous); float difPercent = stats.members.previous == 0 ? 0 : Math.abs(dif / (float) stats.members.previous * 100f); - membersTitle = LocaleController.getString("MembersOverviewTitle", R.string.MembersOverviewTitle); + membersTitle = getString("MembersOverviewTitle", R.string.MembersOverviewTitle); membersPrimary = AndroidUtilities.formatWholeNumber((int) stats.members.current, 0); if (dif == 0 || difPercent == 0) { @@ -2775,7 +2881,7 @@ public OverviewChatData(TLRPC.TL_stats_megagroupStats stats) { dif = (int) (stats.viewers.current - stats.viewers.previous); difPercent = stats.viewers.previous == 0 ? 0 : Math.abs(dif / (float) stats.viewers.previous * 100f); - viewingMembersTitle = LocaleController.getString("ViewingMembers", R.string.ViewingMembers); + viewingMembersTitle = getString("ViewingMembers", R.string.ViewingMembers); viewingMembersPrimary = AndroidUtilities.formatWholeNumber((int) stats.viewers.current, 0); if (dif == 0 || difPercent == 0) { @@ -2788,7 +2894,7 @@ public OverviewChatData(TLRPC.TL_stats_megagroupStats stats) { dif = (int) (stats.posters.current - stats.posters.previous); difPercent = stats.posters.previous == 0 ? 0 : Math.abs(dif / (float) stats.posters.previous * 100f); - postingMembersTitle = LocaleController.getString("PostingMembers", R.string.PostingMembers); + postingMembersTitle = getString("PostingMembers", R.string.PostingMembers); postingMembersPrimary = AndroidUtilities.formatWholeNumber((int) stats.posters.current, 0); if (dif == 0 || difPercent == 0) { postingMembersSecondary = ""; @@ -2799,7 +2905,7 @@ public OverviewChatData(TLRPC.TL_stats_megagroupStats stats) { dif = (int) (stats.messages.current - stats.messages.previous); difPercent = stats.messages.previous == 0 ? 0 : Math.abs(dif / (float) stats.messages.previous * 100f); - messagesTitle = LocaleController.getString("MessagesOverview", R.string.MessagesOverview); + messagesTitle = getString("MessagesOverview", R.string.MessagesOverview); messagesPrimary = AndroidUtilities.formatWholeNumber((int) stats.messages.current, 0); if (dif == 0 || difPercent == 0) { messagesSecondary = ""; @@ -2826,7 +2932,7 @@ public OverviewCell(Context context, int maxRows) { secondary = new TextView[maxRows * 2]; title = new TextView[maxRows * 2]; setOrientation(VERTICAL); - setPadding(AndroidUtilities.dp(16), 0, AndroidUtilities.dp(16), 0); + setPadding(dp(16), 0, dp(16), 0); for (int i = 0; i < maxRows; i++) { LinearLayout linearLayout = new LinearLayout(context); linearLayout.setOrientation(HORIZONTAL); @@ -2847,7 +2953,7 @@ public OverviewCell(Context context, int maxRows) { title[i * 2 + j].setGravity(Gravity.LEFT); secondary[i * 2 + j].setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); - secondary[i * 2 + j].setPadding(AndroidUtilities.dp(4), 0, 0, 0); + secondary[i * 2 + j].setPadding(dp(4), 0, 0, 0); infoLayout.addView(primary[i * 2 + j]); infoLayout.addView(secondary[i * 2 + j]); @@ -2994,7 +3100,7 @@ public static class MemberData { long user_id; public String description; - public static MemberData from(TLRPC.TL_statsGroupTopPoster poster, ArrayList users) { + public static MemberData from(TL_stats.TL_statsGroupTopPoster poster, ArrayList users) { MemberData data = new MemberData(); data.user_id = poster.user_id; data.user = find(data.user_id, users); @@ -3012,7 +3118,7 @@ public static MemberData from(TLRPC.TL_statsGroupTopPoster poster, ArrayList users) { + public static MemberData from(TL_stats.TL_statsGroupTopAdmin admin, ArrayList users) { MemberData data = new MemberData(); data.user_id = admin.user_id; data.user = find(data.user_id, users); @@ -3036,7 +3142,7 @@ public static MemberData from(TLRPC.TL_statsGroupTopAdmin admin, ArrayList users) { + public static MemberData from(TL_stats.TL_statsGroupTopInviter inviter, ArrayList users) { MemberData data = new MemberData(); data.user_id = inviter.user_id; data.user = find(data.user_id, users); @@ -3095,10 +3201,10 @@ private void onLongClick(TLRPC.ChatFull chat, StatisticActivity fragment, AlertD } } - items.add(LocaleController.getString("StatisticOpenProfile", R.string.StatisticOpenProfile)); + items.add(getString("StatisticOpenProfile", R.string.StatisticOpenProfile)); icons.add(R.drawable.msg_openprofile); actions.add(2); - items.add(LocaleController.getString("StatisticSearchUserHistory", R.string.StatisticSearchUserHistory)); + items.add(getString("StatisticSearchUserHistory", R.string.StatisticSearchUserHistory)); icons.add(R.drawable.msg_msgbubble3); actions.add(1); @@ -3174,7 +3280,7 @@ private void onLongClick(TLRPC.ChatFull chat, StatisticActivity fragment, AlertD } if (canEditAdmin) { isAdmin = channelParticipant.admin_rights == null; - items.add(isAdmin ? LocaleController.getString("SetAsAdmin", R.string.SetAsAdmin) : LocaleController.getString("EditAdminRights", R.string.EditAdminRights)); + items.add(isAdmin ? getString("SetAsAdmin", R.string.SetAsAdmin) : getString("EditAdminRights", R.string.EditAdminRights)); icons.add(isAdmin ? R.drawable.msg_admins : R.drawable.msg_permissions); actions.add(0); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/DarkThemeResourceProvider.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/DarkThemeResourceProvider.java index 2c76eab601..b8d907b07d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/DarkThemeResourceProvider.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/DarkThemeResourceProvider.java @@ -105,6 +105,8 @@ public DarkThemeResourceProvider() { // sparseIntArray.put(Theme.key_windowBackgroundGray, 0xFF1F1F1F); sparseIntArray.put(Theme.key_windowBackgroundGray, Color.BLACK); sparseIntArray.put(Theme.key_windowBackgroundWhiteBlueHeader, 0xFF1A9CFF); + sparseIntArray.put(Theme.key_windowBackgroundWhiteInputFieldActivated, -10177041); + sparseIntArray.put(Theme.key_windowBackgroundWhiteInputField, -10177041); sparseIntArray.put(Theme.key_windowBackgroundWhiteGrayText3, ColorUtils.blendARGB(Color.WHITE, Color.BLACK, 0.3f)); sparseIntArray.put(Theme.key_undo_background, 0xFF212426); sparseIntArray.put(Theme.key_undo_cancelColor, 0xFF8BC8F5); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/DialogStoriesCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/DialogStoriesCell.java index 9727efebb0..45749e3617 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/DialogStoriesCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/DialogStoriesCell.java @@ -1125,14 +1125,12 @@ public StoryCell(Context context) { private void createTextView() { textView = new SimpleTextView(getContext()); - textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + textView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); textView.setGravity(Gravity.CENTER); textView.setTextSize(11); textView.setTextColor(getTextColor()); NotificationCenter.listenEmojiLoading(textView); - // textView.setEllipsize(TextUtils.TruncateAt.END); textView.setMaxLines(1); - //textView.setSingleLine(true); textViewContainer.addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 1, 0, 1, 0)); avatarImage.setRoundRadius(AndroidUtilities.dp(48) / 2); @@ -1173,12 +1171,15 @@ public void setDialogId(long dialogId) { } textView.setRightDrawable(null); if (storiesController.isLastUploadingFailed(dialogId)) { - textView.setText(LocaleController.getString("FailedStory", R.string.FailedStory)); + textView.setTextSize(10); + textView.setText(LocaleController.getString(R.string.FailedStory)); isUploadingState = false; } else if (!Utilities.isNullOrEmpty(storiesController.getUploadingStories(dialogId))) { + textView.setTextSize(10); StoriesUtilities.applyUploadingStr(textView, true, false); isUploadingState = true; } else if (storiesController.getEditingStory(dialogId) != null) { + textView.setTextSize(10); StoriesUtilities.applyUploadingStr(textView, true, false); isUploadingState = true; } else { @@ -1222,8 +1223,10 @@ public void onAnimationEnd(Animator animation) { } AndroidUtilities.runOnUIThread(animationRunnable, 500); isUploadingState = false; - textView.setText(LocaleController.getString("MyStory", R.string.MyStory));//, animated); + textView.setTextSize(10); + textView.setText(LocaleController.getString(R.string.MyStory)); } else if (user != null) { + textView.setTextSize(11); String name = user.first_name == null ? "" : user.first_name.trim(); int index = name.indexOf(" "); if (index > 0) { @@ -1244,6 +1247,7 @@ public void onAnimationEnd(Animator animation) { textView.setRightDrawable(null); }//, false); } else { + textView.setTextSize(11); CharSequence text = chat.title; text = Emoji.replaceEmoji(text, textView.getPaint().getFontMetricsInt(), false); textView.setText(text);//, false); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/PeerStoriesView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/PeerStoriesView.java index fad715812b..06e2188d91 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/PeerStoriesView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/PeerStoriesView.java @@ -936,15 +936,13 @@ public void onReplyClick(Reply reply) { if (lastFragment == null) { return; } - if (lastFragment.getOrCreateOverlayStoryViewer().isShowing) { - return; - } - storyViewer.setOverlayVisible(true); fwdStoryItem.dialogId = reply.peerId; - lastFragment.getOrCreateOverlayStoryViewer().open(getContext(), fwdStoryItem, null); - lastFragment.getOrCreateOverlayStoryViewer().setOnCloseListener(() -> { - storyViewer.setOverlayVisible(false); + StoryViewer overlayStoryViewer = lastFragment.createOverlayStoryViewer(); + overlayStoryViewer.open(getContext(), fwdStoryItem, null); + overlayStoryViewer.setOnCloseListener(() -> { + storyViewer.updatePlayingMode(); }); + storyViewer.updatePlayingMode(); } else { BulletinFactory.of(storyContainer, resourcesProvider) .createSimpleBulletin(R.raw.story_bomb2, LocaleController.getString(R.string.StoryNotFound)) @@ -3108,11 +3106,8 @@ private void openRepostStory() { } } } - if (storyViewer.fragment != null && storyViewer.fragment.overlayStoryViewer != null) { - storyViewer.fragment.overlayStoryViewer.instantClose(); - } - if (storyViewer.fragment != null && storyViewer.fragment.storyViewer != null) { - storyViewer.fragment.storyViewer.instantClose(); + if (storyViewer.fragment != null) { + storyViewer.fragment.clearStoryViewers(); } storyViewer.instantClose(); editOpened = false; @@ -5678,6 +5673,10 @@ public void checkSendView() { storyViewer.unreadStateChanged = true; } } + } else if (isActive && this.storyItem != null && storyViewer.storiesList != null) { + if (storyViewer.storiesList.markAsRead(this.storyItem.id)) { + storyViewer.unreadStateChanged = true; + } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/ProfileStoriesView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/ProfileStoriesView.java index 1f0966d10e..a390884e83 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/ProfileStoriesView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/ProfileStoriesView.java @@ -431,13 +431,9 @@ private void vibrateNewStory() { if (SharedConfig.getDevicePerformanceClass() <= SharedConfig.PERFORMANCE_CLASS_LOW) { return; } - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + AndroidUtilities.vibrateCursor(this); AndroidUtilities.runOnUIThread(() -> { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore2) {} + AndroidUtilities.vibrateCursor(this); }, 180); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsPage.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsPage.java index e5995d34ba..b1ec273058 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsPage.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsPage.java @@ -15,7 +15,6 @@ import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.util.SparseArray; -import android.util.SparseIntArray; import android.util.TypedValue; import android.view.Gravity; import android.view.HapticFeedbackConstants; @@ -243,17 +242,11 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat if (item.view instanceof TL_stories.TL_storyView) { storyViewer.presentFragment(ProfileActivity.of(item.view.user_id)); } else if (item.view instanceof TL_stories.TL_storyViewPublicRepost) { - if (storyViewer.fragment.getOrCreateOverlayStoryViewer().isShowing) { - return; - } - storyViewer.fragment.getOrCreateOverlayStoryViewer().open(getContext(), ((TL_stories.TL_storyViewPublicRepost) item.view).story, StoriesListPlaceProvider.of(recyclerListView)); + storyViewer.fragment.createOverlayStoryViewer().open(getContext(), ((TL_stories.TL_storyViewPublicRepost) item.view).story, StoriesListPlaceProvider.of(recyclerListView)); } else if (item.reaction instanceof TL_stories.TL_storyReaction) { storyViewer.presentFragment(ProfileActivity.of(DialogObject.getPeerDialogId(item.reaction.peer_id))); } else if (item.reaction instanceof TL_stories.TL_storyReactionPublicRepost) { - if (storyViewer.fragment.getOrCreateOverlayStoryViewer().isShowing) { - return; - } - storyViewer.fragment.getOrCreateOverlayStoryViewer().open(getContext(), ((TL_stories.TL_storyReactionPublicRepost) item.reaction).story, StoriesListPlaceProvider.of(recyclerListView)); + storyViewer.fragment.createOverlayStoryViewer().open(getContext(), ((TL_stories.TL_storyReactionPublicRepost) item.reaction).story, StoriesListPlaceProvider.of(recyclerListView)); } else if (item.reaction instanceof TL_stories.TL_storyReactionPublicForward || item.view instanceof TL_stories.TL_storyViewPublicForward) { TLRPC.Message message; if (item.reaction instanceof TL_stories.TL_storyReactionPublicForward) { @@ -794,11 +787,9 @@ public void openStory(long dialogId, Runnable onDone) { if (lastFragment == null) { return; } - if (lastFragment.getOrCreateOverlayStoryViewer().isShowing) { - return; - } - lastFragment.getOrCreateOverlayStoryViewer().doOnAnimationReady(onDone); - lastFragment.getOrCreateOverlayStoryViewer().open(getContext(), dialogId, StoriesListPlaceProvider.of(recyclerListView)); + StoryViewer storyViewer1 = lastFragment.createOverlayStoryViewer(); + storyViewer1.doOnAnimationReady(onDone); + storyViewer1.open(getContext(), dialogId, StoriesListPlaceProvider.of(recyclerListView)); } }; break; @@ -1326,9 +1317,13 @@ private void applyLocalFilter() { if (state.contactsOnly || !TextUtils.isEmpty(state.searchQuery)) { String search1 = null; String search2 = null; + String search3 = null; + String search4 = null; if (!TextUtils.isEmpty(state.searchQuery)) { search1 = state.searchQuery.trim().toLowerCase(); search2 = LocaleController.getInstance().getTranslitString(search1); + search3 = " " + search1; + search4 = " " + search2; } for (int i = 0; i < originalViews.size(); i++) { TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(originalViews.get(i).user_id); @@ -1339,7 +1334,13 @@ private void applyLocalFilter() { if (canAdd && search1 != null) { String name = ContactsController.formatName(user.first_name, user.last_name).toLowerCase(); String username = UserObject.getPublicUsername(user); - if (!(name.contains(search1) || name.contains(search2) || (username != null && (username.contains(search1) || username.contains(search2))))) { + String translitName = AndroidUtilities.translitSafe(name); + boolean hit = ( + name != null && (name.startsWith(search1) || name.contains(search3)) || + translitName != null && (translitName.startsWith(search2) || translitName.contains(search4)) || + username != null && (username.startsWith(search2) || username.contains(search4)) + ); + if (!hit) { canAdd = false; } } @@ -1635,6 +1636,7 @@ public static class FiltersState { boolean sortByReactions = true; // converts to sortByForwards when showing channel reactions boolean contactsOnly; String searchQuery; + String q; public boolean isDefault() { return sortByReactions && !contactsOnly && TextUtils.isEmpty(searchQuery); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StealthModeAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StealthModeAlert.java index 8e1382bd11..5c750bb23c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StealthModeAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StealthModeAlert.java @@ -178,8 +178,8 @@ protected void onDetachedFromWindow() { public static void showStealthModeEnabledBulletin() { BaseFragment fragment = LaunchActivity.getLastFragment(); BulletinFactory factory; - if (fragment.storyViewer != null) { - factory = BulletinFactory.of(fragment.storyViewer.windowView, fragment.storyViewer.getResourceProvider()); + if (fragment.getLastStoryViewer() != null) { + factory = BulletinFactory.of(fragment.getLastStoryViewer().windowView, fragment.getLastStoryViewer().getResourceProvider()); } else { factory = BulletinFactory.global(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesController.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesController.java index 60e48e76f6..9a7ec1caa2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesController.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesController.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.text.TextUtils; +import android.util.Log; import android.util.SparseArray; import android.webkit.MimeTypeMap; @@ -1697,8 +1698,19 @@ public void updateStoriesFromFullPeer(long dialogId, TL_stories.PeerStories stor return; } FileLog.d("StoriesController update stories from full peer " + dialogId); - peerStories.stories.clear(); - peerStories.stories.addAll(stories.stories); +// peerStories.stories.clear(); +// peerStories.stories.addAll(stories.stories); + for (int i = 0; i < peerStories.stories.size(); ++i) { + if (peerStories.stories.get(i) instanceof TL_stories.TL_storyItemSkipped) { + int storyId = peerStories.stories.get(i).id; + for (int j = 0; j < stories.stories.size(); ++j) { + if (stories.stories.get(j).id == storyId && stories.stories.get(j) instanceof TL_stories.TL_storyItem) { + peerStories.stories.set(i, stories.stories.get(j)); + break; + } + } + } + } } public class UploadingStory implements NotificationCenter.NotificationCenterDelegate { @@ -2369,6 +2381,7 @@ public void unlink(int id) { private final SortedSet cachedObjects = new TreeSet<>(Comparator.reverseOrder()); private final SortedSet loadedObjects = new TreeSet<>(Comparator.reverseOrder()); + public final HashSet seenStories = new HashSet<>(); private boolean showPhotos = true; private boolean showVideos = true; @@ -2464,6 +2477,7 @@ private void preloadCache() { final MessagesStorage storage = MessagesStorage.getInstance(currentAccount); storage.getStorageQueue().postRunnable(() -> { SQLiteCursor cursor = null; + HashSet seen = new HashSet<>(); HashSet loadUserIds = new HashSet<>(); HashSet loadChatIds = new HashSet<>(); ArrayList cacheResult = new ArrayList<>(); @@ -2471,7 +2485,7 @@ private void preloadCache() { final ArrayList loadedChats = new ArrayList<>(); try { SQLiteDatabase database = storage.getDatabase(); - cursor = database.queryFinalized(String.format(Locale.US, "SELECT data FROM profile_stories WHERE dialog_id = %d AND type = %d ORDER BY story_id DESC", dialogId, type)); + cursor = database.queryFinalized(String.format(Locale.US, "SELECT data, seen FROM profile_stories WHERE dialog_id = %d AND type = %d ORDER BY story_id DESC", dialogId, type)); while (cursor.next()) { NativeByteBuffer data = cursor.byteBufferValue(0); if (data != null) { @@ -2511,6 +2525,10 @@ private void preloadCache() { msg.generateThumbs(false); cacheResult.add(msg); data.reuse(); + + if (cursor.intValue(1) == 1) { + seen.add(storyItem.id); + } } } cursor.dispose(); @@ -2542,6 +2560,7 @@ private void preloadCache() { return; } + seenStories.addAll(seen); cachedObjects.clear(); for (int i = 0; i < cacheResult.size(); ++i) { pushObject(cacheResult.get(i), true); @@ -2665,7 +2684,7 @@ private void saveCache() { try { SQLiteDatabase database = storage.getDatabase(); database.executeFast(String.format(Locale.US, "DELETE FROM profile_stories WHERE dialog_id = %d AND type = %d", dialogId, type)).stepThis().dispose(); - state = database.executeFast("REPLACE INTO profile_stories VALUES(?, ?, ?, ?)"); + state = database.executeFast("REPLACE INTO profile_stories VALUES(?, ?, ?, ?, ?)"); for (int i = 0; i < toSave.size(); ++i) { MessageObject messageObject = toSave.get(i); @@ -2682,6 +2701,7 @@ private void saveCache() { state.bindInteger(2, storyItem.id); state.bindByteBuffer(3, data); state.bindInteger(4, type); + state.bindInteger(5, seenStories.contains(storyItem.id) ? 1 : 0); state.step(); data.reuse(); } @@ -2700,6 +2720,18 @@ private void saveCache() { }); } + public boolean markAsRead(int storyId) { + if (seenStories.contains(storyId)) return false; + seenStories.add(storyId); + saveCache(); + TL_stories.TL_stories_incrementStoryViews req = new TL_stories.TL_stories_incrementStoryViews(); + req.peer = MessagesController.getInstance(currentAccount).getInputPeer(dialogId); + req.id.add(storyId); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> {}); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.storiesReadUpdated); + return true; + } + private boolean canLoad() { if (lastLoadTime == null) { return true; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesListPlaceProvider.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesListPlaceProvider.java index 427693c0b5..9be11843e2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesListPlaceProvider.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesListPlaceProvider.java @@ -7,6 +7,7 @@ import android.graphics.Path; import android.graphics.Region; import android.view.View; +import android.view.ViewGroup; import org.telegram.messenger.MessageObject; import org.telegram.messenger.MessagesController; @@ -17,6 +18,7 @@ import org.telegram.ui.Cells.ChatMessageCell; import org.telegram.ui.Cells.DialogCell; import org.telegram.ui.Cells.ManageChatUserCell; +import org.telegram.ui.Cells.ProfileChannelCell; import org.telegram.ui.Cells.ProfileSearchCell; import org.telegram.ui.Cells.ReactedUserHolderView; import org.telegram.ui.Cells.SharedPhotoVideoCell2; @@ -28,6 +30,7 @@ public class StoriesListPlaceProvider implements StoryViewer.PlaceProvider { private final RecyclerListView recyclerListView; + private final ProfileChannelCell profileChannelCell; int[] clipPoint = new int[2]; private boolean isHiddenArchive; LoadNextInterface loadNextInterface; @@ -45,6 +48,10 @@ public static StoriesListPlaceProvider of(RecyclerListView recyclerListView, boo return new StoriesListPlaceProvider(recyclerListView, hiddenArchive); } + public static StoriesListPlaceProvider of(ProfileChannelCell profileChannelCell) { + return new StoriesListPlaceProvider(profileChannelCell); + } + public StoriesListPlaceProvider with(LoadNextInterface loadNextInterface) { this.loadNextInterface = loadNextInterface; return this; @@ -53,6 +60,12 @@ public StoriesListPlaceProvider with(LoadNextInterface loadNextInterface) { public StoriesListPlaceProvider(RecyclerListView recyclerListView, boolean hiddenArchive) { this.recyclerListView = recyclerListView; this.isHiddenArchive = hiddenArchive; + this.profileChannelCell = null; + } + + public StoriesListPlaceProvider(ProfileChannelCell profileChannelCell) { + this.profileChannelCell = profileChannelCell; + this.recyclerListView = null; } @Override @@ -78,18 +91,19 @@ public boolean findView(long dialogId, int messageId, int storyId, int type, Sto holder.storyImage = null; holder.drawAbove = null; - if (recyclerListView == null) { - return false; - } - DialogStoriesCell dialogStoriesCell = null; - if (recyclerListView.getParent() instanceof DialogStoriesCell) { + if (recyclerListView != null && recyclerListView.getParent() instanceof DialogStoriesCell) { dialogStoriesCell = (DialogStoriesCell) recyclerListView.getParent(); } - RecyclerListView listView = recyclerListView; + ViewGroup listView = recyclerListView; if (dialogStoriesCell != null && !dialogStoriesCell.isExpanded()) { listView = dialogStoriesCell.listViewMini; } + if (profileChannelCell != null) { + listView = profileChannelCell; + } + if (listView == null) return false; + for (int i = 0; i < listView.getChildCount(); i++) { View child = listView.getChildAt(i); @@ -163,14 +177,14 @@ public boolean findView(long dialogId, int messageId, int storyId, int type, Sto updateClip(holder); return true; } - } else if (child instanceof SharedPhotoVideoCell2) { + } else if (child instanceof SharedPhotoVideoCell2 && recyclerListView != null) { SharedPhotoVideoCell2 cell = (SharedPhotoVideoCell2) child; MessageObject msg = cell.getMessageObject(); if ( cell.getStyle() == SharedPhotoVideoCell2.STYLE_CACHE && cell.storyId == storyId || msg != null && msg.isStory() && msg.getId() == storyId && msg.storyItem.dialogId == dialogId ) { - final RecyclerListView.FastScroll fastScroll = listView.getFastScroll(); + final RecyclerListView.FastScroll fastScroll = recyclerListView.getFastScroll(); final int[] loc = new int[2]; if (fastScroll != null) { fastScroll.getLocationInWindow(loc); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryViewer.java index 1f1987d171..abf0fc4483 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryViewer.java @@ -281,17 +281,18 @@ public void setSpeed(float speed) { currentSpeed = speed; if (playerHolder != null) { playerHolder.setSpeed(speed); - StoryViewer otherStoryViewer = null; - if (fragment != null) { - if (fragment.overlayStoryViewer != this) { - otherStoryViewer = fragment.overlayStoryViewer; - } else if (fragment.storyViewer != this) { - otherStoryViewer = fragment.storyViewer; - } - } - if (otherStoryViewer != null && otherStoryViewer.playerHolder != null) { - otherStoryViewer.playerHolder.setSpeed(speed); - } + // TODO: storyViewerStack +// StoryViewer otherStoryViewer = null; +// if (fragment != null) { +// if (fragment.overlayStoryViewer != this) { +// otherStoryViewer = fragment.overlayStoryViewer; +// } else if (fragment.storyViewer != this) { +// otherStoryViewer = fragment.storyViewer; +// } +// } +// if (otherStoryViewer != null && otherStoryViewer.playerHolder != null) { +// otherStoryViewer.playerHolder.setSpeed(speed); +// } } } @@ -2021,7 +2022,29 @@ public void setOnCloseListener(Runnable listener) { } public boolean isPaused() { - return isPopupVisible || isTranslating || isBulletinVisible || isCaption || isWaiting || isInTouchMode || keyboardVisible || currentDialog != null || allowTouchesByViewpager || isClosed || isRecording || progressToOpen != 1f || selfStoriesViewsOffset != 0 || isHintVisible || (isSwiping && USE_SURFACE_VIEW) || isOverlayVisible || isInTextSelectionMode || isLikesReactions || progressToDismiss != 0 || storiesIntro != null; + return ( + isPopupVisible || + isTranslating || + isBulletinVisible || + isCaption || + isWaiting || + isInTouchMode || + keyboardVisible || + currentDialog != null || + allowTouchesByViewpager || + isClosed || + isRecording || + progressToOpen != 1f || + selfStoriesViewsOffset != 0 || + isHintVisible || + (isSwiping && USE_SURFACE_VIEW) || + isOverlayVisible || + isInTextSelectionMode || + isLikesReactions || + progressToDismiss != 0 || + storiesIntro != null || + ATTACH_TO_FRAGMENT && fragment != null && fragment.getLastStoryViewer() != this + ); } public void updatePlayingMode() { @@ -2372,6 +2395,9 @@ public void release() { MessagesController.getInstance(currentAccount).getStoriesController().stopAllPollers(); if (ATTACH_TO_FRAGMENT) { lockOrientation(false); + if (fragment != null && fragment.storyViewerStack != null) { + fragment.storyViewerStack.remove(this); + } } globalInstances.remove(this); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/ButtonWithCounterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/ButtonWithCounterView.java index 192df6b7cb..b9e47e91e3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/ButtonWithCounterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/ButtonWithCounterView.java @@ -117,6 +117,10 @@ public void setCounterColor(int color) { counterDrawable.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN)); } + public void setTextColor(int color) { + text.setTextColor(color); + } + private boolean countFilled = true; public void setCountFilled(boolean filled) { countFilled = filled; @@ -350,6 +354,7 @@ public void setEnabled(boolean enabled) { }); enabledAnimator.start(); } + super.setEnabled(enabled); } @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/DualCameraView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/DualCameraView.java index 16baca8aea..5945fff33f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/DualCameraView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/DualCameraView.java @@ -321,10 +321,7 @@ private boolean touchEvent(MotionEvent ev) { allowRotation = Math.round(angle / 90f) * 90f - angle > 20f; } if (!snappedRotation) { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) { - } + AndroidUtilities.vibrateCursor(this); snappedRotation = true; } } @@ -340,10 +337,7 @@ private boolean touchEvent(MotionEvent ev) { if (Math.abs(rotDiff) < 5f) { finalMatrix.postRotate(rotDiff, cx, cy); if (!snappedRotation) { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) { - } + AndroidUtilities.vibrateCursor(this); snappedRotation = true; } } else { @@ -585,6 +579,19 @@ public static boolean dualAvailableStatic(Context context) { return MessagesController.getGlobalMainSettings().getBoolean("dual_available", dualAvailableDefault(context, true)); } + public static boolean roundDualAvailableStatic(Context context) { + return MessagesController.getGlobalMainSettings().getBoolean("rounddual_available", roundDualAvailableDefault(context)); + } + + public static boolean roundDualAvailableDefault(Context context) { + return ( + SharedConfig.getDevicePerformanceClass() >= SharedConfig.PERFORMANCE_CLASS_HIGH && + Camera.getNumberOfCameras() > 1 && + SharedConfig.allowPreparingHevcPlayers() && + context != null && context.getPackageManager().hasSystemFeature("android.hardware.camera.concurrent") + ); + } + private Matrix getSavedDualMatrix() { String str = MessagesController.getGlobalMainSettings().getString("dualmatrix", null); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/EmojiBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/EmojiBottomSheet.java index 04293febe7..bef5fd6e35 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/EmojiBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/EmojiBottomSheet.java @@ -29,6 +29,7 @@ import android.text.TextPaint; import android.text.TextUtils; import android.text.TextWatcher; +import android.util.Log; import android.util.SparseArray; import android.util.SparseIntArray; import android.util.TypedValue; @@ -724,7 +725,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setPadding(backgroundPaddingLeft, 0, backgroundPaddingLeft, 0); tabsStrip.setTranslationY(dp(16)); searchField.setTranslationY(dp(16 + 36)); - listView.setPadding(dp(5), dp(16 + 36 + 50), dp(5), AndroidUtilities.navigationBarHeight + dp(40)); + listView.setPadding(dp(5), dp(16 + 36 + 50), dp(5), AndroidUtilities.navigationBarHeight + dp(onlyStickers ? 0 : 40)); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } @@ -733,6 +734,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { @Override public void bind(int type) { this.currentType = type; + listView.emoji = type == PAGE_TYPE_EMOJI; layoutManager.setSpanCount(spanCount = type == PAGE_TYPE_EMOJI ? 8 : 5); if (!resetOnce) { adapter.updateItems(null); @@ -1274,7 +1276,7 @@ public boolean canClickWidget(Integer id) { } public boolean hasWidgets() { - return canShowWidget(WIDGET_LOCATION) || canShowWidget(WIDGET_AUDIO) || canShowWidget(WIDGET_PHOTO) || canShowWidget(WIDGET_REACTION); + return onWidgetSelected != null && (canShowWidget(WIDGET_LOCATION) || canShowWidget(WIDGET_AUDIO) || canShowWidget(WIDGET_PHOTO) || canShowWidget(WIDGET_REACTION)); } @Override @@ -1313,19 +1315,20 @@ protected boolean checkAudioPermission(Runnable granted) { } private final ViewPagerFixed viewPager; - private final TabsView tabsView; + private TabsView tabsView; private float maxPadding = -1; + private final boolean onlyStickers; // private final GestureDetector gestureDetector; private boolean wasKeyboardVisible; public static int savedPosition = 1; - private boolean storyIsVideo; - public EmojiBottomSheet(Context context, boolean storyIsVideo, Theme.ResourcesProvider resourcesProvider) { + public EmojiBottomSheet(Context context, boolean onlyStickers, Theme.ResourcesProvider resourcesProvider) { super(context, true, resourcesProvider); - this.storyIsVideo = storyIsVideo; + this.onlyStickers = onlyStickers; + useSmoothKeyboard = true; fixNavigationBar(Theme.getColor(Theme.key_dialogBackground, resourcesProvider)); @@ -1336,17 +1339,19 @@ public EmojiBottomSheet(Context context, boolean storyIsVideo, Theme.ResourcesPr viewPager = new ViewPagerFixed(context) { @Override protected void onTabAnimationUpdate(boolean manual) { - tabsView.setType(viewPager.getPositionAnimated()); + if (tabsView != null) { + tabsView.setType(viewPager.getPositionAnimated()); + } containerView.invalidate(); invalidate(); savedPosition = viewPager.getCurrentPosition(); } }; - viewPager.currentPosition = savedPosition; + viewPager.currentPosition = onlyStickers ? 0 : savedPosition; viewPager.setAdapter(new ViewPagerFixed.Adapter() { @Override public int getItemCount() { - return 3; + return onlyStickers ? 1 : 3; } @Override public View createView(int viewType) { @@ -1367,7 +1372,7 @@ public int getItemViewType(int position) { @Override public void bindView(View view, int position, int viewType) { - ((IPage) view).bind(position); + ((IPage) view).bind(onlyStickers ? 1 : position); } }); containerView.addView(viewPager, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.BOTTOM | Gravity.FILL_HORIZONTAL)); @@ -1381,22 +1386,26 @@ public void bindView(View view, int position, int viewType) { } }); - tabsView = new TabsView(context); - tabsView.setOnTypeSelected(type -> { - if (!viewPager.isManualScrolling() && viewPager.getCurrentPosition() != type) { - viewPager.scrollToPosition(type); - tabsView.setType(type); - } - }); - tabsView.setType(viewPager.currentPosition); - containerView.addView(tabsView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM | Gravity.FILL_HORIZONTAL)); + if (!onlyStickers) { + tabsView = new TabsView(context); + tabsView.setOnTypeSelected(type -> { + if (!viewPager.isManualScrolling() && viewPager.getCurrentPosition() != type) { + viewPager.scrollToPosition(type); + tabsView.setType(type); + } + }); + tabsView.setType(viewPager.currentPosition); + containerView.addView(tabsView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM | Gravity.FILL_HORIZONTAL)); + } NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.stickersDidLoad); NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.groupStickersDidLoad); FileLog.disableGson(true); - MediaDataController.getInstance(currentAccount).checkStickers(MediaDataController.TYPE_EMOJIPACKS); - MediaDataController.getInstance(currentAccount).checkFeaturedEmoji(); + if (!onlyStickers) { + MediaDataController.getInstance(currentAccount).checkStickers(MediaDataController.TYPE_EMOJIPACKS); + MediaDataController.getInstance(currentAccount).checkFeaturedEmoji(); + } MediaDataController.getInstance(currentAccount).checkStickers(MediaDataController.TYPE_IMAGE); MediaDataController.getInstance(currentAccount).loadRecents(MediaDataController.TYPE_IMAGE, false, true, false); @@ -1465,7 +1474,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto } private void setupBlurBitmap() { - if (blurBitmap != null || drawBlurBitmap == null || SharedConfig.getDevicePerformanceClass() <= SharedConfig.PERFORMANCE_CLASS_LOW || LiteMode.isPowerSaverApplied()) { + if (blurBitmap != null || !(resourcesProvider == null ? Theme.isCurrentThemeDark() : resourcesProvider.isDark()) || drawBlurBitmap == null || SharedConfig.getDevicePerformanceClass() <= SharedConfig.PERFORMANCE_CLASS_LOW || LiteMode.isPowerSaverApplied()) { return; } final int scale = 16; @@ -1510,14 +1519,18 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { maxPadding = newMaxPadding; viewPager.setPadding(0, AndroidUtilities.statusBarHeight, 0, 0); viewPager.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); - tabsView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), 0); + if (tabsView != null) { + tabsView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), 0); + } setMeasuredDimension(width, height); } + private Boolean overStatusBar; + @Override protected void dispatchDraw(Canvas canvas) { backgroundPaint.setColor(Theme.getColor(Theme.key_dialogBackground, resourcesProvider)); - backgroundPaint.setAlpha((int) (0xFF * (blurBitmap == null ? .95f : .85f))); + backgroundPaint.setAlpha((int) (0xFF * (blurBitmap == null ? 1f : .85f))); View[] views = viewPager.getViewPages(); top = 0; for (int i = 0; i < views.length; ++i) { @@ -1541,6 +1554,12 @@ protected void dispatchDraw(Canvas canvas) { blurBitmapShader.setLocalMatrix(blurBitmapMatrix); canvas.drawRoundRect(AndroidUtilities.rectTmp, dp(14), dp(14), backgroundBlurPaint); } + + boolean overStatusBar = AndroidUtilities.rectTmp.top < AndroidUtilities.statusBarHeight; + if (this.overStatusBar == null || this.overStatusBar != overStatusBar) { + this.overStatusBar = overStatusBar; + AndroidUtilities.setLightStatusBar(getWindow(), overStatusBar ? AndroidUtilities.computePerceivedBrightness(backgroundPaint.getColor()) >= .721f : false); + } canvas.drawRoundRect(AndroidUtilities.rectTmp, (1f - statusBar) * dp(14), (1f - statusBar) * dp(14), backgroundPaint); handleRect.set( (getWidth() - dp(36)) / 2f, @@ -1583,6 +1602,14 @@ public EmojiBottomSheet whenDocumentSelected(Utilities.Callback3 onWidgetSelected; public EmojiBottomSheet whenWidgetSelected(Utilities.Callback listener) { this.onWidgetSelected = listener; + View[] pages = viewPager.getViewPages(); + for (int i = 0; i < pages.length; ++i) { + View view = pages[i]; + if (view instanceof Page) { + Page page = (Page) view; + page.adapter.update(); + } + } return this; } @@ -1682,20 +1709,21 @@ public void setSticker(TLRPC.Document document) { imageReceiver = new ImageReceiver(); imageReceiver.setLayerNum(7); imageReceiver.setAspectFit(true); - imageReceiver.setParentView(listView); if (attached) { imageReceiver.onAttachedToWindow(); } } - SvgHelper.SvgDrawable svgThumb = DocumentObject.getSvgThumb(document, Theme.key_windowBackgroundWhiteGrayIcon, 0.2f); + imageReceiver.setParentView(!emoji ? this : listView); + + SvgHelper.SvgDrawable svgThumb = null;//DocumentObject.getSvgThumb(document, Theme.key_windowBackgroundWhiteGrayIcon, 0.2f); TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(document.thumbs, 90); String filter = "80_80"; if ("video/webm".equals(document.mime_type)) { filter += "_" + ImageLoader.AUTOPLAY_FILTER; } - if (svgThumb != null) { - svgThumb.overrideWidthAndHeight(512, 512); - } +// if (svgThumb != null) { +// svgThumb.overrideWidthAndHeight(512, 512); +// } imageReceiver.setImage(ImageLocation.getForDocument(document), filter, ImageLocation.getForDocument(thumb, document), "80_80", svgThumb, 0, null, document, 0); } else if (imageReceiver != null) { documentId = 0; @@ -1749,10 +1777,10 @@ public void update(long time) { @Override protected void onDraw(Canvas canvas) { if (imageReceiver != null) { - imageReceiver.setImageCoords(0, 0, getWidth(), getHeight()); + imageReceiver.setImageCoords(getPaddingLeft(), getPaddingTop(), getWidth() - getPaddingRight(), getHeight() - getPaddingBottom()); imageReceiver.draw(canvas); } else if (drawable != null) { - drawable.setBounds(0, 0, getWidth(), getHeight()); + drawable.setBounds(getPaddingLeft(), getPaddingTop(), getWidth() - getPaddingRight(), getHeight() - getPaddingBottom()); drawable.draw(canvas); } } @@ -1840,6 +1868,12 @@ protected void dispatchDraw(Canvas canvas) { canvas.save(); canvas.clipRect(0, topBound, getWidth(), bottomBound); + if (!emoji) { + super.dispatchDraw(canvas); + canvas.restore(); + return; + } + if (!selectorRect.isEmpty()) { selectorDrawable.setBounds(selectorRect); canvas.save(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/HintView2.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/HintView2.java index 127c9020df..2668cdf591 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/HintView2.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/HintView2.java @@ -38,6 +38,7 @@ import androidx.annotation.Nullable; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.Emoji; import org.telegram.messenger.LocaleController; import org.telegram.messenger.R; import org.telegram.messenger.Utilities; @@ -241,8 +242,17 @@ private static float measureCorrectly(CharSequence text, TextPaint paint) { } Spanned spanned = (Spanned) text; TypefaceSpan[] spans = spanned.getSpans(0, text.length(), TypefaceSpan.class); + AnimatedEmojiSpan[] animatedSpans = spanned.getSpans(0, text.length(), AnimatedEmojiSpan.class); + Emoji.EmojiSpan[] emojiSpans = spanned.getSpans(0, text.length(), Emoji.EmojiSpan.class); + int add = 0; + for (int i = 0; i < emojiSpans.length; ++i) { + add += emojiSpans[i].size; + } + for (int i = 0; i < animatedSpans.length; ++i) { + add += animatedSpans[i].size; + } if (spans == null || spans.length == 0) { - return paint.measureText(text.toString()); + return paint.measureText(text.toString()) + add; } float len = 0; int s = 0, e; @@ -268,7 +278,7 @@ private static float measureCorrectly(CharSequence text, TextPaint paint) { if (e - s > 0) { len += paint.measureText(spanned, s, e); } - return len; + return len + add; } // returns max width diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PaintView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PaintView.java index 5832bef372..3f41bd3718 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PaintView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PaintView.java @@ -1758,7 +1758,7 @@ private void openStickersView() { detectFaces(); } }, 350); - EmojiBottomSheet alert = emojiPopup = new EmojiBottomSheet(getContext(), isVideo, resourcesProvider) { + EmojiBottomSheet alert = emojiPopup = new EmojiBottomSheet(getContext(), false, resourcesProvider) { @Override public void onDismissAnimationStart() { super.onDismissAnimationStart(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PreviewView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PreviewView.java index 8b4c46fa0c..08328a9648 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PreviewView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PreviewView.java @@ -1313,9 +1313,7 @@ private boolean touchEvent(MotionEvent ev) { allowRotation = Math.round(angle / 90f) * 90f - angle > 20f; } if (!snappedRotation) { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + AndroidUtilities.vibrateCursor(this); snappedRotation = true; } } @@ -1335,9 +1333,7 @@ private boolean touchEvent(MotionEvent ev) { if (Math.abs(rotDiff) < 3.5f) { finalMatrix.postRotate(rotDiff, cx, cy); if (!snappedRotation) { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) {} + AndroidUtilities.vibrateCursor(this); snappedRotation = true; } } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/SliderView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/SliderView.java index eaf72d6aa9..6f37b0ee1e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/SliderView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/SliderView.java @@ -218,10 +218,7 @@ public boolean dispatchTouchEvent(MotionEvent event) { } catch (Exception ignore) { } } else if (Math.floor(pastVolume * 5) != Math.floor(volume * 5)) { - try { - performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } catch (Exception ignore) { - } + AndroidUtilities.vibrateCursor(this); } } updateText(volume); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryEntry.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryEntry.java index 12fdbfb33b..18ee7b6cb5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryEntry.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryEntry.java @@ -7,6 +7,7 @@ import android.graphics.LinearGradient; import android.graphics.Matrix; import android.graphics.Paint; +import android.graphics.Rect; import android.graphics.Shader; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; @@ -212,6 +213,9 @@ public static void drawBackgroundDrawable(Canvas canvas, Drawable drawable, int if (drawable == null) { return; } + Rect rect = new Rect(drawable.getBounds()); + Drawable.Callback callback = drawable.getCallback(); + drawable.setCallback(null); if (drawable instanceof BitmapDrawable) { BitmapDrawable bd = (BitmapDrawable) drawable; int bw = bd.getBitmap().getWidth(); @@ -223,6 +227,8 @@ public static void drawBackgroundDrawable(Canvas canvas, Drawable drawable, int drawable.setBounds(0, 0, w, h); drawable.draw(canvas); } + drawable.setBounds(rect); + drawable.setCallback(callback); } public Bitmap buildBitmap(float scale, Bitmap mainFileBitmap) { @@ -1033,6 +1039,7 @@ public void getVideoEditedInfo(@NonNull Utilities.Callback when info.startTime = (long) (left * duration) * 1000L; info.endTime = (long) (right * duration) * 1000L; info.estimatedDuration = info.endTime - info.startTime; + info.volume = videoVolume; info.muted = muted; info.estimatedSize = (long) (params[AnimatedFileDrawable.PARAM_NUM_AUDIO_FRAME_SIZE] + params[AnimatedFileDrawable.PARAM_NUM_DURATION] / 1000.0f * encoderBitrate / 8); info.estimatedSize = Math.max(file.length(), info.estimatedSize); @@ -1056,6 +1063,7 @@ public void getVideoEditedInfo(@NonNull Utilities.Callback when info.endTime = -1; info.muted = true; info.originalBitrate = -1; + info.volume = 1f; info.bitrate = -1; info.framerate = 30; info.estimatedSize = (long) (duration / 1000.0f * encoderBitrate / 8); @@ -1128,7 +1136,7 @@ public static File makeCacheFile(final int account, String ext) { location.file_reference = new byte[0]; TLObject object; - if ("mp4".equals(ext)) { + if ("mp4".equals(ext) || "webm".equals(ext)) { TLRPC.VideoSize videoSize = new TLRPC.TL_videoSize_layer127(); videoSize.location = location; object = videoSize; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacyBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacyBottomSheet.java index da00f36e88..78a40c082b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacyBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacyBottomSheet.java @@ -2607,7 +2607,7 @@ private ArrayList getChats() { return chats; } - private static class UserCell extends FrameLayout { + public static class UserCell extends FrameLayout { private final Theme.ResourcesProvider resourcesProvider; @@ -2617,8 +2617,8 @@ private static class UserCell extends FrameLayout { private final SimpleTextView titleTextView; private final SimpleTextView subtitleTextView; - private final CheckBox2 checkBox; - private final RadioButton radioButton; + public final CheckBox2 checkBox; + public final RadioButton radioButton; private final Paint dividerPaint = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -2722,7 +2722,28 @@ public void setCheckboxAlpha(float alpha, boolean animated) { private boolean[] isOnline = new boolean[1]; + + public void set(Object object) { + if (object instanceof TLRPC.User) { + titleTextView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + titleTextView.setTranslationX(0); + setUser((TLRPC.User) object); + } else if (object instanceof TLRPC.Chat) { + titleTextView.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); + titleTextView.setTranslationX(0); + setChat((TLRPC.Chat) object, 0); + } else if (object instanceof String) { + titleTextView.setTypeface(null); + titleTextView.setTranslationX(-dp(52) * (LocaleController.isRTL ? -1 : 1)); + titleTextView.setText((String) object); + } + } + + public long dialogId; + public void setUser(TLRPC.User user) { + dialogId = user == null ? 0 : user.id; + avatarDrawable.setInfo(user); imageView.setRoundRadius(dp(20)); imageView.setForUserOrChat(user, avatarDrawable); @@ -2745,6 +2766,8 @@ public void setUser(TLRPC.User user) { } public void setChat(TLRPC.Chat chat, int participants_count) { + dialogId = chat == null ? 0 : -chat.id; + avatarDrawable.setInfo(chat); imageView.setRoundRadius(dp(ChatObject.isForum(chat) ? 12 : 20)); imageView.setForUserOrChat(chat, avatarDrawable); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TopicsFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/TopicsFragment.java index 194dbf6de1..4dabdc4ef9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/TopicsFragment.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/TopicsFragment.java @@ -575,11 +575,22 @@ protected boolean canGenerateLink() { bottomSheet.setDelegate((users1, fwdCount) -> { int N = users1.size(); int[] finished = new int[1]; + TLRPC.TL_messages_invitedUsers totalInvitedUsers = new TLRPC.TL_messages_invitedUsers(); + totalInvitedUsers.updates = new TLRPC.TL_updates(); for (int a = 0; a < N; a++) { TLRPC.User user = users1.get(a); - getMessagesController().addUserToChat(chatId, user, fwdCount, null, TopicsFragment.this, () -> { - if (++finished[0] == N) { - BulletinFactory.of(TopicsFragment.this).createUsersAddedBulletin(users1, getMessagesController().getChat(chatId)).show(); + getMessagesController().addUserToChat(chatId, user, fwdCount, null, TopicsFragment.this, false, () -> {}, null, invitedUsers -> { + if (invitedUsers != null) { + totalInvitedUsers.missing_invitees.addAll(invitedUsers.missing_invitees); + } + finished[0]++; + if (finished[0] == N) { + if (totalInvitedUsers.missing_invitees.isEmpty()) { + BulletinFactory.of(TopicsFragment.this).createUsersAddedBulletin(users1, getMessagesController().getChat(chatId)).show(); + } else { + TLRPC.Chat chat = getMessagesController().getChat(chatId); + AlertsCreator.checkRestrictedInviteUsers(currentAccount, chat, totalInvitedUsers); + } } }); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java index 5cdf2e3349..e7bcf0f8da 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java @@ -138,6 +138,7 @@ public class TwoStepVerificationActivity extends BaseFragment implements Notific private RadialProgressView radialProgressView; + private int delegateType; private TwoStepVerificationActivityDelegate delegate; public interface TwoStepVerificationActivityDelegate { @@ -446,7 +447,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } if (delegate != null) { titleTextView.setText(LocaleController.getString(R.string.YourPassword)); - subtitleTextView.setText(LocaleController.getString(R.string.PleaseEnterCurrentPasswordTransfer)); + subtitleTextView.setText(LocaleController.getString(delegateType == 1 ? R.string.PleaseEnterCurrentPasswordWithdraw : R.string.PleaseEnterCurrentPasswordTransfer)); subtitleTextView.setVisibility(View.VISIBLE); } else { titleTextView.setText(LocaleController.getString(R.string.YourPassword)); @@ -676,7 +677,8 @@ public void setCurrentPasswordInfo(byte[] hash, TLRPC.account_Password password) currentPassword = password; } - public void setDelegate(TwoStepVerificationActivityDelegate twoStepVerificationActivityDelegate) { + public void setDelegate(int a, TwoStepVerificationActivityDelegate twoStepVerificationActivityDelegate) { + delegateType = a; delegate = twoStepVerificationActivityDelegate; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/UserInfoActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/UserInfoActivity.java new file mode 100644 index 0000000000..c1d3862e4d --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/UserInfoActivity.java @@ -0,0 +1,675 @@ +package org.telegram.ui; + +import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.getString; + +import android.content.Context; +import android.content.SharedPreferences; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.BotWebViewVibrationEffect; +import org.telegram.messenger.BuildVars; +import org.telegram.messenger.ChatObject; +import org.telegram.messenger.ContactsController; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.messenger.Utilities; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.TLObject; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.ActionBar; +import org.telegram.ui.ActionBar.ActionBarMenuItem; +import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Cells.EditTextCell; +import org.telegram.ui.Components.AlertsCreator; +import org.telegram.ui.Components.BottomSheetWithRecyclerListView; +import org.telegram.ui.Components.BulletinFactory; +import org.telegram.ui.Components.ChatAttachAlertLocationLayout; +import org.telegram.ui.Components.CircularProgressDrawable; +import org.telegram.ui.Components.CrossfadeDrawable; +import org.telegram.ui.Components.RecyclerListView; +import org.telegram.ui.Components.UItem; +import org.telegram.ui.Components.UniversalAdapter; +import org.telegram.ui.Components.UniversalFragment; + +import java.util.ArrayList; +import java.util.Calendar; + +public class UserInfoActivity extends UniversalFragment implements NotificationCenter.NotificationCenterDelegate { + + private EditTextCell firstNameEdit; + private EditTextCell lastNameEdit; + private EditTextCell bioEdit; + + private CharSequence bioInfo; + private CharSequence birthdayInfo; + + @Override + protected CharSequence getTitle() { + return getString(R.string.EditProfileInfo); + } + + private static final int done_button = 1; + private CrossfadeDrawable doneButtonDrawable; + private ActionBarMenuItem doneButton; + + @Override + public boolean onFragmentCreate() { + getNotificationCenter().addObserver(this, NotificationCenter.userInfoDidLoad); + getNotificationCenter().addObserver(this, NotificationCenter.privacyRulesUpdated); + getContactsController().loadPrivacySettings(); + return super.onFragmentCreate(); + } + + @Override + public void onFragmentDestroy() { + getNotificationCenter().removeObserver(this, NotificationCenter.userInfoDidLoad); + getNotificationCenter().removeObserver(this, NotificationCenter.privacyRulesUpdated); + super.onFragmentDestroy(); + if (!wasSaved) { + processDone(false); + } + } + + @Override + public View createView(Context context) { + firstNameEdit = new EditTextCell(context, getString(R.string.EditProfileFirstName), false, -1) { + @Override + protected void onTextChanged(CharSequence newText) { + super.onTextChanged(newText); + checkDone(true); + } + }; + firstNameEdit.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + firstNameEdit.setDivider(true); + firstNameEdit.hideKeyboardOnEnter(); + lastNameEdit = new EditTextCell(context, getString(R.string.EditProfileLastName), false, -1) { + @Override + protected void onTextChanged(CharSequence newText) { + super.onTextChanged(newText); + checkDone(true); + } + }; + lastNameEdit.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + lastNameEdit.hideKeyboardOnEnter(); + bioEdit = new EditTextCell(context, getString(R.string.EditProfileBioHint), true, getMessagesController().getAboutLimit()) { + @Override + protected void onTextChanged(CharSequence newText) { + super.onTextChanged(newText); + checkDone(true); + } + }; + bioEdit.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); + bioEdit.setShowLimitWhenEmpty(true); + + bioInfo = AndroidUtilities.replaceSingleTag(getString(R.string.EditProfileBioInfo), () -> { + presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_BIO, true)); + }); + + super.createView(context); + + actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { + @Override + public void onItemClick(int id) { + if (id == -1) { + if (onBackPressed()) { + finishFragment(); + } + } else if (id == done_button) { + processDone(true); + } + } + }); + Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); + checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); + doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); + doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, dp(56), LocaleController.getString("Done", R.string.Done)); + checkDone(false); + + setValue(); + + return fragmentView; + } + + private static final int BUTTON_BIRTHDAY = 1; + private static final int BUTTON_REMOVE_BIRTHDAY = 2; + private static final int BUTTON_CHANNEL = 3; + + @Override + protected void fillItems(ArrayList items, UniversalAdapter adapter) { + items.add(UItem.asHeader(getString(R.string.EditProfileName))); + items.add(UItem.asCustom(firstNameEdit)); + items.add(UItem.asCustom(lastNameEdit)); + items.add(UItem.asShadow(null)); + items.add(UItem.asHeader(getString(R.string.EditProfileChannel))); + items.add(UItem.asButton(BUTTON_CHANNEL, getString(R.string.EditProfileChannelTitle), channel == null ? getString(R.string.EditProfileChannelAdd) : channel.title)); + items.add(UItem.asShadow(null)); + items.add(UItem.asHeader(getString(R.string.EditProfileBio))); + items.add(UItem.asCustom(bioEdit)); + items.add(UItem.asShadow(bioInfo)); + items.add(UItem.asHeader(getString(R.string.EditProfileBirthday))); + items.add(UItem.asButton(BUTTON_BIRTHDAY, getString(R.string.EditProfileBirthdayText), birthday == null ? getString(R.string.EditProfileBirthdayAdd) : birthdayString(birthday))); + if (birthday != null) { + items.add(UItem.asButton(BUTTON_REMOVE_BIRTHDAY, getString(R.string.EditProfileBirthdayRemove)).red()); + } + if (!getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_BIRTHDAY)) { + ArrayList rules = getContactsController().getPrivacyRules(ContactsController.PRIVACY_RULES_TYPE_BIRTHDAY); + if (rules != null && birthdayInfo == null) { + String string = getString(R.string.EditProfileBirthdayInfoContacts); + if (!rules.isEmpty()) { + for (int i = 0; i < rules.size(); ++i) { + if (rules.get(i) instanceof TLRPC.TL_privacyValueAllowContacts) { + string = getString(R.string.EditProfileBirthdayInfoContacts); + break; + } + if (rules.get(i) instanceof TLRPC.TL_privacyValueAllowAll || rules.get(i) instanceof TLRPC.TL_privacyValueDisallowAll) { + string = getString(R.string.EditProfileBirthdayInfo); + } + } + } + birthdayInfo = AndroidUtilities.replaceArrows(AndroidUtilities.replaceSingleTag(string, () -> { + presentFragment(new PrivacyControlActivity(PrivacyControlActivity.PRIVACY_RULES_TYPE_BIRTHDAY)); + }), true); + } + } + items.add(UItem.asShadow(birthdayInfo)); + } + + public static String birthdayString(TLRPC.TL_birthday birthday) { + if (birthday == null) { + return "โ€”"; + } + if ((birthday.flags & 1) != 0) { + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.YEAR, birthday.year); + calendar.set(Calendar.MONTH, birthday.month - 1); + calendar.set(Calendar.DAY_OF_MONTH, birthday.day); + return LocaleController.getInstance().formatterBoostExpired.format(calendar.getTimeInMillis()); + } else { + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.MONTH, birthday.month - 1); + calendar.set(Calendar.DAY_OF_MONTH, birthday.day); + return LocaleController.getInstance().formatterDayMonth.format(calendar.getTimeInMillis()); + } + } + + @Override + protected void onClick(UItem item, View view, int position, float x, float y) { + if (item.id == BUTTON_BIRTHDAY) { + showDialog(AlertsCreator.createBirthdayPickerDialog( + getContext(), + getString(R.string.EditProfileBirthdayTitle), + getString(R.string.EditProfileBirthdayButton), + birthday, + selectedBirthday -> { + birthday = selectedBirthday; + if (listView != null) { + listView.adapter.update(true); + } + checkDone(true); + }, + null, + getResourceProvider() + ).create()); + } else if (item.id == BUTTON_REMOVE_BIRTHDAY) { + birthday = null; + if (listView != null) { + listView.adapter.update(true); + } + checkDone(true); + } else if (item.id == BUTTON_CHANNEL) { + presentFragment(new ChooseChannelFragment( + channels, + (channel == null ? 0 : channel.id), chat -> { + if (channel == chat) return; + channel = chat; + if (chat != null) { + BulletinFactory.of(this).createSimpleBulletin(R.raw.contact_check, getString(R.string.EditProfileChannelSet)).show(); + } + checkDone(true); + if (listView != null) { + listView.adapter.update(true); + } + } + )); +// showDialog(new ChooseChannel(this, channels, (channel == null ? 0 : channel.id), chat -> { +// if (channel == chat) return; +// channel = chat; +// checkDone(true); +// if (listView != null) { +// listView.adapter.update(true); +// } +// })); + } + } + + @Override + protected boolean onLongClick(UItem item, View view, int position, float x, float y) { + return false; + } + + @Override + public void didReceivedNotification(int id, int account, Object... args) { + if (id == NotificationCenter.userInfoDidLoad) { + setValue(); + } else if (id == NotificationCenter.privacyRulesUpdated) { + if (listView != null) { + listView.adapter.update(true); + } + } + } + + @Override + public void onResume() { + super.onResume(); + channels.invalidate(); + channels.subscribe(() -> { + if (listView != null) { + listView.adapter.update(true); + } + }); + channels.fetch(); + birthdayInfo = null; + if (listView != null) { + listView.adapter.update(true); + } + } + + private String currentFirstName; + private String currentLastName; + private String currentBio; + private TLRPC.TL_birthday currentBirthday; + private long currentChannel; + + private TLRPC.TL_birthday birthday; + private TLRPC.Chat channel; + + private AdminedChannelsFetcher channels = new AdminedChannelsFetcher(currentAccount); + + private boolean valueSet; + private void setValue() { + if (valueSet) return; + + final long selfId = getUserConfig().getClientUserId(); + TLRPC.UserFull userFull = getMessagesController().getUserFull(selfId); + if (userFull == null) { + getMessagesController().loadUserInfo(getUserConfig().getCurrentUser(), true, getClassGuid()); + return; + } + + TLRPC.User user = userFull.user; + if (user == null) { + user = getUserConfig().getCurrentUser(); + } + + if (user == null) { + return; + } + + firstNameEdit.setText(currentFirstName = user.first_name); + lastNameEdit.setText(currentLastName = user.last_name); + bioEdit.setText(currentBio = userFull.about); + birthday = currentBirthday = userFull.birthday; + if ((userFull.flags2 & 64) != 0) { + currentChannel = userFull.personal_channel_id; + channel = getMessagesController().getChat(currentChannel); + } else { + currentChannel = 0; + channel = null; + } + checkDone(true); + + if (listView != null && listView.adapter != null) { + listView.adapter.update(true); + } + valueSet = true; + } + + public boolean hasChanges() { + return ( + !TextUtils.equals(currentFirstName == null ? "" : currentFirstName, firstNameEdit.getText().toString()) || + !TextUtils.equals(currentLastName == null ? "" : currentLastName, lastNameEdit.getText().toString()) || + !TextUtils.equals(currentBio == null ? "" : currentBio, bioEdit.getText().toString()) || + !birthdaysEqual(currentBirthday, birthday) || + currentChannel != (channel != null ? channel.id : 0) + ); + } + + public static boolean birthdaysEqual(TLRPC.TL_birthday a, TLRPC.TL_birthday b) { + return !((a == null) == (b != null) || a != null && (a.day != b.day || a.month != b.month || a.year != b.year)); + } + + private void checkDone(boolean animated) { + if (doneButton == null) return; + final boolean hasChanges = hasChanges(); + doneButton.setEnabled(hasChanges); + if (animated) { + doneButton.animate().alpha(hasChanges ? 1.0f : 0.0f).scaleX(hasChanges ? 1.0f : 0.0f).scaleY(hasChanges ? 1.0f : 0.0f).setDuration(180).start(); + } else { + doneButton.setAlpha(hasChanges ? 1.0f : 0.0f); + doneButton.setScaleX(hasChanges ? 1.0f : 0.0f); + doneButton.setScaleY(hasChanges ? 1.0f : 0.0f); + } + } + + private boolean wasSaved = false; + private int shiftDp = -4; + private void processDone(boolean error) { + if (doneButtonDrawable.getProgress() > 0f) return; + + if (error && TextUtils.isEmpty(firstNameEdit.getText())) { + BotWebViewVibrationEffect.APP_ERROR.vibrate(); + AndroidUtilities.shakeViewSpring(firstNameEdit, shiftDp = -shiftDp); + return; + } + + doneButtonDrawable.animateToProgress(1f); + TLRPC.User user = getUserConfig().getCurrentUser(); + TLRPC.UserFull userFull = getMessagesController().getUserFull(getUserConfig().getClientUserId()); + if (user == null || userFull == null) return; + + ArrayList requests = new ArrayList(); + + if ( + !TextUtils.isEmpty(firstNameEdit.getText()) && + ( + !TextUtils.equals(currentFirstName, firstNameEdit.getText().toString()) || + !TextUtils.equals(currentLastName, lastNameEdit.getText().toString()) || + !TextUtils.equals(currentBio, bioEdit.getText().toString()) + ) + ) { + TLRPC.TL_account_updateProfile req1 = new TLRPC.TL_account_updateProfile(); + + req1.flags |= 1; + req1.first_name = user.first_name = firstNameEdit.getText().toString(); + + req1.flags |= 2; + req1.last_name = user.last_name = lastNameEdit.getText().toString(); + + req1.flags |= 4; + req1.about = userFull.about = bioEdit.getText().toString(); + userFull.flags = TextUtils.isEmpty(userFull.about) ? (userFull.flags & ~2) : (userFull.flags | 2); + + requests.add(req1); + } + + TLRPC.TL_birthday oldBirthday = userFull != null ? userFull.birthday : null; + if (!birthdaysEqual(currentBirthday, birthday)) { + TLRPC.TL_account_updateBirthday req = new TLRPC.TL_account_updateBirthday(); + if (birthday != null) { + userFull.flags2 |= 32; + userFull.birthday = birthday; + req.flags |= 1; + req.birthday = birthday; + } else { + userFull.flags2 &=~ 32; + userFull.birthday = null; + } + requests.add(req); + + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.premiumPromoUpdated); + } + + if (currentChannel != (channel != null ? channel.id : 0)) { + TLRPC.TL_account_updatePersonalChannel req = new TLRPC.TL_account_updatePersonalChannel(); + req.channel = MessagesController.getInputChannel(channel); + if (channel != null) { + userFull.flags |= 64; + if (userFull.personal_channel_id != channel.id) { + userFull.personal_channel_message = 0; + } + userFull.personal_channel_id = channel.id; + } else { + userFull.flags &=~ 64; + userFull.personal_channel_message = 0; + userFull.personal_channel_id = 0; + } + requests.add(req); + } + + if (requests.isEmpty()) { + finishFragment(); + return; + } + + final int[] requestsReceived = new int[] { 0 }; + for (int i = 0; i < requests.size(); ++i) { + final TLObject req = requests.get(i); + getConnectionsManager().sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (err != null) { + doneButtonDrawable.animateToProgress(0f); + if (req instanceof TLRPC.TL_account_updateBirthday && err.text != null && err.text.startsWith("FLOOD_WAIT_")) { + if (getContext() != null) { + showDialog( + new AlertDialog.Builder(getContext(), resourceProvider) + .setTitle(getString(R.string.PrivacyBirthdayTooOftenTitle)) + .setMessage(getString(R.string.PrivacyBirthdayTooOftenMessage)) + .setPositiveButton(getString(R.string.OK), null) + .create() + ); + } + } else { + BulletinFactory.showError(err); + } + if (req instanceof TLRPC.TL_account_updateBirthday) { + if (oldBirthday != null) { + userFull.flags |= 32; + } else { + userFull.flags &=~ 32; + } + userFull.birthday = oldBirthday; + getMessagesStorage().updateUserInfo(userFull, false); + } + } else if (res instanceof TLRPC.TL_boolFalse) { + doneButtonDrawable.animateToProgress(0f); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.UnknownError)).show(); + } else { + wasSaved = true; + requestsReceived[0]++; + if (requestsReceived[0] == requests.size()) { + finishFragment(); + } + } + }), ConnectionsManager.RequestFlagDoNotWaitFloodWait); + } + getMessagesStorage().updateUserInfo(userFull, false); + getUserConfig().saveConfig(true); + + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.mainUserInfoChanged); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.updateInterfaces, MessagesController.UPDATE_MASK_NAME); + } + + private static class AdminedChannelsFetcher { + public final int currentAccount; + public AdminedChannelsFetcher(int currentAccount) { + this.currentAccount = currentAccount; + } + + public boolean loaded, loading; + public ArrayList chats = new ArrayList<>(); + + public void invalidate() { + loaded = false; + } + + public void fetch() { + if (loaded || loading) return; + loading = true; + TLRPC.TL_channels_getAdminedPublicChannels req = new TLRPC.TL_channels_getAdminedPublicChannels(); + req.for_personal = true; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TLRPC.messages_Chats) { + chats.clear(); + chats.addAll(((TLRPC.messages_Chats) res).chats); + } + MessagesController.getInstance(currentAccount).putChats(chats, false); + loading = false; + loaded = true; + for (Runnable callback : callbacks) { + callback.run(); + } + callbacks.clear(); + })); + } + + private ArrayList callbacks = new ArrayList<>(); + public void subscribe(Runnable whenDone) { + if (loaded) + whenDone.run(); + else + callbacks.add(whenDone); + } + } + + private static class ChooseChannelFragment extends UniversalFragment { + + private AdminedChannelsFetcher channels; + private long selectedChannel; + private Utilities.Callback whenSelected; + + private String query; + + public ChooseChannelFragment( + AdminedChannelsFetcher channels, + long selectedChannel, + Utilities.Callback whenSelected + ) { + super(); + this.channels = channels; + this.selectedChannel = selectedChannel; + this.whenSelected = whenSelected; + channels.subscribe(() -> { + if (listView != null) { + listView.adapter.update(true); + } + }); + } + + private ActionBarMenuItem searchItem; + + @Override + public View createView(Context context) { + searchItem = actionBar.createMenu().addItem(0, R.drawable.ic_ab_search, getResourceProvider()).setIsSearchField(true).setActionBarMenuItemSearchListener(new ActionBarMenuItem.ActionBarMenuItemSearchListener() { + @Override + public void onSearchExpand() {} + @Override + public void onSearchCollapse() { + query = null; + if (listView != null) { + listView.adapter.update(true); + } + } + + @Override + public void onTextChanged(EditText editText) { + query = editText.getText().toString(); + if (listView != null) { + listView.adapter.update(true); + } + } + }); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); + searchItem.setContentDescription(LocaleController.getString(R.string.Search)); + searchItem.setVisibility(View.GONE); + + super.createView(context); + return fragmentView; + } + + @Override + protected CharSequence getTitle() { + return getString(R.string.EditProfileChannelTitle); + } + + private final static int BUTTON_REMOVE = 1; + private final static int BUTTON_CREATE = 2; + + @Override + protected void fillItems(ArrayList items, UniversalAdapter adapter) { + if (TextUtils.isEmpty(query)) { + items.add(UItem.asHeader(getString(R.string.EditProfileChannelSelect))); + } + if (TextUtils.isEmpty(query) && selectedChannel != 0) { + items.add(UItem.asButton(BUTTON_REMOVE, R.drawable.msg_archive_hide, getString(R.string.EditProfileChannelHide)).accent()); + } + int count = 0; + for (TLRPC.Chat chat : channels.chats) { + if (chat == null || ChatObject.isMegagroup(chat)) continue; + count++; + if (!TextUtils.isEmpty(query)) { + String lq = query.toLowerCase(), lq2 = AndroidUtilities.translitSafe(lq); + String c = chat.title.toLowerCase(), c2 = AndroidUtilities.translitSafe(c); + if (!( + c.startsWith(lq) || c.contains(" " + lq) || + c2.startsWith(lq2) || c2.contains(" " + lq2) + )) { + continue; + } + } + items.add(UItem.asFilterChat(true, -chat.id).setChecked(selectedChannel == chat.id)); + } + if (TextUtils.isEmpty(query) && count == 0) { + items.add(UItem.asButton(BUTTON_CREATE, R.drawable.msg_channel_create, getString(R.string.EditProfileChannelStartNew)).accent()); + } + items.add(UItem.asShadow(null)); + if (searchItem != null) { + searchItem.setVisibility(count > 5 ? View.VISIBLE : View.GONE); + } + } + + private boolean invalidateAfterPause = false; + + @Override + public void onResume() { + super.onResume(); + if (invalidateAfterPause) { + channels.invalidate(); + channels.subscribe(() -> { + if (listView != null) { + listView.adapter.update(true); + } + }); + invalidateAfterPause = false; + } + } + + @Override + protected void onClick(UItem item, View view, int position, float x, float y) { + if (item.id == BUTTON_REMOVE) { + whenSelected.run(null); + finishFragment(); + } else if (item.id == BUTTON_CREATE) { + invalidateAfterPause = true; + SharedPreferences preferences = MessagesController.getGlobalMainSettings(); + if (!BuildVars.DEBUG_VERSION && preferences.getBoolean("channel_intro", false)) { + Bundle args = new Bundle(); + args.putInt("step", 0); + presentFragment(new ChannelCreateActivity(args)); + } else { + presentFragment(new ActionIntroActivity(ActionIntroActivity.ACTION_TYPE_CHANNEL_CREATE)); + preferences.edit().putBoolean("channel_intro", true).apply(); + } + } else if (item.viewType == UniversalAdapter.VIEW_TYPE_FILTER_CHAT_CHECK) { + finishFragment(); + whenSelected.run(getMessagesController().getChat(-item.dialogId)); + } + } + + @Override + protected boolean onLongClick(UItem item, View view, int position, float x, float y) { + return false; + } + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/UsersSelectActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/UsersSelectActivity.java index cc33b007c0..c1fa0c72dd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/UsersSelectActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/UsersSelectActivity.java @@ -1128,17 +1128,15 @@ public class GroupCreateAdapter extends RecyclerListView.FastScrollAdapter { public GroupCreateAdapter(Context ctx) { context = ctx; - if (type == TYPE_PRIVATE) { + if (noChatTypes) { + usersStartRow = 0; + } else if (type == TYPE_PRIVATE) { usersStartRow = 5 + (doNotNewChats ? 0 : 1); } else if (type == TYPE_FILTER) { - if (!noChatTypes) { - if (isInclude) { - usersStartRow = 7; - } else { - usersStartRow = 5; - } + if (isInclude) { + usersStartRow = 7; } else { - usersStartRow = 0; + usersStartRow = 5; } } else { usersStartRow = 0; @@ -1264,12 +1262,12 @@ public int getItemCount() { count += localServerCount + globalCount; return count; } else { - if (type == TYPE_PRIVATE) { + if (noChatTypes) { + count = 0; + } else if (type == TYPE_PRIVATE) { count = 3 + (doNotNewChats ? 0 : 1); } else if (type == TYPE_FILTER) { - if (noChatTypes) { - count = 0; - } else if (isInclude) { + if (isInclude) { count = 7; } else { count = 5; @@ -1505,16 +1503,16 @@ public int getItemViewType(int position) { if (searching) { return 1; } else { - if (type == TYPE_PRIVATE) { + if (noChatTypes) { + if (position == 0) { + return 2; + } + } else if (type == TYPE_PRIVATE) { if (position == 0 || position == 4 + (doNotNewChats ? 0 : 1)) { return 2; } } else if (type == TYPE_FILTER) { - if (noChatTypes) { - if (position == 0) { - return 2; - } - } else if (isInclude) { + if (isInclude) { if (position == 0 || position == 6) { return 2; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/WebviewActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/WebviewActivity.java index 4f65541a38..109877e8b3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/WebviewActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/WebviewActivity.java @@ -218,6 +218,7 @@ public void onItemClick(int id) { FrameLayout frameLayout = (FrameLayout) fragmentView; if (Build.VERSION.SDK_INT >= 19) { webView.setLayerType(View.LAYER_TYPE_HARDWARE, null); + webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING); } if (Build.VERSION.SDK_INT >= 17) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotBiometry.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotBiometry.java new file mode 100644 index 0000000000..7f94bfd5ad --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotBiometry.java @@ -0,0 +1,448 @@ +package org.telegram.ui.bots; + +import android.app.Activity; +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Build; +import android.security.keystore.KeyGenParameterSpec; +import android.security.keystore.KeyProperties; +import android.text.TextUtils; +import android.util.Log; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; +import androidx.biometric.BiometricManager; +import androidx.biometric.BiometricPrompt; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; +import androidx.lifecycle.Lifecycle; +import androidx.lifecycle.LifecycleRegistry; + +import org.json.JSONException; +import org.json.JSONObject; +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.ApplicationLoader; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.MessagesStorage; +import org.telegram.messenger.R; +import org.telegram.messenger.SRPHelper; +import org.telegram.messenger.SharedConfig; +import org.telegram.messenger.UserConfig; +import org.telegram.messenger.UserObject; +import org.telegram.messenger.Utilities; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.Components.Text; +import org.telegram.ui.LaunchActivity; + +import java.nio.charset.StandardCharsets; +import java.security.KeyPairGenerator; +import java.security.KeyStore; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; +import java.security.SecureRandom; +import java.util.ArrayList; +import java.util.Map; +import java.util.concurrent.Executor; + +import javax.crypto.Cipher; +import javax.crypto.KeyGenerator; +import javax.crypto.SecretKey; +import javax.crypto.spec.IvParameterSpec; + +public class BotBiometry { + + public static final String PREF = "2botbiometry_"; + + public final Context context; + public final int currentAccount; + public final long botId; + + public boolean disabled; + public boolean access_granted; + public boolean access_requested; + + private String encrypted_token; + + public BotBiometry(Context context, int currentAccount, long botId) { + this.context = context; + this.currentAccount = currentAccount; + this.botId = botId; + load(); + } + + public void load() { + SharedPreferences prefs = context.getSharedPreferences(PREF + currentAccount, Activity.MODE_PRIVATE); + this.encrypted_token = prefs.getString(String.valueOf(botId), null); + this.access_granted = this.encrypted_token != null; + this.access_requested = this.access_granted || prefs.getBoolean(botId + "_requested", false); + this.disabled = prefs.getBoolean(botId + "_disabled", false); + } + + @Nullable + public static String getAvailableType(Context context) { + try { + BiometricManager manager = BiometricManager.from(context); + if (manager == null) return null; + if (manager.canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG) != BiometricManager.BIOMETRIC_SUCCESS) { + return null; + } + } catch (Exception e) { + FileLog.e(e); + return null; + } + return "unknown"; + } + + private BiometricPrompt prompt; + + public void requestToken(String reason, Utilities.Callback2 whenDecrypted) { + prompt(reason, true, null, result -> { + String token = null; + if (result != null) { + try { + BiometricPrompt.CryptoObject cryptoObject = result.getCryptoObject(); + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + if (!TextUtils.isEmpty(encrypted_token)) { + token = encrypted_token.split(";")[0]; + } else { + token = encrypted_token; + } + } else if (cryptoObject != null) { + token = new String(cryptoObject.getCipher().doFinal(Utilities.hexToBytes(encrypted_token.split(";")[0])), StandardCharsets.UTF_8); + } else { + if (!TextUtils.isEmpty(encrypted_token)) { + throw new RuntimeException("No cryptoObject found"); + } + } + } catch (Exception e) { + FileLog.e(e); + result = null; + } + } + whenDecrypted.run(result != null, token); + }); + } + + public void updateToken(String reason, String token, Utilities.Callback whenDone) { + prompt(reason, false, token, result -> { + boolean success = true; + if (result != null) { + try { + BiometricPrompt.CryptoObject cryptoObject = result.getCryptoObject(); + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + encrypted_token = token; + } else { + if (cryptoObject == null) { + cryptoObject = makeCryptoObject(false); + } + if (cryptoObject != null) { + encrypted_token = Utilities.bytesToHex(cryptoObject.getCipher().doFinal(token.getBytes(StandardCharsets.UTF_8))) + ";" + Utilities.bytesToHex(cryptoObject.getCipher().getIV()); + } else { + throw new RuntimeException("No cryptoObject found"); + } + } + save(); + } catch (Exception e) { + FileLog.e(e); + success = false; + } + } + whenDone.run(success); + }); + } + + private void initPrompt() { + if (prompt != null) return; + final Executor executor = ContextCompat.getMainExecutor(context); + prompt = new BiometricPrompt(LaunchActivity.instance, executor, new BiometricPrompt.AuthenticationCallback() { + @Override + public void onAuthenticationError(int errorCode, @NonNull CharSequence errString) { + FileLog.d("BotBiometry onAuthenticationError " + errorCode + " \"" + errString + "\""); + if (callback != null) { + Utilities.Callback thisCallback = callback; + callback = null; + thisCallback.run(null); + } + } + + @Override + public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) { + FileLog.d("BotBiometry onAuthenticationSucceeded"); + if (callback != null) { + Utilities.Callback thisCallback = callback; + callback = null; + thisCallback.run(result); + } + } + + @Override + public void onAuthenticationFailed() { + FileLog.d("BotBiometry onAuthenticationFailed"); + if (callback != null) { + Utilities.Callback thisCallback = callback; + callback = null; + thisCallback.run(null); + } + } + }); + } + + private BiometricPrompt.CryptoObject makeCryptoObject(boolean decrypt) { + try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + Cipher cipher = getCipher(); + SecretKey secretKey = getSecretKey(); + if (decrypt) { + cipher.init(Cipher.DECRYPT_MODE, secretKey, new IvParameterSpec(Utilities.hexToBytes(encrypted_token.split(";")[1]))); + } else { + cipher.init(Cipher.ENCRYPT_MODE, secretKey); + } + return new BiometricPrompt.CryptoObject(cipher); + } + } catch (Exception e) { + FileLog.e(e); + } + return null; + } + + private Utilities.Callback callback; + private void prompt( + String text, + boolean decrypt, + String token, + Utilities.Callback whenDone + ) { + this.callback = whenDone; + try { + initPrompt(); + } catch (Exception e) { + FileLog.e(e); + whenDone.run(null); + return; + } + BiometricPrompt.CryptoObject cryptoObject = makeCryptoObject(decrypt); + final TLRPC.User bot = MessagesController.getInstance(currentAccount).getUser(botId); + final BiometricPrompt.PromptInfo.Builder promptInfoBuilder = new BiometricPrompt.PromptInfo.Builder() + .setTitle(UserObject.getUserName(bot)) + .setNegativeButtonText(LocaleController.getString(R.string.Back)) + .setAllowedAuthenticators(BiometricManager.Authenticators.BIOMETRIC_STRONG); + if (!TextUtils.isEmpty(text)) { + promptInfoBuilder.setDescription(text); + } + final BiometricPrompt.PromptInfo promptInfo = promptInfoBuilder.build(); + if (cryptoObject != null && !decrypt) { + try { + encrypted_token = Utilities.bytesToHex(cryptoObject.getCipher().doFinal(token.getBytes(StandardCharsets.UTF_8))) + ";" + Utilities.bytesToHex(cryptoObject.getCipher().getIV()); + save(); + this.callback = null; + whenDone.run(null); + return; + } catch (Exception e) { + FileLog.e(e); + } + cryptoObject = makeCryptoObject(decrypt); + } + if (cryptoObject != null) { + prompt.authenticate(promptInfo, cryptoObject); + } else { + prompt.authenticate(promptInfo); + } + } + + private static KeyStore keyStore; + + @RequiresApi(api = Build.VERSION_CODES.M) + private SecretKey getSecretKey() throws Exception { + if (keyStore == null) { + keyStore = KeyStore.getInstance("AndroidKeyStore"); + keyStore.load(null); + } + if (keyStore.containsAlias("6bot_" + botId)) { + return ((SecretKey) keyStore.getKey("6bot_" + botId, null)); + } else { + KeyGenParameterSpec.Builder keygenBuilder = new KeyGenParameterSpec.Builder( + "6bot_" + botId, + KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT + ); + keygenBuilder.setBlockModes(KeyProperties.BLOCK_MODE_CBC); + keygenBuilder.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7); + keygenBuilder.setUserAuthenticationRequired(true); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + keygenBuilder.setUserAuthenticationParameters(60, KeyProperties.AUTH_BIOMETRIC_STRONG); + } else { + keygenBuilder.setUserAuthenticationValidityDurationSeconds(60); + } + if (Build.VERSION.SDK_INT >= 24) { + keygenBuilder.setInvalidatedByBiometricEnrollment(true); + } + KeyGenerator keyGenerator = KeyGenerator.getInstance( + KeyProperties.KEY_ALGORITHM_AES, + "AndroidKeyStore" + ); + keyGenerator.init(keygenBuilder.build()); + return keyGenerator.generateKey(); + } + } + + private Cipher getCipher() throws Exception { + return Cipher.getInstance( + KeyProperties.KEY_ALGORITHM_AES + "/" + + KeyProperties.BLOCK_MODE_CBC + "/" + + KeyProperties.ENCRYPTION_PADDING_PKCS7 + ); + } + + public JSONObject getStatus() throws JSONException { + JSONObject object = new JSONObject(); + final String availableType = getAvailableType(context); + if (availableType != null) { + object.put("available", true); + object.put("type", availableType); + } else { + object.put("available", false); + } + object.put("access_requested", access_requested); + object.put("access_granted", access_granted && !disabled); + object.put("token_saved", !TextUtils.isEmpty(encrypted_token)); + object.put("device_id", getDeviceId(context, currentAccount, botId)); + return object; + } + + public static String getDeviceId(Context context, int currentAccount, long botId) { + final SharedPreferences prefs = context.getSharedPreferences(PREF + currentAccount, Activity.MODE_PRIVATE); + String deviceId = prefs.getString("device_id" + botId, null); + if (deviceId == null) { + byte[] bytes = new byte[32]; + new SecureRandom().nextBytes(bytes); + prefs.edit().putString("device_id" + botId, deviceId = Utilities.bytesToHex(bytes)).apply(); + } + return deviceId; + } + + public void save() { + final SharedPreferences prefs = context.getSharedPreferences(PREF + currentAccount, Activity.MODE_PRIVATE); + final SharedPreferences.Editor edit = prefs.edit(); + if (access_requested) { + edit.putBoolean(botId + "_requested", true); + } else { + edit.remove(botId + "_requested"); + } + if (access_granted) { + edit.putString(String.valueOf(botId), encrypted_token == null ? "" : encrypted_token); + } else { + edit.remove(String.valueOf(botId)); + } + if (disabled) { + edit.putBoolean(botId + "_disabled", true); + } else { + edit.remove(botId + "_disabled"); + } + edit.apply(); + } + + public static class Bot { + private Bot(TLRPC.User user, boolean disabled) { + this.user = user; + this.disabled = disabled; + } + public TLRPC.User user; + public boolean disabled; + } + + public static void getBots( + Context context, + int currentAccount, + Utilities.Callback> whenDone + ) { + if (whenDone == null) return; + + final SharedPreferences prefs = context.getSharedPreferences(PREF + currentAccount, Activity.MODE_PRIVATE); + + final ArrayList botIds = new ArrayList<>(); + final ArrayList botDisabled = new ArrayList<>(); + final Map values = prefs.getAll(); + for (Map.Entry entry : values.entrySet()) { + if (!entry.getKey().startsWith("device_id") || !(entry.getValue() instanceof String)) continue; + long botId; + boolean disabled; + try { + botId = Long.parseLong(entry.getKey().substring("device_id".length())); + Boolean disabledValue = (Boolean) values.get(botId + "_disabled"); + disabled = disabledValue != null && disabledValue; + } catch (Exception e) { + FileLog.e(e); + continue; + } + botIds.add(botId); + botDisabled.add(disabled); + } + + if (botIds.isEmpty()) { + whenDone.run(new ArrayList<>()); + return; + } + + MessagesStorage.getInstance(currentAccount).getStorageQueue().postRunnable(() -> { + ArrayList bots = MessagesStorage.getInstance(currentAccount).getUsers(botIds); + AndroidUtilities.runOnUIThread(() -> { + ArrayList result = new ArrayList<>(); + for (int i = 0; i < bots.size(); ++i) { + result.add(new Bot(bots.get(i), i < botDisabled.size() && botDisabled.get(i))); + } + whenDone.run(result); + }); + }); + } + + public static void toggleBotDisabled( + Context context, + int currentAccount, + long botId, + boolean disabled + ) { + final SharedPreferences prefs = context.getSharedPreferences(PREF + currentAccount, Activity.MODE_PRIVATE); + final SharedPreferences.Editor edit = prefs.edit(); + edit.putBoolean(botId + "_disabled", disabled); + if (!disabled && prefs.getString(String.valueOf(botId), null) == null) { + edit.putString(String.valueOf(botId), ""); + } + edit.apply(); + } + + public static void removeBot( + Context context, + int currentAccount, + long botId + ) { + final SharedPreferences prefs = context.getSharedPreferences(PREF + currentAccount, Activity.MODE_PRIVATE); + final SharedPreferences.Editor edit = prefs.edit(); + edit.remove(String.valueOf(botId)).remove(botId + "_requested"); + edit.apply(); + + try { + if (keyStore == null) { + keyStore = KeyStore.getInstance("AndroidKeyStore"); + keyStore.load(null); + } + keyStore.deleteEntry("bot_" + botId); + keyStore.deleteEntry("2bot_" + botId); + } catch (Exception e) { + FileLog.e(e); + } + } + + public static void clear() { + Context context = ApplicationLoader.applicationContext; + if (context == null) return; + for (int i: SharedConfig.activeAccounts) { + final SharedPreferences prefs = context.getSharedPreferences(PREF + i, Activity.MODE_PRIVATE); + prefs.edit().clear().apply(); + } + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotBiometrySettings.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotBiometrySettings.java new file mode 100644 index 0000000000..05e5770641 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotBiometrySettings.java @@ -0,0 +1,104 @@ +package org.telegram.ui.bots; + +import static org.telegram.messenger.LocaleController.formatPluralString; +import static org.telegram.messenger.LocaleController.getString; + +import android.content.Context; +import android.text.SpannableStringBuilder; +import android.text.Spanned; +import android.view.Gravity; +import android.view.View; +import android.widget.FrameLayout; + +import org.checkerframework.checker.guieffect.qual.UI; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.R; +import org.telegram.messenger.UserObject; +import org.telegram.ui.ActionBar.ActionBar; +import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.ActionBar.BackDrawable; +import org.telegram.ui.ActionBar.BaseFragment; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.AvatarSpan; +import org.telegram.ui.Business.QuickRepliesController; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.UItem; +import org.telegram.ui.Components.UniversalAdapter; +import org.telegram.ui.Components.UniversalRecyclerView; + +import java.util.ArrayList; +import java.util.HashMap; + +public class BotBiometrySettings extends BaseFragment { + + private UniversalRecyclerView listView; + + @Override + public View createView(Context context) { + actionBar.setBackButtonDrawable(new BackDrawable(false)); + actionBar.setAllowOverlayTitle(true); + actionBar.setTitle(getString(R.string.PrivacyBiometryBots)); + actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { + @Override + public void onItemClick(int id) { + if (id == -1) { + finishFragment(); + } + } + }); + + FrameLayout contentView = new FrameLayout(context); + contentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray, resourceProvider)); + + listView = new UniversalRecyclerView(this, this::fillItems, this::onClick, this::onLongClick); + contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.FILL)); + + BotBiometry.getBots(getContext(), currentAccount, bots -> { + biometryBots.clear(); + biometryBots.addAll(bots); + if (listView != null && listView.adapter != null) { + listView.adapter.update(true); + } + }); + + return fragmentView = contentView; + } + + private final ArrayList biometryBots = new ArrayList<>(); + private final HashMap botName = new HashMap<>(); + + private void fillItems(ArrayList items, UniversalAdapter adapter) { + for (int i = 0; i < biometryBots.size(); ++i) { + BotBiometry.Bot bot = biometryBots.get(i); + SpannableStringBuilder name = botName.get(bot); + if (name == null) { + name = new SpannableStringBuilder(); + name.append("a "); + AvatarSpan avatarSpan = new AvatarSpan(null, currentAccount, 24); + avatarSpan.setUser(bot.user); + name.setSpan(avatarSpan, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + name.append(UserObject.getUserName(bot.user)); + botName.put(bot, name); + } + items.add(UItem.asCheck(i, name).setChecked(!bot.disabled)); + } + items.add(UItem.asShadow(LocaleController.getString(R.string.PrivacyBiometryBotsInfo))); + } + + private void onClick(UItem item, View view, int position, float x, float y) { + if (item.viewType == UniversalAdapter.VIEW_TYPE_CHECK) { + if (item.id < 0 || item.id >= biometryBots.size()) return; + BotBiometry.Bot bot = biometryBots.get(item.id); + bot.disabled = !bot.disabled; + BotBiometry.toggleBotDisabled(getContext(), currentAccount, bot.user.id, bot.disabled); + if (listView != null && listView.adapter != null) { + listView.adapter.update(true); + } + } + } + + private boolean onLongClick(UItem item, View view, int position, float x, float y) { + return false; + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BotCommandsMenuContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuContainer.java similarity index 98% rename from TMessagesProj/src/main/java/org/telegram/ui/Components/BotCommandsMenuContainer.java rename to TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuContainer.java index 604c61107b..ea8916b5d8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BotCommandsMenuContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuContainer.java @@ -1,4 +1,4 @@ -package org.telegram.ui.Components; +package org.telegram.ui.bots; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -22,6 +22,8 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.R; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.RecyclerListView; public class BotCommandsMenuContainer extends FrameLayout implements NestedScrollingParent { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BotCommandsMenuView.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuView.java similarity index 96% rename from TMessagesProj/src/main/java/org/telegram/ui/Components/BotCommandsMenuView.java rename to TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuView.java index e0e983c46a..65cd53b3ef 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BotCommandsMenuView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuView.java @@ -1,4 +1,4 @@ -package org.telegram.ui.Components; +package org.telegram.ui.bots; import android.content.Context; import android.graphics.Canvas; @@ -33,6 +33,11 @@ import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.MenuDrawable; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.RLottieDrawable; +import org.telegram.ui.Components.RecyclerListView; +import org.telegram.ui.Components.StaticLayoutEx; import java.util.ArrayList; @@ -61,14 +66,14 @@ protected void invalidateInternal() { invalidate(); } }; - boolean expanded; + public boolean expanded; float expandProgress; private String menuText = LocaleController.getString(R.string.BotsMenuTitle); StaticLayout menuTextLayout; boolean isOpened; - boolean isWebView; + public boolean isWebView; boolean isWebViewOpened; Drawable backgroundDrawable; @@ -193,7 +198,7 @@ protected void dispatchDraw(Canvas canvas) { canvas.save(); canvas.translate(AndroidUtilities.dp(9.5f), AndroidUtilities.dp(6)); RLottieDrawable drawable = webViewAnimation; - drawable.setBounds(0, 0, drawable.width, drawable.height); + drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); drawable.draw(canvas); canvas.restore(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BotKeyboardView.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotKeyboardView.java similarity index 98% rename from TMessagesProj/src/main/java/org/telegram/ui/Components/BotKeyboardView.java rename to TMessagesProj/src/main/java/org/telegram/ui/bots/BotKeyboardView.java index ad9c2d76f4..74bce09965 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BotKeyboardView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotKeyboardView.java @@ -6,7 +6,7 @@ * Copyright Nikolai Kudashov, 2013-2018. */ -package org.telegram.ui.Components; +package org.telegram.ui.bots; import android.content.Context; import android.util.TypedValue; @@ -23,6 +23,8 @@ import org.telegram.messenger.R; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.EmojiTextView; +import org.telegram.ui.Components.LayoutHelper; import java.util.ArrayList; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BotWebViewContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewContainer.java similarity index 90% rename from TMessagesProj/src/main/java/org/telegram/ui/Components/BotWebViewContainer.java rename to TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewContainer.java index 5f6ae1f75a..6c5ab26964 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BotWebViewContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewContainer.java @@ -1,4 +1,4 @@ -package org.telegram.ui.Components; +package org.telegram.ui.bots; import android.Manifest; import android.animation.Animator; @@ -71,10 +71,17 @@ import org.telegram.ui.ActionBar.ActionBar; import org.telegram.ui.ActionBar.ActionBarMenuSubItem; import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.BottomSheet; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.CameraScanActivity; +import org.telegram.ui.Components.AlertsCreator; +import org.telegram.ui.Components.BackupImageView; +import org.telegram.ui.Components.Bulletin; +import org.telegram.ui.Components.BulletinFactory; +import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.voip.CellFlickerDrawable; +import org.telegram.ui.LaunchActivity; import java.io.File; import java.io.UnsupportedEncodingException; @@ -142,6 +149,7 @@ public abstract class BotWebViewContainer extends FrameLayout implements Notific private boolean hasQRPending; private String lastQrText; + private BotBiometry biometry; public BotWebViewContainer(@NonNull Context context, Theme.ResourcesProvider resourcesProvider, int backgroundColor) { super(context); this.resourcesProvider = resourcesProvider; @@ -1119,6 +1127,7 @@ public void didReceivedNotification(int id, int account, Object... args) { builder.setPositiveButton(btn.text, (dialog, which) -> { dialog.dismiss(); try { + lastClickMs = System.currentTimeMillis(); notifyEvent("popup_closed", new JSONObject().put("button_id", btn.id)); notifiedClose.set(true); } catch (JSONException e) { @@ -1132,6 +1141,7 @@ public void didReceivedNotification(int id, int account, Object... args) { builder.setNegativeButton(btn.text, (dialog, which) -> { dialog.dismiss(); try { + lastClickMs = System.currentTimeMillis(); notifyEvent("popup_closed", new JSONObject().put("button_id", btn.id)); notifiedClose.set(true); } catch (JSONException e) { @@ -1145,6 +1155,7 @@ public void didReceivedNotification(int id, int account, Object... args) { builder.setNeutralButton(btn.text, (dialog, which) -> { dialog.dismiss(); try { + lastClickMs = System.currentTimeMillis(); notifyEvent("popup_closed", new JSONObject().put("button_id", btn.id)); notifiedClose.set(true); } catch (JSONException e) { @@ -1606,6 +1617,172 @@ public void didReceivedNotification(int id, int account, Object... args) { }); break; } + case "web_app_biometry_get_info": { + notifyBiometryReceived(); + break; + } + case "web_app_biometry_request_access": { + String reason = null; + try { + JSONObject jsonObject = new JSONObject(eventData); + reason = jsonObject.getString("reason"); + } catch (Exception e) {} + final String finalReason = reason; + createBiometry(); + if (biometry == null) { + return; + } + if (biometry.access_requested && biometry.disabled) { + notifyBiometryReceived(); + return; + } + if (!biometry.access_granted) { + Runnable[] cancel = new Runnable[] {() -> { + biometry.access_requested = true; + biometry.save(); + notifyBiometryReceived(); + }}; + AlertDialog.Builder alert = new AlertDialog.Builder(getContext(), resourcesProvider); + if (TextUtils.isEmpty(reason)) { + alert.setTitle(LocaleController.getString(R.string.BotAllowBiometryTitle)); + alert.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString(R.string.BotAllowBiometryMessage, UserObject.getUserName(botUser)))); + } else { + alert.setTitle(AndroidUtilities.replaceTags(LocaleController.formatString(R.string.BotAllowBiometryMessage, UserObject.getUserName(botUser)))); + alert.setMessage(reason); + } + alert.setPositiveButton(LocaleController.getString(R.string.Allow), (di, w) -> { + if (cancel[0] != null) { + cancel[0] = null; + } + biometry.access_requested = true; + biometry.save(); + biometry.requestToken(null, (status, token) -> { + if (status) { + biometry.access_granted = true; + biometry.save(); + } + notifyBiometryReceived(); + }); + }); + alert.setNegativeButton(LocaleController.getString(R.string.Cancel), (di, w) -> { + if (cancel[0] != null) { + cancel[0] = null; + } + biometry.access_requested = true; + biometry.disabled = true; + biometry.save(); + notifyBiometryReceived(); + }); + alert.setOnDismissListener(di -> { + if (cancel[0] != null) { + cancel[0].run(); + cancel[0] = null; + } + }); + alert.show(); + } else { + if (!biometry.access_requested) { + biometry.access_requested = true; + biometry.save(); + } + notifyBiometryReceived(); + } + break; + } + case "web_app_biometry_request_auth": { + String reason = null; + try { + JSONObject jsonObject = new JSONObject(eventData); + reason = jsonObject.getString("reason"); + } catch (Exception e) {} + createBiometry(); + if (biometry == null) { + return; + } + if (!biometry.access_granted) { + try { + JSONObject auth = new JSONObject(); + auth.put("status", "failed"); + notifyEvent("biometry_auth_requested", auth); + } catch (Exception e) { + FileLog.e(e); + } + return; + } + biometry.requestToken(reason, (status, token) -> { + if (status) { + biometry.access_granted = true; + } + try { + JSONObject auth = new JSONObject(); + auth.put("status", status ? "authorized" : "failed"); + auth.put("token", token); + notifyEvent("biometry_auth_requested", auth); + } catch (Exception e) { + FileLog.e(e); + } + }); + break; + } + case "web_app_biometry_update_token": { + String reason = null; + String token; + try { + JSONObject jsonObject = new JSONObject(eventData); + token = jsonObject.getString("token"); + try { + reason = jsonObject.getString("reason"); + } catch (Exception e2) {} + } catch (Exception e) { + FileLog.e(e); + if (e instanceof JSONException) { + error("JSON Parse error"); + } else { + unknownError(); + } + return; + } + createBiometry(); + if (biometry == null) { + return; + } + if (!biometry.access_granted) { + try { + JSONObject auth = new JSONObject(); + auth.put("status", "failed"); + notifyEvent("biometry_token_updated", auth); + } catch (Exception e) { + FileLog.e(e); + } + return; + } + biometry.updateToken(reason, token, status -> { + try { + JSONObject auth = new JSONObject(); + auth.put("status", status ? (TextUtils.isEmpty(token) ? "removed" : "updated") : "failed"); + notifyEvent("biometry_token_updated", auth); + } catch (Exception e) { + FileLog.e(e); + } + }); + break; + } + case "web_app_biometry_open_settings": { + if (isRequestingPageOpen || System.currentTimeMillis() - lastClickMs > 1000) { + return; + } + + lastClickMs = 0; + + BaseFragment lastFragment = LaunchActivity.getLastFragment(); + if (lastFragment == null) return; + BaseFragment.BottomSheetParams params = new BaseFragment.BottomSheetParams(); + params.transitionFromLeft = true; + params.allowNestedScroll = false; + lastFragment.showAsSheet(new BotBiometrySettings(), params); + + break; + } default: { FileLog.d("unknown webapp event " + eventType); break; @@ -1613,6 +1790,32 @@ public void didReceivedNotification(int id, int account, Object... args) { } } + private void createBiometry() { + if (botUser == null) { + return; + } + if (biometry == null) { + biometry = new BotBiometry(getContext(), currentAccount, botUser.id); + } else { + biometry.load(); + } + } + + private void notifyBiometryReceived() { + if (botUser == null) { + return; + } + createBiometry(); + if (biometry == null) { + return; + } + try { + notifyEvent("biometry_info_received", biometry.getStatus()); + } catch (Exception e) { + FileLog.e(e); + } + } + private void unknownError() { unknownError(null); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BotWebViewMenuContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewMenuContainer.java similarity index 94% rename from TMessagesProj/src/main/java/org/telegram/ui/Components/BotWebViewMenuContainer.java rename to TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewMenuContainer.java index 1d07469c46..377a6f59d9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BotWebViewMenuContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewMenuContainer.java @@ -1,4 +1,4 @@ -package org.telegram.ui.Components; +package org.telegram.ui.bots; import static org.telegram.ui.ActionBar.Theme.key_windowBackgroundWhiteBlackText; @@ -10,6 +10,8 @@ import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; import android.os.Build; import android.os.Bundle; import android.text.Editable; @@ -31,7 +33,6 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.ContactsController; import org.telegram.messenger.DialogObject; -import org.telegram.messenger.FileLog; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaDataController; import org.telegram.messenger.MessageObject; @@ -39,6 +40,7 @@ import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; import org.telegram.messenger.UserObject; +import org.telegram.messenger.browser.Browser; import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; @@ -50,6 +52,11 @@ import org.telegram.ui.ActionBar.INavigationLayout; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ChatActivity; +import org.telegram.ui.Components.ChatActivityEnterView; +import org.telegram.ui.Components.ChatAvatarContainer; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.SimpleFloatPropertyCompat; import org.telegram.ui.DialogsActivity; import java.util.List; @@ -99,6 +106,7 @@ public class BotWebViewMenuContainer extends FrameLayout implements Notification private ActionBarMenuItem botMenuItem; private ActionBar.ActionBarMenuOnItemClick actionBarOnItemClick; private ActionBarMenuSubItem settingsItem; + private ActionBarMenuSubItem addToHomeScreenItem; private Editable savedEditText; private MessageObject savedReplyMessageObject; @@ -144,6 +152,13 @@ private void checkBotMenuItem() { botMenuItem.addSubItem(R.id.menu_reload_page, R.drawable.msg_retry, LocaleController.getString(R.string.BotWebViewReloadPage)); settingsItem = botMenuItem.addSubItem(R.id.menu_settings, R.drawable.msg_settings, LocaleController.getString(R.string.BotWebViewSettings)); settingsItem.setVisibility(View.GONE); + addToHomeScreenItem = botMenuItem.addSubItem(R.id.menu_add_to_home_screen_bot, R.drawable.msg_home, LocaleController.getString(R.string.AddShortcut)); + if (botId != 0 && MediaDataController.getInstance(currentAccount).canCreateAttachedMenuBotShortcut(botId)) { + addToHomeScreenItem.setVisibility(View.VISIBLE); + } else { + addToHomeScreenItem.setVisibility(View.GONE); + } + botMenuItem.addSubItem(R.id.menu_tos_bot, R.drawable.menu_intro, LocaleController.getString(R.string.BotWebViewToS)); } } @@ -256,7 +271,7 @@ public void onWebAppSwitchInlineQuery(TLRPC.User botUser, String query, List PROGRESS_PROPERTY = new SimpleFloatPropertyCompat<>("progress", obj -> obj.progress, ChatActivityBotWebViewButton::setProgress) diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertBotWebViewLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/ChatAttachAlertBotWebViewLayout.java similarity index 96% rename from TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertBotWebViewLayout.java rename to TMessagesProj/src/main/java/org/telegram/ui/bots/ChatAttachAlertBotWebViewLayout.java index 38bfbc1e01..e3d0c5382f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertBotWebViewLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/ChatAttachAlertBotWebViewLayout.java @@ -1,4 +1,4 @@ -package org.telegram.ui.Components; +package org.telegram.ui.bots; import static org.telegram.ui.Components.Bulletin.DURATION_PROLONG; @@ -42,6 +42,7 @@ import org.telegram.messenger.R; import org.telegram.messenger.SendMessagesHelper; import org.telegram.messenger.UserObject; +import org.telegram.messenger.browser.Browser; import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.ActionBar; @@ -52,6 +53,12 @@ import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ChatActivity; +import org.telegram.ui.Components.Bulletin; +import org.telegram.ui.Components.BulletinFactory; +import org.telegram.ui.Components.ChatAttachAlert; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.SimpleFloatPropertyCompat; public class ChatAttachAlertBotWebViewLayout extends ChatAttachAlert.AttachAlertLayout implements NotificationCenter.NotificationCenterDelegate { private final static int POLL_PERIOD = 60000; @@ -74,6 +81,7 @@ public class ChatAttachAlertBotWebViewLayout extends ChatAttachAlert.AttachAlert private WebViewSwipeContainer swipeContainer; private ActionBarMenuItem otherItem; public ActionBarMenuSubItem settingsItem; + private ActionBarMenuSubItem addToHomeScreenItem; private int measureOffsetY; @@ -159,6 +167,10 @@ public void onMenuItemClick(int id) { } } else if (id == R.id.menu_settings) { webViewContainer.onSettingsButtonPressed(); + } else if (id == R.id.menu_add_to_home_screen_bot) { + MediaDataController.getInstance(currentAccount).installShortcut(botId, MediaDataController.SHORTCUT_TYPE_ATTACHED_BOT); + } else if (id == R.id.menu_tos_bot) { + Browser.openUrl(getContext(), LocaleController.getString(R.string.BotWebViewToSLink)); } } @@ -171,6 +183,9 @@ public ChatAttachAlertBotWebViewLayout(ChatAttachAlert alert, Context context, T settingsItem = otherItem.addSubItem(R.id.menu_settings, R.drawable.msg_settings, LocaleController.getString(R.string.BotWebViewSettings)); settingsItem.setVisibility(View.GONE); otherItem.addSubItem(R.id.menu_reload_page, R.drawable.msg_retry, LocaleController.getString(R.string.BotWebViewReloadPage)); + addToHomeScreenItem = otherItem.addSubItem(R.id.menu_add_to_home_screen_bot, R.drawable.msg_home, LocaleController.getString(R.string.AddShortcut)); + addToHomeScreenItem.setVisibility(View.GONE); + otherItem.addSubItem(R.id.menu_tos_bot, R.drawable.menu_intro, LocaleController.getString(R.string.BotWebViewToS)); otherItem.addSubItem(R.id.menu_delete_bot, R.drawable.msg_delete, LocaleController.getString(R.string.BotWebViewDeleteBot)); webViewContainer = new BotWebViewContainer(context, resourcesProvider, getThemedColor(Theme.key_dialogBackground)) { @@ -460,6 +475,13 @@ public void requestWebView(int currentAccount, long peerId, long botId, boolean this.silent = silent; this.replyToMsgId = replyToMsgId; this.startCommand = startCommand; + if (addToHomeScreenItem != null) { + if (MediaDataController.getInstance(currentAccount).canCreateAttachedMenuBotShortcut(botId)) { + addToHomeScreenItem.setVisibility(View.VISIBLE); + } else { + addToHomeScreenItem.setVisibility(View.GONE); + } + } webViewContainer.setBotUser(MessagesController.getInstance(currentAccount).getUser(botId)); webViewContainer.loadFlickerAndSettingsItem(currentAccount, botId, settingsItem); diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/remote/EmojiHelper.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/remote/EmojiHelper.java index 20432d8a39..0ad13f449f 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/remote/EmojiHelper.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/remote/EmojiHelper.java @@ -59,7 +59,7 @@ @SuppressWarnings("ResultOfMethodCallIgnored") public class EmojiHelper extends BaseRemoteHelper implements NotificationCenter.NotificationCenterDelegate { - private static final String EMOJI_TAG = "emoji"; + private static final String EMOJI_TAG = "emojiv1"; private static final String EMOJI_FONT_AOSP = "NotoColorEmoji.ttf"; private static final int EMOJI_COUNT = 3538; private static final String EMOJI_PACKS_FILE_DIR; diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/ui/MessageHelper.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/ui/MessageHelper.java index ddc27d21ca..7e81884816 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/ui/MessageHelper.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/ui/MessageHelper.java @@ -447,6 +447,42 @@ public void saveStickerToGallery(Context context, TLRPC.Document document) { } } + public void addStickerToClipboard(TLRPC.Document document, Runnable callback) { + String path = FileLoader.getInstance(currentAccount).getPathToAttach(document, true).toString(); + + if (TextUtils.isEmpty(path)) { + return; + } + if (MessageObject.isVideoSticker(document)) { + return; + } + File file = new File(path); + if (file.exists()) { + xyz.nextalone.nagram.helper.MessageHelper.INSTANCE.addFileToClipboard(file, callback); + } + } + + public void addStickerToClipboardAsPNG(TLRPC.Document document, Runnable callback) { + String path = FileLoader.getInstance(currentAccount).getPathToAttach(document, true).toString(); + + if (TextUtils.isEmpty(path)) { + return; + } + if (MessageObject.isVideoSticker(document)) { + return; + } + try { + Bitmap image = BitmapFactory.decodeFile(path); + File png = new File(path + ".png"); + FileOutputStream stream = new FileOutputStream(png); + image.compress(Bitmap.CompressFormat.PNG, 100, stream); + stream.close(); + xyz.nextalone.nagram.helper.MessageHelper.INSTANCE.addFileToClipboard(png, callback); + } catch (Exception e) { + FileLog.e(e); + } + } + public MessageObject getMessageForRepeat(MessageObject selectedObject, MessageObject.GroupedMessages selectedObjectGroup) { MessageObject messageObject = null; if (selectedObjectGroup != null && !selectedObjectGroup.isDocuments) { diff --git a/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/StickerSetHelper.kt b/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/StickerSetHelper.kt new file mode 100644 index 0000000000..9603dca815 --- /dev/null +++ b/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/StickerSetHelper.kt @@ -0,0 +1,59 @@ +package xyz.nextalone.nagram.helper + +import android.text.TextUtils +import org.telegram.messenger.AndroidUtilities +import org.telegram.messenger.MediaDataController +import org.telegram.messenger.MessageObject +import org.telegram.messenger.NotificationCenter +import org.telegram.messenger.UserConfig +import org.telegram.tgnet.ConnectionsManager +import org.telegram.tgnet.TLObject +import org.telegram.tgnet.TLRPC.TL_error +import org.telegram.tgnet.TLRPC.TL_inputStickerSetItem +import org.telegram.tgnet.TLRPC.TL_inputUserSelf +import org.telegram.tgnet.TLRPC.TL_messages_stickerSet +import org.telegram.tgnet.TLRPC.TL_stickers_createStickerSet +import org.telegram.ui.Components.BulletinFactory + +object StickerSetHelper { + fun copyStickerSet(shortName: CharSequence, packName: CharSequence, oldStickerSet: TL_messages_stickerSet, currentAccount: Int) { + val stickers = processOldStickerSet(oldStickerSet, currentAccount) + createStickerSet(shortName, packName, stickers, currentAccount) + } + + private fun processOldStickerSet(oldStickerSet: TL_messages_stickerSet, currentAccount: Int): ArrayList { + val stickers = ArrayList() + if (oldStickerSet.documents != null) { + oldStickerSet.documents.forEach { + if (it != null) { + var emoji = MessageObject.findAnimatedEmojiEmoticon(it, "\uD83D\uDE00", currentAccount) + if (TextUtils.isEmpty(emoji)) { + emoji = "\uD83D\uDE00" + } + val sticker = MediaDataController.getInputStickerSetItem(it, emoji) + stickers.add(sticker) + } + } + } + return stickers + } + + private fun createStickerSet(shortName: CharSequence, packName: CharSequence, stickers: ArrayList, currentAccount: Int) { + val req = TL_stickers_createStickerSet() + req.user_id = TL_inputUserSelf() + req.title = packName.toString() + req.short_name = shortName.toString() + req.stickers.addAll(stickers) + ConnectionsManager.getInstance(currentAccount).sendRequest(req) { response: TLObject?, error: TL_error? -> + AndroidUtilities.runOnUIThread { + if (response is TL_messages_stickerSet) { + MediaDataController.getInstance(currentAccount).toggleStickerSet(null, response, 2, null, false, false) + AndroidUtilities.runOnUIThread({ NotificationCenter.getInstance(UserConfig.selectedAccount).postNotificationNameOnUIThread(NotificationCenter.customStickerCreated, false, response) }, 250) + } + if (error != null) { + BulletinFactory.showError(error) + } + } + } + } +} diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_add_sticker.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_add_sticker.png new file mode 100644 index 0000000000..754a068444 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/filled_add_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_chatlink_large.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_chatlink_large.png new file mode 100644 index 0000000000..88a4bf4c63 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/filled_chatlink_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_directions.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_directions.png new file mode 100644 index 0000000000..68c556abed Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/filled_directions.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_chatlink.png new file mode 100644 index 0000000000..b3376a27a0 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_intro.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_intro.png new file mode 100644 index 0000000000..7df7ea74cb Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_username.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_username.png new file mode 100644 index 0000000000..b77d0777f4 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/filled_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_ads_info.png b/TMessagesProj/src/main/res/drawable-hdpi/large_ads_info.png new file mode 100644 index 0000000000..c49a6b53ad Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/large_ads_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_monetize.png b/TMessagesProj/src/main/res/drawable-hdpi/large_monetize.png new file mode 100644 index 0000000000..21f9112717 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/large_monetize.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_username.png b/TMessagesProj/src/main/res/drawable-hdpi/large_username.png new file mode 100644 index 0000000000..2a26b945f0 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/large_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_magic_cut.png b/TMessagesProj/src/main/res/drawable-hdpi/media_magic_cut.png new file mode 100644 index 0000000000..5e38cc04fa Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/media_magic_cut.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_cpm.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_cpm.png new file mode 100644 index 0000000000..d6c0317c6a Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_cpm.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_intro.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_intro.png new file mode 100644 index 0000000000..0d2ac26b8c Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_noads.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_noads.png new file mode 100644 index 0000000000..dcec674633 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_noads.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_split.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_split.png new file mode 100644 index 0000000000..95addc9140 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_split.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_withdrawals.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_withdrawals.png new file mode 100644 index 0000000000..e61cec96e9 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_withdrawals.png differ diff --git a/TMessagesProj_AppStandalone/src/main/res/drawable-hdpi/menu_intro.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_intro.png similarity index 100% rename from TMessagesProj_AppStandalone/src/main/res/drawable-hdpi/menu_intro.png rename to TMessagesProj/src/main/res/drawable-hdpi/menu_intro.png diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_link_create.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_link_create.png new file mode 100644 index 0000000000..d6f24424f8 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_link_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_chatlink.png new file mode 100644 index 0000000000..075dcae643 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_privacy.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_privacy.png new file mode 100644 index 0000000000..299551bebd Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_add.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_add.png new file mode 100644 index 0000000000..f2cf2b02c8 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_select.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_select.png new file mode 100644 index 0000000000..5791ae1f8b Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_more_dots.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_more_dots.png new file mode 100644 index 0000000000..69ac5f9f6a Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/mini_more_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_ton.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_ton.png new file mode 100644 index 0000000000..f2ebb0a972 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/mini_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_add_sticker.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_add_sticker.png new file mode 100644 index 0000000000..87916b8473 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/filled_add_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_chatlink_large.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_chatlink_large.png new file mode 100644 index 0000000000..437f62b437 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/filled_chatlink_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_directions.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_directions.png new file mode 100644 index 0000000000..f26155df32 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/filled_directions.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_chatlink.png new file mode 100644 index 0000000000..34147412a4 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_intro.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_intro.png new file mode 100644 index 0000000000..b7e66ab235 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_username.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_username.png new file mode 100644 index 0000000000..a5c80b4f04 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/filled_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_ads_info.png b/TMessagesProj/src/main/res/drawable-mdpi/large_ads_info.png new file mode 100644 index 0000000000..b9de77b6c8 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/large_ads_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_monetize.png b/TMessagesProj/src/main/res/drawable-mdpi/large_monetize.png new file mode 100644 index 0000000000..f6974a9c5b Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/large_monetize.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_username.png b/TMessagesProj/src/main/res/drawable-mdpi/large_username.png new file mode 100644 index 0000000000..e95e34d28f Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/large_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_magic_cut.png b/TMessagesProj/src/main/res/drawable-mdpi/media_magic_cut.png new file mode 100644 index 0000000000..0e6e2748ae Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/media_magic_cut.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_cpm.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_cpm.png new file mode 100644 index 0000000000..60ef9e761c Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_cpm.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_intro.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_intro.png new file mode 100644 index 0000000000..c32c3ea254 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_noads.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_noads.png new file mode 100644 index 0000000000..020884552c Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_noads.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_split.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_split.png new file mode 100644 index 0000000000..6ccc644902 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_split.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_withdrawals.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_withdrawals.png new file mode 100644 index 0000000000..109cad9d64 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_withdrawals.png differ diff --git a/TMessagesProj_AppStandalone/src/main/res/drawable-mdpi/menu_intro.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_intro.png similarity index 100% rename from TMessagesProj_AppStandalone/src/main/res/drawable-mdpi/menu_intro.png rename to TMessagesProj/src/main/res/drawable-mdpi/menu_intro.png diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_link_create.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_link_create.png new file mode 100644 index 0000000000..e0c640c931 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_link_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_chatlink.png new file mode 100644 index 0000000000..e3b14ac852 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_privacy.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_privacy.png new file mode 100644 index 0000000000..6a811e964c Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_add.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_add.png new file mode 100644 index 0000000000..76cfaecb7b Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_select.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_select.png new file mode 100644 index 0000000000..8066761027 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_more_dots.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_more_dots.png new file mode 100644 index 0000000000..c9bf1221e0 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/mini_more_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_ton.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_ton.png new file mode 100644 index 0000000000..49bd35c279 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/mini_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_add_sticker.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_add_sticker.png new file mode 100644 index 0000000000..a1dd3b5026 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_add_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_chatlink_large.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_chatlink_large.png new file mode 100644 index 0000000000..ddef1ac7b9 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_chatlink_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_directions.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_directions.png new file mode 100644 index 0000000000..5855ce02a6 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_directions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_chatlink.png new file mode 100644 index 0000000000..d82e0ac2c4 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_intro.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_intro.png new file mode 100644 index 0000000000..8e3a9d0a3e Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_username.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_username.png new file mode 100644 index 0000000000..ff060f08c7 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_ads_info.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_ads_info.png new file mode 100644 index 0000000000..e687098105 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/large_ads_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_monetize.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_monetize.png new file mode 100644 index 0000000000..f672d4fbe2 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/large_monetize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_username.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_username.png new file mode 100644 index 0000000000..078ee90c57 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/large_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_magic_cut.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_magic_cut.png new file mode 100644 index 0000000000..0a83d74375 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/media_magic_cut.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_cpm.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_cpm.png new file mode 100644 index 0000000000..5b790290df Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_cpm.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_intro.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_intro.png new file mode 100644 index 0000000000..bc3cea83eb Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_noads.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_noads.png new file mode 100644 index 0000000000..9cf76da401 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_noads.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_split.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_split.png new file mode 100644 index 0000000000..496e4cde26 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_split.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_withdrawals.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_withdrawals.png new file mode 100644 index 0000000000..8518fd9c2a Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_withdrawals.png differ diff --git a/TMessagesProj_AppStandalone/src/main/res/drawable-xhdpi/menu_intro.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_intro.png similarity index 100% rename from TMessagesProj_AppStandalone/src/main/res/drawable-xhdpi/menu_intro.png rename to TMessagesProj/src/main/res/drawable-xhdpi/menu_intro.png diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_link_create.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_link_create.png new file mode 100644 index 0000000000..e2c5c0360f Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_link_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_chatlink.png new file mode 100644 index 0000000000..d034483d2c Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_privacy.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_privacy.png new file mode 100644 index 0000000000..8d5eff6c2c Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_add.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_add.png new file mode 100644 index 0000000000..0de7829c6c Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_select.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_select.png new file mode 100644 index 0000000000..58961d633b Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_more_dots.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_more_dots.png new file mode 100644 index 0000000000..0fff3789b2 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_more_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_ton.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_ton.png new file mode 100644 index 0000000000..265eb21a51 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_add_sticker.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_add_sticker.png new file mode 100644 index 0000000000..c80eed3b81 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_add_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_chatlink_large.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_chatlink_large.png new file mode 100644 index 0000000000..9783dac50a Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_chatlink_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_directions.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_directions.png new file mode 100644 index 0000000000..eaf9484e19 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_directions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_chatlink.png new file mode 100644 index 0000000000..b149a6f6ba Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_intro.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_intro.png new file mode 100644 index 0000000000..e15fe4b278 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_username.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_username.png new file mode 100644 index 0000000000..842a9e2dcc Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_ads_info.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_ads_info.png new file mode 100644 index 0000000000..09cead34d4 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_ads_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_monetize.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_monetize.png new file mode 100644 index 0000000000..06e019d3b2 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_monetize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_username.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_username.png new file mode 100644 index 0000000000..9dbe1af0f2 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_magic_cut.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_magic_cut.png new file mode 100644 index 0000000000..a123d28d70 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_magic_cut.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_cpm.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_cpm.png new file mode 100644 index 0000000000..5bfd721c9e Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_cpm.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_intro.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_intro.png new file mode 100644 index 0000000000..24d3f0aa03 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_noads.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_noads.png new file mode 100644 index 0000000000..49862e4f83 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_noads.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_split.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_split.png new file mode 100644 index 0000000000..db36d1baaa Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_split.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_withdrawals.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_withdrawals.png new file mode 100644 index 0000000000..565f1f82be Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_withdrawals.png differ diff --git a/TMessagesProj_AppStandalone/src/main/res/drawable-xxhdpi/menu_intro.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_intro.png similarity index 100% rename from TMessagesProj_AppStandalone/src/main/res/drawable-xxhdpi/menu_intro.png rename to TMessagesProj/src/main/res/drawable-xxhdpi/menu_intro.png diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_link_create.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_link_create.png new file mode 100644 index 0000000000..96054886c1 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_link_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_chatlink.png new file mode 100644 index 0000000000..96615b318d Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_privacy.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_privacy.png new file mode 100644 index 0000000000..9f52728665 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_add.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_add.png new file mode 100644 index 0000000000..2ff86bb8fb Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_select.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_select.png new file mode 100644 index 0000000000..7dd129288e Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_more_dots.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_more_dots.png new file mode 100644 index 0000000000..eeb470c99c Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_more_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_ton.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_ton.png new file mode 100644 index 0000000000..feff77a7dd Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable/ic_filter_list.xml b/TMessagesProj/src/main/res/drawable/ic_filter_list.xml new file mode 100644 index 0000000000..fc4c7f8a8f --- /dev/null +++ b/TMessagesProj/src/main/res/drawable/ic_filter_list.xml @@ -0,0 +1,9 @@ + + + diff --git a/TMessagesProj/src/main/res/drawable/ton.xml b/TMessagesProj/src/main/res/drawable/ton.xml new file mode 100644 index 0000000000..7b0eef4013 --- /dev/null +++ b/TMessagesProj/src/main/res/drawable/ton.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/biz_links.json b/TMessagesProj/src/main/res/raw/biz_links.json new file mode 100644 index 0000000000..156b24c7a2 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/biz_links.json @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":125,"w":512,"h":512,"nm":"Link in Bubble","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"NULL LINK 2","parent":9,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":38,"s":[-14]},{"t":46,"s":[0]}]},"p":{"a":0,"k":[254,226.5,0]},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":38,"s":[37,37,100]},{"i":{"x":[0.7,0.7,0.7],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.5],"y":[0,0,0]},"t":46,"s":[51.923,50,100]},{"i":{"x":[0.7,0.7,0.7],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":57,"s":[39,39,100]},{"i":{"x":[0.7,0.7,0.7],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":69,"s":[47,47,100]},{"i":{"x":[0.7,0.7,0.7],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":83,"s":[42,42,100]},{"t":100,"s":[44,44,100]}]}},"ao":0,"ip":38,"op":182,"st":2,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Cover Link 2","parent":4,"sr":1,"ks":{"r":{"a":0,"k":-45},"p":{"a":0,"k":[249.572,229.153,0]},"a":{"a":0,"k":[299.879,302.591,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0.23,37.05],[7.53,17.366]],"o":[[-0.152,-24.502],[-7.92,-18.265]],"v":[[27.769,-53.825],[19.958,-116.707]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[5.919,36.188],[12.208,5.059]],"o":[[-5.405,-28.467],[-7.61,-7.16]],"v":[[48.236,-72.136],[30.03,-127.659]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[2.774,36.81],[40.296,-19.616]],"o":[[-1.095,-56.34],[-17.736,6.511]],"v":[[55.416,-74.099],[-16.862,-144.939]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[9.712,35.614],[35.839,-26.909]],"o":[[-11.772,-55.107],[-16.177,9.76]],"v":[[60.601,-82.74],[-25.651,-136.944]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[11.608,35.327],[41.5,-35.765]],"o":[[-10.657,-32.433],[-17.829,15.365]],"v":[[61.987,-104.972],[-30.073,-137.282]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[11.608,35.327],[30.025,-26.253]],"o":[[-10.657,-32.433],[-17.718,15.492]],"v":[[61.987,-104.972],[-16.242,-145.552]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[20.038,31.324],[25.066,0.514]],"o":[[-17.83,-27.872],[-23.531,-0.483]],"v":[[70.955,-103.478],[4.417,-149.286]],"c":false}]},{"t":66,"s":[{"i":[[13.9,23.591],[13.449,8.672]],"o":[[-9.192,-15.601],[-17.207,-11.095]],"v":[[93.096,-94.997],[58.772,-131.374]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.662745118141,0.585888981819,0.483414083719,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.843,325.871]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Strk 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-2.061,21.45],[-19.028,22.898]],"o":[[0.887,-9.235],[5.468,-6.58]],"v":[[-31.873,-33.15],[-13.753,-119.939]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[-0.035,22.006],[0.235,-5.192]],"o":[[-0.413,-14.333],[-2.302,-4.694]],"v":[[0.658,-36.119],[29.092,-113.088]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-2.957,22.219],[24.384,-27.235]],"o":[[2.109,-17.651],[-6.726,-5.271]],"v":[[7.526,-42.695],[-21.702,-96.948]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[1.315,22.377],[18.769,-31.369]],"o":[[-1.28,-17.731],[-7.605,-3.898]],"v":[[17.706,-41.19],[-21.291,-88.907]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[1.99,22.562],[13.349,4.391]],"o":[[-1.714,-19.43],[-10.22,-3.362]],"v":[[36.596,-55.813],[3.754,-106.857]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[1.99,22.562],[13.349,4.391]],"o":[[-1.714,-19.43],[-10.22,-3.362]],"v":[[29.541,-56.214],[3.754,-106.857]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[2.899,22.463],[13.349,4.391]],"o":[[-3.095,-23.984],[-10.22,-3.362]],"v":[[42.993,-54.975],[6.078,-112.202]],"c":false}]},{"t":66,"s":[{"i":[[8.04,19.241],[15.777,7.794]],"o":[[-6.924,-16.57],[-8.817,-4.356]],"v":[[64.84,-63.573],[31.458,-101.777]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.211764723063,0.200000017881,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7.5},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.843,325.871]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Strk 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-0.474,4.02],[-12.28,32.076],[19.905,-7.422],[-2.147,-28.209]],"o":[[1.636,-31.189],[1.616,-8.404],[-8.928,24.312],[3.445,0.614]],"v":[[-10.147,-35.314],[-3.674,-109.342],[-16.825,-116.435],[-29.49,-30.681]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[-0.124,6.092],[0.598,7.942],[3.589,-0.563],[12.006,-45.307]],"o":[[-0.306,-23.651],[-0.835,-2.731],[3.464,-7.27],[2.596,-1.648]],"v":[[19.629,-40.227],[19.303,-91.479],[18.411,-93.158],[3.489,-35.051]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-1.853,10.639],[31.742,-35.712],[1.858,-5.432],[-6.45,-32.375]],"o":[[-0.25,-56.475],[-1.367,-0.75],[34.627,-40.743],[1.781,4.84]],"v":[[27.055,-47.648],[-31.64,-118.338],[-30.732,-87.192],[10.571,-41.93]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.2,10.798],[23.825,-36.813],[0.793,-5.686],[-12.48,-30.562]],"o":[[-2.495,-32.698],[-1.485,-0.477],[26.262,-46.576],[2.668,4.414]],"v":[[35.933,-49.799],[-32.18,-113.322],[-29.516,-79.098],[20.834,-41.055]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0.227,8.164],[43.793,-25.995],[-3.03,-5.339],[-14.547,-31.032]],"o":[[-0.792,-17.982],[-2.105,1.109],[30.638,-32.101],[1.747,-3.91]],"v":[[44.151,-68.79],[-31.337,-122.859],[-26.166,-95.414],[39.874,-56.144]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0.227,8.164],[33.134,-8.952],[-3.03,-5.339],[-14.547,-31.032]],"o":[[-3.92,-21.771],[-2.105,1.109],[26.921,-8.088],[1.181,9.446]],"v":[[47.005,-62.844],[-10.111,-139.12],[-9.129,-115.936],[32.819,-56.546]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0.227,8.164],[20.188,3.776],[1.443,-6.775],[-15.32,-40.121]],"o":[[-11.646,-32.085],[-2.105,1.109],[20.448,-1.962],[1.747,-3.91]],"v":[[58.638,-73.722],[1.969,-135.936],[-6.374,-117.574],[47.799,-56.622]],"c":true}]},{"t":66,"s":[{"i":[[-1.875,5.625],[10.175,5.812],[3.231,-4.464],[-7.858,-21.526]],"o":[[-9.187,-24.25],[-4.7,5.625],[18.918,9.814],[2.804,-2.462]],"v":[[83,-76],[44.7,-123],[33.769,-109.911],[73.446,-61.413]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.996,326.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Whte","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-5.335,-14.36],[2.526,-27.816],[-1.369,3.376],[55.146,-24.546]],"o":[[9.863,28.671],[-0.182,2.001],[0.396,-25.825],[15.487,-4.379]],"v":[[13.108,-8.292],[17.34,57.154],[27.393,46.413],[-17.414,-17.183]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[-3.491,-6.929],[-2.997,-39.048],[-0.351,3.552],[8.691,1.002]],"o":[[4.269,4.528],[0.079,2],[-6.671,-31.796],[3.722,1.952]],"v":[[29.888,-20.893],[43.721,39.776],[48.214,28.057],[31.974,-27.67]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-2.128,-2.883],[3.994,-69.277],[-0.374,3.665],[46.489,-28.866]],"o":[[35.074,-25.763],[-0.132,2.011],[-3.034,-62.211],[1.793,-0.196]],"v":[[-23.286,-30.073],[49.11,38.06],[55.406,26.121],[-21.592,-42.027]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-2.636,-2.426],[-9.231,-68.775],[0.328,3.67],[40.163,-37.167]],"o":[[29.545,-31.954],[0.252,2],[-14.375,-65.017],[1.723,-0.532]],"v":[[-28.952,-21.185],[55.064,31.964],[60.816,17.422],[-29.558,-33.243]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-2.097,-0.04],[-8.521,-50.279],[0.668,3.728],[37.166,-39.692]],"o":[[25.587,-26.085],[0.339,1.999],[-13.739,-37.767],[3.845,0.447]],"v":[[-24.521,-35.882],[57.427,10.477],[62.32,-4.825],[-31.987,-36.455]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-2.097,-0.04],[-8.521,-50.279],[0.668,3.728],[25.801,-27.934]],"o":[[25.587,-26.085],[0.339,1.999],[-13.739,-37.767],[3.845,0.447]],"v":[[-10.689,-44.152],[58.778,12.664],[61.58,-0.73],[-18.155,-44.725]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[-0.934,-1.878],[-14.346,-30.902],[0.668,3.728],[24.189,-0.431]],"o":[[12.306,-0.639],[0.854,1.839],[-18.032,-30.133],[1.381,3.616]],"v":[[4.76,-44.065],[66.648,10.703],[71.289,-3.332],[1.817,-50.951]],"c":true}]},{"t":66,"s":[{"i":[[0.518,-1.441],[-7.44,-18.663],[-0.277,2.64],[16.232,9.781]],"o":[[13.234,9.941],[0.535,1.343],[-9.071,-16.64],[-1.336,2.602]],"v":[[52.607,-25.309],[83.833,16.842],[93.152,4.86],[57.086,-33.727]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.816,0.702,0.553,0.5,0.816,0.702,0.553,1,0.816,0.702,0.553,0.475,1,0.737,0.5,1,0]}},"s":{"a":0,"k":[86,-16]},"e":{"a":0,"k":[73.5,2.5]},"t":1,"nm":"Gradient_Js36NDBEHR","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.435,0.239,0.271,0.5,0.435,0.239,0.271,1,0.435,0.239,0.271,0.918,1,0.959,0.56,1,0.12]}},"s":{"a":0,"k":[-9.5,79]},"e":{"a":0,"k":[107.5,125]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_037PszTUQU","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[256,256]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shad grad","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-6.341,7.042],[3.118,15.411],[6.055,-14.959],[-2.4,-51.652]],"o":[[2.58,-33.424],[-3.188,-12.768],[-8.09,31.6],[9.298,-2.605]],"v":[[27.347,-47.558],[22.593,-113.258],[-21.635,-109.372],[-31.921,-33.494]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[-4.059,8.595],[6.986,-4.989],[-3.176,-9.609],[20.09,-50.575]],"o":[[-4.813,-36.272],[-0.049,-0.805],[-11.664,7.033],[17.929,-0.616]],"v":[[47.89,-68.261],[29.667,-123.62],[33.359,-112.698],[0.501,-36.486]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-4.319,8.974],[36.754,-36.291],[-4.192,-11.834],[-1.151,-24.093]],"o":[[0.584,-64.624],[1.516,6.636],[4.049,20.743],[16.519,6.114]],"v":[[54.692,-71.878],[-25.396,-136.209],[2.496,-109.59],[7.371,-43.073]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-2.537,9.631],[29.195,-42.609],[-6.362,-10.822],[-5.704,-23.436]],"o":[[-11.696,-63.56],[2.749,6.227],[7.914,19.597],[7.369,-7.504]],"v":[[60.305,-80.46],[-32.378,-126.791],[0.061,-105.952],[17.476,-41.57]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-1.776,10.148],[30.954,-32.175],[5.251,-10.692],[-12.492,-22.352]],"o":[[-12.206,-39.121],[3.936,10.027],[17.858,7.981],[6.983,-8.484]],"v":[[61.716,-103.489],[-29.432,-137.914],[4.4,-105.268],[36.33,-56.2]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-0.287,34.156],[22.451,-23.195],[5.251,-10.692],[-12.492,-22.352]],"o":[[-12.206,-39.121],[3.936,10.027],[17.858,7.981],[6.983,-8.484]],"v":[[61.716,-103.489],[-15.6,-146.184],[4.4,-105.268],[29.275,-56.602]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[-1.776,10.148],[14.514,-1.544],[1.271,-10.685],[-5.392,-29.063]],"o":[[-18.467,-38.127],[-1.927,11.622],[17.858,7.981],[6.983,-8.484]],"v":[[70.685,-101.996],[5.178,-148.822],[6.724,-110.613],[42.727,-55.363]],"c":true}]},{"t":66,"s":[{"i":[[-4.445,6.735],[4.952,3.085],[8.154,-6.673],[-7.056,-16.887]],"o":[[-9.445,-22.265],[-3.423,6.46],[16.277,7.706],[9.362,-4.942]],"v":[[92.445,-93.985],[59.048,-130.71],[31.721,-100.577],[63.638,-65.308]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.505882382393,0.643137276173,0.800000071526,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.996,326.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Fill","bm":0,"hd":false}],"ip":38,"op":182,"st":2,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"LINK R 2","parent":1,"sr":1,"ks":{"r":{"a":0,"k":45},"p":{"a":0,"k":[69.85,-70.136,0]},"a":{"a":0,"k":[767.798,251.015,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-1.453,2.994],[-1.804,-6.225],[-29.694,-19],[1.905,5.5]],"o":[[1.376,20.474],[-0.866,0.958],[-33.965,-1.125],[51.574,23.582]],"v":[[781.355,308.857],[784.85,347.025],[770.305,402.875],[722.019,347.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[-1.066,2.994],[-0.027,-5.396],[-26.193,-19],[1.398,5.5]],"o":[[1.01,20.474],[-0.013,0.831],[-29.959,-1.125],[40.735,38.021]],"v":[[804.238,314.499],[806.386,333.935],[770.591,402.875],[747.335,345.031]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[1.108,2.994],[0.028,-5.396],[-42.254,-25.87],[-1.453,5.5]],"o":[[-1.05,20.474],[0.013,0.831],[31.145,-1.125],[-42.347,38.021]],"v":[[748.544,314.499],[746.311,333.935],[783.524,402.875],[807.7,345.031]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[4.468,3.042],[4.501,-5.796],[32.389,-19],[-2.134,5.5]],"o":[[-3.699,20.8],[2.25,0.892],[37.047,-1.125],[-27.414,20.225]],"v":[[777.617,313.458],[763.669,340.295],[778.811,402.875],[825.636,345.97]],"c":true}]},{"t":70,"s":[{"i":[[11,3.125],[13,-6.5],[56.5,-19],[-3.625,5.5]],"o":[[-8.875,21.375],[6.5,1],[64.625,-1.125],[-4.875,-11.125]],"v":[[829.25,311.625],[792.75,351.5],[772.375,402.875],[864.25,347.625]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219607858097,0.239215701234,0.254901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":40},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[33.438,0],[0,99.837],[-33.438,0],[0,-99.837]],"o":[[-33.438,0],[0,-99.837],[33.438,0],[0,99.837]],"v":[[5.676,147.947],[-54.869,0],[5.676,-147.947],[66.221,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[29.495,0],[0,99.837],[-30.345,0],[0,-99.837]],"o":[[-29.495,0],[0,-99.837],[30.345,0],[0,99.837]],"v":[[5.646,147.947],[-23.926,-4.751],[6.339,-147.947],[40.284,2.858]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-30.662,0],[0,99.837],[31.546,0],[0,-99.837]],"o":[[30.662,0],[0,-99.837],[-31.546,0],[0,99.837]],"v":[[13.779,147.947],[44.521,-4.751],[13.059,-147.947],[-22.229,2.858]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-36.473,0],[0,99.837],[37.08,0],[0,-99.837]],"o":[[36.473,0],[0,-99.837],[-37.08,0],[0,99.837]],"v":[[8.602,147.947],[67.136,-3.031],[4.243,-147.532],[-52.902,1.823]],"c":true}]},{"t":70,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":39.1},"e":{"a":0,"k":46.4},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.662745118141,0.585888981819,0.483414083719,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[33.438,0],[0,99.837],[-33.438,0],[0,-99.837]],"o":[[-33.438,0],[0,-99.837],[33.438,0],[0,99.837]],"v":[[5.676,147.947],[-54.869,0],[5.676,-147.947],[66.221,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[29.495,0],[0,99.837],[-30.345,0],[0,-99.837]],"o":[[-29.495,0],[0,-99.837],[30.345,0],[0,99.837]],"v":[[5.646,147.947],[-23.926,-4.751],[6.339,-147.947],[40.284,2.858]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-30.662,0],[0,99.837],[31.546,0],[0,-99.837]],"o":[[30.662,0],[0,-99.837],[-31.546,0],[0,99.837]],"v":[[13.779,147.947],[44.521,-4.751],[13.059,-147.947],[-22.229,2.858]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-36.473,0],[0,99.837],[37.08,0],[0,-99.837]],"o":[[36.473,0],[0,-99.837],[-37.08,0],[0,99.837]],"v":[[8.602,147.947],[67.136,-3.031],[4.243,-147.532],[-52.902,1.823]],"c":true}]},{"t":70,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":46.6},"e":{"a":0,"k":83.8},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.23667819798,0.439364284277,0.635294139385,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[33.438,0],[0,99.837],[-33.438,0],[0,-99.837]],"o":[[-33.438,0],[0,-99.837],[33.438,0],[0,99.837]],"v":[[5.676,147.947],[-54.869,0],[5.676,-147.947],[66.221,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[29.495,0],[0,99.837],[-30.345,0],[0,-99.837]],"o":[[-29.495,0],[0,-99.837],[30.345,0],[0,99.837]],"v":[[5.646,147.947],[-23.926,-4.751],[6.339,-147.947],[40.284,2.858]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-30.662,0],[0,99.837],[31.546,0],[0,-99.837]],"o":[[30.662,0],[0,-99.837],[-31.546,0],[0,99.837]],"v":[[13.779,147.947],[44.521,-4.751],[13.059,-147.947],[-22.229,2.858]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-36.473,0],[0,99.837],[37.08,0],[0,-99.837]],"o":[[36.473,0],[0,-99.837],[-37.08,0],[0,99.837]],"v":[[8.602,147.947],[67.136,-3.031],[4.243,-147.532],[-52.902,1.823]],"c":true}]},{"t":70,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":75.5},"e":{"a":0,"k":95.6},"o":{"a":0,"k":63},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.211764723063,0.200000017881,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[33.438,0],[0,99.837],[-33.438,0],[0,-99.837]],"o":[[-33.438,0],[0,-99.837],[33.438,0],[0,99.837]],"v":[[5.676,147.947],[-54.869,0],[5.676,-147.947],[66.221,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[29.495,0],[0,99.837],[-30.345,0],[0,-99.837]],"o":[[-29.495,0],[0,-99.837],[30.345,0],[0,99.837]],"v":[[5.646,147.947],[-23.926,-4.751],[6.339,-147.947],[40.284,2.858]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-30.662,0],[0,99.837],[31.546,0],[0,-99.837]],"o":[[30.662,0],[0,-99.837],[-31.546,0],[0,99.837]],"v":[[13.779,147.947],[44.521,-4.751],[13.059,-147.947],[-22.229,2.858]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-36.473,0],[0,99.837],[37.08,0],[0,-99.837]],"o":[[36.473,0],[0,-99.837],[-37.08,0],[0,99.837]],"v":[[8.602,147.947],[67.136,-3.031],[4.243,-147.532],[-52.902,1.823]],"c":true}]},{"t":70,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.423529446125,0.427451014519,0.415686309338,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[767.298,251.015]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 111","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[8.008,-0.004],[0.428,48.036],[-8.008,0.004],[-0.428,-48.037]],"o":[[-8.008,0.004],[-0.428,-48.037],[8.008,-0.004],[0.428,48.037]],"v":[[20.477,103.781],[0.266,4.3],[15.483,-102.313],[36.538,0.366]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0.118,-0.003],[0.006,41.636],[-0.118,0.003],[-0.006,-41.636]],"o":[[-0.118,0.003],[-0.006,-41.636],[0.118,-0.003],[0.006,41.636]],"v":[[38.639,89.656],[38.34,3.43],[36.055,-87.294],[38.877,0.02]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-0.123,-0.003],[-0.007,41.636],[0.123,0.003],[0.007,-41.636]],"o":[[0.123,0.003],[0.007,-41.636],[-0.123,-0.003],[-0.007,41.636]],"v":[[-21.539,89.656],[-21.229,3.43],[-18.853,-87.294],[-21.786,0.02]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-12.526,-0.002],[-0.004,44.718],[16.165,0.002],[0.004,-44.718]],"o":[[12.526,0.002],[0.004,-44.718],[-16.165,-0.002],[-0.004,44.718]],"v":[[-4.68,96.516],[17.134,2.259],[-5.115,-95.009],[-24.085,-0.571]],"c":true}]},{"t":70,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":9.1},"e":{"a":0,"k":38.5},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294133425,0.4392157197,0.635294139385,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[8.008,-0.004],[0.428,48.036],[-8.008,0.004],[-0.428,-48.037]],"o":[[-8.008,0.004],[-0.428,-48.037],[8.008,-0.004],[0.428,48.037]],"v":[[20.477,103.781],[0.266,4.3],[15.483,-102.313],[36.538,0.366]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0.118,-0.003],[0.006,41.636],[-0.118,0.003],[-0.006,-41.636]],"o":[[-0.118,0.003],[-0.006,-41.636],[0.118,-0.003],[0.006,41.636]],"v":[[38.639,89.656],[38.34,3.43],[36.055,-87.294],[38.877,0.02]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-0.123,-0.003],[-0.007,41.636],[0.123,0.003],[0.007,-41.636]],"o":[[0.123,0.003],[0.007,-41.636],[-0.123,-0.003],[-0.007,41.636]],"v":[[-21.539,89.656],[-21.229,3.43],[-18.853,-87.294],[-21.786,0.02]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-12.526,-0.002],[-0.004,44.718],[16.165,0.002],[0.004,-44.718]],"o":[[12.526,0.002],[0.004,-44.718],[-16.165,-0.002],[-0.004,44.718]],"v":[[-4.68,96.516],[17.134,2.259],[-5.115,-95.009],[-24.085,-0.571]],"c":true}]},{"t":70,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":58.1},"e":{"a":0,"k":94.4},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.423529446125,0.427451014519,0.415686309338,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[8.008,-0.004],[0.428,48.036],[-8.008,0.004],[-0.428,-48.037]],"o":[[-8.008,0.004],[-0.428,-48.037],[8.008,-0.004],[0.428,48.037]],"v":[[20.477,103.781],[0.266,4.3],[15.483,-102.313],[36.538,0.366]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0.118,-0.003],[0.006,41.636],[-0.118,0.003],[-0.006,-41.636]],"o":[[-0.118,0.003],[-0.006,-41.636],[0.118,-0.003],[0.006,41.636]],"v":[[38.639,89.656],[38.34,3.43],[36.055,-87.294],[38.877,0.02]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-0.123,-0.003],[-0.007,41.636],[0.123,0.003],[0.007,-41.636]],"o":[[0.123,0.003],[0.007,-41.636],[-0.123,-0.003],[-0.007,41.636]],"v":[[-21.539,89.656],[-21.229,3.43],[-18.853,-87.294],[-21.786,0.02]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-12.526,-0.002],[-0.004,44.718],[16.165,0.002],[0.004,-44.718]],"o":[[12.526,0.002],[0.004,-44.718],[-16.165,-0.002],[-0.004,44.718]],"v":[[-4.68,96.516],[17.134,2.259],[-5.115,-95.009],[-24.085,-0.571]],"c":true}]},{"t":70,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.211764723063,0.200000017881,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[767.798,251.015]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 110","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[5.337,-41.764],[-10.867,-33.78],[-0.116,1.32],[-8.138,48.625]],"o":[[-4.898,38.33],[1.082,-3.98],[-3.452,-36.335],[3.819,-22.817]],"v":[[-87.948,-88.009],[-86.146,66.477],[-88.741,78.408],[-91.882,-90.359]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0.079,-36.199],[-0.161,-29.279],[0.002,1.144],[-0.12,42.146]],"o":[[-0.072,33.222],[0.016,-3.45],[-0.051,-31.493],[0.056,-19.777]],"v":[[-59.096,-77.672],[-59.069,56.23],[-59.107,66.571],[-59.154,-79.708]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-0.082,-36.199],[0.167,-29.279],[-0.002,1.144],[0.125,42.146]],"o":[[0.075,33.222],[-0.017,-3.45],[0.053,-31.493],[-0.059,-19.777]],"v":[[-118.947,-77.672],[-118.975,56.23],[-118.935,66.571],[-118.886,-79.708]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-6.137,-37.963],[7.234,-30.909],[0.326,1.229],[5.417,44.492]],"o":[[7.734,39.975],[-0.72,-3.642],[8.056,-33.826],[-2.542,-20.878]],"v":[[-75.258,-77.098],[-79.138,69.134],[-80.761,72.327],[-76.497,-77.877]],"c":true}]},{"t":70,"s":[{"i":[[-17.647,-41.07],[20.676,-33.78],[0.949,1.378],[15.484,48.625]],"o":[[22.288,51.87],[-2.059,-3.98],[23.261,-37.935],[-7.266,-22.817]],"v":[[3.839,-76.089],[-7.36,91.865],[-12.133,82.466],[0.144,-74.651]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.21960785985,0.239215701818,0.254901975393,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[865.372,259.218]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 9","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-0.298,48.986],[13.272,-0.007],[-0.709,-79.51],[-2.281,-25.859],[-0.671,5.385],[0.215,24.182],[-8.228,0.004],[-0.768,-44.707],[3.669,-40.223]],"o":[[0.141,-23.184],[-6.632,0.003],[0.087,9.71],[0.628,-5.027],[-1.795,-22.632],[-0.541,-60.749],[7.534,-0.004],[0.31,34.796],[-0.516,5.654]],"v":[[41.972,53.24],[23.767,-92.963],[6.222,29.649],[20.059,110.376],[21.267,100.922],[7.949,29.087],[24.489,-77.894],[45.607,21.01],[36.299,117.759]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[-0.004,42.459],[0.196,-0.006],[-0.01,-68.915],[-0.034,-22.414],[-0.01,4.668],[0.003,20.959],[-0.122,0.004],[-0.006,-38.75],[0.054,-34.864]],"o":[[0.002,-20.095],[-0.098,0.003],[0.001,8.416],[0.009,-4.357],[-0.027,-19.616],[-0.008,-52.654],[0.111,-0.003],[0.005,30.16],[-0.008,4.9]],"v":[[47.929,49.547],[44.481,-65.03],[47.4,29.099],[47.604,99.07],[47.622,90.875],[47.425,28.612],[45.318,-61.774],[47.982,21.612],[47.845,105.468]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0.005,42.459],[-0.204,-0.006],[0.011,-68.915],[0.035,-22.414],[0.01,4.668],[-0.003,20.959],[0.127,0.004],[0.006,-38.75],[-0.056,-34.864]],"o":[[-0.002,-20.095],[0.102,0.003],[-0.001,8.416],[-0.01,-4.357],[0.028,-19.616],[0.008,-52.654],[-0.116,-0.003],[-0.005,30.16],[0.008,4.9]],"v":[[-12.624,49.547],[-9.04,-65.03],[-12.074,29.099],[-12.287,99.07],[-12.305,90.875],[-12.101,28.612],[-9.91,-61.774],[-12.68,21.612],[-12.537,105.468]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[1.887,45.602],[-26.379,4.696],[-2.469,-85.193],[5.28,-24.074],[1.852,5.013],[-0.002,22.511],[16.61,0.002],[0.952,-41.619],[-10.364,-37.444]],"o":[[-0.893,-21.583],[18.117,-3.225],[0.262,9.035],[-1.732,-4.68],[4.105,-21.069],[0.005,-56.553],[-15.209,-0.002],[-0.003,32.393],[1.457,5.263]],"v":[[-17.845,50.791],[6.237,-74.913],[33.468,24.494],[28.863,114.381],[21.546,95.76],[29.834,27.25],[4.054,-69.94],[-15.045,20.564],[-10.339,108.176]],"c":true}]},{"t":70,"s":[{"i":[[5.462,51.14],[-98.688,0],[0,-83.007],[15.245,-26.998],[5.351,5.622],[0,25.245],[61.179,0],[2.748,-46.673],[-29.946,-41.99]],"o":[[-2.585,-24.204],[49.312,0],[0,10.137],[-5.005,-5.248],[11.851,-23.628],[0,-63.421],[-56.02,0],[0,36.327],[4.209,5.902]],"v":[[-75.154,54.595],[13.996,-100.06],[108.222,25.242],[91.563,114.233],[81.957,104.364],[95.34,24.656],[9.629,-84.327],[-66.94,20.332],[-41.746,121.975]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.73,1,1,1,0.865,0.61,0.62,0.627,1,0.22,0.239,0.255]}},"s":{"a":0,"k":[156,38]},"e":{"a":0,"k":[52,-47]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_6huIHsZWBe","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[758.692,223.265]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 112","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[8.426,-0.004],[0.277,-2.478],[-2.678,-0.153],[-1.305,60.476],[17.98,-3.287],[0.185,-54.552],[-11.135,-44.334],[-0.116,1.32],[0.133,47.866],[-6.26,0.003],[-0.598,-67.134]],"o":[[-4.451,0.002],[-0.399,3.566],[4.991,0.284],[0.35,-16.23],[-8.467,1.548],[-0.155,45.633],[1.082,-1.88],[-0.808,-14.08],[-0.144,-52.009],[9.038,-0.005],[0.532,59.749]],"v":[[13.074,117.659],[7.092,113.425],[13.663,124.943],[27.445,43.164],[6.195,-125.716],[-12.27,-29.312],[4.795,83.856],[4.704,79.446],[-9.239,-6.958],[7.195,-111.361],[30.482,-2.829]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0.125,-0.004],[0.004,-2.147],[-0.04,-0.132],[-0.019,52.417],[0.266,-2.849],[0.003,-47.283],[-0.165,-38.426],[0.001,1.145],[0.002,41.488],[-0.093,0.003],[-0.009,-58.188]],"o":[[-0.066,0.002],[-0.006,3.091],[0.074,0.246],[0.005,-14.067],[-0.125,1.341],[-0.002,39.553],[0.016,-1.629],[-0.012,-12.204],[-0.002,-45.079],[0.134,-0.004],[0.008,51.787]],"v":[[31.812,102.015],[31.723,98.346],[29.46,107.667],[32.024,37.447],[28.723,-89.305],[31.437,-25.372],[31.689,72.717],[31.688,68.894],[31.482,-5.996],[29.039,-88.917],[32.069,-2.418]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-0.13,-0.004],[-0.004,-2.147],[0.041,-0.132],[0.02,52.417],[-0.276,-2.849],[-0.003,-47.283],[0.171,-38.426],[-0.001,1.145],[-0.002,41.488],[0.096,0.003],[0.009,-58.188]],"o":[[0.068,0.002],[0.006,3.091],[-0.077,0.246],[-0.005,-14.067],[0.13,1.341],[0.002,39.553],[-0.017,-1.629],[0.012,-12.204],[0.002,-45.079],[-0.139,-0.004],[-0.008,51.787]],"v":[[-28.349,102.015],[-28.257,98.346],[-25.904,107.667],[-28.57,37.447],[-25.138,-89.305],[-27.959,-25.372],[-28.222,72.717],[-28.22,68.894],[-28.006,-5.996],[-25.467,-88.917],[-28.617,-2.418]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-13.181,-0.002],[-0.468,-2.306],[4.187,-0.143],[4.738,56.298],[-36.355,-3.056],[-0.123,-49.915],[37.468,-5.847],[0.327,1.229],[0.752,44.56],[12.637,0.002],[0.006,-62.497]],"o":[[6.963,0.001],[0.674,3.319],[-7.804,0.266],[-1.272,-15.109],[17.119,1.439],[0.103,41.755],[-0.72,-1.72],[1.758,-13.108],[-0.817,-48.417],[-18.246,-0.003],[-0.005,55.622]],"v":[[-10.92,99.525],[-1.621,95.582],[-10.835,105.883],[-37.023,39.666],[-5.795,-110.589],[28.416,-11.669],[-8.374,104.102],[7.348,74.021],[16.917,-8.05],[-8.816,-101.06],[-32.995,-3.373]],"c":true}]},{"t":70,"s":[{"i":[[-62.654,0],[-2.227,-2.586],[19.903,-0.16],[13.699,63.134],[-133.907,-3.422],[-0.352,-54.552],[21.188,-44.334],[0.949,1.378],[2.184,49.971],[46.545,0],[0,-70.087]],"o":[[33.098,0],[3.205,3.722],[-37.094,0.299],[-3.677,-16.943],[63.056,1.611],[0.294,45.634],[-2.059,-1.88],[5.074,-14.7],[-2.373,-54.296],[-67.205,0],[0,62.377]],"v":[[-1.715,122.978],[42.485,118.556],[-5.615,130.583],[-100.472,45.188],[9.827,-133.142],[108.295,-11.872],[84.946,101.303],[71.023,83.054],[88.099,-11.863],[3.339,-118.156],[-88.715,-3.444]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294121504,0.238985002041,0.271703183651,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[774.617,248.531]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[9.758,-0.005],[34.355,9.127],[-17.158,1.819],[-0.147,48.522],[9.9,18.404],[21.304,-29.451],[-7.169,-11.606],[-0.539,-60.539]],"o":[[-3.641,0.002],[-2.075,9.763],[43.193,-4.578],[0.207,-68.479],[-13.496,-25.088],[32.603,-20.701],[7.016,11.358],[0.532,59.749]],"v":[[56.353,51.992],[9.484,62.31],[43.785,79.983],[98.015,-64.321],[77.162,-180.462],[9.514,-191.599],[63.049,-179.013],[75.029,-71.13]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0.144,-0.004],[30.303,9.127],[-15.135,1.819],[-0.108,48.522],[7.159,18.481],[19.333,-29.451],[-1.256,-19.888],[-0.008,-52.472]],"o":[[-0.054,0.002],[-1.83,9.763],[38.099,-4.578],[0.152,-68.479],[-19.073,-49.234],[27.821,-32.935],[0.619,9.809],[0.008,51.787]],"v":[[72.403,34.94],[13.207,62.31],[43.463,79.983],[73.099,-61.463],[68.259,-180.462],[13.118,-191.599],[70.008,-165.963],[75.04,-71.114]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-0.15,-0.004],[-35.311,29.156],[15.734,1.819],[0.112,48.522],[-7.443,18.481],[-20.098,-29.451],[1.306,-19.888],[0.008,-52.472]],"o":[[0.056,0.002],[1.903,9.763],[-39.607,-4.578],[-0.158,-68.479],[19.828,-49.234],[-28.922,-32.935],[-0.644,9.809],[-0.008,51.787]],"v":[[17.047,34.94],[70.113,59.688],[47.132,79.983],[16.324,-61.463],[21.355,-180.462],[78.678,-191.599],[19.536,-165.963],[14.306,-71.114]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-21.054,-24.021],[-15.913,5.615],[18.36,4.433],[0.164,48.522],[-11.02,18.453],[-8.611,-7.203],[5.328,-10.273],[0.005,-56.357]],"o":[[14.267,16.278],[1.338,4.438],[-30.028,-7.25],[-0.232,-68.479],[3.812,-8.941],[-10.944,-2.521],[-4.996,10.37],[-0.005,55.622]],"v":[[10.922,40.981],[59.749,70.979],[32.258,78.38],[-18.556,-56.495],[5.867,-191.201],[29.391,-208.842],[0.426,-186.259],[-15.931,-69.194]],"c":true}]},{"t":70,"s":[{"i":[[-72.555,0],[-2.177,-3.361],[32.647,1.819],[0.279,48.522],[-18.837,18.404],[-40.535,-29.451],[13.641,-11.606],[0,-63.202]],"o":[[27.073,0],[3.948,9.763],[-82.184,-4.578],[-0.394,-68.479],[25.679,-25.088],[-62.035,-20.701],[-13.349,11.358],[0,62.377]],"v":[[39.132,57.558],[86.382,47.936],[21.015,72.278],[-72.276,-64.321],[-32.599,-180.462],[96.115,-191.599],[-15.061,-180.944],[-57.468,-71.614]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.678,0.275,0.318,0.341,0.74,0.275,0.318,0.341,0.803,0.275,0.318,0.341,0.68,1,0.743,0.5,0.805,0]}},"s":{"a":0,"k":[53,-7]},"e":{"a":0,"k":[-61,72]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_kdxobhH00i","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,1,1,0.5,1,1,1,1,1,1,1,0,1,0.5,0.6,1,0.2]}},"s":{"a":0,"k":[-66,-107]},"e":{"a":0,"k":[-32,-181]},"t":1,"nm":"Gradient_d4JFaekE2x","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[731.67,319.8]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-8.008,0.004],[0.428,48.037],[8.008,-0.004],[-0.428,-48.037]],"o":[[8.008,-0.004],[-0.428,-48.037],[-8.008,0.004],[0.428,48.037]],"v":[[20.275,103.796],[36.336,0.381],[15.281,-102.298],[0.064,4.315]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[-0.118,0.003],[0.006,41.636],[0.119,-0.003],[-0.006,-41.636]],"o":[[0.118,-0.003],[-0.006,-41.636],[-0.119,0.003],[0.006,41.636]],"v":[[38.437,89.671],[38.675,0.035],[35.853,-87.279],[38.138,3.445]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0.123,0.003],[-0.007,41.636],[-0.123,-0.003],[0.007,-41.636]],"o":[[-0.123,-0.003],[0.007,-41.636],[0.123,0.003],[-0.007,41.636]],"v":[[-21.742,89.671],[-21.989,0.035],[-19.055,-87.279],[-21.431,3.445]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[12.526,0.002],[-0.004,44.718],[-16.165,-0.002],[0.004,-44.718]],"o":[[-12.526,-0.002],[0.004,-44.718],[16.165,0.002],[-0.004,44.718]],"v":[[-4.883,96.531],[-24.287,-0.556],[-5.318,-94.994],[16.932,2.274]],"c":true}]},{"t":70,"s":[{"i":[[59.542,0],[0,50.149],[-59.542,0],[0,-50.149]],"o":[[-59.542,0],[0,-50.149],[59.542,0],[0,50.149]],"v":[[-0.202,108.615],[-76.055,0.015],[-0.202,-108.585],[75.651,0.015]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,99.837],[-33.438,0],[0,-99.837],[33.438,0]],"o":[[-33.438,0],[0,-99.837],[33.438,0],[0,99.837],[0,0]],"v":[[4.711,147.962],[-55.834,0.015],[4.711,-147.932],[65.256,0.015],[4.711,147.962]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[{"i":[[0,0],[0,99.837],[-30.345,0],[0,-99.837],[29.495,0]],"o":[[-29.495,0],[0,-99.837],[30.345,0],[0,99.837],[0,0]],"v":[[4.712,147.962],[-24.821,-4.736],[5.399,-147.932],[39.389,2.873],[4.712,147.962]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[0,0],[0,99.837],[31.546,0],[0,-99.837],[-30.662,0]],"o":[[30.662,0],[0,-99.837],[-31.546,0],[0,99.837],[0,0]],"v":[[13.318,147.962],[44.02,-4.736],[12.604,-147.932],[-22.731,2.873],[13.318,147.962]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[0,99.837],[37.08,0],[0,-99.837],[-36.473,0]],"o":[[36.473,0],[0,-99.837],[-37.08,0],[0,99.837],[0,0]],"v":[[8.187,147.962],[66.728,-3.016],[3.832,-147.517],[-53.31,1.838],[8.187,147.962]],"c":true}]},{"t":70,"s":[{"i":[[0,0],[0,99.837],[63.623,0],[0,-99.837],[-63.623,0]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837],[0,0]],"v":[[-0.202,147.962],[114.997,0.015],[-0.202,-147.932],[-115.402,0.015],[-0.202,147.962]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.816,0.702,0.553,0.5,0.816,0.702,0.553,1,0.816,0.702,0.553,0,1,0.5,0.5,1,0]}},"s":{"a":0,"k":[55,-124]},"e":{"a":0,"k":[8.5,-62.5]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_okFE5wQCSL","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.816,0.702,0.553,0.5,0.816,0.702,0.553,1,0.816,0.702,0.553,0,1,0.5,0.5,1,0]}},"s":{"a":0,"k":[-44,117]},"e":{"a":0,"k":[-18.5,80.5]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_vdSz9LMAXW","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":5,"k":{"a":0,"k":[0,0.506,0.643,0.8,0.239,0.506,0.643,0.8,0.477,0.506,0.643,0.8,0.739,0.496,0.571,0.651,1,0.486,0.498,0.502]}},"s":{"a":0,"k":[-55.5,-113]},"e":{"a":0,"k":[86,84.5]},"t":1,"nm":"Gradient_bctTcwQkfD","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[768,251]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 1","bm":0,"hd":false}],"ip":38,"op":182,"st":2,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"LINK L 2","parent":1,"sr":1,"ks":{"r":{"a":0,"k":45},"p":{"a":0,"k":[-69.922,70.597,0]},"a":{"a":0,"k":[186.078,326.597,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-32.432,4.085],[0,99.837],[37.323,-2.363],[0,-99.837]],"o":[[32.432,-4.085],[0,-99.837],[-37.323,2.363],[0,99.837]],"v":[[-1.236,148.474],[29.113,0],[-2.478,-147.68],[-32.2,0.298]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-44.458,2.001],[0,99.837],[46.662,-1.157],[0,-99.837]],"o":[[44.458,-2.001],[0,-99.837],[-46.662,1.157],[0,99.837]],"v":[[5.339,148.205],[73.055,0],[4.779,-147.816],[-62.655,0.146]],"c":true}]},{"t":66,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":40.9},"e":{"a":0,"k":47.1},"o":{"a":0,"k":-16},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.662745118141,0.585888981819,0.483414083719,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-32.432,4.085],[0,99.837],[37.323,-2.363],[0,-99.837]],"o":[[32.432,-4.085],[0,-99.837],[-37.323,2.363],[0,99.837]],"v":[[-1.236,148.474],[29.113,0],[-2.478,-147.68],[-32.2,0.298]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-44.458,2.001],[0,99.837],[46.662,-1.157],[0,-99.837]],"o":[[44.458,-2.001],[0,-99.837],[-46.662,1.157],[0,99.837]],"v":[[5.339,148.205],[73.055,0],[4.779,-147.816],[-62.655,0.146]],"c":true}]},{"t":66,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":46.6},"e":{"a":0,"k":83.8},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.23667819798,0.439364284277,0.635294139385,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-32.432,4.085],[0,99.837],[37.323,-2.363],[0,-99.837]],"o":[[32.432,-4.085],[0,-99.837],[-37.323,2.363],[0,99.837]],"v":[[-1.236,148.474],[29.113,0],[-2.478,-147.68],[-32.2,0.298]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-44.458,2.001],[0,99.837],[46.662,-1.157],[0,-99.837]],"o":[[44.458,-2.001],[0,-99.837],[-46.662,1.157],[0,99.837]],"v":[[5.339,148.205],[73.055,0],[4.779,-147.816],[-62.655,0.146]],"c":true}]},{"t":66,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":82},"e":{"a":0,"k":100},"o":{"a":0,"k":63},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.211764723063,0.200000017881,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-32.432,4.085],[0,99.837],[37.323,-2.363],[0,-99.837]],"o":[[32.432,-4.085],[0,-99.837],[-37.323,2.363],[0,99.837]],"v":[[-1.236,148.474],[29.113,0],[-2.478,-147.68],[-32.2,0.298]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-44.458,2.001],[0,99.837],[46.662,-1.157],[0,-99.837]],"o":[[44.458,-2.001],[0,-99.837],[-46.662,1.157],[0,99.837]],"v":[[5.339,148.205],[73.055,0],[4.779,-147.816],[-62.655,0.146]],"c":true}]},{"t":66,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.423529446125,0.427451014519,0.415686309338,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.843,325.871]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"STR 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-1.27,0],[0,50.149],[1.126,-0.071],[0,-50.149]],"o":[[1.27,0],[0,-50.149],[-1.126,0.071],[0,50.149]],"v":[[-25.778,105.87],[-28.934,1.143],[-23.528,-107.801],[-31.86,0.099]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-20.613,0],[0,50.149],[23.016,-0.035],[0,-50.149]],"o":[[20.613,0],[0,-50.149],[-23.016,0.035],[0,50.149]],"v":[[-5.643,107.263],[28.447,0.56],[0.889,-108.208],[-31.528,-1.599]],"c":true}]},{"t":66,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":87.4},"e":{"a":0,"k":92.4},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.662745118141,0.584313750267,0.482352972031,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-1.27,0],[0,50.149],[1.126,-0.071],[0,-50.149]],"o":[[1.27,0],[0,-50.149],[-1.126,0.071],[0,50.149]],"v":[[-25.778,105.87],[-28.934,1.143],[-23.528,-107.801],[-31.86,0.099]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-20.613,0],[0,50.149],[23.016,-0.035],[0,-50.149]],"o":[[20.613,0],[0,-50.149],[-23.016,0.035],[0,50.149]],"v":[[-5.643,107.263],[28.447,0.56],[0.889,-108.208],[-31.528,-1.599]],"c":true}]},{"t":66,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":0},"e":{"a":0,"k":42.9},"o":{"a":0,"k":-28},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294133425,0.4392157197,0.635294139385,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-1.27,0],[0,50.149],[1.126,-0.071],[0,-50.149]],"o":[[1.27,0],[0,-50.149],[-1.126,0.071],[0,50.149]],"v":[[-25.778,105.87],[-28.934,1.143],[-23.528,-107.801],[-31.86,0.099]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-20.613,0],[0,50.149],[23.016,-0.035],[0,-50.149]],"o":[[20.613,0],[0,-50.149],[-23.016,0.035],[0,50.149]],"v":[[-5.643,107.263],[28.447,0.56],[0.889,-108.208],[-31.528,-1.599]],"c":true}]},{"t":66,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":58.1},"e":{"a":0,"k":94.4},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.423529446125,0.427451014519,0.415686309338,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-1.27,0],[0,50.149],[1.126,-0.071],[0,-50.149]],"o":[[1.27,0],[0,-50.149],[-1.126,0.071],[0,50.149]],"v":[[-25.778,105.87],[-28.934,1.143],[-23.528,-107.801],[-31.86,0.099]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-20.613,0],[0,50.149],[23.016,-0.035],[0,-50.149]],"o":[[20.613,0],[0,-50.149],[-23.016,0.035],[0,50.149]],"v":[[-5.643,107.263],[28.447,0.56],[0.889,-108.208],[-31.528,-1.599]],"c":true}]},{"t":66,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.211764723063,0.200000017881,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7.5},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.843,325.871]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"STR 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-11.603,4.806],[5.493,-21.891],[-1.3,-2.423],[-5.281,-17],[-6.942,12.875]],"o":[[-17.588,-12.664],[1.044,11.958],[2.08,-10.152],[-1.142,-18.333],[4.343,-8.055]],"v":[[17.449,-44.246],[-23.029,-21.854],[-26.658,11.898],[-26.918,11.581],[-13.049,-25.343]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-31.264,0.059],[13.734,-21.691],[-2.462,-2.462],[-24.311,-17],[-0.735,12.866]],"o":[[-21.293,-13.218],[0.939,11.979],[5.394,-10.074],[-19.515,-23.775],[0.337,-8.386]],"v":[[29.456,-43.738],[-37.217,-23.587],[-29.118,10.547],[12.284,4.143],[-18.787,-24.554]],"c":true}]},{"t":66,"s":[{"i":[[-55.5,-4.5],[24,-21.5],[-4,-2.5],[-46.75,-17],[5.1,12.857]],"o":[[-28.5,-13.75],[1,12],[9.5,-10],[-40.5,-29],[-3.452,-8.704]],"v":[[33.5,-43.25],[-69.75,-25.25],[-49,9.25],[39.5,-3],[-40.048,-23.796]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.21960785985,0.239215701818,0.254901975393,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":30},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[256,256]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shad","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[2.262,0],[0,65],[-2.73,0.173],[0,-65.5]],"o":[[-1.799,0],[0,-55.413],[2.73,-0.173],[0,55.413]],"v":[[-26.088,108.872],[-32.873,1.099],[-21.93,-116.064],[-28.777,2.143]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[23.695,0],[0,65],[-25.53,0.085],[0,-65.5]],"o":[[-18.846,0],[0,-55.413],[25.53,-0.085],[0,55.413]],"v":[[-8.076,115.059],[-40.045,-0.599],[-1.114,-117.562],[31.925,1.56]],"c":true}]},{"t":66,"s":[{"i":[[67.675,0],[0,65],[-64.622,0],[0,-65.5]],"o":[[-53.825,0],[0,-55.413],[64.622,0],[0,55.413]],"v":[[-6.675,121],[-93,1],[-6.675,-119],[83.151,1]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-15.304,-0.684],[0,93.125],[8.925,15.225],[0,-93.125]],"o":[[-9.418,-5.632],[0,-93.125],[-19.978,5.78],[0,103.5]],"v":[[-9.248,140.887],[-9.959,-0.574],[-8.929,-136.847],[-30.282,1.298]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[-32.814,-0.335],[0,93.125],[31.226,7.458],[0,-93.125]],"o":[[16.17,-2.759],[0,-93.125],[-36.205,2.831],[0,103.5]],"v":[[-1.454,139.924],[46.899,0.229],[-0.958,-136.925],[-57.96,1.146]],"c":true}]},{"t":66,"s":[{"i":[[-55.25,0],[0,93.125],[57.99,0],[0,-93.125]],"o":[[43.511,0],[0,-93.125],[-57.99,0],[0,103.5]],"v":[[-6.75,139],[97,1],[-6,-137],[-107,1]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.996,326.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Big White","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[53.131,-7.371],[-0.252,-103.5],[22.964,-9.027],[8.58,23],[-33.769,3.245],[-0.125,75.058]],"o":[[42.805,6.357],[0.195,80.002],[-23.626,9.288],[2.776,21],[39.406,-3.787],[0.126,-75.5]],"v":[[-7.228,-47.945],[24.806,97.324],[1.509,233.046],[-24.081,188],[1.344,248.185],[28.912,99]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[66.626,-5.651],[-0.583,-103.5],[27.468,-4.422],[19.816,23],[-46.176,1.079],[-0.29,75.058]],"o":[[49.073,8.726],[0.45,80.002],[-34.142,4.55],[6.411,21],[53.884,-1.26],[0.291,-75.5]],"v":[[-1.13,-48.228],[62.326,96.648],[10.781,233.022],[-49.537,188],[8.83,248.091],[72.854,99]],"c":true}]},{"t":66,"s":[{"i":[[91,-4],[-1,-103.5],[36.5,0],[34,23],[-66,-1],[-0.497,75.058]],"o":[[63.5,11],[0.773,80.003],[-50.09,0],[11,21],[77.017,1.167],[0.5,-75.5]],"v":[[-8,-48.5],[96.5,96],[9,233],[-95,188],[5,248],[115,99]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.816,0.702,0.553,0.5,0.816,0.702,0.553,1,0.816,0.702,0.553,0.475,1,0.737,0.5,1,0]}},"s":{"a":0,"k":[86,-16]},"e":{"a":0,"k":[73.5,2.5]},"t":1,"nm":"Gradient_Qcjyo3CF0T","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.435,0.239,0.271,0.5,0.435,0.239,0.271,1,0.435,0.239,0.271,0.918,1,0.959,0.56,1,0.12]}},"s":{"a":0,"k":[-9.5,79]},"e":{"a":0,"k":[107.5,125]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_kZrD8G5gQu","hd":false},{"ty":"fl","c":{"a":0,"k":[0.21960785985,0.239215701818,0.254901975393,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[256,256]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Big Shad","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[1.27,0],[0,50.149],[-1.126,0.071],[0,-50.149]],"o":[[-1.27,0],[0,-50.149],[1.126,-0.071],[0,50.149]],"v":[[-25.98,105.885],[-32.062,0.114],[-23.73,-107.785],[-29.136,1.158]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[20.613,0],[0,50.149],[-23.016,0.035],[0,-50.149]],"o":[[-20.613,0],[0,-50.149],[23.016,-0.035],[0,50.149]],"v":[[-5.845,107.278],[-31.73,-1.584],[0.687,-108.193],[28.245,0.575]],"c":true}]},{"t":66,"s":[{"i":[[59.542,0],[0,50.149],[-59.542,0],[0,-50.149]],"o":[[-59.542,0],[0,-50.149],[59.542,0],[0,50.149]],"v":[[-0.202,108.615],[-76.055,0.015],[-0.202,-108.585],[75.651,0.015]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,99.837],[37.323,-2.363],[0,-99.837],[-32.432,4.085]],"o":[[32.432,-4.085],[0,-99.837],[-37.323,2.363],[0,99.837],[0,0]],"v":[[-1.438,148.489],[28.911,0.015],[-2.681,-147.665],[-32.402,0.313],[-1.438,148.489]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[0,99.837],[46.661,-1.157],[0,-99.837],[-44.458,2.001]],"o":[[44.458,-2.001],[0,-99.837],[-46.661,1.157],[0,99.837],[0,0]],"v":[[5.137,148.22],[72.853,0.015],[4.577,-147.801],[-62.857,0.161],[5.137,148.22]],"c":true}]},{"t":66,"s":[{"i":[[0,0],[0,99.837],[63.623,0],[0,-99.837],[-63.623,0]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837],[0,0]],"v":[[-0.202,147.962],[114.997,0.015],[-0.202,-147.932],[-115.402,0.015],[-0.202,147.962]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.435,0.239,0.271,0.5,0.435,0.239,0.271,1,0.435,0.239,0.271,0,0,0.08,0.5,0.16,1,0.397,1,0.635,1,0.817,0.5,1,0]}},"s":{"a":0,"k":[-98.707,53.707]},"e":{"a":0,"k":[-60.207,56.707]},"t":1,"nm":"Gradient_reZGvEuwkZ","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":5,"k":{"a":0,"k":[0.315,0.816,0.702,0.553,0.412,0.673,0.729,0.776,0.51,0.529,0.757,1,0.755,0.529,0.757,1,1,0.529,0.757,1,0.517,1,0.759,0.5,1,0]}},"s":{"a":0,"k":[-43.146,75.475]},"e":{"a":0,"k":[-77.889,131.218]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_XVg6oUUhDr","hd":false},{"ty":"fl","c":{"a":0,"k":[0.505882382393,0.643137276173,0.800000071526,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.996,326.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"FILL","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[186.078,326.597]},"a":{"a":0,"k":[186.078,326.597]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":-45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":38,"op":182,"st":2,"bm":0},{"ddd":0,"ind":5,"ty":3,"nm":"NULL LINK","sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.8],"y":[1]},"o":{"x":[0.411],"y":[0]},"t":0,"s":[-18]},{"t":37,"s":[10]}]},"p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[254,228.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.8,"y":1},"o":{"x":0.8,"y":0},"t":19,"s":[254,240.5,0],"to":[0,0,0],"ti":[0,0,0]},{"t":37,"s":[275,246.5,0]}]},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":0,"s":[5,5,100]},{"i":{"x":[0.8,0.8,0.8],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.8],"y":[0,0,0]},"t":19,"s":[78,78,100]},{"t":37,"s":[20,20,100]}]}},"ao":0,"ip":1,"op":38,"st":2,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Cover Link","parent":8,"sr":1,"ks":{"r":{"a":0,"k":-45},"p":{"a":0,"k":[249.572,229.153,0]},"a":{"a":0,"k":[299.879,302.591,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[13.9,23.591],[13.449,8.672]],"o":[[-9.192,-15.601],[-17.207,-11.095]],"v":[[93.096,-94.997],[58.772,-131.374]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0.174,27.381],[1.036,11.649]],"o":[[-0.115,-18.107],[-1.814,-20.393]],"v":[[27.739,-51.379],[24.229,-104.1]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0.174,27.381],[1.036,11.649]],"o":[[-0.115,-18.107],[-1.814,-20.393]],"v":[[26.547,-50.717],[22.11,-127.93]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0.174,27.381],[1.036,11.649]],"o":[[-0.115,-18.107],[-1.814,-20.393]],"v":[[30.227,-51.859],[21.73,-135.671]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-4.542,27.454],[-29.828,0.448]],"o":[[3.003,-18.156],[19.466,-0.292]],"v":[[-34.937,-54.832],[-3.409,-147.965]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[-5.43,24.316],[-27.136,-0.62]],"o":[[3.591,-16.08],[17.112,-6.025]],"v":[[-41.82,-68.841],[-7.552,-144.065]],"c":false}]},{"i":{"x":0.71,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[-7.207,18.038],[-30.564,-9.634]],"o":[[4.766,-11.929],[10.834,-6.21]],"v":[[-55.587,-96.86],[-1.035,-145.934]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[-9.358,20.024],[-37.622,-0.349]],"o":[[6.189,-13.242],[15.135,-4.336]],"v":[[-69.1,-100.242],[2.743,-148.327]],"c":false}]},{"i":{"x":0.6,"y":1},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[-12.341,22.447],[-25.927,4.668]],"o":[[8.161,-14.845],[17.921,-6.014]],"v":[[-85.86,-96.241],[-21.894,-145.604]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.436,"y":0},"t":25,"s":[{"i":[[-13.814,23.644],[-20.152,7.146]],"o":[[9.136,-15.636],[19.297,-6.843]],"v":[[-94.135,-94.266],[-42.91,-140.134]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.2,"y":0},"t":31,"s":[{"i":[[-8.297,25.506],[-20.052,21.477]],"o":[[5.701,-18.607],[12.533,-13.424]],"v":[[-63.744,-68.566],[-33.824,-133.225]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.02},"t":34,"s":[{"i":[[-3.34,27.179],[-6.576,20.345]],"o":[[2.615,-21.276],[6.297,-19.482]],"v":[[-33.88,-54.293],[-22.533,-123.891]],"c":false}]},{"t":68,"s":[{"i":[[13.9,23.591],[13.449,8.672]],"o":[[-9.192,-15.601],[-17.207,-11.095]],"v":[[93.096,-94.997],[58.772,-131.374]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.662745118141,0.585888981819,0.483414083719,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.843,325.871]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Strk 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[8.04,19.241],[15.777,7.794]],"o":[[-6.924,-16.57],[-8.817,-4.356]],"v":[[64.84,-63.573],[31.458,-101.777]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-2.709,20.677],[4.312,16.479]],"o":[[2.333,-17.806],[-2.489,-9.514]],"v":[[-13.67,-42.867],[-14.552,-96.697]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[1.261,20.815],[-8.678,26.939]],"o":[[-0.691,-11.4],[3.015,-9.36]],"v":[[-30.351,-47.898],[-25.408,-132.971]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[1.261,20.815],[-16.264,15.683]],"o":[[-0.691,-11.4],[7.079,-6.826]],"v":[[-30.351,-47.898],[-12.465,-142.107]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-0.446,21.225],[-12.959,28.483]],"o":[[0.236,-11.228],[3.661,-8.046]],"v":[[-32.488,-59.168],[-22.911,-136.282]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[-1.677,18.934],[4.631,16.681]],"o":[[1.346,-11.606],[-4.692,0.256]],"v":[[4.004,-52.374],[-3.472,-141.059]],"c":false}]},{"i":{"x":0.71,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[-4.14,14.353],[-17.942,-0.538]],"o":[[3.565,-12.36],[4.951,-1.167]],"v":[[-19.702,-60.4],[1.392,-115.436]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[-5.355,16.092],[-22.892,-1.303]],"o":[[4.611,-13.858],[7.322,0.417]],"v":[[-37.346,-68.366],[7.14,-106.823]],"c":false}]},{"i":{"x":0.6,"y":1},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[-5.517,18.765],[-29.321,5.832]],"o":[[6.865,-23.352],[8.557,-2.248]],"v":[[-60.861,-57.363],[-8.329,-107.386]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.436,"y":0},"t":25,"s":[{"i":[[-7.968,19.276],[-21.979,8.546]],"o":[[6.862,-16.6],[9.167,-3.564]],"v":[[-65.253,-66.256],[-22.404,-106.255]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.2,"y":0},"t":31,"s":[{"i":[[-4.486,20.086],[-18.925,-3.544]],"o":[[4.05,-20.157],[3.314,-6.739]],"v":[[-38.442,-51.263],[0.402,-104.909]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.02},"t":34,"s":[{"i":[[-1.358,20.814],[3.916,19.233]],"o":[[1.523,-23.353],[-1.962,-9.638]],"v":[[35.699,-42.344],[30.221,-107.759]],"c":false}]},{"t":68,"s":[{"i":[[8.04,19.241],[15.777,7.794]],"o":[[-6.924,-16.57],[-8.817,-4.356]],"v":[[64.84,-63.573],[31.458,-101.777]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.211764723063,0.200000017881,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7.5},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.843,325.871]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Strk 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-1.875,5.625],[10.175,5.812],[3.231,-4.464],[-7.858,-21.526]],"o":[[-9.187,-24.25],[-4.7,5.625],[18.918,9.814],[2.804,-2.462]],"v":[[83,-76],[44.7,-123],[33.769,-109.911],[73.446,-61.413]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-4.446,3.923],[-0.376,16.458],[5.036,-2.238],[4.014,-22.561]],"o":[[1.74,-21.639],[0.967,-7.561],[1.627,21.369],[2.26,4.11]],"v":[[6.316,-36.486],[6.194,-104.866],[-10.13,-116.043],[-8.675,-36.127]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-4.446,3.923],[-4.605,27.842],[5.497,-7.449],[-0.725,-12.698]],"o":[[1.74,-21.639],[-2.355,0.967],[-6.815,28.693],[2.26,4.11]],"v":[[-8.379,-40.854],[-5.192,-141.669],[-19.265,-128.884],[-21.913,-41.423]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[-4.446,3.923],[-4.605,27.842],[5.497,-7.449],[-0.725,-12.698]],"o":[[1.74,-21.639],[-2.355,0.967],[-6.815,28.693],[2.26,4.11]],"v":[[2.66,-38.951],[7.498,-140.908],[-6.322,-138.021],[-19.756,-39.519]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[3.856,4.505],[-7.786,17.568],[-4.353,-8.178],[-0.711,-20.059]],"o":[[1.696,-21.937],[1.538,0.688],[2.294,29.664],[-2.933,3.835]],"v":[[-14.505,-40.607],[-9.19,-146.251],[5.523,-132.896],[9.958,-32.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[2.91,4.249],[-11.797,18.483],[-1.718,-6.788],[0.061,-19.417]],"o":[[1.749,-22.376],[1.811,2.234],[-2.638,21.062],[-2.452,2.084]],"v":[[-23.296,-52.305],[-5.302,-142.238],[-1.38,-135.901],[-0.438,-41.282]],"c":true}]},{"i":{"x":0.71,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[1.017,3.736],[-27.206,3.939],[5.313,-3.997],[0.56,-19.559]],"o":[[1.854,-23.255],[5.95,-0.389],[-11.468,4.891],[-1.491,-1.419]],"v":[[-42.076,-77.947],[-1.072,-144.145],[1.714,-116.067],[-23.047,-59.041]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[1.354,4.397],[-28.267,-0.064],[-0.646,-4.011],[5.205,-17.92]],"o":[[6.095,-20.212],[1.227,5.196],[-19.986,1.91],[-1.963,-1.781]],"v":[[-59.174,-84.041],[4.25,-137.345],[5.732,-116.035],[-41.086,-67.36]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[1.719,5.218],[-17.457,3.439],[-2.39,-4.31],[9.452,-19.505]],"o":[[13.263,-24.767],[1.213,4.615],[-22.021,7.328],[-2.534,-2.233]],"v":[[-77.689,-79.338],[-18.022,-133.359],[-12.937,-116.275],[-64.797,-66.985]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.436,"y":0},"t":25,"s":[{"i":[[1.899,5.624],[-12.119,5.168],[-3.251,-4.458],[9.436,-20.043]],"o":[[11.852,-25.879],[1.206,4.328],[-15.788,7.345],[-2.816,-2.456]],"v":[[-84.477,-74.924],[-33.504,-128.896],[-27.908,-112.107],[-72.46,-65.152]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.2,"y":0},"t":31,"s":[{"i":[[3.459,4.457],[-17.74,27.162],[-3.019,-15.731],[4.11,-19.342]],"o":[[3.015,-22.898],[1.821,-1.853],[-13.746,7.572],[-3.294,-1.327]],"v":[[-46.008,-53.482],[-19.261,-126.612],[-7.226,-113.163],[-41.524,-51.432]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.02},"t":34,"s":[{"i":[[4.86,3.408],[-2.15,22.21],[-2.81,-25.86],[-0.675,-18.712]],"o":[[-0.498,-22.938],[2.374,-7.406],[2.332,16.302],[-3.724,-0.312]],"v":[[-8.962,-44.801],[-4.637,-125.529],[13.916,-110.983],[15.277,-38.537]],"c":true}]},{"t":68,"s":[{"i":[[-1.875,5.625],[10.175,5.812],[3.231,-4.464],[-7.858,-21.526]],"o":[[-9.187,-24.25],[-4.7,5.625],[18.918,9.814],[2.804,-2.462]],"v":[[83,-76],[44.7,-123],[33.769,-109.911],[73.446,-61.413]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.996,326.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Whte","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[0.518,-1.441],[-7.44,-18.663],[-0.277,2.64],[16.232,9.781]],"o":[[13.234,9.941],[0.535,1.343],[-9.071,-16.64],[-1.336,2.602]],"v":[[52.607,-25.309],[83.833,16.842],[93.152,4.86],[57.086,-33.727]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[1.171,-0.986],[0.911,-18.671],[-1.565,2.144],[2.677,12.534]],"o":[[0.409,12.799],[-0.07,1.444],[0.511,-18.945],[-2.462,1.58]],"v":[[12.048,-3.773],[13.41,56.265],[27.336,48.494],[23.43,-7.014]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[1.171,-0.986],[0.911,-18.671],[-1.565,2.144],[2.677,12.534]],"o":[[0.409,12.799],[-0.07,1.444],[0.511,-18.945],[-2.462,1.58]],"v":[[20.256,-29.457],[21.486,49.248],[26.145,49.156],[21.312,-30.844]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[1.171,-0.986],[0.911,-18.671],[-1.565,2.144],[2.677,12.534]],"o":[[2.711,9.027],[-0.07,1.444],[0.511,-18.945],[-2.462,1.58]],"v":[[19.876,-37.197],[25.166,48.106],[29.825,48.014],[20.931,-38.584]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-0.586,-0.762],[2.059,-18.853],[1.236,2.351],[-34.254,10.258]],"o":[[-9.702,24.43],[-0.159,1.458],[2.506,-19.077],[-22.183,11.25]],"v":[[-2.1,-49.481],[-18.855,58.522],[-35.074,45.07],[-2.452,-50.582]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[-0.652,-1.09],[3.737,-21.718],[0.877,2.174],[-26.224,2.461]],"o":[[-20.553,21.332],[-0.193,1.306],[3.236,-16.932],[-9.052,9.167]],"v":[[-5.63,-44.84],[-27.686,43.915],[-42.089,31.087],[-6.788,-46.532]],"c":true}]},{"i":{"x":0.71,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0.198,-0.883],[7.095,-27.449],[0.16,1.819],[-31.619,-7.26]],"o":[[-31.271,6.071],[-0.259,1.003],[4.697,-12.643],[-0.185,1.609]],"v":[[1.134,-46.123],[-45.346,14.699],[-56.118,3.12],[-0.201,-47.688]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0.137,-1.176],[4.946,-15.583],[0.219,2.107],[-39.969,0.551]],"o":[[-11.984,4.317],[-0.356,1.121],[6.094,-14.071],[0.016,2.214]],"v":[[6.306,-48.179],[-57.288,13.501],[-69.591,-0.3],[3.969,-49.982]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[2.858,-2.977],[6.569,-17.667],[0.265,2.464],[-22.325,-1.143]],"o":[[-11.114,9.607],[-0.473,1.271],[9.003,-21.013],[0.707,2.563]],"v":[[-32.633,-32.383],[-77.634,20.309],[-86.328,3.645],[-18.367,-43.837]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.436,"y":0},"t":25,"s":[{"i":[[4.202,-3.866],[7.37,-18.696],[0.288,2.641],[-13.613,-1.979]],"o":[[-10.684,12.22],[-0.53,1.345],[10.44,-24.44],[1.048,2.735]],"v":[[-51.86,-24.584],[-83.537,18.279],[-94.591,5.593],[-38.246,-36.676]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.2,"y":0},"t":31,"s":[{"i":[[2.566,-4.782],[0.786,-19.083],[1.082,2.281],[-9.15,1.729]],"o":[[-5.78,14.302],[-0.057,1.373],[6.109,-26.624],[-0.857,5.422]],"v":[[-37.784,-16.323],[-54.587,38.481],[-63.911,31.286],[-29.151,-30.531]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.02},"t":34,"s":[{"i":[[1.097,-5.604],[-5.13,-19.43],[1.795,1.958],[-5.14,5.06]],"o":[[-1.374,16.173],[0.369,1.398],[2.217,-28.585],[-2.569,7.837]],"v":[[-25.138,-8.901],[-28.577,48.099],[-33.787,45.553],[-20.98,-25.01]],"c":true}]},{"t":68,"s":[{"i":[[0.518,-1.441],[-7.44,-18.663],[-0.277,2.64],[16.232,9.781]],"o":[[13.234,9.941],[0.535,1.343],[-9.071,-16.64],[-1.336,2.602]],"v":[[52.607,-25.309],[83.833,16.842],[93.152,4.86],[57.086,-33.727]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.816,0.702,0.553,0.5,0.816,0.702,0.553,1,0.816,0.702,0.553,0.475,1,0.737,0.5,1,0]}},"s":{"a":0,"k":[86,-16]},"e":{"a":0,"k":[73.5,2.5]},"t":1,"nm":"Gradient_X0SwmbIa0N","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.435,0.239,0.271,0.5,0.435,0.239,0.271,1,0.435,0.239,0.271,0.918,1,0.959,0.56,1,0.12]}},"s":{"a":0,"k":[-9.5,79]},"e":{"a":0,"k":[107.5,125]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_Q22T2kVqvV","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[256,256]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shad grad","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-4.445,6.735],[4.952,3.085],[8.154,-6.673],[-7.056,-16.887]],"o":[[-9.445,-22.265],[-3.423,6.46],[16.277,7.706],[9.362,-4.942]],"v":[[92.445,-93.985],[59.048,-130.71],[31.721,-100.577],[63.638,-65.308]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-7.226,3.592],[2.733,5.155],[10.402,-1.676],[2.378,-18.146]],"o":[[3.012,-23.997],[-6.204,3.868],[10.207,14.838],[10.578,0.427]],"v":[[26.647,-50.727],[24.114,-103.284],[-14.947,-95.424],[-13.858,-44.868]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-24.264,17.921],[2.733,5.155],[10.402,-1.676],[-1.367,-13.754]],"o":[[3.012,-23.997],[-6.204,3.868],[-3.984,18.003],[10.151,9.414]],"v":[[25.456,-50.065],[21.996,-127.114],[-25.539,-133.022],[-30.539,-49.899]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[-24.264,17.921],[2.733,5.155],[10.402,-1.676],[-1.367,-13.754]],"o":[[3.012,-23.997],[-7.784,-8.431],[-3.984,18.003],[10.151,9.414]],"v":[[29.136,-51.207],[21.615,-134.855],[-12.595,-142.158],[-30.539,-49.899]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[21.601,21.086],[-18.864,6.457],[-7.715,-0.882],[3.571,-13.627]],"o":[[0.79,-24.466],[9.204,-7.388],[-21.784,21.469],[-11.734,8.149]],"v":[[-34.344,-54.064],[-3.965,-147.28],[-14.788,-146.835],[-35.574,-50.868]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[15.193,15.468],[-25.31,-1.822],[-7.637,-3.745],[3.592,-13.284]],"o":[[2.149,-21.852],[6.177,-3.456],[-2.588,13.463],[-9.476,4.619]],"v":[[-41.478,-67.992],[-8.03,-143.399],[-0.426,-130.134],[-2.855,-51.106]],"c":true}]},{"i":{"x":0.71,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[2.378,4.233],[-26.653,-7.88],[-1.555,-4.292],[3.633,-12.597]],"o":[[4.865,-16.624],[-0.414,3.998],[-9.238,4.053],[-4.961,-2.442]],"v":[[-55.744,-95.849],[-1.632,-145.546],[-13.901,-105.346],[-34.107,-73.195]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[3.141,5.105],[-28.6,-0.03],[-3.149,-6.746],[4.699,-14.123]],"o":[[6.294,-18.631],[0.111,5.521],[-22.523,-0.807],[-6.52,-3.303]],"v":[[-69.101,-99.227],[2.012,-147.943],[8.27,-107.387],[-36.875,-69.834]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[4.034,6.191],[-12.974,1.682],[-6.521,-6.685],[6.235,-15.993]],"o":[[8.348,-21.091],[1.849,6.378],[-24.686,4.258],[-8.44,-4.386]],"v":[[-85.692,-95.228],[-22.636,-145.07],[-8.399,-106.768],[-59.221,-66.191]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.436,"y":0},"t":25,"s":[{"i":[[4.475,6.728],[-5.259,2.528],[-8.186,-6.656],[6.993,-16.917]],"o":[[9.362,-22.305],[2.707,6.801],[-16.258,7.754],[-9.388,-4.921]],"v":[[-93.883,-93.254],[-43.657,-139.525],[-23.067,-105.053],[-64.461,-67.995]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.2,"y":0},"t":31,"s":[{"i":[[6.116,4.644],[-3.116,4.205],[-9.425,-3.422],[1.002,-17.368]],"o":[[3.842,-23.291],[4.993,4.264],[-20.513,-4.071],[-9.963,-1.49]],"v":[[-63.228,-67.798],[-34.211,-132.512],[0.59,-103.468],[-38.299,-53.133]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.02},"t":34,"s":[{"i":[[7.59,2.772],[-1.19,5.712],[-10.538,-0.516],[-4.381,-17.773]],"o":[[-1.117,-24.176],[7.046,1.985],[5.435,21.5],[-10.479,1.593]],"v":[[-33.126,-53.743],[-22.596,-123.082],[31.173,-106.103],[35.259,-44.33]],"c":true}]},{"t":68,"s":[{"i":[[-4.445,6.735],[4.952,3.085],[8.154,-6.673],[-7.056,-16.887]],"o":[[-9.445,-22.265],[-3.423,6.46],[16.277,7.706],[9.362,-4.942]],"v":[[92.445,-93.985],[59.048,-130.71],[31.721,-100.577],[63.638,-65.308]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.505882382393,0.643137276173,0.800000071526,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.996,326.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Fill","bm":0,"hd":false}],"ip":1,"op":38,"st":2,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"LINK R","parent":5,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[45]},{"t":37,"s":[37]}]},"p":{"a":0,"k":[-38.342,35.543,0]},"a":{"a":0,"k":[769.575,402.245,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[11,3.125],[13,-6.5],[56.5,-19],[-3.625,5.5]],"o":[[-8.875,21.375],[6.5,1],[64.625,-1.125],[-4.875,-11.125]],"v":[[829.25,311.625],[792.75,351.5],[772.375,402.875],[864.25,347.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[3.742,3.125],[4.423,-6.5],[24.191,-19],[-1.233,5.5]],"o":[[-3.019,21.375],[2.211,1],[27.669,-1.125],[-1.659,-11.125]],"v":[[790.515,311.625],[778.097,351.5],[769.42,401.893],[802.422,347.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[3.222,3.125],[3.808,-6.5],[28.845,-19],[-1.062,5.5]],"o":[[-2.6,21.375],[1.904,1],[32.993,-1.125],[-1.428,-11.125]],"v":[[796.729,306.929],[787.654,342.108],[770.229,401.893],[796.872,347.625]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[-2.985,3.125],[-3.528,-6.5],[-24.804,-19],[0.984,5.5]],"o":[[2.409,21.375],[-1.764,1],[-28.371,-1.125],[1.323,-11.125]],"v":[[740.487,303.743],[742.974,351.5],[762.918,401.893],[738.407,347.625]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[-10.874,3.125],[-12.852,-6.5],[-55.855,-19],[3.584,5.5]],"o":[[8.774,21.375],[-6.426,1],[-63.887,-1.125],[4.819,-11.125]],"v":[[707.062,311.625],[743.146,351.5],[763.288,402.875],[672.462,347.625]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[-6.287,3.125],[-9.478,-6.5],[-43.611,-19],[2.643,5.5]],"o":[[5.072,21.375],[-4.739,1],[-49.883,-1.125],[3.554,-11.125]],"v":[[733.402,311.625],[758.149,351.5],[773.854,402.42],[706.018,347.625]],"c":true}]},{"t":72,"s":[{"i":[[11,3.125],[13,-6.5],[56.5,-19],[-3.625,5.5]],"o":[[-8.875,21.375],[6.5,1],[64.625,-1.125],[-4.875,-11.125]],"v":[[829.25,311.625],[792.75,351.5],[772.375,402.875],[864.25,347.625]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219607858097,0.239215701234,0.254901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":40},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-27.24,0],[0,99.837],[26.907,0],[0,-99.837]],"o":[[27.24,0],[0,-99.837],[-26.907,0],[0,99.837]],"v":[[-0.052,146.965],[38.371,-0.491],[2.12,-147.947],[-32.821,-0.491]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-32.481,0],[0,99.837],[29.909,0],[0,-99.837]],"o":[[32.481,0],[0,-99.837],[-29.909,0],[0,99.837]],"v":[[0.339,146.965],[27.214,-1.078],[1.13,-147.947],[-26.099,-0.491]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[27.931,0],[0,99.837],[-27.607,0],[0,-99.837]],"o":[[-27.931,0],[0,-99.837],[27.607,0],[0,99.837]],"v":[[-2.151,146.965],[-31.481,-0.491],[-2.539,-147.947],[25.31,-0.491]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[62.897,0],[0,99.837],[-62.897,0],[0,-99.837]],"o":[[-62.897,0],[0,-99.837],[62.897,0],[0,99.837]],"v":[[1.009,147.947],[-112.875,0],[1.009,-147.947],[114.893,0]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[49.11,0],[0,99.837],[-48.947,0],[0,-99.837]],"o":[[-49.11,0],[0,-99.837],[48.947,0],[0,99.837]],"v":[[10.475,147.492],[-73.143,-0.227],[9.418,-147.947],[91.342,-0.227]],"c":true}]},{"t":72,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":39.1},"e":{"a":0,"k":46.4},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.662745118141,0.585888981819,0.483414083719,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-27.24,0],[0,99.837],[26.907,0],[0,-99.837]],"o":[[27.24,0],[0,-99.837],[-26.907,0],[0,99.837]],"v":[[-0.052,146.965],[38.371,-0.491],[2.12,-147.947],[-32.821,-0.491]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-32.481,0],[0,99.837],[29.909,0],[0,-99.837]],"o":[[32.481,0],[0,-99.837],[-29.909,0],[0,99.837]],"v":[[0.339,146.965],[27.214,-1.078],[1.13,-147.947],[-26.099,-0.491]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[27.931,0],[0,99.837],[-27.607,0],[0,-99.837]],"o":[[-27.931,0],[0,-99.837],[27.607,0],[0,99.837]],"v":[[-2.151,146.965],[-31.481,-0.491],[-2.539,-147.947],[25.31,-0.491]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[62.897,0],[0,99.837],[-62.897,0],[0,-99.837]],"o":[[-62.897,0],[0,-99.837],[62.897,0],[0,99.837]],"v":[[1.009,147.947],[-112.875,0],[1.009,-147.947],[114.893,0]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[49.11,0],[0,99.837],[-48.947,0],[0,-99.837]],"o":[[-49.11,0],[0,-99.837],[48.947,0],[0,99.837]],"v":[[10.475,147.492],[-73.143,-0.227],[9.418,-147.947],[91.342,-0.227]],"c":true}]},{"t":72,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":46.6},"e":{"a":0,"k":83.8},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.23667819798,0.439364284277,0.635294139385,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-27.24,0],[0,99.837],[26.907,0],[0,-99.837]],"o":[[27.24,0],[0,-99.837],[-26.907,0],[0,99.837]],"v":[[-0.052,146.965],[38.371,-0.491],[2.12,-147.947],[-32.821,-0.491]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-32.481,0],[0,99.837],[29.909,0],[0,-99.837]],"o":[[32.481,0],[0,-99.837],[-29.909,0],[0,99.837]],"v":[[0.339,146.965],[27.214,-1.078],[1.13,-147.947],[-26.099,-0.491]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[27.931,0],[0,99.837],[-27.607,0],[0,-99.837]],"o":[[-27.931,0],[0,-99.837],[27.607,0],[0,99.837]],"v":[[-2.151,146.965],[-31.481,-0.491],[-2.539,-147.947],[25.31,-0.491]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[62.897,0],[0,99.837],[-62.897,0],[0,-99.837]],"o":[[-62.897,0],[0,-99.837],[62.897,0],[0,99.837]],"v":[[1.009,147.947],[-112.875,0],[1.009,-147.947],[114.893,0]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[49.11,0],[0,99.837],[-48.947,0],[0,-99.837]],"o":[[-49.11,0],[0,-99.837],[48.947,0],[0,99.837]],"v":[[10.475,147.492],[-73.143,-0.227],[9.418,-147.947],[91.342,-0.227]],"c":true}]},{"t":72,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":75.5},"e":{"a":0,"k":95.6},"o":{"a":0,"k":63},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.211764723063,0.200000017881,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-27.24,0],[0,99.837],[26.907,0],[0,-99.837]],"o":[[27.24,0],[0,-99.837],[-26.907,0],[0,99.837]],"v":[[-0.052,146.965],[38.371,-0.491],[2.12,-147.947],[-32.821,-0.491]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-32.481,0],[0,99.837],[29.909,0],[0,-99.837]],"o":[[32.481,0],[0,-99.837],[-29.909,0],[0,99.837]],"v":[[0.339,146.965],[27.214,-1.078],[1.13,-147.947],[-26.099,-0.491]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[27.931,0],[0,99.837],[-27.607,0],[0,-99.837]],"o":[[-27.931,0],[0,-99.837],[27.607,0],[0,99.837]],"v":[[-2.151,146.965],[-31.481,-0.491],[-2.539,-147.947],[25.31,-0.491]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[62.897,0],[0,99.837],[-62.897,0],[0,-99.837]],"o":[[-62.897,0],[0,-99.837],[62.897,0],[0,99.837]],"v":[[1.009,147.947],[-112.875,0],[1.009,-147.947],[114.893,0]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[49.11,0],[0,99.837],[-48.947,0],[0,-99.837]],"o":[[-49.11,0],[0,-99.837],[48.947,0],[0,99.837]],"v":[[10.475,147.492],[-73.143,-0.227],[9.418,-147.947],[91.342,-0.227]],"c":true}]},{"t":72,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.423529446125,0.427451014519,0.415686309338,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[767.298,251.015]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 111","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-4.112,0.411],[0,50.149],[3.5,-0.1],[0,-50.149]],"o":[[4.112,-0.411],[0,-50.149],[-3.5,0.1],[0,50.149]],"v":[[-2.801,104.456],[6.878,-2.754],[-2.07,-106.937],[-6.155,-4.173]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-0.228,0.378],[0,46.119],[0.194,-0.092],[0,-46.119]],"o":[[0.228,-0.378],[0,-46.119],[-0.194,0.092],[0,46.119]],"v":[[-25.082,94.528],[-21.715,-4.066],[-22.008,-96.354],[-22.437,-5.371]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[1.805,0.411],[0,50.149],[-1.536,-0.1],[0,-50.149]],"o":[[-1.805,-0.411],[0,-50.149],[1.536,0.1],[0,50.149]],"v":[[9.69,103.76],[5.441,-3.45],[9.369,-107.633],[11.162,-4.868]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[58.862,0],[0,50.149],[-58.862,0],[0,-50.149]],"o":[[-58.862,0],[0,-50.149],[58.862,0],[0,50.149]],"v":[[0.015,108.6],[-74.972,0],[0.015,-108.6],[75.002,0]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[27.872,0.19],[0,50.149],[-27.639,-0.046],[0,-50.149]],"o":[[-27.872,-0.19],[0,-50.149],[27.639,0.046],[0,50.149]],"v":[[2.483,106.68],[-34.718,-1.276],[2.204,-107.83],[37.271,-1.933]],"c":true}]},{"t":72,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":9.1},"e":{"a":0,"k":38.5},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294133425,0.4392157197,0.635294139385,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-4.112,0.411],[0,50.149],[3.5,-0.1],[0,-50.149]],"o":[[4.112,-0.411],[0,-50.149],[-3.5,0.1],[0,50.149]],"v":[[-2.801,104.456],[6.878,-2.754],[-2.07,-106.937],[-6.155,-4.173]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-0.228,0.378],[0,46.119],[0.194,-0.092],[0,-46.119]],"o":[[0.228,-0.378],[0,-46.119],[-0.194,0.092],[0,46.119]],"v":[[-25.082,94.528],[-21.715,-4.066],[-22.008,-96.354],[-22.437,-5.371]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[1.805,0.411],[0,50.149],[-1.536,-0.1],[0,-50.149]],"o":[[-1.805,-0.411],[0,-50.149],[1.536,0.1],[0,50.149]],"v":[[9.69,103.76],[5.441,-3.45],[9.369,-107.633],[11.162,-4.868]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[58.862,0],[0,50.149],[-58.862,0],[0,-50.149]],"o":[[-58.862,0],[0,-50.149],[58.862,0],[0,50.149]],"v":[[0.015,108.6],[-74.972,0],[0.015,-108.6],[75.002,0]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[27.872,0.19],[0,50.149],[-27.639,-0.046],[0,-50.149]],"o":[[-27.872,-0.19],[0,-50.149],[27.639,0.046],[0,50.149]],"v":[[2.483,106.68],[-34.718,-1.276],[2.204,-107.83],[37.271,-1.933]],"c":true}]},{"t":72,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":58.1},"e":{"a":0,"k":94.4},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.423529446125,0.427451014519,0.415686309338,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-4.112,0.411],[0,50.149],[3.5,-0.1],[0,-50.149]],"o":[[4.112,-0.411],[0,-50.149],[-3.5,0.1],[0,50.149]],"v":[[-2.801,104.456],[6.878,-2.754],[-2.07,-106.937],[-6.155,-4.173]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-0.228,0.378],[0,46.119],[0.194,-0.092],[0,-46.119]],"o":[[0.228,-0.378],[0,-46.119],[-0.194,0.092],[0,46.119]],"v":[[-25.082,94.528],[-21.715,-4.066],[-22.008,-96.354],[-22.437,-5.371]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[1.805,0.411],[0,50.149],[-1.536,-0.1],[0,-50.149]],"o":[[-1.805,-0.411],[0,-50.149],[1.536,0.1],[0,50.149]],"v":[[9.69,103.76],[5.441,-3.45],[9.369,-107.633],[11.162,-4.868]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[58.862,0],[0,50.149],[-58.862,0],[0,-50.149]],"o":[[-58.862,0],[0,-50.149],[58.862,0],[0,50.149]],"v":[[0.015,108.6],[-74.972,0],[0.015,-108.6],[75.002,0]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[27.872,0.19],[0,50.149],[-27.639,-0.046],[0,-50.149]],"o":[[-27.872,-0.19],[0,-50.149],[27.639,0.046],[0,50.149]],"v":[[2.483,106.68],[-34.718,-1.276],[2.204,-107.83],[37.271,-1.933]],"c":true}]},{"t":72,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.211764723063,0.200000017881,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[767.798,251.015]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 110","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[-17.647,-41.07],[20.676,-33.78],[0.949,1.378],[15.484,48.625]],"o":[[22.288,51.87],[-2.059,-3.98],[23.261,-37.935],[-7.266,-22.817]],"v":[[3.839,-76.089],[-7.36,91.865],[-12.133,82.466],[0.144,-74.651]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-6.004,-41.07],[7.034,-33.78],[0.323,1.378],[5.268,48.625]],"o":[[7.583,51.87],[-0.701,-3.98],[7.914,-37.935],[-2.472,-22.817]],"v":[[-61.262,-76.089],[-65.072,91.865],[-66.696,82.466],[-62.519,-74.651]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-0.771,-41.497],[6.057,-33.78],[0.278,1.378],[2.137,48.847]],"o":[[0.705,37.95],[-0.603,-3.98],[2.498,-42.874],[-1.003,-22.921]],"v":[[-69.36,-75.503],[-70.327,91.865],[-71.725,82.466],[-70.512,-74.139]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[4.789,-41.07],[-5.611,-33.78],[-0.258,1.378],[-4.202,48.625]],"o":[[-6.049,51.87],[0.559,-3.98],[-6.313,-37.935],[1.972,-22.817]],"v":[[-128.312,-76.089],[-125.273,91.865],[-123.977,82.466],[-127.309,-74.651]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[17.446,-41.07],[-20.44,-33.78],[-0.938,1.378],[-15.307,48.625]],"o":[[-22.034,51.87],[2.036,-3.98],[-22.995,-37.935],[7.183,-22.817]],"v":[[-197.815,-76.089],[-186.744,91.865],[-182.025,82.466],[-194.162,-74.651]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[12.867,-41.07],[-15.075,-33.78],[-0.542,1.378],[-11.29,48.625]],"o":[[-16.25,51.87],[1.501,-3.98],[-13.294,-37.935],[5.298,-22.817]],"v":[[-162.972,-76.089],[-154.807,91.865],[-145.681,82.466],[-160.277,-74.651]],"c":true}]},{"t":72,"s":[{"i":[[-17.647,-41.07],[20.676,-33.78],[0.949,1.378],[15.484,48.625]],"o":[[22.288,51.87],[-2.059,-3.98],[23.261,-37.935],[-7.266,-22.817]],"v":[[3.839,-76.089],[-7.36,91.865],[-12.133,82.466],[0.144,-74.651]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.21960785985,0.239215701818,0.254901975393,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[865.372,259.218]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 9","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[5.462,51.14],[-98.688,0],[0,-83.007],[15.245,-26.998],[5.351,5.622],[0,25.245],[61.179,0],[2.748,-46.673],[-29.946,-41.99]],"o":[[-2.585,-24.204],[49.312,0],[0,10.137],[-5.005,-5.248],[11.851,-23.628],[0,-63.421],[-56.02,0],[0,36.327],[4.209,5.902]],"v":[[-75.154,54.595],[13.996,-100.06],[108.222,25.242],[91.563,114.233],[81.957,104.364],[95.34,24.656],[9.629,-84.327],[-66.94,20.332],[-41.746,121.975]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0.411,51.14],[-5.801,0.165],[0,-83.007],[0.803,-27.212],[1.782,5.472],[0,25.245],[3.596,-0.102],[0,-46.673],[-1.821,-42.152]],"o":[[-0.195,-24.204],[2.899,-0.083],[0,10.137],[-1.666,-5.107],[0.362,-23.782],[0,-63.421],[-3.293,0.094],[0,36.327],[0.265,6.134]],"v":[[-1.534,52.632],[6.106,-93.626],[16.219,22.488],[9.837,114.066],[6.66,104.465],[16.089,21.902],[6.846,-81.8],[2.949,16.159],[3.035,120.799]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0.023,47.03],[-0.321,0.152],[0,-76.336],[0.044,-25.025],[0.099,5.032],[0,23.216],[0.199,-0.094],[0,-42.922],[-0.101,-38.764]],"o":[[-0.011,-22.258],[0.161,-0.076],[0,9.322],[-0.092,-4.697],[0.02,-21.871],[0,-58.324],[-0.182,0.086],[0,33.407],[0.015,5.641]],"v":[[-13.579,49.099],[-12.954,-81.883],[-12.596,21.378],[-15.78,105.596],[-15.956,96.767],[-12.603,20.838],[-12.913,-71.007],[-13.331,15.557],[-16.157,111.788]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[-0.18,51.14],[2.546,0.165],[0,-83.007],[-0.353,-27.212],[-0.782,5.472],[0,25.245],[-1.578,-0.102],[0,-46.673],[0.799,-42.152]],"o":[[0.085,-24.204],[-1.272,-0.083],[0,10.137],[0.731,-5.107],[-0.159,-23.782],[0,-63.421],[1.445,0.094],[0,36.327],[-0.116,6.134]],"v":[[22.237,51.936],[18.883,-94.322],[14.444,21.792],[17.246,113.371],[18.64,103.77],[14.501,21.206],[18.558,-82.495],[20.269,15.463],[20.231,120.104]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[-5.4,51.14],[97.561,0],[0,-83.007],[-15.071,-26.998],[-5.29,5.622],[0,25.245],[-60.481,0],[-2.717,-46.673],[29.604,-41.99]],"o":[[2.556,-24.204],[-48.749,0],[0,10.137],[4.948,-5.248],[-11.715,-23.628],[0,-63.421],[55.381,0],[0,36.327],[-4.161,5.902]],"v":[[92.419,54.595],[4.287,-100.06],[-88.863,25.242],[-72.395,114.233],[-62.899,104.364],[-83.352,26.629],[8.337,-98.984],[84.299,20.332],[59.392,121.975]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[-2.57,51.14],[45.81,0.077],[0,-83.007],[-7.041,-27.097],[-3.043,5.552],[0,25.245],[-28.399,-0.048],[-1.214,-46.673],[17.763,-42.065]],"o":[[1.216,-24.204],[-22.89,-0.038],[0,10.137],[2.846,-5.183],[-5.373,-23.7],[0,-63.421],[26.004,0.043],[0,36.327],[-2.501,6.01]],"v":[[51.802,53.686],[9.504,-97.079],[-40.791,23.966],[-26.185,114.156],[-20.73,104.411],[-30.238,23.38],[11.151,-83.156],[46.464,18.399],[39.162,117.422]],"c":true}]},{"t":72,"s":[{"i":[[5.462,51.14],[-98.688,0],[0,-83.007],[15.245,-26.998],[5.351,5.622],[0,25.245],[61.179,0],[2.748,-46.673],[-29.946,-41.99]],"o":[[-2.585,-24.204],[49.312,0],[0,10.137],[-5.005,-5.248],[11.851,-23.628],[0,-63.421],[-56.02,0],[0,36.327],[4.209,5.902]],"v":[[-75.154,54.595],[13.996,-100.06],[108.222,25.242],[91.563,114.233],[81.957,104.364],[95.34,24.656],[9.629,-84.327],[-66.94,20.332],[-41.746,121.975]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.73,1,1,1,0.865,0.61,0.62,0.627,1,0.22,0.239,0.255]}},"s":{"a":0,"k":[156,38]},"e":{"a":0,"k":[52,-47]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_btZVnqsKTD","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[758.692,223.265]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 112","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[-62.654,0],[-2.227,-2.586],[19.903,-0.16],[13.699,63.134],[-133.907,-3.422],[-0.352,-54.552],[21.188,-44.334],[0.949,1.378],[2.184,49.971],[46.545,0],[0,-70.087]],"o":[[33.098,0],[3.205,3.722],[-37.094,0.299],[-3.677,-16.943],[63.056,1.611],[0.294,45.634],[-2.059,-1.88],[5.074,-14.7],[-2.373,-54.296],[-67.205,0],[0,62.377]],"v":[[-1.715,122.978],[42.485,118.556],[-5.615,130.583],[-100.472,45.188],[9.827,-133.142],[108.295,-11.872],[84.946,101.303],[71.023,83.054],[88.099,-11.863],[3.339,-118.156],[-88.715,-3.444]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-1.423,0],[-0.051,-2.586],[4.022,1.385],[0.337,40.694],[-17.328,0.424],[-0.004,-54.552],[0.439,-44.598],[0.354,1.35],[0.022,49.971],[2.736,-0.078],[0,-70.087]],"o":[[0.752,0],[0.073,3.722],[-3.341,-1.151],[-0.323,-39.09],[4.221,-0.103],[0.003,45.634],[-0.658,-1.823],[-0.3,-14.743],[-0.024,-54.296],[-3.95,0.113],[0,62.377]],"v":[[-9.442,118.56],[-8.438,114.137],[-12.598,122.36],[-23.982,21.746],[-10.89,-120.12],[0.456,-14.626],[-2.734,100.863],[-7.731,83.021],[0.252,-14.618],[-9.055,-113.515],[-13.035,-7.617]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-0.079,0],[-0.003,-2.379],[0.223,1.274],[0.019,37.424],[-0.96,0.39],[0,-50.168],[0.024,-41.014],[0.02,1.242],[0.001,45.956],[0.152,-0.072],[0,-64.454]],"o":[[0.042,0],[0.004,3.423],[-0.185,-1.058],[-0.018,-35.948],[0.234,-0.095],[0,41.966],[-0.036,-1.677],[-0.017,-13.558],[-0.001,-49.933],[-0.219,0.104],[0,57.364]],"v":[[-31.89,107.698],[-31.835,103.631],[-32.065,111.193],[-29.866,18.665],[-28.938,-108.278],[-28.511,-14.784],[-31.519,91.423],[-31.796,75.016],[-28.523,-14.776],[-28.836,-102.204],[-29.259,-8.339]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0.625,0],[0.022,-2.586],[-1.766,1.385],[-0.148,40.694],[7.606,0.424],[0.002,-54.552],[-0.193,-44.598],[-0.155,1.35],[-0.01,49.971],[-1.201,-0.078],[0,-70.087]],"o":[[-0.33,0],[-0.032,3.722],[1.467,-1.151],[0.142,-39.09],[-1.853,-0.103],[-0.001,45.634],[0.289,-1.823],[0.132,-14.743],[0.01,-54.296],[1.734,0.113],[0,62.377]],"v":[[2.793,117.864],[2.352,113.442],[4.178,121.665],[9.175,21.051],[3.428,-120.816],[-1.552,-15.321],[-0.151,100.167],[2.042,82.326],[-1.462,-15.313],[2.623,-114.21],[4.37,-8.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[61.939,0],[2.201,-2.586],[-19.676,-0.161],[-13.543,63.134],[132.378,-3.422],[0.347,-54.552],[-20.946,-44.334],[-0.938,1.379],[-2.159,49.971],[-46.013,0],[0,-70.087]],"o":[[-32.72,0],[-3.168,3.722],[36.67,0.299],[3.635,-16.943],[-62.336,1.611],[-0.291,45.633],[2.036,-1.88],[-5.016,-14.7],[2.346,-54.296],[66.438,0],[0,62.377]],"v":[[-11.85,122.978],[-55.545,118.556],[-7.994,130.583],[85.78,45.188],[-23.26,-133.142],[-120.603,-11.872],[-97.521,101.303],[-83.756,83.054],[-100.638,-11.863],[-16.845,-118.156],[74.157,-3.444]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[28.222,0],[1.28,-2.586],[-10.326,0.556],[-6.18,52.738],[65.765,-1.64],[0.157,-54.552],[-9.528,-44.456],[-0.554,1.365],[-0.973,49.971],[-21.605,-0.036],[0,-70.087]],"o":[[-14.909,0],[-1.842,3.722],[17.661,-0.372],[1.748,-27.204],[-29.466,0.817],[-0.131,45.634],[1.16,-1.854],[-2.127,-14.72],[1.057,-54.296],[31.196,0.052],[0,62.377]],"v":[[-6.659,120.931],[-24.394,116.509],[-3.732,126.774],[42.514,34.328],[-11.206,-127.109],[-59.033,-13.148],[-47.501,101.099],[-39.445,83.039],[-50.033,-13.139],[-9.039,-116.005],[33.146,-5.377]],"c":true}]},{"t":72,"s":[{"i":[[-62.654,0],[-2.227,-2.586],[19.903,-0.16],[13.699,63.134],[-133.907,-3.422],[-0.352,-54.552],[21.188,-44.334],[0.949,1.378],[2.184,49.971],[46.545,0],[0,-70.087]],"o":[[33.098,0],[3.205,3.722],[-37.094,0.299],[-3.677,-16.943],[63.056,1.611],[0.294,45.634],[-2.059,-1.88],[5.074,-14.7],[-2.373,-54.296],[-67.205,0],[0,62.377]],"v":[[-1.715,122.978],[42.485,118.556],[-5.615,130.583],[-100.472,45.188],[9.827,-133.142],[108.295,-11.872],[84.946,101.303],[71.023,83.054],[88.099,-11.863],[3.339,-118.156],[-88.715,-3.444]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294121504,0.238985002041,0.271703183651,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[774.617,248.531]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[-72.555,0],[-2.177,-3.361],[32.647,1.819],[0.279,48.522],[-18.837,18.404],[-40.535,-29.451],[13.641,-11.606],[0,-63.202]],"o":[[27.073,0],[3.948,9.763],[-82.184,-4.578],[-0.394,-68.479],[25.679,-25.088],[-62.035,-20.701],[-13.349,11.358],[0,62.377]],"v":[[39.132,57.558],[86.382,47.936],[21.015,72.278],[-72.276,-64.321],[-32.599,-180.462],[96.115,-191.599],[-15.061,-180.944],[-57.468,-71.614]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-1.648,0],[-0.049,-3.361],[13.978,1.819],[0.095,48.522],[-6.409,18.404],[-4.248,-22.057],[2.891,-8.822],[0,-63.202]],"o":[[0.615,0],[0.09,9.763],[-35.188,-4.578],[-0.134,-68.479],[8.736,-25.088],[-4.958,-15.447],[-2.829,8.633],[0,62.377]],"v":[[33.457,53.14],[34.531,43.518],[29.319,71.296],[4.655,-65.058],[14.98,-183.898],[36.683,-186.501],[32.82,-179.251],[29.794,-75.787]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-0.091,0],[-0.002,-3.091],[-16.625,-7.753],[0.082,48.522],[-5.518,18.404],[-0.235,-20.284],[0.16,-8.113],[0,-58.122]],"o":[[0.034,0],[0.005,8.979],[-41.958,-4.578],[-0.115,-68.479],[7.522,-25.088],[-0.275,-14.206],[-0.157,7.94],[0,57.364]],"v":[[11.054,41.808],[11.113,32.959],[32.03,76.697],[11.12,-65.058],[17.585,-179.672],[14.265,-175.052],[14.051,-168.384],[13.682,-76.757]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0.724,0],[0.014,-3.362],[8.724,-14.668],[-0.076,48.522],[5.112,18.404],[1.865,-22.057],[-1.269,-8.822],[0,-63.202]],"o":[[-0.27,0],[-0.039,9.763],[36.08,-4.578],[0.107,-68.479],[-6.969,-25.088],[2.176,-15.447],[1.242,8.633],[0,62.377]],"v":[[45.761,52.444],[45.29,42.822],[37.227,75.353],[59.465,-65.058],[51.228,-183.898],[44.345,-187.197],[46.041,-179.946],[47.369,-76.482]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[71.726,0],[2.152,-3.361],[-32.275,1.819],[-0.276,48.522],[18.622,18.404],[40.072,-29.451],[-13.485,-11.606],[0,-63.202]],"o":[[-26.764,0],[-3.903,9.763],[81.246,-4.578],[0.389,-68.479],[-25.386,-25.088],[61.326,-20.701],[13.197,11.358],[0,62.377]],"v":[[33.174,57.558],[-13.537,47.936],[51.084,72.278],[143.31,-64.321],[104.086,-180.462],[-23.159,-191.599],[86.748,-180.944],[128.671,-71.614]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[32.681,0],[1.251,-3.361],[-23.477,9.336],[-0.159,48.522],[10.766,18.404],[19.527,-26.025],[-7.129,-10.317],[0,-63.202]],"o":[[-12.195,0],[-2.269,9.763],[37.166,-14.78],[0.225,-68.479],[-14.676,-25.088],[29.296,-18.267],[6.976,10.096],[0,62.377]],"v":[[37.234,55.511],[18.007,45.889],[57.383,71.823],[103.71,-75.121],[75.969,-182.054],[10.831,-189.237],[61.418,-180.159],[81.307,-73.547]],"c":true}]},{"t":72,"s":[{"i":[[-72.555,0],[-2.177,-3.361],[32.647,1.819],[0.279,48.522],[-18.837,18.404],[-40.535,-29.451],[13.641,-11.606],[0,-63.202]],"o":[[27.073,0],[3.948,9.763],[-82.184,-4.578],[-0.394,-68.479],[25.679,-25.088],[-62.035,-20.701],[-13.349,11.358],[0,62.377]],"v":[[39.132,57.558],[86.382,47.936],[21.015,72.278],[-72.276,-64.321],[-32.599,-180.462],[96.115,-191.599],[-15.061,-180.944],[-57.468,-71.614]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.678,0.275,0.318,0.341,0.74,0.275,0.318,0.341,0.803,0.275,0.318,0.341,0.68,1,0.743,0.5,0.805,0]}},"s":{"a":0,"k":[53,-7]},"e":{"a":0,"k":[-61,72]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_gLWNxEIQIq","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,1,1,0.5,1,1,1,1,1,1,1,0,1,0.5,0.6,1,0.2]}},"s":{"a":0,"k":[-66,-107]},"e":{"a":0,"k":[-32,-181]},"t":1,"nm":"Gradient_NZOa4ZOSai","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[731.67,319.8]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[59.542,0],[0,50.149],[-59.542,0],[0,-50.149]],"o":[[-59.542,0],[0,-50.149],[59.542,0],[0,50.149]],"v":[[-0.202,108.615],[-76.055,0.015],[-0.202,-108.585],[75.651,0.015]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[4.111,-0.411],[0,50.149],[-3.5,0.1],[0,-50.149]],"o":[[-4.111,0.411],[0,-50.149],[3.5,-0.1],[0,50.149]],"v":[[-3.003,104.471],[-6.357,-4.158],[-2.272,-106.922],[6.676,-2.739]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0.228,-0.378],[0,46.119],[-0.194,0.092],[0,-46.119]],"o":[[-0.228,0.378],[0,-46.119],[0.194,-0.092],[0,46.119]],"v":[[-25.284,94.543],[-22.639,-5.356],[-22.21,-96.339],[-21.917,-4.051]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[-1.805,-0.411],[0,50.149],[1.536,0.1],[0,-50.149]],"o":[[1.805,0.411],[0,-50.149],[-1.536,-0.1],[0,50.149]],"v":[[9.488,103.775],[10.96,-4.853],[9.167,-107.618],[5.239,-3.435]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[-58.862,0],[0,50.149],[58.862,0],[0,-50.149]],"o":[[58.862,0],[0,-50.149],[-58.862,0],[0,50.149]],"v":[[-0.187,108.615],[74.8,0.015],[-0.187,-108.585],[-75.174,0.015]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[-27.872,-0.19],[0,50.149],[27.638,0.046],[0,-50.149]],"o":[[27.872,0.19],[0,-50.149],[-27.638,-0.046],[0,50.149]],"v":[[2.281,106.695],[37.069,-1.918],[2.002,-107.815],[-34.92,-1.261]],"c":true}]},{"t":72,"s":[{"i":[[59.542,0],[0,50.149],[-59.542,0],[0,-50.149]],"o":[[-59.542,0],[0,-50.149],[59.542,0],[0,50.149]],"v":[[-0.202,108.615],[-76.055,0.015],[-0.202,-108.585],[75.651,0.015]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":7,"s":[{"i":[[0,0],[0,99.837],[63.623,0],[0,-99.837],[-63.623,0]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837],[0,0]],"v":[[-0.202,147.962],[114.997,0.015],[-0.202,-147.932],[-115.402,0.015],[-0.202,147.962]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,99.837],[26.907,0],[0,-99.837],[-27.24,0]],"o":[[27.24,0],[0,-99.837],[-26.907,0],[0,99.837],[0,0]],"v":[[-0.54,146.98],[37.839,-0.476],[1.629,-147.932],[-33.353,-0.476],[-0.54,146.98]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,0],[0,99.837],[29.909,0],[0,-99.837],[-32.481,0]],"o":[[32.481,0],[0,-99.837],[-29.909,0],[0,99.837],[0,0]],"v":[[-0.108,146.98],[26.659,-1.063],[0.663,-147.932],[-26.655,-0.476],[-0.108,146.98]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,0],[0,99.837],[-27.607,0],[0,-99.837],[27.931,0]],"o":[[-27.931,0],[0,-99.837],[27.607,0],[0,99.837],[0,0]],"v":[[-3.072,146.98],[-32.319,-0.476],[-3.458,-147.932],[24.472,-0.476],[-3.072,146.98]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":30,"s":[{"i":[[0,0],[0,99.837],[-62.896,0],[0,-99.837],[62.896,0]],"o":[[-62.896,0],[0,-99.837],[62.896,0],[0,99.837],[0,0]],"v":[[-0.187,147.962],[-114.071,0.015],[-0.187,-147.932],[113.697,0.015],[-0.187,147.962]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[0,99.837],[-48.947,0],[0,-99.837],[49.109,0]],"o":[[-49.109,0],[0,-99.837],[48.947,0],[0,99.837],[0,0]],"v":[[9.387,147.507],[-74.21,-0.212],[8.331,-147.932],[90.275,-0.212],[9.387,147.507]],"c":true}]},{"t":72,"s":[{"i":[[0,0],[0,99.837],[63.623,0],[0,-99.837],[-63.623,0]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837],[0,0]],"v":[[-0.202,147.962],[114.997,0.015],[-0.202,-147.932],[-115.402,0.015],[-0.202,147.962]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.816,0.702,0.553,0.5,0.816,0.702,0.553,1,0.816,0.702,0.553,0,1,0.5,0.5,1,0]}},"s":{"a":0,"k":[55,-124]},"e":{"a":0,"k":[8.5,-62.5]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_e0b9FplC79","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.816,0.702,0.553,0.5,0.816,0.702,0.553,1,0.816,0.702,0.553,0,1,0.5,0.5,1,0]}},"s":{"a":0,"k":[-44,117]},"e":{"a":0,"k":[-18.5,80.5]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_6gBd4ppTZG","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":5,"k":{"a":0,"k":[0,0.506,0.643,0.8,0.239,0.506,0.643,0.8,0.477,0.506,0.643,0.8,0.739,0.496,0.571,0.651,1,0.486,0.498,0.502]}},"s":{"a":0,"k":[-55.5,-113]},"e":{"a":0,"k":[86,84.5]},"t":1,"nm":"Gradient_6ErmQfSO7M","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[768,251]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"ะกะปะพะน 1","bm":0,"hd":false}],"ip":1,"op":38,"st":2,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"LINK L","parent":5,"sr":1,"ks":{"r":{"a":0,"k":45},"p":{"a":0,"k":[-69.922,70.597,0]},"a":{"a":0,"k":[186.078,326.597,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-23.652,0],[0,99.837],[23.81,0],[0,-99.837]],"o":[[23.652,0],[0,-99.837],[-23.81,0],[0,99.837]],"v":[[-1.059,147.947],[27.527,0],[-1.138,-147.947],[-30.127,0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-27.096,0],[0,99.837],[31.021,0],[0,-99.837]],"o":[[27.096,0],[0,-99.837],[-31.021,0],[0,99.837]],"v":[[-1.562,147.947],[27.527,0],[-2.238,-147.947],[-30.127,0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[29.838,0],[0,99.837],[-28.288,0],[0,-99.837]],"o":[[-29.838,0],[0,-99.837],[28.288,0],[0,99.837]],"v":[[1.962,147.947],[-30.947,0],[1.81,-147.947],[19.49,-0.508]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[25.637,0],[0,99.837],[-26.097,0],[0,-99.837]],"o":[[-25.637,0],[0,-99.837],[26.097,0],[0,99.837]],"v":[[1.177,147.947],[-35.597,0],[1.284,-147.947],[36.257,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[64.208,0],[0,99.837],[-64.208,0],[0,-99.837]],"o":[[-64.208,0],[0,-99.837],[64.208,0],[0,99.837]],"v":[[0.505,147.947],[-115.754,0],[0.505,-147.947],[116.764,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[25.637,0],[0,99.837],[-26.097,0],[0,-99.837]],"o":[[-25.637,0],[0,-99.837],[26.097,0],[0,99.837]],"v":[[1.177,147.947],[-35.597,0],[1.284,-147.947],[36.257,0]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[29.838,0],[0,99.837],[-28.288,0],[0,-99.837]],"o":[[-29.838,0],[0,-99.837],[28.288,0],[0,99.837]],"v":[[1.962,147.947],[-30.947,0],[1.81,-147.947],[31.164,0]],"c":true}]},{"t":68,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":40.9},"e":{"a":0,"k":47.1},"o":{"a":0,"k":-16},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.662745118141,0.585888981819,0.483414083719,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-23.652,0],[0,99.837],[23.81,0],[0,-99.837]],"o":[[23.652,0],[0,-99.837],[-23.81,0],[0,99.837]],"v":[[-1.059,147.947],[27.527,0],[-1.138,-147.947],[-30.127,0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-27.096,0],[0,99.837],[31.021,0],[0,-99.837]],"o":[[27.096,0],[0,-99.837],[-31.021,0],[0,99.837]],"v":[[-1.562,147.947],[27.527,0],[-2.238,-147.947],[-30.127,0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[29.838,0],[0,99.837],[-28.288,0],[0,-99.837]],"o":[[-29.838,0],[0,-99.837],[28.288,0],[0,99.837]],"v":[[1.962,147.947],[-30.947,0],[1.81,-147.947],[31.164,0]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[25.637,0],[0,99.837],[-26.097,0],[0,-99.837]],"o":[[-25.637,0],[0,-99.837],[26.097,0],[0,99.837]],"v":[[1.177,147.947],[-35.597,0],[1.284,-147.947],[36.257,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[64.208,0],[0,99.837],[-64.208,0],[0,-99.837]],"o":[[-64.208,0],[0,-99.837],[64.208,0],[0,99.837]],"v":[[0.505,147.947],[-115.754,0],[0.505,-147.947],[116.764,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[25.637,0],[0,99.837],[-26.097,0],[0,-99.837]],"o":[[-25.637,0],[0,-99.837],[26.097,0],[0,99.837]],"v":[[1.177,147.947],[-35.597,0],[1.284,-147.947],[36.257,0]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[29.838,0],[0,99.837],[-28.288,0],[0,-99.837]],"o":[[-29.838,0],[0,-99.837],[28.288,0],[0,99.837]],"v":[[1.962,147.947],[-30.947,0],[1.81,-147.947],[31.164,0]],"c":true}]},{"t":68,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":46.6},"e":{"a":0,"k":83.8},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.23667819798,0.439364284277,0.635294139385,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-23.652,0],[0,99.837],[23.81,0],[0,-99.837]],"o":[[23.652,0],[0,-99.837],[-23.81,0],[0,99.837]],"v":[[-1.059,147.947],[27.527,0],[-1.138,-147.947],[-30.127,0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-27.096,0],[0,99.837],[31.021,0],[0,-99.837]],"o":[[27.096,0],[0,-99.837],[-31.021,0],[0,99.837]],"v":[[-1.562,147.947],[27.527,0],[-2.238,-147.947],[-30.127,0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[29.838,0],[0,99.837],[-28.288,0],[0,-99.837]],"o":[[-29.838,0],[0,-99.837],[28.288,0],[0,99.837]],"v":[[1.962,147.947],[-30.947,0],[1.81,-147.947],[31.164,0]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[25.637,0],[0,99.837],[-26.097,0],[0,-99.837]],"o":[[-25.637,0],[0,-99.837],[26.097,0],[0,99.837]],"v":[[1.177,147.947],[-35.597,0],[1.284,-147.947],[36.257,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[64.208,0],[0,99.837],[-64.208,0],[0,-99.837]],"o":[[-64.208,0],[0,-99.837],[64.208,0],[0,99.837]],"v":[[0.505,147.947],[-115.754,0],[0.505,-147.947],[116.764,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[25.637,0],[0,99.837],[-26.097,0],[0,-99.837]],"o":[[-25.637,0],[0,-99.837],[26.097,0],[0,99.837]],"v":[[1.177,147.947],[-35.597,0],[1.284,-147.947],[36.257,0]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[29.838,0],[0,99.837],[-28.288,0],[0,-99.837]],"o":[[-29.838,0],[0,-99.837],[28.288,0],[0,99.837]],"v":[[1.962,147.947],[-30.947,0],[1.81,-147.947],[31.164,0]],"c":true}]},{"t":68,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":82},"e":{"a":0,"k":100},"o":{"a":0,"k":63},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.211764723063,0.200000017881,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-23.652,0],[0,99.837],[23.81,0],[0,-99.837]],"o":[[23.652,0],[0,-99.837],[-23.81,0],[0,99.837]],"v":[[-1.059,147.947],[27.527,0],[-1.138,-147.947],[-30.127,0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-27.096,0],[0,99.837],[31.021,0],[0,-99.837]],"o":[[27.096,0],[0,-99.837],[-31.021,0],[0,99.837]],"v":[[-1.562,147.947],[27.527,0],[-2.238,-147.947],[-30.127,0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[29.838,0],[0,99.837],[-28.288,0],[0,-99.837]],"o":[[-29.838,0],[0,-99.837],[28.288,0],[0,99.837]],"v":[[1.962,147.947],[-30.947,0],[1.81,-147.947],[31.164,0]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[25.637,0],[0,99.837],[-26.097,0],[0,-99.837]],"o":[[-25.637,0],[0,-99.837],[26.097,0],[0,99.837]],"v":[[1.177,147.947],[-35.597,0],[1.284,-147.947],[36.257,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[64.208,0],[0,99.837],[-64.208,0],[0,-99.837]],"o":[[-64.208,0],[0,-99.837],[64.208,0],[0,99.837]],"v":[[0.505,147.947],[-115.754,0],[0.505,-147.947],[116.764,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[25.637,0],[0,99.837],[-26.097,0],[0,-99.837]],"o":[[-25.637,0],[0,-99.837],[26.097,0],[0,99.837]],"v":[[1.177,147.947],[-35.597,0],[1.284,-147.947],[36.257,0]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[29.838,0],[0,99.837],[-28.288,0],[0,-99.837]],"o":[[-29.838,0],[0,-99.837],[28.288,0],[0,99.837]],"v":[[1.962,147.947],[-30.947,0],[1.81,-147.947],[31.164,0]],"c":true}]},{"t":68,"s":[{"i":[[-63.623,0],[0,99.837],[63.623,0],[0,-99.837]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837]],"v":[[0,147.947],[115.199,0],[0,-147.947],[-115.199,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.423529446125,0.427451014519,0.415686309338,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.843,325.871]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"STR 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-1.194,0],[0,50.149],[0.936,0],[0,-50.149]],"o":[[1.194,0],[0,-50.149],[-0.936,0],[0,50.149]],"v":[[-13.762,109.048],[-12.096,0.746],[-14.075,-108.153],[-14.848,-0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-1.194,0],[0,50.149],[0.936,0],[0,-50.149]],"o":[[1.194,0],[0,-50.149],[-0.936,0],[0,50.149]],"v":[[-24.088,105.87],[-27.056,1.143],[-21.754,-109.476],[-29.807,0.099]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[1.719,0],[0,47.228],[-1.719,0],[0,-47.228]],"o":[[-1.719,0],[0,-47.228],[1.719,0],[0,47.228]],"v":[[26.159,101.308],[31.021,-0.712],[24.404,-106.285],[30.643,-0.712]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[1.989,0],[0,47.228],[-1.989,0],[0,-47.228]],"o":[[-1.989,0],[0,-47.228],[1.989,0],[0,47.228]],"v":[[15.747,102.577],[14.221,0.303],[15.747,-101.971],[17.213,0.303]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[60.09,0],[0,50.149],[-60.09,0],[0,-50.149]],"o":[[-60.09,0],[0,-50.149],[60.09,0],[0,50.149]],"v":[[0.505,108.6],[-76.045,0],[0.505,-108.6],[77.056,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[1.989,0],[0,47.228],[-1.989,0],[0,-47.228]],"o":[[-1.989,0],[0,-47.228],[1.989,0],[0,47.228]],"v":[[-12.841,101.96],[-16.835,0.097],[-12.841,-102.588],[-13.843,0.097]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[1.719,0],[0,47.228],[-1.719,0],[0,-47.228]],"o":[[-1.719,0],[0,-47.228],[1.719,0],[0,47.228]],"v":[[-26.482,101.656],[-21.62,-0.364],[-28.237,-105.937],[-21.998,-0.364]],"c":true}]},{"t":68,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":87.4},"e":{"a":0,"k":92.4},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.662745118141,0.584313750267,0.482352972031,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-1.194,0],[0,50.149],[0.936,0],[0,-50.149]],"o":[[1.194,0],[0,-50.149],[-0.936,0],[0,50.149]],"v":[[-13.762,109.048],[-12.096,0.746],[-14.075,-108.153],[-14.848,-0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-1.194,0],[0,50.149],[0.936,0],[0,-50.149]],"o":[[1.194,0],[0,-50.149],[-0.936,0],[0,50.149]],"v":[[-24.088,105.87],[-27.056,1.143],[-21.754,-109.476],[-29.807,0.099]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[1.719,0],[0,47.228],[-1.719,0],[0,-47.228]],"o":[[-1.719,0],[0,-47.228],[1.719,0],[0,47.228]],"v":[[26.159,101.308],[31.021,-0.712],[24.842,-106.793],[30.643,-0.712]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[1.989,0],[0,47.228],[-1.989,0],[0,-47.228]],"o":[[-1.989,0],[0,-47.228],[1.989,0],[0,47.228]],"v":[[15.747,102.577],[14.221,0.303],[15.747,-101.971],[17.213,0.303]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[60.09,0],[0,50.149],[-60.09,0],[0,-50.149]],"o":[[-60.09,0],[0,-50.149],[60.09,0],[0,50.149]],"v":[[0.505,108.6],[-76.045,0],[0.505,-108.6],[77.056,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[1.989,0],[0,47.228],[-1.989,0],[0,-47.228]],"o":[[-1.989,0],[0,-47.228],[1.989,0],[0,47.228]],"v":[[-12.841,101.96],[-16.835,0.097],[-12.841,-102.588],[-13.843,0.097]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[1.719,0],[0,47.228],[-1.719,0],[0,-47.228]],"o":[[-1.719,0],[0,-47.228],[1.719,0],[0,47.228]],"v":[[-26.482,101.656],[-21.62,-0.364],[-27.798,-106.444],[-21.998,-0.364]],"c":true}]},{"t":68,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":0},"e":{"a":0,"k":42.9},"o":{"a":0,"k":-28},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294133425,0.4392157197,0.635294139385,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-1.194,0],[0,50.149],[0.936,0],[0,-50.149]],"o":[[1.194,0],[0,-50.149],[-0.936,0],[0,50.149]],"v":[[-13.762,109.048],[-12.096,0.746],[-14.075,-108.153],[-14.848,-0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-1.194,0],[0,50.149],[0.936,0],[0,-50.149]],"o":[[1.194,0],[0,-50.149],[-0.936,0],[0,50.149]],"v":[[-24.088,105.87],[-27.056,1.143],[-21.754,-109.476],[-29.807,0.099]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[1.719,0],[0,47.228],[-1.719,0],[0,-47.228]],"o":[[-1.719,0],[0,-47.228],[1.719,0],[0,47.228]],"v":[[26.159,101.308],[31.021,-0.712],[24.842,-107.047],[30.643,-0.712]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[1.989,0],[0,47.228],[-1.989,0],[0,-47.228]],"o":[[-1.989,0],[0,-47.228],[1.989,0],[0,47.228]],"v":[[15.747,102.577],[14.221,0.303],[15.747,-101.971],[17.213,0.303]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[60.09,0],[0,50.149],[-60.09,0],[0,-50.149]],"o":[[-60.09,0],[0,-50.149],[60.09,0],[0,50.149]],"v":[[0.505,108.6],[-76.045,0],[0.505,-108.6],[77.056,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[1.989,0],[0,47.228],[-1.989,0],[0,-47.228]],"o":[[-1.989,0],[0,-47.228],[1.989,0],[0,47.228]],"v":[[-12.841,101.96],[-16.835,0.097],[-12.841,-102.588],[-13.843,0.097]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[1.719,0],[0,47.228],[-1.719,0],[0,-47.228]],"o":[[-1.719,0],[0,-47.228],[1.719,0],[0,47.228]],"v":[[-26.482,101.656],[-21.62,-0.364],[-27.798,-106.698],[-21.998,-0.364]],"c":true}]},{"t":68,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":58.1},"e":{"a":0,"k":94.4},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.423529446125,0.427451014519,0.415686309338,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-1.194,0],[0,50.149],[0.936,0],[0,-50.149]],"o":[[1.194,0],[0,-50.149],[-0.936,0],[0,50.149]],"v":[[-13.762,109.048],[-12.096,0.746],[-14.075,-108.153],[-14.848,-0.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-1.194,0],[0,50.149],[0.936,0],[0,-50.149]],"o":[[1.194,0],[0,-50.149],[-0.936,0],[0,50.149]],"v":[[-24.088,105.87],[-27.056,1.143],[-21.754,-109.476],[-29.807,0.099]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[1.719,0],[0,47.228],[-1.719,0],[0,-47.228]],"o":[[-1.719,0],[0,-47.228],[1.719,0],[0,47.228]],"v":[[26.159,101.308],[31.021,-0.712],[24.184,-107.301],[30.643,-0.712]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[1.989,0],[0,47.228],[-1.989,0],[0,-47.228]],"o":[[-1.989,0],[0,-47.228],[1.989,0],[0,47.228]],"v":[[15.747,102.577],[14.221,0.303],[15.747,-101.971],[17.213,0.303]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[60.09,0],[0,50.149],[-60.09,0],[0,-50.149]],"o":[[-60.09,0],[0,-50.149],[60.09,0],[0,50.149]],"v":[[0.505,108.6],[-76.045,0],[0.505,-108.6],[77.056,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[1.989,0],[0,47.228],[-1.989,0],[0,-47.228]],"o":[[-1.989,0],[0,-47.228],[1.989,0],[0,47.228]],"v":[[-12.841,101.96],[-16.835,0.097],[-12.841,-102.588],[-13.843,0.097]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[1.719,0],[0,47.228],[-1.719,0],[0,-47.228]],"o":[[-1.719,0],[0,-47.228],[1.719,0],[0,47.228]],"v":[[-26.482,101.656],[-21.62,-0.364],[-28.456,-106.952],[-21.998,-0.364]],"c":true}]},{"t":68,"s":[{"i":[[-59.542,0],[0,50.149],[59.542,0],[0,-50.149]],"o":[[59.542,0],[0,-50.149],[-59.542,0],[0,50.149]],"v":[[0,108.6],[75.853,0],[0,-108.6],[-75.853,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.211764723063,0.200000017881,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7.5},"lc":2,"lj":1,"ml":22.93,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.843,325.871]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"STR 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-55.5,-4.5],[24,-21.5],[-4,-2.5],[-46.75,-17],[5.1,12.857]],"o":[[-28.5,-13.75],[1,12],[9.5,-10],[-40.5,-29],[-3.452,-8.704]],"v":[[33.5,-43.25],[-69.75,-25.25],[-49,9.25],[39.5,-3],[-40.048,-23.796]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-20.77,-4.5],[5.695,-21.5],[-0.949,-2.5],[-4.966,-17],[1.21,12.857]],"o":[[-10.666,-13.75],[0.237,12],[2.254,-10],[-1.074,-18.333],[-0.819,-8.704]],"v":[[11.273,-43.25],[-20.69,-23.46],[-25.463,9.996],[-11.934,-1.657],[-9.465,-23.796]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-9.857,4.063],[5.695,-21.5],[-0.949,-2.5],[-4.966,-17],[-6.421,12.411]],"o":[[-13.896,-13.75],[0.237,12],[2.254,-10],[-1.074,-18.333],[4.017,-7.765]],"v":[[13.992,-43.25],[-20.69,-23.46],[-25.463,9.996],[-25.172,11.581],[-12.245,-26.311]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[24.676,-4.5],[-6.47,-21.5],[1.078,-2.5],[6.561,-11.154],[-2.267,12.857]],"o":[[12.671,-13.75],[1.981,8.246],[-2.561,-10],[2.064,-22.701],[1.535,-8.704]],"v":[[-13.377,-43.25],[19.423,-26.138],[24.03,2.144],[7.275,9.631],[12.324,-34.106]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[22.765,-4.5],[-7.485,-21.5],[1.247,-2.5],[14.58,-17],[-2.092,12.857]],"o":[[11.69,-13.75],[-0.312,12],[-2.963,-10],[-1.246,-21.301],[1.416,-8.704]],"v":[[-12.742,-43.25],[21.818,-25.25],[15.346,9.25],[7.383,13.692],[10.969,-34.106]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[56.01,-4.5],[-24.221,-21.5],[4.037,-2.5],[47.18,-17],[-5.147,12.857]],"o":[[28.762,-13.75],[-1.009,12],[-9.587,-10],[40.872,-29],[3.484,-8.704]],"v":[[-33.709,-43.25],[70.49,-25.25],[49.55,9.25],[-39.764,-3],[40.515,-23.796]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[22.765,-4.5],[-7.485,-21.5],[1.247,-2.5],[14.58,-17],[-2.092,12.857]],"o":[[11.69,-13.75],[-0.312,12],[-2.963,-10],[-1.246,-21.301],[1.416,-8.704]],"v":[[-12.742,-43.25],[21.818,-25.25],[15.346,9.25],[7.383,13.692],[10.969,-34.106]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[24.676,-4.5],[-6.47,-21.5],[1.078,-2.5],[6.561,-11.154],[-2.267,12.857]],"o":[[12.671,-13.75],[1.981,8.246],[-2.561,-10],[2.064,-22.701],[1.535,-8.704]],"v":[[-13.377,-43.25],[19.423,-26.138],[24.03,2.144],[7.275,9.631],[12.324,-34.106]],"c":true}]},{"t":68,"s":[{"i":[[-55.5,-4.5],[24,-21.5],[-4,-2.5],[-46.75,-17],[5.1,12.857]],"o":[[-28.5,-13.75],[1,12],[9.5,-10],[-40.5,-29],[-3.452,-8.704]],"v":[[33.5,-43.25],[-69.75,-25.25],[-49,9.25],[39.5,-3],[-40.048,-23.796]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.21960785985,0.239215701818,0.254901975393,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":30},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[256,256]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shad","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[67.675,0],[0,65],[-64.622,0],[0,-65.5]],"o":[[-53.825,0],[0,-55.413],[64.622,0],[0,55.413]],"v":[[-6.675,121],[-93,1],[-6.675,-119],[83.151,1]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[2.127,0],[0,65],[-2.269,0],[0,-65.5]],"o":[[-1.692,0],[0,-55.413],[2.269,0],[0,55.413]],"v":[[-14.066,112.049],[-15.812,0.702],[-6.197,-119],[-11.961,1.746]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[2.127,0],[0,65],[-2.269,0],[0,-65.5]],"o":[[-1.692,0],[0,-55.413],[2.269,0],[0,55.413]],"v":[[-24.392,108.872],[-30.772,1.099],[-20.031,-117.61],[-26.921,2.143]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[-1.954,0],[0,61.214],[1.866,0],[0,-61.685]],"o":[[1.554,0],[0,-52.185],[-1.866,0],[0,52.185]],"v":[[23.292,110.448],[30.399,0.23],[23.95,-114.81],[30.837,0.23]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-2.26,0],[0,61.214],[2.158,0],[0,-61.685]],"o":[[1.798,0],[0,-52.185],[-2.158,0],[0,52.185]],"v":[[15.761,114.255],[17.345,1.245],[15.761,-111.764],[13.871,1.245]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[-68.297,0],[0,65],[65.217,0],[0,-65.5]],"o":[[54.32,0],[0,-55.413],[-65.217,0],[0,55.413]],"v":[[6.835,121],[93.954,1],[6.835,-119],[-83.816,1]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[-2.26,0],[0,61.214],[2.158,0],[0,-61.685]],"o":[[1.798,0],[0,-52.185],[-2.158,0],[0,52.185]],"v":[[-12.827,113.638],[-13.711,1.04],[-12.827,-112.381],[-17.185,1.04]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-1.954,0],[0,61.214],[1.866,0],[0,-61.685]],"o":[[1.554,0],[0,-52.185],[-1.866,0],[0,52.185]],"v":[[-29.349,110.797],[-22.242,0.579],[-28.691,-114.461],[-21.804,0.579]],"c":true}]},{"t":68,"s":[{"i":[[67.675,0],[0,65],[-64.622,0],[0,-65.5]],"o":[[-53.825,0],[0,-55.413],[64.622,0],[0,55.413]],"v":[[-6.675,121],[-93,1],[-6.675,-119],[83.151,1]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[-55.25,0],[0,93.125],[57.99,0],[0,-93.125]],"o":[[43.511,0],[0,-93.125],[-57.99,0],[0,103.5]],"v":[[-6.75,139],[97,1],[-6,-137],[-107,1]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-10.925,-2.591],[0,93.125],[15.892,-0.041],[0,-93.125]],"o":[[15.739,3.733],[0,-93.125],[-21.702,0.056],[0,103.5]],"v":[[-10.11,137.061],[5.072,-0.044],[-3.51,-137],[-28.335,1.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-12.516,-2.591],[0,93.125],[6.591,15.759],[0,-93.125]],"o":[[-7.162,-6.765],[0,-93.125],[-16.842,4.506],[0,103.5]],"v":[[-7.4,139.444],[-9.226,-0.574],[-8.18,-137.53],[-28.335,1.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[8.906,-1.575],[0,87.7],[-15.143,-2.29],[0,-93.125]],"o":[[-13.206,2.336],[0,-87.7],[11.296,1.709],[0,103.5]],"v":[[-2.782,138.492],[-19.261,-7.167],[-2.159,-140.807],[1.034,-2.299]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[22.263,0],[0,87.7],[-23.787,0],[0,-93.125]],"o":[[-17.533,0],[0,-87.7],[23.787,0],[0,103.5]],"v":[[3.613,139],[-13.895,-5.137],[3.46,-137],[33.435,1]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[55.758,0],[0,93.125],[-58.523,0],[0,-93.125]],"o":[[-43.912,0],[0,-93.125],[58.523,0],[0,103.5]],"v":[[6.911,139],[-97.793,1],[6.154,-137],[108.083,1]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[13.869,0.367],[0,87.7],[-15.667,5.11],[0,-93.125]],"o":[[-6.507,-0.172],[0,-87.7],[14.021,-4.573],[0,103.5]],"v":[[-7.287,135.915],[-15.129,-1.023],[3.46,-137],[14.102,-1.468]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[25.794,2.119],[0,87.7],[-15.304,-0.576],[0,-93.125]],"o":[[-8.636,-0.71],[0,-87.7],[25.762,0.969],[0,103.5]],"v":[[4.831,139],[-1.693,1.772],[4.185,-137],[28.697,1]],"c":true}]},{"t":68,"s":[{"i":[[-55.25,0],[0,93.125],[57.99,0],[0,-93.125]],"o":[[43.511,0],[0,-93.125],[-57.99,0],[0,103.5]],"v":[[-6.75,139],[97,1],[-6,-137],[-107,1]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.996,326.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Big White","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[91,-4],[-1,-103.5],[36.5,0],[34,23],[-66,-1],[-0.497,75.058]],"o":[[63.5,11],[0.773,80.003],[-50.09,0],[11,21],[77.017,1.167],[0.5,-75.5]],"v":[[-8,-48.5],[96.5,96],[9,233],[-95,188],[5,248],[115,99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[34.056,-4],[-0.237,-103.5],[7.089,0.022],[8.068,23],[-24.536,-1],[-0.118,75.058]],"o":[[14.999,9.713],[0.183,80.003],[-18.621,-0.058],[2.61,21],[28.632,1.167],[0.119,-75.5]],"v":[[-4.258,-48.5],[14.134,96.448],[2.16,233],[-22.504,188],[0.673,248],[27.325,99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[44.37,-4],[-0.237,-103.5],[19.821,-6.087],[8.068,23],[-28.109,-1],[-0.118,75.058]],"o":[[35.103,9.048],[0.183,80.002],[-20.393,6.263],[2.61,21],[32.801,1.167],[0.119,-75.5]],"v":[[-6.242,-48.5],[23.465,97.324],[2.155,233],[-22.504,188],[0.451,248],[27.325,99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[-40.46,-4],[0.27,-103.5],[-17.118,0],[-9.166,23],[30.953,-1],[0.134,75.058]],"o":[[-28.233,11],[-0.208,80.002],[23.491,0],[-2.965,21],[-36.12,1.167],[-0.135,-75.5]],"v":[[5.075,-48.5],[-19.057,94.985],[-2.555,233],[25.462,188],[-0.679,248],[-31.15,99]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-37.327,-4],[0.312,-103.5],[-14.708,0],[-10.604,23],[26.595,-1],[0.155,75.058]],"o":[[-26.047,11],[-0.241,80.003],[20.184,0],[-3.431,21],[-31.034,1.167],[-0.156,-75.5]],"v":[[4.281,-48.5],[-19.967,93.791],[-2.733,233],[29.692,188],[-1.122,248],[-35.8,99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[-91.837,-4],[1.009,-103.5],[-36.836,0],[-34.313,23],[66.607,-1],[0.502,75.058]],"o":[[-64.084,11],[-0.78,80.003],[50.551,0],[-11.101,21],[-77.725,1.167],[-0.505,-75.5]],"v":[[8.173,-48.5],[-97.289,96],[-8.984,233],[95.973,188],[-4.947,248],[-115.959,99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[-37.327,-4],[0.312,-103.5],[-14.708,0],[-10.604,23],[26.595,-1],[0.155,75.058]],"o":[[-26.047,11],[-0.241,80.003],[20.184,0],[-3.431,21],[-31.034,1.167],[-0.156,-75.5]],"v":[[4.281,-48.5],[-30.031,96],[-2.733,233],[29.692,188],[-1.122,248],[-35.8,99]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-40.46,-4],[0.27,-103.5],[-17.118,0],[-9.166,23],[30.953,-1],[0.134,75.058]],"o":[[-28.233,11],[-0.208,80.003],[23.491,0],[-2.965,21],[-36.12,1.167],[-0.135,-75.5]],"v":[[5.075,-48.5],[-26.163,96],[-2.555,233],[25.462,188],[-0.679,248],[-31.15,99]],"c":true}]},{"t":68,"s":[{"i":[[91,-4],[-1,-103.5],[36.5,0],[34,23],[-66,-1],[-0.497,75.058]],"o":[[63.5,11],[0.773,80.003],[-50.09,0],[11,21],[77.017,1.167],[0.5,-75.5]],"v":[[-8,-48.5],[96.5,96],[9,233],[-95,188],[5,248],[115,99]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.816,0.702,0.553,0.5,0.816,0.702,0.553,1,0.816,0.702,0.553,0.475,1,0.737,0.5,1,0]}},"s":{"a":0,"k":[86,-16]},"e":{"a":0,"k":[73.5,2.5]},"t":1,"nm":"Gradient_9HnbnjCVhC","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.435,0.239,0.271,0.5,0.435,0.239,0.271,1,0.435,0.239,0.271,0.918,1,0.959,0.56,1,0.12]}},"s":{"a":0,"k":[-9.5,79]},"e":{"a":0,"k":[107.5,125]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_VNflvBjTtI","hd":false},{"ty":"fl","c":{"a":0,"k":[0.21960785985,0.239215701818,0.254901975393,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[256,256]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Big Shad","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[59.542,0],[0,50.149],[-59.542,0],[0,-50.149]],"o":[[-59.542,0],[0,-50.149],[59.542,0],[0,50.149]],"v":[[-0.202,108.615],[-76.055,0.015],[-0.202,-108.585],[75.651,0.015]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[1.194,0],[0,50.149],[-0.936,0],[0,-50.149]],"o":[[-1.194,0],[0,-50.149],[0.936,0],[0,50.149]],"v":[[-13.964,109.063],[-15.05,-0.283],[-14.277,-108.138],[-12.298,0.761]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[1.194,0],[0,50.149],[-0.936,0],[0,-50.149]],"o":[[-1.194,0],[0,-50.149],[0.936,0],[0,50.149]],"v":[[-24.29,105.885],[-30.01,0.114],[-21.956,-109.461],[-27.258,1.158]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[-1.719,0],[0,47.228],[1.719,0],[0,-47.228]],"o":[[1.719,0],[0,-47.228],[-1.719,0],[0,47.228]],"v":[[25.957,101.323],[30.441,-0.697],[24.421,-106.778],[30.818,-0.697]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-1.989,0],[0,47.228],[1.989,0],[0,-47.228]],"o":[[1.989,0],[0,-47.228],[-1.989,0],[0,47.228]],"v":[[15.545,102.592],[17.011,0.318],[15.545,-101.956],[14.019,0.318]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[-60.089,0],[0,50.149],[60.089,0],[0,-50.149]],"o":[[60.089,0],[0,-50.149],[-60.089,0],[0,50.149]],"v":[[0.303,108.615],[76.853,0.015],[0.303,-108.585],[-76.247,0.015]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[-1.989,0],[0,47.228],[1.989,0],[0,-47.228]],"o":[[1.989,0],[0,-47.228],[-1.989,0],[0,47.228]],"v":[[-13.043,101.975],[-14.045,0.112],[-13.043,-102.573],[-17.037,0.112]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[-1.719,0],[0,47.228],[1.719,0],[0,-47.228]],"o":[[1.719,0],[0,-47.228],[-1.719,0],[0,47.228]],"v":[[-26.684,101.672],[-22.2,-0.349],[-28.22,-106.429],[-21.822,-0.349]],"c":true}]},{"t":68,"s":[{"i":[[59.542,0],[0,50.149],[-59.542,0],[0,-50.149]],"o":[[-59.542,0],[0,-50.149],[59.542,0],[0,50.149]],"v":[[-0.202,108.615],[-76.055,0.015],[-0.202,-108.585],[75.651,0.015]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":2,"s":[{"i":[[0,0],[0,99.837],[63.623,0],[0,-99.837],[-63.623,0]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837],[0,0]],"v":[[-0.202,147.962],[114.997,0.015],[-0.202,-147.932],[-115.402,0.015],[-0.202,147.962]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,99.837],[23.81,0],[0,-99.837],[-23.652,0]],"o":[[23.652,0],[0,-99.837],[-23.81,0],[0,99.837],[0,0]],"v":[[-1.261,147.962],[27.325,0.015],[-1.34,-147.932],[-30.329,0.313],[-1.261,147.962]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[0,99.837],[31.021,0],[0,-99.837],[-27.096,0]],"o":[[27.096,0],[0,-99.837],[-31.021,0],[0,99.837],[0,0]],"v":[[-1.764,147.962],[27.325,0.015],[-2.44,-147.932],[-30.329,0.313],[-1.764,147.962]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[0,99.837],[-28.287,0],[0,-99.837],[29.838,0]],"o":[[-29.838,0],[0,-99.837],[28.287,0],[0,99.837],[0,0]],"v":[[1.76,147.962],[-31.149,0.015],[1.607,-147.932],[30.962,0.015],[1.76,147.962]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,99.837],[-26.097,0],[0,-99.837],[25.637,0]],"o":[[-25.637,0],[0,-99.837],[26.097,0],[0,99.837],[0,0]],"v":[[0.975,147.962],[-35.8,0.015],[1.082,-147.932],[36.055,0.015],[0.975,147.962]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":25,"s":[{"i":[[0,0],[0,99.837],[-64.208,0],[0,-99.837],[64.208,0]],"o":[[-64.208,0],[0,-99.837],[64.208,0],[0,99.837],[0,0]],"v":[[0.303,147.962],[-115.956,0.015],[0.303,-147.932],[116.562,0.015],[0.303,147.962]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34,"s":[{"i":[[0,0],[0,99.837],[-26.097,0],[0,-99.837],[25.637,0]],"o":[[-25.637,0],[0,-99.837],[26.097,0],[0,99.837],[0,0]],"v":[[0.975,147.962],[-35.8,0.015],[1.082,-147.932],[36.055,0.015],[0.975,147.962]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[{"i":[[0,0],[0,99.837],[-28.287,0],[0,-99.837],[29.838,0]],"o":[[-29.838,0],[0,-99.837],[28.287,0],[0,99.837],[0,0]],"v":[[1.76,147.962],[-31.149,0.015],[1.607,-147.932],[30.962,0.015],[1.76,147.962]],"c":true}]},{"t":68,"s":[{"i":[[0,0],[0,99.837],[63.623,0],[0,-99.837],[-63.623,0]],"o":[[63.623,0],[0,-99.837],[-63.623,0],[0,99.837],[0,0]],"v":[[-0.202,147.962],[114.997,0.015],[-0.202,-147.932],[-115.402,0.015],[-0.202,147.962]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.435,0.239,0.271,0.5,0.435,0.239,0.271,1,0.435,0.239,0.271,0,0,0.08,0.5,0.16,1,0.397,1,0.635,1,0.817,0.5,1,0]}},"s":{"a":0,"k":[-98.707,53.707]},"e":{"a":0,"k":[-60.207,56.707]},"t":1,"nm":"Gradient_Hy6M6L02ec","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":5,"k":{"a":0,"k":[0.315,0.816,0.702,0.553,0.412,0.673,0.729,0.776,0.51,0.529,0.757,1,0.755,0.529,0.757,1,1,0.529,0.757,1,0.517,1,0.759,0.5,1,0]}},"s":{"a":0,"k":[-43.146,75.475]},"e":{"a":0,"k":[-77.889,131.218]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_4evG0lsH8C","hd":false},{"ty":"fl","c":{"a":0,"k":[0.505882382393,0.643137276173,0.800000071526,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.996,326.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"FILL","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[186.078,326.597]},"a":{"a":0,"k":[186.078,326.597]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":-45},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":1,"op":38,"st":2,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"BODY Bubble","parent":10,"sr":1,"ks":{"p":{"a":0,"k":[154.02,380.499,0]},"a":{"a":0,"k":[154.02,380.499,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-4.387,-2.132],[-70.058,22.506],[-3.837,72.844]],"o":[[3.883,1.887],[79.467,-25.528],[0,0]],"v":[[-69.281,44.377],[101.519,40.439],[217.807,-113.151]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.466666668653,0.466666668653,0.466666668653,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-12.655,-20.292],[-10.619,-3.956]],"o":[[2.332,42.118],[11.602,18.604],[0,0]],"v":[[-217.807,-113.176],[-191.477,-25.646],[-149.351,10.669]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.466666668653,0.466666668653,0.466666668653,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[254.017,354.888]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[92.918,92.918]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Layer 8","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-68.816,21.924],[11.435,100.018],[142.983,0],[-0.105,-111.016],[-14.184,-22.743]],"o":[[98.763,-31.464],[-11.012,-96.322],[-146.477,0],[0.049,52.004],[11.602,18.604]],"v":[[101.546,145.257],[215.761,-64.07],[-5.99,-217.994],[-218.218,-24.382],[-191.45,79.172]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.607843160629,0.607843160629,0.607843160629,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[253.992,257.493]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[92.918,92.918]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Layer 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[92.161,-29.367],[0,0],[0,0],[11.604,18.599],[0.051,52.005],[0,0],[-179.831,-7.96],[-0.969,48.466]],"o":[[-68.809,21.923],[0,0],[-7.352,-2.977],[-14.184,-22.749],[0,0],[2.131,37.668],[222.466,9.847],[5.761,90.468]],"v":[[101.543,58.42],[-59.834,64.507],[-156.247,25.953],[-191.447,-7.667],[-218.214,-111.228],[-218.214,-111.911],[-8.028,33.265],[217.524,-131.153]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588235318661,0.588235318661,0.588235318661,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[253.991,338.185]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[92.918,92.918]},"r":{"a":0,"k":0},"o":{"a":0,"k":20},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Layer 115","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-15.716],[57.535,0],[0,15.716],[-57.535,0]],"o":[[0,15.716],[-57.535,0],[0,-15.716],[57.535,0]],"v":[[104.176,0],[0,28.457],[-104.176,0],[0,-28.457]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[254.017,82.87]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[92.918,92.918]},"r":{"a":0,"k":0},"o":{"a":0,"k":40},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Layer 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[24.218,-38.025],[5.7,51.474],[138.536,0],[-0.102,-111.015],[-10.89,-21.098],[0.051,51.413],[-146.48,0],[-11.013,-96.321]],"o":[[18.416,-36.434],[-10.666,-96.321],[-141.922,0],[0.031,43.674],[-13.99,-22.627],[-0.102,-111.015],[142.982,0],[6.475,56.644]],"v":[[192.203,149.065],[209.049,15.556],[-5.802,-138.368],[-211.425,55.242],[-191.928,147.331],[-218.215,44.546],[-5.985,-149.065],[215.758,4.859]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[253.992,193.443]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[92.918,92.918]},"r":{"a":0,"k":0},"o":{"a":0,"k":50},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Layer 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-68.816,21.924],[11.435,100.018],[142.983,0],[-0.105,-111.016],[-14.184,-22.743],[-7.35,-2.981]],"o":[[0,0],[98.763,-31.464],[-11.012,-96.322],[-146.477,0],[0.049,52.004],[11.602,18.604],[0,0]],"v":[[-59.838,151.347],[101.546,145.257],[215.761,-64.07],[-5.99,-217.994],[-218.218,-24.382],[-191.45,79.172],[-156.253,112.796]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.303,0.988,0.988,0.988,0.909,0.796,0.796,0.796,1,0.604,0.604,0.604]}},"s":{"a":0,"k":[-0.306,-33.251]},"e":{"a":0,"k":[226.698,-32.932]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_rM7mD7EyFu","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[253.992,257.493]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[92.918,92.918]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Layer 1","bm":0,"hd":false}],"ip":36,"op":182,"st":2,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Tail Bubble","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.597],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":33,"s":[20]},{"i":{"x":[0.7],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":49,"s":[-8]},{"i":{"x":[0.7],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":60,"s":[5]},{"i":{"x":[0.7],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":72,"s":[-5]},{"i":{"x":[0.7],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":86,"s":[1]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":102,"s":[-1]},{"t":124,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.49,"y":0},"t":33,"s":[197.276,249.05,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.7,"y":1},"o":{"x":0.5,"y":0},"t":45,"s":[72.526,480.55,0],"to":[0,0,0],"ti":[0,0,0]},{"t":56,"s":[83.026,460.05,0]}]},"a":{"a":0,"k":[83.026,460.05,0]},"s":{"a":1,"k":[{"i":{"x":[0.597,0.597,0.5],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.7],"y":[0,0,0]},"t":30,"s":[29.167,10,100]},{"i":{"x":[0.7,0.7,0.7],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.5],"y":[0,0,0]},"t":46,"s":[103,110,100]},{"i":{"x":[0.7,0.7,0.7],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":57,"s":[100,92,100]},{"i":{"x":[0.7,0.7,0.7],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":69,"s":[99,106,100]},{"i":{"x":[0.7,0.7,0.7],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":83,"s":[102,97,100]},{"i":{"x":[0.5,0.5,0.5],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":100,"s":[99,101,100]},{"t":122,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-7.35,-2.981],[7.701,-28.541],[0.317,-3.808],[-36.225,24.19],[0,0]],"o":[[0,0],[-7.136,26.447],[-0.317,3.808],[38.943,-26.006],[0,0]],"v":[[-156.212,8.214],[-157.429,59.013],[-184.018,111.305],[-109.444,90.996],[-60.2,46.798]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.466666668653,0.466666668653,0.466666668653,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[254.017,354.888]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[92.918,92.918]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Layer 114","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-38.799,26.074],[0,0],[3.273,-2.182],[-0.316,3.814],[-7.138,26.451],[1.376,6.169],[-3.385,-1.438],[37.004,-48.301]],"o":[[0,0],[-2.875,2.07],[-36.23,24.187],[0.316,-3.803],[6.322,-23.433],[2.325,0.632],[0,0],[0,0]],"v":[[41.9,22.995],[41.9,23.006],[32.682,29.389],[-41.898,49.691],[-15.305,-2.599],[-13.643,-51.565],[-5.128,-48.516],[-29.815,44.786]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[121.959,412.136]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[92.918,92.918]},"r":{"a":0,"k":0},"o":{"a":0,"k":30},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Layer 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[37.393,-7.677],[0.041,-0.01],[2.101,-0.408],[-1.866,0.357],[0.612,-0.133],[-0.163,1.917],[-8.107,15.877],[-14.281,-7.027]],"o":[[-0.041,0.01],[-2.263,0.571],[-0.031,0.01],[-0.632,0.102],[-14.265,2.57],[0.224,-2.672],[9.738,-16.723],[13.713,6.748]],"v":[[-6.292,25.466],[-5.223,28.089],[-6.689,28.344],[-3.357,27.733],[-5.223,28.089],[-29.013,27.773],[-11.168,-2.451],[21.926,-27.934]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752941012383,0.752941012383,0.752941012383,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[109.986,432.502]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[92.918,92.918]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Layer 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[38.942,-26.012],[-0.316,3.814],[-7.138,26.451],[0,0]],"o":[[0,0],[-36.23,24.187],[0.316,-3.803],[7.699,-28.541],[-7.352,-2.977]],"v":[[-59.734,64.205],[-109.412,108.976],[-183.993,129.279],[-157.4,76.988],[-156.247,25.482]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588235318661,0.588235318661,0.588235318661,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[253.991,338.185]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[92.918,92.918]},"r":{"a":0,"k":0},"o":{"a":0,"k":20},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Layer 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-7.35,-2.981],[7.701,-28.541],[0.317,-3.808],[-36.225,24.19]],"o":[[0,0],[0,0],[-7.136,26.447],[-0.317,3.808],[38.943,-26.006]],"v":[[-59.737,151.044],[-156.253,112.325],[-157.403,163.831],[-183.991,216.124],[-109.418,195.814]],"c":true}},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.303,0.988,0.988,0.988,0.909,0.796,0.796,0.796,1,0.604,0.604,0.604]}},"s":{"a":0,"k":[-0.306,-33.251]},"e":{"a":0,"k":[226.698,-32.932]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient_jTToeIIZIT","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[253.992,257.493]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[92.918,92.918]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Layer 116","bm":0,"hd":false}],"ip":36,"op":182,"st":2,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/fragment_phone.json b/TMessagesProj/src/main/res/raw/fragment_phone.json new file mode 100644 index 0000000000..d9a764851e --- /dev/null +++ b/TMessagesProj/src/main/res/raw/fragment_phone.json @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":59,"w":512,"h":512,"nm":"1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"1","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.05,"y":0},"t":1,"s":[256,368.474,0],"to":[0,4,0],"ti":[0,3.5,0]},{"i":{"x":0.85,"y":1},"o":{"x":0.8,"y":0},"t":13,"s":[256,392.474,0],"to":[0,-3.5,0],"ti":[0,1.917,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.5,"y":0},"t":28,"s":[256,347.474,0],"to":[0,-1.917,0],"ti":[0,-2.167,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.29,"y":0},"t":39,"s":[256,380.974,0],"to":[0,2.167,0],"ti":[0,2.083,0]},{"i":{"x":0.71,"y":1},"o":{"x":0.29,"y":0},"t":49,"s":[256,360.474,0],"to":[0,-2.083,0],"ti":[0,-1.333,0]},{"t":58,"s":[256,368.474,0]}]},"a":{"a":0,"k":[256,368.474,0]},"s":{"a":1,"k":[{"i":{"x":[0.3,0.3,0.3],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.85,0.85,0.85],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.8],"y":[0,0,0]},"t":11,"s":[108,92,100]},{"i":{"x":[0.3,0.3,0.3],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.5],"y":[0,0,0]},"t":26,"s":[90,117,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.29,0.29,0.29],"y":[0,0,0]},"t":37,"s":[105,92,100]},{"i":{"x":[0.71,0.71,0.71],"y":[1,1,1]},"o":{"x":[0.29,0.29,0.29],"y":[0,0,0]},"t":47,"s":[99,102,100]},{"t":57,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":0.905},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-1.866],[0,0],[4.884,7.121],[0,0],[0,0],[0,0],[0,0],[0,0],[-7.775,-3.676],[0,0],[-0.2,-0.112],[-0.575,-1.109]],"o":[[0,0],[-0.133,8.553],[0,0],[0,0],[0,0],[0,0],[0,0],[-3.333,-5.48],[0,0],[0.22,0.11],[1.506,0.844],[0.63,1.214]],"v":[[-9.813,-21.949],[-10.061,104.985],[-23.595,107.964],[-126.478,-51.435],[-128.685,-54.854],[-130.559,-57.758],[-130.614,-57.843],[-141.378,-74.519],[-131.648,-82.56],[-14.286,-29.675],[-13.656,-29.342],[-10.631,-26.481]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.6,"y":0.014},"t":8,"s":[{"i":[[0.656,-2.458],[0,0],[4.884,7.121],[0,0],[0,0],[0,0],[0,0],[0,0],[-7.775,-3.676],[0,0],[-0.216,-0.078],[-0.917,-0.848]],"o":[[0,0],[-1.939,6.784],[0,0],[0,0],[0,0],[0,0],[0,0],[-3.333,-5.48],[0,0],[0.22,0.11],[1.125,0.405],[1.162,1.075]],"v":[[53.969,-13.324],[15.439,104.466],[-5.595,107.925],[-120.842,-24.689],[-123.512,-27.737],[-125.78,-30.326],[-125.846,-30.402],[-138.871,-45.269],[-129.141,-53.31],[47.527,-21.925],[48.469,-21.717],[52.057,-20.012]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,-1.866],[0,0],[4.884,7.121],[0,0],[0,0],[0,0],[0,0],[0,0],[-7.775,-3.676],[0,0],[-0.2,-0.112],[-0.575,-1.109]],"o":[[0,0],[-0.133,8.553],[0,0],[0,0],[0,0],[0,0],[0,0],[-3.333,-5.48],[0,0],[0.22,0.11],[1.506,0.844],[0.63,1.214]],"v":[[-9.813,-21.949],[-10.061,104.985],[-23.595,107.964],[-126.478,-51.435],[-128.685,-54.854],[-130.559,-57.758],[-130.614,-57.843],[-141.378,-74.519],[-131.648,-82.56],[-14.286,-29.675],[-13.656,-29.342],[-10.631,-26.481]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[0,0],[4.884,7.121],[0,0],[0,0],[0,0],[0,0],[0,0],[-7.775,-3.676],[0,0],[0,0],[0,0]],"o":[[0,0],[-0.133,8.553],[0,0],[0,0],[0,0],[0,0],[0,0],[-3.333,-5.48],[0,0],[0,0],[0,0],[0,0]],"v":[[-67.338,-27.899],[-13.561,104.877],[-24.095,107.857],[-109.118,-67.827],[-110.748,-71.594],[-112.134,-74.796],[-112.174,-74.889],[-120.128,-93.269],[-110.398,-101.31],[-70.686,-35.625],[-70.62,-35.475],[-68.969,-31.663]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[5.095,6.214],[1.198,3.378],[0,0],[0,0],[0,0],[0,0],[-2.33,-0.621],[0,0],[0,0],[0,0]],"o":[[0,0],[-0.067,4.276],[0,0],[-1.698,-5.003],[0,0],[0,0],[0,0],[0.006,-9.162],[0,0],[0,0],[0,0],[0,0]],"v":[[-85.763,-31.242],[-16.061,109.224],[-24.845,103.342],[-94.552,-28.372],[-90.984,-32.654],[-97.345,-52.21],[-101.503,-52.724],[-107.756,-96.338],[-99.545,-107.504],[-91.923,-55.657],[-97.366,-52.192],[-91.024,-32.662]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[0,0],[5.095,6.214],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.08,0.379],[0,0],[0,0],[0,0]],"o":[[0,0],[-0.067,4.276],[0,0],[0,0],[0,0],[0,0],[0,0],[1.006,-3.662],[0,0],[0,0],[0,0],[0,0]],"v":[[-98.638,-29.985],[-10.936,108.232],[-16.845,102.224],[-102.177,-28.24],[-102.909,-31.699],[-97.505,-60.262],[-98.235,-60.89],[-78.381,-112.581],[-73.42,-118.997],[-96.048,-59.961],[-97.487,-60.236],[-102.932,-31.77]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[4.904,4.808],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.08,0.379],[0,0],[0,0],[0,0]],"o":[[0,0],[-0.308,2.522],[0,0],[0,0],[0,0],[0,0],[0,0],[1.006,-3.662],[0,0],[0,0],[0,0],[0,0]],"v":[[-93.513,-26.86],[-14.74,108.357],[-25.032,103.849],[-97.052,-25.115],[-97.784,-28.574],[-96.13,-60.2],[-96.86,-60.828],[-79.693,-106.831],[-74.733,-113.247],[-94.673,-59.899],[-96.112,-60.173],[-97.807,-28.645]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,0],[0,0],[2.263,3.401],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.08,0.379],[0,0],[0,0],[0,0]],"o":[[0,0],[-0.395,0.768],[0,0],[0,0],[0,0],[0,0],[0,0],[1.006,-3.662],[0,0],[0,0],[0,0],[0,0]],"v":[[-88.388,-23.735],[-12.186,108.482],[-18.47,104.974],[-91.927,-21.99],[-92.659,-25.449],[-94.755,-60.137],[-95.485,-60.765],[-81.006,-101.081],[-76.045,-107.497],[-93.298,-59.836],[-94.737,-60.111],[-92.682,-25.52]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[0,0],[0,0],[5.095,6.214],[1.198,3.378],[0,0],[0,0],[0,0],[0,0],[-2.33,-0.621],[0,0],[0,0],[0,0]],"o":[[0,0],[-0.067,4.276],[0,0],[-1.698,-5.003],[0,0],[0,0],[0,0],[0.006,-9.162],[0,0],[0,0],[0,0],[0,0]],"v":[[-78.263,-22.992],[-10.561,106.974],[-21.095,101.842],[-87.052,-20.122],[-83.484,-24.404],[-87.845,-48.46],[-92.003,-48.974],[-101.631,-87.838],[-93.42,-99.004],[-82.423,-51.907],[-87.866,-48.442],[-83.524,-24.412]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,0],[0,0],[4.884,7.121],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.559,-0.44],[0,0],[0,0],[0,0]],"o":[[0,0],[-0.133,8.553],[0,0],[0,0],[0,0],[0,0],[0,0],[-3.333,-5.48],[0,0],[0,0],[0,0],[0,0]],"v":[[-49.588,-20.649],[-14.811,103.877],[-25.595,105.857],[-100.118,-66.077],[-101.748,-69.844],[-103.134,-73.046],[-103.174,-73.139],[-106.878,-81.519],[-103.148,-96.06],[-52.936,-28.375],[-52.87,-28.225],[-51.219,-24.413]],"c":true}]},{"t":58,"s":[{"i":[[0,-1.866],[0,0],[4.884,7.121],[0,0],[0,0],[0,0],[0,0],[0,0],[-7.775,-3.676],[0,0],[-0.2,-0.112],[-0.575,-1.109]],"o":[[0,0],[-0.133,8.553],[0,0],[0,0],[0,0],[0,0],[0,0],[-3.333,-5.48],[0,0],[0.22,0.11],[1.506,0.844],[0.63,1.214]],"v":[[-12.813,-21.897],[-13.061,105.036],[-26.595,108.016],[-129.478,-51.384],[-131.685,-54.802],[-133.559,-57.707],[-133.614,-57.791],[-144.378,-74.468],[-134.648,-82.509],[-17.286,-29.624],[-16.656,-29.291],[-13.631,-26.429]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":1,"k":[{"t":0,"s":[179.897,270.405],"h":1},{"t":31,"s":[329.897,270.405],"h":1}]},"a":{"a":0,"k":[-76.103,14.405]},"s":{"a":1,"k":[{"t":0,"s":[100,100],"h":1},{"t":31,"s":[-100,100],"h":1}]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":21,"s":[0],"h":1},{"t":31,"s":[100],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"L","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":0.905},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-3.797],[0,0],[-4.884,7.121],[0,0],[7.775,-3.676],[0,0]],"o":[[0,0],[0.133,8.553],[0,0],[3.333,-5.48],[0,0],[-3.693,1.845]],"v":[[9.813,-21.949],[10.061,104.985],[23.595,107.964],[141.378,-74.519],[131.648,-82.56],[14.286,-29.675]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.6,"y":0.014},"t":8,"s":[{"i":[[0.5,-1.926],[0,0],[-4.884,7.121],[0,0],[4.977,-6.565],[0,0]],"o":[[0,0],[0.133,8.553],[0,0],[3.122,-7.481],[0,0],[-1.098,1.55]],"v":[[69.125,-20.949],[28.061,98.403],[31.845,105.383],[108.503,-99.644],[103.898,-103.685],[73.598,-31.425]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[0,-3.797],[0,0],[-4.884,7.121],[0,0],[7.775,-3.676],[0,0]],"o":[[0,0],[0.133,8.553],[0,0],[3.333,-5.48],[0,0],[-3.693,1.845]],"v":[[9.813,-21.949],[10.061,104.985],[23.595,107.964],[141.378,-74.519],[131.648,-82.56],[14.286,-29.675]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,-3.797],[0,0],[-4.884,7.121],[0,0],[7.775,-3.676],[0,0]],"o":[[0,0],[3.689,6.015],[0,0],[3.333,-5.48],[0,0],[-3.693,1.845]],"v":[[-94.937,-32.699],[-5.689,106.949],[12.345,107.428],[136.128,-65.269],[126.398,-73.31],[-90.464,-40.425]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,-3.797],[0,0],[-16.33,13.572],[0,0],[8.38,-3.676],[0,0]],"o":[[0,0],[7.865,6.015],[0,0],[3.592,-5.48],[0,0],[-3.981,1.845]],"v":[[-144.476,-47.699],[-17.449,106.949],[21,107.428],[143.908,-46.269],[133.42,-54.31],[-139.655,-55.425]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[0,-3.797],[0,0],[-4.884,7.121],[0,0],[8.475,1.06],[0,0]],"o":[[0,0],[3.689,6.015],[0,0],[3.333,-5.48],[0,0],[-3.693,1.845]],"v":[[-138.054,-68.199],[-9.439,106.699],[5.345,104.928],[80.006,-23.269],[73.275,-36.56],[-133.581,-75.925]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[0,-3.797],[0,0],[-4.884,7.121],[0,0],[6.926,1.268],[0,0]],"o":[[0,0],[3.689,6.015],[0,0],[1.995,-5.873],[0,0],[-3.693,1.845]],"v":[[-135.164,-75.799],[-16.039,106.264],[-0.58,103.755],[31.208,-21.677],[22.074,-34.718],[-130.691,-83.525]],"c":true}]},{"t":58,"s":[{"i":[[-3.903,-6.785],[0,0],[0.28,5.393],[0,0],[4.415,1.955],[0,0]],"o":[[0,0],[3.689,6.015],[0,0],[-0.074,-7.149],[0,0],[-4.376,-2.434]],"v":[[-140.722,-74.59],[-22.314,109.377],[-9.53,106.607],[-9.739,-19.601],[-16.102,-30.267],[-134.499,-82.942]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[332.103,270.405]},"a":{"a":0,"k":[76.103,14.405]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"R","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":0.905},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[-3.141,1.409],[0,0],[4.693,0],[0,0],[-4.282,-1.921],[0,0]],"o":[[0,0],[4.282,-1.921],[0,0],[-4.693,0],[0,0],[3.141,1.409]],"v":[[5.157,-47.3],[131.853,-103.149],[130.071,-112.474],[-129.633,-112.474],[-131.415,-103.149],[-4.719,-47.3]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.6,"y":0.095},"t":8,"s":[{"i":[[-4.407,9.1],[0,0],[4.693,0],[0,0],[-4.282,-1.921],[0,0]],"o":[[0,0],[3.647,-4.152],[0,0],[-4.693,0],[0,0],[3.141,1.409]],"v":[[64.407,-48.1],[94.853,-116.598],[91.071,-125.923],[-133.133,-84.474],[-134.915,-75.149],[50.281,-40.1]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-3.141,1.409],[0,0],[4.693,0],[0,0],[-4.282,-1.921],[0,0]],"o":[[0,0],[4.282,-1.921],[0,0],[-4.693,0],[0,0],[3.141,1.409]],"v":[[5.157,-47.3],[131.853,-103.149],[130.071,-112.474],[-129.633,-112.474],[-131.415,-103.149],[-4.719,-47.3]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-3.735,0.905],[0,0],[4.446,0.573],[0,0],[-0.281,-2.571],[0,0]],"o":[[0,0],[4.562,-1.329],[0,0],[-3.585,-0.274],[0,0],[0.147,1.766]],"v":[[-71.636,-55.66],[130.183,-92.501],[129.351,-102.532],[-80.466,-120.843],[-86.458,-115.393],[-78.274,-58.279]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[-3.883,0.779],[0,0],[4.384,0.717],[0,0],[0.719,-2.733],[0,0]],"o":[[0,0],[4.632,-1.181],[0,0],[-3.308,-0.343],[0,0],[-0.601,1.855]],"v":[[-85.834,-57.438],[129.765,-89.838],[129.171,-100.046],[-63.174,-122.623],[-70.219,-118.142],[-91.663,-60.712]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[-4.626,-0.1],[0,0],[4.076,1.204],[0,0],[1.978,-0.848],[0,0]],"o":[[0,0],[4.981,-0.064],[0,0],[-1.923,-0.576],[0,0],[-4.344,1.708]],"v":[[-130.384,-71.791],[129.552,-72.5],[130.145,-80.33],[2.522,-126.625],[-2.786,-126.422],[-132.166,-77.294]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-4.626,-0.109],[0,0],[0.581,2.975],[0,0],[1.978,-0.93],[0,0]],"o":[[0,0],[6.476,1.395],[0,0],[-1.924,-0.632],[0,0],[-4.344,1.873]],"v":[[-130.187,-94.699],[80.4,-54.395],[86.669,-61.35],[66.994,-117.152],[63.936,-119.429],[-131.969,-100.731]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":33,"s":[{"i":[[-4.626,-0.111],[0,0],[-2.616,2.343],[0,0],[1.978,-0.943],[0,0]],"o":[[0,0],[5.878,0.829],[0,0],[-1.924,-0.641],[0,0],[-4.344,1.899]],"v":[[-125.399,-102.121],[37.027,-50.663],[46.116,-55.343],[93.31,-112.129],[91.152,-115.305],[-127.181,-108.239]],"c":true}]},{"t":58,"s":[{"i":[[-6.407,-2.769],[0,0],[-5.038,2.278],[0,0],[5.273,-0.726],[0,0]],"o":[[0,0],[3.157,1.572],[0,0],[6.591,-2.37],[0,0],[-7.125,0.298]],"v":[[-130.593,-103.106],[-4.907,-47.572],[7.288,-48.528],[131.034,-103.255],[128.727,-112.274],[-127.875,-113.298]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[256.219,176.641]},"a":{"a":0,"k":[0.219,-79.359]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Top","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/fragment_username.json b/TMessagesProj/src/main/res/raw/fragment_username.json new file mode 100644 index 0000000000..2fb75b4d79 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/fragment_username.json @@ -0,0 +1 @@ +{"v":"5.12.1","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector 3","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.255,0],[0,4.418],[-4.418,0],[0,-4.418]],"o":[[-1.057,0.515],[-4.418,0],[0,-4.418],[4.418,0],[0,0]],"v":[[3.498,7.197],[0,8],[-8,0],[0,-8],[8,0]],"c":false},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":26,"s":[100]},{"t":46,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":4,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Vector 2","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0.548],[-4.418,0],[0,-4.418],[0,0],[1.105,0],[0,1.105],[0,0]],"o":[[-0.105,-0.517],[0,-4.418],[4.418,0],[0,0],[0,1.105],[-1.105,0],[0,0],[0,0]],"v":[[-7.84,1.601],[-8,0],[0,-8],[8,0],[8,2],[6,4],[4,2],[4,-3.2]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":9,"s":[100]},{"t":39,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[-38]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[-38]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":2,"s":[-38]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":3,"s":[-38]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":4,"s":[-38]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":5,"s":[-38]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":6,"s":[-38]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":7,"s":[-38]},{"i":{"x":[0.833],"y":[0.911]},"o":{"x":[0.167],"y":[0]},"t":8,"s":[-38]},{"i":{"x":[0.833],"y":[0.692]},"o":{"x":[0.167],"y":[0.083]},"t":9,"s":[-38]},{"i":{"x":[0.833],"y":[0.86]},"o":{"x":[0.167],"y":[0.114]},"t":10,"s":[-36.938]},{"i":{"x":[0.833],"y":[0.718]},"o":{"x":[0.167],"y":[0.205]},"t":11,"s":[-34.069]},{"i":{"x":[0.833],"y":[0.822]},"o":{"x":[0.167],"y":[0.118]},"t":12,"s":[-32.109]},{"i":{"x":[0.833],"y":[0.873]},"o":{"x":[0.167],"y":[0.157]},"t":13,"s":[-27.432]},{"i":{"x":[0.833],"y":[0.75]},"o":{"x":[0.167],"y":[0.243]},"t":14,"s":[-22.119]},{"i":{"x":[0.833],"y":[0.837]},"o":{"x":[0.167],"y":[0.125]},"t":15,"s":[-19.351]},{"i":{"x":[0.833],"y":[0.878]},"o":{"x":[0.167],"y":[0.171]},"t":16,"s":[-13.82]},{"i":{"x":[0.833],"y":[0.766]},"o":{"x":[0.167],"y":[0.262]},"t":17,"s":[-8.544]},{"i":{"x":[0.833],"y":[0.847]},"o":{"x":[0.167],"y":[0.129]},"t":18,"s":[-6.079]},{"i":{"x":[0.833],"y":[0.882]},"o":{"x":[0.167],"y":[0.183]},"t":19,"s":[-1.611]},{"i":{"x":[0.833],"y":[0.782]},"o":{"x":[0.167],"y":[0.281]},"t":20,"s":[2.134]},{"i":{"x":[0.833],"y":[0.86]},"o":{"x":[0.167],"y":[0.135]},"t":21,"s":[3.711]},{"i":{"x":[0.833],"y":[0.889]},"o":{"x":[0.167],"y":[0.205]},"t":22,"s":[6.255]},{"i":{"x":[0.833],"y":[0.824]},"o":{"x":[0.167],"y":[0.331]},"t":23,"s":[8]},{"i":{"x":[0.833],"y":[0.912]},"o":{"x":[0.167],"y":[0.159]},"t":24,"s":[8.587]},{"i":{"x":[0.833],"y":[1.381]},"o":{"x":[0.167],"y":[1.749]},"t":25,"s":[9.237]},{"i":{"x":[0.833],"y":[0.602]},"o":{"x":[0.167],"y":[0.068]},"t":26,"s":[9.269]},{"i":{"x":[0.833],"y":[0.793]},"o":{"x":[0.167],"y":[0.105]},"t":27,"s":[9.088]},{"i":{"x":[0.833],"y":[0.868]},"o":{"x":[0.167],"y":[0.14]},"t":28,"s":[8.403]},{"i":{"x":[0.833],"y":[0.735]},"o":{"x":[0.167],"y":[0.225]},"t":29,"s":[7.388]},{"i":{"x":[0.833],"y":[0.829]},"o":{"x":[0.167],"y":[0.122]},"t":30,"s":[6.793]},{"i":{"x":[0.833],"y":[0.875]},"o":{"x":[0.167],"y":[0.163]},"t":31,"s":[5.494]},{"i":{"x":[0.833],"y":[0.757]},"o":{"x":[0.167],"y":[0.251]},"t":32,"s":[4.134]},{"i":{"x":[0.833],"y":[0.841]},"o":{"x":[0.167],"y":[0.127]},"t":33,"s":[3.458]},{"i":{"x":[0.833],"y":[0.879]},"o":{"x":[0.167],"y":[0.175]},"t":34,"s":[2.158]},{"i":{"x":[0.833],"y":[0.771]},"o":{"x":[0.167],"y":[0.268]},"t":35,"s":[0.978]},{"i":{"x":[0.833],"y":[0.851]},"o":{"x":[0.167],"y":[0.131]},"t":36,"s":[0.446]},{"i":{"x":[0.833],"y":[0.883]},"o":{"x":[0.167],"y":[0.189]},"t":37,"s":[-0.482]},{"i":{"x":[0.833],"y":[0.792]},"o":{"x":[0.167],"y":[0.293]},"t":38,"s":[-1.216]},{"i":{"x":[0.833],"y":[0.868]},"o":{"x":[0.167],"y":[0.139]},"t":39,"s":[-1.509]},{"i":{"x":[0.833],"y":[0.896]},"o":{"x":[0.167],"y":[0.227]},"t":40,"s":[-1.946]},{"i":{"x":[0.833],"y":[0.897]},"o":{"x":[0.167],"y":[0.417]},"t":41,"s":[-2.199]},{"i":{"x":[0.833],"y":[1.538]},"o":{"x":[0.167],"y":[0.437]},"t":42,"s":[-2.262]},{"i":{"x":[0.833],"y":[0.846]},"o":{"x":[0.167],"y":[0.072]},"t":43,"s":[-2.277]},{"i":{"x":[0.833],"y":[0.698]},"o":{"x":[0.167],"y":[0.182]},"t":44,"s":[-2.166]},{"i":{"x":[0.833],"y":[0.815]},"o":{"x":[0.167],"y":[0.115]},"t":45,"s":[-2.072]},{"i":{"x":[0.833],"y":[0.872]},"o":{"x":[0.167],"y":[0.152]},"t":46,"s":[-1.827]},{"i":{"x":[0.833],"y":[0.745]},"o":{"x":[0.167],"y":[0.238]},"t":47,"s":[-1.527]},{"i":{"x":[0.833],"y":[0.835]},"o":{"x":[0.167],"y":[0.124]},"t":48,"s":[-1.365]},{"i":{"x":[0.833],"y":[0.877]},"o":{"x":[0.167],"y":[0.168]},"t":49,"s":[-1.031]},{"i":{"x":[0.833],"y":[0.762]},"o":{"x":[0.167],"y":[0.258]},"t":50,"s":[-0.702]},{"i":{"x":[0.833],"y":[0.845]},"o":{"x":[0.167],"y":[0.128]},"t":51,"s":[-0.545]},{"i":{"x":[0.833],"y":[0.881]},"o":{"x":[0.167],"y":[0.18]},"t":52,"s":[-0.253]},{"i":{"x":[0.833],"y":[0.778]},"o":{"x":[0.167],"y":[0.276]},"t":53,"s":[-0.001]},{"i":{"x":[0.833],"y":[0.856]},"o":{"x":[0.167],"y":[0.133]},"t":54,"s":[0.108]},{"i":{"x":[0.833],"y":[0.886]},"o":{"x":[0.167],"y":[0.197]},"t":55,"s":[0.291]},{"i":{"x":[0.833],"y":[0.807]},"o":{"x":[0.167],"y":[0.311]},"t":56,"s":[0.424]},{"i":{"x":[0.833],"y":[0.886]},"o":{"x":[0.167],"y":[0.147]},"t":57,"s":[0.473]},{"i":{"x":[0.833],"y":[0.923]},"o":{"x":[0.167],"y":[0.311]},"t":58,"s":[0.538]},{"i":{"x":[0.833],"y":[-0.39]},"o":{"x":[0.167],"y":[-1.103]},"t":59,"s":[0.561]},{"i":{"x":[0.833],"y":[0.755]},"o":{"x":[0.167],"y":[0.089]},"t":60,"s":[0.559]},{"i":{"x":[0.833],"y":[0.864]},"o":{"x":[0.167],"y":[0.126]},"t":61,"s":[0.534]},{"i":{"x":[0.833],"y":[0.725]},"o":{"x":[0.167],"y":[0.214]},"t":62,"s":[0.483]},{"i":{"x":[0.833],"y":[0.825]},"o":{"x":[0.167],"y":[0.12]},"t":63,"s":[0.452]},{"i":{"x":[0.833],"y":[0.874]},"o":{"x":[0.167],"y":[0.159]},"t":64,"s":[0.378]},{"i":{"x":[0.833],"y":[0.753]},"o":{"x":[0.167],"y":[0.246]},"t":65,"s":[0.298]},{"i":{"x":[0.833],"y":[0.839]},"o":{"x":[0.167],"y":[0.126]},"t":66,"s":[0.257]},{"i":{"x":[0.833],"y":[0.878]},"o":{"x":[0.167],"y":[0.172]},"t":67,"s":[0.176]},{"i":{"x":[0.833],"y":[0.768]},"o":{"x":[0.167],"y":[0.264]},"t":68,"s":[0.1]},{"i":{"x":[0.833],"y":[0.848]},"o":{"x":[0.167],"y":[0.13]},"t":69,"s":[0.066]},{"i":{"x":[0.833],"y":[0.882]},"o":{"x":[0.167],"y":[0.185]},"t":70,"s":[0.003]},{"i":{"x":[0.833],"y":[0.785]},"o":{"x":[0.167],"y":[0.285]},"t":71,"s":[-0.048]},{"i":{"x":[0.833],"y":[0.862]},"o":{"x":[0.167],"y":[0.136]},"t":72,"s":[-0.069]},{"i":{"x":[0.833],"y":[0.891]},"o":{"x":[0.167],"y":[0.211]},"t":73,"s":[-0.103]},{"i":{"x":[0.833],"y":[0.84]},"o":{"x":[0.167],"y":[0.35]},"t":74,"s":[-0.125]},{"i":{"x":[0.833],"y":[0.948]},"o":{"x":[0.167],"y":[0.174]},"t":75,"s":[-0.131]},{"i":{"x":[0.833],"y":[0.779]},"o":{"x":[0.167],"y":[-0.138]},"t":76,"s":[-0.138]},{"i":{"x":[0.833],"y":[0.657]},"o":{"x":[0.167],"y":[0.134]},"t":77,"s":[-0.135]},{"i":{"x":[0.833],"y":[0.804]},"o":{"x":[0.167],"y":[0.11]},"t":78,"s":[-0.131]},{"i":{"x":[0.833],"y":[0.869]},"o":{"x":[0.167],"y":[0.145]},"t":79,"s":[-0.119]},{"i":{"x":[0.833],"y":[0.739]},"o":{"x":[0.167],"y":[0.23]},"t":80,"s":[-0.103]},{"i":{"x":[0.833],"y":[0.831]},"o":{"x":[0.167],"y":[0.122]},"t":81,"s":[-0.094]},{"i":{"x":[0.833],"y":[0.876]},"o":{"x":[0.167],"y":[0.165]},"t":82,"s":[-0.074]},{"i":{"x":[0.833],"y":[0.759]},"o":{"x":[0.167],"y":[0.254]},"t":83,"s":[-0.054]},{"i":{"x":[0.833],"y":[0.842]},"o":{"x":[0.167],"y":[0.127]},"t":84,"s":[-0.044]},{"i":{"x":[0.833],"y":[0.88]},"o":{"x":[0.167],"y":[0.177]},"t":85,"s":[-0.026]},{"i":{"x":[0.833],"y":[0.773]},"o":{"x":[0.167],"y":[0.271]},"t":86,"s":[-0.009]},{"i":{"x":[0.833],"y":[0.852]},"o":{"x":[0.167],"y":[0.132]},"t":87,"s":[-0.001]},{"i":{"x":[0.833],"y":[0.884]},"o":{"x":[0.167],"y":[0.191]},"t":88,"s":[0.011]},{"i":{"x":[0.833],"y":[0.797]},"o":{"x":[0.167],"y":[0.298]},"t":89,"s":[0.021]},{"i":{"x":[0.833],"y":[0.873]},"o":{"x":[0.167],"y":[0.141]},"t":90,"s":[0.025]},{"i":{"x":[0.833],"y":[0.901]},"o":{"x":[0.167],"y":[0.244]},"t":91,"s":[0.03]},{"i":{"x":[0.833],"y":[0.992]},"o":{"x":[0.167],"y":[0.529]},"t":92,"s":[0.033]},{"i":{"x":[0.833],"y":[0.536]},"o":{"x":[0.167],"y":[-0.009]},"t":93,"s":[0.034]},{"i":{"x":[0.833],"y":[0.856]},"o":{"x":[0.167],"y":[0.102]},"t":94,"s":[0.033]},{"i":{"x":[0.833],"y":[0.711]},"o":{"x":[0.167],"y":[0.197]},"t":95,"s":[0.031]},{"i":{"x":[0.833],"y":[0.819]},"o":{"x":[0.167],"y":[0.117]},"t":96,"s":[0.029]},{"i":{"x":[0.833],"y":[0.873]},"o":{"x":[0.167],"y":[0.155]},"t":97,"s":[0.026]},{"i":{"x":[0.833],"y":[0.748]},"o":{"x":[0.167],"y":[0.241]},"t":98,"s":[0.021]},{"i":{"x":[0.833],"y":[0.836]},"o":{"x":[0.167],"y":[0.125]},"t":99,"s":[0.018]},{"i":{"x":[0.833],"y":[0.877]},"o":{"x":[0.167],"y":[0.17]},"t":100,"s":[0.014]},{"i":{"x":[0.833],"y":[0.764]},"o":{"x":[0.167],"y":[0.26]},"t":101,"s":[0.009]},{"i":{"x":[0.833],"y":[0.846]},"o":{"x":[0.167],"y":[0.129]},"t":102,"s":[0.006]},{"i":{"x":[0.833],"y":[0.881]},"o":{"x":[0.167],"y":[0.181]},"t":103,"s":[0.002]},{"i":{"x":[0.833],"y":[0.78]},"o":{"x":[0.167],"y":[0.279]},"t":104,"s":[-0.001]},{"i":{"x":[0.833],"y":[0.858]},"o":{"x":[0.167],"y":[0.134]},"t":105,"s":[-0.003]},{"i":{"x":[0.833],"y":[0.887]},"o":{"x":[0.167],"y":[0.201]},"t":106,"s":[-0.005]},{"i":{"x":[0.833],"y":[0.816]},"o":{"x":[0.167],"y":[0.321]},"t":107,"s":[-0.007]},{"i":{"x":[0.833],"y":[0.899]},"o":{"x":[0.167],"y":[0.152]},"t":108,"s":[-0.007]},{"i":{"x":[0.833],"y":[0.974]},"o":{"x":[0.167],"y":[0.471]},"t":109,"s":[-0.008]},{"i":{"x":[0.833],"y":[0.511]},"o":{"x":[0.167],"y":[-0.039]},"t":110,"s":[-0.008]},{"i":{"x":[0.833],"y":[0.782]},"o":{"x":[0.167],"y":[0.1]},"t":111,"s":[-0.008]},{"i":{"x":[0.833],"y":[0.866]},"o":{"x":[0.167],"y":[0.135]},"t":112,"s":[-0.008]},{"i":{"x":[0.833],"y":[0.731]},"o":{"x":[0.167],"y":[0.221]},"t":113,"s":[-0.007]},{"i":{"x":[0.833],"y":[0.828]},"o":{"x":[0.167],"y":[0.121]},"t":114,"s":[-0.006]},{"i":{"x":[0.833],"y":[0.875]},"o":{"x":[0.167],"y":[0.161]},"t":115,"s":[-0.005]},{"i":{"x":[0.833],"y":[0.755]},"o":{"x":[0.167],"y":[0.249]},"t":116,"s":[-0.004]},{"i":{"x":[0.833],"y":[0.84]},"o":{"x":[0.167],"y":[0.126]},"t":117,"s":[-0.003]},{"i":{"x":[0.833],"y":[0.879]},"o":{"x":[0.167],"y":[0.174]},"t":118,"s":[-0.002]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.267]},"t":119,"s":[-0.001]},{"t":120,"s":[-0.001]}],"ix":10},"p":{"a":0,"k":[256,256,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":1,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":2,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":3,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":4,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":5,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":6,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":7,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.503,0.503,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":8,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.692,0.692,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.083,0.083,0]},"t":9,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.86,0.86,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.114,0.114,0]},"t":10,"s":[5.964,5.964,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.718,0.718,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.205,0.205,0]},"t":11,"s":[22.068,22.068,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.822,0.822,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.118,0.118,0]},"t":12,"s":[33.074,33.074,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.873,0.873,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.157,0.157,0]},"t":13,"s":[59.329,59.329,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.75,0.75,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.243,0.243,0]},"t":14,"s":[89.159,89.159,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.837,0.837,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.125,0.125,0]},"t":15,"s":[104.694,104.694,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.878,0.878,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.171,0.171,0]},"t":16,"s":[135.747,135.747,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.766,0.766,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.262,0.262,0]},"t":17,"s":[165.369,165.369,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.847,0.847,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.129,0.129,0]},"t":18,"s":[179.208,179.208,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.882,0.882,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.183,0.183,0]},"t":19,"s":[204.289,204.289,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.782,0.782,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.281,0.281,0]},"t":20,"s":[225.312,225.312,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.86,0.86,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.135,0.135,0]},"t":21,"s":[234.164,234.164,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.889,0.889,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.205,0.205,0]},"t":22,"s":[248.449,248.449,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.824,0.824,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.331,0.331,0]},"t":23,"s":[258.243,258.243,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.912,0.912,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.159,0.159,0]},"t":24,"s":[261.538,261.538,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1.381,1.381,1]},"o":{"x":[0.167,0.167,0.167],"y":[1.749,1.749,0]},"t":25,"s":[265.189,265.189,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.602,0.602,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.068,0.068,0]},"t":26,"s":[265.371,265.371,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.793,0.793,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.105,0.105,0]},"t":27,"s":[264.354,264.354,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.868,0.868,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.14,0.14,0]},"t":28,"s":[260.51,260.51,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.735,0.735,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.225,0.225,0]},"t":29,"s":[254.81,254.81,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.829,0.829,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.122,0.122,0]},"t":30,"s":[251.468,251.468,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.875,0.875,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.163,0.163,0]},"t":31,"s":[244.178,244.178,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.757,0.757,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.251,0.251,0]},"t":32,"s":[236.541,236.541,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.841,0.841,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.127,0.127,0]},"t":33,"s":[232.744,232.744,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.879,0.879,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.175,0.175,0]},"t":34,"s":[225.45,225.45,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.771,0.771,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.268,0.268,0]},"t":35,"s":[218.822,218.822,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.851,0.851,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.131,0.131,0]},"t":36,"s":[215.836,215.836,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.883,0.883,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.189,0.189,0]},"t":37,"s":[210.625,210.625,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.792,0.792,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.293,0.293,0]},"t":38,"s":[206.505,206.505,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.868,0.868,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.139,0.139,0]},"t":39,"s":[204.864,204.864,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.896,0.896,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.227,0.227,0]},"t":40,"s":[202.408,202.408,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.897,0.897,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.417,0.417,0]},"t":41,"s":[200.987,200.987,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1.538,1.538,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.437,0.437,0]},"t":42,"s":[200.632,200.632,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.846,0.846,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.072,0.072,0]},"t":43,"s":[200.549,200.549,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.698,0.698,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.182,0.182,0]},"t":44,"s":[201.172,201.172,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.815,0.815,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.115,0.115,0]},"t":45,"s":[201.698,201.698,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.872,0.872,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.152,0.152,0]},"t":46,"s":[203.078,203.078,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.745,0.745,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.238,0.238,0]},"t":47,"s":[204.763,204.763,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.835,0.835,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.124,0.124,0]},"t":48,"s":[205.673,205.673,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.877,0.877,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.168,0.168,0]},"t":49,"s":[207.546,207.546,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.762,0.762,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.258,0.258,0]},"t":50,"s":[209.392,209.392,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.845,0.845,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.128,0.128,0]},"t":51,"s":[210.275,210.275,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.881,0.881,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.18,0.18,0]},"t":52,"s":[211.911,211.911,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.778,0.778,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.276,0.276,0]},"t":53,"s":[213.327,213.327,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.856,0.856,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.133,0.133,0]},"t":54,"s":[213.941,213.941,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.886,0.886,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.197,0.197,0]},"t":55,"s":[214.965,214.965,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.807,0.807,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.311,0.311,0]},"t":56,"s":[215.716,215.716,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.886,0.886,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.147,0.147,0]},"t":57,"s":[215.99,215.99,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.923,0.923,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.311,0.311,0]},"t":58,"s":[216.351,216.351,100]},{"i":{"x":[0.833,0.833,0.833],"y":[-0.39,-0.39,1]},"o":{"x":[0.167,0.167,0.167],"y":[-1.103,-1.103,0]},"t":59,"s":[216.483,216.483,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.755,0.755,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.089,0.089,0]},"t":60,"s":[216.474,216.474,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.864,0.864,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.126,0.126,0]},"t":61,"s":[216.328,216.328,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.725,0.725,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.214,0.214,0]},"t":62,"s":[216.047,216.047,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.825,0.825,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.12,0.12,0]},"t":63,"s":[215.869,215.869,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.874,0.874,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.159,0.159,0]},"t":64,"s":[215.458,215.458,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.753,0.753,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.246,0.246,0]},"t":65,"s":[215.007,215.007,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.839,0.839,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.126,0.126,0]},"t":66,"s":[214.776,214.776,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.878,0.878,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.172,0.172,0]},"t":67,"s":[214.322,214.322,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.768,0.768,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.264,0.264,0]},"t":68,"s":[213.897,213.897,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.848,0.848,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.13,0.13,0]},"t":69,"s":[213.701,213.701,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.882,0.882,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.185,0.185,0]},"t":70,"s":[213.351,213.351,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.785,0.785,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.285,0.285,0]},"t":71,"s":[213.063,213.063,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.862,0.862,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.136,0.136,0]},"t":72,"s":[212.944,212.944,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.891,0.891,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.211,0.211,0]},"t":73,"s":[212.756,212.756,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.84,0.84,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.35,0.35,0]},"t":74,"s":[212.634,212.634,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.948,0.948,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.174,0.174,0]},"t":75,"s":[212.596,212.596,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.779,0.779,1]},"o":{"x":[0.167,0.167,0.167],"y":[-0.138,-0.138,0]},"t":76,"s":[212.561,212.561,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.657,0.657,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.134,0.134,0]},"t":77,"s":[212.574,212.574,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.804,0.804,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.11,0.11,0]},"t":78,"s":[212.596,212.596,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.869,0.869,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.145,0.145,0]},"t":79,"s":[212.663,212.663,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.739,0.739,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.23,0.23,0]},"t":80,"s":[212.755,212.755,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.831,0.831,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.122,0.122,0]},"t":81,"s":[212.807,212.807,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.876,0.876,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.165,0.165,0]},"t":82,"s":[212.917,212.917,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.759,0.759,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.254,0.254,0]},"t":83,"s":[213.03,213.03,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.842,0.842,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.127,0.127,0]},"t":84,"s":[213.085,213.085,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.88,0.88,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.177,0.177,0]},"t":85,"s":[213.19,213.19,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.773,0.773,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.271,0.271,0]},"t":86,"s":[213.284,213.284,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.852,0.852,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.132,0.132,0]},"t":87,"s":[213.325,213.325,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.884,0.884,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.191,0.191,0]},"t":88,"s":[213.397,213.397,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.797,0.797,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.298,0.298,0]},"t":89,"s":[213.452,213.452,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.873,0.873,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.141,0.141,0]},"t":90,"s":[213.473,213.473,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.901,0.901,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.244,0.244,0]},"t":91,"s":[213.504,213.504,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.992,0.992,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.529,0.529,0]},"t":92,"s":[213.52,213.52,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.536,0.536,1]},"o":{"x":[0.167,0.167,0.167],"y":[-0.009,-0.009,0]},"t":93,"s":[213.523,213.523,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.856,0.856,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.102,0.102,0]},"t":94,"s":[213.52,213.52,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.711,0.711,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.197,0.197,0]},"t":95,"s":[213.508,213.508,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.819,0.819,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.117,0.117,0]},"t":96,"s":[213.499,213.499,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.873,0.873,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.155,0.155,0]},"t":97,"s":[213.476,213.476,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.748,0.748,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.241,0.241,0]},"t":98,"s":[213.451,213.451,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.836,0.836,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.125,0.125,0]},"t":99,"s":[213.437,213.437,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.877,0.877,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.17,0.17,0]},"t":100,"s":[213.409,213.409,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.764,0.764,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.26,0.26,0]},"t":101,"s":[213.382,213.382,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.846,0.846,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.129,0.129,0]},"t":102,"s":[213.37,213.37,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.881,0.881,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.181,0.181,0]},"t":103,"s":[213.347,213.347,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.78,0.78,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.279,0.279,0]},"t":104,"s":[213.327,213.327,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.858,0.858,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.134,0.134,0]},"t":105,"s":[213.319,213.319,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.887,0.887,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.201,0.201,0]},"t":106,"s":[213.305,213.305,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.816,0.816,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.321,0.321,0]},"t":107,"s":[213.295,213.295,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.899,0.899,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.152,0.152,0]},"t":108,"s":[213.292,213.292,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.974,0.974,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.471,0.471,0]},"t":109,"s":[213.288,213.288,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.511,0.511,1]},"o":{"x":[0.167,0.167,0.167],"y":[-0.039,-0.039,0]},"t":110,"s":[213.287,213.287,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.782,0.782,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.1,0.1,0]},"t":111,"s":[213.287,213.287,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.866,0.866,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.135,0.135,0]},"t":112,"s":[213.29,213.29,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.731,0.731,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.221,0.221,0]},"t":113,"s":[213.295,213.295,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.828,0.828,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.121,0.121,0]},"t":114,"s":[213.298,213.298,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.875,0.875,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.161,0.161,0]},"t":115,"s":[213.304,213.304,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.755,0.755,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.249,0.249,0]},"t":116,"s":[213.311,213.311,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.84,0.84,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.126,0.126,0]},"t":117,"s":[213.314,213.314,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.879,0.879,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.174,0.174,0]},"t":118,"s":[213.321,213.321,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.267,0.267,0]},"t":119,"s":[213.327,213.327,100]},{"t":120,"s":[213.33,213.33,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.209,0],[0,2.209],[2.209,0],[0,-2.209]],"o":[[2.209,0],[0,-2.209],[-2.209,0],[0,2.209]],"v":[[0,4],[4,0],[0,-4],[-4,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":9,"s":[0]},{"t":29,"s":[100]}],"ix":2},"o":{"a":0,"k":90,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[1000,1000],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"ct":1,"bm":0}],"markers":[],"props":{}} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/hdr2sdr_hlg.glsl b/TMessagesProj/src/main/res/raw/hdr2sdr_hlg.glsl new file mode 100644 index 0000000000..de3a686dc4 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/hdr2sdr_hlg.glsl @@ -0,0 +1,75 @@ +#extension GL_OES_EGL_image_external : require + +precision highp float; + +uniform samplerExternalOES sTexture; + +vec3 HLG_OETF_inv(vec3 x) { + const float a = 0.17883277; + const float b = 0.28466892; + const float c = 0.55991073; + return mix((x * x) / 3.0, (b + exp((x - c) / a)) / 12.0, step(0.5, x)); +} + +vec3 HLG_OOTF(vec3 x) { + const float HLG_gamma = 1.2; + const vec3 Lvec = vec3(0.2627, 0.6780, 0.0593); + + float Y = dot(Lvec, x); + return pow(Y, HLG_gamma - 1.0) * x; +} + +vec3 HLG_EOTF(vec3 x) { + return HLG_OOTF(HLG_OETF_inv(x)); +} + +vec3 sRGB_EOTF(vec3 x) { + return mix(x / 12.92, pow((x + 0.055) / 1.055, vec3(2.4)), step(0.04045, x)); +} + +vec3 sRGB_OETF(vec3 x) { + return mix(12.92 * x, 1.055 * pow(x, vec3(1.0 / 2.4)) - 0.055, step(0.0031308, x)); +} + +//HDR to SDR conversion method A described in ITU-R BT.2446-1 +vec3 BT2446_tone_mapping_A(vec3 rgb_BT2020_linear) { + const float L_HDR = 1000.0; + const float rho_HDR = 1.0 + 32.0 * pow(L_HDR / 10000.0, 1.0 / 2.4); + const float L_SDR = 100.0; + const float rho_SDR = 1.0 + 32.0 * pow(L_SDR / 10000.0, 1.0 / 2.4); + const vec3 Lvec = vec3(0.2627, 0.6780, 0.0593); + + vec3 rgb_prime = sRGB_OETF(rgb_BT2020_linear); + + float Y_prime = dot(Lvec, rgb_prime); + + float Y_prime_p = log(1.0 + (rho_HDR - 1.0) * Y_prime) / log(rho_HDR); + float Y_prime_c = mix(1.0770 * Y_prime_p, mix((-1.1510 * Y_prime_p + 2.7811) * Y_prime_p - 0.6302, 0.5 * Y_prime_p + 0.5, step(0.9909, Y_prime_p)), step(0.7399, Y_prime_p)); + float Y_prime_SDR = (pow(rho_SDR, Y_prime_c) - 1.0) / (rho_SDR - 1.0); + + float f_Y_prime_SDR = Y_prime_SDR / (1.1 * Y_prime); + float Cb_prime_TMO = f_Y_prime_SDR * (rgb_prime.b - Y_prime) / 1.8814; + float Cr_prime_TMO = f_Y_prime_SDR * (rgb_prime.r - Y_prime) / 1.4746; + float Y_prime_TMO = Y_prime_SDR - max(0.1 * Cr_prime_TMO, .0); + + float R_prime_TMO = Cr_prime_TMO * 1.4746 + Y_prime_TMO; + float B_prime_TMO = Cb_prime_TMO * 1.8814 + Y_prime_TMO; + float G_prime_TMO = (Y_prime_TMO - Lvec.x * R_prime_TMO - Lvec.z * B_prime_TMO) / Lvec.y; + vec3 rgb_BT2020_prime_TMO = vec3(R_prime_TMO, G_prime_TMO, B_prime_TMO); + + return sRGB_EOTF(rgb_BT2020_prime_TMO); +} + +vec4 transform(vec3 rgb_BT2020_hlg) { + const mat3 BT2020_to_BT709 = mat3(1.6605, -0.1246, -0.0182, -0.5876, 1.1329, -0.1006, -0.0728, -0.0083, 1.1187); + + vec3 rgb_BT2020_linear = HLG_EOTF(rgb_BT2020_hlg); + vec3 rgb_BT2020_linear_TMO = BT2446_tone_mapping_A(rgb_BT2020_linear); + vec3 rgb_BT709_linear = clamp(BT2020_to_BT709 * rgb_BT2020_linear_TMO, 0.0, 1.0); + vec3 rgb_sRGB = sRGB_OETF(rgb_BT709_linear); + return vec4(rgb_sRGB, 1.0); +} + +vec4 TEX(vec2 uv) { + return transform(texture2D(sTexture, uv).rgb); +} diff --git a/TMessagesProj/src/main/res/raw/hdr2sdr_pq.glsl b/TMessagesProj/src/main/res/raw/hdr2sdr_pq.glsl new file mode 100644 index 0000000000..588ed948fd --- /dev/null +++ b/TMessagesProj/src/main/res/raw/hdr2sdr_pq.glsl @@ -0,0 +1,61 @@ +#extension GL_OES_EGL_image_external : require + +precision highp float; + +uniform samplerExternalOES sTexture; + +vec3 PQ_EOTF(vec3 x) { + vec3 pqexp = pow(x, vec3(1.0 / 78.84375)); + return 10.0 * pow(max(pqexp - 0.8359375, 0.0) / (18.8515625 - 18.6875 * pqexp), vec3(1.0 / 0.1593017578125)); +} + +vec3 sRGB_EOTF(vec3 x) { + return mix(x / 12.92, pow((x + 0.055) / 1.055, vec3(2.4)), step(0.04045, x)); +} + +vec3 sRGB_OETF(vec3 x) { + return mix(12.92 * x, 1.055 * pow(x, vec3(1.0 / 2.4)) - 0.055, step(0.0031308, x)); +} + +//HDR to SDR conversion method A described in ITU-R BT.2446-1 +vec3 BT2446_tone_mapping_A(vec3 rgb_BT2020_linear) { + const float L_HDR = 1000.0; + const float rho_HDR = 1.0 + 32.0 * pow(L_HDR / 10000.0, 1.0 / 2.4); + const float L_SDR = 100.0; + const float rho_SDR = 1.0 + 32.0 * pow(L_SDR / 10000.0, 1.0 / 2.4); + const vec3 Lvec = vec3(0.2627, 0.6780, 0.0593); + + vec3 rgb_prime = sRGB_OETF(rgb_BT2020_linear); + + float Y_prime = dot(Lvec, rgb_prime); + + float Y_prime_p = log(1.0 + (rho_HDR - 1.0) * Y_prime) / log(rho_HDR); + float Y_prime_c = mix(1.0770 * Y_prime_p, mix((-1.1510 * Y_prime_p + 2.7811) * Y_prime_p - 0.6302, 0.5 * Y_prime_p + 0.5, step(0.9909, Y_prime_p)), step(0.7399, Y_prime_p)); + float Y_prime_SDR = (pow(rho_SDR, Y_prime_c) - 1.0) / (rho_SDR - 1.0); + + float f_Y_prime_SDR = Y_prime_SDR / (1.1 * Y_prime); + float Cb_prime_TMO = f_Y_prime_SDR * (rgb_prime.b - Y_prime) / 1.8814; + float Cr_prime_TMO = f_Y_prime_SDR * (rgb_prime.r - Y_prime) / 1.4746; + float Y_prime_TMO = Y_prime_SDR - max(0.1 * Cr_prime_TMO, .0); + + float R_prime_TMO = Cr_prime_TMO * 1.4746 + Y_prime_TMO; + float B_prime_TMO = Cb_prime_TMO * 1.8814 + Y_prime_TMO; + float G_prime_TMO = (Y_prime_TMO - Lvec.x * R_prime_TMO - Lvec.z * B_prime_TMO) / Lvec.y; + vec3 rgb_BT2020_prime_TMO = vec3(R_prime_TMO, G_prime_TMO, B_prime_TMO); + + return sRGB_EOTF(rgb_BT2020_prime_TMO); +} + +vec4 transform(vec3 rgb_BT2020_pq) { + const mat3 BT2020_to_BT709 = mat3(1.6605, -0.1246, -0.0182, -0.5876, 1.1329, -0.1006, -0.0728, -0.0083, 1.1187); + + vec3 rgb_BT2020_linear = PQ_EOTF(rgb_BT2020_pq); + vec3 rgb_BT2020_linear_TMO = BT2446_tone_mapping_A(rgb_BT2020_linear); + vec3 rgb_BT709_linear = clamp(BT2020_to_BT709 * rgb_BT2020_linear_TMO, 0.0, 1.0); + vec3 rgb_sRGB = sRGB_OETF(rgb_BT709_linear); + return vec4(rgb_sRGB, 1.0); +} + +vec4 TEX(vec2 uv) { + return transform(texture2D(sTexture, uv).rgb); +} diff --git a/TMessagesProj/src/main/res/raw/monetize.json b/TMessagesProj/src/main/res/raw/monetize.json new file mode 100644 index 0000000000..55cfad2a5f --- /dev/null +++ b/TMessagesProj/src/main/res/raw/monetize.json @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":45,"w":512,"h":512,"nm":"Monetize 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Dollar 2","parent":4,"sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":7,"s":[0],"h":1}]},"p":{"a":0,"k":[0.157,0.248,0]},"a":{"a":0,"k":[0.157,0.248,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-7.203,0],[0,9.395],[0,0],[0,36.013],[38.675,8.455],[0,0],[0,13.309],[-21.608,0],[-13.622,-15.188],[-7.203,0],[0,9.081],[8.768,8.612],[19.572,2.505],[0,0],[7.203,0],[0,-9.395],[0,0],[0,-34.76],[-35.7,-7.985],[0,0],[0,-13.779],[24.896,0],[14.092,15.188],[5.95,0],[0,-10.491],[-9.551,-8.299],[-21.764,-2.036],[0,0]],"o":[[7.046,0],[0,0],[42.119,-4.541],[0,-31.002],[0,0],[-19.885,-4.384],[0,-15.971],[17.537,0],[6.889,7.203],[8.768,0],[0,-8.768],[-11.587,-10.96],[0,0],[0,-9.238],[-7.046,0],[0,0],[-40.553,3.758],[0,30.376],[0,0],[23.173,5.48],[0,17.85],[-18.633,0],[-7.985,-7.985],[-9.551,0],[0,9.238],[12.526,11.43],[0,0],[0,9.395]],"v":[[0.391,134.67],[13.701,121.361],[13.701,108.835],[82.125,43.542],[24.817,-14.705],[-6.968,-21.907],[-36.561,-48.682],[-1.174,-76.24],[42.198,-55.102],[61.613,-45.237],[77.114,-60.425],[63.179,-87.357],[14.64,-108.025],[14.64,-121.021],[1.174,-134.173],[-12.135,-121.021],[-12.135,-108.494],[-78.523,-45.707],[-24.191,12.853],[7.594,20.212],[40.319,47.613],[1.487,76.736],[-46.738,54.502],[-65.058,44.795],[-81.812,61.392],[-66.937,88.48],[-13.074,108.991],[-13.074,121.361]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Path","bm":0,"hd":false}],"ip":0,"op":19,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Dollar","parent":4,"sr":1,"ks":{"p":{"a":0,"k":[0.157,0.248,0]},"a":{"a":0,"k":[0.157,0.248,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-109.802,0],[0,-109.802],[109.802,0],[0,109.802]],"o":[[109.802,0],[0,109.802],[-109.802,0],[0,-109.802]],"v":[[0,-198.373],[198.815,0.442],[0,199.256],[-198.815,0.442]],"c":true}},"nm":"Path 2","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.6,"y":0},"t":0,"s":[{"i":[[-7.758,0],[-8.294,-0.389],[0,0],[-15.505,35.555],[-5.189,20.685],[0,0],[-0.473,9.89],[1.265,9.144],[0.326,2.802],[1.564,7.598],[4.573,8.647],[24.58,21.387],[9.543,8.105],[0,0],[7.758,0],[22.225,-8.056],[0,0],[12.95,-27.243],[2.899,-10.613],[0,0],[1.667,-6.842],[0.325,-3.781],[-0.013,1.074],[-2.482,-5.909],[-6.005,-9.572],[-10.288,-8.938],[-15.538,-4.838],[0,0]],"o":[[7.589,0],[0,0],[54.716,-19.748],[11.175,-25.626],[0,0],[0.234,-3.6],[0.3,-6.263],[-0.98,-7.089],[-1.29,-7.43],[-2.276,-11.054],[-16.279,-30.778],[-12.48,-11.805],[0,0],[-12.537,-7.517],[-7.589,0],[0,0],[-33.783,19.92],[-5.342,11.237],[0,0],[-1.178,3.542],[-1.151,4.725],[-0.256,2.977],[-0.013,2.69],[12.987,30.918],[15.953,25.428],[13.492,12.311],[0,0],[8.697,1.766]],"v":[[0.161,201.029],[28.615,199.619],[64.698,193.667],[177.711,92.374],[196.229,40.138],[199.692,30.496],[201.477,12.697],[200.278,-8.368],[197.985,-30.569],[193.317,-51.988],[176.623,-90.966],[125.531,-156.056],[86.175,-179.394],[57.632,-189.084],[1.309,-202.173],[-63.298,-192.315],[-103.151,-171.822],[-176.812,-90.731],[-189.917,-57.276],[-192.842,-34.271],[-196.908,-11.758],[-195.918,3.454],[-195.084,16.127],[-188.158,57.91],[-163.12,113.485],[-108.323,168.511],[-60.54,193.835],[-27.689,201.234]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":4,"s":[{"i":[[-4.617,0],[-4.23,0.524],[0,0],[-9.228,25.062],[-2.072,13.274],[0,0],[-0.282,6.971],[0.753,6.445],[0.194,1.975],[0.931,5.356],[2.722,6.095],[14.63,15.076],[5.68,5.713],[0,0],[4.617,0],[13.228,-5.678],[0,0],[7.708,-19.203],[1.725,-7.481],[0,0],[0.205,-5.571],[0.193,-2.665],[-0.008,0.757],[-1.477,-4.165],[-3.574,-6.747],[-6.628,-5.77],[-9.248,-3.41],[0,0]],"o":[[4.517,0],[0,0],[32.566,-13.92],[6.651,-18.063],[0,0],[0.14,-2.538],[0.178,-4.414],[-0.584,-4.997],[-0.768,-5.237],[-1.355,-7.792],[-9.689,-21.695],[-7.428,-8.321],[0,0],[-7.462,-5.299],[-4.517,0],[0,0],[-20.107,14.041],[-3.179,7.921],[0,0],[-0.309,4.577],[-0.125,3.398],[-0.152,2.098],[-0.008,1.896],[7.73,21.794],[9.495,17.924],[9.39,7.705],[0,0],[4.874,0.657]],"v":[[-2.409,142.332],[13.891,140.829],[35.367,136.634],[102.631,65.235],[112.669,29.559],[113.713,21.618],[114.775,9.072],[114.062,-5.777],[112.697,-21.426],[109.919,-36.523],[101.983,-63.998],[71.574,-109.879],[48.15,-126.33],[31.797,-134.304],[-2.361,-142.386],[-40.814,-135.437],[-64.534,-120.992],[-108.376,-63.832],[-116.176,-40.251],[-119.06,-24.035],[-120.337,-8.166],[-120.637,2.557],[-120.395,11.236],[-115.129,40.942],[-100.226,80.115],[-68.883,119.411],[-39.173,136.753],[-19.62,141.968]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[-6.86,0],[-0.61,10.729],[0,0],[-3.262,33.618],[26.476,15.517],[0,0],[-1.01,14.967],[-19.272,-17.959],[-8.53,1.842],[-4.483,4.566],[0.962,8.41],[11.535,10.75],[16.213,3.523],[0,0],[6.86,0],[1.629,-10.005],[0,0],[2.725,-30.96],[-24.437,-10.108],[0,0],[0.351,-11.44],[22.204,9.105],[8.891,2.09],[6.646,-6.312],[-1.263,-9.628],[-9.097,-7.904],[-19.065,-2.495],[0,0]],"o":[[6.711,0],[0,0],[42.081,-7.45],[2.351,-27.893],[0,0],[-22.626,-11.54],[-0.498,-13.969],[11.456,9.696],[6.322,-1.487],[5.885,-2.326],[-3.425,-12.839],[-11.035,-10.439],[0,0],[0.541,-12.222],[-6.711,0],[0,0],[-36.541,6.918],[-1.124,24.411],[0,0],[16.571,4.723],[-0.242,13.949],[-11.34,-7.796],[-7.498,-3.031],[-4.2,6.505],[3.356,12.055],[11.93,10.886],[0,0],[-0.571,8.085]],"v":[[-0.184,146.71],[22.12,130.096],[23.565,119.753],[97.004,51.053],[65.964,-10.918],[43.879,-20.479],[-7.952,-45.962],[34.892,-46.837],[69.729,-35.397],[84.375,-44.267],[89.809,-64.771],[70.482,-96.987],[26.717,-117.154],[25.577,-128.881],[-0.655,-144.51],[-23.395,-131.098],[-24.097,-116.927],[-92.644,-54.295],[-61.345,11.122],[-41.963,20.279],[10.636,45.671],[-31.167,48.499],[-62.152,32.724],[-88.587,42.663],[-93.687,68.449],[-71.362,99.686],[-22.216,119.902],[-19.658,131.973]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.3,"y":0},"t":11,"s":[{"i":[[-7.998,0.17],[0.745,13.532],[0,0],[1.282,37.214],[40.493,7.416],[0,0],[0.231,7.978],[-20.145,0],[-10.207,-9.578],[-6.715,0],[0.668,13.241],[9.856,8.84],[14.437,2.004],[0,0],[6.715,0],[0,-8.759],[0,0],[2.469,-34.07],[-33.283,-7.445],[0,0],[-0.742,-9.276],[21.688,0.013],[13.974,10.952],[5.547,0],[0,-9.781],[-11.13,-9.537],[-20.291,-1.898],[0,0]],"o":[[7.443,-0.158],[0,0],[36.989,-1.477],[-0.995,-28.887],[0,0],[-15.53,-2.592],[-0.282,-9.733],[16.35,0],[6.423,6.715],[8.175,0],[-0.456,-9.043],[-9.607,-8.874],[0,0],[0,-8.613],[-6.569,0],[0,0],[-37.4,4.074],[-2.662,36.727],[0,0],[12.615,2.716],[1.101,13.774],[-17.372,-0.01],[-7.445,-7.445],[-8.905,0],[0,8.613],[11.678,10.657],[0,0],[-0.164,9.453]],"v":[[0.71,131.491],[17.43,113.722],[17.197,104.957],[82.738,40.86],[24.299,-14.183],[-6.093,-20.665],[-29.72,-42.014],[-1.216,-64.211],[37.006,-48.582],[58.487,-38.453],[76.436,-55.993],[60.763,-81.684],[17.84,-99.788],[17.257,-112.487],[1.557,-124.982],[-15.164,-112.37],[-14.931,-100.109],[-77.875,-42.387],[-22.092,19.201],[6.726,24.897],[35.138,44.722],[1.266,70.02],[-43.463,51.04],[-62.407,42.921],[-80.707,58.861],[-66.373,86.679],[-15.806,106.502],[-14.991,115.703]],"c":true}]},{"t":19,"s":[{"i":[[-8.578,0.183],[0.8,14.514],[0,0],[1.375,39.916],[43.433,7.955],[0,0],[0.248,8.557],[-21.608,0],[-10.948,-10.273],[-7.203,0],[0.716,14.203],[10.571,9.482],[15.485,2.15],[0,0],[7.203,0],[0,-9.395],[0,0],[2.648,-36.543],[-35.7,-7.985],[0,0],[-0.796,-9.949],[23.263,0.014],[14.988,11.748],[5.95,0],[0,-10.491],[-11.938,-10.23],[-21.764,-2.035],[0,0]],"o":[[7.984,-0.17],[0,0],[39.675,-1.585],[-1.068,-30.984],[0,0],[-16.657,-2.78],[-0.303,-10.439],[17.537,0],[6.889,7.203],[8.768,0],[-0.489,-9.7],[-10.304,-9.518],[0,0],[0,-9.238],[-7.046,0],[0,0],[-40.115,4.369],[-2.855,39.393],[0,0],[13.531,2.913],[1.181,14.774],[-18.633,-0.011],[-7.985,-7.986],[-9.551,0],[0,9.238],[12.526,11.43],[0,0],[-0.176,10.139]],"v":[[0.641,140.795],[18.575,121.736],[18.325,112.335],[88.625,43.584],[25.942,-15.455],[-6.655,-22.407],[-31.998,-45.307],[-1.424,-69.115],[39.573,-52.352],[62.613,-41.487],[81.864,-60.3],[65.054,-87.857],[19.015,-107.275],[18.39,-120.896],[1.549,-134.298],[-16.385,-120.771],[-16.135,-107.619],[-83.648,-45.707],[-23.816,20.353],[7.094,26.462],[37.569,47.726],[1.237,74.861],[-46.738,54.502],[-67.058,45.795],[-86.687,62.892],[-71.312,92.73],[-17.074,113.991],[-16.199,123.861]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Path","bm":0,"hd":false}],"ip":0,"op":19,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Circle Stroke","sr":1,"ks":{"p":{"a":0,"k":[256,256.442,0]},"a":{"a":0,"k":[0,0.442,0]},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.6,0.6,0.6],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":11,"s":[96,96,100]},{"t":19,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-109.802,0],[0,-109.802],[109.802,0],[0,109.802]],"o":[[109.802,0],[0,109.802],[-109.802,0],[0,-109.802]],"v":[[0,-198.373],[198.815,0.442],[0,199.256],[-198.815,0.442]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":32},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Mask","bm":0,"hd":false}],"ip":0,"op":19,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Dollar 4","parent":7,"sr":1,"ks":{"o":{"a":1,"k":[{"t":19,"s":[0],"h":1},{"t":30,"s":[100],"h":1}]},"p":{"a":0,"k":[0.157,0.248,0]},"a":{"a":0,"k":[0.157,0.248,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":19,"s":[{"i":[[-7.203,0],[0,9.395],[0,0],[0,36.013],[38.675,8.455],[0,0],[0,13.309],[-21.608,0],[-13.622,-15.188],[-7.203,0],[0,9.081],[8.768,8.612],[19.572,2.505],[0,0],[7.203,0],[0,-9.395],[0,0],[0,-34.76],[-35.7,-7.985],[0,0],[0,-13.779],[24.896,0],[14.092,15.188],[5.95,0],[0,-10.491],[-9.551,-8.299],[-21.764,-2.036],[0,0]],"o":[[7.046,0],[0,0],[42.119,-4.541],[0,-31.002],[0,0],[-19.885,-4.384],[0,-15.971],[17.537,0],[6.889,7.203],[8.768,0],[0,-8.768],[-11.587,-10.96],[0,0],[0,-9.238],[-7.046,0],[0,0],[-40.553,3.758],[0,30.376],[0,0],[23.173,5.48],[0,17.85],[-18.633,0],[-7.985,-7.985],[-9.551,0],[0,9.238],[12.526,11.43],[0,0],[0,9.395]],"v":[[0.391,134.67],[13.701,121.361],[13.701,108.835],[82.125,43.542],[24.817,-14.705],[-6.968,-21.907],[-36.561,-48.682],[-1.174,-76.24],[42.198,-55.102],[61.613,-45.237],[77.114,-60.425],[63.179,-87.357],[14.64,-108.025],[14.64,-121.021],[1.174,-134.173],[-12.135,-121.021],[-12.135,-108.494],[-78.523,-45.707],[-24.191,12.853],[7.594,20.212],[40.319,47.613],[1.487,76.736],[-46.738,54.502],[-65.058,44.795],[-81.812,61.392],[-66.937,88.48],[-13.074,108.991],[-13.074,121.361]],"c":true}]},{"i":{"x":0.71,"y":1},"o":{"x":0.3,"y":0},"t":29,"s":[{"i":[[-6.62,0],[0,8.635],[0,0],[0,33.102],[35.549,7.772],[0,0],[0,12.233],[-19.861,0],[-12.521,-13.96],[-6.62,0],[0,8.348],[8.06,7.916],[17.99,2.303],[0,0],[6.62,0],[0,-8.635],[0,0],[0,-31.951],[-32.814,-7.34],[0,0],[0,-12.665],[22.884,0],[12.953,13.96],[5.469,0],[0,-9.643],[-8.779,-7.628],[-20.005,-1.871],[0,0]],"o":[[6.477,0],[0,0],[38.715,-4.174],[0,-28.497],[0,0],[-18.278,-4.03],[0,-14.68],[16.119,0],[6.333,6.62],[8.06,0],[0,-8.06],[-10.65,-10.075],[0,0],[0,-8.491],[-6.477,0],[0,0],[-37.276,3.454],[0,27.921],[0,0],[21.301,5.037],[0,16.407],[-17.127,0],[-7.34,-7.34],[-8.779,0],[0,8.491],[11.514,10.506],[0,0],[0,8.635]],"v":[[0.372,123.806],[12.606,111.572],[12.606,100.059],[75.5,40.043],[22.824,-13.496],[-6.392,-20.117],[-33.593,-44.727],[-1.067,-70.058],[38.8,-50.628],[56.646,-41.561],[70.894,-55.522],[58.085,-80.276],[13.469,-99.274],[13.469,-111.22],[1.092,-123.309],[-11.141,-111.22],[-11.141,-99.706],[-72.164,-41.993],[-22.223,11.834],[6.993,18.599],[37.073,43.785],[1.38,70.555],[-42.948,50.118],[-59.787,41.194],[-75.187,56.45],[-61.514,81.349],[-12.005,100.203],[-12.005,111.572]],"c":true}]},{"i":{"x":0.71,"y":1},"o":{"x":0.29,"y":0},"t":36,"s":[{"i":[[-7.42,0],[0,9.678],[0,0],[0,37.099],[39.841,8.71],[0,0],[0,13.71],[-22.259,0],[-14.033,-15.646],[-7.42,0],[0,9.355],[9.033,8.871],[20.162,2.581],[0,0],[7.42,0],[0,-9.678],[0,0],[0,-35.808],[-36.776,-8.226],[0,0],[0,-14.194],[25.647,0],[14.517,15.646],[6.129,0],[0,-10.807],[-9.839,-8.549],[-22.421,-2.097],[0,0]],"o":[[7.258,0],[0,0],[43.389,-4.678],[0,-31.937],[0,0],[-20.485,-4.516],[0,-16.452],[18.065,0],[7.097,7.42],[9.033,0],[0,-9.033],[-11.936,-11.291],[0,0],[0,-9.517],[-7.258,0],[0,0],[-41.776,3.871],[0,31.292],[0,0],[23.872,5.645],[0,18.388],[-19.195,0],[-8.226,-8.226],[-9.839,0],[0,9.517],[12.904,11.775],[0,0],[0,9.678]],"v":[[0.399,138.723],[14.109,125.013],[14.109,112.109],[84.596,44.847],[25.561,-15.156],[-7.183,-22.575],[-37.668,-50.157],[-1.214,-78.546],[43.465,-56.771],[63.466,-46.609],[79.435,-62.255],[65.079,-89.998],[15.077,-111.29],[15.077,-124.678],[1.205,-138.227],[-12.505,-124.678],[-12.505,-111.774],[-80.896,-47.093],[-24.925,13.233],[7.818,20.814],[41.53,49.041],[1.528,79.043],[-48.152,56.138],[-67.024,46.138],[-84.283,63.236],[-68.96,91.14],[-13.473,112.27],[-13.473,125.013]],"c":true}]},{"t":44,"s":[{"i":[[-7.203,0],[0,9.395],[0,0],[0,36.013],[38.675,8.455],[0,0],[0,13.309],[-21.608,0],[-13.622,-15.188],[-7.203,0],[0,9.081],[8.768,8.612],[19.572,2.505],[0,0],[7.203,0],[0,-9.395],[0,0],[0,-34.76],[-35.7,-7.985],[0,0],[0,-13.779],[24.896,0],[14.092,15.188],[5.95,0],[0,-10.491],[-9.551,-8.299],[-21.764,-2.036],[0,0]],"o":[[7.046,0],[0,0],[42.119,-4.541],[0,-31.002],[0,0],[-19.885,-4.384],[0,-15.971],[17.537,0],[6.889,7.203],[8.768,0],[0,-8.768],[-11.587,-10.96],[0,0],[0,-9.238],[-7.046,0],[0,0],[-40.553,3.758],[0,30.376],[0,0],[23.173,5.48],[0,17.85],[-18.633,0],[-7.985,-7.985],[-9.551,0],[0,9.238],[12.526,11.43],[0,0],[0,9.395]],"v":[[0.391,134.67],[13.701,121.361],[13.701,108.835],[82.125,43.542],[24.817,-14.705],[-6.968,-21.907],[-36.561,-48.682],[-1.174,-76.24],[42.198,-55.102],[61.613,-45.237],[77.114,-60.425],[63.179,-87.357],[14.64,-108.025],[14.64,-121.021],[1.174,-134.173],[-12.135,-121.021],[-12.135,-108.494],[-78.523,-45.707],[-24.191,12.853],[7.594,20.212],[40.319,47.613],[1.487,76.736],[-46.738,54.502],[-65.058,44.795],[-81.812,61.392],[-66.937,88.48],[-13.074,108.991],[-13.074,121.361]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Path","bm":0,"hd":false}],"ip":19,"op":165,"st":19,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Dollar 3","parent":7,"sr":1,"ks":{"p":{"a":0,"k":[0.157,0.248,0]},"a":{"a":0,"k":[0.157,0.248,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-109.802,0],[0,-109.802],[109.802,0],[0,109.802]],"o":[[109.802,0],[0,109.802],[-109.802,0],[0,-109.802]],"v":[[0,-198.373],[198.815,0.442],[0,199.256],[-198.815,0.442]],"c":true}},"nm":"Path 2","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":19,"s":[{"i":[[-8.578,0.183],[0.8,14.514],[0,0],[1.375,39.916],[43.433,7.955],[0,0],[0.248,8.557],[-21.608,0],[-10.948,-10.273],[-7.203,0],[0.716,14.203],[10.571,9.482],[15.485,2.15],[0,0],[7.203,0],[0,-9.395],[0,0],[2.648,-36.543],[-35.7,-7.985],[0,0],[-0.796,-9.949],[23.263,0.014],[14.988,11.748],[5.95,0],[0,-10.491],[-11.938,-10.23],[-21.764,-2.035],[0,0]],"o":[[7.984,-0.17],[0,0],[39.675,-1.585],[-1.068,-30.984],[0,0],[-16.657,-2.78],[-0.303,-10.439],[17.537,0],[6.889,7.203],[8.768,0],[-0.489,-9.7],[-10.304,-9.518],[0,0],[0,-9.238],[-7.046,0],[0,0],[-40.115,4.369],[-2.855,39.393],[0,0],[13.531,2.913],[1.181,14.774],[-18.633,-0.011],[-7.985,-7.986],[-9.551,0],[0,9.238],[12.526,11.43],[0,0],[-0.176,10.139]],"v":[[0.641,140.795],[18.575,121.736],[18.325,112.335],[88.625,43.584],[25.942,-15.455],[-6.655,-22.407],[-31.998,-45.307],[-1.424,-69.115],[39.573,-52.352],[62.613,-41.487],[81.864,-60.3],[65.054,-87.857],[19.015,-107.275],[18.39,-120.896],[1.549,-134.298],[-16.385,-120.771],[-16.135,-107.619],[-83.648,-45.707],[-23.816,20.353],[7.094,26.462],[37.569,47.726],[1.237,74.861],[-46.738,54.502],[-67.058,45.795],[-86.687,62.892],[-71.312,92.73],[-17.074,113.991],[-16.199,123.861]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":27,"s":[{"i":[[-7.998,0.17],[0.745,13.532],[0,0],[1.282,37.214],[40.493,7.416],[0,0],[0.231,7.978],[-20.145,0],[-10.207,-9.578],[-6.715,0],[0.668,13.241],[9.856,8.84],[14.437,2.004],[0,0],[6.715,0],[0,-8.759],[0,0],[2.469,-34.07],[-33.283,-7.445],[0,0],[-0.742,-9.276],[21.688,0.013],[13.974,10.952],[5.547,0],[0,-9.781],[-11.13,-9.537],[-20.291,-1.898],[0,0]],"o":[[7.443,-0.158],[0,0],[36.989,-1.477],[-0.995,-28.887],[0,0],[-15.53,-2.592],[-0.282,-9.733],[16.35,0],[6.423,6.715],[8.175,0],[-0.456,-9.043],[-9.607,-8.874],[0,0],[0,-8.613],[-6.569,0],[0,0],[-37.4,4.074],[-2.662,36.727],[0,0],[12.615,2.716],[1.101,13.774],[-17.372,-0.01],[-7.445,-7.445],[-8.905,0],[0,8.613],[11.678,10.657],[0,0],[-0.164,9.453]],"v":[[0.71,131.491],[17.43,113.722],[17.197,104.957],[82.738,40.86],[24.299,-14.183],[-6.093,-20.665],[-29.72,-42.014],[-1.216,-64.211],[37.006,-48.582],[58.487,-38.453],[76.436,-55.993],[60.763,-81.684],[17.84,-99.788],[17.257,-112.487],[1.557,-124.982],[-15.164,-112.37],[-14.931,-100.109],[-77.875,-42.387],[-22.092,19.201],[6.726,24.897],[35.138,44.722],[1.266,70.02],[-43.463,51.04],[-62.407,42.921],[-80.707,58.861],[-66.373,86.679],[-15.806,106.502],[-14.991,115.703]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[-6.775,0],[-1.13,7.406],[0,0],[-2.113,33.436],[22.399,12.065],[10.066,2.947],[1.564,14.881],[-11.011,-7.209],[-12.115,-0.746],[-3.858,4.579],[0.623,8.388],[10.311,9.751],[16.839,3.093],[0,0],[6.775,0],[3.028,-8.556],[0,0],[1.765,-31.309],[-34.272,-14.97],[0,0],[0.227,-11.872],[17.864,8.577],[16.071,12.348],[7.66,-8.417],[-0.818,-9.633],[-8.985,-7.806],[-19.397,-2.275],[0,0]],"o":[[6.628,0],[0,0],[40.895,-6.296],[1.523,-28.106],[0,0],[-11.706,-3.427],[-1.414,-13.459],[8.186,6.868],[9.129,1.301],[7.148,-4.636],[-2.218,-11.155],[-10.9,-10.31],[0,0],[-1.708,-8.359],[-6.628,0],[0,0],[-36.8,5.698],[-2.136,16.373],[0,0],[17.676,8.303],[-0.157,14.815],[-9.05,-4.345],[-9.013,-8.384],[-5.813,4.213],[2.174,10.799],[11.783,10.752],[0,0],[1.185,7.699]],"v":[[-0.68,135.608],[19.394,123.825],[19.704,112.813],[89.427,47.173],[58.482,-12.843],[30.647,-23.714],[-12.825,-45.093],[24.832,-46.295],[52.299,-31.514],[75.524,-37.095],[85.301,-60.351],[67.275,-90.602],[23.376,-110.191],[21.534,-121.829],[1.122,-134.055],[-20.552,-122.525],[-23.678,-109.532],[-86.423,-48.634],[-52.751,14.959],[-27.914,24.704],[14.917,44.151],[-14.753,52.709],[-47.297,34.992],[-81.374,36.817],[-87.936,63.454],[-67.892,93.225],[-21.434,113.217],[-19.517,124.045]],"c":true}]},{"i":{"x":0.71,"y":1},"o":{"x":0.167,"y":0},"t":30,"s":[{"i":[[-4.617,0],[-4.23,0.524],[0,0],[-9.228,25.062],[-2.072,13.274],[0,0],[-0.282,6.971],[0.753,6.445],[0.194,1.975],[0.931,5.356],[2.722,6.095],[14.63,15.076],[5.68,5.713],[0,0],[4.617,0],[13.228,-5.678],[0,0],[7.708,-19.203],[1.725,-7.481],[0,0],[0.205,-5.571],[0.193,-2.665],[-0.008,0.757],[-1.477,-4.165],[-3.574,-6.747],[-6.628,-5.77],[-9.248,-3.41],[0,0]],"o":[[4.517,0],[0,0],[32.566,-13.92],[6.651,-18.063],[0,0],[0.14,-2.538],[0.178,-4.414],[-0.584,-4.997],[-0.768,-5.237],[-1.355,-7.792],[-9.689,-21.695],[-7.428,-8.321],[0,0],[-7.462,-5.299],[-4.517,0],[0,0],[-20.107,14.041],[-3.179,7.921],[0,0],[-0.309,4.577],[-0.125,3.398],[-0.152,2.098],[-0.008,1.896],[7.73,21.794],[9.495,17.924],[9.39,7.705],[0,0],[4.874,0.657]],"v":[[-2.409,142.332],[13.891,140.829],[35.367,136.634],[102.631,65.235],[112.669,29.559],[113.713,21.618],[114.775,9.072],[114.062,-5.777],[112.697,-21.426],[109.919,-36.523],[101.983,-63.998],[71.574,-109.879],[48.15,-126.33],[31.797,-134.304],[-2.361,-142.386],[-40.814,-135.437],[-64.534,-120.992],[-108.376,-63.832],[-116.176,-40.251],[-119.06,-24.035],[-120.337,-8.166],[-120.637,2.557],[-120.395,11.236],[-115.129,40.942],[-100.226,80.115],[-68.883,119.411],[-39.173,136.753],[-19.62,141.968]],"c":true}]},{"t":36,"s":[{"i":[[-7.758,0],[-8.294,-0.389],[0,0],[-15.505,35.555],[-5.189,20.685],[0,0],[-0.473,9.89],[1.265,9.144],[0.326,2.802],[1.564,7.598],[4.573,8.647],[24.58,21.387],[9.543,8.105],[0,0],[7.758,0],[22.225,-8.056],[0,0],[12.95,-27.243],[2.899,-10.613],[0,0],[1.667,-6.842],[0.325,-3.781],[-0.013,1.074],[-2.482,-5.909],[-6.005,-9.572],[-10.288,-8.938],[-15.538,-4.838],[0,0]],"o":[[7.589,0],[0,0],[54.716,-19.748],[11.175,-25.626],[0,0],[0.234,-3.6],[0.3,-6.263],[-0.98,-7.089],[-1.29,-7.43],[-2.276,-11.054],[-16.279,-30.778],[-12.48,-11.805],[0,0],[-12.537,-7.517],[-7.589,0],[0,0],[-33.783,19.92],[-5.342,11.237],[0,0],[-1.178,3.542],[-1.151,4.725],[-0.256,2.977],[-0.013,2.69],[12.987,30.918],[15.953,25.428],[13.492,12.311],[0,0],[8.697,1.766]],"v":[[0.161,201.029],[28.615,199.619],[64.698,193.667],[177.711,92.374],[196.229,40.138],[199.692,30.496],[201.477,12.697],[200.278,-8.368],[197.985,-30.569],[193.317,-51.988],[176.623,-90.966],[125.531,-156.056],[86.175,-179.394],[57.632,-189.084],[1.309,-202.173],[-63.298,-192.315],[-103.151,-171.822],[-176.812,-90.731],[-189.917,-57.276],[-192.842,-34.271],[-196.908,-11.758],[-195.918,3.454],[-195.084,16.127],[-188.158,57.91],[-163.12,113.485],[-108.323,168.511],[-60.54,193.835],[-27.689,201.234]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Path","bm":0,"hd":false}],"ip":19,"op":165,"st":19,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Circle Stroke 2","sr":1,"ks":{"p":{"a":0,"k":[256,256.442,0]},"a":{"a":0,"k":[0,0.442,0]},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"t":19,"s":[100,100,100]},{"i":{"x":[0.71,0.71,0.71],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":27,"s":[96,96,100]},{"i":{"x":[0.71,0.71,0.71],"y":[1,1,1]},"o":{"x":[0.29,0.29,0.29],"y":[0,0,0]},"t":36,"s":[102,102,100]},{"t":44,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-109.802,0],[0,-109.802],[109.802,0],[0,109.802]],"o":[[109.802,0],[0,109.802],[-109.802,0],[0,-109.802]],"v":[[0,-198.373],[198.815,0.442],[0,199.256],[-198.815,0.442]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":32},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Mask","bm":0,"hd":false}],"ip":19,"op":165,"st":19,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/speed_limit.json b/TMessagesProj/src/main/res/raw/speed_limit.json new file mode 100644 index 0000000000..5882f494be --- /dev/null +++ b/TMessagesProj/src/main/res/raw/speed_limit.json @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":51,"w":512,"h":512,"nm":"SPEED LOW 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"NULL PANEL 2","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[248,356,0]},"a":{"a":0,"k":[0,100,0]},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,4.302]},"t":0,"s":[25.714,15,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.4,0.4,0.4],"y":[0,0,0]},"t":13,"s":[117.236,124,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":37,"s":[96.96,95,100]},{"t":50,"s":[100,100,100]}]}},"ao":0,"ip":1,"op":180,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Arrow 2","parent":1,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":2,"s":[63]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":37,"s":[-71]},{"t":50,"s":[-60]}]},"p":{"a":0,"k":[5,60,0]},"a":{"a":0,"k":[-7.787,69.299,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,4.167]},"t":3,"s":[48.75,15,100]},{"t":16,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[-0.807,0.302],[-5.808,-0.264],[-6.012,-2.01],[-1.065,2.968],[0,0],[6.278,-0.597],[0.47,-5.497],[0,0],[-3.141,-0.274]],"o":[[6.203,-2.374],[5.783,0.263],[2.993,0.992],[0.685,-1.908],[-0.597,-6.278],[-5.492,0.522],[0,0],[-0.28,3.141],[0.858,0.075]],"v":[[-23.465,-9.777],[-5.449,-12.942],[12.243,-9.532],[19.463,-13.151],[6.541,-103.282],[-5.906,-113.568],[-16.202,-103.174],[-31.181,-15.611],[-25.995,-9.429]],"c":true}]},{"i":{"x":0.462,"y":1},"o":{"x":0.518,"y":0},"t":13,"s":[{"i":[[-0.807,0.302],[-5.808,-0.265],[-6.012,-2.01],[-1.065,2.968],[0,0],[6.278,-0.597],[0.47,-5.497],[0,0],[-3.141,-0.274]],"o":[[6.203,-2.374],[5.783,0.263],[2.993,0.992],[0.685,-1.908],[-0.597,-6.278],[-5.492,0.522],[0,0],[-0.28,3.141],[0.858,0.075]],"v":[[-23.078,-8.893],[-5.062,-12.058],[12.63,-8.648],[19.85,-12.267],[7.593,-149.498],[-4.855,-159.784],[-15.151,-149.39],[-30.794,-14.727],[-25.608,-8.545]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.05,"y":0},"t":37,"s":[{"i":[[-0.807,0.302],[-5.808,-0.264],[-6.012,-2.01],[-1.065,2.968],[0,0],[6.278,-0.597],[0.47,-5.497],[0,0],[-3.141,-0.274]],"o":[[6.203,-2.374],[5.783,0.263],[2.993,0.992],[0.685,-1.908],[-0.597,-6.278],[-5.492,0.522],[0,0],[-0.28,3.141],[0.858,0.075]],"v":[[-22.179,22.109],[-4.163,18.944],[13.53,22.354],[20.75,18.735],[7.133,-150.626],[-5.314,-160.912],[-15.61,-150.518],[-29.895,16.275],[-24.708,22.457]],"c":true}]},{"t":50,"s":[{"i":[[-0.807,0.302],[-5.808,-0.264],[-6.012,-2.01],[-1.065,2.968],[0,0],[6.278,-0.597],[0.47,-5.497],[0,0],[-3.141,-0.274]],"o":[[6.203,-2.374],[5.783,0.263],[2.993,0.992],[0.685,-1.908],[-0.597,-6.278],[-5.492,0.522],[0,0],[-0.28,3.141],[0.858,0.075]],"v":[[-21.224,11.095],[-3.208,7.931],[14.484,11.341],[21.705,7.722],[7.133,-150.626],[-5.314,-160.912],[-15.61,-150.518],[-28.94,5.261],[-23.753,11.444]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Path","bm":0,"hd":false}],"ip":4,"op":180,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Center 2","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[4.867,59.638,0]},"a":{"a":0,"k":[-3.133,59.638,0]},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.256]},"t":1,"s":[30,30,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.7],"y":[0,0,0]},"t":13,"s":[132,132,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":37,"s":[80,80,100]},{"t":50,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-23.527,0],[0,-23.854],[23.527,0],[0,23.854]],"o":[[23.527,0],[0,23.854],[-23.527,0],[0,-23.854]],"v":[[-3.133,16.446],[39.465,59.638],[-3.133,102.83],[-45.732,59.638]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Oval","bm":0,"hd":false}],"ip":3,"op":180,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"R 2","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[3.387,92.129,0]},"a":{"a":0,"k":[-4.613,92.129,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[-12.181,-22.878],[1.489,-32.247],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.629,13.803],[-95.443,0],[-27.193,-21.405]],"o":[[14.326,26.81],[-0.416,9.018],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.379,-96.112],[37.342,0],[17.477,15.397]],"v":[[140.097,-14.089],[162.167,79.978],[147.237,88.265],[110.997,88.421],[93.299,89.36],[52.421,88.725],[-11.915,89.467],[-126.122,91.21],[-171.718,79.738],[-4.613,-104.244],[93.624,-69.99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[-12.181,-22.878],[0.872,-32.261],[8.788,0.236],[2.459,9.024],[1.846,6.538],[9.385,4.501],[25.431,-0.945],[14.765,-28.287],[0.505,14.952],[-95.443,0],[-27.193,-21.405]],"o":[[14.326,26.81],[-0.244,9.564],[-8.789,-0.236],[-1.916,-7.032],[-5.633,-13.773],[-7.091,-4.936],[-48.278,1.794],[-2.977,5.704],[-3.568,-105.902],[37.342,0],[17.477,15.397]],"v":[[140.097,-14.089],[162.301,78.289],[135.829,89.606],[94.533,81.738],[86.593,63.601],[53.608,35.002],[-9.399,24.486],[-109.611,89.706],[-172.033,84.274],[-4.613,-104.244],[93.624,-69.99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[-12.181,-22.878],[0.564,-32.268],[13.183,0.354],[2.782,9.119],[2.77,9.807],[13.249,11.647],[38.148,-1.388],[-1.708,-49.31],[0.443,15.527],[-95.443,0],[-27.194,-21.405]],"o":[[14.326,26.81],[-0.158,9.837],[-13.183,-0.354],[-3.19,-10.456],[-7.131,-30.613],[-10.636,-7.404],[-67.184,2.444],[0.334,9.645],[-3.162,-110.797],[37.342,0],[17.477,15.397]],"v":[[140.097,-14.089],[162.367,77.445],[130.125,90.276],[95.284,79.484],[91.565,50.721],[57.889,-3.344],[-4.562,-22.478],[-102.149,86.238],[-172.19,86.542],[-4.613,-104.244],[93.624,-69.99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[-1.676,1.444],[-1.065,-5.369],[-0.994,-7.637],[-0.431,-9.662],[3.793,-2.828],[10.609,0.285],[3.797,2.409],[0.144,5.166],[0.503,5.219],[0.335,1.576],[-10.45,5.837]],"o":[[0.644,2.858],[1.065,5.369],[0.994,7.637],[0.231,5.163],[-3.793,2.828],[-10.609,-0.285],[-3.797,-2.409],[-0.286,-10.276],[-0.503,-5.219],[2.491,-1.569],[10.45,-5.837]],"v":[[154.331,17.92],[157.017,30.321],[160.229,49.892],[162.489,75.902],[157.844,88.084],[136.939,92.094],[116.119,88.212],[110.997,77.008],[109.718,54.119],[108.365,44.28],[131.959,31.006]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[-1.676,1.444],[-1.981,-6.643],[-1.571,-9.148],[-0.198,-11.366],[3.758,-2.827],[10.609,0.285],[3.797,2.409],[0.144,5.166],[0.501,6.379],[0.428,0.751],[-9.057,7.991]],"o":[[1.427,3.851],[1.981,6.643],[1.571,9.148],[0.09,5.168],[-3.758,2.827],[-10.609,-0.285],[-3.797,-2.409],[-0.286,-10.276],[-0.501,-6.379],[2.491,-1.569],[9.057,-7.991]],"v":[[148.673,5.487],[154.026,21.301],[159.595,45.06],[162.489,75.902],[157.738,88.087],[136.939,92.094],[116.119,88.212],[110.997,77.008],[109.744,51.593],[108.278,40.464],[129.087,22.882]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[-2.652,3.422],[-4.697,-10.756],[-2.302,-11.829],[0.53,-13.356],[3.684,-2.828],[10.609,0.285],[3.833,2.408],[0,5.169],[1.624,10.337],[2.513,8.504],[-5.883,8.889]],"o":[[6.656,10.137],[4.697,10.756],[2.302,11.829],[-0.205,5.164],[-3.684,2.828],[-10.609,-0.285],[-3.833,-2.408],[0,-8.797],[-1.624,-10.337],[3.803,-6.13],[5.883,-8.889]],"v":[[131.976,-26.751],[149.115,4.474],[159.722,38.238],[162.489,75.902],[157.517,88.085],[136.939,92.094],[116.011,88.214],[110.997,77.008],[108.377,47.462],[101.988,18.357],[117.845,-6.228]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[-1.391,3.474],[-8.399,-15.088],[-3.623,-15.23],[0.801,-13.925],[3.663,-2.83],[10.609,0.285],[3.833,2.408],[0,5.169],[3.395,16.808],[9.027,11.539],[-4.372,10.232]],"o":[[13.527,13.497],[8.399,15.088],[3.623,15.23],[-0.288,5.158],[-3.663,2.83],[-10.609,-0.285],[-3.833,-2.408],[0,-8.797],[-3.395,-16.808],[0.326,-2.309],[4.372,-10.232]],"v":[[107.598,-57.271],[140.4,-14.032],[158.345,31.807],[162.489,75.902],[157.455,88.081],[136.939,92.094],[116.011,88.214],[110.997,77.008],[106.465,35.28],[88.392,-10.561],[97.196,-33.042]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0.678,3.558],[-15.275,-19.793],[-6.606,-20.792],[1.248,-14.859],[3.629,-2.832],[10.609,0.285],[3.833,2.408],[0,5.169],[7.253,23.842],[24.731,18.56],[-1.498,9.722]],"o":[[24.761,11.863],[15.275,19.793],[6.606,20.792],[-0.424,5.15],[-3.629,2.832],[-10.609,-0.285],[-3.833,-2.408],[0,-8.797],[-7.253,-23.842],[-0.377,-2.974],[1.498,-9.722]],"v":[[62.189,-91.136],[122.039,-41.919],[154.656,20.693],[162.489,75.902],[157.352,88.074],[136.939,92.094],[116.011,88.214],[110.997,77.008],[102.673,22.967],[57.253,-45.717],[59.946,-67.988]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[-12.181,-22.878],[0,-32.281],[21.218,0.57],[0,10.337],[4.458,15.785],[21.324,18.746],[0.261,0.455],[0.241,-0.196],[0,0],[0.178,1.784],[-27.194,-21.405]],"o":[[14.326,26.81],[0,10.337],[-21.218,-0.57],[0,-17.595],[-9.963,-32.649],[-13.566,-9.645],[0.136,-0.564],[0.391,0.706],[0,0],[18.219,3.831],[17.477,15.397]],"v":[[140.097,-14.089],[162.489,75.902],[136.939,92.094],[110.997,77.008],[104.251,26.591],[56.286,-44.964],[40.19,-56.906],[40.069,-56.335],[35.419,-88.208],[32.766,-100.15],[93.624,-69.99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[-12.181,-22.878],[0,-32.281],[21.218,0.57],[0,10.337],[4.458,15.785],[21.324,18.746],[0.261,0.455],[0.241,-0.196],[0,0],[0.178,1.784],[-27.194,-21.405]],"o":[[14.326,26.81],[0,10.337],[-21.218,-0.57],[0,-17.595],[-9.963,-32.649],[-13.566,-9.645],[0.136,-0.564],[0.391,0.706],[0,0],[30.73,5.745],[17.477,15.397]],"v":[[140.097,-14.089],[162.489,75.902],[136.939,92.094],[110.997,77.008],[104.251,26.591],[56.286,-44.964],[23.725,-63.482],[23.604,-64.139],[15.488,-87.797],[11.099,-103.437],[93.625,-69.99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[-12.181,-22.878],[0,-32.281],[21.218,0.57],[0,10.337],[4.458,15.785],[21.324,18.746],[12.308,-0.227],[2.548,-0.349],[0.928,0.577],[-10.156,-0.437],[-27.194,-21.405]],"o":[[14.326,26.81],[0,10.337],[-21.218,-0.57],[0,-17.595],[-9.963,-32.649],[-15.343,-10.781],[-3.822,-0.314],[-0.577,-0.113],[2.643,-1.832],[34.035,3.04],[17.477,15.397]],"v":[[140.097,-14.089],[162.489,75.902],[136.939,92.094],[110.997,77.008],[104.251,26.591],[56.286,-44.964],[8.804,-63.634],[-0.851,-63.744],[-20.406,-101.894],[3.243,-103.84],[93.624,-69.99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[-12.181,-22.878],[0,-32.281],[21.218,0.57],[0,10.337],[4.458,15.785],[21.324,18.746],[24.355,-0.908],[4.855,-0.501],[1.855,1.155],[-16.93,-0.152],[-27.194,-21.405]],"o":[[14.326,26.81],[0,10.337],[-21.218,-0.57],[0,-17.595],[-9.963,-32.648],[-17.119,-11.917],[-7.781,-0.063],[-1.545,-0.932],[5.286,-3.664],[37.341,0.335],[17.477,15.397]],"v":[[140.097,-14.089],[162.489,75.902],[136.939,92.094],[110.997,77.008],[104.251,26.591],[56.286,-44.964],[-6.117,-63.786],[-25.306,-63.348],[-52.386,-96.989],[-4.613,-104.244],[93.624,-69.99]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[-12.181,-22.878],[0,-32.281],[21.218,0.57],[0,10.337],[4.458,15.785],[21.324,18.746],[24.355,-0.908],[11.352,-5.257],[1.828,1.191],[-27.402,0.048],[-27.194,-21.405]],"o":[[14.326,26.81],[0,10.337],[-21.218,-0.57],[0,-17.595],[-9.962,-32.648],[-17.119,-11.917],[-16.049,0.258],[-1.545,-0.932],[12.268,-10.541],[37.341,0.157],[17.477,15.397]],"v":[[140.097,-14.089],[162.489,75.902],[136.939,92.094],[110.997,77.008],[104.251,26.591],[56.286,-44.964],[-6.117,-63.786],[-50.865,-55.931],[-79.881,-83.32],[-4.613,-104.244],[93.624,-69.99]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-12.182,-22.878],[0,-32.281],[21.218,0.57],[0,10.337],[4.458,15.785],[21.324,18.746],[24.355,-0.908],[17.848,-10.012],[1.8,1.226],[-37.875,0.249],[-27.194,-21.405]],"o":[[14.326,26.81],[0,10.337],[-21.218,-0.57],[0,-17.595],[-9.962,-32.648],[-17.119,-11.917],[-24.318,0.58],[-1.545,-0.932],[19.249,-17.418],[37.341,-0.021],[17.477,15.397]],"v":[[140.097,-14.089],[162.489,75.902],[136.939,92.094],[110.997,77.008],[104.251,26.591],[56.286,-44.964],[-6.117,-63.786],[-66.677,-48.514],[-100.287,-69.652],[-4.613,-104.244],[93.624,-69.99]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.05,"y":0},"t":37,"s":[{"i":[[-12.182,-22.878],[0,-32.281],[21.218,0.57],[0,10.337],[4.458,15.785],[21.324,18.746],[24.355,-0.908],[27.019,-25.101],[1.739,1.305],[-60.911,0.689],[-27.194,-21.405]],"o":[[14.326,26.81],[0,10.337],[-21.218,-0.57],[0,-17.595],[-9.962,-32.649],[-17.119,-11.917],[-42.508,1.286],[-1.545,-0.932],[32.416,-42.215],[37.34,-0.412],[17.477,15.397]],"v":[[140.097,-14.089],[162.49,75.902],[136.939,92.094],[110.997,77.008],[104.251,26.591],[56.286,-44.964],[-6.117,-63.786],[-97.89,-23.899],[-138.683,-31.285],[-4.613,-104.244],[93.624,-69.99]],"c":true}]},{"t":50,"s":[{"i":[[-12.181,-22.878],[0,-32.281],[21.218,0.57],[0,10.337],[4.458,15.785],[21.324,18.746],[24.355,-0.908],[11.198,-8.201],[4.14,2.9],[-60.911,0.689],[-27.194,-21.405]],"o":[[14.326,26.81],[0,10.337],[-21.218,-0.57],[0,-17.595],[-9.963,-32.649],[-17.119,-11.917],[-42.508,1.286],[-1.545,-0.932],[15.91,-16.792],[37.34,-0.412],[17.477,15.397]],"v":[[140.097,-14.089],[162.489,75.902],[136.939,92.094],[110.997,77.008],[104.251,26.591],[56.286,-44.964],[-6.117,-63.786],[-83.823,-37.924],[-119.91,-54.083],[-4.613,-104.244],[93.624,-69.99]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":1,"op":180,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"L 2","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[3.387,92.129,0]},"a":{"a":0,"k":[-4.613,92.129,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[-12.181,-22.878],[0,-32.281],[21.218,0.57],[0,0],[0,0],[0,0],[0,0],[0,0],[9.189,-0.044],[0,0],[0,15.533],[-95.443,0],[-27.193,-21.405]],"o":[[14.326,26.81],[0,10.337],[-21.218,-0.57],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-9.331,-0.044],[0,-96.212],[37.342,0],[17.477,15.397]],"v":[[140.097,-14.089],[162.489,75.902],[136.939,92.094],[110.997,88.421],[93.299,89.36],[52.421,88.725],[-11.915,89.467],[-126.122,91.21],[-153.699,92.127],[-156.779,92.127],[-171.716,75.721],[-4.613,-104.244],[93.624,-69.99]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[-12.181,-22.878],[0.564,-32.268],[13.183,0.354],[2.782,9.119],[5.055,6.567],[10.465,4.464],[36.254,-0.673],[19.809,-32.607],[9.189,-0.044],[0,0],[0,15.533],[-95.443,0],[-27.193,-21.405]],"o":[[14.326,26.81],[-0.158,9.837],[-13.183,-0.354],[-3.19,-10.456],[-5.01,-6.509],[-11.731,-6.041],[-43.973,0.817],[-5.011,8.248],[0,0],[-9.331,-0.044],[0,-96.212],[37.342,0],[17.477,15.397]],"v":[[140.097,-14.089],[162.367,77.445],[130.125,90.276],[95.989,79.484],[80.158,53.619],[49.885,33.589],[-11.489,24.599],[-107.786,84.789],[-132.341,92.047],[-154.705,92.078],[-171.838,74.95],[-4.613,-104.244],[93.624,-69.99]],"c":true}]},{"t":5,"s":[{"i":[[-12.181,-22.878],[0,-32.281],[21.218,0.57],[0,10.337],[4.458,15.785],[21.324,18.746],[24.375,0],[0,-75.538],[9.189,-0.044],[0,0],[0,15.533],[-95.443,0],[-27.193,-21.405]],"o":[[14.326,26.81],[0,10.337],[-21.218,-0.57],[0,-17.595],[-9.963,-32.648],[-17.119,-11.917],[-74.935,0],[0,15.533],[0,0],[-9.331,-0.044],[0,-96.212],[37.342,0],[17.477,15.397]],"v":[[140.097,-14.089],[162.489,75.902],[136.939,92.094],[110.997,77.008],[104.251,26.591],[56.286,-44.964],[-6.117,-63.786],[-140.295,75.721],[-153.699,92.127],[-156.779,92.127],[-171.716,75.721],[-4.613,-104.244],[93.624,-69.99]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.4],"y":[0]},"t":6,"s":[19.5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[23.5]},{"i":{"x":[0.27],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":23,"s":[41]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":37,"s":[45.8]},{"t":50,"s":[43.5]}]},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[98.5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.4],"y":[0]},"t":6,"s":[90.5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[85.5]},{"i":{"x":[0.27],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":23,"s":[62]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":37,"s":[56]},{"t":50,"s":[58.8]}]},"o":{"a":0,"k":21},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":1,"op":180,"st":0,"bm":0}]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/yuv_hlg2rgb.glsl b/TMessagesProj/src/main/res/raw/yuv_hlg2rgb.glsl deleted file mode 100644 index 77f9c21a1a..0000000000 --- a/TMessagesProj/src/main/res/raw/yuv_hlg2rgb.glsl +++ /dev/null @@ -1,141 +0,0 @@ -#version 320 es - -#extension GL_OES_EGL_image_external : require -#extension GL_EXT_YUV_target : require - -precision mediump float; - -uniform __samplerExternal2DY2YEXT sTexture; - -const mat4 YUV_RGB2020 = mat4(1.167808, 1.167808, 1.167808, 0, 0, -0.187877, 2.148072, 0, 1.683611, -0.652337, 0, 0, -0.914865, 0.347048, -1.147095, 1); -const mat3 BT2020_BT709 = mat3(1.6605, -0.1246, -0.0182, -0.5876, 1.1329, -0.1006, -0.0728, -0.0083, 1.1187); -const highp vec3 Lvec = vec3(0.2627, 0.6780, 0.0593); - -const float sRGB_Lw = 80.0; // sRGB Lw -const float HLG_Lw = 1000.0; // HLG Lw -const float HLG_gamma = 1.2; // HLG gamma - -const float a = .17883277; -const float b = 1. - 4. * a; -const float c = .5 - a * log(4. * a); - -highp vec3 HLG_OOTF_norm(highp vec3 x) { - return pow(dot(Lvec, mix((x * x) / 3., (b + exp((x - c) / a)) / 12., step(.5, x))), HLG_gamma - 1.0) * x; -} - -highp vec3 sRGB_EOTF_Inv(highp vec3 x) { - return mix(12.92 * x, 1.055 * pow(x, vec3(1. / 2.4)) - .055, step(.0031308, x)); -} - -highp vec3 sRGB_EOTF(highp vec3 x) { - return mix(x / 12.92, pow((x + 0.055) / 1.055, vec3(2.4)), step(.04045, x)); -} - -const float L_HDR = HLG_Lw; -const float rho_HDR = 1. + 32. * pow(L_HDR / 10000., 1. / 2.4); -const float L_SDR = sRGB_Lw; -const float rho_SDR = 1. + 32. * pow(L_SDR / 10000., 1. / 2.4); - -highp vec3 BT2446_tone_mapping(highp vec3 rgb_BT2020) { - highp vec3 rgb_BT2020_prime = sRGB_EOTF_Inv(rgb_BT2020); - - float Y_prime = dot(Lvec, rgb_BT2020_prime); - - float Y_prime_p = log(1. + (rho_HDR - 1.) * Y_prime) / log(rho_HDR); - float Y_prime_c = mix(1.0770 * Y_prime_p, mix((-1.1510 * Y_prime_p + 2.7811) * Y_prime_p - .6302, .5 * Y_prime_p + .5, step(.9909, Y_prime_p)), step(.7399, Y_prime_p)); - float Y_prime_SDR = (pow(rho_SDR, Y_prime_c) - 1.) / (rho_SDR - 1.); - - float f_Y_prime_SDR = Y_prime_SDR / (1.1 * Y_prime); - float Cb_prime_TMO = f_Y_prime_SDR * (rgb_BT2020_prime.b - Y_prime) / 1.8814; - float Cr_prime_TMO = f_Y_prime_SDR * (rgb_BT2020_prime.r - Y_prime) / 1.4746; - float Y_prime_TMO = Y_prime_SDR - max(.1 * Cr_prime_TMO, .0); - - float R_prime_TMO = Cr_prime_TMO * 1.4746 + Y_prime_TMO; - float B_prime_TMO = Cb_prime_TMO * 1.8814 + Y_prime_TMO; - float G_prime_TMO = (Y_prime_TMO - Lvec.x * R_prime_TMO - Lvec.z * B_prime_TMO) / Lvec.y; - highp vec3 rgb_BT2020_prime_TMO = vec3(R_prime_TMO, G_prime_TMO, B_prime_TMO); - - return sRGB_EOTF(rgb_BT2020_prime_TMO); -} - -uniform vec2 texSize; - -vec4 at(vec2 uv) { - highp vec4 srcYuv = texture(sTexture, uv); - highp vec3 rgb_BT2020 = clamp((YUV_RGB2020 * srcYuv).rgb, 0., 1.); - highp vec3 rgb_BT2020_displayLinear = HLG_OOTF_norm(rgb_BT2020); - highp vec3 rgb_BT2020_displayLinear_TMO = BT2446_tone_mapping(rgb_BT2020_displayLinear); - highp vec3 rgb_BT709_displayLinear = BT2020_BT709 * rgb_BT2020_displayLinear_TMO; - rgb_BT709_displayLinear = clamp(rgb_BT709_displayLinear, 0., 1.); - highp vec3 rgb_BT709_sRGB = sRGB_EOTF_Inv(rgb_BT709_displayLinear); - return vec4(rgb_BT709_sRGB, 1.0); -} - -// vec4 BilinearTextureSample(vec2 P) { -// vec2 onePixel = 1.0 / texSize, twoPixels = 2.0 / texSize; -// vec2 pixel = P * texSize + .5; -// vec2 frac = fract(pixel); -// pixel = (floor(pixel) / texSize) - onePixel / 2.; -// return mix( -// mix(at(pixel + vec2(0., 0.) * onePixel), at(pixel + vec2(1., 0.) * onePixel), frac.x), -// mix(at(pixel + vec2(0., 1.) * onePixel), at(pixel + vec2(1., 1.) * onePixel), frac.x), -// frac.y -// ); -// } - -// vec3 NearestTextureSample(vec2 P) { -// vec2 onePixel = 1.0 / texSize, twoPixels = 2.0 / texSize; -// vec2 pixel = P * texSize; -// vec2 frac = fract(pixel); -// pixel = floor(pixel) / texSize; -// return at(pixel + onePixel / 2.).xyz; -// } - -// vec3 CubicHermite (vec3 A, vec3 B, vec3 C, vec3 D, float t) { -// float t2 = t*t; -// float t3 = t*t*t; -// vec3 a = -A/2.0 + (3.0*B)/2.0 - (3.0*C)/2.0 + D/2.0; -// vec3 b = A - (5.0*B)/2.0 + 2.0*C - D / 2.0; -// vec3 c = -A/2.0 + C/2.0; -// vec3 d = B; -// return a*t3 + b*t2 + c*t + d; -// } - -// vec3 BicubicHermiteTextureSample (vec2 P) -// { -// vec2 pixel = P * texSize + .5; -// vec2 onePixel = 1.0 / texSize, twoPixels = 2.0 / texSize; -// vec2 frac = fract(pixel); -// pixel = floor(pixel) / texSize - onePixel / 2.; -// -// vec3 C00 = at(pixel + vec2(-1., -1.) * onePixel).xyz; -// vec3 C10 = at(pixel + vec2( 0., -1.) * onePixel).xyz; -// vec3 C20 = at(pixel + vec2(-1., -1.) * onePixel).xyz; -// vec3 C30 = at(pixel + vec2(twoPixels.x, -onePixel.y)).xyz; -// -// vec3 C01 = at(pixel + vec2(-onePixel.x , 0.0)).xyz; -// vec3 C11 = at(pixel + vec2( 0.0 , 0.0)).xyz; -// vec3 C21 = at(pixel + vec2( onePixel.x , 0.0)).xyz; -// vec3 C31 = at(pixel + vec2( twoPixels.x, 0.0)).xyz; -// -// vec3 C02 = at(pixel + vec2(-onePixel.x , onePixel.y)).xyz; -// vec3 C12 = at(pixel + vec2( 0.0 , onePixel.y)).xyz; -// vec3 C22 = at(pixel + vec2( onePixel.x , onePixel.y)).xyz; -// vec3 C32 = at(pixel + vec2( twoPixels.x, onePixel.y)).xyz; -// -// vec3 C03 = at(pixel + vec2(-onePixel.x , twoPixels.y)).xyz; -// vec3 C13 = at(pixel + vec2( 0.0 , twoPixels.y)).xyz; -// vec3 C23 = at(pixel + vec2( onePixel.x , twoPixels.y)).xyz; -// vec3 C33 = at(pixel + vec2( twoPixels.y, twoPixels.y)).xyz; -// -// vec3 CP0X = CubicHermite(C00, C10, C20, C30, frac.x); -// vec3 CP1X = CubicHermite(C01, C11, C21, C31, frac.x); -// vec3 CP2X = CubicHermite(C02, C12, C22, C32, frac.x); -// vec3 CP3X = CubicHermite(C03, C13, C23, C33, frac.x); -// -// return CubicHermite(CP0X, CP1X, CP2X, CP3X, frac.y); -// } - -vec4 TEX(vec2 uv) { - return at(uv); -} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/yuv_pq2rgb.glsl b/TMessagesProj/src/main/res/raw/yuv_pq2rgb.glsl deleted file mode 100644 index c8840088ca..0000000000 --- a/TMessagesProj/src/main/res/raw/yuv_pq2rgb.glsl +++ /dev/null @@ -1,105 +0,0 @@ -#version 320 es - -#extension GL_OES_EGL_image_external : require -#extension GL_EXT_YUV_target : require - -precision mediump float; - -uniform __samplerExternal2DY2YEXT sTexture; - -const mat4 YUV_TO_RGB_REC2020 = mat4(1.167808, 1.167808, 1.167808, 0, 0, -0.187877, 2.148072, 0, 1.683611, -0.652337, 0, 0, -0.914865, 0.347048, -1.147095, 1); - -const mat3 REC709_XYZ = mat3(0.4124564, 0.3575761, 0.1804375, 0.2126729, 0.7151522, 0.0721750, 0.0193339, 0.1191920, 0.9503041); -const mat3 XYZ_REC709 = mat3(3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252); -const mat3 REC2020_XYZ = mat3(0.6370, 0.1446, 0.1689, 0.2627, 0.6780, 0.0593, 0.0, 0.0281, 1.0610); -const mat3 XYZ_REC2020 = mat3(1.7167, -0.3557, -0.2534, -0.6667, 1.6165, 0.0158, 0.0176, -0.0428, 0.9421); - -highp vec3 sRGB_EOTF_Inv(highp vec3 x) { - return mix(12.92 * x, 1.055 * pow(x, vec3(1.0 / 2.4)) - .055, step(.0031308, x)); -} - -uniform vec2 texSize; - -vec4 at(vec2 uv) { - highp vec4 srcYuv = texture(sTexture, uv); - highp vec3 rgb_BT2020 = clamp((YUV_TO_RGB_REC2020 * srcYuv).rgb, 0., 1.); - highp vec3 rgb_BT2020_pqexp = pow(rgb_BT2020, vec3(1.0 / 78.84375)); - highp vec3 rgb_BT2020_sceneLinear = 5000.0 * pow(max(rgb_BT2020_pqexp - 0.8359375, 0.0) / (18.8515625 - 18.6875 * rgb_BT2020_pqexp), vec3(1.0 / 0.1593017578125)); - highp vec3 rgb_BT2020_displayLinear = rgb_BT2020_sceneLinear / 100.; - highp vec3 xyz_displayLinear = rgb_BT2020_displayLinear*REC2020_XYZ; // REC709_XYZ - highp vec3 xyz_tonemap = xyz_displayLinear / (xyz_displayLinear.y + 1.); - highp vec3 rgb_BT709_displayLinear = clamp( xyz_tonemap*XYZ_REC709, 0., 1.); // XYZ_REC2020 - highp vec3 rgb_BT709_sRGB = sRGB_EOTF_Inv(rgb_BT709_displayLinear); - return vec4(rgb_BT709_sRGB, 1.); -} - -// vec4 BilinearTextureSample(vec2 P) { -// vec2 onePixel = 1. / texSize; -// vec2 pixel = P * texSize + .5; -// vec2 frac = fract(pixel); -// pixel = (floor(pixel) / texSize) - onePixel / 2.; -// return mix( -// mix(at(pixel + vec2(0., 0.) * onePixel), at(pixel + vec2(1., 0.) * onePixel), frac.x), -// mix(at(pixel + vec2(0., 1.) * onePixel), at(pixel + vec2(1., 1.) * onePixel), frac.x), -// frac.y -// ); -// } - -// vec4 NearestTextureSample (vec2 P) { -// vec2 onePixel = 1. / texSize; -// vec2 pixel = P * texSize; -// vec2 frac = fract(pixel); -// pixel = floor(pixel) / texSize; -// return at(pixel + onePixel / 2.); -// } - -//vec3 CubicHermite (vec3 A, vec3 B, vec3 C, vec3 D, float t) { -// float t2 = t*t; -// float t3 = t*t*t; -// vec3 a = -A/2.0 + (3.0*B)/2.0 - (3.0*C)/2.0 + D/2.0; -// vec3 b = A - (5.0*B)/2.0 + 2.0*C - D / 2.0; -// vec3 c = -A/2.0 + C/2.0; -// vec3 d = B; -// return a * t3 + b * t2 + c*t + d; -//} - -//vec3 BicubicHermiteTextureSample (vec2 P) -//{ -// vec2 pixel = P * texSize + .5; -// vec2 onePixel = 1. / texSize; -// vec2 twoPixels = 2. / texSize; -// -// vec2 frac = fract(pixel); -// pixel = floor(pixel) / texSize - onePixel / 2.; -// -// vec3 C00 = at(pixel + vec2(-1., -1.) * onePixel).xyz; -// vec3 C10 = at(pixel + vec2( 0., -1.) * onePixel).xyz; -// vec3 C20 = at(pixel + vec2(-1., -1.) * onePixel).xyz; -// vec3 C30 = at(pixel + vec2(twoPixels.x, -onePixel.y)).xyz; -// -// vec3 C01 = at(pixel + vec2(-onePixel.x , 0.0)).xyz; -// vec3 C11 = at(pixel + vec2( 0.0 , 0.0)).xyz; -// vec3 C21 = at(pixel + vec2( onePixel.x , 0.0)).xyz; -// vec3 C31 = at(pixel + vec2( twoPixels.x, 0.0)).xyz; -// -// vec3 C02 = at(pixel + vec2(-onePixel.x , onePixel.y)).xyz; -// vec3 C12 = at(pixel + vec2( 0.0 , onePixel.y)).xyz; -// vec3 C22 = at(pixel + vec2( onePixel.x , onePixel.y)).xyz; -// vec3 C32 = at(pixel + vec2( twoPixels.x, onePixel.y)).xyz; -// -// vec3 C03 = at(pixel + vec2(-onePixel.x , twoPixels.y)).xyz; -// vec3 C13 = at(pixel + vec2( 0.0 , twoPixels.y)).xyz; -// vec3 C23 = at(pixel + vec2( onePixel.x , twoPixels.y)).xyz; -// vec3 C33 = at(pixel + vec2( twoPixels.y, twoPixels.y)).xyz; -// -// vec3 CP0X = CubicHermite(C00, C10, C20, C30, frac.x); -// vec3 CP1X = CubicHermite(C01, C11, C21, C31, frac.x); -// vec3 CP2X = CubicHermite(C02, C12, C22, C32, frac.x); -// vec3 CP3X = CubicHermite(C03, C13, C23, C33, frac.x); -// -// return CubicHermite(CP0X, CP1X, CP2X, CP3X, frac.y); -//} - -vec4 TEX(vec2 uv) { - return at(uv); -} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/values-night/styles.xml b/TMessagesProj/src/main/res/values-night/styles.xml index 625a207e0d..9af62649fe 100644 --- a/TMessagesProj/src/main/res/values-night/styles.xml +++ b/TMessagesProj/src/main/res/values-night/styles.xml @@ -11,7 +11,7 @@ - - - - - - -