diff --git a/patches/experiments/README.md b/patches/experiments/README.md index 3c684ba0f2..f86ba2a5a7 100644 --- a/patches/experiments/README.md +++ b/patches/experiments/README.md @@ -2,6 +2,8 @@ This patch enables developer options (empty), mobile experiments (of which there's none) and the secret AMOLED theme (which is shit). +Conflicts with pureevil as it's included here. + #### Bugs / Side effects - Discord banned people for using experiments before. Don't show stuff this publicly. diff --git a/patches/litecord/836.patch b/patches/litecord/836.patch new file mode 100644 index 0000000000..38a93801ff --- /dev/null +++ b/patches/litecord/836.patch @@ -0,0 +1,334 @@ +diff -crB -x dist -x build com.discord-834-base/smali/com/discord/app/App.smali com.discord-834/smali/com/discord/app/App.smali +*** com.discord-834-base/smali/com/discord/app/App.smali 2019-01-23 23:17:43.004493819 +0300 +--- com.discord-834/smali/com/discord/app/App.smali 2019-01-23 23:27:49.444269345 +0300 +*************** +*** 218,224 **** + + invoke-virtual {v0, v1}, Lcom/discord/utilities/view/text/LinkifiedTextView$Companion;->init(Lkotlin/jvm/functions/Function2;)Lkotlin/Unit; + +! const-string v0, "https://cdn.discordapp.com" + + .line 75 + invoke-static {v0}, Lcom/discord/models/domain/emoji/ModelEmojiCustom;->setCdnUri(Ljava/lang/String;)V +--- 218,224 ---- + + invoke-virtual {v0, v1}, Lcom/discord/utilities/view/text/LinkifiedTextView$Companion;->init(Lkotlin/jvm/functions/Function2;)Lkotlin/Unit; + +! const-string v0, "https://dev.litecord.top" + + .line 75 + invoke-static {v0}, Lcom/discord/models/domain/emoji/ModelEmojiCustom;->setCdnUri(Ljava/lang/String;)V +diff -crB -x dist -x build com.discord-834-base/smali/com/discord/BuildConfig.smali com.discord-834/smali/com/discord/BuildConfig.smali +*** com.discord-834-base/smali/com/discord/BuildConfig.smali 2019-01-23 23:17:43.001160471 +0300 +--- com.discord-834/smali/com/discord/BuildConfig.smali 2019-01-23 23:27:49.444269345 +0300 +*************** +*** 16,30 **** + + .field public static final FLAVOR_internalExternal:Ljava/lang/String; = "external" + +! .field public static final HOST:Ljava/lang/String; = "https://discordapp.com" + +! .field public static final HOST_API:Ljava/lang/String; = "https://discordapp.com/api/" + +! .field public static final HOST_CDN:Ljava/lang/String; = "https://cdn.discordapp.com" + + .field public static final HOST_GIFT:Ljava/lang/String; = "https://discord.gift" + +! .field public static final HOST_INVITE:Ljava/lang/String; = "https://discord.gg" + + .field public static final LOCAL_IP:Ljava/lang/String; = "" + +--- 16,30 ---- + + .field public static final FLAVOR_internalExternal:Ljava/lang/String; = "external" + +! .field public static final HOST:Ljava/lang/String; = "https://dev.litecord.top" + +! .field public static final HOST_API:Ljava/lang/String; = "https://dev.litecord.top/api/" + +! .field public static final HOST_CDN:Ljava/lang/String; = "https://dev.litecord.top" + + .field public static final HOST_GIFT:Ljava/lang/String; = "https://discord.gift" + +! .field public static final HOST_INVITE:Ljava/lang/String; = "https://dev.litecord.top" + + .field public static final LOCAL_IP:Ljava/lang/String; = "" + +diff -crB -x dist -x build com.discord-834-base/smali/com/discord/gateway/GatewaySocket.smali com.discord-834/smali/com/discord/gateway/GatewaySocket.smali +*** com.discord-834-base/smali/com/discord/gateway/GatewaySocket.smali 2019-01-23 23:17:43.041160653 +0300 +--- com.discord-834/smali/com/discord/gateway/GatewaySocket.smali 2019-01-23 23:27:49.444269345 +0300 +*************** +*** 32,38 **** + + .field private static final DISCOVERING:I = 0x1 + +! .field private static final GATEWAY_COMPRESSION:Ljava/lang/String; = "zlib-stream" + + .field private static final GATEWAY_ENCODING:Ljava/lang/String; = "json" + +--- 32,38 ---- + + .field private static final DISCOVERING:I = 0x1 + +! .field private static final GATEWAY_COMPRESSION:Ljava/lang/String; = "" + + .field private static final GATEWAY_ENCODING:Ljava/lang/String; = "json" + +*************** +*** 1033,1039 **** + + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + +! const-string p1, "/?encoding=json&v=6&compress=zlib-stream" + + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + +--- 1033,1039 ---- + + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + +! const-string p1, "/?encoding=json&v=6" + + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + +Only in com.discord-834/smali/com/discord/gateway: GatewaySocket.smali.orig +diff -crB -x dist -x build com.discord-834-base/smali/com/discord/stores/StoreGatewayConnection.smali com.discord-834/smali/com/discord/stores/StoreGatewayConnection.smali +*** com.discord-834-base/smali/com/discord/stores/StoreGatewayConnection.smali 2019-01-23 23:17:43.221161471 +0300 +--- com.discord-834/smali/com/discord/stores/StoreGatewayConnection.smali 2019-01-23 23:28:19.534418022 +0300 +*************** +*** 1413,1419 **** + .line 290 + new-instance v10, Lcom/discord/gateway/rest/RestConfig; + +! const-string v3, "https://discordapp.com/api/" + + sget-object v4, Lcom/discord/utilities/rest/RestAPI$AppHeadersProvider;->INSTANCE:Lcom/discord/utilities/rest/RestAPI$AppHeadersProvider; + +--- 1413,1419 ---- + .line 290 + new-instance v10, Lcom/discord/gateway/rest/RestConfig; + +! const-string v3, "https://dev.litecord.top/api/" + + sget-object v4, Lcom/discord/utilities/rest/RestAPI$AppHeadersProvider;->INSTANCE:Lcom/discord/utilities/rest/RestAPI$AppHeadersProvider; + +Only in com.discord-834/smali/com/discord/stores: StoreGatewayConnection.smali.orig +diff -crB -x dist -x build com.discord-834-base/smali/com/discord/utilities/icon/IconUtils.smali com.discord-834/smali/com/discord/utilities/icon/IconUtils.smali +*** com.discord-834-base/smali/com/discord/utilities/icon/IconUtils.smali 2019-01-23 23:17:43.417829030 +0300 +--- com.discord-834/smali/com/discord/utilities/icon/IconUtils.smali 2019-01-23 23:27:49.450936045 +0300 +*************** +*** 359,365 **** + goto :goto_2 + + :cond_1 +! const-string p3, "https://cdn.discordapp.com" + + .line 103 + check-cast p3, Ljava/lang/CharSequence; +--- 359,365 ---- + goto :goto_2 + + :cond_1 +! const-string p3, "https://dev.litecord.top" + + .line 103 + check-cast p3, Ljava/lang/CharSequence; +*************** +*** 407,413 **** + :cond_3 + new-instance p3, Ljava/lang/StringBuilder; + +! const-string v0, "https://cdn.discordapp.com/channel-icons/" + + invoke-direct {p3, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +--- 407,413 ---- + :cond_3 + new-instance p3, Ljava/lang/StringBuilder; + +! const-string v0, "https://dev.litecord.top/channel-icons/" + + invoke-direct {p3, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +*************** +*** 649,655 **** + goto :goto_1 + + :cond_0 +! const-string p2, "https://cdn.discordapp.com" + + .line 135 + check-cast p2, Ljava/lang/CharSequence; +--- 649,655 ---- + goto :goto_1 + + :cond_0 +! const-string p2, "https://dev.litecord.top" + + .line 135 + check-cast p2, Ljava/lang/CharSequence; +*************** +*** 699,705 **** + :cond_2 + new-instance p2, Ljava/lang/StringBuilder; + +! const-string v0, "https://cdn.discordapp.com/icons/" + + invoke-direct {p2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +--- 699,705 ---- + :cond_2 + new-instance p2, Ljava/lang/StringBuilder; + +! const-string v0, "https://dev.litecord.top/icons/" + + invoke-direct {p2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +*************** +*** 900,906 **** + :cond_0 + if-eqz p1, :cond_4 + +! const-string p2, "https://cdn.discordapp.com" + + .line 82 + check-cast p2, Ljava/lang/CharSequence; +--- 900,906 ---- + :cond_0 + if-eqz p1, :cond_4 + +! const-string p2, "https://dev.litecord.top" + + .line 82 + check-cast p2, Ljava/lang/CharSequence; +*************** +*** 969,975 **** + :goto_1 + new-instance p3, Ljava/lang/StringBuilder; + +! const-string v0, "https://cdn.discordapp.com/avatars/" + + invoke-direct {p3, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +--- 969,975 ---- + :goto_1 + new-instance p3, Ljava/lang/StringBuilder; + +! const-string v0, "https://dev.litecord.top/avatars/" + + invoke-direct {p3, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +*************** +*** 1717,1723 **** + .line 176 + new-instance v0, Ljava/lang/StringBuilder; + +! const-string v1, "https://cdn.discordapp.com/game-assets/" + + invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +--- 1717,1723 ---- + .line 176 + new-instance v0, Ljava/lang/StringBuilder; + +! const-string v1, "https://dev.litecord.top/game-assets/" + + invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +*************** +*** 1837,1843 **** + .line 157 + new-instance v0, Ljava/lang/StringBuilder; + +! const-string v1, "https://cdn.discordapp.com/app-assets/" + + invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +--- 1837,1843 ---- + .line 157 + new-instance v0, Ljava/lang/StringBuilder; + +! const-string v1, "https://dev.litecord.top/app-assets/" + + invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +diff -crB -x dist -x build com.discord-834-base/smali/com/discord/utilities/rest/RestAPI$Companion.smali com.discord-834/smali/com/discord/utilities/rest/RestAPI$Companion.smali +*** com.discord-834-base/smali/com/discord/utilities/rest/RestAPI$Companion.smali 2019-01-23 23:17:43.447829167 +0300 +--- com.discord-834/smali/com/discord/utilities/rest/RestAPI$Companion.smali 2019-01-23 23:27:49.450936045 +0300 +*************** +*** 276,282 **** + .line 213 + new-instance v0, Lcom/discord/restapi/RestAPIBuilder; + +! const-string v9, "https://discordapp.com/api/" + + check-cast v6, Lokhttp3/m; + +--- 276,282 ---- + .line 213 + new-instance v0, Lcom/discord/restapi/RestAPIBuilder; + +! const-string v9, "https://dev.litecord.top/api/" + + check-cast v6, Lokhttp3/m; + +diff -crB -x dist -x build com.discord-834-base/smali/com/discord/utilities/textprocessing/Rules$createCustomEmojiRule$1$parse$emojiNode$1.smali com.discord-834/smali/com/discord/utilities/textprocessing/Rules$createCustomEmojiRule$1$parse$emojiNode$1.smali +*** com.discord-834-base/smali/com/discord/utilities/textprocessing/Rules$createCustomEmojiRule$1$parse$emojiNode$1.smali 2019-01-23 23:17:43.477829303 +0300 +--- com.discord-834/smali/com/discord/utilities/textprocessing/Rules$createCustomEmojiRule$1$parse$emojiNode$1.smali 2019-01-23 23:27:49.450936045 +0300 +*************** +*** 105,111 **** + :goto_1 + new-instance p2, Ljava/lang/StringBuilder; + +! const-string v0, "https://cdn.discordapp.com/emojis/" + + invoke-direct {p2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +--- 105,111 ---- + :goto_1 + new-instance p2, Ljava/lang/StringBuilder; + +! const-string v0, "https://dev.litecord.top/emojis/" + + invoke-direct {p2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +diff -crB -x dist -x build com.discord-834-base/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGameInvite.smali com.discord-834/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGameInvite.smali +*** com.discord-834-base/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGameInvite.smali 2019-01-23 23:17:43.607829894 +0300 +--- com.discord-834/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGameInvite.smali 2019-01-23 23:27:49.450936045 +0300 +*************** +*** 605,611 **** + .line 104 + new-instance v1, Ljava/lang/StringBuilder; + +! const-string v6, "https://cdn.discordapp.com/app-icons/" + + invoke-direct {v1, v6}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +--- 605,611 ---- + .line 104 + new-instance v1, Ljava/lang/StringBuilder; + +! const-string v6, "https://dev.litecord.top/app-icons/" + + invoke-direct {v1, v6}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + +diff -crB -x dist -x build com.discord-834-base/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGift.smali com.discord-834/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGift.smali +*** com.discord-834-base/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGift.smali 2019-01-23 23:17:43.614496591 +0300 +--- com.discord-834/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGift.smali 2019-01-23 23:27:49.450936045 +0300 +*************** +*** 1042,1048 **** + :goto_3 + sget-object v10, Lcom/discord/utilities/icon/IconUtils;->INSTANCE:Lcom/discord/utilities/icon/IconUtils; + +! const-string v11, "https://cdn.discordapp.com" + + .line 116 + invoke-virtual/range {p1 .. p1}, Lcom/discord/widgets/chat/list/WidgetChatListAdapterItemGift$Model$Resolved;->getGift()Lcom/discord/models/domain/ModelGift; +--- 1042,1048 ---- + :goto_3 + sget-object v10, Lcom/discord/utilities/icon/IconUtils;->INSTANCE:Lcom/discord/utilities/icon/IconUtils; + +! const-string v11, "https://dev.litecord.top" + + .line 116 + invoke-virtual/range {p1 .. p1}, Lcom/discord/widgets/chat/list/WidgetChatListAdapterItemGift$Model$Resolved;->getGift()Lcom/discord/models/domain/ModelGift; diff --git a/patches/litecord/README.md b/patches/litecord/README.md index 5817d2f206..7710243617 100644 --- a/patches/litecord/README.md +++ b/patches/litecord/README.md @@ -6,6 +6,8 @@ Just replace all mentions of `dev.litecord.top` to your instance. Please keep in mind that litecord is free (gratis and libre) software, provided under a libre license. If you paid money for it, you got scammed. +Conflicts with nozlib as it's included here. + #### Bugs / Side effects - Gateway stuff is fucked and `Connecting...` is always visible. @@ -14,4 +16,5 @@ Please keep in mind that litecord is free (gratis and libre) software, provided - 8.3.3 - 8.3.4g - 8.3.5g +- 8.3.6g diff --git a/patches/mutant/836.patch b/patches/mutant/836.patch new file mode 100644 index 0000000000..566c23bcc2 --- /dev/null +++ b/patches/mutant/836.patch @@ -0,0 +1,1907 @@ +*** com.discord-832-base/assets/data/emojis.json 2019-01-19 04:41:50.983097375 +0300 +--- com.discord-832/assets/data/emojis.json 2019-01-22 23:29:58.633342294 +0300 +*************** +*** 549,554 **** +--- 549,568 ---- + }, + { + "names": [ ++ "raised_hands_paw" ++ ], ++ "surrogates": "๐Ÿ™Œ๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "raised_hands_claw" ++ ], ++ "surrogates": "๐Ÿ™Œ๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "clap" + ], + "surrogates": "๐Ÿ‘", +*************** +*** 556,561 **** +--- 570,589 ---- + }, + { + "names": [ ++ "clap_paw" ++ ], ++ "surrogates": "๐Ÿ‘๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "clap_claw" ++ ], ++ "surrogates": "๐Ÿ‘๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "wave" + ], + "surrogates": "๐Ÿ‘‹", +*************** +*** 563,568 **** +--- 591,610 ---- + }, + { + "names": [ ++ "wave_paw" ++ ], ++ "surrogates": "๐Ÿ‘‹๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "wave_claw" ++ ], ++ "surrogates": "๐Ÿ‘‹๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "thumbsup", + "+1", + "thumbup" +*************** +*** 572,577 **** +--- 614,637 ---- + }, + { + "names": [ ++ "thumbsup_paw", ++ "+1_paw", ++ "thumbup_paw" ++ ], ++ "surrogates": "๐Ÿ‘๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "thumbsup_claw", ++ "+1_claw", ++ "thumbup_claw" ++ ], ++ "surrogates": "๐Ÿ‘๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "thumbsdown", + "-1", + "thumbdown" +*************** +*** 581,586 **** +--- 641,664 ---- + }, + { + "names": [ ++ "thumbsdown_paw", ++ "-1_paw", ++ "thumbdown_paw" ++ ], ++ "surrogates": "๐Ÿ‘Ž๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "thumbsdown_claw", ++ "-1_claw", ++ "thumbdown_claw" ++ ], ++ "surrogates": "๐Ÿ‘Ž๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "punch" + ], + "surrogates": "๐Ÿ‘Š", +*************** +*** 588,593 **** +--- 666,685 ---- + }, + { + "names": [ ++ "punch_paw" ++ ], ++ "surrogates": "๐Ÿ‘Š๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "punch_claw" ++ ], ++ "surrogates": "๐Ÿ‘Š๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "fist" + ], + "surrogates": "โœŠ", +*************** +*** 595,600 **** +--- 687,706 ---- + }, + { + "names": [ ++ "fist_paw" ++ ], ++ "surrogates": "โœŠ๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "fist_claw" ++ ], ++ "surrogates": "โœŠ๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "v" + ], + "surrogates": "โœŒ", +*************** +*** 602,607 **** +--- 708,727 ---- + }, + { + "names": [ ++ "v_paw" ++ ], ++ "surrogates": "โœŒ๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "v_claw" ++ ], ++ "surrogates": "โœŒ๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "ok_hand" + ], + "surrogates": "๐Ÿ‘Œ", +*************** +*** 609,614 **** +--- 729,748 ---- + }, + { + "names": [ ++ "ok_hand_paw" ++ ], ++ "surrogates": "๐Ÿ‘Œ๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "ok_hand_claw" ++ ], ++ "surrogates": "๐Ÿ‘Œ๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "raised_hand" + ], + "surrogates": "โœ‹", +*************** +*** 616,621 **** +--- 750,769 ---- + }, + { + "names": [ ++ "raised_hand_paw" ++ ], ++ "surrogates": "โœ‹๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "raised_hand_claw" ++ ], ++ "surrogates": "โœ‹๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "open_hands" + ], + "surrogates": "๐Ÿ‘", +*************** +*** 623,628 **** +--- 771,790 ---- + }, + { + "names": [ ++ "open_hands_paw" ++ ], ++ "surrogates": "๐Ÿ‘๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "open_hands_claw" ++ ], ++ "surrogates": "๐Ÿ‘๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "muscle" + ], + "surrogates": "๐Ÿ’ช", +*************** +*** 630,635 **** +--- 792,811 ---- + }, + { + "names": [ ++ "muscle_paw" ++ ], ++ "surrogates": "๐Ÿ’ช๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "muscle_claw" ++ ], ++ "surrogates": "๐Ÿ’ช๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "pray" + ], + "surrogates": "๐Ÿ™", +*************** +*** 637,642 **** +--- 813,832 ---- + }, + { + "names": [ ++ "pray_paw" ++ ], ++ "surrogates": "๐Ÿ™๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "pray_claw" ++ ], ++ "surrogates": "๐Ÿ™๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "point_up" + ], + "surrogates": "โ˜", +*************** +*** 644,649 **** +--- 834,853 ---- + }, + { + "names": [ ++ "point_up_paw" ++ ], ++ "surrogates": "โ˜๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "point_up_claw" ++ ], ++ "surrogates": "โ˜๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "point_up_2" + ], + "surrogates": "๐Ÿ‘†", +*************** +*** 651,656 **** +--- 855,874 ---- + }, + { + "names": [ ++ "point_up_2_paw" ++ ], ++ "surrogates": "๐Ÿ‘†๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "point_up_2_claw" ++ ], ++ "surrogates": "๐Ÿ‘†๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "point_down" + ], + "surrogates": "๐Ÿ‘‡", +*************** +*** 658,663 **** +--- 876,895 ---- + }, + { + "names": [ ++ "point_down_paw" ++ ], ++ "surrogates": "๐Ÿ‘‡๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "point_down_claw" ++ ], ++ "surrogates": "๐Ÿ‘‡๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "point_left" + ], + "surrogates": "๐Ÿ‘ˆ", +*************** +*** 665,670 **** +--- 897,916 ---- + }, + { + "names": [ ++ "point_left_paw" ++ ], ++ "surrogates": "๐Ÿ‘ˆ๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "point_left_claw" ++ ], ++ "surrogates": "๐Ÿ‘ˆ๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "point_right" + ], + "surrogates": "๐Ÿ‘‰", +*************** +*** 672,677 **** +--- 918,937 ---- + }, + { + "names": [ ++ "point_right_paw" ++ ], ++ "surrogates": "๐Ÿ‘‰๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "point_right_claw" ++ ], ++ "surrogates": "๐Ÿ‘‰๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "middle_finger", + "reversed_hand_with_middle_finger_extended" + ], +*************** +*** 680,685 **** +--- 940,961 ---- + }, + { + "names": [ ++ "middle_finger_paw", ++ "reversed_hand_with_middle_finger_extended_paw" ++ ], ++ "surrogates": "๐Ÿ–•๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "middle_finger_claw", ++ "reversed_hand_with_middle_finger_extended_claw" ++ ], ++ "surrogates": "๐Ÿ–•๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "hand_splayed", + "raised_hand_with_fingers_splayed" + ], +*************** +*** 688,693 **** +--- 964,977 ---- + }, + { + "names": [ ++ "hand_splayed_claw", ++ "raised_hand_with_fingers_splayed_claw" ++ ], ++ "surrogates": "๐Ÿ–๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "metal", + "sign_of_the_horns" + ], +*************** +*** 696,701 **** +--- 980,1001 ---- + }, + { + "names": [ ++ "metal_paw", ++ "sign_of_the_horns_paw" ++ ], ++ "surrogates": "๐Ÿค˜๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "metal_claw", ++ "sign_of_the_horns_claw" ++ ], ++ "surrogates": "๐Ÿค˜๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "vulcan", + "raised_hand_with_part_between_middle_and_ring_fingers" + ], +*************** +*** 704,709 **** +--- 1004,1025 ---- + }, + { + "names": [ ++ "vulcan_paw", ++ "raised_hand_with_part_between_middle_and_ring_fingers_paw" ++ ], ++ "surrogates": "๐Ÿ––๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "vulcan_claw", ++ "raised_hand_with_part_between_middle_and_ring_fingers_claw" ++ ], ++ "surrogates": "๐Ÿ––๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "writing_hand" + ], + "surrogates": "โœ", +*************** +*** 711,716 **** +--- 1027,1046 ---- + }, + { + "names": [ ++ "writing_hand_paw" ++ ], ++ "surrogates": "โœ๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "writing_hand_claw" ++ ], ++ "surrogates": "โœ๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "nail_care" + ], + "surrogates": "๐Ÿ’…", +*************** +*** 718,723 **** +--- 1048,1067 ---- + }, + { + "names": [ ++ "nail_care_paw" ++ ], ++ "surrogates": "๐Ÿ’…๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "nail_care_claw" ++ ], ++ "surrogates": "๐Ÿ’…๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "lips" + ], + "surrogates": "๐Ÿ‘„" +*************** +*** 1417,1422 **** +--- 1761,1780 ---- + }, + { + "names": [ ++ "selfie_paw" ++ ], ++ "surrogates": "๐Ÿคณ๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "selfie_claw" ++ ], ++ "surrogates": "๐Ÿคณ๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "man_dancing", + "male_dancer" + ], +*************** +*** 1433,1438 **** +--- 1791,1812 ---- + }, + { + "names": [ ++ "call_me_paw", ++ "call_me_hand_paw" ++ ], ++ "surrogates": "๐Ÿค™๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "call_me_claw", ++ "call_me_hand_claw" ++ ], ++ "surrogates": "๐Ÿค™๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "raised_back_of_hand", + "back_of_hand" + ], +*************** +*** 1441,1446 **** +--- 1815,1836 ---- + }, + { + "names": [ ++ "raised_back_of_hand_paw", ++ "back_of_hand_paw" ++ ], ++ "surrogates": "๐Ÿคš๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "raised_back_of_hand_claw", ++ "back_of_hand_claw" ++ ], ++ "surrogates": "๐Ÿคš๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "left_facing_fist", + "left_fist" + ], +*************** +*** 1449,1454 **** +--- 1839,1860 ---- + }, + { + "names": [ ++ "left_facing_fist_paw", ++ "left_fist_paw" ++ ], ++ "surrogates": "๐Ÿค›๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "left_facing_fist_claw", ++ "left_fist_claw" ++ ], ++ "surrogates": "๐Ÿค›๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "right_facing_fist", + "right_fist" + ], +*************** +*** 1457,1462 **** +--- 1863,1884 ---- + }, + { + "names": [ ++ "right_facing_fist_paw", ++ "right_fist_paw" ++ ], ++ "surrogates": "๐Ÿคœ๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "right_facing_fist_claw", ++ "right_fist_claw" ++ ], ++ "surrogates": "๐Ÿคœ๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ + "handshake", + "shaking_hands" + ], +*************** +*** 1464,1474 **** +--- 1886,2100 ---- + }, + { + "names": [ ++ "handshake_paw", ++ "shaking_hands_paw" ++ ], ++ "surrogates": "๐Ÿค๔™" ++ }, ++ { ++ "names": [ ++ "handshake_claw", ++ "shaking_hands_claw" ++ ], ++ "surrogates": "๐Ÿค๔™‘" ++ }, ++ { ++ "names": [ + "fingers_crossed", + "hand_with_index_and_middle_finger_crossed" + ], + "surrogates": "๐Ÿคž", + "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "fingers_crossed_paw", ++ "hand_with_index_and_middle_finger_crossed_paw" ++ ], ++ "surrogates": "๐Ÿคž๔™", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "fingers_crossed_claw", ++ "hand_with_index_and_middle_finger_crossed_claw" ++ ], ++ "surrogates": "๐Ÿคž๔™‘", ++ "hasDiversity": true ++ }, ++ { ++ "names": [ ++ "pilot" ++ ], ++ "surrogates": "๐Ÿง‘โœˆ" ++ }, ++ { ++ "names": [ ++ "health_worker" ++ ], ++ "surrogates": "๐Ÿง‘โš•" ++ }, ++ { ++ "names": [ ++ "firefighter" ++ ], ++ "surrogates": "๐Ÿง‘๐Ÿฅข" ++ }, ++ { ++ "names": [ ++ "astronaut" ++ ], ++ "surrogates": "๐Ÿง‘๐Ÿš€" ++ }, ++ { ++ "names": [ ++ "scientist" ++ ], ++ "surrogates": "๐Ÿง‘๐Ÿ”ฌ" ++ }, ++ { ++ "names": [ ++ "mechanic" ++ ], ++ "surrogates": "๐Ÿง‘๐Ÿ”ง" ++ }, ++ { ++ "names": [ ++ "technologist" ++ ], ++ "surrogates": "๐Ÿง‘๐Ÿ’ป" ++ }, ++ { ++ "names": [ ++ "chef" ++ ], ++ "surrogates": "๐Ÿง‘๐Ÿณ" ++ }, ++ { ++ "names": [ ++ "monocle" ++ ], ++ "surrogates": "๐Ÿง" ++ }, ++ { ++ "names": [ ++ "pleading" ++ ], ++ "surrogates": "๐Ÿฅบ" ++ }, ++ { ++ "names": [ ++ "cold" ++ ], ++ "surrogates": "๐Ÿฅถ" ++ }, ++ { ++ "names": [ ++ "hot" ++ ], ++ "surrogates": "๐Ÿฅต" ++ }, ++ { ++ "names": [ ++ "woozy" ++ ], ++ "surrogates": "๐Ÿฅด" ++ }, ++ { ++ "names": [ ++ "party_face" ++ ], ++ "surrogates": "๐Ÿฅณ" ++ }, ++ { ++ "names": [ ++ "smile_hearts" ++ ], ++ "surrogates": "๐Ÿฅฐ" ++ }, ++ { ++ "names": [ ++ "mind_blown" ++ ], ++ "surrogates": "๐Ÿคฏ" ++ }, ++ { ++ "names": [ ++ "vomiting" ++ ], ++ "surrogates": "๐Ÿคฎ" ++ }, ++ { ++ "names": [ ++ "hand_over_mouth" ++ ], ++ "surrogates": "๐Ÿคญ" ++ }, ++ { ++ "names": [ ++ "swearing" ++ ], ++ "surrogates": "๐Ÿคฌ" ++ }, ++ { ++ "names": [ ++ "shush" ++ ], ++ "surrogates": "๐Ÿคซ" ++ }, ++ { ++ "names": [ ++ "crazy" ++ ], ++ "surrogates": "๐Ÿคช" ++ }, ++ { ++ "names": [ ++ "starry_eyes" ++ ], ++ "surrogates": "๐Ÿคฉ" ++ }, ++ { ++ "names": [ ++ "raised_eyebrow" ++ ], ++ "surrogates": "๐Ÿคจ" ++ }, ++ { ++ "names": [ ++ "detective" ++ ], ++ "surrogates": "๐Ÿ•ต๔˜ซ" ++ }, ++ { ++ "names": [ ++ "massage" ++ ], ++ "surrogates": "๐Ÿ’†๔˜ซ" ++ }, ++ { ++ "names": [ ++ "tipping_hand" ++ ], ++ "surrogates": "๐Ÿ’๔˜ซ" ++ }, ++ { ++ "names": [ ++ "hot_shit" ++ ], ++ "surrogates": "๔š" ++ }, ++ { ++ "names": [ ++ "headpats" ++ ], ++ "surrogates": "๔š—" ++ }, ++ { ++ "names": [ ++ "merperson" ++ ], ++ "surrogates": "๐Ÿงœ" + } + ], + "nature": [ +*************** +*** 2453,2458 **** +--- 3079,3140 ---- + "squid" + ], + "surrogates": "๐Ÿฆ‘" ++ }, ++ { ++ "names": [ ++ "furry_pride", ++ "rainbow_paw" ++ ], ++ "surrogates": "๔š›๐ŸŒˆ" ++ }, ++ { ++ "names": [ ++ "paw" ++ ], ++ "surrogates": "๔š›" ++ }, ++ { ++ "names": [ ++ "awoo" ++ ], ++ "surrogates": "๔š˜" ++ }, ++ { ++ "names": [ ++ "dont_awoo", ++ "no_awoo" ++ ], ++ "surrogates": "๔š™" ++ }, ++ { ++ "names": [ ++ "elf" ++ ], ++ "surrogates": "๐Ÿง" ++ }, ++ { ++ "names": [ ++ "raccoon" ++ ], ++ "surrogates": "๐Ÿฆ" ++ }, ++ { ++ "names": [ ++ "parrot" ++ ], ++ "surrogates": "๐Ÿฆœ" ++ }, ++ { ++ "names": [ ++ "peacock" ++ ], ++ "surrogates": "๐Ÿฆš" ++ }, ++ { ++ "names": [ ++ "demon" ++ ], ++ "surrogates": "๔™ฆ" + } + ], + "food": [ +*************** +*** 2980,2985 **** +--- 3662,3673 ---- + "pancakes" + ], + "surrogates": "๐Ÿฅž" ++ }, ++ { ++ "names": [ ++ "cannabis_leaf" ++ ], ++ "surrogates": "๔š‘" + } + ], + "activity": [ +*************** +*** 5271,5276 **** +--- 5959,6018 ---- + "shopping_trolley" + ], + "surrogates": "๐Ÿ›’" ++ }, ++ { ++ "names": [ ++ "toilet_paper" ++ ], ++ "surrogates": "๐Ÿงป" ++ }, ++ { ++ "names": [ ++ "brick" ++ ], ++ "surrogates": "๐Ÿงฑ" ++ }, ++ { ++ "names": [ ++ "firecracker" ++ ], ++ "surrogates": "๐Ÿงจ" ++ }, ++ { ++ "names": [ ++ "bone" ++ ], ++ "surrogates": "๐Ÿฆด" ++ }, ++ { ++ "names": [ ++ "d20" ++ ], ++ "surrogates": "๔š–" ++ }, ++ { ++ "names": [ ++ "d12" ++ ], ++ "surrogates": "๔š•" ++ }, ++ { ++ "names": [ ++ "d10" ++ ], ++ "surrogates": "๔š”" ++ }, ++ { ++ "names": [ ++ "d8" ++ ], ++ "surrogates": "๔š“" ++ }, ++ { ++ "names": [ ++ "d4" ++ ], ++ "surrogates": "๔š’" + } + ], + "symbols": [ +*************** +*** 7082,7087 **** +--- 7824,7934 ---- + "regional_indicator_a" + ], + "surrogates": "๐Ÿ‡ฆ" ++ }, ++ { ++ "names": [ ++ "queer_100" ++ ], ++ "surrogates": "๐Ÿ’ฏ๐ŸŒˆ" ++ }, ++ { ++ "names": [ ++ "dont_at", ++ "no_at", ++ "no_mention", ++ "dont_mention" ++ ], ++ "surrogates": "๔šš" ++ }, ++ { ++ "names": [ ++ "neuter_symbol" ++ ], ++ "surrogates": "โšฒ" ++ }, ++ { ++ "names": [ ++ "androgyne_symbol" ++ ], ++ "surrogates": "โšจ" ++ }, ++ { ++ "names": [ ++ "transgender_symbol" ++ ], ++ "surrogates": "โšง" ++ }, ++ { ++ "names": [ ++ "male_female_symbol" ++ ], ++ "surrogates": "โšฅ" ++ }, ++ { ++ "names": [ ++ "male_and_female_symbol" ++ ], ++ "surrogates": "โšค" ++ }, ++ { ++ "names": [ ++ "two_male_symbols" ++ ], ++ "surrogates": "โšฃ" ++ }, ++ { ++ "names": [ ++ "two_female_symbols" ++ ], ++ "surrogates": "โšข" ++ }, ++ { ++ "names": [ ++ "red_heart" ++ ], ++ "surrogates": "โ™ด" ++ }, ++ { ++ "names": [ ++ "male_symbol" ++ ], ++ "surrogates": "โ™‚" ++ }, ++ { ++ "names": [ ++ "female_symbol" ++ ], ++ "surrogates": "โ™€" ++ }, ++ { ++ "names": [ ++ "orange_heart" ++ ], ++ "surrogates": "๐Ÿงก" ++ }, ++ { ++ "names": [ ++ "labrys_symbol" ++ ], ++ "surrogates": "๔š…" ++ }, ++ { ++ "names": [ ++ "bisexual_triangles" ++ ], ++ "surrogates": "๔š„" ++ }, ++ { ++ "names": [ ++ "black_triangle" ++ ], ++ "surrogates": "๔šƒ" ++ }, ++ { ++ "names": [ ++ "pink_triangle" ++ ], ++ "surrogates": "๔š‚" + } + ], + "flags": [ +*************** +*** 8633,8638 **** + "rainbow_flag" + ], + "surrogates": "๐Ÿณ๏ธโ€๐ŸŒˆ" + } + ] +! } +\ No newline at end of file +--- 9480,9917 ---- + "rainbow_flag" + ], + "surrogates": "๐Ÿณ๏ธโ€๐ŸŒˆ" ++ }, ++ { ++ "names": [ ++ "pirate_flag" ++ ], ++ "surrogates": "๐Ÿด๏ธ" ++ }, ++ { ++ "names": [ ++ "transgender_flag" ++ ], ++ "surrogates": "๔š" ++ }, ++ { ++ "names": [ ++ "polysexual_flag" ++ ], ++ "surrogates": "๔š€" ++ }, ++ { ++ "names": [ ++ "polyamory_flag" ++ ], ++ "surrogates": "๔™ฟ" ++ }, ++ { ++ "names": [ ++ "pansexual_flag" ++ ], ++ "surrogates": "๔™พ" ++ }, ++ { ++ "names": [ ++ "nonbinary_flag" ++ ], ++ "surrogates": "๔™ฝ" ++ }, ++ { ++ "names": [ ++ "neutrois_flag" ++ ], ++ "surrogates": "๔™ผ" ++ }, ++ { ++ "names": [ ++ "intersex_flag" ++ ], ++ "surrogates": "๔™ป" ++ }, ++ { ++ "names": [ ++ "genderqueer_flag" ++ ], ++ "surrogates": "๔™บ" ++ }, ++ { ++ "names": [ ++ "genderfluid_flag" ++ ], ++ "surrogates": "๔™น" ++ }, ++ { ++ "names": [ ++ "deminonbinary_flag" ++ ], ++ "surrogates": "๔™ธ" ++ }, ++ { ++ "names": [ ++ "demigirl_flag" ++ ], ++ "surrogates": "๔™ท" ++ }, ++ { ++ "names": [ ++ "demiguy_flag" ++ ], ++ "surrogates": "๔™ถ" ++ }, ++ { ++ "names": [ ++ "bisexual_flag" ++ ], ++ "surrogates": "๔™ต" ++ }, ++ { ++ "names": [ ++ "bigender_flag" ++ ], ++ "surrogates": "๔™ด" ++ }, ++ { ++ "names": [ ++ "bear_flag" ++ ], ++ "surrogates": "๔™ณ" ++ }, ++ { ++ "names": [ ++ "asexual_flag" ++ ], ++ "surrogates": "๔™ฒ" ++ }, ++ { ++ "names": [ ++ "aromantic_flag" ++ ], ++ "surrogates": "๔™ฑ" ++ }, ++ { ++ "names": [ ++ "agender_flag" ++ ], ++ "surrogates": "๔™ฐ" ++ }, ++ { ++ "names": [ ++ "lesbian_flag" ++ ], ++ "surrogates": "๔š†" ++ }, ++ { ++ "names": [ ++ "paw-modifier" ++ ], ++ "surrogates": "๔™" ++ }, ++ { ++ "names": [ ++ "claw-modifier" ++ ], ++ "surrogates": "๔™‘" ++ }, ++ { ++ "names": [ ++ "skin-tone-1" ++ ], ++ "surrogates": "๐Ÿป" ++ }, ++ { ++ "names": [ ++ "skin-tone-2" ++ ], ++ "surrogates": "๐Ÿผ" ++ }, ++ { ++ "names": [ ++ "skin-tone-3" ++ ], ++ "surrogates": "๐Ÿฝ" ++ }, ++ { ++ "names": [ ++ "skin-tone-4" ++ ], ++ "surrogates": "๐Ÿพ" ++ }, ++ { ++ "names": [ ++ "skin-tone-5" ++ ], ++ "surrogates": "๐Ÿฟ" ++ }, ++ { ++ "names": [ ++ "skin-tone-6" ++ ], ++ "surrogates": "๔˜€" ++ }, ++ { ++ "names": [ ++ "skin-tone-7" ++ ], ++ "surrogates": "๔˜" ++ }, ++ { ++ "names": [ ++ "skin-tone-8" ++ ], ++ "surrogates": "๔˜‚" ++ }, ++ { ++ "names": [ ++ "skin-tone-9" ++ ], ++ "surrogates": "๔˜ƒ" ++ }, ++ { ++ "names": [ ++ "skin-tone-10" ++ ], ++ "surrogates": "๔˜„" ++ }, ++ { ++ "names": [ ++ "skin-tone-11" ++ ], ++ "surrogates": "๔˜…" ++ }, ++ { ++ "names": [ ++ "skin-tone-12" ++ ], ++ "surrogates": "๔˜†" ++ }, ++ { ++ "names": [ ++ "skin-tone-13" ++ ], ++ "surrogates": "๔˜‡" ++ }, ++ { ++ "names": [ ++ "skin-tone-14" ++ ], ++ "surrogates": "๔˜ˆ" ++ }, ++ { ++ "names": [ ++ "skin-tone-15" ++ ], ++ "surrogates": "๔˜‰" ++ }, ++ { ++ "names": [ ++ "skin-tone-16" ++ ], ++ "surrogates": "๔˜Š" ++ }, ++ { ++ "names": [ ++ "skin-tone-17" ++ ], ++ "surrogates": "๔˜‹" ++ }, ++ { ++ "names": [ ++ "skin-tone-18" ++ ], ++ "surrogates": "๔˜Œ" ++ }, ++ { ++ "names": [ ++ "skin-tone-19" ++ ], ++ "surrogates": "๔˜" ++ }, ++ { ++ "names": [ ++ "skin-tone-20" ++ ], ++ "surrogates": "๔˜Ž" ++ }, ++ { ++ "names": [ ++ "skin-tone-21" ++ ], ++ "surrogates": "๔˜" ++ }, ++ { ++ "names": [ ++ "skin-tone-22" ++ ], ++ "surrogates": "๔˜" ++ }, ++ { ++ "names": [ ++ "skin-tone-23" ++ ], ++ "surrogates": "๔˜‘" ++ }, ++ { ++ "names": [ ++ "skin-tone-24" ++ ], ++ "surrogates": "๔˜’" ++ }, ++ { ++ "names": [ ++ "skin-tone-25" ++ ], ++ "surrogates": "๔˜“" ++ }, ++ { ++ "names": [ ++ "skin-tone-26" ++ ], ++ "surrogates": "๔˜”" ++ }, ++ { ++ "names": [ ++ "skin-tone-27" ++ ], ++ "surrogates": "๔˜•" ++ }, ++ { ++ "names": [ ++ "skin-tone-28" ++ ], ++ "surrogates": "๔˜–" ++ }, ++ { ++ "names": [ ++ "skin-tone-29" ++ ], ++ "surrogates": "๔˜—" ++ }, ++ { ++ "names": [ ++ "skin-tone-30" ++ ], ++ "surrogates": "๔˜˜" ++ }, ++ { ++ "names": [ ++ "skin-tone-31" ++ ], ++ "surrogates": "๔˜™" ++ }, ++ { ++ "names": [ ++ "skin-tone-32" ++ ], ++ "surrogates": "๔˜š" ++ }, ++ { ++ "names": [ ++ "skin-tone-33" ++ ], ++ "surrogates": "๔˜›" ++ }, ++ { ++ "names": [ ++ "skin-tone-34" ++ ], ++ "surrogates": "๔˜œ" ++ }, ++ { ++ "names": [ ++ "skin-tone-35" ++ ], ++ "surrogates": "๔˜" ++ }, ++ { ++ "names": [ ++ "skin-tone-36" ++ ], ++ "surrogates": "๔˜ž" ++ }, ++ { ++ "names": [ ++ "skin-tone-37" ++ ], ++ "surrogates": "๔˜Ÿ" ++ }, ++ { ++ "names": [ ++ "skin-tone-38" ++ ], ++ "surrogates": "๔˜ " ++ }, ++ { ++ "names": [ ++ "skin-tone-39" ++ ], ++ "surrogates": "๔˜ก" ++ }, ++ { ++ "names": [ ++ "skin-tone-40" ++ ], ++ "surrogates": "๔˜ข" ++ }, ++ { ++ "names": [ ++ "skin-tone-41" ++ ], ++ "surrogates": "๔˜ฃ" ++ }, ++ { ++ "names": [ ++ "skin-tone-42" ++ ], ++ "surrogates": "๔˜ค" ++ }, ++ { ++ "names": [ ++ "skin-tone-43" ++ ], ++ "surrogates": "๔˜ฅ" ++ }, ++ { ++ "names": [ ++ "skin-tone-44" ++ ], ++ "surrogates": "๔˜ฆ" ++ }, ++ { ++ "names": [ ++ "skin-tone-45" ++ ], ++ "surrogates": "๔˜ง" ++ }, ++ { ++ "names": [ ++ "skin-tone-46" ++ ], ++ "surrogates": "๔˜จ" ++ }, ++ { ++ "names": [ ++ "skin-tone-47" ++ ], ++ "surrogates": "๔˜ฉ" ++ }, ++ { ++ "names": [ ++ "skin-tone-48" ++ ], ++ "surrogates": "๔˜ช" ++ }, ++ { ++ "names": [ ++ "skin-tone-49" ++ ], ++ "surrogates": "๔˜ซ" ++ }, ++ { ++ "names": [ ++ "skin-tone-50" ++ ], ++ "surrogates": "๔˜ฌ" + } + ] +! } +diff -crB -x dist -x build com.discord-832-base/smali/com/discord/models/domain/emoji/ModelEmojiUnicode.smali com.discord-832/smali/com/discord/models/domain/emoji/ModelEmojiUnicode.smali +*** com.discord-832-base/smali/com/discord/models/domain/emoji/ModelEmojiUnicode.smali 2019-01-19 04:41:50.783096394 +0300 +--- com.discord-832/smali/com/discord/models/domain/emoji/ModelEmojiUnicode.smali 2019-01-22 14:47:17.852853706 +0300 +*************** +*** 65,71 **** + .method static constructor ()V + .locals 3 + +! const/4 v0, 0x5 + + .line 36 + new-array v0, v0, [Ljava/lang/String; +--- 65,71 ---- + .method static constructor ()V + .locals 3 + +! const/16 v0, 0x32 + + .line 36 + new-array v0, v0, [Ljava/lang/String; +*************** +*** 100,105 **** +--- 100,375 ---- + + aput-object v1, v0, v2 + ++ const-string v1, "๔˜€" ++ ++ const/16 v2, 0x5 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜" ++ ++ const/16 v2, 0x6 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜‚" ++ ++ const/16 v2, 0x7 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ƒ" ++ ++ const/16 v2, 0x8 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜„" ++ ++ const/16 v2, 0x9 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜…" ++ ++ const/16 v2, 0xa ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜†" ++ ++ const/16 v2, 0xb ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜‡" ++ ++ const/16 v2, 0xc ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ˆ" ++ ++ const/16 v2, 0xd ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜‰" ++ ++ const/16 v2, 0xe ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜Š" ++ ++ const/16 v2, 0xf ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜‹" ++ ++ const/16 v2, 0x10 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜Œ" ++ ++ const/16 v2, 0x11 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜" ++ ++ const/16 v2, 0x12 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜Ž" ++ ++ const/16 v2, 0x13 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜" ++ ++ const/16 v2, 0x14 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜" ++ ++ const/16 v2, 0x15 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜‘" ++ ++ const/16 v2, 0x16 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜’" ++ ++ const/16 v2, 0x17 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜“" ++ ++ const/16 v2, 0x18 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜”" ++ ++ const/16 v2, 0x19 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜•" ++ ++ const/16 v2, 0x1a ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜–" ++ ++ const/16 v2, 0x1b ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜—" ++ ++ const/16 v2, 0x1c ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜˜" ++ ++ const/16 v2, 0x1d ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜™" ++ ++ const/16 v2, 0x1e ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜š" ++ ++ const/16 v2, 0x1f ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜›" ++ ++ const/16 v2, 0x20 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜œ" ++ ++ const/16 v2, 0x21 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜" ++ ++ const/16 v2, 0x22 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ž" ++ ++ const/16 v2, 0x23 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜Ÿ" ++ ++ const/16 v2, 0x24 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ " ++ ++ const/16 v2, 0x25 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ก" ++ ++ const/16 v2, 0x26 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ข" ++ ++ const/16 v2, 0x27 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ฃ" ++ ++ const/16 v2, 0x28 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ค" ++ ++ const/16 v2, 0x29 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ฅ" ++ ++ const/16 v2, 0x2a ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ฆ" ++ ++ const/16 v2, 0x2b ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ง" ++ ++ const/16 v2, 0x2c ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜จ" ++ ++ const/16 v2, 0x2d ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ฉ" ++ ++ const/16 v2, 0x2e ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ช" ++ ++ const/16 v2, 0x2f ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ซ" ++ ++ const/16 v2, 0x30 ++ ++ aput-object v1, v0, v2 ++ ++ const-string v1, "๔˜ฌ" ++ ++ const/16 v2, 0x31 ++ ++ aput-object v1, v0, v2 ++ + sput-object v0, Lcom/discord/models/domain/emoji/ModelEmojiUnicode;->DIVERSITY_MODIFIERS:[Ljava/lang/String; + + .line 193 diff --git a/patches/mutant/README.md b/patches/mutant/README.md index ff5c016ec6..ffe9088d0b 100644 --- a/patches/mutant/README.md +++ b/patches/mutant/README.md @@ -21,6 +21,7 @@ Various scripts are provided to help building of custom patches easier. - 8.3.3 - 8.3.4g - 8.3.5g +- 8.3.6g #### Disclaimer diff --git a/patches/noblocked/836.patch b/patches/noblocked/836.patch new file mode 100644 index 0000000000..985a85fb88 --- /dev/null +++ b/patches/noblocked/836.patch @@ -0,0 +1,18 @@ +diff -crB -x dist -x build com.discord-835-base/res/layout/widget_chat_list_adapter_item_blocked.xml com.discord-835/res/layout/widget_chat_list_adapter_item_blocked.xml +*** com.discord-835-base/res/layout/widget_chat_list_adapter_item_blocked.xml 2019-01-25 10:57:34.359248256 +0300 +--- com.discord-835/res/layout/widget_chat_list_adapter_item_blocked.xml 2019-01-27 00:08:22.929085528 +0300 +*************** +*** 1,5 **** + +! +! + +\ No newline at end of file +--- 1,5 ---- + +! +! + +\ No newline at end of file \ No newline at end of file diff --git a/patches/noblocked/README.md b/patches/noblocked/README.md index 17898d8df0..c1f7919a45 100644 --- a/patches/noblocked/README.md +++ b/patches/noblocked/README.md @@ -4,4 +4,5 @@ This patch completely hides the "# Blocked Message(s)" thing. #### Available and tested on: - 8.3.5g +- 8.3.6g diff --git a/patches/nonearby/836.patch b/patches/nonearby/836.patch new file mode 100644 index 0000000000..aeb013d723 --- /dev/null +++ b/patches/nonearby/836.patch @@ -0,0 +1,87 @@ +diff -crB -x dist -x build com.discord-833-base/smali/com/discord/widgets/friends/NearbyManager.smali com.discord-833/smali/com/discord/widgets/friends/NearbyManager.smali +*** com.discord-833-base/smali/com/discord/widgets/friends/NearbyManager.smali 2019-01-23 11:03:47.459035497 +0300 +--- com.discord-833/smali/com/discord/widgets/friends/NearbyManager.smali 2019-01-23 11:23:00.200709501 +0300 +*************** +*** 440,512 **** + + # virtual methods + .method public final activateNearby()V +! .locals 9 +! +! .line 58 +! iget-object v0, p0, Lcom/discord/widgets/friends/NearbyManager;->messagesClient:Lcom/google/android/gms/nearby/messages/MessagesClient; +! +! if-nez v0, :cond_0 +! +! return-void +! +! .line 59 +! :cond_0 +! iget-object v1, p0, Lcom/discord/widgets/friends/NearbyManager;->outboundMessage:Lcom/google/android/gms/nearby/messages/Message; +! +! if-nez v1, :cond_1 +! +! return-void +! +! .line 60 +! :cond_1 +! iget-object v2, p0, Lcom/discord/widgets/friends/NearbyManager;->messagePublishOptions:Lcom/google/android/gms/nearby/messages/PublishOptions; +! +! if-nez v2, :cond_2 +! +! return-void +! +! .line 61 +! :cond_2 +! iget-object v3, p0, Lcom/discord/widgets/friends/NearbyManager;->messageListener:Lcom/google/android/gms/nearby/messages/MessageListener; +! +! if-nez v3, :cond_3 +! +! return-void +! +! .line 62 +! :cond_3 +! iget-object v4, p0, Lcom/discord/widgets/friends/NearbyManager;->subscribeOptions:Lcom/google/android/gms/nearby/messages/SubscribeOptions; +! +! if-nez v4, :cond_4 +! +! return-void +! +! .line 64 +! :cond_4 +! iget-object v5, p0, Lcom/discord/widgets/friends/NearbyManager;->nearbyStateSubject:Lrx/subjects/BehaviorSubject; +! +! new-instance v6, Lcom/discord/widgets/friends/NearbyManager$NearbyState$Connected; +! +! new-instance v7, Ljava/util/HashSet; +! +! iget-object v8, p0, Lcom/discord/widgets/friends/NearbyManager;->nearbyUserIds:Ljava/util/HashSet; +! +! check-cast v8, Ljava/util/Collection; +! +! invoke-direct {v7, v8}, Ljava/util/HashSet;->(Ljava/util/Collection;)V +! +! check-cast v7, Ljava/util/Set; +! +! invoke-direct {v6, v7}, Lcom/discord/widgets/friends/NearbyManager$NearbyState$Connected;->(Ljava/util/Set;)V +! +! invoke-virtual {v5, v6}, Lrx/subjects/BehaviorSubject;->onNext(Ljava/lang/Object;)V +! +! .line 66 +! invoke-virtual {v0, v1, v2}, Lcom/google/android/gms/nearby/messages/MessagesClient;->a(Lcom/google/android/gms/nearby/messages/Message;Lcom/google/android/gms/nearby/messages/PublishOptions;)Lcom/google/android/gms/tasks/g; +! +! .line 67 +! invoke-virtual {v0, v3, v4}, Lcom/google/android/gms/nearby/messages/MessagesClient;->a(Lcom/google/android/gms/nearby/messages/MessageListener;Lcom/google/android/gms/nearby/messages/SubscribeOptions;)Lcom/google/android/gms/tasks/g; +! + return-void + .end method + +--- 440,446 ---- + + # virtual methods + .method public final activateNearby()V +! .locals 0 + return-void + .end method + + diff --git a/patches/nonearby/README.md b/patches/nonearby/README.md index ae38c7892b..6d7bd6a28a 100644 --- a/patches/nonearby/README.md +++ b/patches/nonearby/README.md @@ -7,4 +7,5 @@ This patch nulls a bunch of nearby friends features for privacy. - 8.3.3 - 8.3.4g - 8.3.5g +- 8.3.6g diff --git a/patches/nozlib/README.md b/patches/nozlib/README.md index 36d2a8162e..2a061d02c7 100644 --- a/patches/nozlib/README.md +++ b/patches/nozlib/README.md @@ -2,6 +2,9 @@ This patch disables zlib-stream field on wss, making it easier to parse it. +Conflicts with litecord patch. + #### Available and tested on: - 8.3.5g +- 8.3.6g diff --git a/patches/pureevil/README.md b/patches/pureevil/README.md index e6e1f1090f..1e2624eaf7 100644 --- a/patches/pureevil/README.md +++ b/patches/pureevil/README.md @@ -2,6 +2,8 @@ This patch enables the secret AMOLED theme (which is shit). +Conflicts with experiments. + #### Bugs / Side effects - Discord banned people for using experiments before, which is why this patch exists. It doesn't enable everything developer related, just AMOLED theme. Still, don't show stuff this publicly. @@ -10,4 +12,5 @@ This patch enables the secret AMOLED theme (which is shit). - 8.3.3 - 8.3.4g - 8.3.5g +- 8.3.6g diff --git a/patches/smalltime/836.patch b/patches/smalltime/836.patch new file mode 100644 index 0000000000..416f09ccef --- /dev/null +++ b/patches/smalltime/836.patch @@ -0,0 +1,191 @@ +diff -crB -x dist -x build com.discord-836-testing/smali_classes2/com/miguelgaeta/simple_time/SimpleTime.smali com.discord-836/smali_classes2/com/miguelgaeta/simple_time/SimpleTime.smali +*** com.discord-836-testing/smali_classes2/com/miguelgaeta/simple_time/SimpleTime.smali 2019-01-31 10:40:04.989283867 +0300 +--- com.discord-836/smali_classes2/com/miguelgaeta/simple_time/SimpleTime.smali 2019-01-31 10:53:44.476028781 +0300 +*************** +*** 247,419 **** + .end method + + .method public toReadableTimeString(Ljava/lang/Long;)Ljava/lang/String; +! .locals 6 +! +! .line 126 +! invoke-virtual {p0}, Lcom/miguelgaeta/simple_time/SimpleTime;->currentTimeMillis()J +! +! move-result-wide v0 +! +! invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; +! +! move-result-object v0 +! +! invoke-virtual {p0, v0}, Lcom/miguelgaeta/simple_time/SimpleTime;->toCalendar(Ljava/lang/Long;)Ljava/util/Calendar; +! +! move-result-object v0 +! +! const/4 v1, 0x0 +! +! const/16 v2, 0xb +! +! .line 128 +! invoke-virtual {v0, v2, v1}, Ljava/util/Calendar;->set(II)V +! +! const/16 v2, 0xc +! +! .line 129 +! invoke-virtual {v0, v2, v1}, Ljava/util/Calendar;->set(II)V +! +! const/16 v2, 0xd +! +! .line 130 +! invoke-virtual {v0, v2, v1}, Ljava/util/Calendar;->set(II)V +! +! const/16 v2, 0xe +! +! .line 131 +! invoke-virtual {v0, v2, v1}, Ljava/util/Calendar;->set(II)V +! +! .line 133 +! iget-object v1, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->locale:Ljava/util/Locale; +! +! invoke-virtual {v1}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; +! +! move-result-object v1 +! +! const-string v2, "en" +! +! invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z +! +! move-result v1 +! +! if-nez v1, :cond_1 +! +! .line 136 +! invoke-virtual {p1}, Ljava/lang/Long;->longValue()J +! +! move-result-wide v1 +! +! invoke-virtual {v0}, Ljava/util/Calendar;->getTimeInMillis()J +! +! move-result-wide v3 +! +! cmp-long v0, v1, v3 +! +! if-lez v0, :cond_0 +! +! .line 137 + iget-object v0, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterTime:Ljava/text/DateFormat; + + invoke-virtual {v0, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; + +- move-result-object p1 +- +- return-object p1 +- +- .line 139 +- :cond_0 +- iget-object v0, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterDateTime:Ljava/text/DateFormat; +- +- invoke-virtual {v0, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; +- +- move-result-object p1 +- +- return-object p1 +- +- .line 143 +- :cond_1 +- invoke-virtual {p1}, Ljava/lang/Long;->longValue()J +- +- move-result-wide v1 +- +- invoke-virtual {v0}, Ljava/util/Calendar;->getTimeInMillis()J +- +- move-result-wide v3 +- +- cmp-long v5, v1, v3 +- +- if-lez v5, :cond_2 +- +- .line 144 +- new-instance v0, Ljava/lang/StringBuilder; +- +- const-string v1, "Today at " +- +- invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V +- +- iget-object v1, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterTime:Ljava/text/DateFormat; +- +- invoke-virtual {v1, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; +- +- move-result-object p1 +- +- invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; +- +- invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; +- +- move-result-object p1 +- +- return-object p1 +- +- :cond_2 +- const/4 v1, 0x5 +- +- const/4 v2, -0x1 +- +- .line 147 +- invoke-virtual {v0, v1, v2}, Ljava/util/Calendar;->add(II)V +- +- .line 149 +- invoke-virtual {p1}, Ljava/lang/Long;->longValue()J +- +- move-result-wide v1 +- +- invoke-virtual {v0}, Ljava/util/Calendar;->getTimeInMillis()J +- +- move-result-wide v3 +- +- cmp-long v0, v1, v3 +- +- if-lez v0, :cond_3 +- +- .line 150 +- new-instance v0, Ljava/lang/StringBuilder; +- +- const-string v1, "Yesterday at " +- +- invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V +- +- iget-object v1, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterTime:Ljava/text/DateFormat; +- +- invoke-virtual {v1, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; +- +- move-result-object p1 +- +- invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; +- +- invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; +- +- move-result-object p1 +- +- return-object p1 +- +- .line 153 +- :cond_3 +- iget-object v0, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterDateTime:Ljava/text/DateFormat; +- +- invoke-virtual {v0, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; +- + move-result-object p1 + + return-object p1 +--- 247,257 ---- + .end method + + .method public toReadableTimeString(Ljava/lang/Long;)Ljava/lang/String; +! .locals 1 + iget-object v0, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterTime:Ljava/text/DateFormat; + + invoke-virtual {v0, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; + + move-result-object p1 + + return-object p1 + diff --git a/patches/smalltime/README.md b/patches/smalltime/README.md index 9bc8fcb359..6bc2c08ae0 100644 --- a/patches/smalltime/README.md +++ b/patches/smalltime/README.md @@ -4,4 +4,5 @@ This patch replaces the long time string with just a simple time string. This is #### Available and tested on: - 8.3.5g +- 8.3.6g diff --git a/patches/squareavatars/836.patch b/patches/squareavatars/836.patch new file mode 100644 index 0000000000..5928fb06fb --- /dev/null +++ b/patches/squareavatars/836.patch @@ -0,0 +1,21 @@ +*** com.discord-835-base/res/values/styles.xml 2019-01-25 10:57:34.429248557 +0300 +--- com.discord-835/res/values/styles.xml 2019-01-28 16:51:28.771000850 +0300 +*************** +*** 809,815 **** + fitCenter + @drawable/asset_default_avatar_32dp + fitCenter +! true + + +