chore: init
This commit is contained in:
207
antiRickroll/index.tsx
Normal file
207
antiRickroll/index.tsx
Normal file
@@ -0,0 +1,207 @@
|
||||
/*
|
||||
* Vencord, a Discord client mod
|
||||
* Copyright (c) 2024 Vendicated and contributors
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import { addMessageAccessory, removeMessageAccessory } from "@api/MessageAccessories";
|
||||
import { definePluginSettings } from "@api/Settings";
|
||||
import { getUserSettingLazy } from "@api/UserSettings";
|
||||
import ErrorBoundary from "@components/ErrorBoundary";
|
||||
import definePlugin, { OptionType } from "@utils/types";
|
||||
import { Message } from "@vencord/discord-types";
|
||||
import { React, Text } from "@webpack/common";
|
||||
|
||||
import { knownHosts } from "./knownHosts";
|
||||
import { knownVideoIds } from "./knownVideoIDs";
|
||||
const MessageDisplayCompact = getUserSettingLazy(
|
||||
"textAndImages",
|
||||
"messageDisplayCompact"
|
||||
)!;
|
||||
|
||||
const settings = definePluginSettings({
|
||||
customLinks: {
|
||||
description: "Custom links to check for (separated by commas)",
|
||||
type: OptionType.STRING,
|
||||
default: "",
|
||||
restartNeeded: true,
|
||||
},
|
||||
customVideoIds: {
|
||||
description:
|
||||
"Custom YouTube video IDs to check for (separated by commas)",
|
||||
type: OptionType.STRING,
|
||||
default: "",
|
||||
restartNeeded: true,
|
||||
},
|
||||
});
|
||||
|
||||
function isPotentialRickroll(url: string): boolean {
|
||||
try {
|
||||
const parsedUrl = new URL(url);
|
||||
const hostname = parsedUrl.hostname.replace("www.", "");
|
||||
|
||||
const customLinks = settings.store.customLinks
|
||||
.split(",")
|
||||
.map(s => s.trim())
|
||||
.filter(Boolean);
|
||||
const customVideoIDs = settings.store.customVideoIds
|
||||
.split(",")
|
||||
.map(s => s.trim())
|
||||
.filter(Boolean);
|
||||
|
||||
if (customLinks.some(link => parsedUrl.href.includes(link))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (hostname === "youtube.com" || hostname === "youtu.be") {
|
||||
let videoID = "";
|
||||
|
||||
if (hostname === "youtube.com") {
|
||||
videoID =
|
||||
parsedUrl.searchParams.get("v") ||
|
||||
parsedUrl.searchParams.get("V") ||
|
||||
"";
|
||||
} else if (hostname === "youtu.be") {
|
||||
videoID = parsedUrl.pathname.slice(1);
|
||||
}
|
||||
|
||||
const knownVideoIDs = [...knownVideoIds, ...customVideoIDs];
|
||||
|
||||
if (knownVideoIDs.includes(videoID)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (knownHosts.includes(hostname)) {
|
||||
return true;
|
||||
}
|
||||
} catch (e) {
|
||||
// Invalid URL, ignore :trolley:
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function extractUrls(content: string): string[] {
|
||||
const urls: string[] = [];
|
||||
const markdownLinkRegex = /\[.*?\]\((<)?(https?:\/\/[^\s>]+)(>)?\)/g;
|
||||
const urlRegex = /https?:\/\/[^\s<]+/g;
|
||||
const maskedUrlRegex = /<(https?:\/\/[^\s>]+)>/g;
|
||||
|
||||
let match: RegExpExecArray | null;
|
||||
|
||||
while ((match = markdownLinkRegex.exec(content)) !== null) {
|
||||
urls.push(match[2]);
|
||||
}
|
||||
|
||||
while ((match = urlRegex.exec(content)) !== null) {
|
||||
urls.push(match[0]);
|
||||
}
|
||||
|
||||
while ((match = maskedUrlRegex.exec(content)) !== null) {
|
||||
urls.push(match[1]);
|
||||
}
|
||||
|
||||
return urls;
|
||||
}
|
||||
|
||||
function RickrollWarningAccessory({ message }: { message: Message; }) {
|
||||
const urls = extractUrls(message.content);
|
||||
if (urls.length === 0) return null;
|
||||
|
||||
for (const url of urls) {
|
||||
const isCustom = isCustomRickroll(url);
|
||||
if (isPotentialRickroll(url) || isCustom) {
|
||||
return (
|
||||
<ErrorBoundary>
|
||||
<RickrollWarning message={message} isCustom={isCustom} />
|
||||
</ErrorBoundary>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function isCustomRickroll(url: string): boolean {
|
||||
try {
|
||||
const parsedUrl = new URL(url);
|
||||
const customLinks = settings.store.customLinks
|
||||
.split(",")
|
||||
.map(s => s.trim())
|
||||
.filter(Boolean);
|
||||
const customVideoIDs = settings.store.customVideoIds
|
||||
.split(",")
|
||||
.map(s => s.trim())
|
||||
.filter(Boolean);
|
||||
|
||||
if (customLinks.some(link => parsedUrl.href.includes(link))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const hostname = parsedUrl.hostname.replace("www.", "");
|
||||
if (hostname === "youtube.com" || hostname === "youtu.be") {
|
||||
let videoID = "";
|
||||
if (hostname === "youtube.com") {
|
||||
videoID = parsedUrl.searchParams.get("v") || "";
|
||||
} else if (hostname === "youtu.be") {
|
||||
videoID = parsedUrl.pathname.slice(1);
|
||||
}
|
||||
|
||||
if (customVideoIDs.includes(videoID)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
// Invalid URL, ignore :trolley: (could probably merge this)
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function RickrollWarning({
|
||||
message,
|
||||
isCustom,
|
||||
}: {
|
||||
message: Message;
|
||||
isCustom: boolean;
|
||||
}) {
|
||||
const compact = MessageDisplayCompact.useSetting();
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Text color="text-danger" variant="text-xs/semibold">
|
||||
⚠️ This link is{" "}
|
||||
{isCustom
|
||||
? "matching one of your filters for rickrolls."
|
||||
: "a known rickroll."}
|
||||
</Text>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default definePlugin({
|
||||
name: "AntiRickroll",
|
||||
description:
|
||||
"Warns you of potential Rickrolls in messages, including masked links (supports custom rules)",
|
||||
authors: [{ name: "ryanamay", id: 1262793452236570667n }],
|
||||
dependencies: ["MessageAccessoriesAPI", "UserSettingsAPI"],
|
||||
|
||||
settings,
|
||||
|
||||
start() {
|
||||
addMessageAccessory(
|
||||
"rickrollWarning",
|
||||
(props: Record<string, any>) => {
|
||||
return (
|
||||
<RickrollWarningAccessory
|
||||
message={props.message as Message}
|
||||
/>
|
||||
);
|
||||
},
|
||||
4
|
||||
);
|
||||
},
|
||||
|
||||
stop() {
|
||||
removeMessageAccessory("rickrollWarning");
|
||||
},
|
||||
});
|
||||
106
antiRickroll/knownHosts.ts
Normal file
106
antiRickroll/knownHosts.ts
Normal file
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Vencord, a Discord client mod
|
||||
* Copyright (c) 2024 Vendicated and contributors
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
export const knownHosts = [
|
||||
"rickroll.link",
|
||||
"rickrolled.fr",
|
||||
"dub.sh/MetropolisOffline",
|
||||
"my-cool-app.com",
|
||||
"1227.com",
|
||||
"203.24.182.170",
|
||||
"74.125.95.104/search?q=cache:YLZLcPVmjrsJ:smouch.net/lol/+rick+roll&hl=en&ct=clnk&cd=5&gl=us",
|
||||
"8chan.henriwatson.com/b",
|
||||
"adurah.com/img/hp7_spoilers.jpg",
|
||||
"ali3ns.net",
|
||||
"almightypickle.deviantart.com/art/a-very-stupid-flash-movie-83440015",
|
||||
"apoke.com",
|
||||
"asongbyagayguy.ytmnd.com",
|
||||
"bit.ly/1628nB",
|
||||
"bringvictory.com",
|
||||
"choose.yudia.net",
|
||||
"classpc.nl",
|
||||
"collegehumor.com/video:1809841",
|
||||
"comicwonder.com/joke/8a46a9b4a",
|
||||
"crappypc.com",
|
||||
"ebaumsworld.com/video/watch/411687",
|
||||
"ecritters.biz/sr",
|
||||
"epicwinrar.com",
|
||||
"evanball.com",
|
||||
"finalclan.net",
|
||||
"freeppcsecrets.com",
|
||||
"fuckdreamhost.com",
|
||||
"furryartpile.com",
|
||||
"i65games.tk",
|
||||
"internetisseriousbusiness.com",
|
||||
"irc.infinitynet.info",
|
||||
"johncow.com/moo.html",
|
||||
"just-different.info/secret",
|
||||
"keiraknightley.ytmnd.com",
|
||||
"krazykustoms.co.cc/pages",
|
||||
"krazykustoms.co.cc/phpBB3/index.php",
|
||||
"liner.org",
|
||||
"members.tele2.nl/class-pc",
|
||||
"mxweas.com/docs/jailbreakservhack",
|
||||
"newroupdates.tk",
|
||||
"niya.cc/flash/rick",
|
||||
"noelurl.easyasweb.eu/u0Rx744fi",
|
||||
"palmsout.net/music/remixsunday/104/Never%20Gonna%20Give%20You%20Up%20%28Solly%20Remix%29.mp3",
|
||||
"paulsmom.prohosts.org",
|
||||
"pottermisleading.ytmnd.com",
|
||||
"prankdialer.com/rickroll.php",
|
||||
"pspemporium.webs.com/rickdance.html",
|
||||
"punahou.com",
|
||||
"rasher.dk/r",
|
||||
"rasher.dk/r/linode-dns",
|
||||
"ravenstorm.byethost15.com",
|
||||
"raygoldmodels.com",
|
||||
"reichroll.com",
|
||||
"reichrolled.com",
|
||||
"rick-rolld.com",
|
||||
"rickroll.net",
|
||||
"rickrolling.com/lol",
|
||||
"rr.rezbit.com",
|
||||
"rr.rezbit.com/blog/021107/rick-astley-speaks-about-rickroll.html",
|
||||
"rurl.org/2vq",
|
||||
"sirpnut.info/sorry.jpg",
|
||||
"smouch.net/lol",
|
||||
"sprigler.com/steven",
|
||||
"stucknut.com/locker/files/jessica.gif",
|
||||
"t1ny.us/7wp5i",
|
||||
"technocolbert.co.nr",
|
||||
"techsmartly.net",
|
||||
"thekickback.com/rickroll/rickroll.php",
|
||||
"tinyurl.com/interfont",
|
||||
"tinyurl.com/244u3n",
|
||||
"tinyurl.com/2nmscj",
|
||||
"tinyurl.com/2tcnbl",
|
||||
"tinyurl.com/2w4apm",
|
||||
"tinyurl.com/37ws8e",
|
||||
"tinyurl.com/4xur8r",
|
||||
"tinyurl.com/5a3jqf",
|
||||
"tinyurl.com/5sb29l",
|
||||
"tinyurl.com/CELEBRITY-XXX-VIDS",
|
||||
"tinyurl.com/KIM-KARDASHIAN-SEX-TAPE",
|
||||
"tinyurl.com/britneyspearsXXX",
|
||||
"tinyurl.com/rickrolll",
|
||||
"tinyurl.com/ynupj4",
|
||||
"tinyurl.com/yowxeq",
|
||||
"tobi-x.com/kate_moss_nude",
|
||||
"todaysbigthing.com/2008/04/07",
|
||||
"todo.is",
|
||||
"url.uppix.net/NFWGJ",
|
||||
"video.hexxeh.net",
|
||||
"video.yahoo.com/watch/1313289/4562193",
|
||||
"video.yahoo.com/watch/2013707/v2138974",
|
||||
"video.yahoo.com/watch/804885/3375801",
|
||||
"vids.myspace.com/index.cfm?fuseaction=vids.individual&videoid=25992858",
|
||||
"warlocksnerfed.ytmnd.com",
|
||||
"ww.rickroll.net",
|
||||
"you-host.info",
|
||||
"yougotrickrolled.com",
|
||||
"zeroboard.com/16979949#0",
|
||||
"zideo.nl/index.php?option=com_podfeed&zideo=6c4971596d513d3d&playzideo=6c344f596d31593d&Itemid=",
|
||||
];
|
||||
500
antiRickroll/knownVideoIDs.ts
Normal file
500
antiRickroll/knownVideoIDs.ts
Normal file
@@ -0,0 +1,500 @@
|
||||
/*
|
||||
* Vencord, a Discord client mod
|
||||
* Copyright (c) 2024 Vendicated and contributors
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
export const knownVideoIds = [
|
||||
"dQw4w9WgXcQ", // The original
|
||||
"oHg5SJYRHA0", // In case they know that link
|
||||
"p7YXXieghto", // But with a different link
|
||||
"E4WlUXrJgy4", // Yet another alt link
|
||||
"6_b7RDuLwcI", // Lyrics
|
||||
"G8iEMVr7GFg", // Otamatone (favorite)
|
||||
"AyOqGRjVtls", // Kermit
|
||||
"6mhmcwmgWbA", // Fortnite
|
||||
"SpZ2FsEfwP4", // Minecraft
|
||||
"H01BwSD9eyQ", // Undertale
|
||||
"nrsnN23tmUA", // Toad
|
||||
"8mkofgRW1II", // Karl Wheezer
|
||||
"rAx5LIul1N8", // 24 cartoon impressions
|
||||
"sO4wVSA9UPs", // Wii Theme
|
||||
"rrs0B_LM898", // Pufferfish
|
||||
"doEqUhFiQS4", // Rick is going to give you up
|
||||
"epyRUp0BhrA", // Sung by 169 movies (2nd favorite)
|
||||
"uK5WDo_3s7s", // Ninja
|
||||
"wzSVOcgKq04", // Barack Obama
|
||||
"7B--1KArxow", // Recorder
|
||||
"rbsPu1z3ugQ", // Brian (Family guy)
|
||||
"ptw2FLKXDQE", // Wreck Roll
|
||||
"E50L-JYWm3w", // Dead memes (this one sucks lmao)
|
||||
"8leAAwMIigI", // Karaoke
|
||||
"ByqFY-Boq5Y", // Just Dance 4
|
||||
"E4ihJMQUmUQ", // Anime style
|
||||
"cjBHXvBYw5s", // Goofy
|
||||
"xaazUgEKuVA", // 1 hr
|
||||
"TzXXHVhGXTQ", // 10 hr
|
||||
"Uj1ykZWtPYI", // R2D2's secret message
|
||||
"EE-xtCF3T94", // Who's that pokemon?
|
||||
"V-_O7nl0Ii0", // Ocean waves
|
||||
"cqF6M25kqq4", // Patrick's secret box
|
||||
"0SoNH07Slj0", // Jellyfish
|
||||
"xfr64zoBTAQ", // Breaking news
|
||||
"j5a0jTc9S10", // Cute dogs
|
||||
"dPmZqsQNzGA", // True Love by Coldplay
|
||||
"nHRbZW097Uk", // Hidden message
|
||||
"BjDebmqFRuc", // Voice cracks, among other weird stuff
|
||||
"Gc2u6AFImn8", // WTF grandayy
|
||||
"8VFzHYtOARw", // Bass boosted
|
||||
"cSAp9sBzPbc", // All notes are C
|
||||
"Dx5i1t0mN78", // ????????
|
||||
"Oo0twK2ZbLU", // Vocals get higher, instruments get lower
|
||||
"cvh0nX08nRw", // It never starts
|
||||
"lXMskKTw3Bc", // Nice singing bro
|
||||
"7z_1E8VGJOw", // Lyrics are Roblox usernames
|
||||
"VgojnNgmgVs", // Beats 2 and 4 are switched
|
||||
"5wOXc03RwVA", // Sung by a cat
|
||||
"2xx_2XNxxfA", // Lofi.
|
||||
"lpiB2wMc49g", // Made anime
|
||||
"H8ZH_mkfPUY", // Rebooted
|
||||
"Svj1bZz2mXw", // Lyrics in alphabetical order
|
||||
"iik25wqIuFo", // Different link
|
||||
"hvL1339luv0", // A cat sings it
|
||||
"N9w1lCZfaWI", // Gamecube version
|
||||
"ivV-kssG3NI", // Kasane Teto
|
||||
"0SoNH07Slj0",
|
||||
"2xx_2XNxxfA",
|
||||
"5wOXc03RwVA",
|
||||
"6_b7RDuLwcI",
|
||||
"6mhmcwmgWbA",
|
||||
"7B--1KArxow",
|
||||
"7z_1E8VGJOw",
|
||||
"8VFzHYtOARw",
|
||||
"8leAAwMIigI",
|
||||
"8mkofgRW1II",
|
||||
"AyOqGRjVtls",
|
||||
"BjDebmqFRuc",
|
||||
"ByqFY-Boq5Y",
|
||||
"Dx5i1t0mN78",
|
||||
"E4WlUXrJgy4",
|
||||
"E4ihJMQUmUQ",
|
||||
"E50L-JYWm3w",
|
||||
"EE-xtCF3T94",
|
||||
"G8iEMVr7GFg",
|
||||
"Gc2u6AFImn8",
|
||||
"H01BwSD9eyQ",
|
||||
"H8ZH_mkfPUY",
|
||||
"N9w1lCZfaWI",
|
||||
"Oo0twK2ZbLU",
|
||||
"SpZ2FsEfwP4",
|
||||
"Svj1bZz2mXw",
|
||||
"TzXXHVhGXTQ",
|
||||
"Uj1ykZWtPYI",
|
||||
"V-_O7nl0Ii0",
|
||||
"VgojnNgmgVs",
|
||||
"cSAp9sBzPbc",
|
||||
"cjBHXvBYw5s",
|
||||
"cqF6M25kqq4",
|
||||
"cvh0nX08nRw",
|
||||
"dPmZqsQNzGA",
|
||||
"dQw4w9WgXcQ",
|
||||
"doEqUhFiQS4",
|
||||
"epyRUp0BhrA",
|
||||
"hvL1339luv0",
|
||||
"iik25wqIuFo",
|
||||
"ivV-kssG3NI",
|
||||
"j5a0jTc9S10",
|
||||
"lXMskKTw3Bc",
|
||||
"lpiB2wMc49g",
|
||||
"nHRbZW097Uk",
|
||||
"nrsnN23tmUA",
|
||||
"oHg5SJYRHA0",
|
||||
"p7YXXieghto",
|
||||
"ptw2FLKXDQE",
|
||||
"rAx5LIul1N8",
|
||||
"rbsPu1z3ugQ",
|
||||
"rrs0B_LM898",
|
||||
"sO4wVSA9UPs",
|
||||
"uK5WDo_3s7s",
|
||||
"wzSVOcgKq04",
|
||||
"xaazUgEKuVA",
|
||||
"xfr64zoBTAQ",
|
||||
"AuKR2fQbMBk",
|
||||
"xvFZjo5PgG0",
|
||||
"BBJa32lCaaY",
|
||||
"QB7ACr7pUuE",
|
||||
"pKskW7wJ0v0",
|
||||
"j7gKwxRe7MQ",
|
||||
"LWErcuHm_C4",
|
||||
"a6pbjksYUHY",
|
||||
"ll-mQPDCn-U",
|
||||
"dRV6NaciZVk",
|
||||
"MCjlo7PtXMQ",
|
||||
"mrThFRR3n8A",
|
||||
"HnfkEVtetuE",
|
||||
"j8PxqgliIno",
|
||||
"AACOcpA8i-U",
|
||||
"bIwVIx5pp88",
|
||||
"OyHQlZeyEr4",
|
||||
"8ybW48rKBME",
|
||||
"ZK1pNGmNBEc",
|
||||
"cSQTZoZPJzs",
|
||||
"6lhwMJuBIEw",
|
||||
"IR_rbAer7kY",
|
||||
"5iqIug1Rox8",
|
||||
"EkfDmzprwrw",
|
||||
"EjahYsvSTts",
|
||||
"8NBdab8iors",
|
||||
"UHYLsSLSUCw",
|
||||
"QMIaYRaUC5E",
|
||||
"JDuaYGd0zUI",
|
||||
"dy4bWkj4_RA",
|
||||
"55C1L77QrGk",
|
||||
"TSi6_A74lCw",
|
||||
"w-kk-bU_QVw",
|
||||
"uPbl8o3bjY0",
|
||||
"dQw4w9WgXcQ",
|
||||
"hVzINKRbekY",
|
||||
"wzSVOcgKq04",
|
||||
"xaazUgEKuVA",
|
||||
"xfr64zoBTAQ",
|
||||
"xm3YgoEiEDc",
|
||||
"xvFZjo5PgG0",
|
||||
"zL19uMsnpSU",
|
||||
"-HRRGn6tNd4",
|
||||
"-umtVthRGJI",
|
||||
"1V_aE_Xdde8",
|
||||
"3HrSN7176XI",
|
||||
"3KANI2dpXLw",
|
||||
"4TJB9FQo45E",
|
||||
"4ynGOr9vmyc",
|
||||
"5F5nc1bAaKw",
|
||||
"5kQKh2tdisQ",
|
||||
"5uZr3JWYdy8",
|
||||
"65I0HNvTDH4",
|
||||
"67KOFEEOhkI",
|
||||
"6SYVdI7Llrg",
|
||||
"8Set3JpJJ4w",
|
||||
"8aJjMOy-Ops",
|
||||
"A1sgzEDUG-o",
|
||||
"ABUhOJxZQmg",
|
||||
"AP12uZvfvag",
|
||||
"AS35zlAdaSQ",
|
||||
"CZoJt0Sbqrs",
|
||||
"DpPhnECPe2I",
|
||||
"EEbzptEFsKk",
|
||||
"FGEUClII8x0",
|
||||
"G_vas-7a7is",
|
||||
"HiaBjpzLgQI",
|
||||
"I6_0tpqg3ZE",
|
||||
"IHKAgwIxUAY",
|
||||
"IVvl_R2jYMo",
|
||||
"IpjGmx2v6bM",
|
||||
"J3VnZMoh7sk",
|
||||
"Kmt4wrn1MTk",
|
||||
"LeSnAn-Sc0g",
|
||||
"LqXTU8YAGzo",
|
||||
"MJCH_wT9TaU",
|
||||
"MoUPdJrjkCM",
|
||||
"NZ-AAD7Ci_c",
|
||||
"PIMrL4qXtJ0",
|
||||
"PXrHCBoEj7g",
|
||||
"QumbExFAj-U",
|
||||
"R5P1_U7LZX8",
|
||||
"RSsJ19sy3JI",
|
||||
"RgIDuaxiT0w",
|
||||
"RzoZGNsJ71w",
|
||||
"SGi7qi_y0Jw",
|
||||
"UDTGvgE5eJw",
|
||||
"VBY4TV5qK-4",
|
||||
"VVjUWKSZSsc",
|
||||
"WpEVccrkYQ0",
|
||||
"X-j828DqqnY",
|
||||
"XfTUDW93z6E",
|
||||
"Xsvi9uNrDSI",
|
||||
"YWn54TjfBkk",
|
||||
"Yu_moia-oVI",
|
||||
"ZIQZHqNQODo",
|
||||
"ZOU8GIRUd_g",
|
||||
"Zc2tpMgz6MI",
|
||||
"_0719DxMOUY",
|
||||
"_FyXC-SsAPE",
|
||||
"aSzhxllE0RM",
|
||||
"atiNprQmjks",
|
||||
"b1WWpKEPdT4",
|
||||
"b43GgNbz9fg",
|
||||
"cjeogv9VUAE",
|
||||
"cxwxBheZniM",
|
||||
"dS9DO6kx-Ek",
|
||||
"eKDcl0V6o6k",
|
||||
"eLiXPfl8EPY",
|
||||
"f2b1D5w82yU",
|
||||
"f8FHqEIzSlE",
|
||||
"fMzkMpMraFY",
|
||||
"fmxGLQd3J0U",
|
||||
"gLVtavM962w",
|
||||
"gdpijMRhoT8",
|
||||
"gvUiLtwlEl8",
|
||||
"hq05IRf0dBQ",
|
||||
"hyX_krrTBZ0",
|
||||
"iJbwc4wm5Y0",
|
||||
"lAQIiNTH46I",
|
||||
"lfO4Z5WEUuE",
|
||||
"lfao5IToml4",
|
||||
"lp6nr-rD_g8",
|
||||
"lzSjyzqfegI",
|
||||
"oHg5SJYRHA0",
|
||||
"piLTpv1eKdU",
|
||||
"q6NwqFlctZY",
|
||||
"r8tXjJL3xcM",
|
||||
"rfp7FbsnsbU",
|
||||
"tazYxtJcwCc",
|
||||
"thNTPin2RBY",
|
||||
"uYMIMPVK1vU",
|
||||
"ub_VBGajh-s",
|
||||
"uwnuL5Fy5g8",
|
||||
"uxIsiTo4VJo",
|
||||
"v7cyQ-dVaAM",
|
||||
"veFrQTKQy7A",
|
||||
"vf79MCuQ8jM",
|
||||
"vp8fkB0uwd0",
|
||||
"vvs7cXmVwN8",
|
||||
"xAp3HqpE7V8",
|
||||
"xm_EMOdpDhc",
|
||||
"xpupxRzumYs",
|
||||
"y5Ja-E529sU",
|
||||
"yXGqsnkLg0A",
|
||||
"ywoqy9PBN-0",
|
||||
"yxnWl63Avo4",
|
||||
"z-HWXfRKkJU",
|
||||
"z2kThcO6ig8",
|
||||
"zGm0nGF_y2E",
|
||||
"BUykFA7FCo4",
|
||||
"0SoNH07Slj0",
|
||||
"2mun7xy12H0",
|
||||
"34Ig3X59_qA",
|
||||
"5wOXc03RwVA",
|
||||
"6-HUgzYPm9g",
|
||||
"6_b7RDuLwcI",
|
||||
"6mhmcwmgWbA",
|
||||
"7B--1KArxow",
|
||||
"7z_1E8VGJOw",
|
||||
"828hEBkvA5g",
|
||||
"8VFzHYtOARw",
|
||||
"8leAAwMIigI",
|
||||
"8mkofgRW1II",
|
||||
"AyOqGRjVtls",
|
||||
"BjDebmqFRuc",
|
||||
"ByqFY-Boq5Y",
|
||||
"DLzxrzFCyOs",
|
||||
"Dx5i1t0mN78",
|
||||
"E4ihJMQUmUQ",
|
||||
"EE-xtCF3T94",
|
||||
"G8iEMVr7GFg",
|
||||
"Gc2u6AFImn8",
|
||||
"H01BwSD9eyQ",
|
||||
"IdkCEioCp24",
|
||||
"Oo0twK2ZbLU",
|
||||
"Rtqkxkt7Hyg",
|
||||
"SpZ2FsEfwP4",
|
||||
"TOcAAaZ1HhU",
|
||||
"TzXXHVhGXTQ",
|
||||
"Uj1ykZWtPYI",
|
||||
"UmOi40tnUcM",
|
||||
"V-_O7nl0Ii0",
|
||||
"VbUuB1aN2DA",
|
||||
"VgojnNgmgVs",
|
||||
"YJWSAJjkTsI",
|
||||
"ZzUsKizhb8o",
|
||||
"a3Z7zEc7AXQ",
|
||||
"cSAp9sBzPbc",
|
||||
"cqF6M25kqq4",
|
||||
"cvh0nX08nRw",
|
||||
"dPmZqsQNzGA",
|
||||
"dQw4w9WgXcQ",
|
||||
"doEqUhFiQS4",
|
||||
"epyRUp0BhrA",
|
||||
"gvGyS5j9aFY",
|
||||
"hLZW4U86cL4",
|
||||
"iik25wqIuFo",
|
||||
"j5a0jTc9S10",
|
||||
"lXMskKTw3Bc",
|
||||
"nHRbZW097Uk",
|
||||
"nrsnN23tmUA",
|
||||
"oHg5SJYRHA0",
|
||||
"oT3mCybbhf0",
|
||||
"ptw2FLKXDQE",
|
||||
"r7VYFiPoZk4",
|
||||
"r8tXjJL3xcM",
|
||||
"rAx5LIul1N8",
|
||||
"rbsPu1z3ugQ",
|
||||
"rrs0B_LM898",
|
||||
"sO4wVSA9UPs",
|
||||
"tzYPr9w22VU",
|
||||
"uK5WDo_3s7s",
|
||||
"ub82Xb1C8os",
|
||||
"wpV-gGA4PSk",
|
||||
"wuggc60TVzU",
|
||||
"cSAp9sBzPbc",
|
||||
"8ybW48rKBME",
|
||||
"Tt7bzxurJ1I",
|
||||
"gidHrKbTpog",
|
||||
"vcq30ywIKlc",
|
||||
"y6120QOlsfU",
|
||||
"QhuZIEkKkXA",
|
||||
"rW7hXs-81hM",
|
||||
"Oo0twK2ZbLU",
|
||||
"0SoNH07Slj0",
|
||||
"LLFhKaqnWwk",
|
||||
"SpZ2FsEfwP4",
|
||||
"SO4c1NlGCpY",
|
||||
"MCjlo7PtXMQ",
|
||||
"TCUPeAlpDVE",
|
||||
"5wOXc03RwVA",
|
||||
"oJl25bABYac",
|
||||
"a6pbjksYUHY",
|
||||
"Dx5i1t0mN78",
|
||||
"Uj1ykZWtPYI",
|
||||
"E50L-JYWm3w",
|
||||
"BjDebmqFRuc",
|
||||
"PibwQR9nRus",
|
||||
"rrs0B_LM898",
|
||||
"cH1NLToRz_o",
|
||||
"j5a0jTc9S10",
|
||||
"p7YXXieghto",
|
||||
"qxeokP0n6V0",
|
||||
"GHMjD0Lp5DY",
|
||||
"bIwVIx5pp88",
|
||||
"7z_1E8VGJOw",
|
||||
"QB7ACr7pUuE",
|
||||
"LjQZaD9EEJ0",
|
||||
"cvh0nX08nRw",
|
||||
"fZi4JxbTwPo",
|
||||
"2ocykBzWDiM",
|
||||
"H01BwSD9eyQ",
|
||||
"PzqQSOaCcnw",
|
||||
"lXMskKTw3Bc",
|
||||
"JzjldPdpT7Q",
|
||||
"7B--1KArxow",
|
||||
"lHyeAtiiL18",
|
||||
"s0akG-V_Y30",
|
||||
"HV8IxKtAlrA",
|
||||
"6_b7RDuLwcI",
|
||||
"rbsPu1z3ugQ",
|
||||
"8O_ifyIIrN4",
|
||||
"xvFZjo5PgG0",
|
||||
"N3MKlU5_Gs0",
|
||||
"AyOqGRjVtls",
|
||||
"bCh5IlXTckA",
|
||||
"pSxJqmMNU-A",
|
||||
"ByqFY-Boq5Y",
|
||||
"G8iEMVr7GFg",
|
||||
"s99hC5WUwjo",
|
||||
"uK5WDo_3s7s",
|
||||
"TzXXHVhGXTQ",
|
||||
"OYPG7j8rKZY",
|
||||
"Kiz3PM387FI",
|
||||
"2l51wyMM9hs",
|
||||
"ptw2FLKXDQE",
|
||||
"wzSVOcgKq04",
|
||||
"rAx5LIul1N8",
|
||||
"ll-mQPDCn-U",
|
||||
"hxCXEX2JOKE",
|
||||
"6RyOsIseJbk",
|
||||
"HUU3kOhjFfg",
|
||||
"3KANI2dpXLw",
|
||||
"-51AfyMqnpI",
|
||||
"6mhmcwmgWbA",
|
||||
"7lEodsmjeQU",
|
||||
"8leAAwMIigI",
|
||||
"xaazUgEKuVA",
|
||||
"dQw4w9WgXcQ",
|
||||
"nHRbZW097Uk",
|
||||
"vkbQmH5MPME",
|
||||
"6vBnqJhP7f8",
|
||||
"xfr64zoBTAQ",
|
||||
"EE-xtCF3T94",
|
||||
"zL19uMsnpSU",
|
||||
"mrThFRR3n8A",
|
||||
"E4ihJMQUmUQ",
|
||||
"kczWpSN6emg",
|
||||
"bkOVXdvijmQ",
|
||||
"cqF6M25kqq4",
|
||||
"cAN30xJp2Cs",
|
||||
"doEqUhFiQS4",
|
||||
"iiUIi5b9RlE",
|
||||
"H8ZH_mkfPUY",
|
||||
"HPk-VhRjNI8",
|
||||
"INbRpclIFsE",
|
||||
"ikFZLI4HLpQ",
|
||||
"dPmZqsQNzGA",
|
||||
"cjBHXvBYw5s",
|
||||
"SjTOn5scRmY",
|
||||
"JkcHqN6YswU",
|
||||
"IO9XlQrEt2Y",
|
||||
"oHg5SJYRHA0",
|
||||
"lpiB2wMc49g",
|
||||
"DIs7dtlMCP0",
|
||||
"gvGyS5j9aFY",
|
||||
"VgojnNgmgVs",
|
||||
"SsiHLiXBlcM",
|
||||
"Q53-mWHvxJo",
|
||||
"XfIIQYnBHrQ",
|
||||
"LWErcuHm_C4",
|
||||
"AACOcpA8i-U",
|
||||
"QdNEtVH9bZE",
|
||||
"dRV6NaciZVk",
|
||||
"ub82Xb1C8os",
|
||||
"ENYalQvZG4Q",
|
||||
"BXuxOeg6PiQ",
|
||||
"0Z0i-nimHkU",
|
||||
"Mdq6sQPKYqQ",
|
||||
"C5GGeuFPVVE",
|
||||
"Gc2u6AFImn8",
|
||||
"klqi_h9FElc",
|
||||
"Eg7XtrH0duI",
|
||||
"aaP6xIkMqzo",
|
||||
"xbXoWRs2C8M",
|
||||
"pKskW7wJ0v0",
|
||||
"HnfkEVtetuE",
|
||||
"9oxRDJjAQKI",
|
||||
"j7gKwxRe7MQ",
|
||||
"42OleX0HR4E",
|
||||
"nrsnN23tmUA",
|
||||
"iik25wqIuFo",
|
||||
"E458nb_pPmk",
|
||||
"06pBzAlItwI",
|
||||
"rTgj1HxmUbg",
|
||||
"epyRUp0BhrA",
|
||||
"rEtZzcxQ_pA",
|
||||
"Yb6dZ1IFlKc",
|
||||
"eBGIQ7ZuuiU",
|
||||
"soq9cLVa5Xo",
|
||||
"r8tXjJL3xcM",
|
||||
"XB3EQrj1maw",
|
||||
"RvBwypGUkPo",
|
||||
"d4N5LnsNpF0",
|
||||
"j8PxqgliIno",
|
||||
"th0pH9srXRY",
|
||||
"sO4wVSA9UPs",
|
||||
"8mkofgRW1II",
|
||||
"fMnIpIMuBJI",
|
||||
"gPkZS92WCIo",
|
||||
"_sWG4uhLiWo",
|
||||
"8VFzHYtOARw",
|
||||
"V-_O7nl0Ii0",
|
||||
"eBsIpefmXvE",
|
||||
"nW0P2hYBm9A",
|
||||
"MAM--whuMcU",
|
||||
"QKr_0DMYV5g",
|
||||
"VZrDxD0Za9I",
|
||||
"WSBK_NePew",
|
||||
"1kj837fWpo",
|
||||
"oAyaw1ohiWs",
|
||||
"iadFGiLRgFo",
|
||||
"A4hJPP0Zn9I",
|
||||
"r1JAZlyhKMc",
|
||||
"DdpBpn6txTk",
|
||||
"yS6LYj-y1HA",
|
||||
"WyltKn3pi9U",
|
||||
];
|
||||
Reference in New Issue
Block a user